您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 第2章_数据模型与关系数据库(2)
第二章数据模型与关系数据库数据库原理DatabaseSystemPrinciples本章主要内容本章主要内容数据模型关系数据结构及形式化定义关系的完整性关系代数关系演算数据库的建模过程数据库的建模过程概念数据模型逻辑数据模型逻辑数据模型概念模型概念模型实体实体,,属性属性,,联系联系联系的种类联系的种类EE--RR图图逻辑数据模型逻辑数据模型常用的逻辑数据模型常用的逻辑数据模型层次层次,,网络网络,,关系数据模型的定义及优缺点关系数据模型的定义及优缺点关系模型成为主流关系模型成为主流关系模型也在不断扩展关系模型也在不断扩展本章主要内容本章主要内容数据模型关系数据结构及其形式化定义关系的完整性关系代数关系演算关系数据结构及形式化定义从从集合论集合论的角度给出关系数据结构的形式的角度给出关系数据结构的形式化定义。化定义。((需要离散数学集合论的概念需要离散数学集合论的概念))定义定义::域域::具有相同数据类型的值的集合。具有相同数据类型的值的集合。基数(基数(CardinalnumberCardinalnumber))::集合元素的个数集合元素的个数..笛卡尔积笛卡尔积::给定一组域给定一组域DD11,D,D22,,……,,DDnn,,这些域中可以这些域中可以有相同的,有相同的,DD11,D,D22,,……,,DDnn的笛卡儿为:的笛卡儿为:DD11××DD22××……××DDnn=={(d{(d11,d,d22,,……,,ddnn)|)|ddii∈∈DDii,i=1,2,,i=1,2,……n}n},,其其中每一个元素称为一个中每一个元素称为一个nn元组元组,元素中的每个,元素中的每个值称为一个值称为一个分量分量。。笛卡尔积的基数笛卡尔积的基数::若若DiDi((ii==11,,22,,……,,nn))为有限集,其基数为为有限集,其基数为mimi((ii==11,,22,,……,,nn),则),则DD11××DD22××……××DnDn的基数的基数MM为:为:mMini1=Π=例:例:D1={aD1={a、、b},D2={1,2,3}b},D2={1,2,3}则则D1D1××D2=D2={(a,1),(a,2),(a,3),(b,1),(b,2),(b,3)}注:1.从每一集合中抽一个元素做组合;(有序)2.笛卡尔卡积没有交换率;关系的定义关系的定义DD11××DD22××……××DDnn的子集叫作在域的子集叫作在域DD11,,DD22,,……,,DDnn上的上的关系关系,表示为,表示为RR((DD11,,DD22,,……,,DDnn))RR::关系名关系名nn::关系的关系的目目或或度度((DegreeDegree))当当nn=1=1时,称该关系为时,称该关系为单元单元关系关系当当nn=2=2时,称该关系为时,称该关系为二元二元关系关系关系也是一个二维表,表的每行对应一个关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。元组,表的每列对应一个域。注意:注意:1.1.笛卡儿积不满足交换率,而关系通过给笛卡儿积不满足交换率,而关系通过给关系的列附加属性名的方式关系的列附加属性名的方式取消元组的取消元组的有序性有序性。。2.2.按关系的定义,关系可以是无限集。通按关系的定义,关系可以是无限集。通常我们在关系数据模型中限定关系为常我们在关系数据模型中限定关系为有有限限关系。关系。关系中的码关系中的码候选码候选码--若关系中的某一属性组的值能--若关系中的某一属性组的值能唯一地标识一个元组,而其真子集不能唯一地标识一个元组,而其真子集不能,,则则称该属性组为该关系的一个候选码称该属性组为该关系的一个候选码(CandidateKey)(CandidateKey)。。一个关系可能有多个候选码,则选定其中一个关系可能有多个候选码,则选定其中一个作为一个作为主码主码(PrimaryKey)(PrimaryKey)。。包含在候选码中的属性称为包含在候选码中的属性称为主属性主属性,不包,不包含在任何候选码中的属性称为含在任何候选码中的属性称为非主属性非主属性。。全码全码((AllAll--KeyKey))----关系模式的所有属性关系模式的所有属性组构成此关系模式的唯一候选码。组构成此关系模式的唯一候选码。例:例:D1={D1={张丽、李冲、王唯张丽、李冲、王唯}}D2={D2={男、女男、女}}D3={18D3={18,,1919,,20}20}RR⊆⊆D1D1××D2D2××D3={{D3={{张丽,女,张丽,女,18},{18},{李李冲,男,冲,男,19},{19},{王唯,女,王唯,女,20}}20}}一般说来,只有取笛卡儿积的某个子集才有意义关系六性质关系六性质1.1.列是同质的;列是同质的;2.2.不同列可出自同一个域,每一列为一个不同列可出自同一个域,每一列为一个属性,不同属性属性,不同属性((列列))给不同属性名;给不同属性名;((如如入学时间入学时间,,毕业时间毕业时间))3.3.列的顺序可任意交换;列的顺序可任意交换;4.4.任意两个元组不能完全相同任意两个元组不能完全相同;;5.5.行的顺序可任意交换;行的顺序可任意交换;6.6.每一分量是不可分的数据项。每一分量是不可分的数据项。注意注意:在许多实际关系数据库产品中,关:在许多实际关系数据库产品中,关系并不完全具有这六条性质,例如,有系并不完全具有这六条性质,例如,有的数据库产品(如的数据库产品(如FoxProFoxPro))仍然区分了仍然区分了属性顺序和元组的顺序;许多关系数据属性顺序和元组的顺序;许多关系数据库产品中,例如库产品中,例如OracleOracle,,FoxProFoxPro等,它们等,它们都允许关系表中存在两个完全相同的元都允许关系表中存在两个完全相同的元组。组。关系模式关系模式关系模式:对关系的描述关系模式:对关系的描述包括:关系名,属性名,属性与域间的映象包括:关系名,属性名,属性与域间的映象形式化定义:形式化定义:RR((UU,,DD,,DOMDOM,,FF))R:关系名U:属性名D:属性所来自的域DOM:属性向域的映象集合F:数据依赖R:关系名U:属性名D:属性所来自的域DOM:属性向域的映象集合F:数据依赖通常记为R(U)或R(A1,A2,A3….An)关系模式与关系关系模式与关系关系模式关系模式对关系的描述对关系的描述静态的、稳定的静态的、稳定的关系关系关系模式在某一时刻的状态或内容关系模式在某一时刻的状态或内容动态的、随时间不断变化的动态的、随时间不断变化的关系模式和关系往往统称为关系关系模式和关系往往统称为关系通过上下文加以区别通过上下文加以区别关系数据库关系数据库在给定应用领域中,在给定应用领域中,所有实体和实体所有实体和实体间的联系的关系的集合构成一个关系数间的联系的关系的集合构成一个关系数据库据库。同样,关系数据库也有型和值之。同样,关系数据库也有型和值之分。分。型:关系数据库模式型:关系数据库模式是对关系数据库的描是对关系数据库的描述。述。值:值:是这些关系模式在某一时刻对应的关是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库系的集合,通常简称为关系数据库。。本章主要内容本章主要内容数据模型关系数据结构及其形式化定义关系的完整性关系代数关系演算关系的完整性关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:关系模型中三类完整性约束:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个整性约束条件,被称作是关系的两个不变性不变性,应,应该由关系系统自动支持。该由关系系统自动支持。实体完整性规则实体完整性规则((规则规则2.1)2.1):每一关系必有一主:每一关系必有一主码。构成主码的各属性值均不能取空值。码。构成主码的各属性值均不能取空值。实体完整性规则规定基本关系的所有主码的实体完整性规则规定基本关系的所有主码的各属性都不能取空值,而不仅是主码整体各属性都不能取空值,而不仅是主码整体不能取空值。不能取空值。例如学生选课关系例如学生选课关系““选修(学号,课程号,选修(学号,课程号,成绩)成绩)””中,中,““学号、课程号学号、课程号””为主码,则为主码,则““学号学号””和和““课程号课程号””都不能取空值,而不是都不能取空值,而不是整体不为空。整体不为空。参照完整性参照完整性现实世界中的实体之间往往存在某种联现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在都是用关系来描述的。这样就自然存在着着关系与关系之间的引用关系与关系之间的引用。。引用的时候,必须取基本表中已经存在的引用的时候,必须取基本表中已经存在的值。由此引出参照的引用规则。值。由此引出参照的引用规则。参照完整性规则就是定义外码与主码之间参照完整性规则就是定义外码与主码之间的引用规则。的引用规则。几个定义几个定义设设FF是基本关系是基本关系RR的一个或一组属性,但不的一个或一组属性,但不是关系是关系RR的码,如果的码,如果FF与基本关系与基本关系SS的主码的主码KsKs相对应,则称相对应,则称FF是基本关系是基本关系RR的的外码外码((ForeignkeyForeignkey)),并称基本关系,并称基本关系RR为为参照关参照关系(系(ReferencingrelationReferencingrelation)),基本关系,基本关系SS为为被被参照关系(参照关系(ReferencedrelationReferencedrelation))或或目标关目标关系(系(TargetrelationTargetrelation))。关系。关系RR和和SS不一定是不一定是不同的关系。不同的关系。外码的其他定义外码的其他定义如果基本关系如果基本关系R2R2的属性中,包含与另一个的属性中,包含与另一个基本关系基本关系R1R1的主码的主码KK相对应的属性组相对应的属性组FF,那,那么么FF则称为外部码则称为外部码参照完整性规则参照完整性规则:若属性(或属性组):若属性(或属性组)FF是是基本关系基本关系RR的外码,它与基本关系的外码,它与基本关系SS的主的主码码KsKs相对应(基本关系相对应(基本关系RR和和SS不一定是不不一定是不同的关系),则对于同的关系),则对于RR中每个元组在中每个元组在FF上上的值必须为:的值必须为:或者取空值(或者取空值(FF的每个属性值均为空的每个属性值均为空值);值);或者等于或者等于SS中某个元组的主码值。中某个元组的主码值。例如,学生选课系统,选课关系(例如,学生选课系统,选课关系(学号学号,,课程号课程号,成绩)的学号按实体完整性要,成绩)的学号按实体完整性要求,不能为空;按参照完整性要求,只能求,不能为空;按参照完整性要求,只能选学生关系中的学号,表示语义关系选学生关系中的学号,表示语义关系““只只有注册的学生才能选课有注册的学生才能选课””。课程号也类似。课程号也类似((请同学们自己考虑)请同学们自己考虑)。。学生关系(学生关系(学号学号,姓名,性别,专业号,年龄,,姓名,性别,专业号,年龄,班长班长))““班长班长””属性值可以取两类值:属性值可以取两类值:((11)空值,表示该学生所在班级尚未选出班)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;长,或该学生本人即是班长;((22)非空值,这时该值必须是本关系中某个元)非空值,这时该值必须是本关系中某个元组的学号值组的学号值用户定义的完整性(用户定义的完整性(UserUser--defineddefinedi
本文标题:第2章_数据模型与关系数据库(2)
链接地址:https://www.777doc.com/doc-4152175 .html