这篇文章上次修改于 213 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
数据库系统概论(绪论)
四个基本概念:数据,数据库,数据库管理系统,数据库系统
(1)数据(Data)
- 是数据库中存储的基本对象,定义为描述事务的符号记录。
- 数据与语义是不可分的。 如:93是一个数据 可以理解为 体重 或者 分数
- 计算机中常常用记录+语义来描述数据
(2)数据库(DB)
- 数据库是长期存储在计算机内,有组织的,可共享的大量数据集合。
- 可以供各种用户共享,具有最小冗余度和较高的数据独立性
(3)数据库管理系统(DBMS)
是指位于应用和操作系统之间的一层数据管理软件,本质是一个大型复杂的软件系统
- 数据定义功能
- 数据组织,存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理(故障与恢复)
- 数据库的建立和维护功能
- 其它
(4)数据库系统(DBS)
数据库系统是指在计算机系统中引入数据库后的系统构成,在不引起混淆的情况下,我们常常把数据库系统简称未数据库。 数据库系统的构成:
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员(DBA)
数据管理技术的产生和发展
数据管理是指对数据进行分类,组织,编码,存储,检索和维护,并处理处理和分析
发展
- 人工管理阶段(20世纪50年代中之前)
- 文件系统阶段(20世纪50年代末–60年代中)
- 数据库系统阶段(20世纪60年代末–现在)
数据库系统特点
数据结构化
- 数据的整体结构化是数据库的主要特征之一
- 数据最小存取单位是数据项
- 数据用数据模型描述,无需由程序定义
- 面向全局,而不仅是某个应用
理解说明:
- 通常使用表格、关系或其他层次化的结构进行存储,数据之间有相互的关系
- 通常是一个字段
- 数据模型后面会提到
- 所有部门操作一个数据库,而不用重复多个数据库
数据的共享性高
- 数据面向整个系统,可以被多个用户多个应用共享处理。
- 共享性高,冗余性低,可扩展性高。
理解说明:
- 例如音乐,可以有歌曲歌手管理部门和歌曲专辑来源管理部门,两者可以使用一个表,而并不用重复记录一个歌曲名,此时,减少了冗余,并且还会更易于扩充
数据独立性高
- 物理独立性
- 逻辑独立性
- 数据独立性由数据库管理系统的二级映像功能来保证
理解说明:
- 物理独立性是指数据库系统中的物理存储结构可以随着需求变化而改变,而不影响应用程序的使用,例如管理员可以在不修改应用程序的情况下,优化数据库的存储方法(更改文件的存储位置、压缩数据、分区等)
- 逻辑独立性是指数据库的逻辑结构(比如表、视图、索引等)发生变化时,不会影响应用程序。例如,添加新的字段、修改表结构、定义新的视图等,应用程序依然能够正常运行。
- 两层映像实际上是指外模式,逻辑模式,内模式之间的相互映射,
数据由数据库管理系统统一管理和控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制
- 数据库恢复
数据模型
能真实模拟,易理解,便于实现。其是数据库系统的核心和基础
两类数据模型
数据模型可以分为两类(两个不同的层次)
- **概念模型(信息模型):**按照用户的观点来对数据和信息建模,用于数据库设计
- **逻辑模型&物理模型:**逻辑模型包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。物理模型是对数据最底层的抽象,描述在磁盘上的表示。
(现实世界->概念模型->逻辑模型)
概念模型
特点:
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
- 较强的语义表达能力
- 简单、清晰、易于用户理解
概念:
- 实体:客观存在并课相互区别的事务
- 属性:实体具有的某一特性
- 键/码(key):实体唯一标识的属性集
- 实体型:实体名及其属性名集合来抽象和刻画的同类实体
- 实体集:统一类型实体的集合
- 联系:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部(属性之间的联系)以及实体之间的联系
E-R图
是一种概念模型的表示方法。
实体型:用矩形表示,矩形框内写明实体名
属性:用椭圆形表示,用无向边将其与相应的实体连接起来
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁表上联系的类型(1:1、1:n、n:m)
常用的数据模型
- 格式化模型:层次模型,网状模型
- 关系模型
- 对象模型:面向对象数据模型,对象关系数据模型
- 半结构化数据模型
- 非结构化数据模型、图模型等
格式化模型中数据结构的基本单位:基本层次联系
层次模型
用树形结构来表示各类实体以及实体之间的联系,有实体之间的一对多的父子联系
- 有且只有一个节点没有双亲,这个节点称为根节点
- 除根以外的其他节点有且只有一个双亲节点
优缺点:
优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
缺点
- 节点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女节点必须通过双亲节点
- 层次数据库的命令趋于程序化
网状模型
网状数据库系统采用网状结构来表示各类实体以及实体间的联系
- 允许一个以上的节点无双亲
- 一个节点可以有多余一个的双亲
优缺点:
优点
- 能够更为直接的描述现实世界,如:一个节点可以有多个双亲
- 具有良好的性能,存取效率较高
缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
- 记录之间联系是通过存取路径实现的,应用程序必须选择存取路径,加重了程序员的负担
关系模型
关系模型中数据的逻辑结构是一张二维表
概念:
- 关系:一个关系对应一张表
- 元组:表中的一行即为一个元组(记录)
- 属性:表中的一列即为一个属性
- 主键(主码/键码):表中的某个属性组合,它可以唯一确定一个元组
- 域:是一组具有相同数据类型的值的集合 属性的取值范围来自某个域。例如:性别的域是(男,女)
- 分量:元组中的一个属性值
- 关系模式:对关系的描述 关系名(属性1,属性2,…,属性n)
每一个分量必须是一个不可分的数据项
优缺点:
优点:
- 关系模型使用关系表示实体和联系,检索结果也是关系,均为二维表结构。
- 存取路径对用户透明,提高数据独立性和安全性,简化程序开发。
缺点:
- 查询效率不如格式化数据模型。
- 为提高性能,需优化查询,增加数据库管理系统开发难度。
数据库系统的结构
从开发人员的角度看:数据库系统采用三级模式结构
- 模式:数据库逻辑结构的抽象描述,描述型而不涉及具体值,相对稳定。
- 实例:模式在某一时刻的具体状态,随数据更新而变化。
数据库系统的三级模式结构
①外模式 = 子模式 = 用户模式:
用户视角的局部数据逻辑结构,用于满足不同用户的需求和安全性要求。一个模式可有多个外模式,但每个应用程序只能使用一个外模式。
②模式 = 逻辑模式
数据库全体数据的逻辑结构,与物理存储、硬件、程序语言无关。它定义数据结构、联系以及安全性和完整性要求。
③内模式 = 储存模式
存储模式,描述数据在硬件上的存储方式,一个数据库只有一个内模式。
映像:
外模式/模式和内模式/模式的转换,保证数据的逻辑和物理独立性。
数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。
-
硬件:需要足够内存、磁盘和通道能力。
-
软件:包括DBMS、操作系统、高级语言、开发工具和应用系统。
-
人员
:
- 数据库管理员 (DBA):负责数据库内容、存储结构、安全性、监控与维护。
- 系统分析员/数据库设计人员:分析需求,设计模式。
- 应用程序员:开发应用程序。
- 用户:最终使用数据库。