作者:圣才电子书
出版社:圣才电子书
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
王珊《数据库系统概论》(第4版)【教材精讲+考研真题解析】讲义与视频课程【28小时高清视频】试读:
视频讲解教师简介
李书钦,北方工业大学计算机专业讲师,研究方向为数据库技术、计算机网络、虚拟现实技术,主要讲授数据库原理、计算机网络、C语言编程、面向对象编程等多门课程,具有丰富的授课实践和授课经验,深受学生好评。在科研方面,参与多项重点项目和重大课题,发表多篇EI检索论文,能将自身实践经验和理论知识相结合。
授课特点:授课特点:授课重点突出,思路清晰,思维严谨,讲解生动详细,富有感染力。
第一部分 教材精讲[视频讲解]
第1章 绪 论[视频讲解]
本章介绍数据库系统的基本概念,包括数据管理的发展过程、数据库系统的组成部分等。从中可以学习到为什么要使用数据库技术、数据库技术的重要性。本章是后面各章节的准备和基础。
1.1 数据库系统概述
1.1.1 数据、数据库、数据库管理系统、数据库系统一、数据(Data)
数据是数据库中存储的基本对象。
可以对数据做如下定义:描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。
二、数据库(DataBase,简称DB)
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库数据具有永久存储、有组织和可共享三个基本特点。
三、数据库管理系统(DataBase Management System,DBMS)
数据库管理系统的主要功能包括:
1.数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
2.数据组织、存储和管理
DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
3.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
4.数据库的事务管理和运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
5.数据库的建立和维护功能
数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。
四、数据库系统(DataBase System,DBS)
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库系统可以用图1-1表示。
图1-1 数据库系统
数据库系统在整个计算机系统中的地位如图1-2所示。
图1-2 数据库在计算机系统中的地位1.1.2 数据管理技术的产生和发展
数据管理技术经历了人工管理、文件系统、数据库系统3个阶段。这3个阶段的特点及其比较如表1-1所示。表1-1 数据管理3个阶段的比较
一、人工管理阶段
人工管理数据具有如下特点:(1)数据不保存;(2)应用程序管理数据;(3)数据不共享;(4)数据不具有独立性。
缺点:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这就加重了程序员的负担。
二、文件系统阶段
用文件系统管理数据具有如下特点:(1)数据可以长期保存;(2)由文件系统管理数据。
缺点:(1)数据共享性差,冗余度大;(2)数据独立性差。
三、数据库系统阶段
用数据库系统管理数据具有如下特点:(1)数据结构化;(2)数据的共享性高,冗余度低,易扩充;(3)数据独立性高;(4)数据由DBMS统一管理和控制;
1.2 数据模型
数据模型(Data Model)也是一种模型,它是对现实世界数据特征的抽象。
数据模型就是现实世界的模拟。1.2.1 两类数据模型
数据模型应满足三方面要求:
能比较真实地模拟现实世界;
容易为人所理解;
便于在计算机上实现。
根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。
第一类是概念模型(Conceptual Model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
第二类是逻辑模型和物理模型,其中逻辑模型主要包括层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)和对象关系模型(Object Relational Model)等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。物理模型是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
图1-3 现实世界中客观对象的抽象过程1.2.2 数据模型的组成要素
数据模型通常由数据结构、数据操作和完整性约束三部分组成。
一、数据结构
数据结构描述数据库的组成对象以及对象之间的联系。
数据结构是所描述的对象类型的集合,是对系统静态特性的描述。
二、数据操作
数据库主要有查询和更新(包括插入、删除、修改)两大类操作。
数据操作是对系统动态特性的描述。
三、数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
例如,在某大学的数据库中规定教授的退休年龄是65周岁,男职工的退休年龄是60周岁,女职工的退休年龄是55周岁等。1.2.3 概念模型
概念模型是现实世界到机器世界的一个中间层次。
①概念模型用于信息世界的建模;
②现实世界到信息世界的第一层抽象;
③数据库设计人员进行数据库设计的有力工具;
④数据库设计人员和用户之间进行交流的语言。
概念模型要求:
①具有较强的语义表达能力;
②能够方便、直接地表达应用中的各种语义知识;
③简单、清晰、易于用户理解。
一、信息世界中的基本概念
1实体(Entity)
客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。
例如,一个职工、一个学生、一个部门、一门课、学生的一次选课等都是实体。
2属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
例如,学生实体可以由学号、姓名、性别、出生年月、所在院系、入学时间等属性组成。(94002268,张山,男,197605,计算机系,1994)这些属性组合起来表征了一个学生。
3码(Key)
惟一标识实体的属性集称为码。
例如,学号是学生实体的码。
4域(Domain)
域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
例如,学号的域为8位整数,学生年龄的域为整数,性别的域为(男,女)。
5实体型(Entity Type)
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
例如,学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。
6实体集(Entity Set)
同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。
7联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
二、两个实体型之间的联系
1一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。
例如,学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。1:1联系
2一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。1:n联系
3多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。
例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程里学生之间具有多对多联系。m:n联系
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
三、两个以上的实体型之间的联系
一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。
若实体型E,E,…,E之间存在联系,对于实体型E(j=1,2,12ni…,i-1,i+1,…,n)中的给定实体,最多只和E中的一个实体相i联系,则说E与E,E,…,E-1,E+1,…,E之间能联系是一i12iin对多的。请读者给出多实体型之间一对一、多对多联系的定义。
例如,对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的。两个以上实体型间1:n联系
又如,有3个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目、零件三者之间是多对多的联系。两个以上实体型间m:n联系
四、单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。
例如,职工实体型内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。单个实体型内部1:n联系
五、概念模型的一种表示方法:实体-联系图(E-R图)方法
E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
例如,学生实体具有学号、姓名、性别、出生年份、系、入学时间等属性,用E-R图表示如图1-4所示。
图1-4 学生实体及属性
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。
需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
例如,如果用“供应量”来描述联系“供应”的属性,表示某供应商供应了多少数量的零件给某个项目。那么这3个实体及其之间联系的E-R图表示可如图1-5所示。
图1-5 联系的属性
六、一个实例
下面用E-R图来表示某个工厂物资管理的概念模型。
物资管理涉及的实体有:
①仓库属性有仓库号、面积、电话号码;
②零件属性有零件号、名称、规格、单价、描述;
③供应商属性有供应商号、姓名、地址、电话号码、账号;
④项目属性有项目号、预算、开工日期;
⑤职工属性有职工号、姓名、年龄、职称。
这些实体之间的联系如下:(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之间是一对多的联系。(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系。(4)供应商、项目和零件三者之间具有多对多的联系。即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。
下面给出此工厂的物资管理E-R图:
图1-6(a) 实体及属性
图1-6(b) 实体及其联系
图1-6(c) 完整的实体-联系图1.2.4 最常用的数据模型
目前,数据库领域中最常用的逻辑数据模型有:层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)、对象关系模型(Object Relational Model)。1.2.5 关系模型
关系模型是目前最重要的一种数据模型。
一、关系数据模型的数据结构
·关系(Relation):一个关系对应通常说的一张表,如下表中的这张学生登记表;
·元组(Tuple):表中的一行即为一个元组;
·属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
如下表有6列,对应6个属性(学号,姓名,年龄,性别,系名和年级):
·码(Key):也称为码键。表中的某个属性组,它可以惟一确定一个元组;如上表中的学号,可以惟一确定一个学生,也就成为本关系的码;
·域(Domain):属性的取值范围,如人的年龄一般在1~150岁之间;
·分量:元组中的一个属性值;
·关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)。
例如,上面的关系可描述为:学生(学号,姓名,年龄,性别,系名,年级)
在关系模型中,实体以及实体间的联系都是用关系来表示。
例如,学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:
学生(学号,姓名,年龄,性别,系名,年级)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
二、关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括三大类:
①实体完整性;
②参照完整性;
③用户定义的完整性。
三、关系数据模型的优点
1关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
2关系模型的概念单一。
3关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。
1.3 数据库系统结构
1.3.1 数据库系统模式的概念模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。
例如:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录(如果某校有10000个学生,则有10000个学生记录)、学校开设的所有课程的记录和所有学生选课的记录。1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,如图1-7所示。
图1-7 数据库系统的三级模式结构
一、模式(Schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,COBOL,FOR-TRAN)无关。
二、外模式(External Schema)
外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。
同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
三、内模式(Internal Schema)
内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。1.3.3 数据库的二级映像功能与数据独立性
数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。数据库管理系统在这三级模式之间提供了两层映像:
·外模式/模式映像
·模式/内模式映像
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
一、外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
二、模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是惟一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
例如,当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4 数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。
一、硬件平台及数据库
硬件资源要求:(1)要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序;(2)有足够的大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)作数据备份;(3)要求系统有较高的通道能力,以提高数据传送率。
二、软件
数据库系统的软件主要包括:(1)DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。(2)支持DBMS运行的操作系统。(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。(4)以DBMS为核心的应用开发工具。(5)为特定应用环境开发的数据库应用系统。
三、人员
开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如图1-8所示。
图1-8 各种人员的数据视图
1数据库管理员(DataBase Administrator,DBA)
需要有专门的管理机构来监督和管理数据库系统。DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统。具体职责包括:(1)决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策;(2)决定数据库的存储结构和存取策略;(3)定义数据的安全性要求和完整性约束条件;(4)监控数据库的使用和运行;(5)数据库的改进和重组重构。
2系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。
数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。
3应用程序员
应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
4用户
这里用户是指最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。
第2章 关系数据库[视频讲解]
关系数据库简介
提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型
·E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, 《Communication of the ACM》,1970
·之后,提出了关系代数和关系演算的概念
·1972年提出了关系的第一、第二、第三范式
·1974年提出了关系的BC范式
关系数据库应用数学方法来处理数据库中的数据
80年代后,关系数据库系统成为最重要、最流行的数据库系统
·典型实验系统
System R
University INGRES
·典型商用系统
ORACLE
SYBASE
INFORMIX
DB2
INGRES
2.1 关系数据结构及形式化定义
2.1.1 关系·单一的数据结构——关系
现实世界的实体以及实体间的各种联系均用关系来表示
·逻辑结构——二维表
从用户角度,关系模型中数据的逻辑结构是一张二维表
·建立在集合代数的基础上
1域(Domain)
域是一组具有相同数据类型的值的集合。
例:
整数
实数
介于某个取值范围的整数
长度指定长度的字符串集合
{“男”,“女”}
……
2笛卡尔积(Cartesian Product)
·笛卡尔积
给定一组域D,D,…,D,这些域可以有相同的。12n
D,D,…,D的笛卡尔积为:12n
D×D×…×D={(d,d,…,d)|d∈D,i=1,2,…,n}。12n12nii
所有域的所有取值的一个组合。
不能重复。
例:给出三个域:
D=SUPERVISOR={张清玫,刘逸}1
D=SPECIALITY={计算机专业,信息专业}2
D=POSTGRADUATE={李勇,刘晨,王敏}3
则D,D,D的笛卡尔积为:123
D×D×D={(张清玫,计算机专业,李勇),(张清玫,计算123机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}。
·元组(Tuple)
笛卡尔积中每一个元素(d,d,…,d)称作一个n元组(n-12ntuple)或简称元组(Tuple)。(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组。
·分量(Component)
笛卡尔积元素(d,d,…,d)中的每一个值d称作一个分12ni量。
张清玫、计算机专业、李勇、刘晨等都是分量。
·基数(Cardinal number)
若D(i=1,2,…,n)为有限集,其基数为m(i=1,2,…,iin),则D×D×…×D的基数M为:12n
·笛卡尔积的表示方法
笛卡尔积可表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。
例子:
D=SUPERVISOR(张清玫,刘逸);1
D=SPECIALITY(计算机专业,信息专业);2
D=POSTGRADUATE(李勇,刘晨,王敏)。3表2-1 D,D,D的笛卡尔积123
3关系(Relation)(1)关系
D×D×…×D的子集称做在域D,D,…,D上的关系,表示为12n12nR(D,D,…,D)。12n
R:关系名
n:关系的目或度(Degree)(2)元组
关系中的每个元素是关系中的元组,通常用t表示。(3)单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)或一元关系;
当n=2时,称该关系为二元关系(Binary relation)。(4)关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。表2-2 SAP关系(5)属性
·关系中不同列可以对应相同的域
·为了加以区分,必须对每列起一个名字,称为属性(Attribute)
·n目关系必有n个属性(6)码
·候选码(Candidate key)
若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码。
简单的情况:候选码只包含一个属性。
·全码(All-key)
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。
·主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
·主属性
候选码的诸属性称为主属性(Prime attribute)。
·非主属性
不包含在任何侯选码中的属性(Non-Prime attribute)或非码属性(Non-key attribute)。
D,D,…,D的笛卡尔积的某个子集才有实际含义。12n
例:表2-1的笛卡尔积没有实际意义,取出有实际意义的元组来构造关系。
关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
假设:导师与专业:1:1,导师与研究生:1:n
主码:POSTGRADUATE(假设研究生不会重名)
SAP关系可以包含三个元组:{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏)}(7)三类关系
①基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示。
②查询表
查询结果对应的表。
③视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。(8)基本关系的性质
①列是同质的(Homogeneous);
②不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名;
③列的顺序无所谓,列的次序可以任意交换;
④任意两个元组的候选码不能相同;
⑤行的顺序无所谓,行的次序可以任意交换;
⑥分量必须取原子值,这是规范条件中最基本的一条。2.1.2 关系模式
1什么是关系模式
·关系模式(Relation Schema)是型
·关系是值
·关系模式是对关系的描述(1)元组集合的结构
①属性构成
②属性来自的域
③属性与域之间的映象关系(2)元组语义以及完整性约束条件(3)属性间的数据依赖关系集合
2定义关系模式
关系模式可以形式化地表示为:
R(U,D,DOM,F)
R:关系名
U:组成该关系的属性名集合
D:属性组U中属性所来自的域
DOM:属性向域的映象集合
F:属性间的数据依赖关系集合
例:导师和研究生出自同一个域——人。取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:
DOM(SUPERVISOR-PERSON)=DOM(POSTGRADUATE-PERSON)=PERSON
关系模式通常可以简记为:
R(U)或R(A,A,…,A)12n
R:关系名
A,A,…,A:属性名12n
注:域名及属性向域的映象常常直接说明为属性的类型、长度。
3关系模式与关系
·关系模式
对关系的描述
静态的、稳定的
·关系
关系模式在某一时刻的状态或内容
动态的、随时间不断变化的
·关系模式和关系往往统称为关系
通过上下文加以区别2.1.3 关系数据库
·关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
·关系数据库的型与值(1)关系数据库的型:关系数据库模式,对关系数据库的描述。(2)关系数据库模式包括:若干域的定义,在这些域上定义的若干关系模式。(3)关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库。
2.2 关系数据结构
2.2.1 基本关系操作·常用的关系操作
查询:选择、投影、连接、除、并、交、差
数据更新:插入、删除、修改
查询的表达能力是其中最主要的部分。
选择、投影、并、差、笛卡尔积是5种基本操作。
·关系操作的特点
集合操作方式:操作的对象和结果都是集合,一次一集合的方式。2.2.2 关系数据库语言的分类
·关系代数语言
用对关系的运算来表达查询要求
代表:ISBL
·关系演算语言
用谓词来表达查询要求
①元组关系演算语言
谓词变元的基本对象是元组变量
代表:APLHA,QUEL
②域关系演算语言
谓词变元的基本对象是域变量
代表:QBE
·具有关系代数和关系演算双重特点的语言
代表:SQL(Structured Query Language)
2.3 关系的完整性
2.3.1 关系的三类完整性约束·实体完整性和参照完整性:
关系模型必须满足的完整性约束条件
称为关系的两个不变性,应该由关系系统自动支持
·用户定义的完整性:
应用领域需要遵循的约束条件,体现了具体领域中的语义约束2.3.2 实体完整性【规则2.1】实体完整性规则(Entity Integrity)
若属性A是基本关系R的主属性,则属性A不能取空值
例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
POSTGRADUATE:主码(假设研究生不会重名)不能取空值。
实体完整性规则的说明:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。
主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。
注意:实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
例:选修(学号,课程号,成绩)“学号、课程号”为主码,则学号和课程号两个属性都不能取空值。2.3.3 参照完整性
1关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,存在着关系与关系间的引用。【例1】学生实体、专业实体
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
·学生关系引用了专业关系的主码“专业号”。
·学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。【例2】学生、课程、学生与课程之间的多对多联系
学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
学生:
课程:
学生选课:【例3】学生实体及其内部的一对多联系
学生(学号,姓名,性别,专业号,年龄,班长)
·“学号”是主码,“班长”是外码,它引用了本关系的“学号”;
·“班长”必须是确实存在的学生的学号。
2外码(Foreign Key)
·设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码K相对应,则称F是基本关系R的外码s
·基本关系R称为参照关系(Referencing Relation)
·基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)【例1】学生关系的“专业号”与专业关系的主码“专业号”相对应
·“专业号”属性是学生关系的外码;
·专业关系是被参照关系,学生关系为参照关系。【例2】选修关系的“学号”与学生关系的主码“学号”相对应;
选修关系的“课程号”与课程关系的主码“课程号”相对应。
·“学号”和“课程号”是选修关系的外码;
·学生关系和课程关系均为被参照关系;
·选修关系为参照关系。【例3】“班长”与本身的主码“学号”相对应。
·“班长”是外码;
·学生关系既是参照关系也是被参照关系。
试读结束[说明:试读内容隐藏了图片]