一、思维导图:
二、基本知识点:
1、关系数据库结构
(1)域:一组具有相同数据类型的值的集合(如整数、实数、指定长度的字符串集合)
(2)笛卡尔积运算:假设两个集合D1和D2,其中D1={2,4},D2={1,3,5},这两个集合的笛卡尔积D1×D2={(2,1),(2,3),(2,5),(4,1),(4,3),(4,5)}
(3)笛卡尔积:可表示一张二维表,表中每一行一个元组,表中每一列一个域
2、关系的定义
(1)关系: D1******Dn中有关系的行形成的一个子集称为D1******Dn的一个关系,用R(D1,D2…Dn)表示,R表示关系名,n表示关系的元或目
(2)关系的性质:同一列的数据类型必须一致;不同的列可出自同一个域;列的顺序无所谓,行的顺序也无所谓;任意两个元组的候选码不能相同;关系中属性不可再分,满足原子性
(3)关系模式(作用:定义表结构的):关系模式是型,静态的、稳定的,关系是值,是关系模式某一时刻的状态,所以关系模式是对关系的描述;
(4)关系模式的结构化表示:R(U,D,dom,F),R表示关系名;U是组成该关系的属性名集合;D是属性组U中属性来自的域;dom是属性向域的映像关系;F是属性间的数据依赖关系集合
3、关系操作
(1)查询操作:选择、投影、并、差、广义笛卡尔积、交、连接、除…
(2)更新操作:插入、删除、修改
(3)关键码:
3、关系的完整性
(1)数据库的完整性:数据的正确性和有效性,数据是符合现实世界语义,反应当时实际情况
(2)实体完整性:基本关系的所有主属性都不能取空值【主键】。参照完整性:存在两个关系(表)R和S,F是一个属性或者属性集合;F属于R但不是R的主键,同时F属于S并且F是S的主键,则称F是基本关系R的外码,R为外键表,S为主键表【外键】。用户定义完整性:针对某一具体关系数据库的约束条件,反应某一具体应用所涉及的数据必须满足语义要求(没有统一要求,由DBS创建)【NULL…】。
4、传统关系运算:
(1)并运算:关系R和S具有相同的关系模式(属性相同,域相同)
例子:
(2)差运算: R和S具有相同的关系模式,R和S的差是有属于关系R但不属于关系S的元素构成的集合
例子:
(3)交运算:R和S具有相同的关系模式,R和S的交是属于集合R有属于集合S的元素组成的集合
例子:
(4)广义笛卡尔积:R:n个关系,K1个元组;S:m个关系,K2个元组
R×S的列:组成新的关系有(m+n)列
R×S的行:组成新的关系有(K1×K2)行
例子:
5、专门的关系运算:
(1)投影:(对关系进行垂直分割) 关系R上的投影是R上选择出若干个属性列组成新的关系(从表中选择列)
例子:
(2)选择:(对关系进行水平分割): 挑选满足条件的行
例子:
(3)连接: 两个关系的笛卡尔积中选取满足条件的元组(两个关系先做笛卡尔积,在用条件筛选出满足条件的行)
例子:
【1】等值连接:
例子:
【2】自然连接:两张表中属性名相同的值也相同的进行组合构成一个新的关系
例子:
(4)除法:
象集:给定关系R(A,B),A,B为属性组。表示A属性上a在B上的分量
例如:
除运算步骤:
stop1:找到两个关系中属性相同的列
step2:R/S就是相同的列中属于R但不属于S的列
step3:找到R中列的元素所对应的象集,和S在和R相同列的投影
step4:象集包含S中得到的投影的元素就是除法的结果
例子: