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

下载本文档

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

文档简介

数据库应用技术数据库原理及应用教程第一章数据库系统概述(1)第二章关系数据库(2)第三章关系数据库标准语言-SQL(4)第四章关系数据库理论(3)第五章数据库安全保护(2)第六章数据库设计(2)第七章SQLServer2000高级应用(2)第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型1.1数据库系统的产生、发展和当前流行的数据库随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段人工管理阶段(50年代中期以前)文件系统阶段(50年代后期至60年代中期)数据库系统阶段(60年代末开始)1.1数据库系统的产生、发展和当前流行的数据库1964年,美国通用电气公司成功开发了世界上的第一个数据库系统——IDS(IntegratedDataStore)。IDS奠定了网状数据库的基础,并且得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。1968年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagementSystem),同样在数据库系统发展史上占有重要的地位。1.1数据库系统的产生、发展和当前流行的数据库七十年代初,E.F.Codd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念。他提出了关系代数和关系演算(直到今天,在E.F.Codd的这些基本理论还在左右这数据库系统的发展,也依然是高校计算机专业课堂上所要讲述的重要内容)。1.1数据库系统的产生、发展和当前流行的数据库在理论上,确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论(在后面将重点讲述这些关系数据库的基本理论);在实践上,世界上出现了很多著名的关系数据库系统,比较著名的如SystemR,INGRES,Oracle等。1.1数据库系统的产生、发展和当前流行的数据库/china/sql/2008/

//课堂提问1、P421.131.152、P422.12.10第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型1.2数据库系统的组成数据库系统通常是指在计算机系统中引入数据库后的系统构成,由数据库、数据库用户、计算机硬件系统和计算机软件系统等级部分组成。1.2数据库系统的组成用户1用户2用户n用户…数据库管理员软件系统应用系统应用开发工具DBMS操作系统(OS)数据库数据库数据库是存储在计算机内、有组织的、可共享的数据集合。 数据库中的数据按一定的数据模型组织、描述和存储,具有较少的冗余度、较高的数据独立性和易扩展性,并为各个用户共享。用户用户是指使用数据库的人,他们可以对数据库进行存储、维护和检索等操作。第一类用户:终端用户;第二类用户:应用程序员第三类用户:数据库管理员(DBA)软件系统软件系统主要包括数据库管理系统(DBMS)及其开发工具、操作系统和应用系统。DBMS完成对硬件的访问,并对数据库的数据进行存取、维护和管理,完成数据库系统的各类人员、应用程序等对数据库的各种操作请求。DBMS是数据库系统的核心软件。硬件系统硬件系统指存储和运行数据库系统的硬件设备1.2数据库系统的组成应用系统应用开发工具DBMS操作系统硬件课堂提问1、P433.62、P411.11.23、P422.42.5第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型1.3数据库系统的模式结构(重点)数据库系统的三级模式结构数据库系统模式的概念数据库系统的三级模式结构数据库系统的二级映像与数据独立性数据库系统的三级模式与二级映像的优点1.3数据库系统的模式结构可以从多种不同的角度考查数据库系统的结构。从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构;从数据库最终用户的角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器结构和浏览器/服务器结构,这是数据库系统外部的体系结构。1.3数据库系统模式的概念模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。例如:学生记录定义为(学号、姓名、性别、系别、年龄),称为记录型,而(001101,张立,男,计算机,20)则是该记录型的一个记录值。模式只是对记录型的描述,而与具体的值无关。数据库系统的三级模式结构数据库系统内部的体系结构从逻辑上划分为三级:外模式、模式和内模式;对用户而言,可以对应地分为:一般用户级模式、概念级模式和物理模式;应用1应用2应用n……外模式1……外模式m子模式/模式映象模式模式/内模式映象内模式数据库图1.8数据库系统的三级模式结构用户级概念级物理级模式(Schema)也称为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。模式处于三级结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序也无关,是整个数据库实际存储的抽象表示。一个数据库只有一个模式,是数据库的整体逻辑。外模式又称子模式或用户模式,是三级结构的最外层,是数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述。外模式一般是模式的子集,一个数据库就可以有多个外模式。外模式是保证数据库安全的一个有力措施。内模式又称存储模式,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层。是数据在数据库内部的表示方法。由多个存储记录组成,但并非物理层,不必关心具体的存储位置。数据库系统的三级模式结构一个数据库系统中,实际存在的只是物理级数据库,是数据访问的基础;概念级数据库是物理级数据库的一种抽象描述;用户级数据库是用户对数据库的接口。外模式可有多个,而模式、内模式只能各有一个。内模式是整个数据库实际存储的表示,而模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示数据库系统的二级映像与数据独立性数据库系统的三级模式是对数据的三个抽象级别,它使用户能逻辑地抽象地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给DBMS管理。为了能够在内部实现这三个抽象层次的联系和转换,DBMS在三级模式之间提供了二级映象功能。数据库系统的二级映像与数据独立性外模式/模式映像模式/内模式映像外模式/模式映像模式描述的是数据的全局逻辑结构,外模式描述的是数据局部逻辑结构;同一模式可以有任意多个外模式,每一个外模式都存在一个外模式/模式映像;确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系;保证了数据程序间的逻辑独立性。模式/内模式映像模式和内模式是唯一的,所以模式/内模式映像是唯一的;确定了数据的全局逻辑结构与存储结构之间的对应关系存储结构变化时,数据库管理员对模式/内模式映像作相应的变化,是模式保持不变确保了数据的物理独立性数据库系统的三级模式与二级映像的优点保证数据的独立性模式和内模式分开,保证了数据的物理独立性;外模式和模式分开,保证了数据的逻辑独立性。

