第12章-UML与数据库设计.课件

上传人:博****1 文档编号:588627980 上传时间:2024-09-08 格式:PPT 页数:41 大小:175.50KB
返回 下载 相关 举报
第12章-UML与数据库设计.课件_第1页
第1页 / 共41页
第12章-UML与数据库设计.课件_第2页
第2页 / 共41页
第12章-UML与数据库设计.课件_第3页
第3页 / 共41页
第12章-UML与数据库设计.课件_第4页
第4页 / 共41页
第12章-UML与数据库设计.课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第12章-UML与数据库设计.课件》由会员分享,可在线阅读,更多相关《第12章-UML与数据库设计.课件(41页珍藏版)》请在金锄头文库上搜索。

1、UML与数据库设计与数据库设计类图类图 数据库表数据库表UMLUML与数据库设计要讨论的主要内容:与数据库设计要讨论的主要内容:关联关系关联关系泛化关系泛化关系依赖关系依赖关系类之间的关系类之间的关系 依赖关系依赖关系强调的是类操作间的使用关系,强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,所类图到表结构的映射中并不涉及这种关系,所以下面只讨论泛化关系、关联关系到表的映射以下面只讨论泛化关系、关联关系到表的映射规范。规范。类之间关类之间关系的映射系的映射泛化关系泛化关系关联关系关联关系一对一一对一一对多一对多多对多多对多网上商店的类图网上商店的类图第一节第一节 泛化关系的映

2、射泛化关系的映射方法方法1:将父类和子类均映射为表:将父类和子类均映射为表customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord这种方式有何优缺点?这种方式有何优缺点?customerID2002000120020002EcreditDegree一级一级二级二级administratorID2002000320020004Access备份备份修改修改userID20020001200200022002000320020004userName牛丽平牛丽平郭新志郭新志宋强宋强杨继萍杨继萍passWord12345

3、678customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord如何添加以下信息:如何添加以下信息:ID:20050001userName:董兰芳:董兰芳passWord:2008Email:creditDegree:良好良好如何添加以下信息:如何添加以下信息:ID:20050002userName:刘振安:刘振安passWord:2009Access:writeInsert into user(userID, userName, passWord)values(20050001,董兰芳, 2008);Inser

4、t into customer(customerID, Email, creditDegree)values(20050001, ,良好);customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord如何查询以下信息:如何查询以下信息:查询查询ID为为20050001的用户的姓名和的用户的姓名和Email查询查询ID为为20050003的用户的姓名和权限的用户的姓名和权限select u.userName, c.Email from user u left join customer c on u.userID =

5、 c.customerID where u.userID=20050001;select u.userName,a.access from user u left join administrator a on u.userID = a.administratorID where u.userID=20050003;customerID Email creditDegreeadministratorIDaccessuserIDuserNamepassWord优点:表结构的更改非常方便优点:表结构的更改非常方便缺点:表的数量较多,相关的数据分散在不同的表中,数缺点:表的数量较多,相关的数据分散在

6、不同的表中,数据读写时间较长,报表的生成较为困难据读写时间较长,报表的生成较为困难方法方法2:只将子类映射为表:只将子类映射为表表中包含子类自身的属性和继承自父类的属性表中包含子类自身的属性和继承自父类的属性customerID userNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccesscustomerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess如何添加以下信息:如何添加以下信息:ID:20050001userNa

7、me:董兰芳:董兰芳passWord:2008Email:creditDegree:良好良好如何添加以下信息:如何添加以下信息:ID:20050002userName:刘振安:刘振安passWord:2009Access:writeInsert into customer(customerID,userName,passWord,Email,creditDegree)values(20050001,董兰芳董兰芳, 2008, ,良好良好);Insert into administrator(administratorID,userName,passWord, access)values(200

8、50002,刘振安刘振安, 2009, write);customerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess如何查询以下信息:如何查询以下信息:查询查询ID为为20050001的用户的姓名和的用户的姓名和Email查询查询ID为为20050003的用户的姓名和权限的用户的姓名和权限select userName, Email from customerwhere customerID =20050001;select userName, access from administratorw

9、here administratorID=20050003;customerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess优点:表的数量较少,相关的数据集中在一个表中,数据的读优点:表的数量较少,相关的数据集中在一个表中,数据的读写较为方便。写较为方便。缺点:表结构的修改较为困难,因为修改父类后,要同时修改缺点:表结构的修改较为困难,因为修改父类后,要同时修改所有的子类对应的表。所有的子类对应的表。方法方法3:只将父类映射为表:只将父类映射为表select userName, Email, acc

10、essfrom userwhere userID =? and userType=?select userName, Email, accessfrom userwhere userID = 20050001 and userType=C优点:表的数量较少,数据读写方便优点:表的数量较少,数据读写方便缺点:耦合性强;需要增加一列,以表明类的角色;浪费缺点:耦合性强;需要增加一列,以表明类的角色;浪费存储空间较多存储空间较多评价:评价: 以上三种方法各有所长,在实际应用中,根据以上三种方法各有所长,在实际应用中,根据具体情况选用。具体情况选用。 一般情况下,建议选用第二种方式,即只一般情况下,建

11、议选用第二种方式,即只将子将子类映射为表类映射为表,各表中包含子类自身的属性和继承自,各表中包含子类自身的属性和继承自父类的属性。父类的属性。第二节第二节 关联关系的映射关联关系的映射 关联关系:关联关系:一对一关联一对一关联、一对多关联一对多关联和和多多对多关联对多关联。“一一”:多重性为:多重性为“1”,“0.1”“多多”:多重性为:多重性为“1.n”,“0.n”网上商店的类图网上商店的类图一、一对一映射一、一对一映射 将相关联的两个类分别映射成两张表,并将将相关联的两个类分别映射成两张表,并将任意一张任意一张表的主键放入另一张表中作为外键表的主键放入另一张表中作为外键。如果此处是如果此处

