一、关系数据模型的基本概念
(一)关系模型
1、静态数据结构描述
(1)关系:用于描述数据本身和数据之间的联系,俗称“表”。由行和列组成。
(2)列:也称为“字段”、“属性”。
(3)行:也称为“元祖”、“记录”。
(4)域:指列的取值范围。
(5)关系模式:是对“关系”的描述,由关系名及各个列构成。其描述的一般形式为:R(A1,A2...An),其中R为关系名。Ai为关系R的属性。
(6)关系实例:记录或元祖的集合。
关系实例书上的解释有点难理解,怎么老是想到元祖食品呢。。
(7)候选键、主键、外键...(略)
2、关系模型上的完整性约束
(1)完整性约束:指要求存入数据库的数据满足的条件。
(2)几种约束:
①域约束:是关系模型中最基本的约束,是对列的数据类型的约束。
②主键约束:必须唯一,且不能为空。
③唯一约束:针对候选键,值唯一,允许有一个且仅有一个空值。
④外键约束:
从表:含有外键的表。
主表:外键在另一张表中作主键或候选键的表。
(3)维护表间的完整性,实际上是从两个方向完成的:
①主表→从表:表示“主表”中的主键值在修改和删除时,“从表”中与该主键值相同的外键值可“级联”修改和删除,或禁止“主表”主键值的修改和删除。
②从表→主表:表示“从表”中的外键值在插入和修改时,其值应参照“主表”中的主键值。
(4)表间数据完整性的维护有两种实现方式:
①利用外键约束定义:在从表上定义外键约束(参照完整性约束),来完成主表和从表间两个方向的数据完整性。
②利用触发器:主表的触发器维护主表到从表方向的数据完整性,从表触发器维护从表到主表方向的参照完整性。
(5)一般性约束:域约束、主键约束、唯一约束和外键约束是关系数据模型中最基本的约束,除此之外,还有更一般的约束——检查约束和断言。一般来说,检查约束用于检查单个表,断言用于检查多个表。
①检查约束(表约束):检查表中某一列的值是否在某一取值范围之内;表中某几列之间是否满足指定的条件。
②断言:可检查表中个别列、整个表或表与表之间是否满足指定的条件。
3、完整性约束的实施
(1)对域约束、主键约束和唯一约束的实施
SQL命令在执行过程中一旦违反这些约束就会立刻被拒绝。
(2)外键约束的实施
RDBMS对外键约束的检查,也是从两个方向分别进行的,但不是同时进行。
(3)一般性约束的实施
通常在每个SQL语句之后,由RDBMS根据预先设定的条件,对条件中指定的数据进行检查。
(二)SQL Server和Sybase支持的完整性约束及其设定
1、SQL Server和Sybase支持的完整性
(1)表本身的完整性约束:Default默认、Rule规则、Check Constraint检查约束、Primary Key主键约束、Unique唯一约束
(2)表间的完整性:Foreign Key外键约束、Trigger触发器
(7月15日)无语了,书竟然丢了。。。
(8月5日)书终于找到了。。。
2、
(三)视图及其操作
(四)实体联系模型向关系模型的转换
二、关系代数及关系运算
(一)关系代数
(二)关系运算
1、并(∪)
合并去除重复元祖。
2、差(-)
保留前者中,与后者不同的元祖,与后者相同的删掉。
3、投影(π)
就是投影到哪些属性上,就只留哪些属性(列),然后删除重复的元祖(行)。但实际的数据库产品,不主动删除重复的元祖。
4、选择(σ)
从关系中找出满足给定条件的元组的操作称为选择。
5、笛卡儿积
1-5为基本操作,还有如下操作
6、连接(条件连接、等值连接、自然连接)
7、除法