《数据库系统概念》笔记:关系模型

来源:互联网 发布:美国金融危机 知乎 编辑:程序博客网 时间:2024/04/29 00:31

关系数据库是表(table)的集合。属性(attribute):表的列首。域(domain):每个属性一组允许的值。 n个属性的表是D1XD2X ···Dn-1XDn的子集。在数学上,用关系(relation)代替表,用元组(tuple)代替行。如果域的元素被认为是不可再分割的,则认为域是原子的值null是所有可能的域的成员,表明值是未知或者不存在。数据库模式:数据库的逻辑设计。数据库实例:给定时刻数据库中数据的一个快照。关系模式(relation schema):对应于程序设计语言中类型定义的概念。关系实例(relation instance):对应于程序设计语言中类型变量的概念。超码(superkey):一个或者多个属性的集合,这些属性可以使我们在一个关系中唯一的标识一个元组候选码(candidate key):最小的超码主码(primary key):数据库设计者选中的,用来在同一个关系中区别元组的候选码。外码(foreign key):一个关系模式(如r1)可能它的属性中包含另外一个关系模式(如r2)的主码,则这个属性就是r1的参照r2的外码(foreign key)。关系r1是外码依赖的参照关系(referencing relation)。关系r2是外码的被参照关系(refenrenced relation)。一个含有主码和外码依赖的数据库模式可以用模式图(schema diagram)来表示。关系代数的基本运算有:选择、投影、并、集合差、笛卡尔积、和更名选择(select):用小写希腊字母σ表示,而将谓词写作σ 的下标。如σ amount>1200(loan)我们可以找出贷款金额大于1200的所有元组。

投影(project):假设我们想要列出所有贷款的号码和金额,而不关心支行的名称。投影就是完成这样子的功能。投影用大写希腊字母Π表示,列举所有我们希望在结果中出现的属性作为Π的校表,作为参数的关系在跟随Π后的括号中。我们把列出贷款号码及金额的查询写作:Πloan_number,amount(loan)。

并(union):二元运算。r∪s的有意义,必需满足以下两个条件:1.关系r和s必须是同元的,即它们的属性数目必须相同。2.对于所有的i,r的第i个属性和s的第i个属性的域相同。(r和s可以是数据库关系或者作为关系代数表达式结果的临时关系)。

集合差(set-deference):使我们可以找出在一个集合中而不再另外一个集合中的元组。表达式r-s的结果是一个包含所有在r中而不在s中的元组关系。为了使集合差有意义,集合差的要求和集合的要求一样。

笛卡尔积(Cartesian-product):用×表示,使我们可以将任何的两个关系信息集合在一起。r1×r2,可能相同的属性名可能出现在r1和r2,我们需要一个命名的机制来区别这些属性。我们这里采用的方式是在属性上附加上该属性所来自关系的名称。

原创粉丝点击