数据库原理及应用教程_第1页
数据库原理及应用教程_第2页
数据库原理及应用教程_第3页
数据库原理及应用教程_第4页
数据库原理及应用教程_第5页
已阅读5页,还剩216页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库应用技术,数据库原理及应用教程,第一章 数据库系统概述(1) 第二章 关系数据库(2) 第三章 关系数据库标准语言-SQL(4) 第四章 关系数据库理论(3) 第五章 数据库安全保护(2) 第六章 数据库设计(2) 第七章 SQL Server 2000 高级应用(2),第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统 1.5 数据模式 1.6 四种数据模型,1.1 数据库系统的产生、发展和当前流行的数据库,随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发

2、展阶段 人工管理阶段(50年代中期以前) 文件系统阶段(50年代后期至60年代中期) 数据库系统阶段(60年代末开始),1.1 数据库系统的产生、发展和当前流行的数据库,1964年,美国通用电气公司成功开发了世界上的第一个数据库系统IDS(Integrated Data Store)。IDS奠定了网状数据库的基础,并且得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。 1968年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(Information Management System),同样在数据库系统发展史上占有重要的地位。,1.1 数据库系统的产生、发展和当

3、前流行的数据库,七十年代初,E.F.Codd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念。 他提出了关系代数和关系演算(直到今天,在E.F.Codd的这些基本理论还在左右这数据库系统的发展,也依然是高校计算机专业课堂上所要讲述的重要内容)。,1.1 数据库系统的产生、发展和当前流行的数据库,在理论上,确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论(在后面将重点讲述这些关系数据库的基本理论); 在实践上,世界上出现了很多著名的关系数据库系统,比较著名的如System R,INGRES,Oracle等。,1.1 数据库系统的产生、发展和当前流行的数据库, ,课

4、堂提问,1、P42 1.13 1.15 2、P42 2.1 2.10,第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统 1.5 数据模式 1.6 四种数据模型,1.2 数据库系统的组成,数据库系统通常是指在计算机系统中引入数据库后的系统构成,由数据库、数据库用户、计算机硬件系统和计算机软件系统等级部分组成。,1.2 数据库系统的组成,用户1,用户2,用户n,用 户,数据库管理员,软 件 系 统,应用系统,应用开发工具,DBMS,操作系统(OS),数据库,数据库,数据库是存储在计算机内、有组织

5、的、可共享的数据集合。 数据库中的数据按一定的数据模型组织、描述和存储,具有较少的冗余度、较高的数据独立性和易扩展性,并为各个用户共享。,用户,用户是指使用数据库的人,他们可以对数据库进行存储、维护和检索等操作。 第一类用户:终端用户; 第二类用户:应用程序员 第三类用户:数据库管理员(DBA),软件系统,软件系统主要包括数据库管理系统(DBMS)及其开发工具、操作系统和应用系统。 DBMS完成对硬件的访问,并对数据库的数据进行存取、维护和管理,完成数据库系统的各类人员、应用程序等对数据库的各种操作请求。 DBMS是数据库系统的核心软件。,硬件系统,硬件系统指存储和运行数据库系统的硬件设备,1

6、.2 数据库系统的组成,应用系统,应用开发工具,DBMS,操作系统,硬件,课堂提问,1、P43 3.6 2、P41 1.1 1.2 3、P42 2.4 2.5,第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统 1.5 数据模式 1.6 四种数据模型,1.3 数据库系统的模式结构(重点),数据库系统的三级模式结构 数据库系统模式的概念 数据库系统的三级模式结构 数据库系统的二级映像与数据独立性 数据库系统的三级模式与二级映像的优点,1.3 数据库系统的模式结构,可以从多种不同的角度考查数据库系

