530 likes | 729 Views
上课与催眠. 1.2.3 常用数据模型. 非关系模型 层次模型( Hierarchical Model ) 网状模型 (Network Model ) 数据结构:以基本层次联系为基本单位 基本层次联系:两个记录以及它们之间的一对多(包括一对一 ) 的联系. 常用数据模型 ( 续 ). 关系模型 (Relational Model) 数据结构:表 面向对象模型 (Object Oriented Model ) 数据结构:对象. 1.2 数据模型. 1.2.1 概念模型 1.2.2 数据模型的组成要素 1.2.3 最常用的数据模型
E N D
上课与催眠 An Introduction to Database Systenm
1.2.3 常用数据模型 • 非关系模型 • 层次模型(Hierarchical Model) • 网状模型(Network Model ) • 数据结构:以基本层次联系为基本单位 • 基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系 An Introduction to Database Systenm
常用数据模型(续) • 关系模型(Relational Model) • 数据结构:表 • 面向对象模型(Object Oriented Model) • 数据结构:对象 An Introduction to Database Systenm
1.2 数据模型 1.2.1 概念模型 1.2.2 数据模型的组成要素 1.2.3 最常用的数据模型 1.2.4 层次模型 1.2.5 网状模型 1.2.6 关系模型 An Introduction to Database Systenm
1.2.6 关系模型 • 1. 关系数据模型的数据结构 • 2. 关系数据模型的操纵 • 3. 关系数据模型的完整性约束 • 4. 关系数据模型的存储结构 • 5. 关系数据模型的优缺点 • 6. 典型的关系数据库系统 An Introduction to Database Systenm
关系模型 • 最重要的一种数据模型。也是目前主要采用的数据模型 • 1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出 • 本课程的重点 An Introduction to Database Systenm
关系数据模型的数据结构 • 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 An Introduction to Database Systenm
关系模型的基本概念 • 关系(Relation) • 一个关系对应通常说的一张表。 • 元组(Tuple) • 表中的一行即为一个元组。 • 属性(Attribute) • 表中的一列即为一个属性,给每一个属性起一个名称即属性名。 An Introduction to Database Systenm
关系模型的基本概念 • 主码(Key) • 表中的某个属性组,它可以唯一确定一个元组。 • 域(Domain) • 属性的取值范围。 • 分量 • 元组中的一个属性值。 • 关系模式 • 对关系的描述 • 关系名(属性1,属性2,…,属性n) • 学生(学号,姓名,年龄,性别,系,年级) An Introduction to Database Systenm
关系数据模型的数据结构(续) • 实体及实体间的联系的表示方法 • 实体型:直接用关系(表)表示。 • 属性:用属性名表示。 • 一对一联系:隐含在实体对应的关系中。 • 一对多联系:隐含在实体对应的关系中。 • 多对多联系:直接用关系表示。 An Introduction to Database Systenm
关系数据模型的数据结构(续) • 例1:学生、系、系与学生之间的一对多联系: • 学生(学号,姓名,年龄,性别,系号,年级) • 系 (系号,系名,办公地点) • 例2:系、系主任、系与系主任间的一对一联系 An Introduction to Database Systenm
关系数据模型的数据结构(续) • 例3:学生、课程、学生与课程之间的多对多联系: • 学生(学号,姓名,年龄,性别,系号,年级) • 课程(课程号,课程名,学分) • 选修(学号,课程号,成绩) An Introduction to Database Systenm
关系数据模型的数据结构(续) • 关系必须是规范化的,满足一定的规范条件 • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。 An Introduction to Database Systenm
例题:给出用E-R图设计的数据库,记录球员、球队和球迷的信息,包括:例题:给出用E-R图设计的数据库,记录球员、球队和球迷的信息,包括: • 对于每个球队,球队的名称、以及队服的颜色。 • 对于每个队员,他们的姓名。 • 对于每个球迷,他们的姓名、喜爱的球队、喜爱的队员。 An Introduction to Database Systenm
分析: • 本题中共有三个实体,分别是球员、球队和球迷。 • 球员的属性是姓名 • 球迷的属性是姓名、喜爱的球队、球员 • 球队的属性是队名、队服颜色 An Introduction to Database Systenm
分析 • 确定主码:三个实体需要分别添加球员编号、球队编号、球迷编号唯一标识三个实体。 • 确定实体关系 • 画出E-R图 An Introduction to Database Systenm
队名 颜色 编号 球队 1 1 N N N N 球队-球员 球队-球迷 编号 队员-球迷 球迷 球员 队号 姓名 编号 姓名 球员 An Introduction to Database Systenm
转化成关系: • 转化原则 • 一个实体型转换为一个独立的关系模式,实体的属性就是关系属性 • 一个1:1联系与任意一端的关系模式合并,需在该关系模式的属性中加入另一个关系模式的码和联系本身的属性 • 一个1:N联系需要与n端对应的关系模式合并,需在n端关系模式的属性中加入另一个关系模式的码和联系本身的属性 An Introduction to Database Systenm
一个m:n联系转换为一个关系模式。与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,而关系的主码为各实体主码的组合,构成联合主键一个m:n联系转换为一个关系模式。与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,而关系的主码为各实体主码的组合,构成联合主键 • 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,而关系的主码为各实体主码的组合,构成联合主键 • 具有相同码的关系模式可以合并 An Introduction to Database Systenm
转化关系: • 球队(球队编号、队名、颜色) • 球员(球员编号、姓名、队名) • 球迷(球迷编号、姓名、队名) • 队员-球迷(球员编号、球迷编号) An Introduction to Database Systenm
建立数据库 • 注意:每一个关系形成一张数据库中的表。 An Introduction to Database Systenm
例题2 • 例2:对上述例题加以修改,使之球员中间有队长。 • 分析:采用同一实体内部的联系;采用班长和班级的关系。 An Introduction to Database Systenm
队名 颜色 编号 1 球队 • 1 1 • N N 球队-球员 球队-球迷 1 队长 编号 N 队员-球迷 球迷 球员 1 队号 姓名 编号 姓名 An Introduction to Database Systenm
问题1:球队-队长之间的1:1关系是否可以去掉?有何影响?问题1:球队-队长之间的1:1关系是否可以去掉?有何影响? • 问题2:队长-球员之间的1:N联系的转换如何添加联系的属性?有何影响? • 问题1与问题2将如何解决? An Introduction to Database Systenm
队名 颜色 球员编号 编号 1 球队 • 1 1 • N N • N N 球队-球员 球队-球迷 1 队长 编号 N 队员-球迷 球迷 球员 1 队号 姓名 编号 姓名 An Introduction to Database Systenm
例题3 • 修改上例的E-R图,使之为每一个队员记录他所服役的球队历史,包括在每个球队的开始时间和转会时间。 An Introduction to Database Systenm
队名 颜色 球员编号 编号 1 球队 • N 1 • N N • N N 球队-球员 球队-球迷 1 队长 编号 N 队员-球迷 球迷 球员 1 队号 姓名 编号 姓名 An Introduction to Database Systenm
2.关系模型的数据操纵 • 查询、插入、删除、更新 • 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合 • 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干” An Introduction to Database Systenm
3.关系模型的完整性约束 • 实体完整性:每个关系应有一个主键,主键的值是唯一的。主键的值不能为NULL。 • 参照完整性:(又称引用完整性) 学生(学号、姓名、性别、专业号、年龄) 专业(专业号、专业名) 学生关系中专业号的值必须是确实存在的值 • 用户定义的完整性:(又称域完整性) 属性值必须是域中的值,必须取自特定值的集合或者是处于特定的应用。 An Introduction to Database Systenm
4.关系数据模型的存储结构 • 表以文件形式存储 • 有的DBMS一个表对应一个操作系统文件 • 有的DBMS自己设计文件结构 An Introduction to Database Systenm
5.关系模型的优缺点 • 优点 • 建立在严格的数学概念的基础上 • 概念单一。数据结构简单、清晰,用户易懂易用 • 实体和各类联系都用关系来表示。 • 对数据的检索结果也是关系。 • 关系模型的存取路径对用户透明 • 具有更高的数据独立性,更好的安全保密性 • 简化程序员的工作和数据库开发建立的工作 An Introduction to Database Systenm
关系模型的优缺点(续) • 缺点 • 存取路径对用户透明导致查询效率往往不如非关系数据模型 • 为提高性能,必须对用户的查询请求进行优化 • 增加了开发数据库管理系统的难度 An Introduction to Database Systenm
6. 典型的关系数据库系统 • ORACLE • SYBASE • INFORMIX • DB/2 • COBASE • PBASE • EasyBase • DM/2 • OpenBase An Introduction to Database Systenm
E-R模型设计 • 为银行设计一个数据库,包括顾客和帐户的信息。顾客信息包括姓名,地址,电话,社会保险号。帐户包括编号,类型(例如存款,支票),和金额。画出E-R模型图。 An Introduction to Database Systenm
编号 姓名 地址 1 顾客—帐户 m 顾客 帐户 金额 电话 保险号 类型 例4:E-R模型 An Introduction to Database Systenm
关系模式 顾客 帐户 保险号 An Introduction to Database Systenm
例5: • 修改上面的图,使一个顾客只能有一个帐号,并且顾客可以有一个地址集合(街道,城市,省份的三元组)画出E-R模型图 An Introduction to Database Systenm
编号 电话 姓名 地址编号 顾客—帐户 1 1 顾客 帐户 保险号 金额 m 地址—顾客 类型 1 地址编号 省份 地址 城市 街道 An Introduction to Database Systenm
例6: • 保存一个家谱,应该有一个实体:Person,每个人记录的信息包括姓名和联系(母亲,父亲,孩子),画出E-R模型图。 An Introduction to Database Systenm
姓名 父子(女) 母子(女) 1 m n 1 父亲 人 母亲 1 拥有(子女) m 孩子 An Introduction to Database Systenm
姓名 性别 n 1 父-子女 母-子女 人 n 1 m 1 拥有子女 人 An Introduction to Database Systenm
例7: • 修改上题以便包含下列信息: • 女人 • 男人 • 做父母的人 An Introduction to Database Systenm
姓名 性别 人 m 1 拥有子女 人 An Introduction to Database Systenm
作业:做出E-R模型 • 实体集:俱乐部、球队、球员 • 假设俱乐部的名字是唯一的。一个俱乐部不会有两个同名的球队。一个球队不会有两个相同编号的队员。 • 然而,在不同的球队可以有同号的队员,并且在不同的俱乐部可以有同名的球队。 An Introduction to Database Systenm