简化了用户接口按照外模式编写应用程序或输入命令,不需要了解数据内部的存储结构有利于数据共享不同的外模式下可有多个用户共享系统中的数据,减少了数据冗余有利于数据的安全保密在外模式下根据需求进行操作,只能对限定的数据操作,保证了其他数据的安全。课堂提问1、P433.73.82、P411.11.21.31.81.101.111.143、P422.32.42.52.72.9第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型1.4数据库管理系统数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。数据库管理系统DBMS的主要功能DBMS的组成DBMS的数据存取的过程DBMS的主要功能1、数据定义

DBMS提供数据定义语言DDL(DataDefineLanguage),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映象,定义有关的约束条件,例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义完整性规则。DBMS的主要功能2.数据操纵

DBMS提供数据操纵语言DML(DataManipulationLanguage)实现对数据库的基本操作,包括检索、插入、修改、删除等。

SQL语言就是DML的一种。DBMS的主要功能3.数据库运行管理

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

DBMS负责对数据库中需要存放的各种数据如:数据字典、用户数据、存取路径等的组织、存储和管理工作,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间利用率和对数据库进行增、删、查和该的效率等。DBMS的组成DBMS是许多程序所组成的一个大型软件系统每个程序都有自己的功能共同完成DBMS的一件或几件工作。DBMS的组成语言编译处理程序系统运行控制程序系统建立、维护程序数据字典DBMS的数据存取的过程在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键的作用。DBMS对数据的存取通常需要以下几个步骤:用户使用某种特定的数据操作语言向DBMS发出存取请求;DBMS的数据存取的过程DBMS接受请求并解释转换成机器代码指令;DBMS依次检查外模式、外模式/模式映象、模式、模式/内模式映象及存储结构定义;DBMS对存储数据库执行必要的存取操作;从对数据库的存取操作中接受结果DBMS的数据存取的过程对得到的结果进行必要的处理,如格式转换等将处理的结果返回给用户上述存取过程中还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。课堂提问1.1.71.91.12第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型1.5数据模式数据模型的概念三个世界的划分及其有关概念数据模型的分类实体联系模型及E-R图数据模型的组成要素数据模型的概念数据模型是数据的框架,该框架描述了数据及其联系的组织方式、表达方式和存取路径,是数据库系统的核心和基础各种机器上实现的DBMS软件都基于某种数据模型它的数据结构直接影响到数据库系统的其他部分的性能,也是数据定义和数据操纵语言的基础是设计数据库的一项首要任务三个世界的划分及其有关概念1、三个世界的划分将现实世界的事物及联系抽象成信息世界的信息模型,然后再抽象成计算机世界的数据模型信息模型不依赖于具体的计算机系统,是计算机内部数据的抽象表示,是概念模型概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型三个世界的划分及其有关概念现实世界概念模型认识抽象DBMS支持的数据模型信息世界计算机世界现实世界三个世界的划分及其有关概念2、现实世界是客观存在的世界每个事物都有自己的特征或性质事务之间是有相互联系的三个世界的划分及其有关概念3、信息世界及其有关基本概念实体(Entity):客观存在并可以相互区别的事物 客观存在并且可以相互区别的“事物”称为实体。实体可以是可触及的对象,如一个学生,一本书,一辆汽车;也可以是抽象的事件,如一堂课,一次比赛等。三个世界的划分及其有关概念属性(Attributes):实体的某一特性称为属性,一个实体可以有多个属性。如学生实体有学号、姓名、年龄、性别、系等方面的属性。属性有"型"和“值”之分,"型"即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张立,20,男,计算机)这些属性值的集合表示了一个学生实体。三个世界的划分及其有关概念实体型(EntityType) 若干个属性型组成的集合可以表示一个实体的类型,简称实体型。如学生(学号,姓名,年龄,性别,系)就是一个实体型。实体集(EntitySet)