7、统的结构。 从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构; 从数据库最终用户的角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器结构和浏览器/服务器结构,这是数据库系统外部的体系结构。,1.3 数据库系统模式的概念,模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。 例如:学生记录定义为(学号、姓名、性别、系别、年龄),称为记录型, 而(001101,张立,男,计算机,20)则是该记录型的一个记录值。 模式只是对记录型的描述,而与具体的值无关。,数据库系统的三级模式结构,数据库系统内部的体系结构从逻辑上划分为三级:

8、外模式、模式和内模式; 对用户而言,可以对应地分为:一般用户级模式、概念级模式和物理模式;,图 1.8 数据库系统的三级模式结构,用户级,概念级,物理级,模式(Schema),也称为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。 模式处于三级结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序也无关,是整个数据库实际存储的抽象表示。 一个数据库只有一个模式,是数据库的整体逻辑。,外模式,又称子模式或用户模式,是三级结构的最外层,是数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述。 外模式一般是模式的子集,一个数据库就可以有多个外模式。 外模式是保证

9、数据库安全的一个有力措施。,内模式,又称存储模式,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层。 是数据在数据库内部的表示方法。 由多个存储记录组成,但并非物理层,不必关心具体的存储位置。,数据库系统的三级模式结构,一个数据库系统中,实际存在的只是物理级数据库,是数据访问的基础; 概念级数据库是物理级数据库的一种抽象描述; 用户级数据库是用户对数据库的接口。 外模式可有多个,而模式、内模式只能各有一个。 内模式是整个数据库实际存储的表示,而模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示,数据库系统的二级映像与数据独立性,数据库系统的三级

10、模式是对数据的三个抽象级别,它使用户能逻辑地抽象地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给 DBMS 管理。 为了能够在内部实现这三个抽象层次的联系和转换,DBMS 在三级模式之间提供了二级映象功能。,数据库系统的二级映像与数据独立性,外模式/模式映像 模式/内模式映像,外模式/模式映像,模式描述的是数据的全局逻辑结构,外模式描述的是数据局部逻辑结构; 同一模式可以有任意多个外模式,每一个外模式都存在一个外模式/模式映像; 确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系; 保证了数据程序间的逻辑独立性。,模式/内模式映像,模式和内模式是唯一的,所以模式/内模式

11、映像是唯一的; 确定了数据的全局逻辑结构与存储结构之间的对应关系 存储结构变化时,数据库管理员对模式/内模式映像作相应的变化,是模式保持不变 确保了数据的物理独立性,数据库系统的三级模式与二级映像的优点,保证数据的独立性 模式和内模式分开,保证了数据的物理独立性; 外模式和模式分开,保证了数据的逻辑独立性。 简化了用户接口 按照外模式编写应用程序或输入命令,不需要了解数据内部的存储结构 有利于数据共享 不同的外模式下可有多个用户共享系统中的数据,减少了数据冗余 有利于数据的安全保密 在外模式下根据需求进行操作,只能对限定的数据操作,保证了其他数据的安全。,课堂提问,1、P43 3.7 3.8

12、2、P41 1.1 1.2 1.3 1.8 1.10 1.11 1.14 3、P42 2.3 2.4 2.5 2.7 2.9,第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统 1.5 数据模式 1.6 四种数据模型,1.4 数据库管理系统,数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分, 用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。 DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的

13、处理软件,这给用户带来很大的方便。,数据库管理系统,DBMS的主要功能 DBMS的组成 DBMS的数据存取的过程,DBMS的主要功能,1、数据定义 DBMS提供数据定义语言DDL(Data Define Language),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映象,定义有关的约束条件, 例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义完整性规则。,DBMS的主要功能,2. 数据操纵 DBMS提供数据操纵语言DML(Data Manipulation Language)实现对数据库的基本操作,包括检索、插入、修改、删除等。 SQL语

