数据库系统原理
第一章 Introduction
1.3 View of Data
- Data Model
- 对数据组织与管理/使用方式的抽象描述,包括:
- 数据组织的语法定义,如数据项、数据项间的联系
- 数据组织的语义定义,如完整性约束
- 例子:
- Relation Model(最典型的表格)
- XML
- 对数据组织与管理/使用方式的抽象描述,包括:
- Levels of Abstraction
- Physical level: 描述数据实际是怎么存的,一个块多大,存在存储器的什么位置,索引。
- Logic level: 描述数据的逻辑关系
1
2
3
4
5
6type instructor = record
ID: string;
name: string;
dept_name: string;
salary: integer;
end; - View level: 应用层查看到的数据,可以隐藏一些细节,比如数据类型,或者出于隐私考虑隐藏
salary
字段。
- Model, Schema, Instance
- model:
R = {<a1, a2, ..., an>}
- schema:
Instructor = <ID, name, dept_name, salary>
- instance:
<2222, Einstein, Physics, 95000>
- model:
- Data Independence
- 物理存储发生变化,调整逻辑模式到内模式的映射,保证逻辑模式不变
- 逻辑结构发生变化,调整外模式到逻辑模式的映射,保证外模式不变
第二章 Introduction to Relational Model
2.1 Relational Database的结构
- $R=(A_1, A_2, \cdots, A_n)$ 是一个relation schema
- 其中:
- $A_1, A_2, \cdots, A_n$是attributes
- $A_i$的取值范围是$D_i$,叫做domain
- 例子:
Instructor = <ID, name, dept_name, salary>
- 由$R$定义的一个instance $r$写作$r(R)$
- 表示为一张table
- 每一个$r$的元素$t$被称作一个tuple,一个tuple就是表中的一行。
- attribute一般要求要原子化,不可再分。
- null是每一个的attribute可选值。
- 行列之间相互独立,交换不同行列之间的顺序没有任何影响
2.3 Keys
- 定义:对于给定的relation schema$R(A_1, A_2, \cdots,A_n)$,$K$是$R$的一个子集,若对于任意两个tuple$r(R)$,他们在$K$上的attribute都不完全相同,则称$K$是$R$的一个superkey。
- 定义:candidate key是最小的$K$。
- primary key(主键)是管理员人为挑选的candidate key
- primary key的值不能为null
- primary key的值被称为primary attribute(主属性)
- 定义:如果一些键在r1中,且是r2的主键,则称这些键是r1参照r2的外键。
- 在定义具有外键的r1之前必须先定义r2。
数据库系统原理
https://heyewuyue1.github.io/2022/09/16/DatabaseSystemConcepts/