同型实体的集合称为实体集。如所有的学生、所有的课程等。三个世界的划分及其有关概念键(Key) 能唯一标识一个实体的属性或属性集称为实体的键。如学生的学号,学生的姓名可能有重名,不能作为学生实体的键。域(Domain) 属性值的取值范围称为该属性的域。如学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于40的整数,性别的域为(男,女)。三个世界的划分及其有关概念联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为实体型内部的联系和实体型之间的联系。三个世界的划分及其有关概念联系(Relationship)实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。反映实体型及其联系的结构形式称为实体模型,也称作信息模型,它是现实世界及其联系的抽象表示。三个世界的划分及其有关概念两个实体型之间的联系有如下三种类型:(1)一对一联系(1:1) 实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。如:班级与班长,观众与座位,病人与床位。三个世界的划分及其有关概念两个实体型之间的联系有如下三种类型:(2)一对多联系(1:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。如:班级与学生、公司与职员、省与市。三个世界的划分及其有关概念两个实体型之间的联系有如下三种类型:(3)多对多(m:n) 实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。如:教师与学生,学生与课程,工厂与产品。三个世界的划分及其有关概念实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。可以用图形来表示两个实体型之间的这三类联系

ABABAB(a)(b)(c)三个世界的划分及其有关概念4计算机世界中的基本概念 信息世界中的实体抽象为计算机世界中的数据,存储在计算机中。在计算机世界中,常用的主要概念如下:字段(Field) 对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。 如学生有学号、姓名、年龄、性别、系等字段。三个世界的划分及其有关概念4计算机世界中的基本概念记录(Record) 对应于每个实体的数据称为记录。 如一个学生(990001,张立,20,男,计算机)为一个记录。 文件(File) 对应于实体集的数据称为文件。 如所有学生的记录组成了一个学生文件。三个世界的划分及其有关概念4计算机世界中的基本概念关键字(key) 能唯一标识文件中每个记录的字段或字段集,称为记录的关键字。 如在学生文件中,学号可以唯一标识一个学生记录,因此,学号可以作为学生记录的关键字。三个世界的划分及其有关概念在计算机世界中,信息模型被抽象为数据模型,实体型内部的联系抽象为同一记录内部各字段间的联系,实体型之间的联系抽象为记录与记录之间的联系。现实世界是设计数据库的出发点,也是使用数据库的最终归宿。实体模型和数据模型是现实世界事物及其联系的两级抽象。而数据模型是实现数据库系统的根据。三个世界的划分及其有关概念通过以上的介绍,我们可总结出三个世界中各术语的对应关系:

现实世界--信息世界--计算机世界 事物总体--

实体集--

文件 事物个体--

实体--

记录 特征 --

属性--

字段 事物间联系--

实体模型--

数据模型数据模型的分类根据模型应用的不同目的,将模型划分为两类:概念模型逻辑模型和物理模型概念模型也成为信息模型是按用户的观点对数据和信息建模,不依赖与具体的计算机系统描述某个特定组织所关心的信息结构用于数据库设计时用户和数据库设计人员之间交流的工具实体模型,简称E-R模型逻辑模型和物理模型逻辑模型是按计算机的观点对数据建模,有严格的形式化定义逻辑模型主要用于DBMS的实现,即数据库是按照DBMS规定的数据模型组织和建立起来的。物理模型是对数据最底层的抽象,描述数据在磁盘或磁带上的存储方式和存取方式,是面向计算机系统的。实体联系模型及E-R图广泛应用于数据库设计工作中的一种概念模型,利用E-R图来表示实体及其之间的联系E-R图的基本成分包含实体型、属性和联系实体型:用矩形框表示,框内注明实体名称属性:用椭圆表示,框内标注属性名称,并用无向边与有关实体相连联系:联系用菱形表示,框内标注联系名称,并用无向边与有关实体相连,同时在无向边旁标上联系的类型实体联系模型及E-R图课程选修学号学号学号学号学号学号学号学号学号学生nm数据模型的组成要素由于数据模型是现实世界中的事物及其联系的一种模拟和抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。数据结构:数据库的组成对象以及对象间的联系数据操作:数据库中的各种数据允许执行的操作的集合数据的完整性约束:保证数据的正确、有效和相容课堂提问1.1.51.62.62.112.143.11第一章数据库系统概述1.1数据库系统的产生、发展和当前流行的数据库1.2数据库数据库系统的组成1.3数据库系统的模式结构1.4数据库管理系统1.5数据模式1.6四种数据模型四种数据模型层次模型网状模型关系模型面向对象模型关系模型关系模型是发展较晚的一种模型,1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。他发表了题为“大型共享数据银行数据的关系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究关系模型他为此获得了1981年的图灵奖。此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。1977年IBM公司研制的关系数据库的代表SystemR开始运行,其后又进行了不断的改进和扩充,出现了基于SystemR的数据库系统SQL/DB。关系模型20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Acess,大型数据库系统Oracle、Informix、Sybase、SQLServer等都是关系数据库系统。关系模型1.关系模型的数据结构以及有关概念关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。关系模型1.关系模型的数据结构以及有关概念图1.22给出了教学数据库的关系模型及其实例,包含五个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC,分别对应五张表。下面以图1.22为例,介绍关系模型中所涉及的一些基概念。T(教师关系)TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别T1李力男47教授15003000计算机T2王平女28讲师8001200信息T3刘伟男30讲师9001200计算机T4张雪女51教授16003000自动化T5张兰女39副教授13002000信息S(学生关系)SNO学号SN姓名SEX性别AGE年龄DEPT系别S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化C(课程关系)CNO课程号CN课程名CT课时C1程序设计60C2微机原理80C3数字逻辑60C4数据结构80C5数据库60C6编译原理60C7操作系统60SC(选课关系)TC(授课关系)SNO学号CNO课程号SCORE成绩

TNO教师号CNO课程号S1C190

T1C1S1C285

T1C4S2C557

T2C5S2C680

T3C1S2C7

T3C5S2C570

T4C2S3C10

T4C3S3C270

T5C5S3C485

T5C7S4C193

S4C285

S4C383

S5C289

关系模型(1)关系(Relation) 一个关系对应一张二维表(2)元组(Tuple) 表格中的一行,如S表中的一个学生记录即为一个元组。关系模型(3)属性(Attribute) 表格中的一列,相当于记录中的一个字段,如S表中有五个属性(学号,姓名,性别,年龄,系别)。(4)关键字(Key) 可唯一标识元组的属性或属性集,也称为关系键或主码,如S表中学号可以唯一确定一个学生,为学生关系的主码。(5)域(Domain) 属性的取值范围,如年龄的域是(14~40),性别的域是(男,女)。(6)分量 每一行对应的列的属性值,即元组中的一个属性值,如学号、姓名、年龄等均是一个分量。关系模型(7)关系模式对关系的描述,一般表示为:关系名(属性1,属性2,……属性n),如:学生(学号,姓名,性别,年龄,系别)。在关系模型中,实体是用关系来表示的,如:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)实体间的关系也是用关系来表示的,如:学生和课程之间的关系选课关系(学号,课程号,成绩)关系模型关系模型(8)关系实例:是关系模式的“值”,是关系的数据,相当于二维表中的数据关系模型2.关系模型的数据操纵与完整性约束数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。关系模型3、关系模型的优缺点关系模型的优点主要有:(1)与非关系模型不同,它有较强的数学理论根据。(2)数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。关系模型3、关系模型的优缺点关系模型的缺点主要有:由于存取路径对用户透明,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。第二章关系数据库关系数据库是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。第二章关系数据库2.1关系模型的数据结构及其形式化定义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={李力,王平,刘伟} 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、