14、言就是DML的一种。,DBMS的主要功能,3. 数据库运行管理 DBMS 对数据库的控制主要通过四个方面实现: 数据的安全性控制 数据的完整性控制 多用户环境下的并发控制 数据库的恢复 以确保数据正确有效和数据库系统的正常运行。,DBMS的主要功能,4. 数据库的建立和维护功能 包括数据库的初始数据的装入, 数据库的转储、恢复、重组织, 系统性能监视、分析等功能。 5. 数据通信接口 DBMS提供与其他软件系统进行通信的功能。 实现用户程序与DBMS之间的通信,通常与操作系统协调完成。,DBMS的主要功能,4. 数据库的建立和维护功能 包括数据库的初始数据的装入, 数据库的转储、恢复、重组织,

15、 系统性能监视、分析等功能。 5. 数据通信接口 DBMS提供与其他软件系统进行通信的功能。 实现用户程序与DBMS之间的通信,通常与操作系统协调完成。,DBMS的主要功能,6. 数据组织、存储和管理 DBMS负责对数据库中需要存放的各种数据如:数据字典、用户数据、存取路径等的组织、存储和管理工作,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间利用率和对数据库进行增、删、查和该的效率等。,DBMS的组成,DBMS是许多程序所组成的一个大型软件系统 每个程序都有自己的功能 共同完成DBMS的一件或几件工作。,DBMS的组成,语言编译处理程序 系统运行控制程序 系统建立、维护程序

16、数据字典,DBMS的数据存取的过程,在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键的作用。 DBMS对数据的存取通常需要以下几个步骤: 用户使用某种特定的数据操作语言向DBMS发出存取请求;,DBMS的数据存取的过程,DBMS接受请求并解释转换成机器代码指令; DBMS依次检查外模式、外模式/模式映象、模式、模式/内模式映象及存储结构定义; DBMS对存储数据库执行必要的存取操作; 从对数据库的存取操作中接受结果,DBMS的数据存取的过程,对得到的结果进行必要的处理,如格式转换等 将处理的结果返回给用户 上述存取过程中还包括安全性控

17、制、完整性控制,以确保数据的正确性、有效性和一致性。,课堂提问,1. 1.7 1.9 1.12,第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统 1.5 数据模式 1.6 四种数据模型,1.5 数据模式,数据模型的概念 三个世界的划分及其有关概念 数据模型的分类 实体联系模型及E-R图 数据模型的组成要素,数据模型的概念,数据模型是数据的框架,该框架描述了数据及其联系的组织方式、表达方式和存取路径,是数据库系统的核心和基础 各种机器上实现的DBMS软件都基于某种数据模型 它的数据结构直

18、接影响到数据库系统的其他部分的性能,也是数据定义和数据操纵语言的基础 是设计数据库的一项首要任务,三个世界的划分及其有关概念,1、三个世界的划分 将现实世界的事物及联系抽象成信息世界的信息模型,然后再抽象成计算机世界的数据模型 信息模型不依赖于具体的计算机系统,是计算机内部数据的抽象表示,是概念模型 概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型,三个世界的划分及其有关概念,现实世界,概念模型,认识抽象,DBMS支持的数据模型,信息世界,计算机世界,现实世界,三个世界的划分及其有关概念,2、现实世界 是客观存在的世界 每个事物都有自己的特征或性质 事务之间是有相互联系的,三个世界的

19、划分及其有关概念,3、信息世界及其有关基本概念 实体(Entity):客观存在并可以相互区别的事物 客观存在并且可以相互区别的“事物”称为实体。 实体可以是可触及的对象,如一个学生,一本书,一辆汽车;也可以是抽象的事件,如一堂课,一次比赛等。,三个世界的划分及其有关概念,属性(Attributes):实体的某一特性称为属性,一个实体可以有多个属性。 如学生实体有学号、姓名、年龄、性别、系等方面的属性。 属性有型和“值”之分,型即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张立,20,男,计算机)这些属性值的集合表示了一个学生实体。,三个世界的划分及其有关

