数据库系统概念 - 数据模型,关系模型,关系,候选码,主码,外码

目录

      • 什么是数据模型
      • 什么是关系模型
      • 什么是关系
      • 候选码 Candidate Key
      • 主码 Primary Key
      • 外码 Foreign Key

什么是数据模型

模式是对数据的结构的抽象,模型是对模式的结构的抽象。

三大数据模型:

关系模型:表形式
层次模型:树形式
网状模型:图形式

什么是关系模型

三要素:

基本结构
基本操作
完整性约数:实体完整性,参照完整性,用户自定义完整性

1.实体完整性:关系中主码属性值不能为空。(空值:未知或不存在)
空值给数据库访问和更新带来很多困难,因此应尽量避免使用空值。当属性为空时,许多系统会给一个默认值,但我们操作数据库时仍需要注意区分。

2.参照完整性:关系中外码的值要么为空值,要么为外码所在关系中作为主码的某个值。不允许外码为不存在的值。
如学生关系中,学生就读系,它要么为空值(表示还不知道在哪个系),要么是另一关系中系的某个取值。比如只有01~04系,结果你来个05系,这是不允许的。

3.用户自定义完整性:对某个属性,针对具体应用环境定义的完整性约束条件。
如学生名字要求在5个汉字字符内,性别只能是‘男’ 或 ‘女’。

什么是关系

在关系模式中,关系指代表,元组指代行,属性指代列

域:属性的所有可能取值的集合

关系的特性:

理论上,关系不能有重复的元组。现实中,表并不完全遵循该规则。

属性不可再分特性(关系第一范式):即属性不能再细分,(1)复合属性,如:name属性下如果细分 first name,last name ,则不满足关系第一范式。(2)多值属性,如一个属性具有两个值,也是不满足属性不可再分特性的。

候选码 Candidate Key

关系中的一组属性,如果某个属性值能够唯一与其他元组区分开,那么这个属性称为候选码。如学生具有多个属性(学号,姓名,班级),学号即为该属性组的候选码。

多组候选码:如下雇员表

employee(EmpID,EmpName,Telephone)

ID和电话号码,都是唯一标识每个雇员的。两个都为候选码。

主码 Primary Key

有多个候选码时,选择一个作为主码,与候选码的区别:

DBMS主要以主码作为主要线索来管理关系中各元组。

外码 Foreign Key

关系R中的某个属性组不是该关系的候选码,但它和另一个关系S中的候选码相对应,则称为外码 / 外键。

如下合同关系与客户关系,合同中的外码是客户号,来自于客户中的主码。

合同(合同号,合同名称,合同签订人,客户号) 
#主码:合同号  外码:客户号
客户(客户号,客户名称,客户地址,联系人)
#主码:客户号

你可能感兴趣的:(数据库系统概念,数据库,学习)