1.1 数据库概述
1.1.1 数据库 4 个基本概念
- 数据
描述事物的符号记录称为数据。
数据的含义称为语义,数据与语义不可分。
- 数据库(DataBase,DB)
数据库是存放数据的仓库。
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的数据按照一定的数据模型组织、描述和储存,具有较小冗余度,较高数据独立性和易扩展性,可为多用户共享。
- 数据库管理系统(DataBase Management System,DBMS)
数据库管理系统的功能:
- 数据定义功能:提供数据定义语言(Data Definition Language,DDL),通过它对数据库中的数据对象的组成与结构进行定义。
- 数据组织、存储和管理:分类组织存储和管理各种数据,包括数据字典、用户数据、数据存取路径等。要确定以何种文件结构和存取方式在存储级上组织数据,如何实现数据之间的联系。基本目标是提高存储空间利用率和方便存取,提供多种存取方法(索引查找、hash查找、顺序查找等)来提高存取效率。
- 数据操纵功能:提供数据操纵语言(Data Manipulation Language,DML),实现对数据库的基本操作(增删改查)。
- 数据库的事务管理和运行管理:数据库由 DBMS 统一管理和控制,保证事务的正确性,保证数据的安全性、完整性、多用户的并发使用及发生故障后的系统恢复。
- 数据库的建立和维护功能:包括初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织和性能监视、分析功能等,通常由实用程序和管理工具完成。
- 其他功能:在网络中与其他软件系统的通信功能,多个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。
- 数据库系统(DataBase System,DBS)
数据库系统由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
1.1.2 数据库系统的特点
文件系统与数据库系统相比的特点:
局部结构性:单个文件内部的记录的结构性,但是不同文件之间的联系需要根据应用程序需要在程序中编写,缺乏整体的结构性。
数据共享性差,冗余度高:一个(或一组)文件基本对应一个应用程序。即使其他应用程序拥有部分相同的数据,也必须建立自身对应的文件,因此冗余度大,同时容易造成数据的不一致性。
独立性差:增加数据(改变文件的逻辑结构)需要更改文件结构的定义,同时修改应用程序对文件使用的方式。造成文件系统与应用程序之间的缺乏独立性。
数据库系统的特点:
数据结构化:具有整体结构化,指的是数据不仅仅针对单个应用,而是面向整个现实世界的组织的多个应用场景,如学生信息被教务处、学生处多处使用,与不同的数据存在联系,在数据库建立的同时就考虑到这种关系,从而可以为多个应用所使用。另外数据内部也是结构化的,如学生信息包含了学号、姓名等。存取数据方式灵活,可以存取一个或一组数据项、一个或一组记录,实现多粒度的存取。
数据共享性高、冗余度低且易扩充:因为数据面向整个组织,所以共享度高;同时不同应用的相同数据可以共享,冗余度低;因为数据是共享的,多粒度存取的,增加新应用时可以选择数据的子集,便于扩充和更改的需求。
数据独立性高:包括物理独立性和逻辑独立性。物理独立性指应用程序和数据库中的数据的物理存储相互独立,数据库中的数据如何在数据库中存储由 DBMS 决定,用户只需要决定数据的逻辑结构即可,这样物理存储的结构改变应用程序不用做出相应改变;逻辑独立性是指用户的应用程序(通常与应用程序和用户程序同义)与数据库的逻辑结构相互独立,即数据的逻辑结构改变,应用程序的逻辑结构可以不变。数据独立性由 DBMS 的二级映像功能来保证。
-
数据由 DBMS 统一管理和控制:
- 数据的安全性保护:通过存取控制给不同用户设置权限达到。
- 数据的完整性检查:通过完整性约束条件进行。
- 数据存取的并发控制:各种锁机制和协议。
- 数据库恢复:出现故障时的各种恢复技术实现。
1.2 数据模型
数据模型是对现实数据特征的抽象,是数据库系统的核心和基础。
1.2.1 两类数据模型
根据模型应用的不同目的,分为两大类,第一类是概念模型,第二类是逻辑模型和物理模型。
由用户和数据库设计人员决定:
- 概念模型:按照用户观点对数据和信息建模,用于数据库设计,如学生信息包含学号姓名等。
由 DBMS 决定,选定了 DBMS 以下模型就得以确定:
- 逻辑模型:根据模型结构命名,主要有层次模型、网状模型、关系模型,用于数据库管理系统的实现,指 DBMS 应该以什么形式组织和记录数据之间的关系。
- 物理模型:描述了在磁盘上的存储方式和存取方法,面向计算机系统。
1.2.2 概念模型
概念模型是对现实世界到信息世界的第一层抽象,信息世界的主要概念:
实体:客观存在且能相互区别的事物,如一个学生、一个老师、一门课,或一次选课记录、一个订单、学生和院系的关系。
属性:描述实体的某个特性。
码:能唯一标识实体的属性集称为码。
实体型:实体名和属性名的集合描述同类实体。
实体集:同一类型的实体的集合。
-
联系:实体内部的联系和实体之间的联系。分别指实体中各属性之间的联系和不同实体集之间的联系。
实体间联系有一对一、一对多和多对多三种类型。
1.2.3 数据模型的组成要素
通常由数据结构、数据操作和完整性约束条件组成。
这里的数据模型指的是逻辑模型。
- 数据结构:描述数据库的组成对象以及对象之间的关系,是系统静态特性的描述。
- 数据操作:对数据库中的对象进行的操作的集合,包括查询和更新(增删改)两类,是系统动态特性的描述。
- 完整性约束条件:是数据模型对数据及其联系的制约和依存规则,限定数据库状态以及状态的变化。
1.2.4 常用的数据模型
主要的逻辑数据模型有:
- 层次模型
- 网状模型
- 关系模型
其中层次模型和网状模型统称为格式化模型。
格式化模型中实体用记录表示,实体属性对应记录的数据项(或字段)。实体之间的联系转换成记录之间的联系。数据结构的单位是基本层次联系。基本层次联系指两个记录及它们之间的一对多(包括一对一)的联系。
1.3 数据库系统的结构
1.3.1 数据库系统模式
数据模型有型和值的概念。型指某一类数据的结构和属性的说明,值是型的一个具体赋值。
模式(schema)是数据库中全体数据的逻辑结构和特征的描述,仅涉及型。模式的一个具体值称为一个实例(instance)。同一个模式可以有多个实例。
模式是相对稳定的,实例是相对变动的。模式反映的是数据的结构及其联系,实例反映的是数据库某一时刻的状态。
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构指数据库系统由外模式、模式和内模式三级构成。
- 模式
模式也称逻辑模式,是数据库全体数据的逻辑结构和特征的描述。
模式是数据库在逻辑级上的视图,数据库模式是以某种数据模型为基础的。
- 外模式
外模式也称为子模式或用户模式,是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。
外模式通常是模式的子集,一个数据库可以有多个外模式,对应各个用户的视图。外模式是保证数据库安全性的有力措施。
- 内模式
内模式也称存储模式,是数据物理结构和存储方式的描述, 是数据在数据库内部的组织方式。
1.3.3 数据库的二级映像与数据独立性
- 外模式 / 模式映像
对每一个外模式,都有一个外模式 / 模式映像,定义了局部逻辑结构和全体逻辑结构的对应关系。通常包含在外模式的描述中。
当模式改变时由 DBA 改变映像使外模式保持不变,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
- 模式 / 内模式映像
该映像是唯一的,定义了全体逻辑结构和物理结构的对应关系,包含在模式的描述中。
当存储结构改变时,由 DBA 改变映像使模式保持不变,从而外模式不用改变,应用程序也不必修改,保证了数据与程序的物理独立性。