20、概念,实体型(Entity Type) 若干个属性型组成的集合可以表示一个实体的类型,简称实体型。 如学生(学号,姓名,年龄,性别,系)就是一个实体型。 实体集(Entity Set) 同型实体的集合称为实体集。 如所有的学生、所有的课程等。,三个世界的划分及其有关概念,键(Key) 能唯一标识一个实体的属性或属性集称为实体的键。 如学生的学号,学生的姓名可能有重名,不能作为学生实体的键。 域(Domain) 属性值的取值范围称为该属性的域。 如学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于40的整数,性别的域为(男,女)。,三个世界的划分及其有关概念,联系(Relationship

21、) 在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来, 在信息世界中将被抽象为实体型内部的联系和实体型之间的联系。,三个世界的划分及其有关概念,联系(Relationship) 实体内部的联系通常是指组成实体的各属性之间的联系; 实体之间的联系通常是指不同实体集之间的联系。 反映实体型及其联系的结构形式称为实体模型,也称作信息模型,它是现实世界及其联系的抽象表示。,三个世界的划分及其有关概念,两个实体型之间的联系有如下三种类型: (1)一对一联系(1:1) 实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系

22、。记作1:1。 如:班级与班长,观众与座位,病人与床位。,三个世界的划分及其有关概念,两个实体型之间的联系有如下三种类型: (2)一对多联系(1:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。 如:班级与学生、公司与职员、省与市。,三个世界的划分及其有关概念,两个实体型之间的联系有如下三种类型: (3)多对多(m:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。 如:教师与学生,学生与课程,工厂与产品。,三个世界的划分及其有关概念,实

23、际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。 可以用图形来表示两个实体型之间的这三类联系 A B A B A B (a) (b) (c),三个世界的划分及其有关概念,4 计算机世界中的基本概念 信息世界中的实体抽象为计算机世界中的数据,存储在计算机中。在计算机世界中,常用的主要概念如下: 字段(Field) 对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。 如学生有学号、姓名、年龄、性别、系等字段。,三个世界的划分及其有关概念,4 计算机世界中的基本概念 记录(Record) 对应于每个实体的数据称为记录。 如一个学生(990001,张立,20,男

24、,计算机)为一个记录。 文件(File) 对应于实体集的数据称为文件。 如所有学生的记录组成了一个学生文件。,三个世界的划分及其有关概念,4 计算机世界中的基本概念 关键字(key) 能唯一标识文件中每个记录的字段或字段集,称为记录的关键字。 如在学生文件中,学号可以唯一标识一个学生记录,因此,学号可以作为学生记录的关键字。,三个世界的划分及其有关概念,在计算机世界中,信息模型被抽象为数据模型,实体型内部的联系抽象为同一记录内部各字段间的联系,实体型之间的联系抽象为记录与记录之间的联系。 现实世界是设计数据库的出发点,也是使用数据库的最终归宿。 实体模型和数据模型是现实世界事物及其联系的两级抽

25、象。而数据模型是实现数据库系统的根据。,三个世界的划分及其有关概念,通过以上的介绍,我们可总结出三个世界中各术语的对应关系: 现实世界 - 信息世界 - 计算机世界 事物总体 - 实体集 - 文件 事物个体 - 实体 - 记录 特征 - 属性 - 字段 事物间联系 - 实体模型 - 数据模型,数据模型的分类,根据模型应用的不同目的,将模型划分为两类: 概念模型 逻辑模型和物理模型,概念模型,也成为信息模型 是按用户的观点对数据和信息建模,不依赖与具体的计算机系统 描述某个特定组织所关心的信息结构 用于数据库设计时用户和数据库设计人员之间交流的工具 实体模型,简称E-R模型,逻辑模型和物理模型,

26、逻辑模型是按计算机的观点对数据建模,有严格的形式化定义 逻辑模型主要用于DBMS的实现,即数据库是按照DBMS规定的数据模型组织和建立起来的。 物理模型是对数据最底层的抽象,描述数据在磁盘或磁带上的存储方式和存取方式,是面向计算机系统的。,实体联系模型及E-R图,广泛应用于数据库设计工作中的一种概念模型,利用E-R图来表示实体及其之间的联系 E-R图的基本成分包含实体型、属性和联系 实体型:用矩形框表示,框内注明实体名称 属性:用椭圆表示,框内标注属性名称,并用无向边与有关实体相连 联系:联系用菱形表示,框内标注联系名称,并用无向边与有关实体相连,同时在无向边旁标上联系的类型,实体联系模型及E

27、-R图,课程,选修,学号,学号,学号,学号,学号,学号,学号,学号,学号,学生,n,m,数据模型的组成要素,由于数据模型是现实世界中的事物及其联系的一种模拟和抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。 数据结构:数据库的组成对象以及对象间的联系 数据操作:数据库中的各种数据允许执行的操作的集合 数据的完整性约束:保证数据的正确、有效和相容,课堂提问,1. 1.5 1.6 2.6 2.11 2.14 3.11,第一章 数据库系统概述,1.1 数据库系统的产生、发展和当前流行的数据库 1.2 数据库数据库系统的组成 1.3 数据库系统的模式结构 1.4 数据库管理系统

28、1.5 数据模式 1.6 四种数据模型,四种数据模型,层次模型 网状模型 关系模型 面向对象模型,关系模型,关系模型是发展较晚的一种模型, 1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。 他发表了题为“大型共享数据银行数据的关系模型”(A Relation Model of Data for Large Shared Data Banks),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究,关系模型,他为此获得了1981年的图灵奖。 此后许多人把研究方向转到关系方法上,

29、陆续出现了关系数据库系统。 1977年IBM公司研制的关系数据库的代表System R开始运行,其后又进行了不断的改进和扩充,出现了基于System R的数据库系统SQL/DB。,关系模型,20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。 数据库领域当前的研究工作也都是以关系方法为基础。 关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Acess,大型数据库系统Oracle、Informix、Sybase、SQL Server等都是关系数据库系统。,关系模型,1. 关系模型的数据结构以及有关概

30、念 关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。 关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。,关系模型,1. 关系模型的数据结构以及有关概念 图1.22给出了教学数据库的关系模型及其实例,包含五个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC,分别对应五张表。 下面以图1.22为例,介绍关系模型中所涉及的一些基概念。,T(教师关系),S(学生关系),C(课程关系),SC(选课关系) TC(授课关系),关系模型,(1)关系(Relation) 一个关系对应一张二维表 (2)元组(Tupl

31、e) 表格中的一行,如S表中的一个学生记录即为一个元组。,关系模型,(3)属性(Attribute) 表格中的一列,相当于记录中的一个字段,如S表中有五个属性(学号,姓名,性别,年龄,系别)。 (4)关键字(Key) 可唯一标识元组的属性或属性集,也称为关系键或主码,如S表中学号可以唯一确定一个学生,为学生关系的主码。,(5)域(Domain) 属性的取值范围,如年龄的域是(1440),性别的域是(男,女)。 (6)分量 每一行对应的列的属性值,即元组中的一个属性值,如学号、姓名、年龄等均是一个分量。,关系模型,(7)关系模式 对关系的描述,一般表示为:关系名(属性1,属性2,属性n),如:学

32、生(学号,姓名,性别,年龄,系别)。 在关系模型中,实体是用关系来表示的,如: 学生(学号,姓名,性别,年龄,系别) 课程(课程号,课程名,课时) 实体间的关系也是用关系来表示的,如: 学生和课程之间的关系 选课关系(学号,课程号,成绩),关系模型,关系模型,(8)关系实例:是关系模式的“值”,是关系的数据,相当于二维表中的数据,关系模型,2. 关系模型的数据操纵与完整性约束 数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。,关系模型,3、关系模型的优缺点 关系模型的优点主要有: (1)与非关系模型不同,它有较强的数

33、学理论根据。 (2)数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。 (3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。,关系模型,3、关系模型的优缺点 关系模型的缺点主要有: 由于存取路径对用户透明,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。,第二章 关系数据库,关系数据库是支持关系模型的数据库系统。 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。,第二章 关系数据库,2.1 关系模型的数据结构及其

34、形式化定义 2.2 关系的键与关系的完整性 2.3 关系代数 2.4 关系演算,2.1关系模型的数据结构及其形式化定义,关系模型的数据结构是关系。 实体以及实体之间的联系都由关系来表示。,2.1关系模型的数据结构及其形式化定义,2.1.1 关系的形式化定义以及有关概念 2.1.2 关系的性质 2.1.3 关系模式 2.1.4 关系数据库与关系数据库模式,2.1.1 关系的形式化定义以及有关概念,1、域(Domain) 域是一组具有相同数据类型的值的集合,又称为值域。(用D表示) 域中所包含的值的个数称为域的基数(用m表示)。 关系中用域表示属性的取值范围。 域名无排列次序。 例如: D1=李力

35、,王平,刘伟 m1=3 D2=男,女 m2=2 D3=47,28,30 m3=3,2.1.1 关系的形式化定义以及有关概念,1、域(Domain) D1=李力,王平,刘伟 m1=3 D2=男,女 m2=2 D3=47,28,30 m3=3,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian Product) 给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2Dn = (d1,d2,dn)|diDi,i=1,2,n。,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian

36、 Product) 其中: 1. 元素中的每一个di叫做一个分量(Component),来自相应的域(diDi) 2. 每一个元素(d1,d2,d3,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian Product) 3. 若Di(i=1,2,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示,则笛卡尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即 M=,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian P

37、roduct) 例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为: D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女) 其中: 李力、王平、刘伟、男、女都是分量 (李力,男),(李力,女)等是元组 其基数M=m1m2=3*2=6 元组的个数为6,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian Product) 4. 笛卡尔积可用二维表的形式表示 表2.1 D1和D2的笛卡尔积,2.1.1 关系的形式化定义以及有关概念,2、 笛卡尔积(Cartesian Product) 笛卡尔积实际是一个二维表,表的框架由域构成,表的

