版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,第2章 数据模型,本章学习要求: 1. 层次数据模型、网状数据模型 了解层次及网状数据模型的基本概念和结构。 2. 关系数据模型 掌握关系数据模型的基本概念以及关系代数操作。 了解层次、网状和关系模型之间的差别。 3. 对传统模型的评价 了解传统模型的不足之处。 4E-R数据模型 掌握E-R模型的概念和表示。 5. 面向对象数据模型 了解面向对象数据模型的基本概念。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,数据模型可分为两类:,独立于计算机系统的数据模型,它完全不涉及信息在计算机系统中的表示,只是用来描述某个特定组织所关心
2、的信息结构,这类模型称为 “概念数据模型”。 概念模型用于建立信息世界的数据模型,强调其语义表达能力,概念应该简单,清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库人员之间进行交流的工具。最著名的是“实体联系模型”。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2. 直接面向数据库的逻辑结构的数据模型,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“基本数据模型”或“结构数据模型”。 例如, 层次、网状、关系、面向对象数据模型”.这类模型有严格的形式化定义,以便在计算机系统中实现。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.
3、1 层次数据模型,用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次数据模型(hierarchical data model)。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,基本概念和结构 记录和字段 双亲子女关系 层次数据模式 虚拟记录 层次数据的线性表示,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。一个记录包含若干字段。 每个字段也是命名的,字段只能是简单数据类型(整数、实数、字符串等)。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,系,系名,系号,系主任名,地
4、点,记录的型,计算机系,9,李西远,科技馆,记录的一个实例,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,双亲子女关系(Parent-Child Relationship,PCR) 反映两个记录型之间的一对多(1:N)关系,系,班,计算机系,901班,911班,921班,931班,1 N,PCR型,PCR实例,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,层次数据模式 层次数据模式由PCR构成,层次数据模式,系,班,学生,教研组,教师,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,在层次数据模式中,除根以外,
5、所有的记录型都应该有唯一的双亲,但可以有多个子女,子女按从左到右的次序排序。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,虚拟记录 非层次关系表示问题 (1)M:N,王一,张三,李四,人工智能,数据库,学生:,课程:,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,不允许一个记录有多个双亲,需要复制记录,导致冗余。如下图:,型,实例,学生,课程,王一,人工智能,张三,人工智能,数据库,李四,人工智能,数据库,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(2)一个记录是两个以上PCR的子女,学生,班,运动队,只能表示成下图,存在冗余。,学生,班,学生,运动队,制作
6、:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(3)多元关系,供应商,零件,工程项目,供应关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,可以用PCR表示为:,供应商,零件,工程项目,零件,供应商,工程项目,供应商,工程项目,零件,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,注意:书上图2-12不能表示三元关系,因为供应关系与供应商,供应关系与工程项目这两个PCR的一个双亲实例,其子女集合是并关系,而不是迪卡尔积关系。,供应商,零件,工程项目,供应关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,主要问题:数据冗余,为避免这一情况,只存一份记录,其它
7、引用该记录的地方用指针代替 这种用指针代替的记录称为虚拟记录。 用下标v表示,指针用虚线箭头表示。,(学生)v,课程,学生,(课程)v,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,学生,(学生)v,班,运动队,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,层次数据的线性表示 由于存储器是线性的,层次数据必须变换成线性形式才能存储,层次数据模式的实例对应一棵层次树(或森林),对层次树(或森林)按先序遍历生成的序列称为层次序列(hierarchical sequence),规定以此作为存储次序。,计 算 机 系,901 班,王 一,张 三,911 班,931 班,吴 坚,硬
8、件 教 研 组,郑 山,洪 流,软 件 教 研 组,丁 伟,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,层次数据模型的约束 (1)除了根记录外,任何其它记录不能离开其双亲记录而孤立存在; (2)任何记录,不管虚实,只允许有一个双亲记录(保证层次数据模式及其实例是树形); (3)虚拟记录的指针必须指向一个实际存在的记录,有虚拟记录指向的记录不得删除; (4)虚拟记录不得为根记录。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,特点: 层次结构是树结构,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型是1:N联系。(因此不能表示M:N),制作:倪
9、巍伟 东南大学计算机科学与工程学院数据库课程组,层次模型的优点: 记录之间的联系通过指针来实现,查询效率较高(针对层次结构)。,层次模型的缺点: 1、只能表示1:N联系,虽然可以采用虚拟记录 描述非层次数据关系,但较复杂,用户不易掌握, 并且非层次结构的查询效率比较低; 2、由于层次顺序的严格和复杂,引起数据的查询 和更新很复杂,因此应用程序的编写也比较复杂; 3、模式描述语言较复杂,数据独立性差。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.2 网状数据模型,用有向图(网络结构)表示实体及实体之间联系的数据模型称为网状数据模型(network data model)。有向图中
10、的结点是记录类型, 箭头表示从箭尾的记录类型到箭头的记录类型 间联系。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,基本概念和结构 记录和数据项 数据项相当于字段,记录是数据项的有序结合。 系 系表示两个记录型间的1:N关系;对应“1”的为首记录,对应“N”的为属记录。系是命名的,有型值之分,例如:图2-17就是系的型和值。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,班级,学生,一班,王一,李红,丁杰,型,值,图2-17 班级学生系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,具有多种类型属记录的系称为“多属系” (multimember set),多属系
11、,系值:3个成员的并,而非“X”,账户,存款帐,提款帐,转账,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,网状模型的特点: 与层次模型不同,网状模型中,一个记录型可以成为多个首记录型的属记录突破层次的限制; 一个记录型不能既作为一个系的首记录又作为同一个系的属记录。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,引入联系记录,EMP,LINK,1:1,1:N,1:1表示一人担任一个领导岗位,系值见下一页图。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,E4,L1,S1,E7,L2,S1,E9,L3,S1,E3,E5,E1,E6,S2,S2,S2,制作:倪巍伟
12、东南大学计算机科学与工程学院数据库课程组,一个记录值不能出现在同一系型的多个系值中,否则不是1:N关系 例如,学生(S)和课程(C)关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,S1,C1,C2,C3,C4,S1,C5,C6,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,解决M:N问题的方法联系记录,S,LINK,1,C,SL,M,1,CL,N,型,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,S1,L1,SL,L2,L3,L4,L5,L6,L7,S2,SL,C1,C2,C3,C4,C5,C6,CL,CL,CL,CL,CL,CL,值,制作:倪巍伟 东南大学计
13、算机科学与工程学院数据库课程组,LINK表示多元关系,零件,LINK,1,工程项目,M,1,N,供应商,1,P,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,无首系,首记录可以看成“系统”,例如一个单位的所有部门组成一个无首系。 无首系只有一个实例,也称单值系。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,系的实现方法,O,S1,S2,S3,前向指针,后向指针,首记录指针,系的链式实现方式,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,约束 (1)一个记录型不能兼任同一系的首记录和属记录; (2)一个记录不能出现在同一系型的多个系值中; (3)插入一个新记录时,
14、若它的记录型是某个系的属记录,必须考虑系籍问题(两种系籍约束): AUTOMATIC(自动的): 新的属记录插入时自动加入相应的系值; MANUAL(人工的):新的属记录插入时不自动加入相应的系值;,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(4)对已插入的属记录的系籍问题; 网状数据模型提供三种留置系籍约束: OPTIMAL(随意的):对属记录的系籍处理比较随意,属记录可以脱离某个系值独立存在,例如,“系学生”系; MANDATORY(强制的):属记录不能游离于系值之外,但可以转系值。例如,“部门职工”系; FIXED(固定的):不能游离,不能转系值,例如,“职工家属”系。 上
15、述系籍约束都是语义约束。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(5)删除记录时,删除首记录,没有系籍问题;删除属记录要按照(4)进行处理。 OPTIMAL 首记录可以删除,其属记录与系值脱离,仍保留在数据库中; MANDATORY 首记录不能删除,因为其属记录不能游离于系值之外; FIXED 可将首记录连同属记录一起删除。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,网状模型的缺点:,编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。 在关系DB以前,网状DB比层次DB用的要普遍。模拟层次和非层次结构比较自然,目前仍有应用实例。 由于层次系统和网状系统的应用
16、程序编制复杂,目前已被关系系统产品取代。 课程只介绍层次和网状数据模型的概念和机制,以求全面了解数据库技术的发展。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.3 关系数据模型,层次、网状模型都基于某种记录结构(PCR,SET),关系模型跳出这一限制,定义清晰,结构简单,操作方便。 关系模型是以集合论中的关系概念为基础发展起来的数据模型。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系模型(relaction data model)的主要特征是用表格结构表达实体集,用外键表示实体间联系。与层次模型和网状模型相比,关系模型比较简单,容易为初学者接受。 关系模型是由若
17、干个关系模式组成的集合。每个关系实际上是一张表格,记录之间联系是通过各个关系模 式的键体现的。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,PART模式 (P#,PNAME,COLOR,WEIGHT) PROJECT模式 (J#,JNAME,DATE) SUPPLIER模式 (S#,SNAME,SADDR) P_P模式 (J#,P#,TATOL) P_S模式 (P#,S#,QUANTITY),关系模型的例子,关系模型的层次、网状模型的最大差别是用键而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。,制作:倪
18、巍伟 东南大学计算机科学与工程学院数据库课程组,2.3.1 基本概念及定义 1属性和域 属性-用来描述事物特征。 例如:学生的姓名、学号、性别、出生年月等。 属性的域-属性的取值范围。 例如:姓名的取值范围是合法姓名的集合。 学号的域是若干位数字组成的字符串的集合。 性别的域是男,女,,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,注意: 关系数据模型中,所有的属性都应是不可再分的原子数据(atomic data)的集合-1NF。 关系数据模型中,允许某些属性值为空,即NULL。空值不是值,而是一个标记,表明该属性值空缺。例如:手机号码,E_mail等。,制作:倪巍伟 东南大学计算机
19、科学与工程学院数据库课程组,2关系和元组 设有一关系R,R上有属性: A1,A2,An 其对应域分别为: D1,D2,Dn 则关系R可表示为: R (A1/D1,A2/D2,An/Dn) 其中:n为关系R的属性个数,也称为关系的目。 同一关系中,不允许有同名属性,但不同属性可有相同的域。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系R的值可表示r或r(R): r = t1,t2,tm 每个元组t可表示为: t = ,vi Di , 1 i n 即 tiD1 * D2 * * Dn, 1 i n,例如:关于大学生的关系模式: STUDENT(学号,姓名,性别,出生年月,系别,入学
20、年份) 而其中某一个学生 就是关系R的一个元组。所有学生的值构成了R的元组的集合。 因此,R的模式相对稳定。R的值相对变化。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,另外,在关系R中,元组的次序无关,但不能 允许有相同的二个元组;属性的次序无关。 一个关系可视为一个二维表。组成表的所有数据项都应是不可再分的最小数据项。 关系对应表,属性对应列,元组对应行。,元组,属性,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,3键 键(或候选键)如果关系的某一个属性或属 性组的值唯一地决定其它所有属性的值。而其任 何真子集无此性质,则这个属性或属性组称为该 关系的键。 例:学生关
21、系中,学号就是关键字。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,超键与上相同,区别仅在于其真子集也 具此性质。,主键一个关系R可有多个候选键,若选中 一个作为Key,则它就是主键,其它称候补键, 每个元组的主键值应是唯一的。,全键由所有属性组成的键,称为全键 例如 SUPPLY(SNAME,PNAME,JNAME),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,主属性能作为候选键的属性,称为主属性。,非主属性不包含在候选键的属性,称为非主属性。,外键引用其它关系的Key或本关系的Key, 称为外键。,如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系
22、的关键字,则称其为该关系的外关键字。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,例:COURSE(课程号,课程名,学分,开课时间,先修课程号) GRADE(学号,课程号,成绩) 其中: 的主键是课程号。 的主键是学号+课程号。 中先修课程号是引用本关系的键,故称为外键。 中学号、课程号是引用STUDENT关系和COURSE中的键。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系数据模型是用关系描述事物间联系的,且这种联系通常都隐含在它们的公共属性中,尤其是外键中。因此,关系数据模型不能显式地表示这种事物间的联系,这是它的一个缺点。,制作:倪巍伟 东南大学计算机科学与
23、工程学院数据库课程组,关系模式R(A1/D1,A2/D2,,AN/DN)中, R的任何一个元组 t 应满足条件: tD1 * D2 * Dn,虽然满足上述条件的元组是合乎语法的,但是,并不是每个合乎语法的元组都能成为R的元组,它还要受到语义上的限制(完整性约束)。,2.3.2 约束,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,例如,一个大学生的年龄在5岁100岁之间。 身高3米,这就是语义上的限制。数据的语义不但限制属性的值,而且还会制约属性间的关系。,例:在一个R中,作为主键的属性或属性组,其值不为空或不重复出现等等。这些都是语义施加在属性间的限制。称为完整性约束。,目前,大多数
24、DBMS都提供了完整性约束检查。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系数据模型的完整性约束共分为4类: 1. 域完整性约束 域完整性约束是最简单、最基本的约束。 属性值应是域中的值,属性的值能否为空,这是由问题的语义决定的。,例:考试分数(成绩)的取值范围是0100。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2. 实体完整性约束 每一个关系都应有一个主键,用来唯一识别 一个元组。它的值不能为空,否则无法区分和 识别元组,这就是实体完整性约束。 目前,大多数DBMS都支持这项检查,但也不是 强制和彻底的。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课
25、程组,3. 引用完整性约束 这是指不同关系之间或同一关系的不同元组 间的约束。设关系R有一外键FK,则其某一元组 t的外键值为tFK。,设FK引用关系R的主键Pk,R可以是R,也可以不是R。引用完整性约束要求tFK遵守下面的约束:,即外键要么是空缺,要么是引用实际存在的 主键值。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,引用完整性约束与表之间的关联有关,它是关系数据库管理系统的一个很重要的功能。用好这项功能,可以减少由于客户端用户程序的疏忽而可能给数据库带来的错误。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,假定现在往职工关系 中插入一个元组: (“WH7”,”E
26、9”,1400)请问是否有问题?,仓库,职工,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,该元组插入到职工关系中是没有任何问题的, 但是,在仓库关系中根本就没有仓库号为WH7的仓库。没有“WH7”仓库,就没有在“WH7”工作的职工。所以插入到职工的元组是有问题的。 利用引用完整性约束就可以解决这类问题。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,由于仓库号是仓库关系的关键字,同时是职工 关系的外部关键字。在定义职工关系的仓库号字段 时,只要说明外部关键字约束: 仓库号 CHAR(4)NOT NULL REFERENCES 仓库 (仓库号),有了以上的约束,系统就会自动
27、检查相应的父记录是否存在,从而保证数据的引用完整性。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,4. 一般性完整性约束 一般完整性约束是用户为了满足特定的要求 而做的一些与数据完整性有关的规定。 前三种约束是关系数据模型的三个最基本、 最普遍的完整性约束。其它的语义约束与数据的 具体内容有关。当数据量很大时,要说明、管理 和检查这些约束,开销太大。目前,尚无一个 DBMS能全面实现一般性完整性约束检查。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.3.3 操作 关系数据模型提供了两类操作: 关系专用操作 集合操作,选择操作(Select)(横挑) 选择是一种单目运
28、算,即对一个关系施加的运算,按给定条件从关系中挑选满足条件的元组组成的集合 。 语法格式:(),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,订购单关系,例: 职工号=“E3”(订购单),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,订购单关系,例:职工号=“E3”(订购单),结果如下:,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,( (R)= andand (R),两者效率大不一样!,易证:,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,投影操作(Project)(竖挑) 投影操作是单目运算,从关系中挑选指定的 属性组成的新关系。 语法格式:(),制
29、作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,订购单关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,例: 职工号,供应商号(订购单),结果:,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,投影操作可以和选择操作组合起来,嵌套使用的情况:,例: 订购单号,供应商号(职工号=“E3” (订购单),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,订购单关系, 选择指定的属性,形成一个 可能含有重复行的表格; 删除重复行,形成新的关系。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,集合操作 在关系数据模型中,用得最多的集合操作是并、交、 差 ,设A、
30、B为两个集合. AB 并(union):由属于A或属于B的所有元组组成的 集合。 AB 交(intersection):由同时属于A和B的元组组成 的集合。 AB 差(difference):由属于R而不属于S的所有元组 组成的集合。,不过,交可用差表示。设A、B为两个集合,则A和B的交可表示为:ABA(AB),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,注: 参与并、差操作的两个关系的元组必须限制为同类型的,即具有相同的目,且对应的属性的域相同并兼容(union compatibility); 关系专用操作优先级高于集合操作; 一元操作(单目)优先级高于二元操作。,制作:倪巍伟
31、东南大学计算机科学与工程学院数据库课程组,仓库A,仓库B,仓库A 仓库B,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,仓库A 仓库B,仓库A - 仓库B,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,设有两个关系R和S,它们的目分别为nr和ns;它们的元组数分别为|R|和|S|,则R和S的笛卡尔乘积为: R S=|t R and g S 为t和g的拼接,即R S仍为一个关系,它的目为nr+ns、元组数为|R|S|。,若R和S中有相同的属性名,在这些属性名前加 上关系名作为限定词,进行区别。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,连接操作 连接操作是双目(
32、二元操作)操作。 按给定条件,把满足条件的两个关系所有元组,按一 切可能的拼接后形成的新关系,记为RS。 即 RS(R S) 连接条件为两关系中对应属性的比较,对应属性不一定同名,但要有相同的域。其普遍表示形式为: andandand 每个条件的普遍形式为:Ai Bj Ai为R的一个属性,Bj为S中与Ai对应的属性。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,注:自然连接完成三件事: 作R S;(笛卡儿积) 在R S上选择同时满足R.AiS.Ai的所有元组。 去掉重复属性;,连接条件为:,, 当所有连接条件中的都为“”时,称为等连接,在等连接结果中,对应属性的值是相同的,不用重复
33、。 消除冗余属性的等连接称为自然连接,它是“连接”操作的一个重要特例,实用价值很大,它要求被连接的关系有相同的两个属性名。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,仓库,职工,自然连接产生的新关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,GRADEGRADE.课称号=COURSE.课称号(课程名、课程号、学分(COURSE),上式可以生成一个学生成绩表,它具有学号、课程号、课程名、学分和成绩等属性。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,可以证明:关系代数操作集、-、是完备的,、-、也是完备的。 完备指任何其它关系代数操作都可以用这5种操作来表
34、示。 若一个关系DBMS支持、-、,称此DBMS是完备的(relationally complete)。 事实上,当前关系DBMS还增加了不少关系代数不支持的操作,例如排序、分组等等。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,除操作 双目运算(二元),用“”表示。 设有关系 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可以看成“余数”。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,示例,=
35、,被除关系(R),除关系(S),商关系,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,给定一个供应商号,如果它在被除关系上的映象集 包含除关系,则这个供应商号是商关系中的一个元组。 在这个例子中,除法运算决定了至少向列在除关系中的 那些仓库供应(器件)的那些供应商的编号。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,X(R),S,X(R) S,X(R) S - R,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,X(X(R) S)-R),RS = X(R)-X(X(R) S)-R),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组, 外连接(outer jo
36、in) 对连接操作的扩展. 与连接的区别:连接操作时,只有符合连接条件的匹配元组才能保留在结果中。外连接操作时,同时也 保留不匹配的那些元组,空缺部分填NULL。,a,b,NULL,a,b,NULL,外连接,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,有三种外连接: l左外连接,连接结果中,只保留左关系的所有元组; l右外连接,连接结果中,只保留右关系的所有元组; l全外连接,连接结果中,保留左右关系的所有元组;,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,例:要求生成一个表,列出所有课程名及其先修课程名。,R= 课程名,先修课程号(COURSE) S= 课程名,课程号
37、(COURSE),(必须考虑某些课程可能无先修课程的情况), R.课程名,S.课程名(R*先修课程号=课程号S),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组, 外并操作 并操作的扩展。可以对非并兼容的两关系进行并操作。 结果等于两关系的属性集的并。 在进行外并操作时,对于那些元组中没有的属性,填以Null。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,用关系代数表示的操作,需标明关系操作的序列,因而以关系代数为基础的DB语言是过程性语言(procedural language)。 用谓词演算来表达关系的操作称为关系演算。用关系演算表示关系的操作,只要说明所要得到的结果,
38、而不必标明操作的过程,因而以关系演算为基础的数据库语言是说明性语言(declarative language)。 目前,面向用户的关系数据库语言基本上都以关系演算为基础。,2.3.4 关系演算(relational calculus),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系代数表示关系的操作,用户必须指出运算方法步骤,而关系演算用谓词公式表示查询条件,指出“做什么”,而“怎么做”则由系统去完成。 以关系代数为基础的数据库语言是过程性语言,以关系演算为基础的数据库语言是说明性语言。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,根据所用变量不同,关系演算分为: 元
39、组关系演算 域关系演算,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,其中:t是元组变量,既可以用整个t作为查询对象,也可查询t中的某些属性。如查询整个t,则可省去。P(t)是t应满足的谓词。,利用元组关系演算,可以表示关系代数操作,因此,元组演算与关系代数具有同等表达能力,是关系完备的。,1.元组关系演算,以元组为变量。一般形式为: t属性表|P(t),制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,关系代数的几种基本运算可以用元组表达式表示如下:,关系代数的几种基本运算可以用元组表达式表示如下:,(1)投影:设有关系模式R(ABC),r为R的一个值,则 AB(r)=tAB
40、|tr,(2)选择:F(r)=t|tr and F F是以t为变量的布尔表达式。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(3)RS:可用t|R(t) S(t)表示; 或t|tR OR tS,(4)R-S:可用t|R(t) S(t)表示; 或t|tR AND tS,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,(5)连接(实际指自然连接) 设有两个关系模式R(ABC)和S(CDE),r、s分别为其值: RS=t(ABCDE)|tABCR and tCDES,注意:谓词中两个tC同值,隐含等连接。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,用谓词演算表示关
41、系操作时,只有结果是有限集才有意义。 一个表达式的结果如果是有限的,称此表达式是安全的,否则是不安全的。 否定常常会导致不安全的表达式,例如 t|(tSTUDENT)是不安全的。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,若限制t取值的域,使tDOM(P),可将上式改写成t| t DOM(P) and (tSTUDENT)= DOM(P) STUDENT,成为安全表达式。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,域关系演算是以域为变量,一般形式为:,X1,X2,Xn|P(X1,X2,Xn, Xn+1,Xn+m) ,其中:X1,X2,Xn,Xn+1,Xn+m为域变量
42、。且X1,X2,Xn出现在结果中,其它m个域变量不出现在结果中,但出现在谓词P中。,2.3.5 域关系演算,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,对关系GRADE(学号,课程号,成绩),如果要查询须补考的学生的学号和补考的课程号,此时查询表达式:,|(z)(GRADE(x,y,z) AND z60),GRADE(x,y,z)是一个谓词,如果x,y,z是GRADE中的一个元组,则该谓词为真。,与元组变量不同的是域变量的变化范围是某个值域而不是一个关系。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.4 对传统数据模型的评价,传统数据模型有层次数据模型、网状数据模型
43、、关系数据模型。,特点:,都继承了文件中的记录、字段等概念。 物理级也借鉴了文件的索引、散列等存取方法。 向用户提供了统一的数据模型和相应的数据库语言。 都在记录的基础上定义了数据的基本结构、约束和操作。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,传统数据模型的不足:, 以记录为基础,不能很好地面向用户和应用。记 录和实体不一定相对应。 不能以自然的方式表示实体间联系。 语义贫乏。 数据类型少,难以满足应用需要。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.5 E-R 数据模型,1976年由P.Chen提出: 建立一种统一的数据模型,来概括层次、网状和关系三种传统
44、数据模型; 作为3种数据模型间相互转换的中间模型; 作为超脱DBMS的一种概念数据模型,用比较自然的方式模拟现实世界。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,E-R数据模型用的最成功和最广泛的是作为数据库概念设计的数据模型。 E-R数据模型不是面向实现,而是面向现实世界。其设计的出发点是有效自然的模拟现实世界,而不是首先考虑它在机器中的实现问题。 E-R数据模型是一种有代表性的非传统数据模型。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,2.5.1 基本概念,E-R(实体联系数据模型)与传统数据模型的区别在于:E-R不是面向实现,而是面向现实世界的,因此,它能比较自然地描述现实世界。,E-R中有三个重要的抽象概念:,实体:可以相互区别,且可被人们识别的事、物、概念等统统抽象为实体。,制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组,例如,学生的全体,就是一个实体集。其中的每一个学生是实体集的一个实例或值。因此,实体集通常作为型来定义(E-R中有型与值之分)。,如:Ese|e是学生,其中:Es是学生实体集, e是学生实体。,注:E-R中,大写字母表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024专业房地产居间服务协议
- 淀粉产品的全球市场推广考核试卷
- 2024年校园扩建工程施工协议
- 《辽宁省青少年篮球运动员运动倦怠的现状、影响因素及应对策略》
- 《若干篮球经典配合性练习方法存在的客观性及其合理性的研究》
- 2024年技术扩散服务协议模板抢先看
- 摩托车的噪音限制与减排措施考核试卷
- 固体饮料的营养与健康问题考核试卷
- 个人职业规划范文汇编三篇
- 《面向节能控制的楼宇机理模型仿真研究》
- GB-T-13916-2013-冲压件形状和位置未注公差
- 三角高程计算表(带公式)
- 2020新生儿机械通气时气道内吸引操作指南
- 全站仪三角高程记录表
- 监控系统竣工资料
- 物业工程维修使用工具清单
- 煤油渗漏试验要求
- yy娱乐频道设计方案模板(简约版)
- 六爻必背口诀
- 多重耐药菌病例分析ppt课件
- 六十四卦图文详解
评论
0/150
提交评论