数据库系统概论:第2章 关系数据库理论1

上传人:cl****1 文档编号:569831813 上传时间:2024-07-31 格式:PPT 页数:38 大小:305.50KB
返回 下载 相关 举报
数据库系统概论:第2章 关系数据库理论1_第1页
第1页 / 共38页
数据库系统概论:第2章 关系数据库理论1_第2页
第2页 / 共38页
数据库系统概论:第2章 关系数据库理论1_第3页
第3页 / 共38页
数据库系统概论:第2章 关系数据库理论1_第4页
第4页 / 共38页
数据库系统概论:第2章 关系数据库理论1_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《数据库系统概论:第2章 关系数据库理论1》由会员分享,可在线阅读,更多相关《数据库系统概论:第2章 关系数据库理论1(38页珍藏版)》请在金锄头文库上搜索。

1、2.1 2.1 关系数据结构关系数据结构第第2 2章章 关系数据库理论关系数据库理论2.2 2.2 关系操作关系操作2.3 2.3 关系的完整性关系的完整性2.4 2.4 关系代数关系代数1 关系数据模型的思想由关系数据模型的思想由IBMIBM公司的公司的E.F.CoddE.F.Codd于于19701970年在他的一系列论文中提年在他的一系列论文中提出,以后的几年里陆续出现了以关系数据出,以后的几年里陆续出现了以关系数据模型为基础的数据库管理系统,称为模型为基础的数据库管理系统,称为关系关系数据库管理系统数据库管理系统(RDBMS)(RDBMS)。 按照数据模型的三个要素,按照数据模型的三个要

2、素,关系模关系模型型由由关系数据结构关系数据结构、关系操作关系操作和和关系完关系完整性约束整性约束三部分组成。三部分组成。 2 现代广泛使用的现代广泛使用的RDBMSRDBMS有:有:OracleOracle、InformixInformix、DB2DB2、SQL SQL ServerServer、AccessAccess、FoxFox系列数据系列数据库等。库等。 32.1 关系数据结构关系数据结构 在用户看来,关系模型中数据的逻辑结构是一张二维表二维表。 关系模型是建立在集合代数的基础上,这里从集合论角度给出关系数据结构的相关定义。 42.1.1 关系的数学定义 1域(域(Domain) 域

3、是一组具有相同数据类型的值的集合值的集合。例如: 所有整数、所有整数、 实数、实数、 , 。52笛卡尔积(笛卡尔积(Cartesian Product) 给定一组域D1,D2,Dn,这些域中可以有相同的。笛卡尔积表示为: D D1 1DD2 2 D Dn n=(d=(d1 1,d,d2 2,d dn n)|d)|di iDDi i,i,i=1,2 =1,2 nn 其中每一个其中每一个元素元素(d(d1 1,d,d2 2,d dn n) )叫做一个叫做一个n n元组,元组,简称为简称为元组元组。元素中的每一个值。元素中的每一个值d di i叫做一个叫做一个分量分量。6例如:例如:给出三个域:给出

4、三个域:D D1 1= =导师集合导师集合supervisor=supervisor=张清玫张清玫,刘逸刘逸D D2 2= =专业集合专业集合specialityspeciality= =计算机专业计算机专业,信息专业信息专业D D3 3= =研究生集合研究生集合postgraduate=postgraduate=李勇李勇,刘晨刘晨,王敏王敏则则D D1 1DD2 2 D D3 3的笛卡尔积如表所示:的笛卡尔积如表所示: 其中(其中(张清玫,计算机专业,李勇张清玫,计算机专业,李勇)、)、(张清玫,计算机专业,刘晨张清玫,计算机专业,刘晨)等都是)等都是元组元组,张清玫、计算机专业、李勇、刘晨

5、等都是张清玫、计算机专业、李勇、刘晨等都是分量分量该该笛卡尔积的笛卡尔积的基数基数为为2*2*3=122*2*3=12。即一共有。即一共有1212个元组。个元组。78例如,给出3个域:D1:院系集合DEPARTMENT = 计算机系, 信息系 D2:班级集合CLASS = 1班,2班 D3:学生集合STUDENT = 王一,张玉,赵敏 9该笛卡尔积的基数为223=12。即D1D2D3共有12个元组。这12个元组可列成一张二维表。DEPARTMEDEPARTMENTNTCLASSCLASSSTUDENTSTUDENT计算机系计算机系1 1班班王一王一计算机系计算机系1 1班班张玉张玉计算机系计算

6、机系1 1班班赵敏赵敏计算机系计算机系2 2班班王一王一计算机系计算机系2 2班班张玉张玉计算机系计算机系2 2班班赵敏赵敏信息系信息系1 1班班王一王一信息系信息系1 1班班张玉张玉信息系信息系1 1班班赵敏赵敏信息系信息系2 2班班王一王一信息系信息系2 2班班张玉张玉信息系信息系2 2班班赵敏赵敏103关系(关系(Relation) D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为: R(D1,D2,Dn);R为关系名,n为关系的目或度。11(1)关系的关系的基本术语基本术语1)1)元数元数( (列数列数) ):属性的个数,即列数:属性的个数,即列数 2)2)基数基数( (行数

7、行数) ):元组的个数,即记录数:元组的个数,即记录数3)3)属性:字段或数据项称为属性,也称为列属性:字段或数据项称为属性,也称为列4)4)属性值:字段值称为属性值。属性值:字段值称为属性值。5)5)关系模式:是对关系的描述关系模式:是对关系的描述, ,即表结构。即表结构。 一般表示为:一般表示为: 关系名关系名( (属性属性1,1,属性属性2,2,属性属性n) n) 表上属性名必须唯一,不允许重名。表上属性名必须唯一,不允许重名。126)6)元组:记录称为元组,也称为行。元组:记录称为元组,也称为行。7)7)关系:元组的集合称为关系,也称为表格。关系:元组的集合称为关系,也称为表格。每个二