38、任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系(Relation),可用R(D1,D2Dn)表示。 如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表:,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation),2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 1) R为关系名,n称为关系的目或度(Degree)。 当n=1时,称为单元关系。 当n=2时,称为二元

39、关系。 当n=n时,称为n元关系。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 1) R为关系名,n称为关系的目或度(Degree)。 当n=1时,称为单元关系。 当n=2时,称为二元关系。 当n=n时,称为n元关系。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 2) 该子集中的元素是关系中的元组,用r表示,关系中元组个数是关系的基数。如(李力,男),(王平,女),(刘伟,男)为三个元组,关系的基数为3。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 3)可以把关系看成一个二维表。其中, (1)表的框架由域

40、Di(i=1,2,n)构成; (2)表的任意一行对应一个元组; (3)表的每一列来自同一域; (4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,n)称为值域;,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 3)可以把关系看成一个二维表。其中, (5)具有相同关系框架的关系成为同类关系。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation) 4)数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。,2.1.1 关系的形式化定义以及有关概念,3、

41、 关系(Relation) 在关系模型中,关系可进一步定义为:定义在域D1,D2,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。 关系头:由属性名A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(i=1,2,n),关系头,也称关系框架,相对固定,是关系的数据结构的描述。 关系体:是指关系结构中的内容或者数据,并非固定不变,它随元组的建立、删除或修改而变化。,2.1.1 关系的形式化定义以及有关概念,3、 关系(Relation),2.1关系模型的数据结构及其形式化定义,2.1.1 关系的形式化定义以及有关概念 2.1.2 关系的性质 2.1.3 关

