uml与数据库设计
一、类之间的关系如下图所示:

二、UML与数据库设计主要讨论的内容:

三、依赖关系强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,所以只需讨论泛化关系、关联关系到表的映身规范。
1.泛化关系的映射
(1)、将父类和子类均映射为表
优点:表结构的更改非常方便
缺点:表的数量较多,相关的数据分散在不同的表中,数据读写时间较长,报表的生成较为困难。
(2)、只将子表映射为表
优点:表的数量较少,相关的数据集中在一个表中,数据的读写较为方便。
缺点:表结构的修改较为困难,因为修改父类后,要同时修改子类对应的表。
(3)、只将父类映射为表
优点:表的数量少,数据读写方便
缺点:耦合性强,需要增加一列,以表时类的角色,浪费存储空间较多。
综合:以上三种方法各有所长,在实际应用中,根据具体情况选用。
一般情况下,建议选用第二种方式,即只将子类映射为表,各表包含子类自身的属性和继承自父类的属性。
2.关联关系的映射
关联关系分为一对一关联、一对多关联和多对多关联。
(1)、一对一关联映射
将相关的两个类分别映射成两张表,并将任意一张表的主键放入另一张表作为外键。
(2)一对多关联映射
将关联的两个类映射为两张表,并将“一”表的主键放在“多”表中作为外键。
(3)、多对多关联映射
》为相关联的两个类分别建立两张表
》再建一个关联表。这个关联表的属性由两部分组成:前两个表的主键,关联本身的属性。
综合:关联关系要为每一个类生成一个数据库表。
关系映射:
1)、一对一、一对多的关系映射为数据库表的主外键关联(一方的主键加入另一方成为外键)
2)、多多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。
利用数据库三范式检查表,从而考察类图的分析是否合理,消除冗余数据。检查数据是否能够反映用例视图的需要;进一步与用户再次确认数据的使用。
uml与数据库设计的更多相关文章
- 牛腩新闻系统(一)——UML、数据库设计
牛腩新闻系统(一)--UML.数据库设计 一.初识牛腩系统 牛腩(Brisket)即牛腹部及靠近牛肋处的松软肌肉,是指带有筋.肉.油花的肉 块.这是一种统称. 若依部位来分,牛身上很多地方的肉都能够叫 ...
- 我的敏捷、需求分析、UML、软件设计电子书 - 下载(持续更新中)
我将所有我的电子书汇总在一起,方便大家下载!(持续更新) 文档保存在我的网站——软件知识原创基地上(www.umlonline.org),请放心下载. 1)软件设计是怎样炼成的?(2014-4-1 发 ...
- DBA词典:数据库设计常用词汇中英文对照表
1. Access method(访问方法):此步骤包括从文件中存储和检索记录. 2. Alias(别名):某属性的另一个名字.在SQL中,可以用别名替换表名. 3. Alternate keys(备 ...
- 数据库设计 Step by Step (2)——数据库生命周期
引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外.这也坚定了我把这一系列的博文写好的决心.近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统.完整 ...
- 数据库设计中的Soft Delete模式
最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...
- 使用django开发博客过程记录1——数据库设计
1.数据库设计 2.插入测试数据 3.配置相关问题 1.数据库设计 数据库有简单的三张表:Article.Category.Tag以下是代码 # -*- coding:utf-8 -*- from _ ...
- 基于SSM的租赁管理系统0.3_20161225_数据库设计
数据库设计 1. 概念模型 2. 类模型 3. 生成SQL use test; /*========================================================== ...
- 第二天ci项目规划 数据库设计
第二天ci项目规划 数据库设计 商品 + 用户 + 订单 数据库设计思想和方法 关于商品品牌 ,分类 ,属性 如何表示 用一个字段 还是再设计一张表 品牌和商品 是一种信息 还是两种信息 一张表一般只 ...
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
随机推荐
- IE取消访问剪贴板设置
1. 启动IE. 2. Internet选项. 3. “安全”选项卡. 4. 自定义级别. 5. “安全设置-Internet区域”->脚本->允许对剪贴板进行编程访问(启用)
- Linux下的C高级编程---学习
一.进程 一个正在运行的程序称为进程.例如在屏幕上正打开两个终端窗口,则说明同一个终端程序正在做为两个进程而同时执行,而每个终端窗口又都在执行shell,则每个shell又是另外一个进程 ...
- 445port入侵具体解释
445port入侵具体解释 关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...
- 【WinForm】C# 采用POST登录京东
C# POST 传值登录 京东 想做一个DEMO 练练html的传值和接收,就用Winform 做了一个登录京东的程序. 首先参考的网址是: 艹蛋的青春じ 让我蛋疼ミ:http://www.cnblo ...
- C# 图片保存到数据库和从数据库读取图片并显示
图片保存到数据库的方法: public void imgToDB(string sql) { //参数sql中要求保存的imge变量名称为@images //调 ...
- POJ1463:Strategic game(树形DP)
Description Bob enjoys playing computer games, especially strategic games, but sometimes he cannot f ...
- [MODX] 2. Chunks $
Chunk in Modx can cut your template into samll pieces to make code reuseable. [[$chunk_name]] For ex ...
- fl,flash,mx包的区别
在ActionScript项目中还真是不能使用mx包中的UI组件. Adobe官方论坛上有一个帖子讲述了这个问题,大致意思是说:你要使用mx包中像Button这样的UI组件都是从U ...
- 配置Windows Live Writer,写cnblogs博客
引言 以前写博客一般都是联网在cnblogs上面写,不好的地方就是不联网就写不了,当然我们也可以先记录在word文件,等联网在从word里面拷贝出来发布到cnblogs上面,但是样式这些 ...
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数
参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...