数据库系统概论第一二章

第一章

数据库

数据库是长期储存在计算机内有组织可共享的大量数据的集合。

数据库具有永久存储有组织可共享三个基本特定。

数据库管理系统(DBMS)

主要功能包括:1.数据定义功能 2.数据组织、存储和管理 3.数据操纵功能(查询、插入、删除和修改)4.数据库的事务管理和运行管理 5.数据库的建立的维护功能

数据库系统(DBS)

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

数据模型

数据模型是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。

数据模型应满足三方面要求:

  1. 能比较真实的模拟现实世界;
  2. 容易为人所理解;
  3. 便于在计算机上实现。

根据模型应用的不同目的,可分为两类:第一类是概念模型。概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。第二类是逻辑模型和物理模型。

逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

物理模型是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。

数据模型的组成要素

数据模型通常由数据结构、数据操作和完整性约束三部分组成。

信息世界的基本概念

  1. 实体

客观存在并可相互区别的事物称为实体。实体剋是具体的人、事、物,也可以是抽象的概念或联系。

  1. 属性

实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

  1. 码(关键字)

唯一标识实体的属性集称为码。

域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

  1. 实体型

具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。(学生)

  1. 实体集

同一类型的实体的集合称为实体集。(全体学生)

  1. 联系

在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。

实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。

两个实体型之间的联系

  1. 一对一联系(1:1)

如果对于实体集A中的每一个实体,实体集B中至多由一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。

例:学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。

  1. 一对多联系(1:n)

如果对于实体集A中的每一个实体,实体集B中由n个实体(n>=0)与之联系,反之对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。

例:一个班级中由若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。(学生组成班级)

  1. 多对多联系(m:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>=0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。

说明:实际上一对一是一对多的特例一对多又是多对多的特例

例:一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。

两个以上的实体型之间的联系

两个以上的实体型之间也存在着一对一、一对多、多对多联系。

例:对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的。

有三个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目和零件三者之间的关系是多对多的联系。

单个实体型内的联系

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。

概念模型的一种表示方法:实体-联系图(E-R

E-R图提供了表示实体型、属性和联系的方法。

实体型:用矩形表示,矩形框内写明实体名。

属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁边标上联系的类型(1:1,1:n或m:n)。

例:用E-R图来表示某个工厂物资管理的概念模型。

物资管理涉及的实体有:

  1. 仓库属性有仓库号、面积、电话号码;
  2. 零件属性有零件号、名称、规格、单价、描述;
  3. 供应商属性有供应商号、姓名、地址、电话号码;
  4. 项目属性有项目号、预算、开工日期;
  5. 职工属性有职工号、姓名、年龄、职称。

1.2.4 最常用的数据模型

目前,数据库领域中最常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。

1.2.5 关系模型

一、 关系数据模型的数据结构

关系(Relation):一个关系对应通常说的一张表,如下表中的这张学生登记表;

元组(Tuple):表中的一行即为一个元组:

属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。

码(Key):也称为码键。表中的某个属性组,它可以唯一确定一个元组;如上表中的学号,可以唯一确定一个学生,也就称为本关系的码;

(Domain):属性的取值范围,如人的年龄一般在1~150之间;

分量:元组中的一个属性值;

关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)。

例:学生登记表的关系可以描述为:学生(学号,姓名,年龄,性别,系名,年级)

例:学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:

学生(学号,姓名,年龄,性别,系名,年级)

课程(课程号,课程名,学分)

选修(学号,课程号,成绩)包含学生里的一个属性(学号)和课程里的一个属性(课程号)

二、 关系数据模型的操作与完整性约束

关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。

关系的完整性约束条件包括三大类:

  1. 实体完整性
  2. 参照完整性
  3. 用户定义的完整性

三、关系数据模型的优点

1. 关系模型与格式化模型不同,它是建立在严格的数据概念的基础上的。

2. 关系模型的概念单一

3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作

1.3 数据库系统结构

1.3.1 数据库系统模式的概念

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一模式可以有很多实例。

例:在学生选课数据库系统模式中,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录(如果某校有10000个学生,则有10000个学生记录)、学校开设的所有课程的记录和所有学生的选课记录。

1.3.2 数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。

  • 模式(Schema)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,COBOL,FOR-TRAN)无关。

  • 外模式(External Schema)

外模式也称子模式(Subshcema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

【注意】

  1. 外模式是模式的子集,一个数据库可以有多个外模式。
  2. 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
  3. 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据不可见的。
  • 内模式(Internal Schema)

内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

1.3.3数据库的二级映射功能与数据独立性

数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中地具体表示方式与存储方式。

数据库管理系统在这三级模式之间提供了两层映像:

外模式/模式映像

模式/内模式映像

两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

1.4数据库系统的组成

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。

  • 硬件平台及数据库

硬件资源要求:

  1. 要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序;
  2. 要足够的大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)作为数据备份;
  3. 要求系统有较高的通道能力,以提高数据传送率。
  • 软件

