




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML与数据库设计类图数据库表UML与数据库设计要讨论的主要内容:关联关系泛化关系依赖关系类之间的关系
依赖关系强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,所以下面只讨论泛化关系、关联关系到表的映射规范。类之间关系的映射泛化关系关联关系一对一一对多多对多网上商店的类图第一节泛化关系的映射方法1:将父类和子类均映射为表customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord这种方式有何优缺点?customerID2002000120020002Emailx@163.comy@163.comcreditDegree一级二级administratorID2002000320020004Access备份修改userID20020001200200022002000320020004userName牛丽平郭新志宋强杨继萍passWord12345678customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord如何添加以下信息:ID:20050001 userName:董兰芳passWord:2008Email:abc@163.comcreditDegree:良好如何添加以下信息:ID:20050002 userName:刘振安passWord:2009Access:writeInsertintouser(userID,userName,passWord)values(20050001,’董兰芳’,’2008’);Insertintocustomer(customerID,Email,creditDegree)values(20050001,’abc@163.com’,’良好’);customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord如何查询以下信息:查询ID为20050001的用户的姓名和Email查询ID为20050003的用户的姓名和权限selectu.userName,c.Email
fromuseruleftjoincustomerc
onu.userID=c.customerID
whereu.userID=20050001;selectu.userName,a.access
fromuseruleftjoinadministratora
onu.userID=a.administratorID
whereu.userID=20050003;customerIDEmailcreditDegreeadministratorIDaccessuserIDuserNamepassWord优点:表结构的更改非常方便缺点:表的数量较多,相关的数据分散在不同的表中,数据读写时间较长,报表的生成较为困难方法2:只将子类映射为表表中包含子类自身的属性和继承自父类的属性customerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccesscustomerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess如何添加以下信息:ID:20050001 userName:董兰芳passWord:2008Email:abc@163.comcreditDegree:良好如何添加以下信息:ID:20050002 userName:刘振安passWord:2009Access:writeInsertintocustomer(customerID,userName,passWord,Email,creditDegree)values(20050001,’董兰芳’,’2008’,’abc@163.com’,’良好’);Insertintoadministrator(administratorID,userName,passWord,access)values(20050002,’刘振安’,’2009’,’write’);customerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess如何查询以下信息:查询ID为20050001的用户的姓名和Email查询ID为20050003的用户的姓名和权限selectuserName,EmailfromcustomerwherecustomerID=20050001;selectuserName,accessfromadministratorwhereadministratorID=20050003;customerIDuserNamepassWordEmailcreditDegreeadministratorIDuserNamepassWordaccess优点:表的数量较少,相关的数据集中在一个表中,数据的读写较为方便。缺点:表结构的修改较为困难,因为修改父类后,要同时修改所有的子类对应的表。方法3:只将父类映射为表selectuserName,Email,accessfromuserwhereuserID=?anduserType=?selectuserName,Email,accessfromuserwhereuserID=20050001anduserType=‘C’优点:表的数量较少,数据读写方便缺点:耦合性强;需要增加一列,以表明类的角色;浪费存储空间较多评价:以上三种方法各有所长,在实际应用中,根据具体情况选用。一般情况下,建议选用第二种方式,即只将子类映射为表,各表中包含子类自身的属性和继承自父类的属性。第二节关联关系的映射关联关系:一对一关联、一对多关联和多对多关联。“一”:多重性为“1”,“0..1”“多”:多重性为“1..n”,“0..n”网上商店的类图一、一对一映射将相关联的两个类分别映射成两张表,并将任意一张表的主键放入另一张表中作为外键。如果此处是0..1,该如何处理?二、一对多映射将关联的两个类映射为两张表,并将“一”表的主键放在“多”表中作为外键。三、多对多映射多对多映射时,应建立三张表:①为相关联的两个类分别建立两张表②再建一个关联表。这个关联表的属性由两部分构成:前两个表的主键,关联本身的属性。customerIDuserNamepassWordEmailcreditDegreecustomerIDproductIDamount数据库设计原则每一个类成为一个数据库表。关系映射:一对多的关系映射为数据库表的主外键关联(1方的主键加入n方成为外键)一对一的关系映射为数据库表的主外键关联(1方的主键加入另一方成为外键)多对多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。利用数据库三范式检查表,从而考察类图的分析是否合理,消除冗余数据。检查数据是否能够反映用例视图的需要;进一步与用户再次确认使用的数据。第三节完整性与约束1、父表的约束在强制对可选约束中,父表上操作的约束插入操作父表中的记录可以不受限制地添加到表中修改键值操作要修改父表的键值,必须首先修改子表中其所有子女的对应值删除操作要删除父表记录,必须首先删除或者重新分配其所有子女教练编号…教练队员10…*队员编号……教练编号教练表格队员表格在可选对可选以及可选对强制约束中,父表上操作的约束插入操作必须在至少有一个子女被加入或者至少已存在一个合法子女的情况下,父亲才可以加入修改操作必须至少有一个子女被创建或者至少已经有一名子女存在,父表才可以修改键值删除操作不使用级联删除子表的方法删除父表记录,而是将子表的外键置空医生编号…医生病人0…10…*病人编号……医生编号医生表格病人表格协会编号…协会学生0…11…*学号……协会编号协会表格学生表格在强制对强制约束中,父表上操作的约束插入操作可以在向父表执行插入操作后再向子表添加记录,也可以通过重新分配子表来实施完整性约束。修改键值操作修改键值前必须先更新子表对应的外键的值,或者先创建新的父表记录,再更新子表所对应的记录,使其与父表中的新记录关联起来,最后删除原父表记录。删除操作要删除父表中的记录,必须首先删除或者重新分配子表中所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 编制安全施工方案地基下陷
- 常见的酸和碱(二)课件-2024-2025学年九年级化学人教版(2024)下册
- 交通运输企业安全生产标准化建设基本规范简析
- 社区科普日活动方案
- 2025年龙岩货运资格证题库及答案大全
- 砼基础冬季施工方案
- 2025年滨州道路货运驾驶员从业资格证考试题库
- 电力企业安全知识竞赛活动策划方案
- 2025年周口道路运输从业人员资格考试内容有哪些
- 智慧停车项目可行性报告
- 2025年湖南司法警官职业学院单招职业倾向性测试题库学生专用
- 2025年呼和浩特职业学院单招职业倾向性测试题库及参考答案
- 医学遗传学教案-山东大学医学遗传学
- 四川德阳历年中考语文文言文阅读试题12篇(含答案与翻译)(截至2024年)
- 10以内加减法口算趣味学习500题(可打印)
- 合唱之美知到智慧树章节测试课后答案2024年秋山东航空学院
- 海南省澄迈县2024-2025学年七年级上学期期末考试地理试题(含答案)
- 食品安全演练预案及流程
- 2025年苏州卫生职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025届威海市高三语文上学期期末考试卷附答案解析
- 新能源汽车充电设施建设规划与管理计划
评论
0/150
提交评论