SZU 数据库系统与设计与分析 第二章
2022/1/7 19:10:09
本文主要是介绍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 数据库系统与设计与分析 第二章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解