8、维表又称为关系。表体是由一些元组每个二维表又称为关系。表体是由一些元组组成组成。 8)8)值域:属性的取值范围称为属性的值域,值域:属性的取值范围称为属性的值域,每个属性对应一个值域,不同的属性可以对每个属性对应一个值域,不同的属性可以对应同一个值域。应同一个值域。 9 9) )分量:元组中的一个属性值。分量:元组中的一个属性值。13141)1)候选码候选码 :若关系中的某一属性组的值能唯一若关系中的某一属性组的值能唯一地标识一个元组,而其任何真子集都不能再标识地标识一个元组,而其任何真子集都不能再标识一个元组,则称一个元组,则称该属性组为候选码该属性组为候选码,在最简单的,在最简单的情况下,

9、候选码只包含一个属性。情况下,候选码只包含一个属性。 例如:例如:学生关系(学生关系(学号,姓名,年龄,身份证号学号,姓名,年龄,身份证号) 2)2)全码全码 :在最极端的情况下,关系的所有属性在最极端的情况下,关系的所有属性组是这个关系的候选码,组是这个关系的候选码,称为全码称为全码 。 例如:例如:音乐会关系(音乐会关系(演奏者,音乐作品,观众演奏者,音乐作品,观众)(2) (2) 码码153)3)主码主码 :若一个关系有多个候选码,则选若一个关系有多个候选码,则选定其中一个为定其中一个为主码或主键主码或主键 。 例如:例如:学生关系(学生关系(学号,姓名,年龄,身份证号学号,姓名,年龄,

10、身份证号)4)4)主属性主属性 :候选码的诸属性称为主属性候选码的诸属性称为主属性 。 5)5)非非主主属属性性:不不包包含含在在任任何何侯侯选选码码中中的的属属性性称称为为非主属性非主属性 。 16(3)关系的性质关系的性质列是同质的,即每一列中的分量是同一类型的数列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。据,来自同一个域。不同的列可出自同一个域,称其中的每一列为一不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名个属性,不同的属性要给予不同的属性名列的顺序无所谓,即列的顺序可以任意交换。列的顺序无所谓,即列的顺序可以任意交换。任意两个元组的候选

11、码不能完全相同。任意两个元组的候选码不能完全相同。行的顺序无所谓,即行的顺序可以任意交换。行的顺序无所谓,即行的顺序可以任意交换。分量必须取原子值,即每个分量必须是不可再分分量必须取原子值,即每个分量必须是不可再分的数据项。的数据项。17关系性质1同质的列学号学号姓名姓名性别性别年龄年龄曾用名曾用名9901张三张三男男20张狗子张狗子9902李四李四女女18李朋李朋王五王五9903119王麻子王麻子9904赵六赵六21981/2/28赵铁蛋赵铁蛋18关系性质2不同的属性名学号学号 姓名姓名性性别别年龄年龄姓名姓名9901张三张三男男20张狗子张狗子9902李四李四女女18李朋李朋9903王五王

