数据库
数据库系统原理
第2章 实体-联系数据模型
DBMS:(数据库管理系统)
实体集:同类实体的集合
实体是客观存在并可相互区别的事件或物体
在E/R图中用矩形表示
属性:椭圆
联系:菱形
is-a关系:A是B的子类,三角形的尖头指向父类
- 子类是父类的子集
- 子类比父类的属性多
- 子类是父类的特例
三种联系:
- 一对一
- 一对多:若实体集E对F是多对一,则将箭头指向F,表示E中的实体最多和F中的一个实体联系
- 多对多
多路联系:两个以上实体间的关系
消除联系的属性:建立一个实体将联系的属性转移至该实体,在该实体与联系之间画上对应的线
连接实体集:可以将多元关系转换成二元关系,是多路联系的元组,与原实体集多对一,原实体集是一
属性代替实体:
条件:
- 该实体应该是多对一中的一
- 没有联系包括E多次
- 属性不具有依赖关系
- 第一种E和F具有多对一关系R,删除R和F成将F的属性加到E
- 第二种多路联系R具有实体E,E是一,删除实体将其属性作为关系属性
ER模型(关系实体模型)设计原则
忠实性:设计符合实际
避免冗余:减少空间浪费
简单性:尽量少的元素描述模型
联系的正确性
元素种类的正确性

角色:联系中出现多次的同一个实体集,每条线称为一个角色
弱实体集:实体集的所有属性都不能作为键,键的至少有一部分来自于其他实体(多对一,弱实体为多,从一个实体中得到键)
弱实体集使用双边的矩形,多对一联系用双边的菱形
弱实体集键的唯一性:因为多对一中的一中的键与弱实体中键组合(如果有的话)对于弱实体集E是唯一的
弱实体集的来源:
- 层次结构非isa关系
- 连接实体集

关系模式:是由一个关系名及其属性组成
R(A,B,C)
相当于类,静态抽象的
关系实例:关系表中除去模式的填充部分
相当于对象,动态的
数据库模式:由多个关系模式组成的关系数据库模式又称为数据库模式
元组:关系(表)中的一条记录,是一个实体
分量:每个元组具有的一列属性
键(后选码):具有唯一性(唯一确定某条记录和键值唯一)和最小性(不可去)
能够唯一标识一个表中记录的一个以上的属性
主键:被当做某个表的键称作主键,在主键画下划线
域:字段的数据范围
外键:为了实现表与表之间的关系,将别的表的主键放到另一个表里,在另一个表里是主键
属性:关系中的各列,属性名即列名
实体完整性约束:主键必须存在(非空)且唯一
参照完整性约束:若在A表中存在B表的外键,要么为空,要么在B表中存在且唯一
用户完整性约束:
联系转换为关系:
若出现多对一则可以将一作为多的外键(主键一致则可以合并)
弱实体集的联系/多对一的关系不必转换为关系
子类与父类单独成为关系模式
尖角是至多联系一个
圆角是必须联系一个
支持联系实体:含有弱实体主键一部分是多对一中的一的实体
函数依赖:A1A2A3...An——>B1B2B3
函数依赖集合:函数依赖组成的集合,若B包含于A
平凡函数依赖:ABC-BC(有右边的属性被包含于左边)
非平凡xxxx:
求闭包:全盘扫描,本轮指找右侧是上轮新增的
基本集:函数依赖集合的闭包
最小基本集:
关系模式拆解需要外键
1.投影$\color{Red}{丌_{A_1,A_2,A_...A_n}} $
选择A1,A2...An属性的列,组成从原集合继承下来的集合
2.选择\(\color{Red}{σ_C(R)}\)
选择R中符合条件C的元组
3.笛卡尔积\(M_1×M_2...×M_n\)
\((a_1,a_2,a_3,...a_n)a_i \in M_i\)
第i个元素是来自 \(M_i\)的元组
每个集合\(M_i\)都可与M
结果的属性由所有的\(M_i\)属性构成
若属性重复则在属性前加上该集合\(M_i.\)区别 如\(R.S \quad M.S\)
4.\(\vartriangleright\vartriangleleft\)自然连接
分解的逆运算,可以通过连接外键对应的主键所在的表格
符合结合律不符合交换律
连接条件:R S中存在公共属性\(A_1,A_2,A_...A_n\)
只有R S 表中的两元组公共属性都相同时才能连接
1.RS笛卡尔积2.选择公共属性都相同的元组3.去掉相同的属性列
比如 (A B)(B C D)连接,则去掉重复的B列
5.\(\theta\)连接
1.RS笛卡尔积2.选择符合条件C的元组3.相同的属性列以元组名前缀区别
因为是按照条件C连接,不去掉相同的公共元素,所以公共元素存在不等值现象,因为不等值不能合并否则丢失信息
表达式树

树叶节点是关系,其他都是运算符
本文来自博客园,作者:多巴胺不耐受仿生人,转载请注明原文链接:https://www.cnblogs.com/VoidCoderTF/articles/16069167.html

浙公网安备 33010602011771号