基本概念
区分:数据、数据库、数据库管理系统、数据库系统。
数据(Data)
- 数据是指记录客观事物的物理符号
- 数据具有多种表现形式:文本数据、多媒体数据、抽象数据等
- 日常使用的学生的档案记录、货物的运输情况等都是数据
为了在计算机中有效的存储和处理客观事物,就需要抽取一些有价值的事物特征(属性)来描述事物,例如,在学生档案中,人们通常关注学生的姓名、性别、年龄、专业、班级等,这些属性所构成的一组数据称为 记录 。
数据是 信息 的表现形式和载体,只有通过解释或处理的数据才能成为有用的信息,数据的解释也成为 数据的语义 ,是对数据含义的说明,没有语义的数据是没有意义和不完整的,例如,93是一个数据,可以是一个同学某门课的成绩,也可以使某个人的体重,还可以是某个社团学生人数。
数据库(Database, DB)
- 数据库通俗地讲,被称作存储数据的仓库,按一定格式存储在存储设备上
- 严格意义上讲,数据库是长期储存在计算机中,有组织的、可共享的数据集合
- 数据库中的数据具有较小的冗余度、较高的数据独立性,易于扩展,可以被多个用户共享
- 数据库中数据的三个基本特点:永久存储、有组织、可共享
数据库管理系统(Database Management System, DBMS)
- 数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间
- 它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性
其主要功能包括如下几个方面:
1).数据定义功能
用户通过数据定义语言 DDL(Data Definition Language) ,定义数据库中的数据对象(表、视图、存储过程、触发器等)。DDL主要用于建立、修改数据库的库结构。注意,DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在 数据字典(Data Dictionary) 中。
2).数据操纵功能
用户通过数据操纵语言 DML(Data Manipulation Language) ,供用户实现对数据的查询、插入、删除、修改基本操作。
3).数据库的运行管理功能
数据库管理系统提供了统一的控制和管理机制,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
用户通过数据控制语言 DCL(Data Control Language) ,管理数据库用户或角色的权限。
4).数据库的建立和维护功能
包括:创建数据库时对数据库空间的维护、数据库的备份与恢复、数据库的重组织功能和性能监视、分析等,这些功能通常通过实用工具实现。
5).数据组织、存储和管理功能
数据库系统对数据进行的分类存储和管理,这些数据包括数据字典、用户数据、存取路径等,需定义具体的组织和存储方式以及数据之间的联系,并提供多种数据存取方法,如索引查找、顺序查找。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
6).其他功能
包括:与其他软件的网络通信功能、不同数据库管理系统之间的互操作功能。
数据库系统(Database System, DBS)

- 通常一个完整的数据库系统包括数据库、数据库管理系统(以及实用工具)、应用程序、数据库管理员(DBA)、数据库用户(程序员、终端用户)
- 通常将“数据库系统”简称为“数据库”
- 数据库系统的核心是数据库管理系统
数据管理技术发展
- 数据管理:一是制定并执行整个业务中关于数据的定义、组织、保护与有效使用的策略、过程和计划(ps:定义过于学术,难以理解);二是利用硬件和软件技术对数据进行有效的集中控制管理(收集、存储、处理和应用)
- 数据组织:将收集的数据转换成计算机可处理的形式并适当构造,数据组织分为逻辑组织和物理组织
- 逻辑组织:用户或应用程序使用的数据结构形式
- 物理组织:数据在物理存储设备上的存储形式
- 检索:存储的数据能够方便地被选择提取
- 数据管理的任务:进行数据的收集、组织、控制、存储、选取、维护,在适当的时刻、以适当的形式、给适当的人、提供适当的数据
- 数据处理:对各种数据进行收集、存储、加工和传播的一系列活动总和
- 数据管理技术经历了四个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段
人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算,没有存储设备(数据放在纸带或卡片上),软件只有汇编语言,没有操作系统,数据处理通过批处理实现,程序结束后数据不会保存。
此阶段数据管理特点如下:
- 数据不保存:数据空间随程序空间一起释放
- 应用程序管理数据:逻辑结构、物理结构、存取方法等数据库设计工作都由程序员完成
- 数据面向应用:一组数据只能对应一个应用程序(数据不共享)
- 数据不具有独立性:应用程序中只要发生改变,数据的逻辑结构或物理结构就相应的发生变化
文件系统阶段
20世纪50年代后期到60年代中期,产生了磁盘、磁鼓等存储设备,有操作系统,并配备了专门的数据管理软件:文件系统。
文件系统将数据的逻辑结构和物理结构分离,应用程序只涉及数据逻辑结构,系统决定其物理结构,物理结构改变不会导致应用程序修改(数据的物理独立性)
注意,在文件系统中,不能实现数据的普通共享,只能实现文件级的共享,不同应用必须构造各自的文件,不能实现记录或数据项级的共享。
此阶段数据管理特点如下:
- 数据可以长期保存:有了存储设备,计算机开始被用来处理大量的数据并存储数据
- 有简单的数据管理功能:文件的逻辑结构和物理结构脱钩,程序和数据分离,是数据和程序有了一定的独立性,减少了程序员的工作量
- 数据共享能力差:由于每一个文件都是独立的,当需要用到相同的数据时,必须建立各自的文件,数据还是无法共享,也会造成大量的数据冗余
- 数据不具有独立性:在此阶段数据仍然不具有独立性,当数据的结构发生变化时,也必须修改应用程序,修改文件的结构定义;应用程序发生改变时,也将改变数据的结构
数据库系统阶段
20世纪60年代后期以来,计算机管理的对象规模越来越大,应用范围又越来越广泛,数据量急剧增长,数据库技术便应运而生,出现了统一管理数据的专门软件系统:数据库管理系统。
此阶段数据管理特点如下:
- 数据集成:把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,是数据库管理系统的主要目的
- 数据共享性高
- 数据冗余小:冗余是受控的
- 数据一致性
- 数据独立性高:数据定义与使用数据的应用程序分离称为数据独立,数据库系统提供了两层数据独立,逻辑独立和物理独立
- 实施统一管理与控制:数据的安全性、完整性、并发控制、故障恢复,即数据库保护
- 减少应用程序开发与维护工作量
数据库系统的结构

