三级模式 两级映射
- 内模式 描述数据库物理结构。在操作系统硬盘怎么储存
- 模式 描述数据库整体逻辑结构。表结构,所有表
- 外模式 描述数据库部分逻辑结构。部分表
- 外模式/模式映射。保证了数据逻辑独立性。模式改变,外模式不变
- 模式/内模式映射。改内模式,模式映射改变,模式不用变。保证了数据物理独立性
关系代数,八个运算
超码 >= 候选码 = 主码 + 备选码
超码(SK)能唯一确定一个元组 ,候选码(CK) 也是超码 ,不过候选码的任意真子集不能确定唯一的元组。而主码(PK)是我们主观选定的候选码,而备选码(AK)则是除了主码以外的候选码。 另外还一个码,叫做外码(FK),一个表的外码要么为 null ,要么必然在另外一张表以主码的形式出现。这也就是参照完整性约束。
关系模型可以形式化表示为 R (U,D,dom,F)
R:关系名
D:属性的域
dom:属性的映射关系
F:依赖关系
就表 A (A1,A2,A3) 而言:
1、A 为关系名(R)。
2、A1、A2、A3 的取值范围(D)。
3、属性向域的映射关系(dom)。
4、属性间的依赖关系(F)。
例子:
STUDENT(U,D,dom,F)
U{sno,name,age} // 理解为表的字段集合
D{char,int} // 理解为表中字段的类型集合
dom{dom(sno)=dom(name)=char,dom(age)=int} // 理解为每个字段具体的取值
F{sno–>name,sno–>age} // 理解为表字段的关系
关系代数,八个运算
- 并: R∪S , R 和 S 关系合一起,相同的写一次
- 差:R-S, 找 R 在 S 关系中没有的
- 交,相同的拿出来
- 笛卡儿积:相乘,所有排列组合
- 选择:把符合条件的拿出来。 σSdept = ‘IS’ (Student),把student表中Sdept列为IS的拿出来
- 投影:看行,把行拿出来,如果有两个行相同,只写一个。写法, πSname,Sdept(Student)
- 连接:
- 一般连接,等值连接:两个关系先做笛卡尔积运算,然后再根据条件进行比对。留下符合条件的
- 自然连接:找相同的然后拼在一起
- 复合连接 类似于自然连接,只是连接结果不包含连接属性。上例去掉B列就是
- 外连接:左连接 + 右连接,就在强行把俩表怼一起,不相同的也留着,会出现空null就对了。
- 左连接:在自然连接的基础上加上左边表上不包含自然连接中所含元组(行)的元组。
- 右连接:在自然连接的基础上加上右边表上不包含自然连接中所含元组(行)的元组。
- 除/商:看下面的例子,因为 C, D 是关系 S 中的两个属性,因此在 R 集合对除了 C, D 的属性,即 A, B 两属性进行投影,得到 a, b; b, c; e, d; 这三组,然后用这个结果与关系 S 进行笛卡尔积运算,发现 b c c d 这组在关系 R 中没有,其余 a, b; e, d; 做的运算在 R 中存在。因此最后结果为 a, b; e, d