关系数据库简介
关系模型的概念
?数据库技术是作为数据处理的一门技术而发展起来的,所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。
?在数据库中用数据模型来抽象、表示和处理现实世界中的数据。数据库即是模拟现实世界中某应用环境(一个企业、单位或部门)所涉及的数据的集合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。
?最常用的数据模型有层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)。
?关系模型就是用二维表格结构来表示实体及实体之间联系的模型。
? 关系(Relation):一个关系对应一张二维表,每个关系有一个关系名。在SQL Server中,一个关系就是一个表文件。
? 元组(Tuple):二维表中水平方向的一行,有时也叫做一条记录。
? 属性(Attribute):表格中的一列,相当于记录中的一个字段。
? 关键字(Key):可唯一标识元组的属性或属性集,也称为关系键或主码。
? 域(Domain):属性的取值范围,如性别的域是(男,女)。
? 分量:每一行对应的列的属性值,即元组中的一个属性值。
?关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,……属性n)。
关系模型的性质
(1)关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。
(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。
(3)关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。
(4)同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。
(5)关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。
(6)关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,是一个确定的值,而不是值的集合。
关系数据库完整性
1、实体完整性(Entity Integrity)
?实体完整性是指主关系键的值不能为空或部分为空。
2、参照完整性(Referential integrity)
?如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。
3、域完整性
?域完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
关系数据库的规范化
?第一范式(1NF):元组中每一个分量都必须是不可分割的数据项
?第二范式(2NF):不仅满足第一范式,而且所有非主属性完全依赖于其主码
?第三范式(3NF):不仅满足第二范式,而且它的任可一个非主属性都不传递于任何主关键字