《数据库系统概念》学习笔记——第二章 关系模型介绍

目录

第二章 关系模型介绍

2.1 关系数据库的结构

2.2 数据库模式

2.3 码

2.4 模式图

2. 5 关系查询语言

2. 6 关系运算

总结

习题


第二章 关系模型介绍

2.1 关系数据库的结构

表(table)、关系(relation)、元组(tuple)、属性(attribute)、行、列。

表中的一行代表了一组值之间的关系(relation)。关系常用来指代表。

元组(tuple)就用来指代行。

属性(attribute)就用来指代列。

关系实例(relation instance):一个关系的特定实例,就是所包含的一组特定的行。

域(domain):每个属性所允许的取值的集合,称为该属性的域。

原子的(atomic):如果域中元素被看做是不可再分的单元,则域是原子的。

空值(null):是一种特殊的值,表示值未知或者不存在。

2.2 数据库模式

数据库模式(database schema):数据库的逻辑设计

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

关系(relation)的概念对应于程序设计语言中变量的概念

关系模式(relation schema)的概念对应程序设计语言中类型定义的概念。一般来说,关系模式由属性序列和属性对应的域组成。

关系实例(relation schema)的概念对应于程序设计语言中变量的值的概念。

2.3 码

一个元组的属性值必须是能够唯一区分元组的,即:一个关系中没有两个元组在所有属性上的取值都相同。

超码(superkey):是一个或多个属性的集合,这些属性的组合可以唯一标识一个元组。超码的任意超集也是超码。

候选码(candidate key):如果该超码的任意真子集都不能成为超码,那么该集合就是候选码。

主码(primary key):代表被数据库设计者选中的,主要用来在一个关系中区分不同元组的候选码。

  • 主码应该选择那些值从不或者很少发生变化的属性。

外码(foreign key):一个关系模式(r1)可能在它的属性中包括另一个关系模式(r2)的主码。这个属性在关系模式r1上被称作参照r2的外码。关系r1也被称作外码依赖的参照关系(referencing relation),r2叫做外码的被参照关系(referenced relation)。

参照完整性约束(referential integrity constraint):在参照关系中任意元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。

2.4 模式图

一个含有主码和外码约束的数据库模式可以用模式图(schema diagram)表示。

每一个关系用一个矩形来表示;关系的名字在矩形上方;矩形内部列出各属性。

主码属性用下划线标注。外码依赖用从参照关系的外码属性到被参照关系的主码属性之间的箭头来表示。

 

2. 5 关系查询语言

查询语言(query language):用户从数据库中请求获取信息的语言。

查询语言可分为:

  • 过程化语言(procedural language):用户指导系统对数据库执行一系列操作以计算所需结果。
  • 非过程化语言(non-procedural language):用户只需要描述所需信息,而不用给出获取该信息的具体过程。、

实际使用的查询语言,既包括过程化语言,也包括非过程化语言。

2. 6 关系运算

关系运算的结果总是单个的关系。

常用的关系运算有:

  • 谓词运算:从单个关系(如instructor)中选出满足一些特定为此(如salary>85000美元)的特殊元组。
  • 投影运算:从一个关系中选出特定的列
  • 连接运算:把分别来自两个关系的元组对合并成单个元组
    • 自然连接:两个关系的自然连接运算所匹配的元组在两个关系共有的所有属性上取值相同。
    • 笛卡尔积:其结果包括来自两个关系元组的所有对,无论他们的属性值是否匹配
  • 集合运算:并集,交集,集合差

总结

  • 关系数据模型(relational data model)建立在表的集合的基础上。数据库系统的用户可以对这些表进行查询、插入、删除以及更新炒作。
  • 关系的模式(schema)是指它的逻辑涉及,而关系的实例(instance)是指它在特定时刻的内容。关系的模式包括:属性、属性的类型和关系上的约束,如:主码和外码。
  • 关系的超码(superkey)是一个或多个属性的集合,这些属性上的取值保证可以唯一识别出关系的元组;候选码是一个最小的超码,就是说它是一组构成超码的属性集,但这组属性的任意子集都不是超码。数据库设计者可以选择一个关系的候选码作为主码(primary key)。
  • 在参照关系中的外码(foreign key)是这样的一个属性集合:对于参照关系中的每个元组来说,它在外码属性上的取值肯定等于被参照关系中某个元组在主码上的取值。
  • 模式图(schema diagram):是数据库中模式的图形化表示,它显示了数据库中的关系,关系的属性,主码和外码。
  • 关系查询语言(relational query language):定义了一组运算集,这些运算可以作用在表上,并输出表作为结果。这些运算可以组合成表达式,表达所需的查询。
  • 关系代数(relational algebra)提供了一组运算,它们以一个或多个关系为输入,返回一个关系作为输出。SQL是基于关系代数的,但增加了一些有用的语法特征。

习题

  • 2.14 列出在数据库中引入空值的两个原因。

使用空值的原因是因为在现实生活中,数据库属性的值可能是未知或者不存在。例如:地址可能是不存在,或者不知道新的地址。

  • 2.15 讨论过程化和非过程化语言的相对优点。

非过程化语言能够简化查询语句,用户不用担心查询如何执行。

过程化语言需要用户能够指定查询方式和期望查询结果,需要费更大的精力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章