考查分数 上午 6-8分
考查点:
数据库模式 2
ER模型 ==5== 下午题考查 15分
关系代数 ==3==
规范化理论 ==5==
SQL语言 ==4==
并发控制 2
数据库完整性约束 1
[TOC]
缩写:
- ERD:实体关系图 ()
- DFD:数据流图;数据流程图 (Data Flow Diagram 【图解】)
一、三级模式-两层映射
<img src="/Users/chenningbo/Documents/atom/img/image-20210919173724311.png" alt="image-20210919173724311" style="zoom: 50%;" />
三级模式 (外模式、概念模式、内模式)
-
外模式(视图级)
- 定义:用户与数据库系统的接口,是用户用到的那部分数据的描述
- 它是与用户的操作逻辑相关。在实际项目中就是==用户==操作==后台管理的界面==。
- ==视图级==意味着 它是有界面可以看到的
-
概念模式(表级) 也称模式
- 定义:数据库中全部数据的整理逻辑结构的描述
- 形成的是一种表结构
-
内模式(文件级)
- 定义:所有内部记录类型、索引和文件的组织方式、以及数据控制方面的细节
- 只要改动上边提及的东西就是跟内模式又关系
- 就是物理存储,以文件类型按照不同的存储模式。怎么存比较好(分布式存储、共享存储)存储在什么地方。。
- ==文件级==意味着 它的存在是以文件的形式
两层映射(外模式-概念模式映射、概念模式-内模式映射)
数据的物理独立性、数据的逻辑独立性
-
外模式-概念模式映射 (外模式-模式映射)
- 突出逻辑独立性。存在于外部级何概念级之间,实现了外模式何概念模式之间的相互转化
-
概念模式-内模式映射
- 突出了物理独立性。当你物理存储的位置发生变化的时候,只需要改变表的映射关系。不用修改上层的逻辑
- 数据的==物理独立性==是指当数据库的存储结构改变了,由 数据库管理员对模式/內模式映像做响应的改变,可以使 模式保持不变,从而应用程序也不必改变,保证了数据 与程序的物理独立性,简称数据的物理独立性。
二、数据库设计过程
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920110352404.png" alt="image-20210920110352404" style="zoom: 50%;" />
- 数据流图:表明了数据的流向,从哪里流向哪里。
- 数据字典:其实就是补充数据流图,更详细的说明。
三、E-R 模型
https://www.bilibili.com/video/BV1U54y1W7mX?p=12&spm_id_from=pageDriver
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920110916524.png" alt="image-20210920110916524" style="zoom:50%;" />
- 实体
- 弱实体——特殊化
- 属性
- 联系
- 1 对 1
- 1 对 多
- 多对多
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920111912179.png" alt="image-20210920111912179" style="zoom: 50%;" />
1:1联系
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920113145968.png" alt="image-20210920113145968" style="zoom:50%;" />
校长跟学校 1:1
学校跟校长 1:1
1:N 联系
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920113532791.png" alt="image-20210920113532791" style="zoom: 50%;" />
客户与账户 1:N 一个客户可以多个账户
账户与客户 1:1 一个账户只有一个客户
M:N 联系
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920113759428.png" alt="image-20210920113759428" style="zoom:50%;" />
学生与课程 1:N 一个学生可以选择多个课程
课程与学生 M:1 一个课程可以被多个学生选择
总结
- 一个实体型转换为一个关系模式
- 联系转换关系模式
- 1:1联系 : 可将联系合并到任意一端的实体关系模型
- 1:N 联系 :可将联系合并到 n端实体关系模型中。
- ==M:N== 联系 :==联系必须单独转成关系模式==。
- 三个以上的实体间的一个多元联系
:warning:四、关系代数
1、并、交、差
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920114846624.png" alt="image-20210920114846624" style="zoom:50%;" />
2、笛卡尔积
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920134902016.png" alt="image-20210920134902016" style="zoom:50%;" />
笛卡尔积:在关系S1中取一条数据与关系S2组成一条新的数据 上面例子:S1三条数据 S2三条数据 组成的笛卡尔积 有9条数据
3、投影:
-
-
: 投影
- Sno:选择Sno这列数据
- Sname:选择Sname这列数据
- (S1) :使用关系S1
- 最终就是:选择S1中 Sno 、Sname 这两列组成新的数据
-
4、选择
-
-
选择符号
-
表示选择Sno这列数据中值为No0003的所有信息
- (S1) :使用关系S1
- 最终就是:选择S1中Sno这列数据中值为No0003的所有信息组成新的数据
-
5、自然连接 (
)
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210920141054779.png" alt="image-20210920141054779" style="zoom:50%;" />
自然连接去掉重复的字段,拼接起来。可以拼成完整数据的留下来。
另外如果是用笛卡尔积+投影+选择 如果做出 自然连接后组成的数据呢?
-
- 1、先做笛卡尔积。
- 2、选择 S1中的Sno=No0001的值 以及S2中的Sno=No0001的值
- 3、在投影出 Sno,Sname,Sdept,SAgt 列数据
6、除(
)
<img src="https://raw.githubusercontent.com/jiqilove/picgo/master/markdown/image-20210926171642163.png" alt="image-20210926171642163" style="zoom: 33%;" />
首先R的属性有ABC,S的属性有BCD,所以包含着R中但却不在S中的属性就是A。
所以T的属性里面只有A这一项属性。
其次T的元组与S的元组的所有组合都在R中,这句话的意思就是T和S的所有组合都必须在R中。在这个实际例子中就是 R 必须包含 (a1,b1,c2) (a1,b2,c1) () a1,b2,c3)这三个属性才能说是被除数。