1. 关系集转化为关系模式
转换的方式是:
- 判别器转化为主键(即teacher_id)
- 去掉复合属性,只保留简单属性(去掉name)
- 去掉多值属性,将多值属性单建表格
- 多值属性转化为的表格中,多值属性本身也是主键(这样才能使得主键唯一确定一个元组)
所以该关系集转化为:
Teacher(teacher_id, first_name, middle_name, last_name, email)
TeacherPhone(teacher_id, phone)
2. 弱实体集转化为关系模式
- 将其依赖的实体集的主键作为外键引入,并将其作为主键
- 判别器也转化为主键
所以该弱实体集转化为:
Student(student_id, name, class, major)
Paper(retrieval_id, student_id, title)
PaperAuthors(retrieval_id, authors)
3. 多对多关系集转化为关系模式
关系集作为一个单独的关系模式,加入连接的两个实体集的主键
该关系集转化为:
review(expert_id, project_id)
4. 一对多关系转化为关系模式
在“多”的那一侧加入“一”的那一侧的主键作为外键,而不作为主键
如图所示,Student可以转化为:
Student(student_id, teacher_id, name, class, major)
这里还有个奇妙的——mapping cardinality(映射基数) from Teacher to Student is many-to-one,嗯,是反着的