什么是数据模型
模式是对数据的结构的抽象,模型是对模式的结构的抽象。
三大数据模型:
关系模型:表形式
层次模型:树形式
网状模型:图形式
什么是关系模型
三要素:
基本结构
基本操作
完整性约数:实体完整性,参照完整性,用户自定义完整性
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中的候选码相对应,则称为外码 / 外键。
如下合同关系与客户关系,合同中的外码是客户号,来自于客户中的主码。
合同(合同号,合同名称,合同签订人,客户号)
#主码:合同号 外码:客户号
客户(客户号,客户名称,客户地址,联系人)
#主码:客户号