12、五男男19王麻子王麻子9904赵六赵六女女20赵铁蛋赵铁蛋姓名姓名2曾用名曾用名19关系性质3属性无序学号学号姓名姓名性别性别年龄年龄曾用名曾用名9901张三张三男男20张狗子张狗子9902李四李四女女18李朋李朋9903王五王五男男19王麻子王麻子9904赵六赵六女女20赵铁蛋赵铁蛋学号学号姓名姓名曾用名曾用名性别性别年龄年龄9901张三张三张狗子张狗子男男209902李四李四李朋李朋女女189903王五王五王麻子王麻子男男199904赵六赵六赵铁蛋赵铁蛋女女2020关系性质4元组的候选码不重复学号学号 姓名姓名 性别性别年龄年龄曾用名曾用名9901张三张三男男20张狗子张狗子9902李四李

13、四女女18李朋李朋9903王五王五男男19王麻子王麻子9904赵六赵六女女20赵铁蛋赵铁蛋9901张三张三女女19张小二张小二重复的重复的元组元组重复的重复的候选码候选码21关系性质5元组无序学号学号姓名姓名性别性别年龄年龄9901张三张三男男209902李四李四女女189903王五王五男男199904赵六赵六女女20学号学号姓名姓名性别性别年龄年龄9904赵六赵六女女209901张三张三男男209903王五王五男男199902李四李四女女1822关系性质6分量是原子父父母母孩子孩子大大小小李男李男王男王男丁女丁女肖女肖女李一李一王一王一李二李二父父母母大孩大孩小孩小孩李男李男王男王男丁女丁女

14、肖女肖女李一李一王一王一李二李二非规范化关系非规范化关系规范化关系规范化关系232.1.2 关系数据库关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合关系的集合(也可以简单地理解为表的集合表的集合)构成一个关系数关系数据库据库。242.2 关系操作关系操作2.2.1 基本的关系操作基本的关系操作关系操作关系操作包括:包括:查询查询和和更新更新操作。操作。 查询操作包括:查询操作包括:选择、投影、连接、选择、投影、连接、 除、并、交、差除、并、交、差等等操作。操作。 更新操作包括:更新操作包括:增加、删除、修改增加、删除、修改操作。操作。 2.2.2 关系操作的特点关系操作的

15、特点 关系操作的关系操作的特点特点:操作:操作对象对象和和结果结果都是都是集合集合252.2.3 关系数据语言关系数据语言(1)关系数据语言按照完成的功能可分为三类:)关系数据语言按照完成的功能可分为三类:数据定义语言数据定义语言DDL :负责数据库的描述,提供一负责数据库的描述,提供一种数据定义机制。种数据定义机制。 数据操纵语言数据操纵语言DML :负责数据库的操作,提供一负责数据库的操作,提供一种数据处理操作的机制。种数据处理操作的机制。 数据控制语言数据控制语言DCL :负责控制数据库的完整性和负责控制数据库的完整性和安全性,提供一种检验完整性和保证安全性的机制。安全性,提供一种检验完

16、整性和保证安全性的机制。 26(2)关系数据语言按照表达查询的方式不同)关系数据语言按照表达查询的方式不同(理论基础的不同)可以分为三大类:(理论基础的不同)可以分为三大类:关系代数语言关系代数语言:对关系的集合运算来表达查询方式:对关系的集合运算来表达查询方式 的语言。的语言。关系演算语言关系演算语言:用谓词演算来表达查询方式的语言。:用谓词演算来表达查询方式的语言。结构化查询语言结构化查询语言SQL:是介于关系代数和关系演算之:是介于关系代数和关系演算之 间的一种语言,间的一种语言,SQL不仅具有不仅具有 丰富的查询功能,而且具有数丰富的查询功能,而且具有数 据定义和数据控制功能,是集据定

17、义和数据控制功能,是集 DDL、DML、DCL为一体的标为一体的标 准的关系数据库语言。准的关系数据库语言。272.3 关系的完整性关系的完整性 关系的关系的完整性约束完整性约束有三类有三类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性是是关系模型必须满足的完整性约束条关系模型必须满足的完整性约束条件,由关系系统自动支持件,由关系系统自动支持是是应用领域需要遵循的约应用领域需要遵循的约束条件束条件28关系模型的三类完整性规则关系模型的三类完整性规则(1) (1) 实体完整性规则实体完整性规则(关系系统支持)(关系系统支持) 组成主键(码)的属性(即主属性)组成主键(

18、码)的属性(即主属性)不能不能有空值有空值。实体完整性规则针对。实体完整性规则针对基本关系基本关系而言而言如如: : 选修(学号,课程号,成绩)则,选修(学号,课程号,成绩)则,(学号,课程号)为主码,则学号和课程学号,课程号)为主码,则学号和课程号都不能取空值。号都不能取空值。29学号学号课程号课程号 成绩成绩9901990199029903C1C2C2C390807080学号学号姓名姓名 年龄年龄性别性别所在系所在系9901990299039904张三张三李四李四王五王五赵六赵六20181920男男女女女女男男计算机计算机计算机计算机计算机计算机计算机计算机30(2) (2) 参照完整性规

