1AnIntroductiontoDatabaseSystem一概念结构设计(概要设计)什么是概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定概念结构设计是整个数据库设计的关键2AnIntroductiontoDatabaseSystem概念结构(续)现实世界机器世界信息世界需求分析概念结构设计3AnIntroductiontoDatabaseSystem概念结构(续)概念结构设计的特点(1)能真实、充分地反映现实世界(2)易于理解(3)易于更改(4)易于向关系、网状、层次等各种数据模型转换4AnIntroductiontoDatabaseSystem概念结构(续)描述概念模型的工具E-R模型5AnIntroductiontoDatabaseSystem概念结构设计的方法与步骤常用策略自顶向下地进行需求分析自底向上地设计概念结构6AnIntroductiontoDatabaseSystem概念结构设计的方法与步骤(续)自底向上设计概念结构的步骤第1步:抽象数据并设计局部视图第2步:集成局部视图,得到全局概念结构7AnIntroductiontoDatabaseSystem数据抽象与局部视图设计概念设计(概念模型,E-R模型)的主要内容:数据抽象局部视图设计8AnIntroductiontoDatabaseSystem概念结构设计——数据抽象抽象是对实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。概念结构是对现实世界的一种抽象9AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)三种常用抽象1.分类(Classification)定义某一类概念作为现实世界中一组对象的类型抽象了对象值和型之间的“ismemberof”的语义10AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)11AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)2.聚集(Aggregation)定义某一类型的组成成分抽象了对象内部类型和成分之间“ispartof”的语义12AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)聚集13AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)复杂的聚集,某一类型的成分仍是一个聚集更复杂的聚集14AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)3.概括(Generalization)定义类型之间的一种子集联系抽象了类型之间的“issubsetof”的语义继承性15AnIntroductiontoDatabaseSystem概念结构设计——数据抽象(续)概括16AnIntroductiontoDatabaseSystem概念结构设计——局部视图设计设计分E-R图的步骤:⒈选择局部应用⒉逐一设计分E-R图17AnIntroductiontoDatabaseSystem局部视图的集成各个局部视图即分E-R图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总E-R图。18AnIntroductiontoDatabaseSystem视图集成的两种方式多个分E-R图一次集成一次集成多个分E-R图通常用于局部视图比较简单时19AnIntroductiontoDatabaseSystem视图的集成(续)逐步集成用累加的方式一次集成两个分E-R图20AnIntroductiontoDatabaseSystem视图的集成(续)集成局部E-R图的步骤1.合并2.修改与重构21AnIntroductiontoDatabaseSystem视图的集成(续)视图集成22AnIntroductiontoDatabaseSystem合并分E-R图,生成初步E-R图各分E-R图存在冲突各个分E-R图之间必定会存在许多不一致的地方合并分E-R图的主要工作与关键合理消除各分E-R图的冲突23AnIntroductiontoDatabaseSystem消除不必要的冗余,设计基本E-R图基本任务消除不必要的冗余,设计生成基本E-R图合并初步E-R图分E-R图可能存在冗余的数据和冗余的实体间联系基本E-R图消除不必要的冗余24AnIntroductiontoDatabaseSystem验证整体概念结构视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:整体概念结构内部必须具有一致性,不存在互相矛盾的表达整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系整体概念结构能满足需要分析阶段所确定的所有要求25AnIntroductiontoDatabaseSystem概念结构设计——小结概念结构设计的步骤抽象数据并设计局部视图集成局部视图,得到全局概念结构验证整体概念结构26AnIntroductiontoDatabaseSystem二逻辑结构设计逻辑结构设计的任务把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换对数据模型进行优化27AnIntroductiontoDatabaseSystem逻辑结构设计(续)逻辑结构设计时的3个步骤28AnIntroductiontoDatabaseSystemE-R图向关系模型的转换转换内容转换原则29AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)E-R图向关系模型的转换要解决的问题如何将实体型和实体间的联系转换为关系模式如何确定这些关系模式的属性和码转换内容将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。30AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)实体型间的联系有以下不同情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式与某一端实体对应的关系模式合并(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。转换为一个独立的关系模式与n端对应的关系模式合并31AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(3)一个m:n联系转换为一个关系模式。例,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(学号,课程号,成绩)32AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。例,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:讲授(课程号,职工号,书号)33AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(5)具有相同码(主关键字)的关系模式可合并目的:减少系统中的关系个数合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序34AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)注意:从理论上讲,1:1联系可以与任意一端对应的关系模式合并但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更好些。35AnIntroductiontoDatabaseSystem逻辑结构设计E-R图向关系模型的转换数据模型的优化设计用户子模式36AnIntroductiontoDatabaseSystem数据模型的优化得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化关系数据模型的优化通常以规范化理论为指导