第二章关系数据库 关系数据模型 关系代数 SQL ·完整性和安全性 关系范式 °对象关系数据库
第二章 关系数据库 • 关系数据模型 • 关系代数 • SQL •完整性和安全性 • 关系范式 •对象关系数据库
2.1关系数据模型 关系模型的理论基础是集合论,是用集合代数定乂一个关系 定义1:域( Domain)是一组具有相同数据类型的值的集合 定义2:设D1,D2, Dn为一组域,D,D2, 上的笛卡尔积定义为 D1×D,× 笛卡尔积是一个集合,集合中的每一个元素(d1,d2, ,dn)称为一个n元组,简称元组。元组中的每个值叫做 个分量。 定义3:D1×D2×…,×D笛卡尔积的子集叫做在域D1,D2, ,Dn上的关系( Relation)。用R(D1,D2,…,D)表示,R 是关系名
2.1 关系数据模型 关系模型的理论基础是集合论,是用集合代数定义一个关系。 定义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元组,简称元组。元组中的每个值叫做一 个分量。 定义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 为属性间的数据依赖关系集合。属性向域的映象通常直接 说明为属性的类型、长度、取值范围等
关系是在一组域( D1,D2,…, Dn)上的笛卡尔 积的一个子集。当n=1时,称为单元关系;当n=2时,称为 二元关系。 关系是一个二维表,表的每一行对应一个元组,表 的每列对应一个域,由于域可以相同,为了区分给每个列 起一个名字,称为属性。 对关系的描述称为关系模式,该描述包括关系名、 关系中的属性名、属性向域的映象、属性间的数据依赖关 系等,可以形式化的表示为:R(U,F)或R(U)。 其中R为关系名,U为组成该关系的属性名集合,F 为属性间的数据依赖关系集合。属性向域的映象通常直接 说明为属性的类型、长度、取值范围等
有三个域:男人、女人和儿童。其取值为:男人(张三 李四),女人(王,吴),儿童(张一,李二)。 其笛卡尔积:男人×女人×儿童共有8个元组,可以 列成一张表 (张三,王,张一),(李四,王,张一), (张三,王,李二),(李四,王,李二), (张三,吴,张一),(李四,吴,张一), (张三,吴,李二),(李四,吴,李二)
有三个域:男人、女人和儿童。其取值为:男人(张三 ,李四),女人(王,吴),儿童(张一,李二)。 其笛卡尔积:男人女人儿童共有8个元组,可以 列成一张表: (张三,王,张一),(李四,王,张一), (张三,王,李二),(李四,王,李二), (张三,吴,张一),(李四,吴,张一), (张三,吴,李二),(李四,吴,李二)
家庭(丈夫,妻子,小孩)。该关系中的属性 名就用域名,关系形成的二维表如下: 丈夫 妻子 小孩 张三 李四 王吴 王李 关系是笛卡尔积中有一定意义的、有限的子集
丈夫 妻子 小孩 张三 王 王一 李四 吴 李二 家庭(丈夫,妻子,小孩)。该关系中的属性 名就用域名,关系形成的二维表如下: 关系是笛卡尔积中有一定意义的、有限的子集
属性 customer name customer street customer cit Jones Main Harrison Smith North Rye 元组 Curry North Rye Lindsay Park Pittsfield customer
Jones Smith Curry Lindsay customer_name Main North North Park customer_street Harrison Rye Rye Pittsfield customer_city customer 属性 元组
Students学生信息表 SC学生选课信息表 SNO 学号 SNO 学号 Sname姓名 Cno课程编号 Sex 性别 Grade成绩 A ge 年龄 Clas班级 DeptNo系编号 Courses信息表 DEPT系信息表 Cno 课程编号 DeptNO系编号 Cname课程名称 Deptname系名称 credit学分数 Address地址
Students 学生信息表 SNO 学号 Sname 姓名 Sex 性别 Age 年龄 Class 班级 DeptNO 系编号 S_C 学生选课信息表 SNO 学号 Cno 课程编号 Grade 成绩 Courses 信息表 Cno 课程编号 Cname 课程名称 credit 学分数 DEPT 系信息表 DeptNO 系编号 Deptname 系名称 Address 地址
CUSTOMERS顾客信息表 GENTS代理商信息表 cid 顾客I aid代理商ID cname 顾客姓名 aname代理商名称 ty顾客所在城市 city代理商所在城市 disct顾客可能会有的折扣 percent代理商每笔交易所能 获得的佣金百分比 PRODUCTS商品信息表 ORDERS订单信息表 pid 商品ID ordo订单ID pname商品名称 Month订单月份 city商品库存所在城市cid顾客I quantity商品库存数量 aid 代理商ID price商品批发价 pid商品ID qty数量 do1lars商品总价
CUSTOMERS 顾客信息表 cid 顾客ID cname 顾客姓名 city 顾客所在城市 discnt 顾客可能会有的折扣 AGENTS 代理商信息表 aid 代理商ID aname 代理商名称 city 代理商所在城市 percent 代理商每笔交易所能 获得的佣金百分比 PRODUCTS 商品信息表 pid 商品ID pname 商品名称 city 商品库存所在城市 quantity 商品库存数量 price 商品批发价 ORDERS 订单信息表 ordno 订单ID Month 订单月份 cid 顾客ID aid 代理商ID pid 商品ID qty 数量 dollars 商品总价
在关系数据库中的关系有如下性质 同一列来自同一个域 ·不同的列可以出自相同的域,必须有不同的属性名 不能有完全相同的元组存在 关系中元组的顺序无关。 关系中列的顺序无关 每个属性值必须是不可再分的数据项
在关系数据库中的关系有如下性质: • 同一列来自同一个域。 • 不同的列可以出自相同的域,必须有不同的属性名。 • 不能有完全相同的元组存在。 • 关系中元组的顺序无关。 •关系中列的顺序无关。 • 每个属性值必须是不可再分的数据项
完整性约束规则 1候选键:关系模式R(U)的属性集合K是候选键,满足: (1)R(U)的任何一个关系实例的任意两个元组在属性 集合K上的值都不相同; (2)K的任何真子集都不满足条件(1)。 以上被称为候选键的两性质:唯一性,最小性。 相关概念:主键/关键字;主属性;非主属性 FF Student( NO, Name, Sex, Age, Class, DeptNO Course( Cno, Cname, Dept S C(NO, Cno, Grade)
完整性约束规则 1 候选键:关系模式R(U)的属性集合K是候选键,满足: (1) R(U)的任何一个关系实例的任意两个元组在属性 集合K上的值都不相同; (2) K的任何真子集都不满足条件(1)。 以上被称为候选键的两性质:唯一性,最小性。 相关概念:主键/关键字;主属性;非主属性; 例: Student ( NO, Name, Sex, Age, Class, DeptNO ) , Course ( Cno, Cname, Dept ) , S_C (NO, Cno, Grade)