19、则参照完整性规则(定义主外码之间的引用规则)定义主外码之间的引用规则) 不引用不存在的实体不引用不存在的实体。若属性集。若属性集K K是关系是关系模式模式R1R1的主键,的主键,K K也是关系模式也是关系模式R2R2的外键,的外键,K K的的取值取值或为空或为空,或或等于等于R1R1关系中的关系中的某个主键值某个主键值。R1R1为为被参照关系被参照关系(目标关系),(目标关系),R2R2为为参照关系参照关系。31例:例: 学生学生( (学号、姓名、年龄、性别、系别名称)学号、姓名、年龄、性别、系别名称) 课程(课程号、课程名、学分)课程(课程号、课程名、学分) 学生选课(学号、课程号、成绩)学

20、生选课(学号、课程号、成绩) 外码:外码:当关系中的某个属性或属性组合虽然不是该当关系中的某个属性或属性组合虽然不是该关系的关键字或只是关键字的一部分关系的关键字或只是关键字的一部分,但却是另一个但却是另一个关系的关键字关系的关键字,称该属性或属性组合为这个关系的称该属性或属性组合为这个关系的外外码(或外键)码(或外键)。32例如:例如:学生关系学生关系( (学号学号,姓名,性别,专业号,年龄,班长,姓名,性别,专业号,年龄,班长) )专业(专业(专业号专业号,专业名),专业名)1)学生关系中的专业号参照专业关系中的专业号,专业学生关系中的专业号参照专业关系中的专业号,专业号的值可以是:号的值

21、可以是: (1 1)空值)空值-表示尚未给学生分配专业表示尚未给学生分配专业(2 2)非空值)非空值-值必须取专业关系中专业号的值值必须取专业关系中专业号的值2)学生关系中的班长与学号之间存在引用关系,班长的取学生关系中的班长与学号之间存在引用关系,班长的取值可以是:值可以是:(1 1)空值)空值-表示该班级未选班长表示该班级未选班长(2 2)非空值)非空值-值必须取同一关系的学号值必须取同一关系的学号33学号学号姓名姓名所在系所在系9901990299039904张三张三李四李四王五王五赵六赵六计算机计算机计算机计算机计算机计算机计算机计算机课程号课程号课程名课程名学时数学时数C01C02C

22、03C04高等数学高等数学数据结构数据结构操作系统操作系统数据库数据库100708060学号学号课程号课程号成绩成绩99019901990299049904C01C02C04C04C039080908570学生关系学生关系课程关系课程关系学习成绩关系学习成绩关系外键外键外键外键主键主键主键主键34职工号职工号 部门编号部门编号 姓名姓名9801980298039804980501010203张三张三李四李四王五王五赵六赵六钱七钱七部门编号部门编号部门名称部门名称01020304经理办公室经理办公室人事部人事部公关部公关部技术部技术部职工表职工表(R2)部门表部门表(R1)主键主键外键外键35(

23、3) (3) 用户定义的完整性规则用户定义的完整性规则 针对不同的应用环境而定义的约束条件。针对不同的应用环境而定义的约束条件。(关系模型提供定义和检验这类完整性的机制,(关系模型提供定义和检验这类完整性的机制, 不必用程序完成)不必用程序完成)若规定学生的年龄在若规定学生的年龄在1818到到3535之间,则是用之间,则是用户定义的完整性规则。户定义的完整性规则。36练习1关系中的“主码”不允许取空值是指( )规则。 A实体完整性 B引用完整性 C用户自定义完整性 D数据完整性2在下面两个关系中,职工号和部门号分别为职工关系和部门关系的主码,在这两个关系的属性中,只有一个属性是外码,它是( )。 职工(职工号,职工名,部门号,职务,工资) 部门(部门号,部门名,部门人数,工资总额) A“职工”关系中的“职工号” B“职工”关系中的“部门号” C“部门”关系中的“部门号” D“部门”关系中的“部门名”37练习3关系完整性包括_、_和_。4在关系模式R中,若属性或属性组X不是关系R的关键字,但X是其他关系模式的关键字,则称X为关系R的_。38

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号