数据库系统概念学习笔记
Database System Concepts, 7E
第7版
前记:
- 整本书学习的是SQL标准,而不是某个具体的数据库。书上有句话这样说的:“尽管我们在这里介绍的部分语法在这些系统上并不支持,但是我们所阐述的概念在不同实现上都是适用的,虽然存在语法上的区别”,这就是学习SQL标准的意义。
文章目录
一、引言
-
数据库管理系统(DBMS):由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。
即 DBMS = 数据 + 程序。
-
原子性(atomicity):要么全部发生,要么全部不发生。不可分割。
-
一致性(consistency):即某种正确性。
-
数据模型:一个描述数据、数据联系、数据主义以及一致性约束的概念工具集合。
- 关系模型:用表的集合来表示数据和数据间的关系。
- 实体-联系模型
- 半结构化数据模型。如JSON,XML
- 对象数据模型。
-
数据抽象:用来对用户屏蔽系统的复杂性
- 物理层:描述数据具体是怎么存储的,包含大量复杂的数据结构
- 逻辑层:描述数据库中存储什么数据以及这些数据间的关系
- 视图层:描述整个数据库的某个部分。不同用户有不同的视图层
-
数据库模式(这里指的是设计方面的):数据库中总体的设计。
根据数据抽象的层次,可分为物理模式(即物理上的设计,其他同理),逻辑模式,视图模式(子模式)。
-
DDL:Data-Definition Language:来说明数据库系统所采用的存储结构和访问方式(用逻辑的方式描述)。又称为数据存储和定义语言。(data storage and definition language)
-
DML:Data-Manipulation Language:访问或者操纵数据的语言
- 过程化的DML(Procedural DML):实现算法的,要具体描述如何获得数据的
- 声明式的DML(declarative DML):指定需要什么数据即可
-
数据字典:可以看作某种表。数据库在读取和修改数据的时候都要参照这个表。
-
完整性约束(integrity constraint)
- 域约束:规定取值范围 (值)
- 引用完整性:一个关系上的取值也在另一个关系上存在 (表)
- 授权:不同用户有不同权限,如读,删除,更新等 (用户)
-
数据库系统功能部件有三个部分:
- 存储管理器
- 查询处理器
- 事务管理部件
-
数据库体系图:
二、关系模型介绍
1基本概念
- 关系数据库:由表的集合构成,用表的集合来表示数据和数据间的关系。
- 关系数据模型名称的由来:表的一行代表了某种联系,而表是这种联系的一个集合,又刚好和数学上的关系概念有密切由来,所以就叫做关系型。即 :关系(表),是数据联系(行)的集合。
- 元组tuple:数学上是指n个值之间的联系。即对应数据库表中的一行。
- 关系relation:指代表。但是,关系在数学上是指set(集合),元组是不能重复的。和表不同。可以说,表是关系的一种实现方式。
- 元组tuple:指代行。
- 属性attribute:指代列
- 关系实例:一个关系的特定实例,即一组特定的行
- 模式:即逻辑设计。
- 数据库模式(database schema)对应着关系模式。是数据库的逻辑设计。
- 数据库实例(database instance)对应着关系实例。是给定时刻数据库中数据的快照
- 联系(行)的集合是关系(表),将关系抽象出来,就变成关系模式(所有列)
2码key
内码(自己乱编的名字)
-
码的作用:用来区分一个给定关系中的不同元组
-
超码(superkey):能够唯一标识出一个元组
-
候选码(candicate key):对于一个特定的超码而言,最小的属性集合。
请注意:这里的“最小”,是相对于一个特定超码的最小,而不是说在所有的候选码中最小。
-
主码(primary key):把候选码选出来,就称作主码