1、数据库系统概述
1.1、四个基本概念
1.数据
- 数据是数据库中储存的基本对象
- 数据的定义
- 描述事物的符号记录
- 数据的种类
- 数字、文字、图形、图像、音频、视频等
2.数据库
- 数据库的定义
- 数据库(Database,简称DB)是长期存储在计算机内,有组织的、可共享的大量数据的集合
- 数据库的基本特征
- 数据库按一定的数据模型组织、描述和储存
- 具有较小的冗(rǒng)余度
- 较高的数据独立性
- 易扩展性
- 可为各种用户共享
3.数据库管理系统
-
什么是数据库管理系统
- 位于用户与操作系统之间的一层数据管理软件
- 是基础软件,是一个大型复杂的软件系统
-
数据库管理系统的用途
- 科学地组织和存储数据、高效地获取和维护数据
-
数据库管理系统的主要功能
-
数据定义功能
- 提供数据定义语言(DDL)
- 定义数据库中的数据对象
-
数据组织、存储和管理
- 分类组织、存储和管理各种数据
- 确定组织数据的文件结构和存取方式
- 实现数据之间的联系
- 提供多种存取方法提高存取效率
-
数据操纵功能
- 提供数据操纵语言(DML)
- 实现对数据库的基本操纵(插入、删除、查询和修改)
-
数据库事务管理和运行管理
- 数据库在建立、运行和维护时由数据库管理系统统一管理和控制
- 保证数据的安全性、完整性、多用户对数据的并发使用
- 发生故障后的系统恢复
-
数据库的建立和维护功能
- 数据库初始数据的装载和转换
- 数据库转储、恢复功能
- 数据库的重组织
- 性能监视、分析等
-
其他功能
- 数据库管理系统与网络中其他软件系统的通信
- 数据库管理系统与系统之间的数据转换
- 异构数据库之间的互访和互操作
-
4.数据库系统
- 数据库系统(Database System,简称DBS)
- 数据库系统的构成
- 数据库
- 数据库管理系统
- 应用程序
- 数据库管理员
1.2、数据管理技术的产生和发展
1.什么是数据管理
- 对数据进行分类、组织、编码、存储、检索和维护
- 数据处理的中心问题
2.数据管理技术的发展过程
1.人工管理阶段(20世纪50年代中之前)
- 特点:
- 数据不保存
- 应用程序管理数据
- 数据不共享,冗余度极大
- 数据不具有独立性
2.文件管理阶段(20世纪50年代末–60年代中)
- 特点:
- 数据可以长期保存
- 由文件系统管理数据
- 数据共享性差,冗余度大
- 数据独立性差
3.数据库系统阶段(20世纪60年代末–现在)
1.3、数据库系统的特点
1.数据结构化
- 数据的整体结构化是数据库的主要特征之一,也是数据库系统与文件系统的本质区别
- 整体结构化
- 不再仅仅针对某一个应用,而是面向全组织
- 不仅数据内部结构化,整体是结构化的,数据之间具有联系
- 数据记录可以变长
- 数据的最小存取单位是数据项
- 数据的结构用数据模型描述,无需应用程序定义
2.数据的共享性高,冗余度低且易扩充
- 数据面向整个系统,可以被多个用户、多个应用共享使用
- 数据共享的好处
- 减少数据冗余,节约存储空间
- 避免数据之间的不相容性与不一致性
- 使系统易于扩充
3.数据独立性高
-
物理独立性:
指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据
的物理存储改变了,应用程序不用改变。
-
逻辑独立性:
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构
改变了,应用程序不用改变。
-
数据独立性由数据库管理系统的二级映像功能来保证。
4.数据有数据库管理系统统一管理和控制
数据库管理系统提供的数据控制功能
-
数据的安全性保护:
保护数据以防止不合法的使用造成的数据的泄漏和破坏。
-
数据的完整性检查:
保证数据的正确性、有效性和相容性。
-
并发控制:
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结构。
-
数据库恢复:
将数据库从错误状态恢复到某一已知的正确状态。
数据管理三个阶段的比较图:
小结
数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以公股各种用户共享,具有最小冗余度和比较高的数据独立性。
数据库管理系统在数据库建立、运行和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时
进行并发控制,在发生故障后对数据库进行恢复。数据库的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心
的新阶段。
2、数据模型
- 数据模型是对现实世界数据特征的抽象。通俗地讲数据模型就是现实世界的模拟。
- 数据模型应满足三方面要求:
- 能比较真实地模拟现实世界
- 容易为人理解
- 便于在计算机上实现
- 数据模型是数据库系统的核心和基础
2.1、两类数据模型
- 概念模型(信息模型)
- 按用户的观点来对数据和信息建模,主要用于数据库设计
- 逻辑模型和物理模型
- 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系模型、半结构化数据模型等
- 物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘和磁带上的存储方式和存取方法,是面向计算机系统的。
把现实事务转化为数据模型的过程:先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。
2.2、概念模型
1.用途
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
2.基本要求
- 较强的语义表达能力
- 简单、清晰、易于用户理解
3.信息世界中的基本概念
- 实体
- 客观存在并可相互区别的事物称为实体
- 实体可以是具体的人、事、物,也可以是抽象的概念或联系
- 属性
- 实体所具有的某一特性称为属性
- 一个实体可以由若干个属性来刻画
- 码
- 唯一标识实体的属性集称为码
- 实体型
- 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
- 实体集
- 同一类型实体的集合称为实体集
- 联系
- 实体内部的联系通常是值组成实体的各属性之间的联系
- 实体外部的联系通常是指不同实体集之间的联系
- 实体之间的联系有一对一,一对多和多对多等多种类型
4.实体-联系方法(概念模型的表示方法)
- 用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型
2.3、数据模型的组成要素
1.组成要素
- 数据结构
- 数据结构描述数据库的组成对象以及对象之间的联系
- 描述的内容
- 与对象的类型、内容、性质有关
- 与数据之间的联系有关
- 数据结构是对系统静态特性的描述
- 数据操作
- 定义
- 反映和规定必须遵守的基本的通用的完整性约束
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件
- 对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关操作规则
- 类型
- 查询
- 更新(包括插入、删除、修改)
- 数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言
- 数据操作是对系统动态特性的描述
- 定义
- 数据的完整性约束条件
- 数据的完整性约束条件是一组完整性规则
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 作用:用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
2.4、常用的数据模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model)
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
- 半结构化数据模型(Semistruture Data Model)
2.5、层次模型
- 层次模型是数据库系统中最早出现的数据库模型
- 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
- 层次模型用树形结构来表示各类实体以及实体间的联系
判断为层次模型的两个条件:
- 有且只有一个节点没有双亲结点,这个结点称为根节点
- 根以外的其他结点有且只有一个双亲结点
层次模型示例:
- 层次模型的数据操纵
- 查询
- 插入
- 删除
- 更新
- 层次模型的完整性约束条件
- 无相应的双亲结点值不能插入子女结点值
- 如果删除双亲结点值,则相应的子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,以保证数据的一致性
- 优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供良好的完整性支持
- 缺点
- 结点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 层次命令趋于程序化
2.6、网状模型
-
网状数据库系统采用网状模型作为数据的组织方式
-
典型代表是20世纪70年代由DBTG提出的一个系统方案–DBTG系统,也叫CODASYL
-
实际系统
- Cullinet Software公司的IDMS
- Univac公司的 DMS1100
- Honeywell公司的IDS/2
- HP公司的IMAGE
-
网状模型的判断条件:
- 允许一个以是的结点无双亲
- 一个结点可以有多于一个的双亲
-
网状模型与层次模型的区别
- 网状模型允许多个结点没有双亲结点
- 网状模型允许结点有多个双亲结点
- 网状模型允许两个结点之间有多种关系(复合关系)
- 网状模型可以更直接地描述现实世界
- 层次模型实际上是网状模型的一个特例
-
优点
- 能够更为直观地描述现实世界
- 具有良好的性能,存取效率高
-
缺点
-
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,
不利于最终用户掌握
-
DDL、DML语言复杂,用户不容易使用
-
记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
-
2.7、关系模型
- 关系数据库系统采用关系模型作为数据的组织方式
- 1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
- 计算机厂商新推出的数据库管理系统几乎都支持关系模型
1.数据结构
-
关系(Relation)
- 一个关系对应通常说的一张表
-
元组(Tuple)
- 表中的一行即为一个元组
-
属性(Attribute)
- 表中的一列即为一个属性,给每一个属性起一个名称即属性名
-
主码(Key)
- 也称为码键。表中的某个属性组,它可以唯一确定一个元组
-
域(Domain)
- 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
-
分量
- 元组中的一个属性值
-
关系模式
-
对关系的描述
关系名(属性1,属性2,……,属性n)
学生(学号,姓名,年龄,……)
-
-
关系模型的数据操纵
- 查询
- 插入
- 删除
- 更新
-
数据操作是集合操作,操作对象和操作结果是关系
-
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“这么干”
-
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
-
优点
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
-
缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
3、数据库系统的结构
- 从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
- 从数据库最终用户角度看,数据库系统的结构分为:
- 单用户结构
- 主从式结构
- 分布式结构
- 客户-服务器
- 浏览器-应用服务器/数据库服务器多层结构等
3.1、数据库系统模式的概念
1.型和值的概念
- 型
- 对某一类数据的结构和属性的说明
- 值
- 是型的一个具体赋值
2.模式
- 数据库逻辑结构和特征的描述
- 是型的描述,不涉及具体值
- 反映的是数据的结构及其联系
- 模式是相对稳定的
3.实列
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
3.2、数据库系统的三级模式结构
三级模式结构示意图:
1.模式(也称为逻辑模式)
定义:
- 数据库中全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图
- 模式是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关
注意:一个数据库只有一个模式
2.外模式(也称子模式或用户模式)
定义:
- 数据库用户能看见和使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图
- 与某一应用有关的数据的逻辑表示
补充:外模式通常是模式的子集。一个数据库可以有多个外模式
3.内模式(也称存储模式)
定义:
- 数据物理结构和存储方式的描述
- 数据在数据库内部的组织方式
注意:一个数据库只有一个内模式
3.3、数据库的二级映像功能与数据独立性
1.外模式/模式映像
概念:当模式改变时,由数据库管理员对各个外模式/模式的映像作相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序必修改,保证了数据和程序的逻辑独立性,简称数据的逻辑独立性。
2.模式/内模式映像
概念:当数据库的存储结构发生改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,。保证了数据和程序的物理独立性,简称数据的物理独立性。
4、数据库系统的组成
- 硬件平台及数据库
- 软件
数据库系统的软件主要包括:
-
数据库管理系统
-
支持数据库管理系统运行的操作系统
-
具有与数据库接口的高级语言及其编译系统,便于开发应用程序
-
以数据库管理系统为核心的应用开发工具
-
为特定应用环境开发的数据库应用系统
3.人员
-
职责:
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的使用和运行
- 监控数据库的使用和运行
- 数据库的改进和重组、重构
5、参考
本文参考于《数据库系统概论(第五版)》高等教育出版社,图片也摘自本书。如想更详细了解数据库相关信息可以参阅本书。