绪论
1.1 数据库系统概述
1.1.1 数据、数据库、数据库管理系统、数据库系统
数据(Data):描述事物的符号记录。数据是数据库中存储的基本对象。
数据库(DataBase,DB) :长期存储在计算机内、有组织的、可共享的大量数据的集合。(特点:永久存储、有组织、可共享)
数据库管理系统(DataBase Management System,DBMS):主要功能主要包括:
1.数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL),用户通过DDL方便的对数据对象进行定义。
2.数据组织、存储和管理
DBMS能分类组织、存储和管理各种数据,包括数据字典、用户、数据、数据存储路径。
3.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML),实现对数据库的增删改查。
4.数据库的事务管理和运行管理
数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
5.数据库的建立和维护功能
数据库系统(DataBase System,DBS)包括数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员。
1.2 数据模型
数据模型(Data Model)也是一种模型,它是对现实世界数据特征的抽象。
1.2.1 两类数据模型
数据模型的要求:能比较真实地模拟现实世界、容易为人理解、便于在计算机上实现。
第一类:概念模型(Conceptual Model)信息模型,按照用户观点对数据和信息建模,主要用于数据库设计。
第二类:逻辑模型和物理模型
逻辑模型:包括层次模型、网状模型、关系模型、面对对象模型和对象关系模型等。是按计算机观点对数据建模,主要用于DBMS的实现。
物理模型:对数据的最低层抽象,描述数据在系统内的表示方法和存取方法,在磁盘或磁带上的存储和存取的方法,是面向计算机系统的。
1.2.2 数据模型的组成要素
数据模型通常由数据结构、数据操作和完整性约束三部分组成。
一、数据结构
描述数据库的组成对象以及对象之间的联系。是对系统静态特性的描述。
二、数据操作
增删改查。(查询和更新两大类),数据操作是对系统动态特征的描述。
三、数据的完整性约束条件
数据的完整性约束是一组完整性规则。
比如实体完整性(主键,唯一标识)、参照完整性(外键约束)
1.2.3 概念模型
概念模型是现实世界到机器世界的一个中间层次,表现为:
①概念模型用于信息世界的建模;
②现实世界到信息世界的第一层抽象:
③数据库设计人员进行数据库设计的有力工具;
④数据库设计人员和用户之间进行交流的语言。
概念模型要求:
①具有较强的语义表达能力:
②能够方便、直接地表达应用中的各种语义知识;
③简单、清晰、易于用户理解。
一、信息世界中的基本概念
1.实体(Entity)客观存在并可相互区别的事物称为实体。实体可以是具体人、事、物,也可以是抽象的概念或联系。
2.属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
3.码(Key)唯一标识实体的属性集称为码。
4.域(Domain)域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
5.实体型(Entity Type)具有相同属性的实体必然具有共同的特征和性质。【例】学生是一个实体型。
6.关注体集(Entity Set)同一类型实体的集合称为实体集。【例】全体学生就是一个实体集。
7.联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
二、两个实体型之间的联系
1.一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。
2.一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。
3.多对对联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。
三、两个以上的实体型之间的联系
两个以上的实体型之间也存在着一对一、一对多、多对多联系。
若实体型E_1,E_2,…,E_n之间存在联系,对于实体型E_i中的给定实体,最多只和E_i中的一个实体相联系,则说E_i与E_1,E2,…,E{i-1},E_{i+1},…,E_n之系是一对多的。
四、单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。
五、概念模型的一种表示方法:实体-联系图(E-R图)
E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)
【注意】如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
1.2.4 最常用的数据模型
目前,数据库领域中最常用的逻辑数据模型有:层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)、对象关系模型(Object Relational Model).
1.2.5 关系模型
一、关系数据模型的数据结构
关系(Relation)一个关系对应通常说的一张表。
元组(Tuple)表中的一行即为一个元组。
属性(Attribute)表中的一列即为一个属性。
码(key)表中唯一确定一个元组的某个属性组。
域(Domain)属性的取值范围。
分量元组的中的一个属性值。
关系模式对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)
联系也要用一张表表示
二、关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询,插入、删除和更新数据这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括三大类:
①实体完整性;
②参照完整性;
③用户定义的完整性。
三、关注关系数据模型的优点
1.关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
2.关系模型的概念单一。
3.关系模型的存取路径对用户透明(隐蔽)从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。
1.3 数据库系统结构
1.3.1数据库系统模式的概念
模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
一、模式(Schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,COBOL,FOR-TRAN)无关。
二、外模式(External Schema)
外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
【注意】
1.外模式通常是模式的子集,一个数据库可以有多个外模式。
2.同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
3.外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
三、内模式(Internal Schema)
内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
1.3.3 数据库的二级映像功能与数据独立性
数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
数据库管理系统在这三级模式之间提供了两层映像:
外模式/模式映像
模式/内模式映像
两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
1.4数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)应用系统和数据库管理员构成。
关系数据库
1970年IBM公司的E.F.Codd提出关系数据模型
1972年提出了关系的第一、第二、第三范式
1974年提出了关系的BC范式
80年代后,关系数据库系统成为最重要、最流行的数据库
2.1 关系数据结构及形式化定义
2.1.1 关系
单一的数据结构一一关系
现实世界的实体以及实体间的各种联系均用关系来表示
逻辑结构一一二维表
从用户角度,关系模型中数据的逻辑结构是一张二维表
关系模型是建立在集合代数的基础上。
1.域(Domain)
域是一组具有相同数据类型的值的集合
2.笛卡儿积(Cartesian Product)
给定一组域D_1,D_2,…,D_n,这些域可以是相同的。
D_1,D_2,…,D_n的笛卡尔积为:D_1D_2…*D_n= {(d_1,d_2,…,d_n)|d_iin D_i,i=1,2,…,n }。
元组
笛卡尔积中的每一个元素(d_1,d_2,…,d_n)称作一个n元组(n-tuple)或简称元组(Tuple)。
分量(Component)
笛卡尔积元素(d_1,d_2,…,d_n)中的每一个值d_i称作一个分量。
基数(Cardinal number)
若D_i(i=1,2,…,n)为一个有限集,其基数为m_i(i=1,2,…,n),则D_1D_2…*Dn的基数M为:M=prod{i=1}^{n}m_i
3.关系(Relation)
(1)关系
D_1D_2…*D_n的子集称做在域D_1,D_2,…,D_n上的关系,表示为R(D_1,D_2,…,D_n)。
R表示关系名,n表示关系的目或度(Degree)。
(2)元组
关系中每个元素是关系中的元组,通常用t表示。
(3)单元关系与二元关系
当n=1时,称该关系为单元关系。
当n=2时,称该关系为二元关系。
(4)关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,一个属性。
(5)属性
关系中不同列可以对应相同的域,为了加以区分,必须对每一列起一个名字,称为属性(Attribute)
(6)码
候选码(Candidate key):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
简单的情况:候选码只包含一个属性。
全码(All-key):最极端的情况:关系模式的所有属性组成这个关系模式的候选码,称为全码(All-key)。
主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key).
主属性:候选码的诸属性称为主属性(Primary attribute)
非主属性:不包含在任何侯选码中的属性(no-Primary attribute),或非码属性(Non-key attribute)
(7)三类关系
①基本关系(基本表或基表):实陈存在的表,是实际存储数据的逻辑表示。
②查询表:查询结果对应的表。
③视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
(8)基本关系的性质
①列是同质的(Homogeneous)
②不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名;
③列的顺序无所谓,列的次序可以任意交换;
④任意两个元组的候选码不能相同;
⑤行的顺序无所谓,行的次序可以任意交换;
⑥分量必须取原子值,这是规范条件中最基本的一条。
2.1.2 关系模式
1.什么是关系模式
关系模式(Relation Schema)是对关系的描述。关系模式是型,关系是值。
(1)元组集合的结构
属性构成、属性来自的域、属性与域之间的映像关系。
(2)一个关系通常由赋予它的元组语义确定。
(3)现实的世界中还存在完整性约束。
2.定义关系模式
关系模式可以形式化地表示为:R(U,D,DOM,F)
3.关系模式与关系
关系模式是静态的、稳定的。
关系是动态的、随时间不断变化的。
关系是关系模式在某一时刻的状态或内容,在实际工作中关系模式和关系往往统称为关系,需要通过上下文加以区别。
2.1.3 关系
1.关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
2.关系数据库的型与值
(1)关系数据库的型:关系数据库模式,对关系数据库的描述。
(2)关系数据库模式:若干域的定义,在这些域上定义的若干关系模式。
(3)关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库。
2.1.4 关系模型的存储结构
1.有的关系数据库管理系统中一个表对应一个操作系统文件将物理数据组织交给操作系统完成。
2.有的关系数据库管理系统从操作系统那里申请若干文件,自己划分文件空间,组织表、索引等存储结构,并进行管理。
2.2 关系数据结构
2.2.1 基本关系操作
一、常用的关系操作
查询:选择、投影、连接、除、并、交、差等,其中选择、投影、并、差、笛卡尔积是五种基本操作。
数据更新:插入、删除、修改。
查询的表达能力是其中最主要的部分。
二、关系操作的特点
集合操作方式:操作的对象和结果都是集合,一次一集合的方式。
2.2.2 关系数据库语言的分类
一、关系代数语言
用对关系的运算来表达查询的要求。代表:ISBL。
二、关系演算语言
用谓词来表达查询要求。
三、具有关系代数和关系演算双重特点的语言
代表:SQL(Structured Query Language)
2.3 关系的完整性
关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性
其中实体完整性、参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该由关系系统自动支持。
用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
2.3.1 实体完整性
实体完整性规则(Entity Integrity).是指若属性A是基本关系R的主属性,则属性A不能取空值、不能相同。
空值就是“不知道”或“不存在”或“无意义”的。
2.3.2 参照完整性
1.关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,存在着关系与关系间的引用。
2.外码(Foreign Key)
定义:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码K,相对应,则称F是基本关系R的外码。基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)
3.参照完整性规则
参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值;
或者等于$中某个元组的主码值。
2.3.3 用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/174378.html