结构数据模型课件_第1页
结构数据模型课件_第2页
结构数据模型课件_第3页
结构数据模型课件_第4页
结构数据模型课件_第5页
已阅读5页,还剩253页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据模型本章学习要求:1.层次数据模型、网状数据模型了解层次及网状数据模型的基本概念和结构。2.关系数据模型掌握关系数据模型的基本概念以及关系代数操作。了解层次、网状和关系模型之间的差别。3.对传统模型的评价了解传统模型的不足之处。4.E-R数据模型

掌握E-R模型的概念和表示。5.面向对象数据模型

了解面向对象数据模型的基本概念。第2章数据模型本章学习要求:1数据模型可分为两类:独立于计算机系统的数据模型,它完全不涉及信息在计算机系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。概念模型用于建立信息世界的数据模型,强调其语义表达能力,概念应该简单,清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库人员之间进行交流的工具。最著名的是“实体联系模型”。数据模型可分为两类:独立于计算机系统的数据模型,它完全不涉22.直接面向数据库的逻辑结构的数据模型,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“基本数据模型”或“结构数据模型”。例如,层次、网状、关系、面向对象数据模型”.这类模型有严格的形式化定义,以便在计算机系统中实现。2.直接面向数据库的逻辑结构的数据模型,它是现实世界的第二32.1层次数据模型用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次数据模型(hierarchicaldatamodel)。2.1层次数据模型用树型(层次)结构表示实体类型及4基本概念和结构记录和字段双亲子女关系层次数据模式虚拟记录层次数据的线性表示基本概念和结构5记录和字段

