数据库关系表----Relationaltable 数据库关系表虾滑小吃
---- Relational table
什么是关系(relation)
在关系型模型中,数据⽤关系来表⽰
⼀个关系12岁标准身高
包括
relation schema: 关系表名称,字段或者属性名称, 字段范围
relation instance: ⼀组和schema有同样数量字段的元组
关系(relation)的基本属性
每⼀⾏(tuple)都是唯⼀的
没有顺序的要求
Degree: 关系表的度是字段的数量
关系表的Cardinality是⾏(也就是tuple)的数量
约束(Constraints)
Integrity Constraints 完整性约束
Integrity Constraints: condition specified on a databa schema and
restrict the data that can be stored in a DB instance
完整性约束包括
主键约束 Primary Key Constraint
元组的key fields不能全部重复,也就是不能有两条⼀样的数据
主键不能为空
外键约束 Foreign Key Constraint
什么是外键
⼀个关系表(relation)的⼀组字段指向另外⼀个关系表(relation)的⼀⾏ (有点类似pointer)
通过包含另外⼀个关系表的primary key实现
外键的domain和所包含的另外⼀个关系表的primary key⼀样
需要防⽌某些操作毁坏表之间的联系
需要防⽌⽆效数据插⼊外键列 — 必须是所指向的表中的数据
外键不能为空
Referential Integrity 引⽤完整性
如果外键约束全部满⾜,就可以实现引⽤完整性
如何实国家线
现引⽤完整性:
现在有两个Entity: Enrolled, Students,
其中Enrolled的sid属性是⼀个外键, 指向Students
Enrolled(sid: string, cid: string, grade: string)
如果现在有⼀条Enrolled的数据需要被插⼊, 但是其中的sid是不存在的最大的湖泊
:拒绝
如果⼀条Student的数据需要被删除:
同时删除和这条Student数据相链接的Enrolled中的数据
或者拒绝删除这条Student数据
或者将和这条Student数据相链接的Enrolled中的数据的sid设置为default sid. (In SQL, also: Set sid in Enrolled tuples that refer to it to a special value null, denoting ‘unknown’ or `inapplicable’.)
⼀个没有实现引⽤狼的故事大全
完整性的例⼦
创建⼀个关系表新年趣事
使⽤ CREATE TABLE 语句
定义attribute, 包括data type, length, NOT NULL等
选什么是国学经典
择PRIMARY KEY
如果需要,选择FOREIGN KEY
Example: 黄昏晓歌词
基本
Example: 外键
The foreign key CUSTOMER_ID references the primary key of CUSTOMER, which is also CUSTOMER_ID
对于外键的UPDATE和DELETE操作有四种选项
CASCADE: update/delete parent table中的数据, 也update/delete child table所对应的数据
NO ACTION: 阻⽌update/delete parent table中的数据如果child table中有数据的外键指向此条数据
SET NULL: update/delete parent table中的数据, 然后将对应的child table中的数据的外键设置为NULL
SET DEFAULT: update/delete parent table中的数据, 然后将对应的child table中的数据的外键设置为default v作文我的家乡
alue
Example: 主键为两个外键
Example: 设置主键的两种⽅法
如何将ER模型转换为关系表