1、1 数据库系统设计要与应用程序设计相结合。数据库系统设计要与应用程序设计相结合。 根据信息需求、处理需求、根据信息需求、处理需求、DBMSDBMS 与软硬件系统特征进行设计。与软硬件系统特征进行设计。第第2 2章章 数据库建模数据库建模2.12.1数据库系统设计概述数据库系统设计概述2.1.1 2.1.1 数据库系统设计的目标与特点数据库系统设计的目标与特点 大型数据库系统设计是一项周期长、耗资多的大型数据库系统设计是一项周期长、耗资多的 工程项目。工程项目。2 设计包含两方面:设计包含两方面:1 1)结构设计结构设计: 概念结构概念结构 逻辑结构逻辑结构 物理结构物理结构2 2)行为设计行为
2、设计: 应用程序、事务处理等应用程序、事务处理等结构设计结构设计与与行为设计行为设计是相互影响的。是相互影响的。 (软工与数据库)(软工与数据库)3 核心是核心是: :逻辑结构设计与存储结构的设计逻辑结构设计与存储结构的设计2.1.2 2.1.2 数据库系统设计方法数据库系统设计方法 运用软件工程的思想与方法运用软件工程的思想与方法, , 根据数据库设计的特点根据数据库设计的特点, , 提出了各种准则与设计规程。提出了各种准则与设计规程。4 数据库系统设计步骤数据库系统设计步骤( (清华清华p184p184流程图)流程图): :2.2.概念结构设计概念结构设计 以某种形式表述的信息结构以某种形
3、式表述的信息结构 与与DBMSDBMS无关无关 可与用户交流可与用户交流 简明简明 避免设计出错避免设计出错 通常:通常:E-RE-R模型模型1.1.需求分析需求分析 对现实世界中的应用问题进行分析整理对现实世界中的应用问题进行分析整理5 全局逻辑结构全局逻辑结构 局部逻辑结构局部逻辑结构 含数据约束含数据约束 通常:通常:一组关系模式一组关系模式 基本表基本表 视图视图 根据具体根据具体DBMSDBMS使用的使用的数据模型进行设计数据模型进行设计 与计算机软硬件相关与计算机软硬件相关 专业人员进行应用程序设计的依据专业人员进行应用程序设计的依据 3. 3.逻辑结构设计逻辑结构设计6 4. 4
4、.数据库物理设计数据库物理设计 存储结构方面的设计存储结构方面的设计 数据、索引、日志、备份的数据、索引、日志、备份的 存储位置、存储结构、相应的系统配置。存储位置、存储结构、相应的系统配置。 6.6.数据库系统的运行与维护数据库系统的运行与维护5.5.数据库系统的实现(实施)数据库系统的实现(实施) 创建数据库对象创建数据库对象 编程编程 .7 按用户观点按用户观点 按机器观点按机器观点现实世界现实世界 概念模型概念模型 数据模型数据模型事物及联系事物及联系 抽抽 象象 信息模型信息模型 抽抽 象象 ( (机器世界机器世界) ) ( (信息世界信息世界) )2.2 2.2 数据模型数据模型8
5、2.2.12.2.1 数据模型三要素数据模型三要素描述系统的描述系统的静态特性静态特性( (数据结构数据结构) )、 动态特性(数据操纵)动态特性(数据操纵) 和和完整性约束条件完整性约束条件。术语:数据模型与概念模型术语:数据模型与概念模型 9( (1) 1) 数据结构数据结构( (静态静态) ): 对事物对事物性质性质的描述以及事物之间的描述以及事物之间联系联系的描述。的描述。数据模型三要素数据模型三要素:如如: :记录型、数据项、类型、宽度记录型、数据项、类型、宽度; ; 网状模型中的系型;网状模型中的系型; 关系模型中关系模型中基本表基本表的定义。的定义。10(2) (2) 数据操纵数
6、据操纵( (动态动态) ): 对数据库中数据允许执行的操纵的集合及规则。对数据库中数据允许执行的操纵的集合及规则。 操纵操纵: : 1.1.查询查询 2.2.更新更新 :增、删、改:增、删、改(3) (3) 数据的完整性约束数据的完整性约束: 保证数据的正确有效。保证数据的正确有效。112.2.2一些主要的数据模型一些主要的数据模型(一)数据库发展史上两种有影响的数据模型(一)数据库发展史上两种有影响的数据模型 有关概念:有关概念: 基本层次联系基本层次联系:两个记录型:两个记录型R Ri i、R Rj j具有具有一对多一对多( (包括一包括一对一对一) )联系联系L Lij ij 。称。称L
7、 Lijij为为基本层次联系基本层次联系, 称称R Ri i为为双亲记录双亲记录,称称R Rj j为为子女记录子女记录。 例:双亲记录例:双亲记录 子女记录子女记录 - - 学院学院 学科部学科部 学生学生 学生成绩学生成绩121.1. 层次模型层次模型 定义:满足下述两个条件的定义:满足下述两个条件的“基本层次联系基本层次联系”的集合的集合 1) 1) 具有且仅有一个结点无双亲具有且仅有一个结点无双亲( (该节点为树根该节点为树根) ) 2) 2) 其它结点有且仅有一个双亲其它结点有且仅有一个双亲例例1 1: 工厂工厂 科室科室 车间车间 树结构树结构 班组班组 子女子女 唯一双亲唯一双亲
8、13*多对多联系在层次模型中的表示多对多联系在层次模型中的表示 例:学生例:学生 S 与与 课程课程 C m:n 法法1:冗余结点法:冗余结点法 S SNO SNAME SEX C CNO CNAME C CNO CNAME S SNO SNAME SEX 法法2:虚拟结点法:虚拟结点法(用指引元指向被替代的结点用指引元指向被替代的结点) S SNO SNAME SEX C CNO CNAME C V.C S V.S14 *层次模型的数据操纵及完整性约束层次模型的数据操纵及完整性约束 数据操纵数据操纵:查询查询、增增 、删删 、改。改。 完整性约束完整性约束: 没双亲不能插入子女没双亲不能插入
9、子女 子女与双亲同时删除子女与双亲同时删除 更新所有相应记录更新所有相应记录(冗余结点冗余结点)15 *层次模型的存储结构层次模型的存储结构 a.邻接法邻接法 D02 R01T0101 T0102 T0103R02T0201T0202 R03 S980232 S980125 S980126 b.链接法链接法 层次序列链接法层次序列链接法 子女子女兄弟指引元法兄弟指引元法(两种指针两种指针) 16*层次模型的优点与缺点层次模型的优点与缺点 优点:优点: #模型简单易操纵模型简单易操纵 #实体间联系固定,实体间联系固定, 预先定义好的应用系统性能优预先定义好的应用系统性能优 #提供了较好的完整性支
10、持提供了较好的完整性支持 缺点:缺点: #应用为非树形结构时,使用不便应用为非树形结构时,使用不便 #存取必须按照定义好的存取路径进行存取必须按照定义好的存取路径进行 #逻辑独立性不高逻辑独立性不高172.2. 网状模型网状模型 定义定义: 满足下述条件的满足下述条件的“基本层次联系基本层次联系”的集合的集合 1) 1) 允许有一个以上结点无双亲允许有一个以上结点无双亲 2) 2) 至少有一个结点有一个以上的双亲至少有一个结点有一个以上的双亲 或有一个以上的与双亲的联系或有一个以上的与双亲的联系18 例:供应商例:供应商 零件零件 两个基本层次两个基本层次 两个结点无双亲两个结点无双亲 联系联
11、系 (set) (set) 供应关系供应关系 描述描述m:nm:n 有两个双亲结点有两个双亲结点 工工 人人 使用使用 维修维修 有两个与双亲的联系有两个与双亲的联系 设设 备备 19* DBTG系统:系统: a. 数据结构:数据项、记录、系数据结构:数据项、记录、系(set) 系:二级树系:二级树 A 首记录型首记录型 1:N B 属记录型属记录型 系型系型 (一个一个)系值系值S SNO SNAME SEX S980122 陈陈 一一 男男 S-SC C01 S980122 A C02 S980122 B C03 S980122 BSC CNO SNO GRADE 20b.数据操纵数据操纵
12、 查询查询、增增 、删删 、改。改。 查询有多种方法查询有多种方法 存取机制:入口点、导航、存取机制:入口点、导航、DBK直接存取直接存取 DML:(略略) 21c. 完整性约束完整性约束: 可插入无双亲的子女可插入无双亲的子女 可只删除双亲可只删除双亲 维护时无须考虑冗余节点的处理维护时无须考虑冗余节点的处理 也可以:也可以: 不插入无双亲的子女不插入无双亲的子女 删除双亲删子女删除双亲删子女22d.系的存储结构系的存储结构 单向链单向链 双向链双向链 环状链环状链 向首链向首链(带有指向首记录的指针带有指向首记录的指针)23*网状模型的优点与缺点网状模型的优点与缺点 便于描述多对多联系便于
13、描述多对多联系(多个一对多多个一对多) 存取时沿存取路径、顾及各个范围(系、记录)的当存取时沿存取路径、顾及各个范围(系、记录)的当前值,繁琐。前值,繁琐。 逻辑独立性不高逻辑独立性不高24(二二)关系模型关系模型 关系关系:命名的二维表:命名的二维表 区分关系与联系!区分关系与联系! 元组元组:表中一行:表中一行 属性属性:表中一列,列名称属性名:表中一列,列名称属性名 关系模式:关系模式:关系名关系名( (属性名属性名1 1,属性名,属性名2 2属性属性n)n)1.1.数据结构数据结构用用一组表一组表来表示来表示事物事物及事物间的及事物间的联系联系25 例:供应商例:供应商 Supplie
14、rs (Suppliers (SnoSno,Sname,State,City) ,Sname,State,City) 零件零件 Parts(Parts(PnoPno,Pname,Size,Color),Pname,Size,Color) PartsParts 供应商与零件供应商与零件 SP(SP(SnoSno,PnoPno,Quantity) Quantity) 两个实体集两个实体集 多对多多对多 关系必须是规范化的关系必须是规范化的元组分量不可再分元组分量不可再分 不规范:表中有表不规范:表中有表 26 实体完整性实体完整性 参照完整性参照完整性(引用完整性引用完整性) 用户定义完整性用户定
15、义完整性2.关系模型的操纵与完整性约束关系模型的操纵与完整性约束查询查询、增增 、删删 、改改273.关系模型的存储结构关系模型的存储结构 实体集实体集 表表 数据文件数据文件 联系联系关系数据模型中,实体和实体间的关系都用表来表示。在关系数据模型中,实体和实体间的关系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表对应数据库的物理组织中,表以文件形式存储,每一个表对应一种文件结构。一种文件结构。28 4. 4.关系模型的优点关系模型的优点: 1) 1) 描述的一致性描述的一致性实体集与实体集与联系联系均用关系描述均用关系描述 例:例:Employees(Employees(En
16、oEno,Ename,Eaddr,Ename,Eaddr,DnoDno) ) 职工与部门职工与部门 n:1n:1? Departments( Departments(DnoDno,Dname,Manager),Dname,Manager) 术语:关系术语:关系 联系联系292) 2) 操作由一张或操作由一张或N N张表张表 一张新表一张新表 即即原始数据与结果数据都是二维表。原始数据与结果数据都是二维表。 关系模型概念简单关系模型概念简单 易学易用易学易用 且有严格数学基础且有严格数学基础30 3) 3) 可直接描述多对多联系可直接描述多对多联系 例:例: Suppliers(SnoSuppl
17、iers(Sno,SnameSname,StateState,City) City) 供应商实体集供应商实体集 关系关系SuppliersSuppliers Parts(Pno,Pname,Size,Color) Parts(Pno,Pname,Size,Color) 零件实体集零件实体集 关系关系PartsParts SP(Sno SP(Sno,PnoPno,Quantity) Quantity) 供应商与零件供应商与零件联系联系 关系关系SPSP4)4)存储路径透明(用户不可见)存储路径透明(用户不可见)315.关系模型的缺点关系模型的缺点 存取路径透明存取路径透明 查询优化问题查询优化问
18、题 对新的需求难以适应对新的需求难以适应( (三三) )其他数据模型其他数据模型 面向对象模型面向对象模型 对象关系模型对象关系模型322.3 概念模型概念模型 按用户观点按用户观点 按机器观点按机器观点现实世界现实世界 概念模型概念模型 数据模型数据模型事物及联系事物及联系 抽抽 象象 信息模型信息模型 抽抽 象象 ( (机器世界机器世界) ) ( (信息世界信息世界) )332.3.1 概念模型的基本概念概念模型的基本概念1.1.实体实体(Entity)(Entity): 一个具体或抽象的事物一个具体或抽象的事物 可区分的可区分的 例如:一个学生、一个帐户、例如:一个学生、一个帐户、 一张
19、支票、一份合同。一张支票、一份合同。342.属性属性(Attribute): 事物某方面的特性事物某方面的特性 例如:学号、姓名、年龄例如:学号、姓名、年龄3.域域(Domain): 属性的取值范围属性的取值范围 例如:年龄在例如:年龄在15-35之间之间354.4.实体、实体集实体、实体集: 实体型实体型即类型,由实体名及属性名表示。同型实体具即类型,由实体名及属性名表示。同型实体具有共同的性质,因此,用相同属性描述。有共同的性质,因此,用相同属性描述。 实体型:学生实体型:学生( (学号,姓名,年龄学号,姓名,年龄) ) 实体集实体集: :同型实体的集合同型实体的集合 如:全体学生如:全体
20、学生 书上书上 实体集实体集: 包含实体型的概念包含实体型的概念 实体实体:张三:张三( (0207001102070011, ,张三张三,20),20)36 5. 5. 实体集之间的联系实体集之间的联系 按联系中实体集的数目分:按联系中实体集的数目分:二元联系:二元联系:两个实体集之间的联系两个实体集之间的联系 多元联系:多元联系:三个或多于三个实体集之间的联系三个或多于三个实体集之间的联系 一元递归:一个实体集内部的联系一元递归:一个实体集内部的联系37(一)(一) 二元联系二元联系一对一联系一对一联系 一对多联系一对多联系多对多联系多对多联系 二元联系按实体集间实体的映射可分为二元联系按
21、实体集间实体的映射可分为:381)1)一对一联系一对一联系( ( 例:班级例:班级 与与 班长班长 ) ) 实体集实体集1 1中的每一个实体,在实体集中的每一个实体,在实体集2 2中中至多至多 有一个实有一个实体与之联系,反之亦然。体与之联系,反之亦然。 班级班级班长班长39 2) 2)一对多联系(例:班级一对多联系(例:班级 与与 学生)学生) 实体集实体集1 1中的每一个实体,在实体集中的每一个实体,在实体集2 2中有中有n n 个(个(n=0n=0)实体与实体与之联系;实体集之联系;实体集2 2中的每一个实体,在实体集中的每一个实体,在实体集1 1中中至多至多 有一个实体有一个实体与之联
22、系。与之联系。班级班级学生学生403)3)多对多联系(例:学生多对多联系(例:学生 与与 课程)课程) 实体集实体集1 1中的每一个实体,在实体集中的每一个实体,在实体集2 2中中n n 个(个(n=0n=0)实体与之实体与之联系;反之亦然。联系;反之亦然。学生学生课程课程41 (二)(二) 多元联系多元联系 多路联系多路联系 参与联系的实体集个数大于二参与联系的实体集个数大于二 角色角色 例例1 1:学生学生 教师教师 课程课程 三者之间的三者之间的“教学教学”联系联系 一个学生选一门课程、可以对应多位老师一个学生选一门课程、可以对应多位老师 一位老师教一门课程、可以对应许多学生一位老师教一
23、门课程、可以对应许多学生 一个学生听一位老师的课、可以对应不同的课程一个学生听一位老师的课、可以对应不同的课程 这是三者之间的多对多联系这是三者之间的多对多联系 多元联系中的多元联系中的“多多”42 例例2:影星、影片与制片厂的联系:影星、影片与制片厂的联系 一位影星因一部影片与一个制片厂签约一位影星因一部影片与一个制片厂签约 一个制片厂因一部影片与若干影星签约一个制片厂因一部影片与若干影星签约 一个制片厂、一个影星因不同的影片多次签约一个制片厂、一个影星因不同的影片多次签约 多元联系中的多元联系中的“一一”与与“多多”43 (三)(三) 一元递归联系一元递归联系 实体集内部,不同实体之间的联
24、系实体集内部,不同实体之间的联系 例:公司内每一成员都是员工例:公司内每一成员都是员工 同属于同属于 员工员工 这一实体集这一实体集 但:总经理但:总经理 管理管理 部门经理部门经理 部门经理部门经理 管理管理 普通员工普通员工 员工员工 实体集内部的实体集内部的“管理管理”联系联系 是一个是一个一元递归联系一元递归联系 这里是一个这里是一个一对多一对多联系联系 也有多对多也有多对多44 E EEntity Entity 实体实体 R RRelationship Relationship 联系联系2.3.2 E/R2.3.2 E/R模型表示法模型表示法 E/RE/R模型是一种图形方法模型是一种
25、图形方法 E/RE/R图图45 1.1.实体集实体集: : 2.2.联系联系: :学生学生一对一一对一多对一多对一多对多多对多学生学生班级班级在在班长班长班级班级负责负责课程课程学生学生选修选修463.多元联系多元联系:供应商供应商零件零件工程工程供应供应三元联系是因为三元联系是因为“供应供应”活动涉及三个实体集活动涉及三个实体集这里这里, 三者之间是多对多的联系三者之间是多对多的联系47影星影星制片公司制片公司影片影片签约签约这里这里,“签约签约”活动涉及三个实体集活动涉及三个实体集,是三元联系是三元联系多个多个影星影星多个多个影片对应影片对应一个一个制片公司制片公司*影片决定制片公司影片决
26、定制片公司,E/R模型无法表明模型无法表明,属属“函数依赖函数依赖”范畴范畴484.角色角色:系列剧集系列剧集是续集是续集首集首集续集续集在同一个联系中,一个实体集在联系中可能出现一次在同一个联系中,一个实体集在联系中可能出现一次以上,将实体集在联系中的角色,用文字标在与联系以上,将实体集在联系中的角色,用文字标在与联系的连线上的连线上一元递归一元递归495. 实体集的属性实体集的属性 、 联系的属性联系的属性:供应商供应商零件零件工程工程供应供应数量数量名称名称地点地点地址地址名称名称名称名称规格规格50 例例:(P75 :(P75 图图4-2)4-2) 电影数据库需要存储影片的片名、年份、
27、片长、体裁;电影数据库需要存储影片的片名、年份、片长、体裁;影星的名字、地址;制片公司的名称、地址。影星的名字、地址;制片公司的名称、地址。 一个制片公司可以拍摄多部电影;每一部电影只属于一个制片公司可以拍摄多部电影;每一部电影只属于一个制片公司。一个制片公司。 每一部影片有多位影星参加摄制;每一位影星可以拍每一部影片有多位影星参加摄制;每一位影星可以拍摄多部影片。摄多部影片。 设计设计E-RE-R图图2.3.3 2.3.3 几个例子几个例子51电影电影影星影星制片公司制片公司属于属于参演参演片长片长体裁体裁片名片名年份年份名字名字地址地址名字名字地址地址52 设计设计E-RE-R图图例例:
28、: 数据库存放影星与制片公司签约的有关信息数据库存放影星与制片公司签约的有关信息, ,需要存储需要存储影片的片名、年份、片长、体裁;影星的名字、地址;制影片的片名、年份、片长、体裁;影星的名字、地址;制片公司的名称、地址。片公司的名称、地址。 以及每一位影星与每一个制片公司签约出演每一部影以及每一位影星与每一个制片公司签约出演每一部影片的薪水。片的薪水。 一个制片公司可与一个制片公司可与多位多位影星签约一部影片;影星签约一部影片; 一个影星签约一部电影,对应一个影星签约一部电影,对应唯一唯一的制片公司;的制片公司; 一个制片公司与一位影星,可以签约一个制片公司与一位影星,可以签约多部多部电影电
29、影53影片影片制片公司制片公司签约签约薪水薪水姓名姓名地址地址年份年份片名片名名称名称地址地址影星影星片长片长体裁体裁方案方案1 :P78 图图4-754方案方案2 2: P79 P79 图图4-8 (4-8 (不好不好) )这是为了消除联系这是为了消除联系的属性而给出的替的属性而给出的替代方案代方案.当实体只有作为标当实体只有作为标识的唯一属性时识的唯一属性时, 此法不可取此法不可取影片影片制片公司制片公司签约签约薪水薪水姓名姓名地址地址年份年份片名片名名称名称地址地址影星影星片长片长体裁体裁薪水薪水55例:库存管理例:库存管理: :涉及涉及管理员、仓库、零件及库存信息。管理员、仓库、零件及
30、库存信息。 每一仓库若干管理员;每一仓库若干管理员; 每一管理员只在一个仓库工作;每一管理员只在一个仓库工作; 每一个仓库的管理员中有一个负责人。每一个仓库的管理员中有一个负责人。 每一种零件存放于若干仓库;每一种零件存放于若干仓库; 每一仓库存放若干种零件。每一仓库存放若干种零件。管理员:编号、姓名、年龄管理员:编号、姓名、年龄仓库:编号、面积、地址、电话仓库:编号、面积、地址、电话零件:编号、名称、规格零件:编号、名称、规格每一仓库中每一种零件的数量每一仓库中每一种零件的数量56职工职工简单起见,这里实体集的属性没有画出简单起见,这里实体集的属性没有画出有时将实体联系与实体属性分开画有时将
31、实体联系与实体属性分开画仓库仓库零件零件管理员管理员存放存放领导领导属于属于负责人负责人数量数量572.3.2.3.4 4 多元(路)联系转换为二元联系多元(路)联系转换为二元联系 例:(例:(P79 P79 图图4-94-9) “签约签约”涉及两个制片公司涉及两个制片公司, ,一个影星和一个影片一个影星和一个影片 含义是含义是: :一个是影星所属制片公司一个是影星所属制片公司( (另外签有长期合同另外签有长期合同) ) 一个是拍摄该影片的制片公司一个是拍摄该影片的制片公司 给定影星、电影和制作公司给定影星、电影和制作公司对应唯一的对应唯一的影星所属公司影星所属公司 给定影星、电影和所属公司给
32、定影星、电影和所属公司对应唯一的对应唯一的制作公司制作公司 给定两个公司和电影给定两个公司和电影可以对应多位可以对应多位影星影星 给定两个公司和影星给定两个公司和影星可以对应多部可以对应多部影片影片 58多路联系多路联系P77图图4-6 影星影星制片公司制片公司影片影片签约签约影星所影星所属公司属公司影片制影片制造公司造公司既包含多个实体集既包含多个实体集, ,又包含具有多重角色的实体集又包含具有多重角色的实体集59 P79 图图4-9 转换为多个二元联系转换为多个二元联系( 公司公司1,公司,公司2,影星,片,影星,片 )一个合同一个影星一个合同一个影星一个影星多个合同一个影星多个合同影星影
33、星制片公司制片公司合同合同影片影片签约签约签约签约制造制造影星所属影星所属弱实体弱实体60 问题的提出:问题的提出: 大学里,大学里,学生学生分为本科生、研究生分为本科生、研究生 本科生本科生的有关信息是的有关信息是 学号、姓名、年龄学号、姓名、年龄、班级班级 研究生研究生的有关信息是的有关信息是 学号、姓名、年龄学号、姓名、年龄、导师、方向导师、方向 2.3.52.3.5 E/RE/R图中的子类图中的子类61 本科生本科生 (B01070302,柳力,柳力,19,010703) (B01070529,杜慧,杜慧,20,010705) . 研究生研究生 ( Y01070001,张一,张一,23
34、,陈青,陈青, 多媒体多媒体) (Y01070004,王二,王二,22,张易,人工智能张易,人工智能) .62 学生学生不论本科生研究生均可:选课、参加学生社团不论本科生研究生均可:选课、参加学生社团 关心:关心: 学生选课情况、学生与社团之间的学生选课情况、学生与社团之间的“参加参加”联系联系 研究生研究生参与学术活动,参与学术活动,本科生本科生不参与不参与 关心:关心: 研究生与学术活动的研究生与学术活动的“参与参与”联系联系63 不同的实体集有若干不同的实体集有若干共同的共同的 属性属性和和与其他实体集的联系,与其他实体集的联系, 各自又有若干各自又有若干特殊的特殊的 属性属性和和与别的
35、实体集的联系。与别的实体集的联系。本科生或研究生本科生或研究生 是是 学生学生 的的子类子类, 或者说或者说属于属于 “学生学生”类类 (isa) 超类超类:共同点:共同点-“-“学生学生” 子类子类:特殊性:特殊性-“-“本科生本科生”“”“研究生研究生”64 用用 这一这一特殊特殊联系表示联系表示“子类子类”,下图下图C是是D的子类的子类isaCDisaD 和和C共有的共有的属性属性D独有的属性独有的属性65学生学生isaisa本科生本科生研究生研究生班级班级导师导师学号学号年龄年龄姓名姓名方向方向课程课程社团社团学术学术活动活动参与参与参参加加选选66 例:例: 一般影片存储片名、片长、
36、年份、体裁等信息一般影片存储片名、片长、年份、体裁等信息 凶杀片另加一个凶杀片另加一个“武器武器”的信息的信息 卡通片另加一个卡通片另加一个“配音配音”联系联系影片影片-超类超类 凶杀片凶杀片-子类子类 (有特殊的属性)(有特殊的属性) 卡通片卡通片-子类子类 (有特殊的联系)(有特殊的联系)67影片影片isaisa卡通片卡通片凶杀片凶杀片年份年份片名片名武器武器配音配音片长片长体裁体裁68 E/R模型中的继承:模型中的继承: 认为认为“研究生研究生” 具有具有“学生学生”中通用的属性中通用的属性 也具有也具有“研究生研究生”特殊的属性特殊的属性 既有既有“学生学生”的联系的联系“选课选课”等
37、等 又有又有“研究生研究生”与学术活动的特殊的联系与学术活动的特殊的联系“参与参与”卡通片卡通片 .+“配音配音”这一联系这一联系 凶杀片凶杀片 .+“武器武器”这一属性这一属性69 对于卡通凶杀片无须引入新子类对于卡通凶杀片无须引入新子类 认为有这样的实体认为有这样的实体它拥有影片、卡通片及凶杀它拥有影片、卡通片及凶杀片片 的属性的属性 如果想知道配音演员的信息,如果想知道配音演员的信息, 可通过可通过“配音配音”联系去找;联系去找; 如果想知道使用的武器,可从凶杀片信息中找如果想知道使用的武器,可从凶杀片信息中找702.3.6 设计原则设计原则 P82-85 1)真实性真实性 联系联系:多
38、对多多对多?一对多一对多?. 与应用背景有关与应用背景有关 影星与电影影星与电影 课程与课程与 教师教师 人与车人与车 属性属性: 与实体集(型)有关与实体集(型)有关 与应用系统有关与应用系统有关 影星影星 -私人汽车的汽缸数私人汽车的汽缸数712)避免冗余避免冗余 任何冗余任何冗余,导致潜在的不一致导致潜在的不一致,空间的浪费空间的浪费学生学生 课程课程选选学号学号课号课号年龄年龄姓名姓名学号学号名称名称姓名姓名成绩成绩723)避免引入过多的元素避免引入过多的元素 P23影片影片所有权所有权制片公司制片公司属于属于代表代表73P84 图图4-12影片影片制片公司制片公司影星影星参演参演属于
39、属于工作于工作于744)选择适当的元素类型选择适当的元素类型 问题之一问题之一:属性属性? 实体集实体集? 如果某个事物除了标识如果某个事物除了标识(如如:编号编号 ,名称名称)之外之外 没有其他的属性没有其他的属性,那么作属性更合适那么作属性更合适; 否则否则,作为实体集更合适。作为实体集更合适。75制片公司作为实体集制片公司作为实体集电影电影制片公司制片公司属于属于名称名称地址地址76电影电影制片公制片公司名称司名称制片公制片公司地址司地址制片公司的名称和地址作为电影的属性制片公司的名称和地址作为电影的属性同一公司的多部影片重复相同内容同一公司的多部影片重复相同内容77电影电影制片公制片公
40、司名称司名称只需存储制片公司的名称只需存储制片公司的名称,制片公司的名称作为电影制片公司的名称作为电影的属性的属性,是是必要的冗余必要的冗余78类似的情况类似的情况: 只关心职工所在部门只关心职工所在部门,不关心部门其他情况不关心部门其他情况 -部门作为职工的属性即可部门作为职工的属性即可 否则否则,部门应作为实体出现部门应作为实体出现实体集是需要由若干属性来描述的实体集是需要由若干属性来描述的 特例:仅单一属性特例:仅单一属性 但作为集合与其他实体集发生联系。但作为集合与其他实体集发生联系。 实体集实体集79问题之二问题之二: 联系联系? 实体集实体集? 大多数情况下,根据个人考虑问题的思路
41、大多数情况下,根据个人考虑问题的思路 选选“联系联系”或或“实体集实体集”表达均可表达均可 但具体问题,有一些具体因素要考虑。例如:但具体问题,有一些具体因素要考虑。例如: 有关有关 影星与制片公司签约问题影星与制片公司签约问题 用用“签约签约”这一联系这一联系? 用用“合同合同”这一实体集这一实体集? 80多路联系多路联系P771)制片公司有两个制片公司有两个: 影星所属影星所属 影片所属影片所属两个公司两个角色两个公司两个角色影星影星制片公司制片公司影片影片签约签约影星所影星所属公司属公司影片制影片制造公司造公司81 P79影星影星制片公司制片公司合同合同影片影片签约签约签约签约制造制造影
42、星所属影星所属( 公司公司1,公司,公司2,影星,片,影星,片 )两个公司两个联系两个公司两个联系弱实体集弱实体集822)考虑一个影星、因一个影片与一组(任意多个,担不同角色)公考虑一个影星、因一个影片与一组(任意多个,担不同角色)公司签约。司签约。 不能用任意多个角色不能用任意多个角色 不能用任意多个联系不能用任意多个联系 用连接实体集(合同)实现用连接实体集(合同)实现影星影星制片公司制片公司合同合同影片影片签约签约签约签约签约签约多对多多对多弱实体集弱实体集 P85 83 约束的分类约束的分类: 键(键(keys) 也称关键字也称关键字 键码键码 码码 -实体完整性实体完整性 单值约束(
43、单值约束(single-value constraints) -值在某种情况下具有唯一性值在某种情况下具有唯一性 参照完整性的约束参照完整性的约束-参照关系参照关系 引用完整性引用完整性 域的约束域的约束-取值范围取值范围 一般约束一般约束-任意断言任意断言2.3.7 对约束建模对约束建模E/R模型中表达完整性约束模型中表达完整性约束84 一、一、 E/R 模型中的键模型中的键 实体集的键由实体集中的一个或多个属性构成实体集的键由实体集中的一个或多个属性构成,用来唯用来唯一地标识实体一地标识实体, 且无多余属性。且无多余属性。影片影片年份年份片名片名片长片长 E/R 模型中的表示:模型中的表示
44、:85 键键 (候选码(候选码 键码键码 码)码) 主键主键: 用下画线标明用下画线标明 其它键其它键 不标不标 或或 另加注释另加注释 例例: 身份证号身份证号 车牌号车牌号 学号学号 (片名,年份)(片名,年份).*弱实体集的键属性可以不在实体集内部。弱实体集的键属性可以不在实体集内部。86二、二、 单值约束单值约束 每个实体每个实体 键具有唯一性键具有唯一性。 属性不可分属性不可分 1NF ;具体实体的任意属性最多一个值;具体实体的任意属性最多一个值 多对一多对一 一对一一对一 (允许空值)(允许空值)87 如如: 职工有唯一部门职工有唯一部门 学生有唯一的班级学生有唯一的班级 电影有唯
45、一的制片公司电影有唯一的制片公司三、三、 参照完整性约束参照完整性约束 参照完整性参照完整性: 被参照对象存在且唯一。被参照对象存在且唯一。88 E/R图中表示参照完整性:图中表示参照完整性: 多对一多对一 或一对一或一对一 联系中联系中 圆箭头表示圆箭头表示“存在存在”/“非空非空” 实体集实体集1 实体集实体集2联系联系实体集实体集1中的实体中的实体对应一个且只对应一个对应一个且只对应一个实体集实体集2中的实体中的实体89 P88例例:经理必须对应一经理必须对应一个制片公司个制片公司制片公司有时可制片公司有时可以没有经理以没有经理有且只有一个制有且只有一个制片公司片公司 影片影片 制片公司
46、制片公司属于属于 经理经理经营经营90 职工职工部门部门属于属于例例:职工只能属于一个部门职工只能属于一个部门职工必须属于一个部门职工必须属于一个部门91四、其他约束四、其他约束 域约束(度约束)域约束(度约束) 把属性的值限制在一个范围内。把属性的值限制在一个范围内。 SQL支持支持 一般约束一般约束(用户自定义约束用户自定义约束) 一部电影最多一部电影最多10个影星个影星电影电影影星影星出演出演 10E/R模型中可以把一个极限数放在连线上,模型中可以把一个极限数放在连线上,限制联系中相应实体值的个数限制联系中相应实体值的个数P8992 2.3.8 弱实体集弱实体集 弱实体集弱实体集:组成一
47、个实体集的键的一些属性取自另一个组成一个实体集的键的一些属性取自另一个实体集的键属性实体集的键属性,这样的实体集称为弱实体集。这样的实体集称为弱实体集。 表示法表示法: 弱实体集与提供键属性弱实体集与提供键属性的实体集间的联系的实体集间的联系弱实体集弱实体集93产生的原因产生的原因:第一第一:实体集属于层次结构实体集属于层次结构 弱实体集附属于弱实体集附属于. P90 图图4-20 键键=公司名公司名+组号组号键键=公司名公司名摄制组摄制组制片公司制片公司属于属于组号组号公司名公司名地址地址拍摄班子94楼与小区楼与小区:楼的键楼的键:小区名小区名+楼号楼号住户数住户数楼楼小区小区小区名小区名楼
48、号楼号面积面积位置位置层数层数属于属于95 第二种原因第二种原因: 连接实体集连接实体集(为消除多路联系而引入为消除多路联系而引入) P90 图图4-22 弱实体集附属于弱实体集附属于.属性略属性略Keys=?这里这里“星星+片片”对应多个公司对应多个公司影星影星制片公司制片公司影片影片签约签约签约签约签约签约合同合同96了解:了解:数据库设计与软件工程开发的关系;数据库设计的数据库设计与软件工程开发的关系;数据库设计的原则。原则。熟练掌握:熟练掌握:E-RE-R图的主要概念(包括:实体、实体集、属图的主要概念(包括:实体、实体集、属性、域、键、主键、实体之间的联系);性、域、键、主键、实体之间的联系);E-RE-R图表示图表示法(包括:法(包括:一般实体集;一对多、多对多、多元一般实体集;一对多、多对多、多元(多路)、一元递归联系;子类实体集及其联系;(多路)、一元递归联系;子类实体集及其联系;弱实体集及其联系;主键和参照完整性)。要求能弱实体集及其联系;主键和参照完整性)。要求能够熟练地把现实世界的事物及联系抽象为够熟练地把现实世界的事物及联系抽象为E-RE-R模型。模型。 数据模型三要素。数据模型三要素。掌握:掌握:数据库设计的步骤。数据库设计的步骤。 数据模型的概念数据模型的概念