数据库系统的软件主要包括:

  1. DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。
  2. 支持DBMS运行的操作系统。
  3. 具有与数据库接口的高级语言及编译系统,便于开发应用程序。
  4. 以DBMS为核心的应用开发工具。
  5. 为特定应用环境开发的数据库应用系统。
  • 人员

开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员设计不同的数据抽象级别,具有不同的数据视图。

  1. 数据库管理员(DataBase Administrator, DBA

需要有专门的管理结构来监督和管理数据库系统。DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统。具体职责包括:

  1. 决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策;
  2. 决定数据库的存储结构和存取策略;
  3. 定义数据的安全性要求和完整性约束条件;
  4. 监控数据库的使用和运行;
  5. 数据库的改进和重组重构。
  1. 系统分析员和数据库设计人员

系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。

数据库设计人员负责数据库中的数据的确定和数据库系统各级模式的设计。

  1. 应用程序员

应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

  1. 用户

这里用户是最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。

第2章 关系数据库

2.1关系数据结构及其形式化定义

2.1.1 关系

单一的数据结构——关系

现实世界的实体以及实体间的各种联系均用关系来表示

逻辑结构——二维表

从用户角度,关系模型中数据的逻辑结构是一张二维表。

关系模型是建立在集合代数的基础上。

  1. 域(Domain)

定义:域是一组具有相同数据类型的值的集合。

例:整数、实数、介于某个取值范围的整数、指定长度的字符串集合、{“男”、“女”}等等

  1. 笛卡尔积(Cartesian Product)

定义:给定一组域D1,D2,…,Dn,这些域可以是相同的。D1,D2,…,Dn的笛卡尔积为:

所有域的所有取值的一个组合。

例:D1=导师集合SUPERVISOR={张,刘}

D2=专业集合SPECIALITY={计算机专业,信息专业}

D3=研究生集合POSTGRADUATE={李,刘晨,王}

则D1,D2,D3的笛卡尔积为{(张,计算机专业,李),(张,计算机专业,刘晨),(张,计算机专业,王),(张,信息专业,李)…

元组(Tuple)

笛卡尔积中每一个元素(d1,d2,…,dn)称作一个n元组(n-tuple)或简称元组(Tuple)。

(张,计算机专业,李)、(张,计算机专业,刘晨)等都是元组。

分量(Component)

笛卡尔积元素(d1,d2,…,dn)中的每一个值di称作一个分量。

张、计算机专业、李、刘晨等都是分量。

基数(Cardinal number)

若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1*D2*…*Dn的基数M为各域的基数的乘积,如D1基数为3,D2基数为2,D1*D2的基数就是3*2=6。

笛卡尔积的表示方法:笛卡尔积可表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。

  1. 关系(Relation)
  1. 关系

D1*D2*…*Dn的子集称作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)。

R表示关心名,n表示关系的目或度(Degree)

  1. 元组

关系中的每个元素是关系中的元组,通常用t表示。

  1. 单元关系与二元关系

当n=1时,称该关系为单元关系(Unary relation)或一元关系。

当n=2时,称该关系为二元关系(Binary relation)。

  1. 关系的表示

关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,一个属性。

SUPERVISOR

SPECLIALITY

POSTGRADUATE

信息专业

信息专业

刘晨

信息专业

  1. 属性

关系中不同列可以对应相同的域,为加以区分,必须对每列起一个名字,称为属性(Attribute)。

n目关系必有n个属性。

候选码(Candidate kay):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。

简单的情况:候选码只包含一个属性。

全码(All-key):最极端的情况:关系模式中的所有属性组是这个关系模式的候选码,称为全码。

主码:若一个关系有多个候选码,则选定其中一个为主码(Primary kay)。

主属性:候选码的诸属性称为主属性(Prime attribute)。

非主属性:不包含在任何候选码中的属性(Non-Prime attribute)或非码属性(Non-key attribute)。

【说明】D1,D2,…,Dn的笛卡尔积的子集不是都有实际含义,只有某个子集才有实际意义。

  1. 三类关系
  1. 基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示。
  2. 查询表:查询结果对应的表。
  3. 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
  1. 基本关系的性质
  1. 列是同质的(Homogeneous)
  2. 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名。
  3. 列的顺序无所谓,列的次序可以任意交换。
  4. 任意两个元组的候选码不能相同。
  5. 行的顺序无所谓,行的次序可以任意交换。
  6. 分量必须取原子值,这是规范条件中最基本的一条。

2.1.2 关系模式

1.什么是关系模式

关系模式是对关系的描述。关系模式是型,关系是值。

  1. 元组集合的结构

属性构成、属性来自的域、属性与域之间的映像关系。

  1. 一个关系通常由赋予它的元组语义确定。
  2. 现实的世界中还存在着完整性约束。

2.定义关系模式

关系模式可以形式化地表示为:R(U,D,DOM,F)

R:关系名

U:组成该关系的属性名集合

D:属性组U中属性所来自的域

DOM:属性向域的映像结合

F:属性间的数据依赖关系集合

例:导师和研究生出自同一个域——人,因此取不同的属性名,并在关系模式中定义属性向域的映像,即说明它们出自哪个域:

DOM(SUPERVISOR——PERSON)=DOM(POSTGRADUATE——PERSON)=PERSON

3.关系模式与关系

关系模式是静态的、稳定的。

关系是动态的、随时间不断变化的。

关系是关系模式在某一时刻的状态或内容,在实际工作中关系模式与关系往往统称为关系,需要通过上下文加以区别。

2.1.3 关系数据库

1.关系数据库

在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

2.关系数据库的型与值

(1)关系数据库的型:关系数据库模式,对关系数据库的描述。

(2)关系数据库模式:若干域的定义,在这些域上定义的若干关系模式。

(3)关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库。

2.1.4 关系模型的存储结构

1.有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成。

2.有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

2.2 关系数据结构

2.2.1 基本关系操作

一、常用的关系操作

查询:选择、投影、连接、除、并、交、差等,其中:选择、投影、并、差、笛卡尔积是5种基本操作。

数据更新:插入、删除、修改。

查询的表达能力是其中最主要的部分。

二、关系操作的特点

集合操作方式:操作的对象和结果都是集合,一次一集合的方式。

2.2.2 关系数据库语言的分类

一、关系代数语言

用对关系的运算来表达查询要求。代表:ISBL

二、关系演算语言

用谓词来表达查询要求。。

1.元组关系演算语言

代表:APLHA,QUEL

2.域关系演算语言:谓词变元的基本对象是域变量

代表:QBE

三、具有关系代数和关系演算双重特点的语言

代表:SQL(Structed Query Language)

2.3 关系的完整性

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

其中实体完整性、参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该有关系系统自动支持。

用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

2.3.1 实体完整性

实体完整性规则是指属性A是基本关系R的主属性,则属性A不能取空值。

空值就是“不知道”或“不存在“或”无意义“的值。

实体完整性规则的说明:

  1. 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。
  2. 现实世界中的实体是可区分的,即它们具有某种唯一性标识。
  3. 关系模型中以主码作为唯一性标识。
  4. 主码中的属性即主属性不能取空值。

主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第2点相矛盾,因此这个规则称为实体完整性。

【注意】实体完整性规则规定基本关系的所有主属性都不能取空值。

2.3.2 参照完整性

1.关系间的引用

在关系模型中实体及实体间的联系都是用关系来描述的。

2.外码

定义:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码

基本关系R称为参照关系

基本关系S称为被参照关系或目标关系

【例】学生关系的“专业号“与专业关系的主码”专业号“相对应。

“专业号“属性是学生关系的外码;专业关系是被参照关系,学生关系为参照关系。

学生关系——>专业关系

       专业号

【说明】

  1. 关系R和S不一定是不同关系;
  2. 目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上;
  3. 外码并不一定要与相应的主码同名,当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。

3.参照完整性规则

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:空值(F的每个属性值均为空值)或等于S中某个元组的主码值。

2.3.3 用户定义的完整性

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方式处理它们,而不要由应用程序承担这一功能。

【例】课程(课程号。课程名,学分)

“课程号“属性必须取唯一值,非主属性”课程名“也不能取空值,”学分“属性只能取值{1,2,3,4}。

2.4 关系代数

关系代数是一种抽象的查询语言,是对关系的运算来表达查询。

关系代数的运算对象是关系,运算结果也是关系。

关系代数按运算符的不同可分为传统的集合运算专门的关系运算两类。

集合运算是从关系的水平方向即行的角度进行。

专门的关系运算不仅设计行而且涉及列。

图片

2.4.1 传统的集合运算

1.并

关系R和S具有相同的目n(即两个关系都有n个属性),相应属性取自同一个域。

运算结果为:n目关系,由属于R或属于S的元组组成。

【例】关系R和S的并运算

R

S

R并S

A

B

C

A

B

C

A

B

C

A1

B1

C1

A1

B2

C2

A1

B1

C1

A1

B2

C2

A1

B3

C2

A1

B2

C2

A2

B2

C1

A2

B2

C1

A2

B2

C1

A1

B3

C2

2.

关系R和S具有相同的目n(即两个关系都有n个属性),相应的属性取自同一个域。

R与S的差运算表示为R-S

运算结果为:n目关系,由属于R而不属于S的所有元组组成。

R

S

R并S

A

B

C

A

B

C

A

B

C

A1

B1

C1

A1

B2

C2

A1

B1

C1

A1

B2

C2

A1

B3

C2

A2

B2

C1

A2

B2

C1

3.

关系R和S具有相同的目n(即两个关系都有n个属性),相应的属性取自同一个域。

运算结果为:n目关系,由既属于R又属于S的元组组成。

R

S

R并S

A

B

C

A

B

C

A

B

C

A1

B1

C1

A1

B2

C2

A1

B2

C2

A1

B2

C2

A1

B3

C2

A2

B2

C1

A2

B2

C1

A2

B2

C1

4.笛卡尔积

严格地讲应该是广义地笛卡尔积。

R:n目关系,k1个元组,S:m目关系,k2个元组

R与S的笛卡尔积运算表示为RXS

运算结果为:行:k1Xk2个元组,列:(n+m)列元组的集合,其中元组的前n列是关系R的一个元组,后m列是关系S的一个元组。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值