关系数据库系统
一、关系模型
用二维表的形式来表述实体和实体间联系的数据模型。
网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而关系数据库较好地解决了这些问题。
实体:我们使用数据库欲描述的事物
关系:实体与实体之间的联系
属性:用来描述实体的特征。
例: 教师、学生是实体,教学是关系,学生的年龄、姓名是属性。
关系的性质:
关系是个元数为K(K>=1)的元组的集合。
关系是一种规范化的表格,他有以下限制:
a.关系中的每一个属性值都是不可分解的。
b.关系中不允许出现相同的元组。
c.关系中不考虑元组之间的顺序。
d. 元组中属性也是无序的。
关系模型的组成:
(1)关系数据结构:关系,现实世界的实体以及实体间的各种联系。关系模型中数据的逻辑结构是一张二维表。
(2)关系的操作集合:常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作的表达能力最重 要,包括:选择、投影、连接、除、并、交、差等。
(3)关系的数据完整性:
包括:域完整性、实体完整性、参照完整性和用户自定义的完整性 。
域完整性 :指属性的取值范围,如性别取值应为男或女。 属性的取值范围
实体完整性 (Entity Integrity)规则:若属性A是基本关系R的主属性,则属性A不能取空值。例如:在课程表(课程号,课程名,教师,周课时数,备注)中,“课程号”属性为主键,则“课程号”不能取相同的值,也不能取空值。
主键不能为空,不能重复
参照完整性 规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(关系R和S不一定是不同的关系),则对于关系R中每个元组在属性F上的值必须为:
外键 1.或者取空值(F中的每个属性值均为空); 2.或者等于S中某个元组的主键值。
域完整性、实体完整性和参照完整性是关系模型中必须满足的完整性约束条件 ,只要是关系数据库系统就应该支持域完整性、实体完整性和参照完整性。除此之外, 不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是对某些具体关系数据库的约束条件。例如:选课表(课程 号,学号,成绩),在定义关系选课表时,我们可以对成绩这个属性定义必须大于等于0的约束。
二、关系数据库系统
以关系模型为基础的数据库系统。如SQL Server,Oracle,MySQL