Java教程

SZU 数据库系统与设计与分析 第二章

本文主要是介绍SZU 数据库系统与设计与分析 第二章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

@

目录
  • 第 2 章:关系数据模型
    • 1.模式和状态(Schema and State)
    • 2.空值(Null Value)
    • 3.超码(SuperKey)
    • 4.候选码(Key)
    • 5.主码(Primary Key)
    • 6.外键/码(Foreign Key)

第 2 章:关系数据模型

1.模式和状态(Schema and State)

在这里插入图片描述
一个属性对应一个列标题。
关系的模式是对表结构的描述。
Head (Students) = (SID, Name, Age, GPA)
学生(SID、姓名、年龄、GPA)

  • 关系的两个关系
    模式 - 表R的属性集合
    状态 - 当前表R的元组集合

  • 一旦确定了关系的模式,更改将非常昂贵
    一些可能的变化是:
    删除一个属性
    插入一个属性
    重命名属性
    删除表(整个关系)

  • 而在大多数关系中,关系的状态经常变化。
    一些可能的变化是:
    更新一些属性值
    插入一个新元组
    删除现有元组
    一个给定的模式在不同的时间可能有不同的状态。

  • 关系数据库由一组关系组成。
    关系数据库模式由一组关系模式组成。
    数据库状态是当前存在于数据库中的数据。

在这里插入图片描述
1.改变属性或元组的顺序不影响关系的含义(列和行可以是任意顺序)
2. 一个关系中不应该有任何两行相同的行——没有重复的行
3. 关系的任何单元格(行/列交叉点)中不应有任何多值项

2.空值(Null Value)

  • 对于给定的元组 t 和关系 R 的给定属性 A,将 t 插入 R 时可能会发生以下情况。
    t[A] 未知。
    t[A] 尚未分配。
    t[A] 不适用。

    当出现上述情况之一时,将空值赋给 t[A]:t[A] = null。

  • 注意:空值不同于 0 或空格!
    在 SQL 中,任何涉及 null 的算术表达式都将被评估为 null。

3.超码(SuperKey)

  • 定义:关系的超码是一组属性,其值可以唯一标识关系的每个潜在元组。
    例子:
    属性 ID 是关系 Students 的超码。
    在某些情况下,属性集 {Name、Birthday、Home_Address} 可能是 Students 的超码。
  • 一些注意点
    1.每个关系至少有一个超级码。
    2.超码的任何超集都是超码。
    3.从关系的给定状态,我们可以确定关系的一组属性是否不形成超码,但我们不能确定一组属性是否形成超码。

4.候选码(Key)

  • 定义:一组属性是关系的码
    如果(1)它是关系的超码,
    并且(2)它的真子集不是关系的超码。
    关系的码可以唯一标识关系的每个(潜在)元组。
    如果从键中删除任何属性,则剩余的属性不再形成键的最小属性

  • 每个关系至少有一个码。
    一个关系可能有多个码。
    从关系的给定状态,我们可以确定关系的一组属性是否不构成码,但不能确定一组属性是否构成码。
    关系的码也称为关系的候选码。

5.主码(Primary Key)

  • 定义:关系的主键是数据库设计者为特定应用程序选择的候选键。
    每个关系的主键是在定义关系时选择和声明的。 一经选择,不可更改。
    通常选择主键作为属性数最少的候选键,以提高存储效率和查询处理效率。

  • 定义了主键后,插入新元组时只需要检查主键中属性下的值,以识别重复(经常使用索引)。
    关系的主键通常用于来自其他关系的引用。

6.外键/码(Foreign Key)

  • 定义:关系R1的一组属性FK如果满足以下两个条件,则是R1中的外键:
    存在与主键 PK 的关系 R2,使得 FK 和 PK 具有相同数量的具有兼容域的属性
    对于 R1 中的任何元组 t1,R2 中存在一个元组 t2,使得 t1[FK] = t2[PK] 或 t1[FK] 为空。
这篇关于SZU 数据库系统与设计与分析 第二章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!