ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2022-01-07 12:02:08  阅读:134  来源: 互联网

标签:关系 主键 超码 元组 Key 数据库系统 第二章 SZU 属性


@

目录

第 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] 为空。

标签:关系,主键,超码,元组,Key,数据库系统,第二章,SZU,属性
来源: https://www.cnblogs.com/dcj101404/p/15774521.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有