第 关系数据库.pptx
《第 关系数据库.pptx》由会员分享,可在线阅读,更多相关《第 关系数据库.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/98第二章第二章 关系数据库关系数据库2.1 关系数据结构及形式化定义2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 小结第1页/共97页2/982.1 2.1 关系数据结构及其形式化定义关系数据结构及其形式化定义从集合论的角度给出关系数据结构的形式化定 义。(需要离散数学集合论的概念)关系数据结构的基本概念2.1.1 关系(Relation)2.1.2 关系模式(Relation Schema)2.1.3 关系数据库第2页/共97页3/982.1.1 2.1.1 关系关系域(Domain)2.笛卡尔积(Cartesian Product)3.关系(Relation)第3页/共
2、97页4/981.1.域(域(DomainDomain)定义2.1 域是一组具有相同数据类型的值的集合。例如:整数、实数介于某个取值范围的整数 D=0,1,2,100长度指定长度的字符串集合男,女域中所包含的值的个数称为域的基数(用m表示)。D1=李力,王平,刘伟,m1=3;D2=男,女;m2=2;D3=18,20,23;m3=3。第4页/共97页5/982.2.笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)定义2.2:给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn )di Di ,i1
3、,2,n 其中,每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(tuple),元素不能重复。元组(d1,d2,dn)中的每一个值di叫作一个分量(Component)。所有域的所有取值的一个组合第5页/共97页6/98笛卡尔积(续)笛卡尔积(续)D1张清玫张清玫刘逸刘逸例:D1导师域D2专业域D3 研究生域D2计算机专业计算机专业信息专业信息专业D3李勇李勇刘晨刘晨王敏王敏 D1 D2D3李勇李勇刘晨刘晨王敏王敏=D1 D2 D3张清玫张清玫 计算机专业计算机专业 李李勇勇张清玫张清玫 计算机专业计算机专业 刘刘晨晨张清玫张清玫 计算机专业计算机专业 王王敏敏张清玫张
4、清玫 信息专业信息专业 李勇李勇张清玫张清玫 信息专业信息专业 刘晨刘晨张清玫张清玫 信息专业信息专业 王敏王敏刘逸刘逸 计算机专业计算机专业 李勇李勇刘逸刘逸 计算机专业计算机专业 刘晨刘晨刘逸刘逸 计算机专业计算机专业 王敏王敏刘逸刘逸 信息专业信息专业 李勇李勇刘逸刘逸 信息专业信息专业 刘晨刘晨刘逸刘逸 信息专业信息专业 王敏王敏张清玫张清玫 计算机专计算机专业业张清玫张清玫 信息专业信息专业刘逸刘逸 计算机计算机专业专业刘逸刘逸 信息专信息专业业第6页/共97页7/98笛卡尔积(续笛卡尔积(续)笛卡尔积的基数(Cardinal number)-关系中元组个数若Di(i1,2,n)为有
5、限集,其基数为mi(i 1,2,n),则D1D2Dn的基数M为:在上例中,基数:22312,即D1D2D3共有 22312个元组D1张清玫张清玫刘逸刘逸D2计算机专业计算机专业信息专业信息专业D3李勇李勇刘晨刘晨王敏王敏第7页/共97页8/98笛卡尔积(续笛卡尔积(续)笛卡尔积的表示方法笛卡尔积可表示为一个二维 表。表中的每行对应一个 元组,表中的每列的值来自一个域。在上例中,12个元组可列成 一张二维表导师导师专业专业研究生研究生张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸计算机专业计算机专业计算机专业计算机专业计算
6、机专业计算机专业信息专业信息专业信息专业信息专业信息专业信息专业计算机专业计算机专业计算机专业计算机专业计算机专业计算机专业信息专业信息专业信息专业信息专业信息专业信息专业李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏表表2.1 D12.1 D1、D2D2、D3D3的笛卡尔积的笛卡尔积D1张清玫张清玫刘逸刘逸D2计算机专业计算机专业信息专业信息专业D3李勇李勇刘晨刘晨王敏王敏第8页/共97页9/983.3.关系(关系(RelationRelation)1)关系的定义:笛卡尔积D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为R(D1,D
7、2,Dn)R:关系名n:关系的元或度(Degree)导师导师专业专业研究生研究生张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫张清玫刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸刘逸计算机专业计算机专业计算机专业计算机专业计算机专业计算机专业信息专业信息专业信息专业信息专业信息专业信息专业计算机专业计算机专业计算机专业计算机专业计算机专业计算机专业信息专业信息专业信息专业信息专业信息专业信息专业李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏李勇李勇刘晨刘晨王敏王敏注意:注意:关系是关系是笛卡尔积的有限笛卡尔积的有限子集。子集。无限关系在数据库系统无限
8、关系在数据库系统中是无意义的,在笛卡尔积中中是无意义的,在笛卡尔积中取出取出有实际意义的元组有实际意义的元组来构造来构造关系。关系。导师导师专业专业研究生研究生张清玫张清玫计算机专业计算机专业李勇李勇张清玫张清玫计算机专业计算机专业刘晨刘晨刘逸刘逸信息专业信息专业王敏王敏第9页/共97页10/98关系(续)关系(续)2)元组 关系中的每个元素(即每行),通常用t表示。3)属性 *关系中不同列可以对应相同的域,为了加以区分,必须对 每列起一个名字,称为属性(Attribute)。*一个由n个属性组成的关系称为n元关系4)单元关系与二元关系 n=0 时称空关系;当n=1时,称该关系为单元关系(Un
9、ary relation)。当n=2时,称该关系为二元关系(Binary relation)。第10页/共97页11/98关系(续)关系(续)5)码候选码-若关系中的某一属性组的值能唯一地标识一个 元组,则称该属性组为该关系的一个候选码(Candidate Key)。一个关系可能有多个候选码,则选定其中一个作为主码 (Primary Key,或主键)。包含在任何候选码中的属性称为主属性,不包含在任何 候选码中的属性称为非主属性。全码(All-key)-关系模式的所有属性组构成此关系模式的 唯一候选码。第11页/共97页12/98关系(续)关系(续)*候选码*主码(Primary Key,或主键
10、)*主属性/非主属性*全码(All-key)S(Sno,IDCardno,Sname,Sage)SC(Sno,Cno,Grade)候选码主码主属性非主属性SnoCnoGrade9801019598010280980201889802039298030280SCT(Sno,Cno,Tno)S S:学生:学生SnoSno:学号:学号IDCardnoIDCardno:身份证号:身份证号SnameSname:姓名:姓名SageSage:年龄:年龄SCSC:选修:选修SnoSno:学号:学号CnoCno:课程号:课程号GradeGrade:成绩:成绩第12页/共97页13/98关系(续)关系(续)6)三
11、类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示。查询表查询结果对应的表。视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。第13页/共97页14/987)7)关系的基本性质关系的基本性质(1)列的同质性:每列的值为同一类型。(2)列名唯一:每列具有不同的属性名(可同域)(3)列序无关:列的次序可以互换。(4)元组相异性:任意两元组不能完全相同,关系中用主码标 识元组(5)行序无关:行的次序可以互换。(6)分量原子性:分量值是原子的。每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条第14页/共97页15/988)8)关系的基本性质关系的基本性质举
12、例举例例:若属性A1、A2分别在域D1、D2中取值(D1=1,2,3 D2=a,b),问R1,R2,R3是否为关系?D=123ab1 a1 b2 a2 b3 a3 b=A2A11a2b3aA1A21a2b3aA2A1a1b2a4R1R2R3R2是关系R1和R3不是关系车间号车间号班组班组工资工资超额奖超额奖实发实发基本基本补助补助01甲组甲组50002005005700乙组乙组4500100300490002甲组甲组4800200+50505003丙组丙组30003005003800表表2.3 非规范化关系非规范化关系第15页/共97页16/982.1.2 2.1.2 关系模式关系模式1什么是
13、关系模式2定义关系模式3.关系模式与关系第16页/共97页17/981.1.什么是关系模式什么是关系模式关系模式是对关系的描述。(是型的描述)需描述元组集合的结构:由哪些属性构成,这些属性来自 哪些域,以及属性与域之间的映象关系(即对应关系)。此外,关系模式应刻划出完整性约束条件。第17页/共97页18/982.2.定义关系模式定义关系模式关系模式表示为:R(U,D,dom,F)例:上图的关系模式R(U,D,DOM,F)R学生U学号,姓名,性别,年龄D整数,字符串DOM学号:(sno INT 6),年龄:(age INT 2 15-45),性别:(sex CHAR 2 男,女),姓名:(nam
14、e CHAR 20)F学号决定所有其他属性域名集属性名集属性间的依赖关系集属性向域的映像集学号学号学生学生性别性别年龄年龄9901李勇李勇男男249902刘晨刘晨女女25关系名学生学生第18页/共97页19/98定义关系模式定义关系模式 (续续)关系模式通常可以简记为:R(U)或R(A1,A2,An)R为关系名,A1,A2,An为属性名。上例可简记为:学生(学号,姓名,性别,年龄)第19页/共97页20/983.3.关系模式与关系关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的两者是型与值的关系关系模式和关系往往统称为关系,通过上下文加
15、以区别第20页/共97页21/982.1.3 2.1.3 关系数据库关系数据库在给定应用领域中,用于描述所有实体和实体间联系的关系的集合构成一个关系数据库。同样,关系数据库也有型和值之分。型:关系数据库模式,是对关系数据库的描述。值:一般就称为关系数据库。第21页/共97页22/98小结(术语之间的联系)一个关系只能对应一个关系模式一个关系模式可对应多个关系关系模式是关系的型,按其型装入数据值后即形成关系一个关系数据库是相关关系的集合关系数据库模式是若干相关关系模式的集合第22页/共97页23/98课堂练习:1.在基本的关系中,下列说法正确的是()A.行列顺序有关 B.属性名允许重名 C.任意
16、两个元组不允许重复 D.列是非同质的C第23页/共97页24/98第二章第二章 关系数据库关系数据库2.1 关系数据结构2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 小结第24页/共97页25/982.2 2.2 关系操作关系操作关系模型给出了关系操作的能力的说明,并不对DBMS语言给出具体的语法要求。即,不同的DBMS可以定义和开发不同的语言来实现这些关系操作。2.3.1 基本关系操作2.3.2 关系数据语言分类第25页/共97页26/982.2.1 2.2.1 基本关系操作基本关系操作查询选择、投影、连接、除、并、差、交、广义笛卡尔积等一个关系内属性的选择一个关系内元组的选择
17、多个关系的合并更新(插入、删除、修改)插入:在关系中插入一些新的元组删除:在关系内删除一些元组修改:在关系内修改一些元组的内容关系操作的特点是集合操作方式:一次一集合第26页/共97页27/982.2.2 2.2.2 关系数据语言分类关系数据语言分类1.关系代数语言是用对关系的运算来表达查询要求的。如ISBL2.关系演算语言是用谓词来表达查询要求的。谓词变元基本对象是元组变量元组关系演算语言,如ALPHA,QUEL谓词变元基本对象是域变量域关系演算语言,如QBE关系代数、元组关系演算和域关系演算三种语言在表达 能力上完全等价。3.具有关系代数和关系演算双重特点的语言 如SQL第27页/共97页
18、28/982.2.2 2.2.2 关系数据语言分类关系数据语言分类关系数据语言的共同特点语言具有完备的表达能力是高度非过程化的集合操作语言功能强大能嵌入高级语言中使用第28页/共97页29/98第二章第二章 关系数据库关系数据库2.1 关系数据结构2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 小结第29页/共97页30/982.3 2.3 关系完整性关系完整性2.3.1 关系的完整性2.3.2 实体完整性2.3.3 参照完整性2.3.4 用户定义的完整性第30页/共97页31/982.3.1 2.3.1 关系的完整性关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型
19、的三类完整性:实体完整性参照完整性用户定义的完整性其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为是关系的两个不变性,应该由关系系统自动支持。由关系系统自动支持是应用领域需要遵循的约束条件第31页/共97页32/982.3.2 2.3.2 实体完整性实体完整性对主码的约对主码的约束束实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(NULL)。空值就是“不知道”或“无意义”的值。主属性取空值,就 说明存在某个不可标识的实体,即存在不可区分的实 体,与元组相异性相矛盾,因此这个规则称为实体完整 性。学号学号学生学生性别性别年龄年龄专业专业990
20、1李勇李勇男男24CS9902刘晨刘晨女女25CS9903王名王名男男23IS9904张立张立女女24IS实体完整性规则是针对基本关系而言的实体完整性规则是针对基本关系而言的第32页/共97页33/98定义2.5 设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。R-学生学生学号学号学生学生性别性别年龄年龄班号班号F9901李勇
21、李勇男男241036019902刘晨刘晨女女25103601班号班号Ks专业专业学院学院103601信息管理信息管理计算机学院计算机学院103701计算机科学计算机科学计算机学院计算机学院S-班级班级参照关系被参照关系外码外码2.3.3 2.3.3 参照完整性参照完整性第33页/共97页34/982.3.3 2.3.3 参照完整性参照完整性对外码的约束对外码的约束参照完整性规则对外码的约束或者取空值(F的属性值取空值)或者等于S(参照关系)中某个元组的主码值第34页/共97页35/98班号班号专业专业学院学院103601信息管理信息管理计算机学院计算机学院103701计算机科学计算机科学计算机
22、学院计算机学院103801软件工程软件工程计算机学院计算机学院学号学号学生学生性别性别年龄年龄班号班号9901李勇李勇男男241038019902刘晨刘晨女女25学号学号F课程号课程号成绩成绩9901C0192C0286班级班级学生学生选修选修学生关系中每个元组的“班号”属性只能取下面两类值:空值:表示尚未给学生分配班级非空值:这时该值必须取被参照关系的主码值,即班级关系中某个元组的“班号”值,表示该学生不可能分配到一个不存在的班级外码是否为空值视具体情况而定。在关系模式中,若外码是该模式中的主码的成分(主属性)时,不允许为空值。如选修关系中的“学号”。(为什么?)2.3.3 2.3.3 参照
23、完整性参照完整性可以吗?为什么?可以吗?为什么?第35页/共97页特别提示:参照关系R与被参照关系S不一定是不同的关系,主码与外码也可以是不同的属性名。例:学生(学号,姓名,性别,年龄,班号,班长),班长为外码。“班长”属性可以取两类值:(1)空值:表示该学生所在班级尚未选出班长,或该学生本人 即是班长(2)非空值:这时该值必须是本关系中某个元组的学号值学号学号学生学生性别性别年龄年龄班号班号班长班长9901李勇李勇男男2410360199029902刘晨刘晨女女251036019903王名王名男男2310370199189904张立张立女女2410370299309918李四李四男男2210
24、3701学学生生第36页/共97页37/982.3.4 2.3.4 用户定义的完整性用户定义的完整性用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。常见的用户定义的完整性:定义属性是否允许为空值定义属性值的唯一性定义属性的取值范围定义属性的缺省值第37页/共97页38/98用户定义的完整性用户定义的完整性(续续)例:课程(课程号,课程名,学分)非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4课程号课程号课程名课程名学分学分C01数据库数据库3C02高数高数4C03C语言语言2课课程程第38页/共97页39/98第二章第二章
25、 关系数据库关系数据库2.1 关系数据结构2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 小结第39页/共97页40/982.4 2.4 关系代数关系代数2.4.1 关系运算体系 2.4.2 传统的集合运算2.4.3 专门的关系运算2.4.4 关系代数表达式2.4.5 综合举例第40页/共97页41/982.4 2.4 关系代数关系代数本节要求给定关系模式和查询(语义)要求,要会写关系代数 表达式。第41页/共97页42/982.4.1 2.4.1 关系运算体系关系运算体系1.关系代数运算的三个要素2.关系代数运算的分类及运算符3.表示记号第42页/共97页43/981.关系代数运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据库 关系 数据库
限制150内