三级模式结构
- 三级体系结构和三级模式结构是不同的概念
- 目前各个不同的数据库管理系统都遵循 三级体系结构 准则,即用户级、概念级、物理级
- 意思是不同的数据库管理系统可以使用不同的数据库语言,支持不同的数据模型,运行在不同的操作系统
- 但是这些数据库管理系统在体系结构上均采用 三级模式结构 ,并提供 两层映像
模式
模式也称 概念模式 或 逻辑模式 ,它是数据库中 全体数据 的 逻辑结构 和特征的描述。模式实际上是数据库数据在逻辑级上的视图,即 概念视图 。
它不涉及任何数据库物理细节(文件组织、存取方法等),也与具体应用程序(开发工具、开发语言)无关,一个数据库只有一个模式。
DBMS提供模式描述语言 Schema DDL ,从三方面定义模式:数据的逻辑结构、数据之间的联系、数据相关的安全性和完整性。
外模式
外模式也称 子模式(Subschema) 或 用户模式 ,它是用户能够看见和使用的 局部数据 的 逻辑结构 和特征的描述,是局部数据的逻辑表示。外模式实际上是用于满足不同数据库用户的需求的数据视图,即 用户视图 ,通常是模式的子集。
外模式是保证数据库安全的重要措施,每个用户只能看见和访问与自己对应的外模式中的数据,一个数据库可以有多个外模式。
DBMS提供子模式描述语言 Subschema DDL ,严格定义子模式。
内模式
内模式也称 存储模式 ,它是数据库中数据 物理结构 和存储方式的描述,是数据在数据库内部的表示形式,DBA所见到的,即 内部视图 或 存储视图 。
内模式不是最底层的物理层,而是数据库最低一级的逻辑描述,一个数据库只有一个内模式。
内模式由内模式描述语言或存储模式描述语言来描述、定义。
数据独立性
- 模式独立于内/外模式,是数据库核心
- 内模式依赖于模式,独立于外模式,独立于存储设备
- 外模式面向应用程序,独立于内模式和存储设备
- 应用层序依赖于外模式,独立于模式
两层映像
所谓映像,就是一种对应规则,指出映像双方具体如何转换。
在三级模式之间引入两级映像,主要目的是使数据与程序具有较高的独立性。
外模式/模式映像:定义在各自的外模式中,一个模式对应多个外模式,每个外模式有一个外模式/模式映像,保证数据与程序的逻辑独立性。
模式/内模式映像:定义在模式中,一个数据库只有一个模式,所以模式/内模式映像是唯一的,保证数据与程序的物理独立性。
数据库系统的运行与应用结构
客户/服务器结构(C/S)
- 表示层:命令行、图形化界面管理工具、应用程序,完成与用户交互任务
- 数据层:DBMS,负责数据管理
客户端和服务器在一台计算机上的工作方式,称为 单机方式 ;服务器被部署在网络中某台计算机上,客户端被安装在网络中至少一台计算机上的工作方式,称为 网络方式 。
浏览器/服务器结构(B/S)
- 表示层:用户操作和展示界面,通常由浏览器构成
- 处理层:处理用户具体应用逻辑,与后台DBMS共同组成“胖服务器”
- 数据层
数据模型
- 模型是对现实世界特征的模拟和抽象表达
- 数据模型是一种模型,它是模拟和抽象现实世界中数据特征的工具
数据特征与数据模型组成要素
- 数据两种特征:静态特征、动态特征
- 数据的静态特征:数据的基本结构、数据间的联系、对数据取值范围的约束
- 数据的动态特征:对数据可以进行符合一定规则的操作
- 数据模型组成三要素:数据结构、数据操作、数据约束
- 数据结构:描述静态特征,人们常按照数据结构类型来命名数据模型,如层次结构、网状结构、关系结构的对应数据模型分别为层次模型、网状模型、关系模型
- 数据操作:描述动态特征,主要分为更新(插入、删除、修改)和检索
- 数据约束:包括数据完整性约束、数据安全性约束和并发控制约束,同时包含了静态特征和动态特征
数据模型的分类
数据模型可以将现实世界的数据转换成计算机能够加工和处理的形式,应满足三方面要求:
- 能较为真实地模拟现实世界
- 容易为人们所理解
- 便于在计算机上实现
人们通常采用 逐步抽象法 ,在不同抽象层面使用不同数据模型:
- 将现实世界中客观对象抽象为(信息世界)某一种信息结构,这种信息结构不依赖于具体操作系统,也不依赖于具体DBMS,一种 概念模型
- 将概念模型转换为计算机(机器世界)中某一具体DBMS支持的 逻辑模型 和 物理模型
概念层数据模型(概念模型, Conceptual Model)
- 也称为信息模型
- 与具体操作系统无关,独立于任何DBMS,但容易向DBMS支持的逻辑数据模型转换
- 主要用于数据库设计阶段,表示现实世界各事物及其联系
概念模型用于信息世界建模,通常信息世界涉及到的基本概念如下:
- 实体(Entity):客观存在并可以相互区别的事物,如商品、学生(实际的事物),再如课程、比赛(抽象的概念)
- 属性(Attribute):实体具有的某种特征,如学生实体具有学号、姓名、出生日期等属性
- 码/键(Key):唯一标识实体的属性,如学生实体的键是学号
- 域(Domain):属性的取值范围,如学生实体的性别属性的域为男、女、第三性别
- 实体型(Entity Type):用实体名和属性名集合来描述同类实体,如,学生(学号、姓名、性别、出生日期),就是一个实体性
- 实体集(Entity Set):同类实体的集合,如,所有学生实体构成一个实体集
- 联系(Relationship):分为实体型的内部联系(实体各属性的联系,如学生实体中可以根据学号属性查询姓名属性)和外部联系(实体之间的联系,如一个班级实体包含多个学生实体,一个学生实体属于一个班级实体)
概念模型最常用的表示方法是,P.P.S.Chen在1976年提出的 实体-联系方法(Entity-Relationship Approach) ,该方法使用 E-R图(E-R Diagram) 描述现实世界的概念模型,实体-联系方法也称为 E-R模型(E-R Model),其图形含义如下:
- 实体型,用矩形表示
- 属性,用椭圆形表示
- 联系,用菱形表示
实体、属性、联系须使用无向边连接起来,连接联系时,还须在无向边上标注联系类型(1:1、1:N、M:N)

