数据库系统原理

第一章 Introduction

1.3 View of Data

  • Data Model
    • 对数据组织与管理/使用方式的抽象描述,包括:
      • 数据组织的语法定义,如数据项、数据项间的联系
      • 数据组织的语义定义,如完整性约束
    • 例子:
      • Relation Model(最典型的表格)
      • XML
  • Levels of Abstraction
    • Physical level: 描述数据实际是怎么存的,一个块多大,存在存储器的什么位置,索引。
    • Logic level: 描述数据的逻辑关系
      1
      2
      3
      4
      5
      6
      type 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>
  • 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/
作者
何夜舞月
发布于
2022年9月16日
许可协议