数据库基础

关系模型 关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表。

  • 关系
    一个关系对应通常是一张表。
  • 元组
    表中的一行即为一个元组。
  • 属性
    表中的一列即为一个属性,给每一个属性起一个名称即属性名。
    • 超码
      一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。
      比如学生表(学号,身份证号,姓名,性别),{ 学号 } 可以标识一个元组,{ 身份证号 } 可以标识一个元组,{ 学号,姓名 } 可以标识一个元组,{ 身份证号,姓名 } 也可以标识一个元组,{ 学号,身份证号,姓名,} 同样可以标识一个元组,这些都是超码。
    • 候选码
      超码中可能包含无关紧要的属性,如果K是一个超码,那么K的任意超集也是超码,如果有一些超码,它的任意真子集都不能成为超码,那么这个最小的超码成为候选码。比如上面例子中,{ 学号 } 和 { 身份证号 } 都是候选码。
    • 主码
      用来表示被数据库设计者选中的,用来区分不同元组的候选码。
    • 外码
      关系 R1 可能在它的属性中包含另一个关系 R2 的主码,这个属性在 R1 上称作参照 R2 的外码。

  • 域是一组具有相同数据类型的值的集合,属性的取值范围来自某个域,如性别域是 [ 男,女 ]。
  • 分量
    元组中的一个属性值。
数据库的三级模式 数据库基础
文章图片
image.png 数据库管理系统(DBMS)从三个层次来管理数据:外部层次(External Level),概念层次(Conceptual Level)和 内部层次(Internal Level)。
其中外部层次的数据是用户所看到的数据,及数据之间的约束,又叫用户层次。
概念层次的数据是DBMS中全局管理(可以理解地为所有的)数据,及数据之间的约束,所以又叫逻辑层次。
内部层次的数据是存储在介质上的数据,包括存储路径,存储方式,索引方式等,所以又叫物理层次。
而模式,就是对数据的结构性描述,所以对于不同层次的数据,就对应着不同层次的模式,分别是:外模式(用户模式),模式(概念模式/逻辑模式)与 内模式(物理模式)。
  • 内模式
  • 模式
    在数据模型中有 型 和 值 的概念,型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如学生记录定义为(学号,姓名,性别,年龄,籍贯,系)这样的记录型,而(22,)则是该记录型的一个记录值。模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。而模式的一个具体值称为模式的一个实例(数据库实例是给定数据库中数据的一个快照),同一个模式可以有很多实例,模式是相对稳定的,而实例是相对变动的。
  • 外模式
    外模式是以视图的形式展现给用户的。数据库中的视图又叫作虚表,这里的虚表是相对于基本表来说的。视图是对这些基本表中的数据的某种展现形式,是这些数据的一个子集,但不限于某张表中的数据的子集,也可以是多张表联合起来进行显示的一组数据。但需要注意的是:视图本身并不实际存放数据。通过外模式,可以让不同的用户看到不同的数据。
关系的完整性 【数据库基础】关系模型中有三类完整性约束:实体完整性,参照完整性 和 用户定义的完整性。
  • 实体完整性
    若属性A是某关系R的主属性,则A不能取空值。
  • 参照完整性
SQL查询语言
  • 数据定义语言(Data-Definition Language, DDL)提供定义关系模式,删除关系以及修改关系模式的命令。
  • 数据操纵语言 (Data-Manipulation Language, DML)提供从数据库中查询信息,以及在数据库中插入元组,删除元组,修改元组的能力。
  • 数据库约束
    • 主键约束:唯一性,非空性
    • 唯一约束:唯一性,可以空,但只能有1个
    • 默认约束:该数据的默认值
    • 外键约束:
    • 非空约束:设置非空,该字段不能为空。
  • 数据库的完整性
    • 检查主码值是否唯一,如果不唯一则拒绝插入或修改
    • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
  • 参照完整性
    • 参照完整性检查和违约处理
    • 参照完整性违约处理
      • 拒绝(NO ACTION)执行
      • 级联(CASCADE)操作
      • 设置为空值(SET-NULL)
参考资料
1. https://www.zhihu.com/question/38737183

    推荐阅读