数据库结构

SCHENE

instructor关系: instructor(id, name, dep_name, salary)

course关系: course(course_id, title, dept_name, credits)

department(dept_name, building, budget)

section(course_id, sec_id, semester, year, building, room_number, time_slot_id)

student(id, name, dept_name, tot_cred)

takes(id, course_id, sec_id, semester, year, grade)

classroom(building, room_number, capacity)

time_slot(time_slot_id, day, start_time, end_time)

teaches(idm course_id, sec_id, semester, year)

 

在关系模型的属于中,关系(relation)用来指代表,元组(tuple)用来指代行,属性(attribute)指代的是表中的列

 

数据库模式: 数据库的洛基设计

数据库实例:给定时刻数据库中数据的一个快照

 

超码(superkey)

超码是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的表示一个元组。

eg. 因为通过id可以找到唯一一个学生,所以{id}是一个超码,同理{id,student_number}、{id,student_number,name}、{id,student_number,name,sex}、{student_number}、{student_number,name}、{student_number,name、sex}也是超码.

候选码

虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。如果任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码。

eg. 在上例中,只有{id}、{student_number}都是候选码;另外,如果sex和name可以唯一标识一个学生,则{name,sex}也为超码,但是,sex和name并不能唯一标识一个学生,这与现实生活是违反的,因为现实有同名同姓的人,则{name,sex}不能作为超码。

posted @ 2021-11-22 14:45  YanAemons  阅读(87)  评论(0编辑  收藏  举报