42、系模式 2.1.4 关系数据库与关系数据库模式,2.1.2 关系的性质,尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。 严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:,2.1.2 关系的性质,关系中不允许出现相同的元组。 因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。,2.1.2 关系的性质,2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。 因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性

43、质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。,2.1.2 关系的性质,3. 关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。 交换时,应连同属性名一起交换,否则将得到不同的关系。,2.1.2 关系的性质,4.同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。 5.关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。,2.1.2 关系的性质,6.关系中每一分量必须是不可分的数据项。 或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。

44、满足此条件的关系称为规范化关系,否则称为非规范化关系。,2.1.2 关系的性质,6.关系中每一分量必须是不可分的数据项。,第二章 关系数据库,2.1 关系模型的数据结构及其形式化定义 2.2 关系的键与关系的完整性 2.3 关系代数 2.4 关系演算,2.2 关系的键与关系的完整性,2.2.1 候选键与主关系键 2.2.2 外部关系键 2.2.3 关系的完整性,2.2.1 候选键与主关系键,1.候选键(Candidate Key) 能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(Candidate Key),也称候选关键字或候选码。,2.2.1 候选键与主关系键,1.候选键(C

45、andidate Key) 设关系R有属性A1,A2,An,其属性集K=(Ai,Aj,Ak),当且仅当满足下列条件时,K被称为候选键:,2.2.1 候选键与主关系键,1.候选键(Candidate Key) 唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。 最小性(Minimally):组成关系键的属性集(Ai,Aj,Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质。,2.2.1 候选键与主关系键,2.主关系键(Primary Key) 如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(

46、Primary Key),或简称为主键、主码、关系键、关键字。,2.2.1 候选键与主关系键,2.主关系键(Primary Key) 每个关系必需选择一个主关系键,选定以后,不能随意改变。每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。,2.2.1 候选键与主关系键,3.主属性与非码属性 主属性(Prime Attribute):包含在主码中的的各属性称为主属性。 非码属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性。,2.2.1 候选键与主关系键,3.主属性与非码属性 在最

47、简单的情况下,一个候选码只包含一个属性; 在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。,2.2 关系的键与关系的完整性,2.2.1 候选键与主关系键 2.2.2 外部关系键 2.2.3 关系的完整性,2.2.2 外部关系键,如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreign key)。 关系R2为参照关系(referencing relation),关系R1为被参照关系(referenced relation)。 被参照关系的主码和参照关系的外码必须定义在同一个域上。,2.

