关系数据库模型与关系数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– – –
外码: 用来与另一个关系进行连接的属性, 外码 : 用来与另一个关系进行连接的属性 , 是另一个关系的主码。 是另一个关系的主码。 域(Domain) )
属性的取值范围。 属性的取值范围。
关系模式
是对关系的描述,格式如下: 是对关系的描述,格式如下: 关系名(属性1,属性2, ,属性n) 关系名(属性 ,属性 ,…,属性 ) 学生(学号,姓名,年龄,性别, 年级) 学生(学号,姓名,年龄,性别,系,年级)
确定实体之间的联系。 确定实体之间的联系。
一个有效的方式是: 一个有效的方式是:考察在这个应用范围内任意两个实体 之间是否存在联系,进一步确定是1 还是M 联系等。 之间是否存在联系,进一步确定是1:1,1:N还是M:N联系等。
确定属性。 确定属性。
确定属性的原则是不可再分的语义单位; 确定属性的原则是不可再分的语义单位;实体和属性之间 的关系只能是1 不同实体类型的属性之间应无直接关系。 的关系只能是1:N的,不同实体类型的属性之间应无直接关系。
学生
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 班级代号 年龄 班级代号 1001 1001 1001 1002 1002 19 20 20 20 19
课程
课程号 01 02 03 04 课程名 数据库 数据结构 编译 PASCAL 学分 4 4 4 2
第二章关系数据库基础
2.1 2.2 2.3 2.4
关系模型 关系数据库设计 概念模型设计 E—R模型到关系模型的转换
2.1关系模型 关系模型
最重要的一种数据模型。也是目前主要采用的 数据模型。 1970年由美国IBM公司San Jose研究室的研 究员E.F.Codd提出
2.1.1关系数据模型的数据结构 关系数据模型的数据结构
– –
关系模型:用二维表格表示实体集以及实体集之间联系的模型。 关系模型:用二维表格表示实体集以及实体集之间联系的模型。 关系( 关系(Relation) )
一个关系对应通常说的一张二维表。 一个关系对应通常说的一张二维表。

元组( 元组(Tuple) )
表中的一行即为一个元组。 表中的一行即为一个元组。
专业(专业号,专业名,专业带头人)
班级代号号 班级代号号 1001 1002 1003 班级名称 10 应用 1 10 应用 2 10 网络 1
关系数据模型的数据结构(续 关系数据模型的数据结构 续)
课程
例3 学生、课程、学生与课程之间的 多对多联系
m
学生(学号,姓名,性别,班级代号,年龄)选修 课程(课程号,课程名,学分) n 选修(学号,课程号,成绩) 学生 m:n联系 联系
• 或者取空值(F的每个属性值均为空值) • 或者等于S中某个元组的主码值。
参照完整性规则(续 参照完整性规则 续)
学生关系中每个元组的“班级代号”属性只 取下面两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是班级关系中某个 元组的“班级代号”值,表示该学生不可能分 配到一个不存在的班级中
关系数据模型的数据结构(续 关系数据模型的数据结构 续)
例1 班级实体、班长实体以及班级和班长 之间1:1的联系
班级(班级号、名称、人数) 班级(班级号、名称、人数) 班长(学号、姓名、性别、年龄、班级号) 班长(学号、姓名、性别、年龄、班级号)
班级(班级号、名称、人数) 班级(班级号、名称、人数)
班级号 40 41 42
名称 07应用一班 07应用二班 07网络管理
人数 60 65 50
班长(学号、姓名、性别、年龄、班级号) 班长(学号、姓名、性别、年龄、班级号) 学号 20074009 20074133 20074222 姓名 王杰 吴成 刘兰 性别 男 男 女 年龄 20 19 20 班级号 40 41 42
学生选课
号 学 801 801 801 802 802 803 程号 课 04 03 02 03 04 04 绩 成 92 78 85 82 90 88
2.1.2关系模型的数据操纵 关系模型的数据操纵
查询、插入、删除、更新 数据操作是集合操作,操作对象和操作结果都 , 是关系,即若干元组的集合 是关系
用户定义的完整性(续 用户定义的完整性 续)
例:
学生学生(学号,姓名,性别,班级代号,年龄) 学生学生(学号,姓名,性别,班级代号,年龄)
– –
例如用户定义 “性别”只能取“男”或“女” 年龄在18到25岁之间
2.1.4. 典型的关系数据库系统
– – – – – – – – –
ORACLE SYBASE INFORMIX DB/2 COBASE PBASE EasyBase DM/2 OpenBase
2.1.3关系模型的完整性约束
实体完整性 参照完整性 用户定义的完整性
1. 实体完整性
实体完整性规则(Entity Integrity) 若属性A是基本关系R的主属性,则属性 A不能取空值 例:学生(学号,姓名,年龄,性别,班级代号) 学生(学号,姓名,年龄,性别,班级代号)
实体完整性(续 实体完整性 续)
E-R图示例 图示例
某学校管理系统中有三个部门:后勤部、教务处和财务处。 【例 】某学校管理系统中有三个部门:后勤部、教务处和财务处。 后勤部用来管理学生的住宿; 后勤部用来管理学生的住宿;教务处用来管理学生选课和教师任 财务处用来管理发放教师的工资。 课;财务处用来管理发放教师的工资。 后勤部涉及到的实体及实体之间的联系如下: 后勤部涉及到的实体及实体之间的联系如下: 学生:属性有学号、姓名、性别、年龄、 学生:属性有学号、姓名、性别、年龄、专业和入学时间 宿舍:楼号、房间、 宿舍:楼号、房间、档次 学生与宿舍的联系是一个学生只能住在一个宿舍, 学生与宿舍的联系是一个学生只能住在一个宿舍,一个宿舍能 住多个学生,学生住宿要交租金。 住多个学生,学生住宿要交租金。
在用户观点下,关系模型中数据的逻辑结构是一张二维表, 它由行和列组成。
学生登记表
学 号 95004 95006 95008 姓 名 王小明 黄大鹏 张文斌 年 令 19 20 18 性 别 女 男 女 系 名 社会学 商品学 法律学 年 级 95 95 95 …