笛卡尔积(CartesianProduct)

给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。2.1.1关系的形式化定义以及有关概念2、

笛卡尔积(CartesianProduct)

其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)2.每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。2.1.1关系的形式化定义以及有关概念2、

笛卡尔积(CartesianProduct) 3.若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累乘之积,即

M=2.1.1关系的形式化定义以及有关概念2、

笛卡尔积(CartesianProduct)

例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组其基数M=m1×m2=3*2=6元组的个数为62.1.1关系的形式化定义以及有关概念2、

笛卡尔积(CartesianProduct) 4.笛卡尔积可用二维表的形式表示表2.1D1和D2的笛卡尔积姓名性别李力男李力女王平男王平女刘伟男刘伟女2.1.1关系的形式化定义以及有关概念2、

笛卡尔积(CartesianProduct)

笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。2.1.1关系的形式化定义以及有关概念3、

关系(Relation)

笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用R(D1,D2……Dn)表示。

如上例D1×D2笛卡尔积的子集可以构成教师关系T1,如下表:2.1.1关系的形式化定义以及有关概念3、

关系(Relation)

姓名性别李力男王平女刘伟男姓名性别李力男李力女王平男王平女刘伟男刘伟女2.1.1关系的形式化定义以及有关概念3、

关系(Relation)

