数据库基础理论
一、数据库
数据库(Database,DB)是长期存储在计算机内的、有组织的、可共享的、统一管理
的相关数据的集合。按照字面的理解,数据库就是存放数据的仓库。
二、数据库管理系统(DBMS)
DBMS 的功能:数据库定义功能;数据存取功能;数据库运行管理功能;数据库的
建立和维护功能;数据通信功能。
DBMS 的组成:语言编译处理程序;系统运行控制程序;系统建立、维护程序;数
据字典。
三、数据库系统(DBS)的组成
数据:数据是数据库系统的工作对象,它们是某特定应用环境中进行管理和决策所
必需的信息。
用户:用户是指存储、维护和检索数据库中数据的人员。数据库系统中主要有 3 类
用户:终端用户、应用程序员和数据库管理员。
硬件:硬件是指存储数据库和运行数据库管理系统 DBMS 的硬件资源。
软件:软件是指负责数据库存取、维护和管理的软件系统,通常叫做数据库管理系统(DBMS)。
四、数据库系统的特点
- 数据低冗余、共享性高。
- 数据独立性提高。
- 有统一的数据控制功能。
五、数据库应用系统
数据库应用系统(Database ApplicationSystem,DBAS) , 是指在 BMS 的基础上,针对一个实际问题开发出来的面向用户的系统。
六、数据库系统的体系结构
内部体系结构:数据库系统得内部体系结构是三级模式结构,分别为模式、外模式和内模式。
外部体系结构:外部体系结构主要有集中式结构、文件服务器结构和客户/服务器结构。
七、概念模型
实体与实体集:实体是现实世界中可区别于其他对象的“事件”或物体;实体集是具
有相同类型及共享相同性质(属性)的实体集合。
属性:实体通过一组属性来表示;属性是实体集中每个成员具有的描述性性质。
关键字和域:实体的某一属性或属性组合,其值能惟一标识出某一实体,称为关键
字,也称码;每个属性都有一个可取值的集合,称为该属性的域,或者该属性的值集;
联系:两个实体之间的联系又可分为一对一联系(1:1)、一对多联系(1:n)和多对多的联系(m:n)。
八、常用的数据模型
层次模型:层次数据模型是数据库系统最早使用的一种模型,它的数据结构是一颗有向树。层次结构模型具有如下特征:有且仅有一个结点没有双亲,该结点是根结点。 其他结点有且仅有一个双亲。
网状模型:如果取消层次模型的两个限制,即两个或两个以上的结点都可以有多个双亲,则“有向树”就变成了“有向图”。“有向图”结构描述了网状模型。网状模型具有如下特征:可有一个以上的结点没有双亲。至少有一个结点可以有多于一个双亲。
关系模型:关系模型(Relational Model)是用二维表格结构来表示实体及实体之间联系的数据模型。关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,因此可以说,关系模型是“关系框架”组成的集合。
关系模型是使用最广泛的数据模型,目前大多数数据库管理系统都是关系型的,如MySQL、Sql server、Oracle 都是关系数据库管理系统。
关系模型中的基本术语
-
关系:一个关系就是一张二维表。
-
元组:二维表中的每一条记录就是一个元组。
-
属性:二维表中的一列就是一个属性,又称为字段。 域:属性的取值范围。
-
分量:元组中的一个属性值。关系模式:对关系的描述。
-
候选关键字:关系中的一个或几个属性的集合,该属性集惟一标识一个元组。 关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。
-
主关键字(主键):一个关系中有多个候选关键字,可以选择其中一个作为主关键字。
-
外部关键字(外键):如果一个属性组不是所在关系的关键字,但它是其他关系的关键字,则该属性组称为外部关键字。
-
主属性:包含在任一候选关键字中的属性称为主属性。
关系的性质
关系是一个二维表,但并不是所有的二维表都是关系。关系应具有以下性质:
每一列中的分量是同一类型的数据。
不同的列要给予不同的属性名。
列的次序可以任意交换。
一个关系中的任意两个元组不能完全相同。
行的次序可以任意交换。
每一个分量必须是不可分的数据项。
关系数据库中的表之间的关系
在关系数据库中,可以通过外部关键字实现表与表之间的联系,公共字段是一个表的主键和另一个表的外键。
关系模型的完整性约束
实体完整性(Entity Integrity):若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值。所谓空值就是“不知道”或“不存在”的值。(主键不能为空)
参照完整性(Referential Integrity):若属性(或属性组)F 是基本关系 R 的外键,它与基本关系 S 的主键 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为空或是等于 S 中某个元组的主键值。
用户定义的完整性(User-defined Integrity):用于定义的完整性就是针对某一具体关系数据库的约束条件。