12、是0.1,该,该如何处理如何处理?二、一对多映射二、一对多映射 将关联的两个类映射为两张表,并将将关联的两个类映射为两张表,并将“一一”表的主键放在表的主键放在“多多”表中作为外键。表中作为外键。三、多对多映射三、多对多映射多对多映射时,应建立三张表:多对多映射时,应建立三张表:为相关联的两个类分别建立两张表为相关联的两个类分别建立两张表再建一个关联表。这个关联表的属性由两部分再建一个关联表。这个关联表的属性由两部分构成:前两个表的主键,关联本身的属性。构成:前两个表的主键,关联本身的属性。customerIDuserNamepassWordEmailcreditDegreecustomerI

13、DproductIDamount数据库设计原则数据库设计原则每一个类成为一个数据库表。每一个类成为一个数据库表。关系映射:关系映射:1.1.一对多的关系映射为数据库表的主外键关联(一对多的关系映射为数据库表的主外键关联(1 1方的方的主键加入主键加入n n方成为外键)方成为外键)2.2.一对一的关系映射为数据库表的主外键关联(一对一的关系映射为数据库表的主外键关联(1 1方的方的 主键加入另一方成为外键)主键加入另一方成为外键)3.3.多对多的关系映射:产生第三张表,将两个多方的主多对多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。键加入其中成为外键,两个

14、外键的组合成为主键。利用数据库利用数据库三范式三范式检查表,从而考察类图的分析检查表,从而考察类图的分析是否合理,消除冗余数据。是否合理,消除冗余数据。检查数据是否能够反映用例视图的需要;进一步检查数据是否能够反映用例视图的需要;进一步与用户再次确认使用的数据。与用户再次确认使用的数据。第三节第三节 完整性与约束完整性与约束1、父表的约束、父表的约束在在强制对可选强制对可选约束中,父表上操作的约束约束中,父表上操作的约束插入操作插入操作 父表中的记录可以不受限制地添加到表中父表中的记录可以不受限制地添加到表中修改键值操作修改键值操作 要修改父表的键值,必须首先修改子表要修改父表的键值,必须首先

15、修改子表中其所有子女的对应值中其所有子女的对应值删除操作删除操作 要删除父表记录,必须首先删除或者重要删除父表记录,必须首先删除或者重新分配其所有子女新分配其所有子女教练编号教练编号教练教练队员队员10*队员编号队员编号教练编号教练编号教练表格教练表格队员表格队员表格在在可选对可选可选对可选以及以及可选对强制可选对强制约束中,父表上约束中,父表上操作的约束操作的约束插入操作插入操作 必须在至少有一个子女被加入或者至少已必须在至少有一个子女被加入或者至少已存在一个合法子女的情况下,父亲才可以加存在一个合法子女的情况下,父亲才可以加入入修改操作修改操作 必须至少有一个子女被创建或者至少已经必须至少

16、有一个子女被创建或者至少已经有一名子女存在,父表才可以修改键值有一名子女存在,父表才可以修改键值删除操作删除操作 不使用级联删除子表的方法删除父表记录,不使用级联删除子表的方法删除父表记录,而是将子表的外键置空而是将子表的外键置空医生编号医生编号医生医生病人病人010*病人编号病人编号医生编号医生编号医生表格医生表格病人表格病人表格协会编号协会编号协会协会学生学生011*学号学号协会编号协会编号协会表格协会表格学生表格学生表格在在强制对强制强制对强制约束中,父表上操作的约束约束中,父表上操作的约束插入操作插入操作 可以在向父表执行插入操作后再向子表可以在向父表执行插入操作后再向子表添加记录,也

17、可以通过重新分配子表来实施添加记录,也可以通过重新分配子表来实施完整性约束。完整性约束。修改键值操作修改键值操作 修改键值前必须先更新子表对应的外键修改键值前必须先更新子表对应的外键的值,或者先创建新的父表记录,再更新子的值,或者先创建新的父表记录,再更新子表所对应的记录,使其与父表中的新记录关表所对应的记录,使其与父表中的新记录关联起来,最后删除原父表记录。联起来,最后删除原父表记录。删除操作删除操作 要删除父表中的记录,必须首先删除或要删除父表中的记录,必须首先删除或者重新分配子表中所有相关的记录。者重新分配子表中所有相关的记录。企业账单编号企业账单编号企业账单企业账单日记账日记账11*日记账编号日记账编号企业账单编号企业账单编号企业账单表格企业账单表格日记账表格日记账表格2、子表的约束、子表的约束关系关系类型类型添加添加修改修改删除删除关联关联可选对可选可选对可选无限制无限制无限制无限制无限制无限制强制对可选强制对可选父亲存在或者父亲存在或者创建一个父亲创建一个父亲具有新值的父亲存在或者具有新值的父亲存在或者创建父亲创建父亲无限制无限制聚合聚合可选对强制可选对强制无限制无限制有兄弟有兄弟有兄弟有兄弟组合组合强制对强制强制对强制父亲存在或者父亲存在或者创建一个父亲创建一个父亲具有新值的父亲存在具有新值的父亲存在(或或者创建父亲者创建父亲)并且有兄弟并且有兄弟有兄弟有兄弟

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号