资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 关系数据库数学模型,内容,关系数据模型 关系数据结构与形式化定义 关系完整性 EER模型到关系模式的转换 关系代数 关系演算,关系数据模型概述,关系数据库系统是支持关系模型的数据库系统。 关系数据模型概述( RDBMS) 关系模型: 关系数据结构 关系操作集合 关系完整性约束 关系数据结构 单一的数据结构关系 关系二维表(行列),实体及其联系都用关系表示。在用户看来关系数据的逻辑模型就是一张二维表。,关系数据模型概述(续I),关系操作 查询: 1)选择Select; 2)投影Project; 3)连接Join; 4)除Divide; 5)并Union; 6)交Intersection; 7)差Difference; 编辑: 1)增加Insert; 2)删除Delete; 3)修改Update;,三类完整性约束 实体、参照 DBMS保证 用户自定义 特点 关系:集合方式(操作对象和结果都是关系元组的集合关系) 非关系:层次/网状,以记录为操作单位。,关系数据模型概述(续II),关系数据结构及形式化定义,关系数据结构及形式化定义(集合论角度) 关系 1域(Domain) 一组具有相同数据类型的值的集合。 例:自然数,实数,英文字母,2笛卡尔积(Cartesian Product)-Descartes CPT:给定一组域D1,D2,,Dn,这些域中可以有相同的。则 D1,D2,,Dn的笛卡尔积为: D1 x D2 xx Dn=(d1,d2,dn) | diDi, i=1,2,n (d1,d2,dn) -n元组(n-tuple) di-元组的每一分量(Component) Di为有限集时,其基数为mi,则卡积的基数为M=m1*m2*mn,关系数据结构及形式化定义(续I),若 A=a, b, B=1, 2, 3 则A x B= (a,1), (a,2), (a,3), (b,1), (b,2), (b,3) 卡积D1 x D2 xx Dn=(d1,d2,dn) | diDi, i=1,2,n 从每一集合中抽一个元素做组合;(有序) 卡积没有交换率; 亦可看成是一个二维表;基数,二维表的行数,集合元素的个数; 参考离散数学。 上述AxB卡积的6个元组可以排成:,A B a 1 a 2 a 3 b 1 b 2 b 3,关系,3关系 D1 x D2 xx Dn的子集叫做在域D1,D2,Dn上的关系。 表示为: R(D1,D2,Dn) 其中,R为关系名;n为关系的度或目。 关系中的每个元素是关系中的元组,通常用t表示。 n=1,单元关系(unary relation); n=2,二元关系(Binary relation)。 关系为卡积的有限子集,也为二维表,行对应元组,列对应于域。,不同的列用不同的名字来区分,称为属性。n目关系有n个属性。 如: R1=(a,1),(b,2) R2=(a,1),(a,2),(b,1),(b,3) 关系是元组的集合,是笛卡尔积的子集。一般来说,一个关系只取 笛卡尔积的子集才具有意义。此外,还要对关系的要求进行规范,将没有实际意义的元组排除。(假如上面A为教师,B为课程,同时限制一个教师只允许教一门课程的处理),候选玛(Candidate key):可唯一标识每一元组的属性(组)。 主码( Primary key):候选码中选择其一称为主码。相应属性组为主属性。 非码属性(Non-key attribute):不包含在任何候选码中的属性。 全码(All-Key):用所有属性来唯一标识表中元组时的候选码。,关系(续I),关系(续II),关系分类 基本关系(基本表、基表)- 数据库中实际存在的表 查询表 - 查询结果集 视图 - 由多个表导出(虚表),关系性质 1)关系必须是有限集; 2)卡积无交换率,通过给属性命名取消元组分量的有序性; a.列同质(homogeneous)-分量同类型; b.不同列可出自同一域; c.列的顺序无所谓 d.任意两个元组不能完全相同; e.行的顺序无所谓; f.分量必须取原子值。,关系(续III),在许多实际的数据库产品中,基本表并不完全具有上述性质。如Oracle、Foxpro等,它们都允许关系表中存在两个基本点完全相同的元组,除非用户特别定义了相应的约束条件。 关系模型还要求关系必须是规范化的,即必须满足一定的规范条件。基本条件:关系的每一个分量必须是一个不可分的数据项。 范式(Normal Form):规范化的关系。,关系模式,关系模式(Relation schema) 对关系的描述 关系是元组的集合(属性、域及其映象关系) 元组语义(使n目谓词为真的卡积中的元素的全体) 形式化定义:R(U, D, dom, F) 元组 R 关系名 完整性约束 U 组成关系的属性名的集合 D 为属性组U中属性的域 Dom 为属性向域的映象集合 F 为属性间数据的依赖关系集合,通常简记为:R(U)或R(A1,A2,An) 其中1,A2,An为属性名。D及Dom则直接说明为属性 的类型和长度。,关系模式(续I),关系模式 - 型 关系 - 值(内容) *有时混用,但可从上下文进行区分。 关系是关系模式在某一个时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。实际当中,常把关系模式和关系都称为关系。,关系数据库 实体自身及实体间的联系都用关系来表示; 在DBMS中,关系对应于多个表。,关系完整性,关系的完整性约束条件 实体完整性 (Entity Integrity) 若属性A是基本关系R的主属性,则属性A不能为空值; 如学生关系中的“学号”属性。,参照完整性 (Referential Integrity ) 外码(Foreign key) 设F是关系R的非码属性(组)。如果F与关系S的主码K相对应(定义在同一个(组)域上),则称F是关系R的外码。 参照关系(Referencing Relation) 如上述关系R 被参照关系(或目标关系)(Referenced Relation) 如上述关系S 规则: 定义外码与主码之间的引用规则,即外码F取值。 1)空NULL; 2)目标关系中存在的值; *表内属性间的参照也要有存在的值;,关系完整性(续I),样例: 学生(学号,姓名,年龄,性别,专业号) 专业(专业号,专业号) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 实体完整性规定基本关系的所有主属性不能取空值。,参照完整性规定基本关系的外码取值。如上述学生关系的“专业号”属性与专业关系的主码“专业号”对应,因此“专业号”属性是学生关系的外码。它的取值规定如下: a.空值 表示尚未给该学生分配专业 b.非空值 必须是目标关系专业关系中某个元组的“专业号”值。 此外,还须注意: 外码并不一定与目标关系的主码同名; 参照关系与目标关系可以是同一个关系。如学生关系(学号,姓 名,性别,年龄,班长)中,“班长”属性的取值情况。,关系完整性(续II),用户自定义完整性(User-defined Integrity) 根据客观实际的一些约束条件。 例:性别(男,女) 年龄(15-25) ,实体类型的转换 每种实体型可由一个关系模式来表示。 实体类型的属性为关系的属性; 实体类型的主键作为关系的主键。 如前面所述“学生”实体类型可以由如下关系模式表示: 学生(学号,姓名,性别,出生年月,入学时间,系) 二元关系的转换 分析一个1:n 的二元关系:,EER模型到关系模式的转换,强制性成员 如果一种联系表示实体类型的各种实例必须具有这种联系,则说明该实体的成员类在这种联系下是强制性的。 上述1:n的“管理”联系表示了一个经理管理许多职工。如果规定每个职工必须有一个管理者,则“职工”中的成员类在联系“管理”中是强制性的。 非强制性成员 与上述定义相对应的概念。 上述1:n的“管理”联系中,如果允许存在不用管理者的职工,则“职工”中的成员类在联系“管理”中是非强制性的。,EER模型到关系模式的转换(续I),转换方法 对于强制性成员类 如果一个实体是某个联系的强制性成员,则在二元关系转化为关系模式的实现方案中要增加一条完整性约束。具体操作为:如果实体类型E2在实体类型E1的n:1联系中是强制性成员,则的E2关系模式中要包含E1的主属性。 如规定每一项工程必须有一个部门管理,则实体类型Project是联系”Runs”的强制性成员,因而在Project的关系模式中包含部门Department的主属性。,EER模型到关系模式的转换(续II),实体类型E2在与实体类型E1的n:1联系中是一个非强制性的成员,引入一个分离模式来表示联系和属性。分离的关系模式包含E1和E2的主属性。 如在图书馆数据库的EER模型中,有两个实体类型借书者(Borrower)和书(Book)之间的联系如下:,EER模型到关系模式的转换(续III),可以转换为以下两个模式 Borrower(B#,Name,Address,) Book(ISBN,B#,Title,) 关系Book中的外键B#表明借书者的信息,但图书馆的书很多,可能有许多书没有借出,则B#的值为空。此时,对于不能处理空值的DBMS,会出现问题。,即: Project(P#,DName,Title,Start_Date,End_Date,) 这里DName既是关系Department的主属性,又是关系Project的外键。 对于非强制性成员类 如果一个实体是某个联系的非强制性成员,则通常新建一个分离关系来表示这种联系和属性。具体操作为:如果,为此,本例中引入一个分离关系On_Load(借出的书),可以避免空值的出现。 这样,存在以下三个关系模式: Borrower(B#,Name,Address,) Book(ISBN,Title,) On_Load(ISBN,B#,Date1,Date2) 只有借出的书才会出现在关系On_Load中,避免空值 的出现,并把属性Date1和Date2加到关系On_Load中。,EER模型到关系模式的转换(续IV),多对多的二元关系 m:n的二元关系通常要引入一个分离关系来表示两个实体类型之间的联系,该关系由两个实体类型的主属性及其联系属性组成。如学生与课程的m:n联系及学生选课的关系转换。,实体内部之间联系的转换 实体内部之间1:1的联系 如非强制性的婚姻关系,可引入一个分离关系 实体内部之间1:n的联系 如职工与管理人员的联系。分强制与非强制联系。 实体内部之间m:n的联系 一般要引入分离关系 三元关系的转换 一般要引入分离关系 如公司、产品和国家之间的m:n:p的三元关系及销售联系。,EER模型到关系模式的转换(续V),关系代数,关系代数概述 关系代数的运算符 集合运算符 并U 交 差- 专门的关系运算符 笛卡尔积 选择 投影 连接 除 算术比较符 = 逻辑运算符 非 与 或v,关系代数(续I),关系代数的运算类型 传统的集合运算 - 关系看作元组的集合(行); 专门的关系运算 - 同时涉及关系的行和列; 比较运算和逻辑运算用于辅助专门的关系运算符进行操作。,关系代数(续II),传统的集合运算 四类:并,交,差,广义笛卡尔积; 关系并、交、差的前提: 关系R,S都为n目,且对应属性域相同。 并:R U S = t | tR V tS 属于R和S的元组构成的关系;(去掉重复) 差:R-S = t | tR tS 由属于R但不属于S的元组的构成的关系; 交:R S = t | tR tS 由既属于R亦属于S的元组构成的关系; 广义笛卡尔积: R S = trts | tr
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号