强实体集

用具有n个不同属性的模式E来表示强实体集
student(ID, name, tot_cred)

弱实体集

notion image
用包含标识性强实体集的主键作为列构成的表来表示弱实体集
section ( course_id, sec_id, seme, year )
此处还在section模式上建立了一个外码约束,用course_id属性引用course模式的主码

联系集

多对多联系集表示为两个参与实体集主键属性和联系集中任何描述属性所组成的模式
同时创建两个外码约束
例如:联系集advisor的模式
advisor(s_id, i_id)
notion image
 

模式的冗余 合并

冗余
连接弱实体集与其依赖的强实体集的联系集的模式是冗余的。
例如: section关系模式中已经包含了在 sec_course 关系模式中出现的属性
合并
实体集A、实体集B、A到B的多对一联系集AB
可以将A(多的那一方)和AB合并
 
若A不是全部参与,则会导致A生成的额外属性存在空值
notion image
例:instructor和department是多对一
instructor(ID, name, salary, dept_name);
department(dept_name, building, budget);
此处instructor是全部参与,dept_name不会有空值
对于一对一联系集,联系集的关系模式可以跟参与联系的任何一个实体集模式进行合并。
notion image

复合属性

可以划分为更小的部分
instructor(ID, first_name, middle_initial, last_name, street_number, street_name,  apt_number, city, state, zip_code, date_of_birth)

多值属性

可以用一个单独的关系模式来表示,例:
inst_phone= ( ID, phone_number)
 
特例:实体 time_slot除了主键属性只有一个属性,而且该属性是多值的
优化: 不创建与实体对应的关系,只创建对应的一个多值属性
time_slot(time_slot_id, day, start_time, end_time)
注意此处新的主键,前三个属性构成的主键可以确保确定唯一的time_slot了,所以不需要end_time作为主键了
notion image

特化

notion image
notion image
 

聚集

为了表示聚集,需要包含以下信息:
聚集关系的主键 相关实体集的外键 任何描述属性
 
Loading...