您好,欢迎访问三七文档
台州学院·计算机系·数据库原理与应用1关系数据库模型1关系模型的基本概念2关系代数3关系演算4查询优化台州学院·计算机系·数据库原理与应用21关系模型的基本概念1.1关系模型概述1.2关系数据结构1.3完整性规则台州学院·计算机系·数据库原理与应用31.1关系模型概述(1)1.关系模型的数据结构:关系(元组的集合)。在用户看来,一个关系就是一张二维表。2.关系模型的数据操作:对关系进行操作,且其操作的对象和结果都是关系(集合)。主要有选择(Select)、投影(Project)、连接(Join)、除(Division)、并(Union)、交(Intersection)、差(Difference)等查询(Query)和增加(Insert)、删除(Delete)、修改(Update)等更新操作。台州学院·计算机系·数据库原理与应用41.1关系模型概述(2)3.关系操作的表示方式:代数方式、逻辑方式以及结合两者特点的方式。每一种表达方式称为一种关系查询语言或关系数据语言。⑴代数方式:用代数运算来表达关系的查询要求和条件,也称为关系代数方式。⑵逻辑方式(关系演算):用谓词来表达关系的查询要求和条件。①元组关系演算:谓词变元为元组②域关系演算:谓词变元为域说明:关系代数、元组关系演算和域关系演算均是抽象的关系查询语言,且在表达能力上是等价。(3)结合两者的方式:SQL(StructureQueryLanguage),是介于关系代数和关系演算之间的关系数据语言。台州学院·计算机系·数据库原理与应用54.关系语言可以分三类关系代数语言例如ISBL元组关系演算语言例如ALPHA,QUEL关系数据语言关系演算语言域关系演算语言例如QBE具有关系代数和关系演算双重特点的语言例如SQL5.完整性约束:关系模型允许定义三类完整性约束,即实体完整性;参照完整性;用户定义的完整性。返回DBMS自动支持1.1关系模型概述(3)台州学院·计算机系·数据库原理与应用61.2关系数据结构(1)1.关系的定义定义3.1:给定一组集合D1,D2,…,Dn,且这些集合可以相同,定义D1,D2,…,Dn的笛卡尔积(CartesianProduct)为D1D2…Dn={(d1,d2,…,dn)|diDi,i=l,2,…,n},其中的每一个元素(d1,d2,…,dn)叫做一个n元组(n-tuple),元素中第i个值di叫做第i个分量。台州学院·计算机系·数据库原理与应用7关系数据结构的例子•例3.1设D1={1,2,3},D2={a,b},则D1D2={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)},是元组的集合,它还可用下图表示。123D1D21a1b2a2b3a3bab=台州学院·计算机系·数据库原理与应用8关系数据结构的例子•定义3.2笛卡尔积D1D2…Dn的任一个子集称为D1,D2,…,Dn上的一个关系。集合D1,D2,…,Dn是关系中元组的取值范围,称为关系的域(Domain),n称为关系的度(Degree)。•从例3.1可知,关系就是一个二维表,表中的每一行对应一个元组,每一列对应一个域。每一列有一个列名,它可以用域名表示,但由于不同列对应的域可以相同,因此需要不同的命名。这样,关系中的列称为关系的属性,列名称为属性名。台州学院·计算机系·数据库原理与应用9•例3.2选课结果关系Scourses如下D0=Sno={S01,S02,S03,S04}D1=Sname={王建平,刘华,范林军,李伟}D2=Class={19990l,199902,200001}D3=Cname={数据结构,计算机原理,数据库原理}D4=Tname={张征,杜刚,赵新民}关系数据结构的例子SnoSnameClassCnameTnameS01S02S03S04王建平刘华范林军李伟19990l199902200001200001数据结构计算机原理数据库原理数据结构张征杜刚赵新民张征台州学院·计算机系·数据库原理与应用10•笛卡尔积D0D1D2D3D4是一个五元组的集合,共有44333=432个元组,而关系Scourses是它的一个子集。可以发现,笛卡尔积的某些元组并没有实际意义,如{S04,王建平,199902,数据结构,张征}是笛卡尔积中的一个元组,但它是无意义的。关系数据结构的例子台州学院·计算机系·数据库原理与应用11•由关系定义可得关系的如下性质(第二章已提到)(1)每一列中的值是同类型的数据,都来自同一个域。(2)不同的列可以有相同的域,每一列称为一个属性,用属性名标识。(3)元组中的每个分量是不可分的数据项。(4)关系中的各个元组是不同的,即不允许有重复的元组。(5)元组的次序是无关紧要的。说明:关系中的元组与E-R模型中的实体1-1对应,本书以后不加区别的使用。因此,关系是元组的集合,亦即实体的集合。1.2关系数据结构(2)台州学院·计算机系·数据库原理与应用12候选键(CandidateKey):能唯一地标识出一个元组的属性或属性组。联合键(ConcatenatedKey):两个或两个以上属性组成的候选键。全键(All-Key):关系的全部属性构成关系的唯一候选键。该关系称为全键关系(All-KeyRelation)主键(Primarykey):在关系的多个候选键中选择的一个候选键,用它作为元组的唯一标示。在一个关系中只能有一个主键。外键(ForeignKey):关系R中的一组属性A不是关系R的主键,但A是另一个关系S的主键,则属性组A就是关系R的外键。1.2关系数据结构(3)台州学院·计算机系·数据库原理与应用13•关系模式:对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等。若U={A1,A2…,An}为关系R的属性集,则关系模式简记为R(U)或R(A1,A2,…,An)•关系模式和关系的区别和联系:关系模式描述的是关系的静态结构信息,是对一个关系的“型”的描述,是相对固定的。关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。返回1.2关系数据结构(4)台州学院·计算机系·数据库原理与应用141.3完整性规则(1)1.实体完整性规则(EntityIntegrity):关系中每一个元组的主键属性对应的各个分量不能为空值。空值:当前“不知道”的值,它既不是0也不是空字符‘’,用NULL表示。以关系Students为例:CREATETABLEStudents(Snochar(4)primarykeySname…………);台州学院·计算机系·数据库原理与应用151.3完整性规则(2)2.参照完整性规则(ReferenceIntegrity):设属性组A是关系R的外键且A又是关系S的主键,则对于R中的每一个元组在属性A上的值必须为:或者空值或者等于S中某一个元组的主键值。(1)所谓参照,就是关系R与另一关系S之间的联系,这种联系是通过其相同属性来建立的。参照完整性规则给出了关系之间建立联系的约束条件。(2)实体完整性和参照完整性都是关系模型必须满足的完整性约束条件,这些约束条件由RDBMS自动支持。请看文件“01-图示参照完整性”台州学院·计算机系·数据库原理与应用161.3完整性规则(2)SQLServer中按照以下命令建立参照完整性(假设Students和Courses已存在):CREATETABLEReports(SnoCHAR(10),CnoCHAR(6),GradeINT,PRIMARYKEY(Sno,Cno),CONSTRAINTStudent_ReportFOREIGNKEY(Sno)REFERENCESStudents,CONSTRAINTReport_CourseFOREIGNKEY(Cno)REFERENCESCourses,);台州学院·计算机系·数据库原理与应用171.3完整性规则(3)3.用户定义的完整性规则(User-definedIntegrity):用户根据具体应用而对数据附加的约束条件。说明:现在的商品化RDBMS提供了定义和检查这类完整性约束的机制,例如:CREATETABLEReports(SnoCHAR(5)NOTNULL,CnoCHAR(5)NOTNULL,GradeINTCHECK(Grade=0andGrade=100),CONSTRAINTSno_CnoUNIQUE(Sno,Cno));台州学院·计算机系·数据库原理与应用182.1传统的集合运算2.2专门的关系运算2.3关系运算举例2关系代数台州学院·计算机系·数据库原理与应用191.关系R与S是相容的:若关系R和S满足:⑴R和S具有相同的度。⑵R中的第i个属性和S中的第i个属性定义在同一个域上(i=l,2,…,n);2.并运算:关系R和S的并是一个新的关系,记为R∪S={t|tR∨tS},它由属于R或属于S的所有元组构成。3.差运算:关系R和S的差是一个新的关系,记为R-S={t|tR∧tS},它由属于R但不属于S的元组构成。4.交运算:关系R和S的交是一个新的关系,记为R∩S={t|tR∧tS},它由属于R同时也属于S的元组构成。2.1传统的集合运算(1)台州学院·计算机系·数据库原理与应用205.广义笛卡尔积:设R为m元关系,S为n元关系,则R与S的广义笛卡尔积R×S是一个(m+n)元关系,其中的每个元组的前m个分量是R中的一个元组,后n个分量是S中的一个元组。若R有k1个元组,S有k2个元组,则R×S有(k1×k2)个元组,即广义笛卡尔积R×S={(a1,a2,…,am,b1,b2,…,bn)|(a1,a2,…,am)R∧(b1,b2,…,bn)S}返回2.1传统的集合运算(2)说明:(1)若R有k1个元组,S为k2元关系,则R×S有(k1×k2)个元组,即广义笛卡尔积。(2)并、差、笛卡儿积、投影和选择常称为关系代数的五个基本元组(操作),其余则成为关系代数的组合运算。台州学院·计算机系·数据库原理与应用21•选择运算(Select):从关系R中选取满足给定条件的元组构成一个新的关系。选择运算记作:σF(R)={t|tR∧F(t)}其中σ是选择运算符,F是限定条件的布尔表达式。由逻辑运算符∨、∧和┐等连接各个算术表达式组成。算术表达式的基本形式为XY,其中X,Y可以是属性名,常量或简单函数,算术比较运算符{,,,,,}。2.2专门的关系运算(1)台州学院·计算机系·数据库原理与应用22SnoSnameSsexSageClassS01S02S03S04王建平刘华范林军李伟男女女男21191819199901199902200101200101关系StudentsCnoCnameDeptNameC01C02C03英语数据库网络自动化计算机数学关系CoursesSnoCnoGradeS01S01S02S02S02S03S03S04C01C03C01C02C03C01C02C03ABBABCAC关系Reports2.2专门的关系运算(1)台州学院·计算机系·数据库原理与应用23例3.4从关系Students中选取所有的男生。其关系运算表达式为σSsex=‘男’(Students)查询结果为SnoSnameSsexSageClassS01S04王建平李伟男男21191999012001012.2专门的关系运算(1)台州学院·计算机系·数据库原理与应用24•投影运算(Projection):从一个关系R中选取所需要的列组成一个新关系,投影运算记为∏A(R)=(R)={t[A]|tR}其中∏是投影运算符,A为关系R属性的子集,t[A]为R中元组相应于属性集A的分量,i1,i2,…,ik表示A中属性在关系R中的顺序号。kiii,,,212.2专门的关系运算(2)台州学院·计算机系·数据库原理与应用25•例3.5选取学生关系Sudents中的
本文标题:关系数据库模型重点
链接地址:https://www.777doc.com/doc-7797264 .html