数据库系统的组成
1.硬件平台
2.软件
3.人员
(1)数据库管理员(DBA)
(2)系统分析员、数据库设计人员
(3)应用程序员
(4)最终用户
1.偶然用户
2.简单用户
3.复杂用户
关系数据库
关系模型是从表(Table)的处理方式中抽象出来的
在对传统表的操作上,进行数学化严格定义的基础上,引入集合理论和逻辑学理论提出的
标准数据库语言(SQL语言)就是建立在关系模型之上的
关系模型三要素解释
一个关系就是一个表
1.数据结构
描述表中各种数据的基本结构形式
2.操作
描述表与表之间可能发生的各种操作(关系运算)
3.完整性约束
描述这些操作应该遵循的约束条件
学关系模型,就是学这个表(table)如何描述、有哪些操作、结果是什么、有哪些约束条件
关系数据结构
1.域:值的集合
一组具有相同数据类型的值的集合
2.笛卡尔积:所有域中值的任意组合
笛卡尔积是所有域中所有取值的任意组合
笛卡尔积可以看着是关系的域
3.关系:笛卡尔积的子集
定义:关系是一组域构成的笛卡尔积的一个子集
关系关联的值的数量称作关系的目或度
4.元组:一个关系中的每个元素(关系表的行)
5.属性:(关系表的列)
码(键):一种特殊的属性,能够唯一地标识一个元组
关系的数学定义
1.域:列的取值范围
2.元组:一行
元组的每一个值叫做一个分量
3.笛卡尔积:组合,N个域中所有可能组合成的N元组的集合
所有可能的元组
笛卡尔积中的每一个元素称作一个N元组(每个元组有N个变量)
4.关系:有意义的组合
一组域的笛卡尔积的子集
笛卡尔积:所有的组合
关系:有某一方面意义的组合
由于关系的不同列可能来自同一个域,所以为区分,需要为每一个列起一个名字,叫属性名
5.关系模式:表的标题(声明)
属性名:域名(属性的类型和长度)
关系模式与关系
类似数据结构与数据
6.度、目:关系包含的属性的数量
7.基数:关系中元组的数量
例:一个三目关系
关系的特性
1.关系与行列的位置无关
调换行列位置,不更换某几列的值,关系仍等价
2.不重复性
理论上,关系的任意两个元组不能完全相同
但表(table)不一定遵守此特性
3.属性不可再分
也称作关系第一范式
每个属性必须是最基础的、不可再分的数据类型
关系中不能有复合属性、多值属性machine
关系概念
1.候选码/候选键(Candidate Key)
能唯一的标识一个元组的属性组
不一定是单个属性,可以的复数属性构成的属性组
关系当中可能有多组候选码
2.主键/主码(Primary Key)
当有多个候选码时,可以选定一个做为主码
3.主属性与非主属性
主属性:包含在任何一个候选码中的属性
非主属性:不属于任何候选码的属性
全码关系:所有属性都是候选码
4.外码/外键
一个属性组,不是本关系候选码但是与另一个关系的候选码对应
两个关系通常就是靠外码连接起来的
外码是连接多个关系的纽带
总结
关系与表的对应:
关系模式 -- 表标题
属性与属性值 -- 列名与列值
元组 -- 行/记录
关系完整性
1.实体完整性
关系的主码属性值不能为空NULL/NAN
空值:不知道、不存在、无意义的值
空值
2.参照完整性
对于外码,在一个表中可以取空值
但若不取空值,他必须取他连接的外部表的主码中的某值
3.用户自定义完整性
用户在具体的应用环境定义的完整性约束条件
(类似写在C#属性中的保护逻辑)