数据库

数据库的内部结构
三级模式结构
(1)外模式/子模式/用户模式 : 是用户观念下局部数据结构的逻辑描述,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。
一个数据库可以有多个外模式
(2)概念模式/模式 :是对数据库全局逻辑结构的描述,是数据库所有用户的公共数据视图。模式的描述:①所有实体、实体的属性和实体间的联系。②数据的约束。③数据的语义信息。④安全性和完整性信息。
概念模式的地位:是数据库系统模式结构的中间层;与数据的物理存储细节和硬件环境无关;与具体的应用程序、开发工具及高级程序设计语言无关
一个数据库只有一个概念模式
(3)内模式/存储模式/物理模式 :是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。
内部模式定义了所有内部记录类型、索引和文件的组织方式,以及所有数据控制方面的细节(包括数据是否压缩存储、数据是否加密)。内模式是DBMS管理的最低层。虽然称其为物理模式,但它不涉及物理记录的形式,如物理块或页、具体设备的柱面与磁道大小等,内部视图仍然不是物理层,是最接近物理存储的数据存储方式,是物理存储设备上存储数据时的物理抽象。
一个数据库只有一个内模式
两级映像功能
(1)外模式/模式映像 (2)模式/内模式映像
完整性规则
Note
会举例说明
实体完整性:主码的值不能为空且必须唯一(作用:保证表中的每一条数据都能够被识别)
参照完整性:外码的值要么等于参照表中的主码的值,要么为空(作用:保证表之间关联数据的一致性,防止 “孤儿数据”。)
用户自定义完整性:根据用户定义的
并发问题与事务隔离级别
- 并发会带来那些问题?
- 事务的隔离级别有哪些?
- 各种隔离级别有哪些优缺点?如何选择?
脏读,幻读,丢失修改,不可重复读
丢失修改
定义:两个事务同时读取同一数据,然后分别基于原始值进行修改,后提交的事务覆盖了先提交的修改。
脏读
定义:一个事务读取了另一个未提交事务写入的数据。如果后来那个事务回滚,读到的数据就是无效的。
不可重复读
定义:同一事务内,两次读取同一行数据,期间另一个事务修改并提交了该行,导致两次结果不同。
幻读
定义:同一事务内,两次执行同一个范围查询,期间另一个事务插入/删除满足条件的新行,导致第二次查询返回不同的行集。
| 隔离级别 | 脏读 | 不可重复读 | 幻读 | 丢失修改 |
|---|---|---|---|---|
| 读未提交 | 可能 | 可能 | 可能 | |
| 读已提交 | 不会 | 可能 | 可能 | |
| 可重复读 | 不会 | 不会 | 可能 | MySQL InnoDB 默认级别 |
| 串行化 | 不会 | 不会 | 不会 | 最高级别 |
mysqldump数据库的备份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Note
注意没有指定输出的文件的路径会直接输出到当前(执行命令)的目录
关系代数
SQL语句
去重
1 2 | |
C(cno,cname,ct)
将数据结构的学分改为3
1 | |
1 2 | |
函数依赖与范式
完全函数依赖
部分函数依赖
传递函数依赖(了解)
2NF的分解算法
范式级别判定
注意范式等级判定应该从高到低进行判定

无损连接判定

保持依赖的判定
判定方法: 1. 检查原关系模式中的每个函数依赖,确保函数依赖的左右两边的属性都在同一个被分解的关系模式中。 2. 如果所有的函数依赖都能在某个分解后的关系模式中找到,则分解保持了函数依赖。
例如,如果关系模式R中存在函数依赖A -> B,且在分解后的关系模式R1中同时包含了属性A和B,则可以说分解保持了函数依赖。

ER图与模式转换
Note
需要知道ER图的画法,ER图如何转换成关系模式
实体类型之间的关系
- 一对一(1:1)
- 一对多(1:n)
- 多对多(m:n)
实体型用矩形表示,属性用椭圆表示,联系用菱形表示,联系可以具有属性
转换成关系模式的时候,主键可以用下划线标注,外键可以注明
确定关系名:实体,m:n属性
确定每个关系的属性
实体名:自己的属性+对面为1关系实体的主键 关系名:自己的属性+两边的主键
确定主键

转换成的关系模式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
题目二:现有一局部应用,包括两个实体:出版社和作者,这两个实体是多对多的联系。试设计适当的属性,画出E-R图,将其转换为关系模型(关系名、属性名、码和完整性约束条件)

1 2 3 4 5 6 | |
题目三:某医院需要上线住院信息管理系统,请完成以下两方面工作。(1)基本的需求分析为:一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一个科室;一个医生可负责多个病人的诊治,但一个医生的主治医生只有一个。画出对应的E-R图。(2)请将E-R图转换为对应的关系模式,各关系模式属于第几范式?会产生什么更新异常?