




免费预览已结束,剩余35页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与实践(SQLServer),陆黎明王玉善陈军华编著清华大学出版社2015.10,2020年5月25日星期一,第2章关系数据库,第2页,2.1.1数据模型的定义和基本要求,1、数据模型的定义模型是现实世界特征的模拟和抽象。数据模型是现实世界数据特征的模拟和抽象。必须事先把具体事物及其联系转换(即数字化)成计算机能够存储和处理的数据。转换后的数据不仅要反映数据本身的内容,而且还要反映数据之间的联系。2、数据模型的基本要求数据模型应满足三方面要求:一是比较真实的模拟现实世界;二是容易被人理解;三是便于在计算机上实现。,2020年5月25日星期一,第2章关系数据库,第3页,2.1.2数据模型的三个层次,要把现实世界中的客观事物及其联系转换成能被计算机存储和处理的数据,就要对现实世界进行抽象建立起相应的数据模型。但这种抽象转换不是一步完成的,而是根据数据模型应用的目的不同分步实现的。每一步得到的数据模型分属于三个不同的层次,它们分别是概念模型、逻辑模型和物理模型。概念模型(信息模型):按用户的观点对数据和信息建模,是现实世界的第一层抽象,是信息世界中数据特征的描述,它概念简单、清晰,易于用户理解,且不依赖于具体的计算机系统逻辑模型:按计算机的观点对数据建模,是现实世界的第二层抽象,它有严格的形式化定义,便于在计算机系统中实现。,2020年5月25日星期一,第2章关系数据库,第4页,2.1.2数据模型的三个层次,物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。数据模型是数据库系统的基础和核心。,2020年5月25日星期一,第2章关系数据库,第5页,2.1.3数据模型的三个组成要素,一般来说,数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件,因此,数据模型通常是由数据结构、数据操作和完整性约束条件这三个要素组成的。数据结构:数据模型中最重要的方面,是数据对象及它们之间关系的描述,反映了系统的静态特性。数据操作:对数据对象允许操作的集合,有检索和更新两大类,反映了系统的动态特性。完整性约束条件:完整性规则的集合,给出模型中的数据及其联系所具有的制约和依存规则,限制数据的状态及状态的变化,确保数据的正确、有效、相容。,2020年5月25日星期一,第2章关系数据库,第6页,2.2.1信息世界中的基本概念,概念模型也称信息模型,是按用户的观点对数据和信息建模,是对现实世界的第一层抽象,是信息世界中数据特征的描述。它一方面具有较强的语义表达能力,能够方便、直接地表达应用所涉及到的现实世界中的各种语义知识,另一方面它概念简单、清晰,易于用户理解,且不依赖于具体的计算机系统。概念模型主要用于数据库设计,是用户与数据库设计人员之间进行交流的桥梁。(1)实体(Entity)是现实世界中客观存在并可相互区分的事物的抽象。它可以是具体的,也可以是抽象的。例如学生、书、专业、课程、选课、借书等。(2)属性(Attribute)是实体某一方面特性的抽象。一个实体可以由多个属性来刻画。例如,书实体可以由书号、书名、作者、价格、出版社、出版日期等属性组成。,2020年5月25日星期一,第2章关系数据库,第7页,2.2.1信息世界中的基本概念,(3)码(Key)是唯一标识实体的属性或属性集。例如:书号。(4)域(Domain)是一组具有相同数据类型的值的集合,属性的取值范围来自某个域。(5)实体型(EntityType),同类实体必须具有相同的特征,即相同的属性。描述同类实体的方法是实体型,它由实体名和属性名集合组成。例如:实体“书”的实体型可表示为:书(书号,书名,作者,价格,出版社,出版日期)。(6)实体集(EntitySet)是同型实体的集合。,2020年5月25日星期一,第2章关系数据库,第8页,2.2.2实体间的联系,在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。(1)一对一联系有两个实体集A和B。如果任一个实体集中的每个实体最多与另一个实体集中的一个实体有联系,则称实体集A和实体集B具有一对一联系,记为1:1。例如,学校里的学院与院长(如图2.2(a)所示)、班级与班长之间都具有一对一联系。注意,一对一联系不同于数学中的一一对应关系。某班级的班长可以是空缺的,还没有选出班长。,2020年5月25日星期一,第2章关系数据库,第9页,2.2.2实体间的联系,(2)一对多联系有两个实体集A和B。如果实体集A中的每个实体可与实体集B中的多个(可0个)实体有联系;反之,实体集B中的每个实体最多可与实体集A中的一个实体有联系,则称实体集A和实体集B具有一对多联系,记为1:n。例如,学校里的学院与专业、专业与学生(如图2.2(b)所示)之间都具有一对多联系。,2020年5月25日星期一,第2章关系数据库,第10页,2.2.2实体间的联系,(3)多对多联系有两个实体集A和B。如果任一个实体集中的每个实体可与另一个实体集中的多个(可0个)实体有联系,则称实体集A和实体集B具有多对多联系,记为m:n。例如,学校里的学生与课程(如图2.2(c)所示)、商店里的营业员与顾客之间都具有多对多联系。要特别说明的是:上面仅仅列出了实体集之间最常见的联系,事实上,两个实体集之间可以存在一种以上的联系;两个以上的实体集之间可以存在联系;同一个实体集内的各个实体之间也可以存在联系。,2020年5月25日星期一,第2章关系数据库,第11页,2.2.3概念模型的表示方法E-R图,表示概念模型的方法很多,其中最常用的方法是1976年由P.P.S.Chen提出的实体联系方法(E-R方法)。E-R方法用E-R图来表示概念模型,这种概念模型也称E-R模型。E-R图中的基本图素有:(1)矩形框:表示实体型,框中写实体名。(2)菱形框:表示实体之间的联系,框中写联系名。(3)椭圆形框:表示实体的属性或联系的属性,框中写属性名。(4)直线:连接与此联系相关的实体、连接实体与属性、连接联系与属性。,2020年5月25日星期一,第2章关系数据库,第12页,2.2.3概念模型的表示方法E-R图,画E-R图的步骤:(1)确定实体(2)确定各实体的属性(3)确定实体之间的联系(4)确定各联系的属性,2020年5月25日星期一,第2章关系数据库,第13页,2.3.1层次模型,逻辑模型有:层次、网状、关系、面向对象、对象关系等在层次模型中表示实体以及实体之间联系的数据结构是有向树结构。树中所有父子结点之间的联系都为一对多的联系。层次模型的特点是实体之间的联系通过指针来实现。优点是查询效率比关系模型高,且不低于网状模型,其数据结构比较简单、直观、容易理解。缺点是表示多对多的联系不方便(必须通过辅助手段),查找时必须通过双亲结点,使操作趋于过程化,编写应用程序比较复杂。,2020年5月25日星期一,第2章关系数据库,第14页,2.3.2网状模型,在网状模型中表示实体以及实体之间联系的数据结构是有向图结构。有向图中结点之间的联系都是一对多的联系,因此实体之间一个多对多的联系必须通过转换用实体之间两个一对多的联系来表示。网状模型中实体之间的联系也是通过指针来实现的,因此查询效率较高。另外,由于它的数据结构是图结构,所以多对多的联系也较容易实现。网状模型的缺点是数据结构复杂,编程也复杂。,2020年5月25日星期一,第2章关系数据库,第15页,2.3.3关系模型,关系模型是建立在严格的数学概念基础上的,数据结构是一张二维表,实体以及实体之间的联系都用二维表表示。二维表在关系模型中称为关系(Relation),对关系的描述称为关系模式(RelationSchema)。例如:学生(学号,姓名,性别,年龄,家庭地址,联系电话)课程(课程号,课程名,课程类型,学时,学分)选修(学号,课程号,选修日期,成绩)关系模型的优点是:有严格的理论基础,概念单一;数据结构简单、清晰、用户易理解;存取路径对用户透明,程序与数据的独立性高,易于应用程序的编写和维护。关系模型的缺点主要是查询效率不如非关系模型,DBMS的开发难度高。,2020年5月25日星期一,第2章关系数据库,第16页,2.4关系模型,开创者或奠基人:IBM公司的研究员E.F.Codd1970年的著名论文:“ARelationalModelofDataforSharedDataBanks”1981年的实验系统:IBM公司的SystemR、加州大学柏克利分校的INGRES目前的商品化系统:DB2,PostgreSQL,Oracle,SQL-Server,MySQL,Sybase,Informix等关系数据库系统是支持关系模型的数据库系统关系模型:关系数据结构、关系操作集合、关系完整性约束,2020年5月25日星期一,第2章关系数据库,第17页,2.4.1关系数据结构,在关系模型中,现实世界中实体以及实体之间的各种联系均用单一的结构类型,即关系来表示。下面从集合论角度给出关系数据结构的形式化定义。1、域(Domain)是一组具有相同数据类型的值的集合。域中所包含的值的个数称为域的基数,常用字母m表示。例如,有下列集合:D1=张敏,孙阳,李丽,表示姓名的集合,其基数m1=3;D2=男,女,表示性别的集合,其基数m2=2;D3=计算机,通信,表示专业的集合,其基数m3=2。2、笛卡尔积(CartesianProduct)是域上的一种集合运算,这些域可以完全不同,也可以部分或全部相同。定义为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n,2020年5月25日星期一,第2章关系数据库,第18页,2.4.1关系数据结构,(1)元组(Tuple):(d1,d2,dn)(2)分量:din(3)笛卡尔积基数M:M=mii=1例如,对于前面给出的姓名,性别,专业三个域,其笛卡尔积的基数为322=12,如表2.1所示。3、关系(Relation):D1D2Dn的任一有意义的子集称为域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)其中:R为关系名、n为关系的度(或目)、Di为域关系是值域笛卡尔积的一个有限子集,关系中的每个元素就是元组,通常用t表示,tR表示t是R中的元组。,2020年5月25日星期一,第2章关系数据库,第19页,2.4.1关系数据结构,通俗地讲,关系是一张二维表,行对应元组,列对应域。由于域可以相同,必须对每列起一个唯一的名字,称为属性。关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。关系有如下性质:(1)每一列中的分量(也称为属性值)的类型必须相同,即来自同一个域;(2)不同的列可出自同一个域,其中的每一列称为一个属性,属性名必须各不相同;(3)列的顺序无所谓,即列的次序可以任意交换;(4)行的顺序无所谓,即行的次序可以任意交换;(5)任意两个元组不能完全相同,即不能有重复的元组,因为关系是元组的集合;(6)每一个分量必须是不可分的,即不允许“表中套表”。,2020年5月25日星期一,第2章关系数据库,第20页,2.4.1关系数据结构,4、关系模式对关系的描述称为关系模式:R(U,D,DOM,F)通常简记为:R(U)或R(A1,A2,An)其中:R为关系名A1,A2,An为属性名关系模式是型,是相对稳定的,是静态的关系是值,是相对易动的,是动态的5、关系数据库在关系数据库中,实体及实体间的联系都用关系表示。如:学生(学号,姓名,性别,)描述实体课程(课程号,课程名,)描述实体学生选课(学号,课程号,)描述实体之间的联系关系数据库也有型和值之分型:关系数据库模式,包括若干域的定义及若干关系模式值:若干关系的集合,通常就称为关系数据库,2020年5月25日星期一,第2章关系数据库,第21页,2.4.2关系的完整性,关系模型的完整性规则是对关系的某种约束条件,这些约束条件实际上是现实世界的要求。关系模型中有三类完整性约束,包括实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系数据库系统自动支持。1、码及其相关概念(1)超码:在一个关系中,若一个属性或属性组的值能够唯一标识关系中的一个元组。但是它所包含的属性可能有多余的。如超码:(学号,性别)(2)候选码:在一个关系中,如果一个属性或属性组的值能够唯一标识关系中的一个元组而不含有多余的属性。如:学号(3)主码:在一个关系中,候选码可以有多个,被选定的这个候选码称为主码。,2020年5月25日星期一,第2章关系数据库,第22页,2.4.2关系的完整性,(4)主属性和非主(码)属性候选码中的诸属性称为主属性不包含在任何候选码中的属性称为非主(码)属性(5)全码在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(All-Key)。,2020年5月25日星期一,第2章关系数据库,第23页,2.4.2关系的完整性,2、实体完整性实体完整性规则:若属性A是基本关系R主码中的属性,则属性A不能取“空值”。所谓空值就是“不知道”或“无意义”的值例如,在关系“选修(学号,课程号,选修日期,成绩)”中,(学号,课程号,选修日期)为主码,则这三个属性都不能取空值。实体完整性规则说明:(1)实体完整性规则是针对基本关系而言的。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。在关系模型中以候选码作为唯一性标识,如果主属性取“空值”,就说明存在某个不可标识的实体,即存在不可区分的实体,与前面的假设矛盾。,2020年5月25日星期一,第2章关系数据库,第24页,2.4.2关系的完整性,3、参照完整性现实世界中的实体之间往往存在错综复杂的联系,数据库就是要描述这些联系。首先,我们来看几个例子:专业(专业号,专业名,创办日期,所属学院)学生(学号,姓名,性别,年龄,专业号,班长)课程(课程号,课程名,课程类型,学时,学分)选修(学号,课程号,选修日期,成绩)显然(1)学生关系中的专业号必须是确实存在的专业的专业号(2)选修关系中的学号必须是确实存在的学生的学号,课程号必须是确实存在的课程的课程号(3)学生关系中的班长必须是确实存在的学生的学号,2020年5月25日星期一,第2章关系数据库,第25页,2.4.2关系的完整性,外码定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是R的外码。R称为参照关系,S称为被参照关系。注意:R和S可以是同一个关系。例如:专业(专业号,专业名,创办日期,所属学院)学生(学号,姓名,性别,年龄,专业号,班长)课程(课程号,课程名,课程类型,学时,学分)选修(学号,课程号,选修日期,成绩)参照完整性规则:若属性F是关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值,或者等于S中某个元组的主码值参照完整性规则的语义:例如对于学生关系中的专业号而言,专业号取空值表示该生还没有确定专业,如专业号取非空值表示该专业是专业关系中确实存在的。注意;R和S可以是同一个关系有时外码不能取空值,蓝色的属性为外码,2020年5月25日星期一,第2章关系数据库,第26页,2.4.2关系的完整性,4、用户定义的完整性用户定义的完整性是针对某一具体的关系数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求。例如:工人的姓名不能取空值;工人的性别必须为男或女;男工人年龄的取值范围在1660之间;工人的工龄工人的年龄16(16周岁是劳动法规定的最低就业年龄)。RDBMS应提供定义和检测这类完整性的机制,以便用统一的系统方法来处理,而不要由应用程序自己来处理。,2020年5月25日星期一,第2章关系数据库,第27页,2.4.3关系操作的特点与分类,1、操作:1)插入、删除、修改2)查询:选择、投影、连接、除、并、差、交、笛卡尔积(黄色的是基本操作)2、特点:1)关系操作采用集合的操作方式,操作的对象和结果是集合2)高度的非过程化3、分类:关系代数ISBL元组关系演算ALPHA关系演算域关系演算QBE具有关系代数及关系演算双重特点SQL语言,2020年5月25日星期一,第2章关系数据库,第28页,2.5关系代数,任何一种运算,运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果也是关系,而运算符有以下四类:集合运算符:,专门的关系运算符:,比较运算符:,=,逻辑运算符:,注意:集合运算符和专门的关系运算符是主运算符,而比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。八种主运算符中,并、差、广义笛卡尔积、选择和投影五种运算是基本运算,2020年5月25日星期一,第2章关系数据库,第29页,2.5.1传统的集合运算,除广义笛卡尔积外,参加运算的两个关系R和S必须是相容的,即关系R和S具有相同的目n(属性个数相同),且相应的属性取自同一个域。1、并RS=t|tRtS2、差RS=t|tRtS3、交RS=t|tRtSRS=R(RS)或RS=S(SR)4、广义笛卡尔积RS=trts|trRtsS,ABCABCDEb2za5x7cb8yd3y4aa5xb2z6d关系R关系S关系T,ABCb2zb8ya5xd3yRS,ABCb2za5xRS,ABCb8yR-S,ABCDEa5x7ca5x4aa5x6dd3y7cd3y4ad3y6db2z7cb2z4ab2z6dST,2020年5月25日星期一,第2章关系数据库,第30页,2.5.2专门的关系运算,1、选择(Selection):在水平方向选择满足条件的元组F(R)=t|tRF(t)=真其中F为选择条件,它是由常量、变量、函数、属性名、算术运算符、比较运算符和逻辑运算符组成的逻辑表达式。2、投影(Projection):在垂直方向上选取所需要的属性A(R)=tA|tR其中A为R中属性列注意:选择是从水平(行)方向上分割关系,而投影是从垂直(列)方向上分割关系,ABCb2zb8ya5x关系R,ABCb2zA=bB=2(R),ABb2b8a5A,B(R),AbaA(R),注意:投影以后要取消重复的元组,2020年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论