数据库逻辑模型设计
定义1:域(Domain)是一组具有相同数据类型的值的集合。
定义2:设D1, D2,…, Dn为一组域, D1, D2, …,Dn 上的笛卡尔积定义为:
D1 D2 … Dn = {(d1, d2,…, dn) | di Di,i =1,2,…,n}
笛卡尔积是一个集合,集合中的每一个元素(d1, d2, …, dn) 称为一个n元组,简称元组。元组中的每个值叫做一 个分量。
2.5 数据库逻辑模型设计
目标:将数据库概念结构转化为特定DBMS可处理的数据 库的逻辑结构。
基本步骤: (1) 初始逻辑数据库模式转换,根据若干规则进行; (2) 规范化处理 (3) 模式评价 (4) 模式修正
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
2.5.1 关系数据模型
关系模型的理论基础是集合论,是用集合代数定义一个关系。
(张三,吴,李二),(李四,吴,李二)。
数据库系统设计与开发
北京邮电大学Байду номын сангаас计算机科学与技术学院
家庭(丈夫,妻子,小孩)。该关系中的属性 名就用域名,关系形成的二维表如下:
丈夫 张三 李四
妻子 王 吴
小孩 王一 李二
关系是笛卡尔积中有一定意义的、有限的子集。
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
作类似于插入情况的检查. 令 t2’ 表示元组t2的新值. 系 统必须确保
t2’[X] K(r1)
•如果修改关系r1中的元组 t1并且修改了主键K的值, 则
作类似于删除情况的检查. 系统必须利用t1在修改前的 旧值计算
属性
customer-name customer-street customer-city
列
Jones
Smith
Curry
Lindsay
Main North North Park
Harrison Rye Rye
Pittsfield
customer
元组 行
记录
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
•删除. 如果从r1删除元组t1, 则系统必须计算r2中引 用t1的元组集合 :
X = t1[K] (r2)
如果此集合非空, 则要么认为出错而拒绝删除命
令, 要么删除这些引用t1的元组(级联删除).
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
修改. 有两种情况:
•如果修改关系r2中的元组 t2 并且修改了外键X的值, 则
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
1 实体完整性约束: 若A是关系模式R(U)的主键属性,则R(U)的任何一个 实例关系不存在任何元组在A上的值为空。
例: Student ( NO, Name, Sex, Age, Class, DeptNO ) , Course ( Cno, Cname, Dept ) , S_C (NO, Cno, Grade)
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
2 关联/参照完整性约束: 外键:关系模式R1包含关系模式R2的主键,这组属性叫做R1参 照R2的外键。 设X是关系模式R(U)关于关系模式R’(U’)的外键。如果K是R (U)的关系实例的一个元组的外部键值,则R’(U’)的实例中必 存在一个元组T,T在X上的值为K。
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
有三个域:男人、女人和儿童。其取值为:男人(张三 ,李四),女人(王,吴),儿童(张一,李二)。
其笛卡尔积:男人女人儿童共有8个元组,可以 列成一张表:
(张三,王,张一),(李四,王,张一),
(张三,王,李二),(李四,王,李二),
(张三,吴,张一),(李四,吴,张一),
北京邮电大学 计算机科学与技术学院
完整性约束规则 候选键:关系模式R(U)的属性集合K是候选键,满足: (1) R(U)的任何一个关系实例的任意两个元组在属性 集合K上的值都不相同; (2) K的任何真子集都不满足条件(1)。 以上被称为候选键的两性质:唯一性,最小性。
相关概念:主键/关键字;键(主)属性;非键(非主)属 性;
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
在关系数据库中的关系有如下性质:
• 同一列来自同一个域。 • 不同的列可以出自相同的域,必须有不同的属性名。 • 不能有完全相同的元组存在。 • 关系中元组的顺序无关。 •关系中列的顺序无关。 • 每个属性值必须是不可再分的数据项。
数据库系统设计与开发
定义3: D1 D2 … Dn笛卡尔积的子集叫做在域D1,D2, …, Dn上的关系(Relation)。用R(D1,D2,…, Dn)表示,R
是关系名。
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
关系是在一组域( D1,D2,…, Dn)上的笛卡尔 积的一个子集。当n=1时,称为单元关系;当n=2时,称为 二元关系。
关系是一个二维表,表的每一行对应一个元组,表 的每列对应一个域,由于域可以相同,为了区分给每个列 起一个名字,称为属性。
对关系的描述称为关系模式,该描述包括关系名、 关系中的属性名、域、属性向域的映象、属性间的数据依 赖关系等,可以形式化的表示为:R(U,F)或R(U)。
其中R为关系名,U为组成该关系的属性名集合,F 为属性间的数据依赖关系集合。属性向域的映象通常直接 说明为属性的类型、长度、取值范围等。
例: Student ( NO, Name, Sex, Age, Class, DeptNO ) , Dept (DeptNO, DeptName)
数据库系统设计与开发
北京邮电大学 计算机科学与技术学院
更新时的参照完整性约束:
•插入. 如果元组 t2 被插入到r2, 则系统必须确保r1 中存在元组 t1 使得 t1[K] = t2[X].
Students 学生信息表
SNO
学号
Sname 姓名
Sex
性别
Age
年龄
Class
班级
DeptNO 系编号
Courses 信息表
Cno
课程编号
Cname 课程名称
credit 学分数
S_C 学生选课信息表
SNO 学号 Cno 课程编号 Grade 成绩
DEPT 系信息表 DeptNO 系编号 Deptname 系名称 Address 地址