本笔记是我在学习《数据库系统概论(第5版)》所记,提取课本重点,加上我自己的理解
文章目录
1.数据库系统概述
1.1四个基本概念
分别为数据(data)、数据库(DataBase, DB)、数据库管理系统(DataBase Management System, DBMS)、数据库系统(DataBase System, DBS)
1.1.1数据
数据:描述事物符号的记录
数据的表现形式并不能完全表达其内容,需要经过解释,数据与语义密不可分
计算机中数据记录方式如下:
(李明, 男, 199505, 江苏南京市, 计算机系)
1.1.2数据库(DB)
数据库是计算机中存放数据的仓库
数据库数据具有三大基本特点:永久存储、 有组织、 可共享
1.1.3数据库管理系统(DBMS)
DBMS与操作系统一样,是基础系统软件,主要是为了解决如何科学地组织和存储数据,如何高效的获取和维护数据等问题
计算机结构: ( ( ( ( 裸机 ) OS ) DBMS ) 用户 )
功能包括:
-
数据定义功能
通过==数据定义语言(Data Definition Language, DDL)==对数据库中数据对象的组成和结构进行定义
-
数据组织、存储和管理
目标提高空间利用率和使用效率
-
数据操纵功能
通过==数据操纵语言(Data Manipulation Language, DML)==实现数据库中的增、删、查、改等基本操作
-
数据库的事务管理和运行管理
-
数据库的建立和维护功能
-
其他
其他功能包括数据库与网络通信、数据库与数据库之间数据交换等
1.1.4数据库系统(DBS)
DBS是由数据库、数据库管理系统(及其应用开发工具))、应用程序和==数据库管理员(DataBase Administrator,DBA)==组成的存储、管理、处理和维护数据的系统。
一般情况下所说的数据库就是指数据库系统
1.2数据管理发展的三个阶段
三个阶段分别是人工管理阶段、文件系统阶段、数据库系统阶段
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | |
---|---|---|---|
时间 | 1950以前 | 1950后期-1960中期 | 1960以后 |
应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 |
处理方式 | 批处理 | 联机实时处理、批处理 | 练级实时处理、批处理、分布处理 |
数据管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据共享程度 | 无共享、冗余度极大,一组数据对应一个程序,各个程序各自定义,不共享 | 一组文件对应一个程序,但文件共享性差、冗余度大 | 共享性高,冗余度小 |
数据独立性 | 不独立,完全依赖于应用程序 | 应用针对具体的应用来设计和优化的,独立性差 | 具有较高物理独立性和一定逻辑独立性 |
数据结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化、用数据模型描述 |
综合来说,
人工管理阶段:程序员设计程序,每个程序都是独立的,程序员将数据存入程序中,自己使用,保存时间短
文件系统阶段:使用文件系统,数据存于文件中,一组文件对应一个程序,程序按文件名访问,按记录进行存取,且当时已有联机实时处理的方式,数据也可以通过磁盘等长期存取保留
数据库系统阶段:数据量的提升,多应用互相覆盖,共享急需等原因使得DBMS的出现
2.数据模型
数据模型也是一种模型,是对现实数据特征的抽象
数据模型是数据库系统的核心和基础
2.1两类数据模型
为满足三方面的要求(1.比较能真实的模拟显示世界,2.容易为人所能理解,3.便于在计算机上实现),要针对不同类型数据采用不同数据模型
总共三种模型,又被分为两大类,如下:
2.1.1概念模型
(又称信息模型)
实体:客观存在并可以相互区别的事物称为实体
属性:实体所具有的属性
码(key):(又称 键)唯一标识实体的属性
实体型:用实体名以及属性名集合来抽象和刻画同类实体
例如(李明, 男, 199505, 江苏南京市, 计算机系)就是一个实体型
实体集:同一类型实体的集合
例如全体学生就是一个实体集
联系:实体之间存在联系
联系包括一对一、一对多、多对多等
实体-联系方法(Entity-Relationship approach):概念模型用来构建真实世界的方法。
该方法使用E-R图(E-R diagram),因此该方法构建的模型也被称为E-R模型
2.1.2逻辑模型和物理模型(数据模型)
这一类完成了对数据的抽象,所以也被称为数据模型
数据模型三要素:
-
数据结构
指数据库内组成对象、对象与对象之间的关系。
-
数据操作
指对数据库内的数据进行操作的规则,增删查改等。
-
数据的完整性约束条约
是一组完整性规则,规定了数据库的状态以及状态的变化,保证了数据的正确、有效和相容。
逻辑模型主要包括层次模型、网状模型、关系模型、面对对象数据模型、对象关系数据模型、半结构化数据模型(层次模型和网状模型又被称为格式化模型)
主要介绍前三种:
2.1.2.1层次模型
1.数据结构
满足以下两个条件的基本层次联系即为层次模型:
- 有且仅有一个结点没有双亲结点,这个结点被称为根结点
- 根结点以外的结点有且仅有一个双亲结点
(类比树结构)
实例:
2.优点
-
结构清晰简单
-
查询效率高
使用指针,十分便捷快速,层次数据库性能优于关系数据库,不低于网状数据库
-
提供了良好的完整性支持
3.缺点
- 实际很多联系非层次
- 如果一个结点具有多个双亲结点,层次模型就会产生很多冗余数据,操作就会变得复杂
- 查询子女结点必须通过双亲结点
- 层次命令趋于程序化
2.1.2.2网状模型
1.数据结构
满足以下两个条件的基本层次联系即为网状模型:
- 允许一个以上的结点无双亲
- 一个结点可以有多于一个的双亲
网状结构比层次结构更普遍,去除了层次结构的两个限制(允许多个结点无双亲,允许结点有多个双亲),描述实际更直接,相当于层次模型是它的特例。
2.优点
- 描述现实世界更直接
- 具有良好性能,存取效率高
3.缺点
- 结构复杂,数据越多越复杂
- 网状模型的DDL、DML复杂
- 因为记录的联系通过存取路径实现的,应用程序访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了应用程序编写负担
2.1.2.3关系模型
1.数据结构
是一张二维表,如下:
学号 | 姓名 | 年龄 | 性别 | 年级 | 专业 |
---|---|---|---|---|---|
000000 | 小明 | 19 | 男 | 2018 | 网络工程 |
000001 | 小花 | 18 | 女 | 2018 | 大数据 |
… | … | … | … | … | … |
这样的一张表表示的就是关系
关系:就是指这一张二位表
元组:一行即是一个元组
属性:一列即是一个属性
码:可以唯一确定一个元组的属性
域:相同数据类型的值的范围,值域
分量:元组的一个属性值,一个格子
关系模式:对关系的描述,一般表示为:关系名(属性1, 属性2, …, 属性n)
注意:
关系模型要求关系必须是规范化的
关系的每一个分量都不可分割
2.优点
- 关系模型与格式化模型不同,它建立在严格的数学概念的基础上
- 关系模型的概念单一,结构清晰,易用易懂
- 关系模式存取路径透明,从而具有更高的数据独立性,更安全,也简化了程序员的工作
3.缺点
也有缺点,比如查询效率低
3.数据库系统的结构
数据模型中有“型(type)”和“值(value)”的概念。型是对某一数据的结构和属性说明,值是型的一个具体赋值
数据库中,数据是不断变化的,但模式总是固定的,对于大部分的数据库操作系统,即便支持不同的数据模型,但其采用的模式结构是一样的,即三级模式结构,以及提供两级映像功能
3.1三级模式
3.1.1模式(schema)
**是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 **
也称逻辑模式,逻辑层面的,与硬件无关,与具体的应用程序也无关,属于数据库模式结构中间层。
- 一个数据库仅有一个模式,可以理解为一个模式规划了整个数据库
- 定义模式时不仅要定义逻辑结构,还要定义数据之间的关系
- 用==模式数据定义语言(模式DDL)==来严格定义模式
3.1.2外模式(external schema)
也称子模式(subschema)或用户模式,他是数据库用户(包括程序员和最终用户)的数据视图,具体的逻辑表示,是可见的。
外模式是保证数据库安全的有力措施
- 一个数据库可以有多个外模式
- 应用是一对多的关系,即一个外模式对应多个应用,一个应用仅能使用一个外模式
- 用==外模式数据定义语言(外模式DDL)==来严格定义模式
3.1.3内模式(internal schema)
也称存储模式(storage schema),是数据物理结构和存储方式的描述,表明了数据内部的组织方式。
一个数据库只有一个内模式
3.2两种映像
三级模式之间通过映像实现联系和转换,这两种映像保证了数据库系统中数据具有较高的逻辑独立性和物理独立性
3.2.1外模式/模式映像
此映像定义了外模式和模式之间的对应关系,当模式发生改变时,由数据库管理员对外模式/模式的映像做出相应改变,可以使外模式保持不变。保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
对于每个外模式都有一个相应的此映像,这些映像包含在外模式的描述中。
3.2.1模式/内模式映像
此映像定义了内模式和模式之间的对应关系,当数据库存储结构发生改变时,由数据库管理员对外模式/模式的映像做出相应改变,可以使模式保持不变。保证了数据与程序的物理独立性,简称数据的物理独立性
4.数据库系统的组成
有以下几个组成:
-
硬件平台和数据库
-
软件
-
人员
-
数据库管理员(DBA)
- 决定数据库信息内容和结构
- 决定数据库存储结构和存取策略
- 定义数据的安全性要求和完整性约束条件
- 监控数据库的使用和运行
- 数据库的改进和重组、重构
-
系统分析员和数据库设计员
-
应用程序员
-
用户
-
偶然用户
偶尔使用数据库的用户
-
简单用户
正常使用数据库的用户
-
复杂用户
熟悉数据库功能的用户,如程序员
-
-