逻辑层数据模型(逻辑模型, Logical Model)
任何DBMS都是基于某种逻辑数据模型,主要的逻辑模型有:
- 层次模型(Hierarchial Model):数据库系统最早使用的一种数据模型,其数据结构是一棵“有向树”,由一个没有父结点的根结点和其它有且仅有一个父结点的结点组成,每个结点对应一个实体集。比如组织机构。层次模型难以表达实体之间比较复杂的联系。典型代表是IMS数据库。
- 网状模型(Network Mdel):层次模型的扩展,允许结点拥有多个父结点,并且允许存在没有父节点的节点,网状模型虽可以方便表示实体间各种类型的联系,但结构复杂,实现的算法难以规范化。
- 关系模型(Relational Model):二维表结构表示实体间联系的模型,并以二维表形式组织数据。其优点是:建立在严格的数学概念基础上,概念单一,统一用关系表示实体间联系,数据结构简单、清晰,用户易懂、易用,存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化了程序员工作和数据库开发建立工作。目前流行的商用数据库大多基于关系模型。
- 面向对象模型(Object Oriented Model):面向对象方法与数据库相结合所构成的数据模型,既是概念模型,又是逻辑模型。用面向对象观点来描述实体,表达能力丰富、对象可复用、维护方便,是数据库发展方向之一。
物理层数据模型(物理模型, Physical Model)
- 描述数据在存储介质上的组织结构,是逻辑模型的物理实现,每种逻辑模型在是实现时都有对应的物理模型
- 物理模型是数据库最底层的抽象
- 物理模型的设计目标是提高数据库性能和有效利用存储空间
- 物理数据结构向用户屏蔽,用户不必了解其细节
附记
重点:基本概念、三级模式、数据模型
不得不说,如果让零经验的初学者学习这部分理论的话,相信大部分初学者都会说“入门到放弃”,很多概念都有点“简单问题复杂化”了,比如三层模式中,前者独立后者,后者却又依赖前者…,徒劳的增加记忆内容,说到底,只有实际用到过的东西,才能真正理解它的定义。