绪论
绪论
1.1 数据库系统概述
1.1.1 数据库的4个基本概念
- 数据(Data) : 描述事物的符号
- 数据的含义为数据的语义,数据与其语义是不可分的。
- 数据库(DataBase) : 长期存储在计算机内、有组织的、可共享的大量数据的集合
- 数据库中的数据按一定的数据模型组织、描述和储存
- 较小的冗余度
- 较高的数据独立性
- 易拓展性
- 可为各种用户共享
- 数据库管理系统(DataBase Management System) : 位于用户与操作系统的一层数据管理软件
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和维护能力
- 数据库的建立和维护功能
- 其他功能
- 数据库系统(DataBase System) : 由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator)组成的存储、管理、处理和维护数据的系统
1.1.2 数据管理技术的产生和发展
在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。
人工管理 | 文件系统 | 数据库系统 | |
---|---|---|---|
应用背景 | 科学技术 | 科学技术、数据管理 | 大规模数据管理 |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 |
数据管理者 | 用户 | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某个应用程序 | 某一应用 | 现实世界 |
数据的共享程度 | 无共享、冗余度极大 | 共享性差、冗余度大 | 共享性高、冗余度小 |
数据独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 |
数据结构化 | 无结构 | 记录内有结构、整体无结构 | 整体结构化,用数据模型描述 |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由DBMS提供数据安全性、完整性、并发控制和恢复能力 |
1.2 数据模型
数据模型(data model) 也是一种模型,它是对现实世界数据特效的抽象。是用来描述数据、组织数据和对数据进行操作的。是数据库系统的核心和基础
1.2.1 两类数据模型
根据模型应用的不同目的,可以将这些模型划分为两大类 :
- 概念模型
- 它是按用户的观点来对数据和信息建模,主要用于数据库设计
- 逻辑模型和物理模型
- 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。
- 物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方式,是面向计算机系统的。
人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。
1.2.2 概念模型
概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。
信息世界中的基本概念
- 实体(entity) : 客观存在并可相互区别的事物
- 属性(attribute) : 实体所具有的某一特征
- 码(key) : 唯一标识实体的属性集
- 实体型(entity type) : 用实体名及其属性名集合来抽象和刻画同类实体
- 实体集(entity set) : 同一类型实体的集合
- 联系(relationship) : 实体之间的联系通常是指不同实体集之间的联系
模型概念的一种表示方法 : 实体-联系方法
1.2.3 数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
- 数据结构 : 描述数据库的组成对象以及对象之间的联系
- 是与对象的类型、内容、性质有关的
- 是与数据之间联系有关的对象
- 数据操作 : 是指对数据库中的各种对象(型)的实例(值)允许的操作的集合,包括操作及其有关的操作准则
- 查询
- 更新
- 数据的完整性约束条件 : 是一组完整性规则
1.2.4 常用的数据模型
- 层次模型(hierarchical model)
- 网状模型(network model)
- 关系模型(relational model)
- 面向对象数据模型(object oriented data model)
- 对象关系数据模型(object relational data model)
- 半结构化数据模型(semistructure data model)
1.2.5 层次模型
- 层次模型的数据结构
- 有且只有一个结点没有双亲结点 -> 根结点
- 根以外的其他结点有且只有一个双亲结点
- 层次模型的数据操纵与完整性约束
- 数据操纵 : 查询、插入、删除和更新
- 完整性约束 :
- 插入 : 如果没有相应的双亲结点值就不能插入到它的子女结点值
- 删除 : 如果删除双亲结点值,则相应的子女结点值也将被同时删除
- 层次模型的优缺点
- 优点 :
- 层次模型的数据结构比较简单清晰
- 层次数据库的查询效率高
- 层次数据模型提供了良好的完整性支持
- 缺点 :
- 现实世界中很多联系是非层次性的
- 如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙
- 查询子女结点必修通过双亲结点
- 由于结构严密,层次命令趋于程序化
- 优点 :
1.2.6 网状模型
- 网状模型的数据结构
- 允许一个以上的结点无双亲
- 一个结点可以有多个双亲
- 网状模型的数据操纵与完整性约束
- 一般来说没有层次模型那样严格的完整性约束条件
- 网状模型的优缺点
- 优点
- 能够更好直接地描述现实世界
- 具有良好的性能,存取效率高
- 缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户容易掌握
- 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存储路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担
- 优点
1.2.7 关系模型
- 关系模型的数据结构
- 关系(relation) : 一个关系对应通常说的一张表
- 元组(tuple) : 表中的一行即为一个元组
- 属性(attribute) : 表中的一列即为一个属性,给每个属性起一个名称即属性名
- 码(key) : 表中的某个属性组,它可以唯一确定一个元组
- 域(domain) : 一组具有相同数据类型的值的集合
- 分量 : 元组中的一个属性值
- 关系模式 : 对关系的描述
关系模型要求关系必须是规范化的,这些规范条件中最基本的一条就是 : 关系的每一个分量必须是一个不可分的数据项(不允许表中还有表)
- 关系模型的数据操纵与完整性约束
- 完整性约束 :
- 实体完整性
- 参照完整性
- 用户定义完整性
- 数据操纵 : 集合操作
- 关系模型的优缺点 :
- 优点 :
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的
- 关系模型的概念单一。所以其数据结构简单、清晰,用户易懂易用
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作
1.3 数据库系统的结构
1.3.1 数据库系统模式的概念
在数据模型中有 “型(type)” 和 “值(value)” 的概念。
- 型 是指对某一类数据的结构和属性的说明
- 值 是型的一个具体赋值。
- 模式(schema) 是数据库中全体数据的逻辑结构和特征的描述
- 实例(instance) 是模式的一个具体值
同一个模式可以有多个实例
1.3.2 数据库系统的三级模式结构
- 模式(schema) : 是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
- 外模式(external schema) : 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
- 内模式(internal schema) : 是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
一个数据库只有一个模式和内模式,可以有多个外模式
1.3.3 数据库的二级映像功能与数据独立性
- 外模式/模式映像 : 定义了该外模式与模式之间的对应关系
- 模式/内模式映像 : 定义了数据全局逻辑结构与存储结构之间的对应关系
- 数据逻辑独立性 : 当模型改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性
- 数据物理独立性 : 当数据库的存储结构改变时,由数据库管理员对各个模式/内模式的映像作相应改变,可以使模式保持不变,从而应用程序不必修改,保证了数据与程序的物理独立性
1.4 数据库系统的组成
- 硬件平台及数据库
- 要有足够大的内存,存放CS、DBMS的核心模块、数据库缓冲区和应用程序
- 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带作数据备份
- 要求系统有较高的通道能力,以提高数据传达率
- 软件
- 数据库管理系统
- 支持数据库管理系统允许的操作系统
- 具有与数据库接口的高级语言及其编译系统
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
- 人员
- 数据库管理员
- 决定数据库中的信息内容和结构
- 决斗数据库的存储结构和存储策略
- 定义数据的安全性要求和完整性约束条件
- 监控数据库的使用和运行
- 数据库的改进和重组、重构
- 系统分析员和数据库设计人员
- 应用程序员
- 用户
- 偶然用户
- 简单用户
- 复杂用户
- 数据库管理员
绪论
http://yjh-2860674406.github.io/2022/09/01/数据库原理/课本/绪论/