1)

R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。…当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表示,关系中元组个数是关系的基数。如(李力,男),(王平,女),(刘伟,男)为三个元组,关系T的基数为3。2.1.1关系的形式化定义以及有关概念3、

关系(Relation)

3)可以把关系看成一个二维表。其中,(1)表的框架由域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、

关系(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关系模式2.1.4关系数据库与关系数据库模式2.1.2关系的性质尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。

严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:2.1.2关系的性质关系中不允许出现相同的元组。 因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。2.1.2关系的性质2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。

因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。2.1.2关系的性质3.关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。 交换时,应连同属性名一起交换,否则将得到不同的关系。性别姓名男李力女王平男刘伟姓名性别李力男王平女刘伟男2.1.2关系的性质4.同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。5.关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。2.1.2关系的性质6.关系中每一分量必须是不可分的数据项。 或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。

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.候选键(CandidateKey)

能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(CandidateKey),也称候选关键字或候选码。2.2.1候选键与主关系键1.候选键(CandidateKey)

设关系R有属性A1,A2,……An,其属性集K=(Ai,Aj,……Ak),当且仅当满足下列条件时,K被称为候选键:2.2.1候选键与主关系键1.候选键(CandidateKey)唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。最小性(Minimally):组成关系键的属性集(Ai,Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质。2.2.1候选键与主关系键2.主关系键(PrimaryKey)

如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(PrimaryKey),或简称为主键、主码、关系键、关键字。2.2.1候选键与主关系键2.主关系键(PrimaryKey)

每个关系必需选择一个主关系键,选定以后,不能随意改变。每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。2.2.1候选键与主关系键3.主属性与非码属性主属性(PrimeAttribute):包含在主码中的的各属性称为主属性。非码属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非码属性。2.2.1候选键与主关系键3.主属性与非码属性在最简单的情况下,一个候选码只包含一个属性;在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。2.2关系的键与关系的完整性2.2.1候选键与主关系键2.2.2外部关系键2.2.3关系的完整性2.2.2外部关系键如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreignkey)。关系R2为参照关系(referencingrelation),关系R1为被参照关系(referencedrelation)。被参照关系的主码和参照关系的外码必须定义在同一个域上。2.2.2外部关系键TNO教师号CNO课程号T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C7TNTNOPROF李力T1教授王平T2讲师刘伟T3讲师张雪T4教授张兰T5副教授2.2关系的键与关系的完整性2.2.1候选键与主关系键2.2.2外部关系键2.2.3关系的完整性2.2.3关系的完整性为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:实体完整性参照完整性用户自定义的完整性实体完整性实体完整性是指主关系键的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主关系键来唯一标识元组。实体完整性如果主关系键中的值为空或部分为空,即主属性为空,则不符合关系键的定义条件,不能唯一标识元组及与其相对应的实体。这就说明存在不可区分的实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此主关系键的值不能为空或部分为空。参照完整性如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。2.2.2外部关系键TNO教师号CNO课程号T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C7TNTNOPROF李力T1教授王平T2讲师刘伟T3讲师张雪T4教授张兰T5副教授参照完整性SNO学号SN姓名SEX性别AGE年龄DEPT所在系

DEPT所在系ADDR地址S1赵亦女17计算机

计算机1号楼S2钱尔男18信息

信息1号楼…

自动化2号楼S11王威男19

S(学生关系)D(系别关系)参照完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性。除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户定义完整性。用户自定义完整性用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。第二章关系数据库2.1关系模型的数据结构及其形式化定义2.2关系的键与关系的完整性2.3关系代数2.4关系演算2.3

关系代数关系模型由关系数据结构、关系操作和关系完整性约束三部分组成;关系操作包括查询操作和更新操作;关系操作采用集合操作方式,操作的对象和结果都是集合,也称为一次一集合。2.3

关系代数关系代数:用关系的运算来表达查询要求;关系演算:用谓词来表达查询要求元组关系演算:谓词变元的基本对象是元组变量域关系演算:谓词变元的基本对象是元组变量2.3

关系代数关系代数:用关系的运算来表达查询要求;关系演算:用谓词来表达查询要求元组关系演算:谓词变元的基本对象是元组变量域关系演算:谓词变元的基本对象是元组变量2.3

关系代数传统的集合运算:将关系看作元组的集合;专门集合运算:涉及行运算和列运算传统的集合运算传统的集合运算:将关系看作元组的集合;专门集合运算:涉及行运算和列运算传统的集合运算定义2.8设给定两个关系R、S,若满足:(1)

具有相同的度n;(2)

R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。传统的集合运算ABCABCa1b1c1a1b1c1a1b1c2a2b2c1a2b2c1a2b3c2RS1.并(Union)关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:

R∪S={t|t∈R∨t∈S}对于关系数据库,记录的插入和添加可通过并运算实现。1.并(Union)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c1a2b2c1a2b3c2a1b1c2R∪S2.差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:

R-S={t|t∈R∧┐t∈S}通过差运算,可实现关系数据库记录的删除。2.差(Difference)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c2R-S3.交(Intersection)关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:

R∩S={t|t∈Rt∈S}如果两个关系没有相同的元组,那么它们的交为空。3.交(Intersection)两个关系的并和差运算为基本运算(即不能用其他运算表达的运算)而交运算为非基本运算,交运算可以用差运算来表示:

R∩S=R-(R-S)3.交(Intersection)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c2R∩

Sa2b2c14.广义笛卡尔积(ExtendedCartesianProduct)两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合元组的前n列是关系R的一个元组,后m列是关系S的一个元组若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作

R×S={tr⌒ts|tr∈R,∧ts∈S}4.广义笛卡尔积(ExtendedCartesianProduct)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSR×

SABCABCa1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2专门集合运算由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。在讲专门的关系运算之前,为叙述上的方便先引入几个概念。专门集合运算设关系模式为R(A1,A2,……An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。专门集合运算若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,则A称为属性列或域列,Ã则表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的属性组。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元组t在属性列A上诸分量的集合。专门集合运算R为n目关系,S为m目关系,tr∈R,ts∈S,trts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。专门集合运算给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的象集(imageset),为Zx={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的诸元组在Z上分量的集合。1、选取(Selection)选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作:σF(R)={t|t∈R∧F(t)为真}其中:1、选取(Selection)σ为选取运算符F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符(>,≥,<,≤,=,≠)和逻辑运算符(∨∧┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。1、选取(Selection)选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。例1查询计算机系的全体学生:σDEPT=’计算机’(S)或σ5=’计算机’(S)(其中5为DEPT的属性序号)S(学生关系)SNO学号SN姓名SEX性别AGE年龄DEPT系别S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化1、选取(Selection)SNOSNSEXAGEDEPTS1赵亦女17计算机S5周武男19计算机σDEPT=’计算机’(S)例2查询工资高于1000元的男教师。σ(SAL>1000)∧(SEX=’男’)(T)T(教师关系)TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别T1李力男47教授15003000计算机T2王平女28讲师8001200信息T3刘伟男30讲师9001200计算机T4张雪女51教授16003000自动化T5张兰女39副教授13002000信息1、选取(Selection)TNOTNSEXAGEPROFSALCOMMDEPTT1李力男47教授15003000计算机2.投影(Projection)投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t[A]|t∈R}2.投影(Projection)其中:A为R中的属性列Π为投影运算符。2.投影(Projection)从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。2.投影(Projection)例查询教师的姓名及其职称。ΠTN,TNO,PROF(T)或Π2,1,5(T)(其中2,1,5分别为TN、TNO和PROF的属性序号)T(教师关系)TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别T1李力男47教授15003000计算机T2王平女28讲师8001200信息T3刘伟男30讲师9001200计算机T4张雪女51教授16003000自动化T5张兰女39副教授13002000信息2.投影(Projection)TNTNOPROF李力T1教授王平T2讲师刘伟T3讲师张雪T4教授张兰T5副教授投影运算可以改变关系的属性次序2.投影(Projection)例2.7查询教师关系中有哪些系。ΠDEPT(T)T(教师关系)TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别T1李力男47教授15003000计算机T2王平女28讲师8001200信息T3刘伟男30讲师9001200计算机T4张雪女51教授16003000自动化T5张兰女39副教授13002000信息2.投影(Projection)投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。DEPT计算机信息自动化2.投影(Projection)例查询讲授C5课程的教师号ΠTNO(σCNO=’C5’(TC))TC(授课关系)TNO教师号CNO课程号T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C72.投影(Projection)结果为:选取运算和投影运算相结合,先在授课表中选取满足条件的元组,再于TNO属性上进行投影。TNOT2T3T5TNOCNOT2C5T3C5T5C53.连接(Join)连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。设关系R(A1,A2,……An)及S(B1,B2,……Bm),连接属性集X包含于{A1,A2,……An},及Y包含于{B1,B2,……Bm}3.连接(Join)X与Y中属性列数目相等,且相对应属性有共同的域。若Z={A1,A2……An}/X(/X:去掉X之外的属性)及W={B1,B2……Bm}/Y,则R及S可表示为R(Z,X),S(W,Y);3.连接(Join)关系R和S在连接属性X和Y上的连接,就是以R×S笛卡尔积中,选取X属性列上的分量与Y属性列上的分量满足给定θ比较条件的那些元组在R×S上选取在连接属性X,Y上满足θ条件的子集,组成新的关系新关系的度为n+m。3.连接(Join)记作:R∞S={tr⌒ts

|tr∈R∧ts∈S∧

tr[X]θts[Y]为真}其中,∞是连接运算符,θ为算术比较运算符,也称θ连接;XθY3.连接(Join)XθY为连接条件;θ为“=”时,称为等值连接;θ为“<”时,称为小于连接;θ为“>”时,称为大于连接。连接运算为非基本运算,可以用选取运算和广义笛卡尔积运算来表示:R∞S=σxθy(R×S)3.连接(Join)ABCa1b12a1b24a2b36a2b48BDb15b26b37b38

RS大于连接(C>D)AR.BCS.BDa2b36b15a2b48b15a2b48b26a2b48b37等值连接(C=D)BDb15b26b37b38ABCa1b12a1b24a2b36a2b48

RSAR.BCS.BDa2b36b26a2b48b383.

温馨提示

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

评论

0/150

提交评论