48、2.2 外部关系键,2.2 关系的键与关系的完整性,2.2.1 候选键与主关系键 2.2.2 外部关系键 2.2.3 关系的完整性,2.2.3 关系的完整性,为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性: 实体完整性 参照完整性 用户自定义的完整性,实体完整性,实体完整性是指主关系键的值不能为空或部分为空。 关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。 现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主关系键来唯一标识元组。,实体完整性,如果主关系键中的值为空或部分为空,

49、即主属性为空,则不符合关系键的定义条件,不能唯一标识元组及与其相对应的实体。这就说明存在不可区分的实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此主关系键的值不能为空或部分为空。,参照完整性,如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。,2.2.2 外部关系键,参照完整性,S(学生关系) D(系别关系),参照完整性,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性。 除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这

50、就是用户定义完整性。,用户自定义完整性,用户定义完整性是针对某一具体关系数据库的约束条件。 它反映某一具体应用所涉及的数据必须满足的语义要求。,第二章 关系数据库,2.1 关系模型的数据结构及其形式化定义 2.2 关系的键与关系的完整性 2.3 关系代数 2.4 关系演算,2.3关系代数,关系模型由关系数据结构、关系操作和关系完整性约束三部分组成; 关系操作包括查询操作和更新操作; 关系操作采用集合操作方式,操作的对象和结果都是集合,也称为一次一集合。,2.3关系代数,关系代数:用关系的运算来表达查询要求; 关系演算:用谓词来表达查询要求 元组关系演算:谓词变元的基本对象是元组变量 域关系演算

