目录
第2章 关系模型介绍
2.1 关系数据库的结构
关系
2.2 数据库模式
2.3 码
2.4 模式图
大学数据库的模式图!!!
大学数据库关系模式!!!
2.5 关系查询语言
2.6 关系运算
2. 7 总结
第6章 形式化关系查询语言
1. Relational Algebra关系代数
a. 选择(Select Operation)
b. 投影(Project Operation)
组合
c. 集合并(Union Operation)
d. 集合差(Set Difference Operation)
e. 笛卡尔积(Cartesian-Product Operation)
f. 更名(Rename Operation)
2. Tuple Relational Calculus
3. Domain Relational Calculus
A1, A2, …, An
R = (A1, A2, …, An )
。例如: instructor = (ID, name, dept_name, salary)
超码(superkey):一个或一组属性,可以使我们在一个关系中唯一地标识一个元组。
例如 {ID, name}
,{ID}
候选码(candidate key):最小(包含属性个数最少)超码。例如 {ID}
主码(primary key):候选码中挑出一个作为主码,任何关系只能有一个主码
主码的选择必须慎重。正如我们所注意到的那样,人名显然是不足以作主码的,因为可能有多个 人重名。
主码应该选择那些值从不或极少变化的属性
外码(foreign key):一个表中某一列的所有值一定出现在另一张表的某一列,且在另一张表中为主码
一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)来表示。如下为大学数据库的模式图:
department(dept_name,building,budget);
instructor(ID, name,dept_name,salary);
course(course_id,title,dept_name,credits);
section(course_id,sec_id,semester,year,building,room_number,time_slot_id);
teaches(ID,course_id,section_id,semester,year);
student(ID,name,dept_name,tot_cred);
prereq(course_id,prereq_id);
Advisor(s_id,i_id)
takes(ID,course_id,sec_id,semester,year,grade)
classroom(building,room_number,capacity)
time_slot(time_slot_id,day,start_time,end_time)
关系代数是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入, 产生一个新的关系作为结果。关系代数基本运算有:选择、投影、并、集合差、笛卡儿积和更名。在 基本运算以外,还有一些其他运算,即集合交、自然连接和赋值。我们将用基本运算来定义这些运算。
选择、投影和更名运算称为一元运算,因为它们对一个关系进行运算,另外三个运算对两个关系 进行运算.因而称为二元运算。
选择(selelct)运算选出满足给定谓词的元组,用符号σ表示:
1. 关系r和s必须是同元的,即它们的属性数目必须相同。
2. 对所有的i,r的第i个属性的域必须和s的第i个属性的域相同。
请注意r和s可以是数据库关系或者作为关系代数表达式结果的临时关系。
用—表示的集合差(set-difference)运算使得我们可以找出在一个关系中而不在另一个关系中的那些元组。表达式r-s的结果即一个包含所有在r中而不在s中的元组的关系。
待完善