关系模型的基本概念1 关系模型的基本概念
关系模型必须遵守实体完整性规则的原因
(1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现 实世界的一个实体集。 (2) 现实世界中的事物和事物间是可区分的,即它们具有某种唯一性 标识。 (3) 相应地,关系模型中以主码作为唯一性标识。 (4)主属性取空值,就说明存在某个不可标识的实体,即存在不可区 分的实体,这与第(2)点相矛盾
ER模型 模型
m 部门 管理 n 车队 1 拥有 投保 n 报销 开支 车辆 n 维修 1 维修公司 投保 保险公司 1 n n 1 1 1 聘用 n 司机 n
E—R图设计大型数据库一般方法 图设计大型数据库一般方法
E-R图通常都应经过以下两个阶段: 图通常都应经过以下两个阶段: 图通常都应经过以下两个阶段 (1)针对每一用户画出该用户信息的局部E—R图:确定 )针对每一用户画出该用户信息的局部 图 该用户视图的实体、属性和联系。 该用户视图的实体、属性和联系。 (2)综合局部 )综合局部E—R图,生成总体 图 生成总体E—R图。在综合过程中, 图 在综合过程中, 同名实体只能出现一次(合并相关实体) 同名实体只能出现一次(合并相关实体),还要去掉不必要 的联系和属性,以便消除冗余。 的联系和属性,以便消除冗余。
返回本章首页
2.2数据库的设计步骤 数据库的设计步骤
数据库设计步骤一般分为六个阶段:需求分析、 概念设计、逻辑设计、物理设计、实施、运行 维护阶段。 数据库设计阶段不是线性的,而是一个“反复 探索、逐步求精”的过程。
关系数据库的概念设计和逻辑设计 关系数据库的概念设计和逻辑设计 概念设计和逻辑
把现实世界转换成为计算机能够处理的数据世界, 把现实世界转换成为计算机能够处理的数据世界,需经过 两个阶段: 两个阶段: 第一阶段需使用概念模型把现实世界抽象成信息世界。 第一阶段需使用概念模型把现实世界抽象成信息世界。 需使用概念模型把现实世界抽象成信息世界 第二阶段是使用数据模型把信息世界转换为数据世界。 第二阶段是使用数据模型把信息世界转换为数据世界。 是使用数据模型把信息世界转换为数据世界 最常用的概念模型为E 模型, 最常用的概念模型为E-R模型,E-R模型的三个基本要素是 实体、 实体、属性和联系
关系数据模型的数据结构
实体及实体间的联系的表示方法
– – – – –
实体型:直接用关系(二维表)表示。 实体型:直接用关系(二维表)表示。 属性:用属性名(列名)表示。 属性:用属性名(列名)表示。 一对一联系:隐含在实体对应的关系中。 一对一联系:隐含在实体对应的关系中。 一对多联系:隐含在实体对应的关系中。 一对多联系:隐含在实体对应的关系中。 多对多联系:直接用关系表示 多对多联系:直接用关系表示。
实体完整性(续 实体完整性 续)
注意 实体完整性规则规定关系的所有 主属性都不能取空值 例
选修(学号,课程号,成绩) “学号、课程号”为主码,则两个属性都不 能取空值。
wk.baidu.com
2. 参照完整性规则
若属性(或属性组)F是基本关系R的外码 它与基本关系S的主码Ks相对应(基本关 系R和S不一定是不同的关系),则对 于R中每个元组在F上的值必须为:
关系数据模型的数据结构(续 关系数据模型的数据结构 续)
例2
学生实体、专业实体以及专业与学生间 的一对多联系 学生(学号,姓名,性别,班级代号,年龄) 学生(学号,姓名,性别,班级代号,年龄) 班级(班级代号,班级名称) 班级(班级代号,班级名称)
学生学生(学号,姓名,性别,班级代号,年龄)
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 班级代号 年龄 1001 1001 1001 1002 1002 19 20 20 20 19
参照完整性规则(续 参照完整性规则 续)
选修(学号,课程号,成绩) “学号”和“课程号”是选修关系中的主属性 按照实体完整性和参照完整性规则,它们 只能取相应被参照关系中已经存在的主码 值
3 用户定义的完整性
用户定义的完整性是针对某一具体关系数据库的 约束条件,反映某一具体应用所涉及的数据必须 满足的语义要求。 关系模型应提供定义和检验这类完整性的机制, 以便用统一的系统的方法处理它们,而不要由应 用程序承担这一功能。
举例:设计 举例:设计E-R模型 模型
假设要为某汽车货运公司管理信息系统建立数据库, 假设要为某汽车货运公司管理信息系统建立数据库,对车 司机、维修、保险和报销等信息和业务进行管理。 辆、司机、维修、保险和报销等信息和业务进行管理。该 公司的业务规则如下: 公司的业务规则如下:
ⅰ该公司有若干部门,每个部门有部门号、部门名称和负责人。这些部 该公司有若干部门,每个部门有部门号、部门名称和负责人。 门管理若干个车队,每个车队有车队号、车队名称、地址。 门管理若干个车队,每个车队有车队号、车队名称、地址。 每个车队有若干车辆和汽车司机。车辆有车牌号、车型、颜色、 ⅱ每个车队有若干车辆和汽车司机。车辆有车牌号、车型、颜色、载重 等特征。司机有工号,姓名、执照号、电话和工资等信息。 等特征。司机有工号,姓名、执照号、电话和工资等信息。 车辆和司机分别在不同的保险公司投保,保险公司有公司代号、名称、 ⅲ车辆和司机分别在不同的保险公司投保,保险公司有公司代号、名称、 地址等属性。 地址等属性。 车辆由若干汽车维修公司进行维修,汽车维修公司也有公司号、 ⅳ车辆由若干汽车维修公司进行维修,汽车维修公司也有公司号、公司 名称、地址等属性。 名称、地址等属性。 每辆汽车需记载开销情况,开销需要记录开销编号、费用类型、费用、 ⅴ每辆汽车需记载开销情况,开销需要记录开销编号、费用类型、费用、 日期、经办人的信息。 日期、经办人的信息。

属性( 属性(Attribute) ) 主码( 主码(Key) )
表中的某个属性组,它可以唯一确定一个元组。 表中的某个属性组,它可以唯一确定一个元组。
表中的一列即为一个属性,给每一个属性起一个名称即属性名。 表中的一列即为一个属性,给每一个属性起一个名称即属性名。

关系模型的基本概念2 关系模型的基本概念
返回本章首页
2.3 概念模型设计
首先确定应用中的实体。 首先确定应用中的实体。
即从信息需求出发,确定每个实体的属性和键。需注意的是: 即从信息需求出发,确定每个实体的属性和键。需注意的是: 能作为属性的就不要作为实体,这有利于E—R图的简化。 图的简化。 能作为属性的就不要作为实体,这有利于 图的简化
相关文档
最新文档