51、:谓词变元的基本对象是元组变量,2.3关系代数,关系代数:用关系的运算来表达查询要求; 关系演算:用谓词来表达查询要求 元组关系演算:谓词变元的基本对象是元组变量 域关系演算:谓词变元的基本对象是元组变量,2.3关系代数,传统的集合运算:将关系看作元组的集合; 专门集合运算:涉及行运算和列运算,传统的集合运算,传统的集合运算:将关系看作元组的集合; 专门集合运算:涉及行运算和列运算,传统的集合运算,定义2.8 设给定两个关系R、S,若满足: ()具有相同的度n; () R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。 除笛卡尔积外,要求参加运算的关系必须满足上述的相容性

52、定义。,传统的集合运算,R,S,1. 并(Union),关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tRtS 对于关系数据库,记录的插入和添加可通过并运算实现。,1. 并(Union),R,S,A,B,C,a1,b1,c1,a2,b2,c1,a2,b3,c2,a1,b1,c2,R S,2. 差(Difference),关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: R-S=t|tRtS 通过差运算,可实现关系数据库记录的删除。

53、,2. 差(Difference),R,S,A,B,C,a1,b1,c2,R-S,3. 交(Intersection),关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tRtS 如果两个关系没有相同的元组,那么它们的交为空。,3. 交(Intersection),两个关系的并和差运算为基本运算(即不能用其他运算表达的运算) 而交运算为非基本运算,交运算可以用差运算来表示: RS=R-(R-S),3. 交(Intersection),R,S,A,B,C,a1,b1,c2,R S,a2,b2,c1,4. 广义笛卡尔积(Ex

54、tended Cartesian Product),两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合 元组的前n列是关系R的一个元组,后m列是关系S的一个元组 若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作 RS=trts| trR,tsS,4. 广义笛卡尔积(Extended Cartesian Product),R,S,R S,专门集合运算,由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。 在讲专门的关系运算之前,为叙述上的方便先引入几个概念。,专门集合运算,设关系模

55、式为R(A1,A2,An),它的一个关系为R,tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量。,专门集合运算,若A=Ai1,Ai2,,Aik,其中Ai1,Ai2,Aik是A1,A2,,An中的一部分,则A称为属性列或域列,则表示A1,A2,,An中去掉Ai1,Ai2,,Aik后剩余的属性组。tA=tAi1,tAi2,tAik表示元组t在属性列A上诸分量的集合。,专门集合运算,R为n目关系,S为m目关系,trR, tsS, trts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。,专门集合运算

56、,给定一个关系R(X,Z),X和Z为属性组,定义当tX=x时,x在R中的象集(image set),为Zx=tZ|tR,tX=x,它表示R中的属性组X上值为x的诸元组在Z上分量的集合。,1、选取(Selection),选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作: F(R)=t|tRF(t)为真 其中:,1、选取(Selection),为选取运算符 F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符( ,=,)和逻辑运算符( )连接起来的逻辑表达式,结果为逻辑值“真”或“假”。,1、选取(Selection),选取运算实际上是从关

57、系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。 例1 查询计算机系的全体学生: DEPT =计算机 (S)或 5=计算机 (S)(其中5为DEPT的属性序号),S(学生关系),1、选取(Selection), DEPT =计算机 (S),例2 查询工资高于1000元的男教师。 (SAL1000) (SEX=男) (T),T(教师关系),1、选取(Selection),2. 投影(Projection),投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作: A(R)=

58、tA|tR,2. 投影(Projection),其中: A为R中的属性列 为投影运算符。,2. 投影(Projection),从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。 选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。,2. 投影(Projection),例查询教师的姓名及其职称。 TN,TNO,PROF(T)或 2,1,5(T) (其中2,1,5分别为TN、TNO和PROF的属性序号),T(教师关系),2. 投影(Projection),投影运算可以改变关系的属性次序,2. 投影(Projection),例2.7 查询教师关系中有哪些系。 DEPT(T),T(教师关系),2. 投影(Projection),投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。 投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。,2. 投影(Projection),

温馨提示

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

评论

0/150

提交评论