第一章 绪论
1.1 数据库系统概述
1.1.1 数据库的4个基本概念
- 数据Data
定义:描述事物的符号记录
数据的语义:数据的含义,与数据不可分
数据是有结构的:记录是计算机存储数据的一种格式或一种方法
- 数据库(DataBase, DB)
定义:长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中数据按照一定数据模型组织、描述和存储;具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享
基本特点:永久存储、有组织、可共享
- 数据库管理系统(DataBase Management System, DBMS)
定义:位于用户应用和操作系统之间的一层数据管理软件,是一个大型复杂的软件系统,和操作系统一样是计算机的基础软件。
用途:科学地组织和存储数据、高效地获取和维护数据
主要功能:
(1) 数据定义(提供数据定义语言DDL(Data Definition Language);
(2) 数据组织、存储和管理
(3) 数据操纵(提供数据操纵语言DML,实现对数据库的基本操作)
(4) 数据库的事务管理和运行管理
(5) 数据库的建立和维护
(6) 其他功能
- 数据库系统(DataBase System, DBS)
定义:由数据库、数据库管理系统(及应用开发工具)、应用程序和数据库管理员(DataBase Administrator, DBA)组成的存储、管理、处理和维护数据的系统。
通常把数据库系统简称为数据库
1.1.2 数据管理技术的产生和发展
数据管理:对数据进行分类、组织、编码、存储、检索和维护
人工管理阶段 → 文件系统阶段 → 数据库系统阶段
- 人工管理阶段
特点:
? 数据不保存
? 应用程序管理数据
? 数据不共享
? 数据不具有独立性
- 文件系统阶段
特点:
? 数据可以长期保存
? 由文件系统管理数据
? 数据共享性差、冗余度大
? 数据独立性差
- 数据库系统阶段
数据库观点:数据不是依赖于处理过程的附属品,而是现实中独立存在的对象
从文件系统到数据库系统标志着数据管理技术的飞跃
1.1.3 数据库系统的特点
- 数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
所谓"整体结构化"是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。
- 数据的共享性高、冗余度低且易扩充/数据集成与共享,可控冗余度
数据共享可以大大减少数据冗余,节约存储空间,数据共享还能够避免数据之间的不相容性与不一致性。
数据可以被多个应用共享使用,且容易增加新的应用,这就是的数据库系统弹性大,易于扩充
- 数据独立性高
物理独立性:用户的应用程序与数据库中的数据存储是相互独立的
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的的
- 数据有数据库管理系统统一管理和控制
(1)数据的安全性(security)保护
数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏
(2)数据的完整性(integrity)检查
数据的完整性是数据的正确性、有效性和相容性
(3)并发(concurrency)控制
(4)数据库恢复(recovery)
数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以被各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
数据库系统的出现使信息系统从 以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段
1.2 数据模型
数据模型(data model)是对现实世界数据特征的抽象,时数据库系统的核心和基础。
满足三方面要求:真实模拟现实、容易为人所理解、便于在计算机上实现
1.2.1 两类数据模型
(1)概念模型/信息模型 按照用户观点建模,主要用于数据库设计
(2)逻辑模型和物理模型
逻辑模型——按计算机系统观点对数据建模,用于DBMS实现
物理模型——描述数据在系统内(磁盘上)的表示方式和存取方法
人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界
1.2.2 概念模型
用途:信息世界建模、数据库设计的有力工具,数据库设计人员和用户之间进行交流的语言
基本要求:语义表达能力强、简单清晰易于用户理解
- 信息世界中的基本概念
(1)实体(Entity)——客观存在并可相互区别的事物
(2)属性(attribute)——实体所具有的某一特性
(3)码(Key)——唯一标识实体的属性
(4)实体型(Entity Type)——用实体名及其属性名集合来抽象刻画同类实体
(5)实体集(Entity Set)——同一类型实体的集合
(6)联系Relationship
- 实体-联系方法——概念模型的一种表示方法
Entity-Relationship approach实体-联系方法,用E-R图描述现实世界的概念模型。E-R方法也成为E-R模型
1.2.3数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性的约束条件三部分组成
- 数据结构
数据结构描述系统的静态特性,包括数据库的组成对象以及对象之间的联系
- 数据操作——描述系统动态特征
数据操作描述系统的动态特性,指对各种对象(型)的实例(值)允许执行的操作的集合,包括操作有关的操作规则
- 完整性约束
数据的完整性约束条件是一组完整性规则
1.2.4 常用的数据模型
层次模型
网状模型
关系模型
面向对象数据模型
对象关系数据模型
半结构化数据模型——如XML
非结构化数据模型、图模型......
基本层次联系:两个记录以及它们之间的一对多(包括一对一)联系
1.2.5 层次模型
层次模型用树形结构来表示各类实体以及实体间的联系
定义:满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点
- 根以外的其他结点有且仅有一个双亲结点
表示方法
? 实体型:用记录类型描述,每个节点表示一个记录类型
? 属性:用字段描述,每个记录类型可包含若干个字段
? 联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系
特点:
? 结点的双亲是唯一的
? 只能处理一对多的实体联系
? 任何记录值只能按其路径查看
? 没有任何一个子女能够脱离双亲记录值而独立存在
数据操纵:查询、插入、删除、更新
完整性约束条件:
? 无相应双亲结点值就不能插入子女结点值
? 如果删除双亲结点值,则相应的子女结点也同时删除
? 更新操作时,应更新所有相应记录,以保证数据的一致性
优点:
? 层次模型的数据结构比较简单清晰
? 查询效率高,性能优于关系模型,不低于网状模型
? 层次数据模型提供了良好的完整性支持
缺点:
? 结点之间的多对多联系表示不自然
? 对插入和删除操作的限制多,应用程序的编写比较复杂
? 查询子女结点必须通过双亲结点
? 层次数据库的命令(语言)趋于程序化
1.2.6 网状模型
网状数据库系统采用网状结构来表示各类实体以及实体间的联系
定义:满足下面两个条件的基本层次联系的集合为层次模型
- 允许一个一个以上的结点无双亲
- 一个结点可以又多于一个的双亲
表示方法
? 实体型:用记录类型描述,每个节点表示一个记录类型
? 属性:用字段描述,每个记录类型可包含若干个字段
? 联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系
特点:
? 能够更为直接地描述现实世界
? 具有良好的性能
缺点:
? 结构复杂,不利最终用户掌握
? 其DDL、DML语言复杂,用户不易使用
1.2.7 关系模型
关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项
数据操纵与完整性约束:
? 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系(若干元组的集合)。关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”或”找什么“,不必详细说明“怎么干”或“怎么找”,大大提高了数据独立性,提高了用户生产率
优点:
-
建立在严格数学基础上
-
概念单一,数据结构简单、清晰,用户易懂易用
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
-
存取路径对用户透明(用户看不到存取路径)
- 具有更高的数据独立性、更好的安全保密性
- 简化了程序员的工作和数据库开发建立工作
-
缺点:
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
1.3 数据系统的结构
1.3.1 数据库系统模式的概念
在数据模型中有“型”(type)和"值"(value)的概念。
型:对某一类数据的结构和属性的说明
值:型的一个具体赋值
模式(schema):数据库中全体数据的逻辑结构和特征的描述
实例(instance):模式的一个具体值
模式是相对稳定的,而实例是相对变动的
1.3.2 数据库系统的三级模式结构
- 模式schema
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
- 外模式external schema
外模式也称子模式(subschema)或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
- 内模式internal schema
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
1.3.3 数据库的二级映像功能与数据独立性
- 外模式/模式映像
当模式改变时,由数据库管理员对各个外模式/模式映像做相应改变,可以使外模式保持不变。应用程序是根据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
- 模式/内模式映像
当数据库的存储结构改变时,有数据库管理员对模式/内模式映像做相应改变,可以使模式模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
1.4 数据库系统的组成
-
硬件平台及数据库
-
软件
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 具有与数据库接口的高级语言及其编译系统
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
-
人员
(1)数据库管理员(DataBase Administrator,DBA)
(2)系统分析和数据库设计人员
(3)应用程序员
(4)用户