记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。一个记录包含若干字段。每个字段也是命名的,字段只能是简单数据类型(整数、实数、字符串等)。记录和字段6系系名系号系主任名地点记录的型计算机系9李西远科技馆记录的一个实例系系名系号系主任名地点记录的型计算机系9李西远科技馆记录的一7双亲子女关系(Parent-ChildRelationship,PCR)反映两个记录型之间的一对多(1:N)关系系班计算机系901班911班921班931班1NPCR型PCR实例双亲子女关系(Parent-ChildRelationsh8层次数据模式层次数据模式由PCR构成层次数据模式系班学生教研组教师层次数据模式层次数据模式系班学生教研组教师9计算机系901班911班921班931班硬件教研组软件教研组王一张三李四赵立钱英孙玉周新吴坚郑山洪流陈芝丁伟………………层次数据模式实例计算机系901班911班921班931班硬件教研组软件教研组10在层次数据模式中,除根以外,所有的记录型都应该有唯一的双亲,但可以有多个子女,子女按从左到右的次序排序。在层次数据模式中,除根以外,所有的记录型都应该有唯11虚拟记录非层次关系表示问题(1)M:N王一张三李四人工智能数据库学生:课程:虚拟记录王一张三李四人工智能数据库学生:课程:12不允许一个记录有多个双亲,需要复制记录,导致冗余。如下图:型实例学生课程王一人工智能张三人工智能数据库李四人工智能数据库不允许一个记录有多个双亲,需要复制记录,导致冗余。13(2)一个记录是两个以上PCR的子女学生班运动队只能表示成下图,存在冗余。学生班学生运动队(2)一个记录是两个以上PCR的子女学生班运动队只能表示成下14(3)多元关系供应商零件工程项目供应关系(3)多元关系供应商零件工程项目供应关系15可以用PCR表示为:供应商零件工程项目零件供应商工程项目供应商工程项目零件…可以用PCR表示为:供应商零件工程项目零件供应商工程项目供应16注意:书上图2-12不能表示三元关系,因为供应关系与供应商,供应关系与工程项目这两个PCR的一个双亲实例,其子女集合是并关系,而不是迪卡尔积关系。供应商零件工程项目供应关系注意:书上图2-12不能表示三元关系,因为供应关系与17主要问题:数据冗余,为避免这一情况,只存一份记录,其它引用该记录的地方用指针代替——这种用指针代替的记录称为虚拟记录。用下标v表示,指针用虚线箭头表示。(学生)v课程学生(课程)v主要问题:数据冗余,为避免这一情况,只存一份记录,其它引用该18学生(学生)v班运动队学生(学生)v班运动队19层次数据的线性表示由于存储器是线性的,层次数据必须变换成线性形式才能存储,层次数据模式的实例对应一棵层次树(或森林),对层次树(或森林)按先序遍历生成的序列称为层次序列(hierarchicalsequence),规定以此作为存储次序。计算机系901班王一…张三911班…931班…吴坚硬件教研组郑山…洪流软件教研组…丁伟层次数据的线性表示计901王…张911…931…吴硬郑…洪软20层次数据模型的约束(1)除了根记录外,任何其它记录不能离开其双亲记录而孤立存在;(2)任何记录,不管虚实,只允许有一个双亲记录(保证层次数据模式及其实例是树形);(3)虚拟记录的指针必须指向一个实际存在的记录,有虚拟记录指向的记录不得删除;(4)虚拟记录不得为根记录。层次数据模型的约束21特点:层次结构是树结构,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型是1:N联系。(因此不能表示M:N)特点:层次结构是树结构,树的结点是记录类型,非根结点22层次模型的优点:记录之间的联系通过指针来实现,查询效率较高(针对层次结构)。层次模型的缺点:1、只能表示1:N联系,虽然可以采用虚拟记录描述非层次数据关系,但较复杂,用户不易掌握,并且非层次结构的查询效率比较低;2、由于层次顺序的严格和复杂,引起数据的查询和更新很复杂,因此应用程序的编写也比较复杂;3、模式描述语言较复杂,数据独立性差。层次模型的优点:层次模型的缺点:232.2网状数据模型用有向图(网络结构)表示实体及实体之间联系的数据模型称为网状数据模型(networkdatamodel)。有向图中的结点是记录类型,箭头表示从箭尾的记录类型到箭头的记录类型间联系。2.2网状数据模型用有向图(网络结构)表示实体及实24基本概念和结构记录和数据项数据项相当于字段,记录是数据项的有序结合。

系系表示两个记录型间的1:N关系;对应“1”的为首记录,对应“N”的为属记录。系是命名的,有型值之分,例如:图2-17就是系的型和值。基本概念和结构25班级学生一班王一李红丁杰型值图2-17班级—学生系班级学生一班王一李红丁杰型值图2-17班级—学生系26具有多种类型属记录的系称为“多属系”(multimemberset)多属系系值:3个成员的并,而非“X”账户存款帐提款帐转账具有多种类型属记录的系称为“多属系”多属系系值:3个成员的并27网状模型的特点:

与层次模型不同,网状模型中,一个记录型可以成为多个首记录型的属记录——突破层次的限制;一个记录型不能既作为一个系的首记录又作为同一个系的属记录。

EMP领导网状模型的特点:EMP领导28——引入联系记录EMPLINK1:11:N1:1表示一人担任一个领导岗位,系值见下一页图。——引入联系记录EMPLINK1:11:N1:1表示一29E4L1S1E7L2S1E9L3S1E3E5E1E6S2……S2S2E4L1S1E7L2S1E9L3S1E3E5E1E6S2……30一个记录值不能出现在同一系型的多个系值中,否则不是1:N关系例如,学生(S)和课程(C)关系一个记录值不能出现在同一系型的多个系值中,否则不是1:N关系31S1C1C2C3C4S1C5C6S1C1C2C3C4S1C5C632解决M:N问题的方法——联系记录SLINK1CSLM1CLN型解决M:N问题的方法——联系记录SLINK1CSLM1CLN33S1L1SLL2L3L4L5L6L7S2SLC1C2C3C4C5C6CLCLCLCLCLCL值S1L1SLL2L3L4L5L6L7S2SLC1C2C3C434LINK表示多元关系零件LINK1工程项目M1N供应商1PLINK表示多元关系零件LINK1工程项目M1N供应商135无首系,首记录可以看成“系统”,例如一个单位的所有部门组成一个无首系。无首系只有一个实例,也称单值系。无首系,首记录可以看成“系统”,例如一个单位的所有部门组成一36系的实现方法OS1S2S3前向指针后向指针首记录指针系的链式实现方式系的实现方法OS1S2S3前向指针后向指针首记录指针系的链式37约束(1)一个记录型不能兼任同一系的首记录和属记录;(2)一个记录不能出现在同一系型的多个系值中;(3)插入一个新记录时,若它的记录型是某个系的属记录,必须考虑系籍问题(两种系籍约束):AUTOMATIC(自动的):新的属记录插入时自动加入相应的系值;MANUAL(人工的):新的属记录插入时不自动加入相应的系值;约束38(4)对已插入的属记录的系籍问题;网状数据模型提供三种留置系籍约束:OPTIMAL(随意的):对属记录的系籍处理比较随意,属记录可以脱离某个系值独立存在,例如,“系——学生”系;MANDATORY(强制的):属记录不能游离于系值之外,但可以转系值。例如,“部门——职工”系;FIXED(固定的):不能游离,不能转系值,例如,“职工——家属”系。上述系籍约束都是语义约束。(4)对已插入的属记录的系籍问题;39(5)删除记录时,删除首记录,没有系籍问题;删除属记录要按照(4)进行处理。OPTIMAL首记录可以删除,其属记录与系值脱离,仍保留在数据库中;MANDATORY首记录不能删除,因为其属记录不能游离于系值之外;FIXED可将首记录连同属记录一起删除。(5)删除记录时,删除首记录,没有系籍问题;删除属记录要按照40网状模型的缺点:编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。在关系DB以前,网状DB比层次DB用的要普遍。模拟层次和非层次结构比较自然,目前仍有应用实例。由于层次系统和网状系统的应用程序编制复杂,目前已被关系系统产品取代。课程只介绍层次和网状数据模型的概念和机制,以求全面了解数据库技术的发展。网状模型的缺点:编写应用程序比较复杂,程序员必须412.3关系数据模型层次、网状模型都基于某种记录结构(PCR,SET),关系模型跳出这一限制,定义清晰,结构简单,操作方便。关系模型是以集合论中的关系概念为基础发展起来的数据模型。2.3关系数据模型层次、网状模型都基于某种42关系模型(relactiondatamodel)的主要特征是用表格结构表达实体集,用外键表示实体间联系。与层次模型和网状模型相比,关系模型比较简单,容易为初学者接受。关系模型是由若干个关系模式组成的集合。每个关系实际上是一张表格,记录之间联系是通过各个关系模式的键体现的。

关系模型(relactiondatamodel)的43PART模式(P#,PNAME,COLOR,WEIGHT)PROJECT模式(J#,JNAME,DATE)SUPPLIER模式(S#,SNAME,SADDR)P_P模式(J#,P#,TATOL)P_S模式(P#,S#,QUANTITY)

关系模型的例子关系模型的层次、网状模型的最大差别是用键而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。PART模式(P#,PNAME,COLOR,WEIG442.3.1基本概念及定义1.属性和域属性------用来描述事物特征。例如:学生的姓名、学号、性别、出生年月等。属性的域------属性的取值范围。例如:姓名的取值范围是合法姓名的集合。学号的域是若干位数字组成的字符串的集合。性别的域是{男},{女},……2.3.1基本概念及定义45注意:①关系数据模型中,所有的属性都应是不可再分的原子数据(atomicdata)的集合---1NF。②关系数据模型中,允许某些属性值为空,即NULL。空值不是值,而是一个标记,表明该属性值空缺。例如:手机号码,E_mail等。

注意:462.关系和元组设有一关系R,R上有属性:A1,A2,……,An其对应域分别为:D1,D2,……,Dn则关系R可表示为:R=(A1/D1,A2/D2,……,An/Dn)其中:n为关系R的属性个数,也称为关系的目。

同一关系中,不允许有同名属性,但不同属性可有相同的域。2.关系和元组47关系R的值可表示r或r(R):r={t1,t2,……tm}

每个元组t可表示为:t=<v1,v2,……vn>,vi∈Di,1≤i≤n即ti∈D1*D2*…*Dn,1≤i≤n例如:关于大学生的关系模式:STUDENT(学号,姓名,性别,出生年月,系别,入学年份)而其中某一个学生<9098138,李彤,女,1980,计算机系,1998>就是关系R的一个元组。所有学生的值构成了R的元组的集合。因此,R的模式相对稳定。R的值相对变化。关系R的值可表示r或r(R):例如:关于大学生的关系模式:48另外,在关系R中,元组的次序无关,但不能允许有相同的二个元组;属性的次序无关。一个关系可视为一个二维表。组成表的所有数据项都应是不可再分的最小数据项。关系对应表,属性对应列,元组对应行。学号姓名年龄性别系别专业元组属性另外,在关系R中,元组的次序无关,但不能学号姓名年龄性493.键键(或候选键)——如果关系的某一个属性或属性组的值唯一地决定其它所有属性的值。而其任何真子集无此性质,则这个属性或属性组称为该关系的键。例:学生关系中,学号就是关键字。3.键50超键——与上相同,区别仅在于其真子集也具此性质。主键——一个关系R可有多个候选键,若选中一个作为Key,则它就是主键,其它称候补键,每个元组的主键值应是唯一的。全键——由所有属性组成的键,称为全键例如SUPPLY(SNAME,PNAME,JNAME)超键——与上相同,区别仅在于其真子集也主键——一个关系R可有51主属性——能作为候选键的属性,称为主属性。非主属性——不包含在候选键的属性,称为非主属性。外键——引用其它关系的Key或本关系的Key,称为外键。如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。主属性——能作为候选键的属性,称为主属性。非主属性——不包含52例:①COURSE(课程号,课程名,学分,开课时间,先修课程号)②GRADE(学号,课程号,成绩)其中:①的主键是课程号。②的主键是学号+课程号。①中先修课程号是引用本关系的键,故称为外键。②中学号、课程号是引用STUDENT关系和COURSE中的键。例:①COURSE(课程号,课程名,学分,开课时间,先修课程53关系数据模型是用关系描述事物间联系的,且这种联系通常都隐含在它们的公共属性中,尤其是外键中。因此,关系数据模型不能显式地表示这种事物间的联系,这是它的一个缺点。关系数据模型是用关系描述事物间联系的,且这种联系通常都54关系模式R=(A1/D1,A2/D2,……,AN/DN)中,R的任何一个元组t应满足条件:t∈D1*D2…*Dn虽然满足上述条件的元组是合乎语法的,但是,并不是每个合乎语法的元组都能成为R的元组,它还要受到语义上的限制(完整性约束)。2.3.2约束关系模式R=(A1/D1,A2/D2,……,AN/DN55例如,一个大学生的年龄在5岁~100岁之间。身高<3米……,这就是语义上的限制。数据的语义不但限制属性的值,而且还会制约属性间的关系。例:在一个R中,作为主键的属性或属性组,其值不为空或不重复出现等等。这些都是语义施加在属性间的限制。称为完整性约束。目前,大多数DBMS都提供了完整性约束检查。例如,一个大学生的年龄在5岁~100岁之间。例:56关系数据模型的完整性约束共分为4类:1.域完整性约束域完整性约束是最简单、最基本的约束。属性值应是域中的值,属性的值能否为空,这是由问题的语义决定的。例:考试分数(成绩)的取值范围是0~100。关系数据模型的完整性约束共分为4类:例:考试分数(成绩)的取572.实体完整性约束每一个关系都应有一个主键,用来唯一识别一个元组。它的值不能为空,否则无法区分和识别元组,这就是实体完整性约束。目前,大多数DBMS都支持这项检查,但也不是强制和彻底的。2.实体完整性约束583.

引用完整性约束这是指不同关系之间或同一关系的不同元组间的约束。设关系R有一外键FK,则其某一元组t的外键值为t[FK]。设FK引用关系R’的主键Pk,R’可以是R,也可以不是R。引用完整性约束要求t〔FK〕遵守下面的约束:

即外键要么是空缺,要么是引用实际存在的主键值。3.

引用完整性约束设FK引用关系R’的主键Pk,R59

引用完整性约束与表之间的关联有关,它是关系数据库管理系统的一个很重要的功能。用好这项功能,可以减少由于客户端用户程序的疏忽而可能给数据库带来的错误。引用完整性约束与表之间的关联有关,它是关系数据库管理系60假定现在往职工关系中插入一个元组:(“WH7”,”E9”,1400)请问是否有问题?仓库号城市面积WH1北京370WH2上海500WH3广州200WH4合肥300仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250仓库职工假定现在往职工关系中插入一个元组:仓库号城市面积WH1北61该元组插入到职工关系中是没有任何问题的,但是,在仓库关系中根本就没有仓库号为WH7的仓库。没有“WH7”仓库,就没有在“WH7”工作的职工。所以插入到职工的元组是有问题的。利用引用完整性约束就可以解决这类问题。该元组插入到职工关系中是没有任何问题的,62由于仓库号是仓库关系的关键字,同时是职工关系的外部关键字。在定义职工关系的仓库号字段时,只要说明外部关键字约束:

仓库号CHAR(4)NOTNULLREFERENCES仓库(仓库号)有了以上的约束,系统就会自动检查相应的父记录是否存在,从而保证数据的引用完整性。由于仓库号是仓库关系的关键字,同时是职工有了以上63

4.一般性完整性约束

一般完整性约束是用户为了满足特定的要求而做的一些与数据完整性有关的规定。前三种约束是关系数据模型的三个最基本、最普遍的完整性约束。其它的语义约束与数据的具体内容有关。当数据量很大时,要说明、管理和检查这些约束,开销太大。目前,尚无一个DBMS能全面实现一般性完整性约束检查。4.一般性完整性约束642.3.3操作关系数据模型提供了两类操作:关系专用操作

集合操作

选择操作(Select)(横挑)选择是一种单目运算,即对一个关系施加的运算,按给定条件从关系中挑选满足条件的元组组成的集合。语法格式:σ<选择条件>(<关系名>)2.3.3操作选择操作(Select)(横挑)65职工号供应商号订购单号订购日期E3S7OR671998/06/23E1S4OR731998/07/28E7S4OR761998/05/25E6S6OR771998/06/19E3S4OR791998/07/29E1S6OR801998/06/22E3S6OR901998/07/13E3S3OR911998/10/27订购单关系例:

σ职工号=“E3”(订购单)职工号供应商号订购单号订购日期E3S7OR671998/0666职工号供应商号订购单号订购日期E3S7OR671998/06/23E3S4OR791998/07/29E3S6OR901998/07/13E3S3OR911998/10/27订购单关系例:σ职工号=“E3”(订购单)结果如下:职工号供应商号订购单号订购日期E3S7OR671998/0667σ<选择条件1>(σ<选择条件2>(…σ<选择条件n>(R)…))=σ<选择条件1>and<选择条件2>and…<选择条件n>(R)两者效率大不一样!易证:σ<选择条件1>(σ<选择条件2>(…σ<选择条件n>两者效68

投影操作(Project)(竖挑)

投影操作是单目运算,从关系中挑选指定的属性组成的新关系。语法格式:<属性表>(<关系名>)投影操作(Project)(竖挑)69职工号供应商号订购单号订购日期E3S7OR671998/06/23E1S4OR731998/07/28E7S4OR761998/05/25E6S6OR771998/06/19E3S4OR791998/07/29E1S6OR801998/06/22E3S6OR901998/07/13E3S3OR911998/10/27订购单关系职工号供应商号订购单号订购日期E3S7OR671998/0670职工号供应商号E3S7E1S4E7S4E6S6E3S4E1S6E3S6E3S3例:

职工号,供应商号(订购单)结果:职工号供应商号E3S7E1S4E7S4E6S6E3S4E1S71投影操作可以和选择操作组合起来嵌套使用的情况:例:

订购单号,供应商号(σ职工号=“E3”(订购单))投影操作可以和选择操作组合起来嵌套使用的情况:例:订购单72供应商号订购单号S7OR67S4OR79S6OR90S3OR91订购单关系选择指定的属性,形成一个可能含有重复行的表格;删除重复行,形成新的关系。供应商号订购单号S7OR67S4OR79S6OR90S3OR73

集合操作在关系数据模型中,用得最多的集合操作是并、交、差,设A、B为两个集合.A∪B并(union):由属于A或属于B的所有元组组成的集合。A∩B交(intersection):由同时属于A和B的元组组成的集合。A-B差(difference):由属于R而不属于S的所有元组组成的集合。不过,交可用差表示。设A、B为两个集合,则A和B的交可表示为:A∩B≡A-(A-B)

集合操作不过,交可用差表示。设A、B为两个集合,则74注:

参与并、差操作的两个关系的元组必须限制为同类型的,即具有相同的目,且对应的属性的域相同——并兼容(unioncompatibility);

关系专用操作优先级高于集合操作;

一元操作(单目)优先级高于二元操作。注:75仓库号城市面积WH1北京370WH2上海500WH3广州200仓库号城市面积WH2上海500WH3广州200WH4武汉180仓库A仓库B仓库号城市面积WH1北京370WH2上海500WH3广州200WH4武汉180仓库A∪仓库B仓库号城市面积WH1北京370WH2上海500WH3广州2076仓库号城市面积WH2上海500WH3广州200仓库A∩仓库B仓库号城市面积WH1北京370仓库A-仓库B仓库号城市面积WH2上海500WH3广州200仓库A∩仓77

设有两个关系R和S,它们的目分别为nr和ns;它们的元组数分别为|R|和|S|,则R和S的笛卡尔乘积为:R×S={<t,g>|tRandgS}

<t,g>为t和g的拼接,即R×S仍为一个关系,它的目为nr+ns、元组数为|R|×|S|。

若R和S中有相同的属性名,在这些属性名前加上关系名作为限定词,进行区别。设有两个关系R和S,它们的目分别为nr和ns;它们78

连接操作连接操作是双目(二元操作)操作。按给定条件,把满足条件的两个关系所有元组,按一切可能的拼接后形成的新关系,记为R∞S。即R∞<连接条件>S=σ<连接条件>(RS)

连接条件为两关系中对应属性的比较,对应属性不一定同名,但要有相同的域。其普遍表示形式为:<条件1>and<条件2>and…and<条件k>每个条件的普遍形式为:AiθBjAi为R的一个属性,Bj为S中与Ai对应的属性。连接操作79注:自然连接完成三件事:作RS;(笛卡儿积)在RS上选择同时满足R.Ai=S.Ai的所有元组。去掉重复属性;

连接条件θ为:=,<,≤,>,≥,≠当所有连接条件中的θ都为“=”时,称为等连接,在等连接结果中,对应属性的值是相同的,不用重复。

消除冗余属性的等连接称为自然连接,它是“连接”操作的一个重要特例,实用价值很大,它要求被连接的关系有相同的两个属性名。注:自然连接完成三件事:连接条件θ为:=,<,≤,80仓库号城市面积WH1北京370WH2上海500WH3广州200WH5合肥130仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250仓库职工仓库号城市面积WH2上海500WH1北京370WH2上海500WH3广州200WH1北京370职工号工资E11220E31210E41250E61230E71250自然连接产生的新关系仓库号城市面积WH1北京370WH2上海500WH3广州2081GRADE∞GRADE.课称号=COURSE.课称号(课程名、课程号、学分(COURSE))

上式可以生成一个学生成绩表,它具有学号、课程号、课程名、学分和成绩等属性。GRADE∞GRADE.课称号=COURSE.课称号(82可以证明:关系代数操作集{σ、、∪、-、×}是完备的,{σ、、∪、-、∞}也是完备的。完备指任何其它关系代数操作都可以用这5种操作来表示。若一个关系DBMS支持{σ、、∪、-、∞},称此DBMS是完备的(relationallycomplete)。事实上,当前关系DBMS还增加了不少关系代数不支持的操作,例如排序、分组等等。可以证明:关系代数操作集{σ、、∪、-、×}是完备的,{σ83

除操作双目运算(二元),用“”表示。设有关系R(X,Y)和S(Y),X,Y为属性组,S(Y)Φ,则

RS=X(R)-X((X(R)S)-R)可能有R不含元组R中相应Y值集合不能包含S(Y)的X值集合R中相应Y值集合能包含S(Y)的X值集合R-(RS)S可以看成“余数”。除操作可能有R不含元组R中相应Y值集合不能包含S(84示例仓库号供应商号WH1S1WH1S2WH1S3WH2S3WH3S1WH3S2WH5S1WH5S2WH5S4WH6S2仓库号WH1WH3WH5供应商号S1S2=被除关系(R)除关系(S)商关系示例仓库号供应商号WH1S1WH1S2WH1S3WH2S3W85

给定一个供应商号,如果它在被除关系上的映象集包含除关系,则这个供应商号是商关系中的一个元组。在这个例子中,除法运算决定了至少向列在除关系中的那些仓库供应(器件)的那些供应商的编号。给定一个供应商号,如果它在被除关系上的映象集86供应商号S1S2S3S4X(R)仓库号WH1WH3WH5S仓库号供应商号WH1S1WH1S2WH1S3WH1S4WH3S1WH3S2WH3S3WH3S4WH5S1WH5S2WH5S3WH5S4X(R)S仓库号供应商号WH1S4WH3S3WH3S4WH5S3X(R)S-R供应商号S1S2S3S4X(R)仓库号WH1WH3WH5S87X(X(R)S)-R)供应商号S4S3S4S3供应商号S1S2RS=X(R)-X((X(R)S)-R)X(X(R)S)-R)供应商号S4S3S4S3供应88外连接(outerjoin)

对连接操作的扩展.

与连接的区别:连接操作时,只有符合连接条件的匹配元组才能保留在结果中。外连接操作时,同时也保留不匹配的那些元组,空缺部分填NULL。

abNULLabNULL外连接外连接(outerjoin)abNULLabNULL外89有三种外连接:l

左外连接,连接结果中,只保留左关系的所有元组;l

右外连接,连接结果中,只保留右关系的所有元组;l

全外连接,连接结果中,保留左右关系的所有元组;有三种外连接:90例:要求生成一个表,列出所有课程名及其先修课程名。

R=课程名,先修课程号(COURSE)S=课程名,课程号(COURSE)

(必须考虑某些课程可能无先修课程的情况)R.课程名,S.课程名(R*∞先修课程号=课程号S)例:要求生成一个表,列出所有课程名及其先修课程名。R=课91外并操作并操作的扩展。可以对非并兼容的两关系进行并操作。结果等于两关系的属性集的并。在进行外并操作时,对于那些元组中没有的属性,填以Null。外并操作92用关系代数表示的操作,需标明关系操作的序列,因而以关系代数为基础的DB语言是过程性语言(procedurallanguage)。用谓词演算来表达关系的操作称为关系演算。用关系演算表示关系的操作,只要说明所要得到的结果,而不必标明操作的过程,因而以关系演算为基础的数据库语言是说明性语言(declarativelanguage)。目前,面向用户的关系数据库语言基本上都以关系演算为基础。2.3.4关系演算(relationalcalculus)

用关系代数表示的操作,需标明关系操作的序列,因而以关系代数为93关系代数表示关系的操作,用户必须指出运算方法步骤,而关系演算用谓词公式表示查询条件,指出“做什么”,而“怎么做”则由系统去完成。以关系代数为基础的数据库语言是过程性语言,以关系演算为基础的数据库语言是说明性语言。关系代数表示关系的操作,用户必须指出运算方法步骤,而关94根据所用变量不同,关系演算分为:元组关系演算域关系演算根据所用变量不同,关系演算分为:95其中:t是元组变量,既可以用整个t作为查询对象,也可查询t中的某些属性。如查询整个t,则可省去<属性表>。P(t)是t应满足的谓词。

利用元组关系演算,可以表示关系代数操作,因此,元组演算与关系代数具有同等表达能力,是关系完备的。1.元组关系演算

以元组为变量。一般形式为:

{t[〈属性表〉]|P(t)}其中:t是元组变量,既可以用整个t作为查询对象,也可查96关系代数的几种基本运算可以用元组表达式表示如下:

关系代数的几种基本运算可以用元组表达式表示如下:

(1)投影:设有关系模式R(ABC),r为R的一个值,则AB(r)={t[AB]|tr}

(2)选择:σF(r)={t|trandF}

F是以t为变量的布尔表达式。

关系代数的几种基本运算可以用元组表达式表示如下:97

(3)R∪S:可用{t|R(t)S(t)}表示;或{t|tRORtS}

(4)R-S:可用{t|R(t)

S(t)}表示;或{t|tRANDtS}(3)R∪S:可用{t|R(t)S(t)}表示;(98(5)连接(实际指自然连接)设有两个关系模式R(ABC)和S(CDE),r、s分别为其值:R∞S={t(ABCDE)|t[ABC]Randt[CDE]S}

注意:谓词中两个t[C]同值,隐含等连接。(5)连接(实际指自然连接)注意:谓词中两个t[C]同值99用谓词演算表示关系操作时,只有结果是有限集才有意义。一个表达式的结果如果是有限的,称此表达式是安全的,否则是不安全的。否定常常会导致不安全的表达式,例如{t|¬(tSTUDENT)}是不安全的。用谓词演算表示关系操作时,只有结果是有限集才有意义100若限制t取值的域,使tDOM(P),可将上式改写成{t|tDOM(P)and¬(tSTUDENT)}=DOM(P)–STUDENT,成为安全表达式。若限制t取值的域,使tDOM(P),可将上式改101域关系演算是以域为变量,一般形式为:{〈X1,X2,……Xn>|P(X1,X2,……Xn,Xn+1,……,Xn+m)}其中:X1,X2,……Xn,Xn+1,……,Xn+m为域变量。且X1,X2,……Xn出现在结果中,其它m个域变量不出现在结果中,但出现在谓词P中。2.3.5域关系演算域关系演算是以域为变量,一般形式为:{〈X1,X2,102对关系GRADE(学号,课程号,成绩),如果要查询须补考的学生的学号和补考的课程号,此时查询表达式:{<x,y>|(z)(GRADE(x,y,z)ANDz<60)}GRADE(x,y,z)是一个谓词,如果〈x,y,z>是GRADE中的一个元组,则该谓词为真。与元组变量不同的是域变量的变化范围是某个

值域而不是一个关系。对关系GRADE(学号,课程号,成绩),如果要查询须补1032.4对传统数据模型的评价

传统数据模型有层次数据模型、网状数据模型、关系数据模型。特点:●都继承了文件中的记录、字段等概念。●物理级也借鉴了文件的索引、散列等存取方法。●向用户提供了统一的数据模型和相应的数据库语言。●都在记录的基础上定义了数据的基本结构、约束和操作。2.4对传统数据模型的评价传统数据模型有层次数据104传统数据模型的不足:●以记录为基础,不能很好地面向用户和应用。记录和实体不一定相对应。●不能以自然的方式表示实体间联系。●语义贫乏。●数据类型少,难以满足应用需要。传统数据模型的不足:●以记录为基础,不能很好地面向用户和1052.5E-R数据模型1976年由P.Chen提出:建立一种统一的数据模型,来概括层次、网状和关系三种传统数据模型;作为3种数据模型间相互转换的中间模型;作为超脱DBMS的一种概念数据模型,用比较自然的方式模拟现实世界。2.5E-R数据模型1976年由P.Chen提出:106E-R数据模型用的最成功和最广泛的是作为数据库概念设计的数据模型。E-R数据模型不是面向实现,而是面向现实世界。其设计的出发点是有效自然的模拟现实世界,而不是首先考虑它在机器中的实现问题。E-R数据模型是一种有代表性的非传统数据模型。E-R数据模型用的最成功和最广泛的是作为数据库概念设计的数据1072.5.1基本概念

E-R(实体联系数据模型)与传统数据模型的区别在于:E-R不是面向实现,而是面向现实世界的,因此,它能比较自然地描述现实世界。E-R中有三个重要的抽象概念:实体:可以相互区别,且可被人们识别的事、物、概念等统统抽象为实体。2.5.1基本概念E-R(实体联系数据模型)与传108例如,学生的全体,就是一个实体集。其中的每一个学生是实体集的一个实例或值。因此,实体集通常作为型来定义(E-R中有型与值之分)。如:Es={e|e是学生}其中:Es是学生实体集,e是学生实体。注:E-R中,大写字母表示实体集,小写字母表示实体。例如,学生的全体,就是一个实体集。其中的每一个学生是109属性:反映实体特征的称之为实体的属性,每个属性都有其取值的范围,称值集。同一实体集中,每个实体的属性及其域是相同的,但值可不同,属性可以是单域的简单属性,也可以是多域的组合属性(如通信地址是个组合属性,由省、市、区、街道等组成)。属性:反映实体特征的称之为实体的属性,每个属性都有其取110

实体键:能唯一识别实体的属性或属性组。一个实体的键可能有多个,选定一个作为实体的键。

与传统数据模型比,E-R对属性的限制较少,故有利于自然地模拟现实世界。实体键:能唯一识别实体的属性或属性组。一个实体的键可能111联系:表示实体与实体之间的关系。参与联系的实体数=2,称为二元联系。参与联系的实体数>2,称为多元联系。在E-R模型中,联系的类型有三种:(1)1:1(一对一联系)(2)1:n(一对多联系)(3)m:n(多对多联系)联系:表示实体与实体之间的关系。参与联系的实体数=2,112

实体参与度:表示实体参与联系的最小次数和最大次数,通常用(m:n)表示。例如,规定每个学生最少应选三门课,最多可选六门课。则学生在选课联系中的参与度可表示为(3:6).

实体参与度:表示实体参与联系的最小次数和最大次数,通常113注:m=0,表示非强制性,即实体不一定参与联系。如果一门课可以无人选,但最多只能允许100人选则课程在选课联系中的参与度为(0,100)。

m>0,表示强制性的,即实体一定要参与联系。在E-R模型中,实体和联系均可有属性,如选课联系的属性可有成绩、选课时间等。注:m=0,表示非强制性,即实体不一定参与联系。114现实世界中还有一种特殊的实体,称为弱实体,这种实体不能单独存在,总是依附某个实体,如亲戚是依赖于职工这个实体,家属是依赖于某一职工。这一类实体通常取其所依附的实体的Key作为本身的Key的一部分。现实世界中还有一种特殊的实体,称为弱实体,这种实体不能1152.5.2E-R图用E-R数据模型对一个单位的模拟,称为一个单位的E-R数据模式。全部参与部分参与2.5.2E-R图用E-R数据模型对一个单位的模拟116E-R模型提供了实体、属性和联系三个抽象概念。这三个概念简单、明了、直观易懂,用以模拟现实世界比较自然,且可方便地转换关系、层次、网状数据模式。E-R模型提供了实体、属性和联系三个抽象概念。这三个概117用E-R表示数据模式时,我们只关心有哪些数据(即有哪些实体以及属性)以及数据间的关系(实体关系),而不必关心这些数据在计算机内如何表示和用什么DBMS。用E-R表示数据模式时,我们只关心有哪些数据(即有哪些1182.5.3扩充E-R数据模型该模型中引入了下列抽象概念:1、特殊化和普遍化l特殊化:从普遍到特殊的过程。如把研究生实体集分为博士生、硕士生等子集的过程。l普遍化:从特殊到普遍的过程。如把研究生、本科生、大专生三个实体概括为学生实体集的过程。2.5.3扩充E-R数据模型该模型中引入了下列抽象概念:l119注:子实体继承其父实体集的所有属性和联系,且又可有自己的属性和联系。见图2-30。重叠特殊化不相交重叠化特殊化注:子实体继承其父实体集的所有属性和联系,且又可有自己的属性1202.聚集在EER中,可把联系看成由参与联系的实体组合而成的新的实体,其属性为参与联系的实体的属性和联系的属性的并。这种新的实体称为参与联系的实体的聚集。见图2-31。2.聚集在EER中,可把联系看成由参与联系的实体组合1213.范畴

由不同类型的实体组成的实体集,称之为范畴见图2-32。范畴并操作3.范畴由不同类型的实体组成的实体集,称之为范畴见图122范式概念构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。范式概念构造数据库必须遵循一定的规则。在关系数据库中,这种规123例如:职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:

以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。(1)重复存储职工号和姓名。

(2)职工号为关键字,电话号码分为单位电话和住宅电话两个属性。

(3)职工号为关键字,但强制每条记录只能有一个电话号码。关键字只能是电话号码。例如:职工号,姓名,电话号码组成一个表(一个人可能124第二范式(2NF):如果关系模式R中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。

例:选课关系SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号,CNO为课程号,GRADE为成绩,CREDIT为学分。由以上条件,关键字为组合关键字(SNO,CNO)。

在应用中使用以上关系模式存在什么问题?

第二范式(2NF):如果关系模式R中的所有非主属例:选125a.数据冗余

b.更新异常

c.插入异常在应用中使用以上关系模式有以下问题:假设同一门课由40个学生选修,学分就重复40次。若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。如果计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。a.数据冗余

b.更新异常

c.插入异常在应用中使用126

原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。

解决方法:分成两个关系模式SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系。原因:非关键字属性CREDIT仅函数依赖于CNO,也就127第三范式(3NF):如果关系模式R中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。

例如:S1(SNO,SNAME,DNO,DNAME,LOCATION)各属性分别代表学号,姓名,所在系,系名称,系地址。

关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在系的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。第三范式(3NF):如果关系模式R中的所有非主属例如:128

原因:关系中存在传递依赖造成的。即SNO->DNO,DNO->LOCATION,因此关键字SNO对LOCATION函数决定是通过传递依赖DNO->LOCATION实现的。也就是说,SNO不直接决定非主属性LOCATION,每个关系模式中不能留有传递依赖。

解决方法:分为两个关系S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)。

注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系。原因:关系中存在传递依赖造成的。即SNO->129第2章数据模型本章学习要求:1.层次数据模型、网状数据模型了解层次及网状数据模型的基本概念和结构。2.关系数据模型掌握关系数据模型的基本概念以及关系代数操作。了解层次、网状和关系模型之间的差别。3.对传统模型的评价了解传统模型的不足之处。4.E-R数据模型

掌握E-R模型的概念和表示。5.面向对象数据模型

了解面向对象数据模型的基本概念。第2章数据模型本章学习要求:130数据模型可分为两类:独立于计算机系统的数据模型,它完全不涉及信息在计算机系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。概念模型用于建立信息世界的数据模型,强调其语义表达能力,概念应该简单,清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库人员之间进行交流的工具。最著名的是“实体联系模型”。数据模型可分为两类:独立于计算机系统的数据模型,它完全不涉1312.直接面向数据库的逻辑结构的数据模型,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“基本数据模型”或“结构数据模型”。例如,层次、网状、关系、面向对象数据模型”.这类模型有严格的形式化定义,以便在计算机系统中实现。2.直接面向数据库的逻辑结构的数据模型,它是现实世界的第二1322.1层次数据模型用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次数据模型(hierarchicaldatamodel)。2.1层次数据模型用树型(层次)结构表示实体类型及133基本概念和结构记录和字段双亲子女关系层次数据模式虚拟记录层次数据的线性表示基本概念和结构134记录和字段

记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。一个记录包含若干字段。每个字段也是命名的,字段只能是简单数据类型(整数、实数、字符串等)。记录和字段135系系名系号系主任名地点记录的型计算机系9李西远科技馆记录的一个实例系系名系号系主任名地点记录的型计算机系9李西远科技馆记录的一136双亲子女关系(Parent-ChildRelationship,PCR)反映两个记录型之间的一对多(1:N)关系系班计算机系901班911班921班931班1NPCR型PCR实例双亲子女关系(Parent-ChildRelationsh137层次数据模式层次数据模式由PCR构成层次数据模式系班学生教研组教师层次数据模式层次数据模式系班学生教研组教师138计算机系901班911班921班931班硬件教研组软件教研组王一张三李四赵立钱英孙玉周新吴坚郑山洪流陈芝丁伟………………层次数据模式实例计算机系901班911班921班931班硬件教研组软件教研组139在层次数据模式中,除根以外,所有的记录型都应该有唯一的双亲,但可以有多个子女,子女按从左到右的次序排序。在层次数据模式中,除根以外,所有的记录型都应该有唯140虚拟记录非层次关系表示问题(1)M:N王一张三李四人工智能数据库学生:课程:虚拟记录王一张三李四人工智能数据库学生:课程:141不允许一个记录有多个双亲,需要复制记录,导致冗余。如下图:型实例学生课程王一人工智能张三人工智能数据库李四人工智能数据库不允许一个记录有多个双亲,需要复制记录,导致冗余。142(2)一个记录是两个以上PCR的子女学生班运动队只能表示成下图,存在冗余。学生班学生运动队(2)一个记录是两个以上PCR的子女学生班运动队只能表示成下143(3)多元关系供应商零件工程项目供应关系(3)多元关系供应商零件工程项目供应关系144可以用PCR表示为:供应商零件工程项目零件供应商工程项目供应商工程项目零件…可以用PCR表示为:供应商零件工程项目零件供应商工程项目供应145注意:书上图2-12不能表示三元关系,因为供应关系与供应商,供应关系与工程项目这两个PCR的一个双亲实例,其子女集合是并关系,而不是迪卡尔积关系。供应商零件工程项目供应关系注意:书上图2-12不能表示三元关系,因为供应关系与146主要问题:数据冗余,为避免这一情况,只存一份记录,其它引用该记录的地方用指针代替——这种用指针代替的记录称为虚拟记录。用下标v表示,指针用虚线箭头表示。(学生)v课程学生(课程)v主要问题:数据冗余,为避免这一情况,只存一份记录,其它引用该147学生(学生)v班运动队学生(学生)v班运动队148层次数据的线性表示由于存储器是线性的,层次数据必须变换成线性形式才能存储,层次数据模式的实例对应一棵层次树(或森林),对层次树(或森林)按先序遍历生成的序列称为层次序列(hierarchicalsequence),规定以此作为存储次序。计算机系901班王一…张三911班…931班…吴坚硬件教研组郑山…洪流软件教研组…丁伟层次数据的线性表示计901王…张911…931…吴硬郑…洪软149层次数据模型的约束(1)除了根记录外,任何其它记录不能离开其双亲记录而孤立存在;(2)任何记录,不管虚实,只允许有一个双亲记录(保证层次数据模式及其实例是树形);(3)虚拟记录的指针必须指向一个实际存在的记录,有虚拟记录指向的记录不得删除;(4)虚拟记录不得为根记录。层次数据模型的约束150特点:层次结构是树结构,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型是1:N联系。(因此不能表示M:N)特点:层次结构是树结构,树的结点是记录类型,非根结点151层次模型的优点:记录之间的联系通过指针来实现,查询效率较高(针对层次结构)。层次模型的缺点:1、只能表示1:N联系,虽然可以采用虚拟记录描述非层次数据关系,但较复杂,用户不易掌握,并且非层次结构的查询效率比较低;2、由于层次顺序的严格和复杂,引起数据的查询和更新很复杂,因此应用程序的编写也比较复杂;3、模式描述语言较复杂,数据独立性差。层次模型的优点:层次模型的缺点:1522.2网状数据模型用有向图(网络结构)表示实体及实体之间联系的数据模型称为网状数据模型(networkdatamodel)。有向图中的结点是记录类型,箭头表示从箭尾的记录类型到箭头的记录类型间联系。2.2网状数据模型用有向图(网络结构)表示实体及实153基本概念和结构记录和数据项数据项相当于字段,记录是数据项的有序结合。

系系表示两个记录型间的1:N关系;对应“1”的为首记录,对应“N”的为属记录。系是命名的,有型值之分,例如:图2-17就是系的型和值。基本概念和结构154班级学生一班王一李红丁杰型值图2-17班级—学生系班级学生一班王一李红丁杰型值图2-17班级—学生系155具有多种类型属记录的系称为“多属系”(multimemberset)多属系系值:3个成员的并,而非“X”账户存款帐提款帐转账具有多种类型属记录的系称为“多属系”多属系系值:3个成员的并156网状模型的特点:

与层次模型不同,网状模型中,一个记录型可以成为多个首记录型的属记录——突破层次的限制;一个记录型不能既作为一个系的首记录又作为同一个系的属记录。

EMP领导网状模型的特点:EMP领导157——引入联系记录EMPLINK1:11:N1:1表示一人担任一个领导岗位,系值见下一页图。——引入联系记录EMPLINK1:11:N1:1表示一158E4L1S1E7L2S1E9L3S1E3E5E1E6S2……S2S2E4L1S1E7L2S1E9L3S1E3E5E1E6S2……159一个记录值不能出现在同一系型的多个系值中,否则不是1:N关系例如,学生(S)和课程(C)关系一个记录值不能出现在同一系型的多个系值中,否则不是1:N关系160S1C1C2C3C4S1C5C6S1C1C2C3C4S1C5C6161解决M:N问题的方法——联系记录SLINK1CSLM1CLN型解决M:N问题的方法——联系记录SLINK1CSLM1CLN162S1L1SLL2L3L4L5L6L7S2SLC1C2C3C4C5C6CLCLCLCLCLCL值S1L1SLL2L3L4L5L6L7S2SLC1C2C3C4163LINK表示多元关系零件LINK1工程项目M1N供应商1PLINK表示多元关系零件LINK1工程项目M1N供应商1164无首系,首记录可以看成“系统”,例如一个单位的所有部门组成一个无首系。无首系只有一个实例,也称单值系。无首系,首记录可以看成“系统”,例如一个单位的所有部门组成一165系的实现方法OS1S2S3前向指针后向指针首记录指针系的链式实现方式系的实现方法OS1S2S3前向指针后向指针首记录指针系的链式166约束(1)一个记录型不能兼任同一系的首记录和属记录;(2)一个记录不能出现在同一系型的多个系值中;(3)插入一个新记录时,若它的记录型是某个系的属记录,必须考虑系籍问题(两种系籍约束):AUTOMATIC(自动的):新的属记录插入时自动加入相应的系值;MANUAL(人工的):新的属记录插入时不自动加入相应的系值;约束167(4)对已插入的属记录的系籍问题;网状数据模型提供三种留置系籍约束:OPTIMAL(随意的):对属记录的系籍处理比较随意,属记录可以脱离某个系值独立存在,例如,“系——学生”系;MANDATORY(强制的):属记录不能游离于系值之外,但可以转系值。例如,“部门——职工”系;FIXED(固定的):不能游离,不能转系值,例如,“职工——家属”系。上述系籍约束都是语义约束。(4)对已插入的属记录的系籍问题;168(5)删除记录时,删除首记录,没有系籍问题;删除属记录要按照(4)进行处理。OPTIMAL首记录可以删除,其属记录与系值脱离,仍保留在数据库中;MANDATORY首记录不能删除,因为其属记录不能游离于系值之外;FIXED可将首记录连同属记录一起删除。(5)删除记录时,删除首记录,没有系籍问题;删除属记录要按照169网状模型的缺点:编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。在关系DB以前,网状DB比层次DB用的要普遍。模拟层次和非层次结构比较自然,目前仍有应用实例。由于层次系统和网状系统的应用程序编制复杂,目前已被关系系统产品取代。课程只介绍层次和网状数据模型的概念和机制,以求全面了解数据库技术的发展。网状模型的缺点:编写应用程序比较复杂,程序员必须1702.3关系数据模型层次、网状模型都基于某种记录结构(PCR,SET),关系模型跳出这一限制,定义清晰,结构简单,操作方便。关系模型是以集合论中的关系概念为基础发展起来的数据模型。2.3关系数据模型层次、网状模型都基于某种171关系模型(relactiondatamodel)的主要特征是用表格结构表达实体集,用外键表示实体间联系。与层次模型和网状模型相比,关系模型比较简单,容易为初学者接受。关系模型是由若干个关系模式组成的集合。每个关系实际上是一张表格,记录之间联系是通过各个关系模式的键体现的。

关系模型(relactiondatamodel)的172PART模式(P#,PNAME,COLOR,WEIGHT)PROJECT模式(J#,JNAME,DATE)SUPPLIER模式(S#,SNAME,SADDR)P_P模式(J#,P#,TATOL)P_S模式(P#,S#,QUANTITY)

关系模型的例子关系模型的层次、网状模型的最大差别是用键而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。PART模式(P#,PNAME,COLOR,WEIG1732.3.1基本概念及定义1.属性和域属性------用来描述事物特征。例如:学生的姓名、学号、性别、出生年月等。属性的域------属性的取值范围。例如:姓名的取值范围是合法姓名的集合。学号的域是若干位数字组成的字符串的集合。性别的域是{男},{女},……2.3.1基本概念及定义174注意:①关系数据模型中,所有的属性都应是不可再分的原子数据(atomicdata)的集合---1NF。②关系数据模型中,允许某些属性值为空,即NULL。空值不是值,而是一个标记,表明该属性值空缺。例如:手机号码,E_mail等。

注意:1752.关系和元组设有一关系R,R上有属性:A1,A2,……,An其对应域分别为:D1,D2,……,Dn则关系R可表示为:R=(A1/D1,A2/D2,……,An/Dn)其中:n为关系R的属性个数,也称为关系的目。

同一关系中,不允许有同名属性,但不同属性可有相同的域。2.关系和元组176关系R的值可表示r或r(R):r={t1,t2,……tm}

每个元组t可表示为:t=<v1,v2,……vn>,vi∈Di,1≤i≤n即ti∈D1*D2*…*Dn,1≤i≤n例如:关于大学生的关系模式:STUDENT(学号,姓名,性别,出生年月,系别,入学年份)而其中某一个学生<9098138,李彤,女,1980,计算机系,1998>就是关系R的一个元组。所有学生的值构成了R的元组的集合。因此,R的模式相对稳定。R的值相对变化。关系R的值可表示r或r(R):例如:关于大学生的关系模式:177另外,在关系R中,元组的次序无关,但不能允许有相同的二个元组;属性的次序无关。一个关系可视为一个二维表。组成表的所有数据项都应是不可再分的最小数据项。关系对应表,属性对应列,元组对应行。学号姓名年龄性别系别专业元组属性另外,在关系R中,元组的次序无关,但不能学号姓名年龄性1783.键键(或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论