Tags: 数据库
1.1 数据库系统概述
1.1.1 数据库的4个基本概念
数据(data)
- 描述事物的符号记录称为 数据 。
- 数据的含义称为数据的语义,数据与语义是不可分的。
数据库(DataBase, DB)
- 数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
- 概论的讲,数据库数据具有 永久存储 、 有组织 和 可共享 三个基本特点。
数据库管理系统(DataBase Management System, DBMS)
- 数据库管理系统是位于用户和操作系统之间的一层数据管理软件。和操作系统一样是计算机的基础软件。
- 主要功能:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能
数据库系统(DataBase System, DBS)
- 数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
1.1.2 数据管理技术的产生和发展
- 人工管理阶段
具有以下特点:
- 数据不保存
- 应用程序管理数据
- 数据不共享
- 数据不具有独立性
- 文件系统阶段
具有以下特点:
- 数据可以长期保存
- 由文件系统管理数据
- 数据共享性差,冗余度大
- 数据独立性较差
- 数据库系统阶段
1.1.3 数据库系统的特点
数据结构化
- 数据库实现整体数据的结构化,数据不仅针对某一应用,而是面向整个组织或企业。
- 不仅数据内部是结构化的,而且整体是结构化的。
数据的共享性高、冗余度低且易扩充
- 数据可以被多个用户、多个应用共享使用。
- 数据共享可以大大减少数据冗余,节约存储空间。
- 数据共享可以避免数据之间的不相容性与不一致性。
- 容易增加新的应用,使得数据库系统弹性大,易于扩充。
数据独立性高
- 物理独立性
指用户的应用程序与数据库中数据的物理存储是相互独立的。 - 逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。 - 数据独立性是由数据库管理系统提供的 二级映像功能 来保证的。
- 物理独立性
数据由数据库管理系统统一管理和控制
- 数据安全性保护
指保护数据以防止不合法使用造成的数据泄密和破坏。 - 数据的完整性检查
数据的完整性指数据的正确性、有效性和相容性。 - 并发控制
对多用户的并发操作加以控制和协调。 - 数据库恢复
讲数据库从错误状态恢复到某一已知的正确状态。
- 数据安全性保护
综上所述,数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、作用和维护时对数据进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
1.2 数据模型
- 数据库技术的发展是沿着数据模型的主线推进的。
- 数据模型是 对现实世界数据特征的抽象 ,用来 描述数据 、 组织数据 和 对数据进行操作 。
- 数据模型是数据库系统的核心和基础。
1.2.1 两类数据模型
- 数据模型应满足:
- 能比较真实地模拟现实世界。
- 容易为人所理解。
- 便于在计算机上实现。
两类数据模型:
- 概念模型
也称信息模型,它是按用户的观点对数据进行和信息建模,主要用于数据库设计。
- 逻辑模型和物理模型
- 逻辑模型
主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。 它是按照计算机系统的观点对数据建模,主要用于数据管理系统的实现。 - 物理模型
是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方式。物理模型的具体实现是数据库管理系统的任务,用户不必考虑。
- 逻辑模型
1.2.2 概念模型
基本概念
- 实体
客观存在并可相互区别的食物称为实体。可以是具体的人、物、事,也可以是抽象的概念或关系。如一个学生,一门课,学生与学校的关系,淘宝上的一个订单。 - 属性
实体所具有的某一特征称为属性。一个实体可以有若干属性。如学生实体的姓名和学号。 - 码
唯一 标识实体的属性集称为码。如学生的学号。 - 实体型
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。如学生(学号,姓名,性别)
就是一个实体型。 - 实体集
同一类型实体的集合称为实体集。如 全体学生。 - 联系
实体型内部或者实体型之间的联系。实体之间的联系通常是指不同实体集之间的联系。
实体之间的联系有 一对一 、 一对多 和 多对多 。
- 实体
概念模型的一种表示方法:
实体-联系方法(Entity-Relationship approach)。
该方法用户 E-R 图 来描述现实世界的概念模型,E-R 方法也称为 E-R 模型 。
1.2.3 数据模型的组成要素
- 数据结构
数据结构描述数据库的组成对象以及对象之间的联系。 - 数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
主要有 增、删、改、查 。 - 数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
1.2.4 常用的数据模型
层次模型
- 满足以下两点的基本层次联系的集合为层次模型:
- 有且只有一个几点没有双亲节点,这个节点称为根节点;
- 根以外的其他节点有且只有一个双亲结点。
- 任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。
- 进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。
- 进行删除操作时,如果删除双亲结点值,则相应的子女结点值也将被同时删除。
- 满足以下两点的基本层次联系的集合为层次模型:
网状模型
- 满足一下两个条件的基本层次联系集合称为网状模型:
- 允许一个以上的结点无双亲。
- 一个结点可以有多于一个的双亲。
- 层次模型中子女结点和双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。
- 满足一下两个条件的基本层次联系集合称为网状模型:
1.2.7 关系模型
关系模型是最重要的一种数据模型。
- 关系模型的数据结构
- 关系 :一个关系对应一张表。
- 元组 :表中的一行。
- 属性 :表中的一列。
- 码 :可以唯一确定一个元组的属性。
- 域 :一组具有相同数据类型的值的集合。
- 分量 :元组中的一个属性值。
- 关系模式 :对关系的描述,一般表示为
关系名(属性1,属性2,...,属性n)
关系模型要求关系必须是规范化的,其中最基本的一条是,关系的每一个分量必须是不可分的数据项。也就是不允许表中还有表。
- 关系模型的数据操纵与完整性约束
- 数据操纵主要包括: 查询 、 插入 、 删除 和 更新数据 。
- 以上操作必须满足关系的 完整性约束条件:
- 实体完整性
- 参照完整性
- 用户定义的完整性
- 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系。
1.3 数据库系统的结构
1.3.1 数据库系统模式的概念
- 在数据模型中有 型(type) 和 值(value) 的概念。型是指对一类数据的结构和属性的说明,值是型的一个具体赋值。就跟在面向对象编程中的类和对象一样。
- 模式 是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个 实例。
- 模式反应的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
1.3.2 数据库的三级模式结构
三级模式: 外模式 、 模式 和 内模式 。
1. 模式
- 数据模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库模式结构中的中间层。
- 模式实际上是数据结构在逻辑上的视图。一个数据库只有一个模式。
2. 外模式
- 外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
- 外模式通常是模式的子集。一个数据库可以有多个外模式。
- 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
3. 内模式
- 内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
1.3.3 数据库的二级映像功能与数据独立性
为了能够在系统内部实现三个模式的联系和转换,数据库管理系统在这三级模式之间提供了两层映像。保证数据库系统中能够具有较高的逻辑独立性和物理独立性。
外模式/模式 映像
- 对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。
- 映像定义在外模式的描述中。
- 模改变时,对外模式/模式映像进行修改,可使外模式保持不变。称为数据的 逻辑独立性。
模式/内模式 映像
- 数据库码只有一个模式,也只有一个内模式,所以模式/内模式映像是 唯一 的。
- 当数据库的存储结构改变时(即内模式改编),改编模式/内模式映像,可使模式保持不变。保证了数据与程序的物理独立性。简称数据的 物理独立性。
参考资料:数据库系统概论 第五版 王珊 萨师煊 著