概念数据模型
了解即可
结构数据模型
数据库的三级模式结构
外模式对应视图
概念模式对应的是数据库管理系统里面的基本表
内模式对应的是数据库里的一些存储文件
上图可直接背下面概念
两级映像
有内模式跟物理独立性相关,有外模式跟逻辑独立性相关
两级映像其中有一方肯定是模式,如下提d选项
关系模型基本术语
候选码的意思它只能表示那个唯一的,比如一个人在学校他的姓名等可能跟别人重复,但是学号是唯一的,所以学好就可以用候选码标记
在候选码中的是主属性,不在的成为非主属性,如果是属性组和组成的候选码那么它可以是那个组是主属性
完整性约束
并,差,交,笛卡儿积
笛卡儿积一个括号表示一个元素,n元组又叫目,度
专门的运算符 投影,选择
投影
对关系R下的ac进行投影
选择
如果单纯写一个 选择(s)他会把s所有行都选择出来
选这一行里b着一列的值要等于5 不等于5的这一行直接不要了
如上图b等于5的‘5’要用单引号括起来,只写5会认为是列的序号就是第几号的意思
红线意思是第一列的值等于第三列的值
连接
直接看例题
theat连接
等值连接
theat符号换成等于号就是等值连接
自然连接
这个符号下什么也没有的话就是自然连接
3中去除重复列一般是去除R跟S这两个后面的那个,所以这个去掉S
公共属性列需要完全相等才是自然连接的结果,如果没有找到相等的那么这个就是一个空值,比如下面这个例题
外连接
左外连接
右外连接
全外连接
只要有一个跟右边的一样这个笛卡儿积就可以跳到下一个对比,哪边连接保留哪边另一边置空
求属性列就是进行自然连接后删掉后面重复的结果
求笛卡儿积效率高,应该先选择选择后符合条件得就少了。R×S效率最低。比如以下这题
投影选择转sql语言
笛卡尔积转sql语言
自然连接转sql语言
数据定义语言(SQL)
上图例子创建出来是这样的,char(10)表示长度最长10
列级,表级完整性约束
列:not null不能为空。unique他可以为空但是他的值是唯一的。not null unique不能为空并且它的值是唯一的。defaule默认的
下面是主键举例
下面是外键,外键这个值要参照另外一个表进行填写。reference是参照的意思。最后生成的表参照那个也是只能填写之前表里的内容如下例子
数据操纵语言
基本语句中的元组值就是上图红色圈圈里的
列名序号是可省略的,如何使用如上图
修改学号为115的班号为2022
数据查询语言
划线的解析如下
投影查询
DISTINCT去除重复列的意思
AS是取别名的意思
选择查询
一个下划线表示一个字符,你输入几个下划线就可以我表示几个字符
排序查询
聚合函数
as是起别名。比如这题差值前面as可以省略不写
数据分组group by
如果条件里想使用聚合函数,需要有having子句不能再where处使用,圈起来的是聚合函数
除了聚合函数都要分组,比如下图课程号没有分组就报错了
表的连接查询(内连接)
自然连接
去除了重复列
inner join这个两侧放需要内连接的两个表,on后面跟条件就是where后面的,如下图
上面两个图结果一样只不过是换了个关键字
上面是扩展知识可以不看
意思是90到100是A,80到89是B这样的意思
外连接
因为是左连接所以左表最后的空值也要保留,如果不是左连接高等数学将被丢掉,因为只保留匹配的
全外连接的结果就是左右连接的结果填在一起如上图
一般子查询
圈起来的是聚合函数,先分好了组,下面count统计行数,最后条件 分组里的数大于5
分组里的值是唯一的 所以这个子查询最后只返回一个值
>any意思是只要大于前面的任意一个数的这个值就能被从查询出来
>all需要大于前面所有的每个数才能被查询出来。它必须是最大的
相关子查询
带EXISTS测试的子查询
查询结果的并,交,差运算
并集是合并去重,交是取重复的记录,C差是从一个记录里删除属于另外一个记录的元组,如下两个表重复的王萍把他删掉结果取第一个表中剩余的3个
year()只取年分
C差是从一个记录里删除属于另外一个记录的元组,如下两个表重复的王萍把他删掉结果取第一个表中剩余的3个
下面这段是关于sql语言的真题
主键是能唯一标识一个元组的,如果没有单个那就组合
55解释为什么是d,因为这题有聚合函数,除了聚合函数外的都要分组,所以这题除了零件号需要分组外,还有零件名称
sql控制语句
将表格的所有权限给用户1和用户2.on后面是谁的权限to后是给谁。
from跟to一样
视图
只用看划线的
as在视图里是,视图的数据来自as后的那个select查询子句
with check option表示修改后的记录还满足条件
d是授权的,如果把权限给i一个人再加上这句话,他就可以在吧权限给别人
索引
只看划线的
索引相关的是内模式,三级模式对应的是外模式(视图),模式(基本表),内模式(村粗文件)
因为索引是物理标识
关系模式
A->B意思是A决定于B,如果翻过来就是B依赖于A
函数依赖
开口永远对着大哥
平凡函数依赖就是左边或者右边有包含或者包含于关系
完全函数依赖就是需要通过两个才能得到的。如下图如果单凭一个得出来的也是不正确的
组合属性中真子集内有一个可以决定右边的话就是部分函数依赖如下图
码和推理规则
不是当前关系的码但他是另一个关系的码
属性闭包计算
闭包过程
等于u的所有属性停止闭包。发现两次闭包结果相等那就停止闭包
怎们决定主键属性也就是圈起来的如何正确的选到像上图ac那样的。找到被其他属性所决定的,除了这几个剩下的那几个就一定包含在候选键属性如下图
没有任何属性可以决定A,所以它包含在候选键,对a求闭包
**
真子集属性不能决定所有属性如下图k1 k2如能决定那么这个答案就不是候选码
包含在候选关键字里的属性都是主属性,也包括u如下56题
全码是值关系所有属性组合爱一起是候选码
第一范式
就是把工资概括给去掉了,留下一些不再刻意分割的属性
部分函数依赖导致数据冗余,更新异常
修改插入删除异常
第二范式
关系模式分解消除部分函数依赖
每个关系的非主属性都完全函数依赖于候选码,那么他就是我们的第二范式
传递函数依赖导致数据冗余,更新异常
第二范式r2,r3解决了数据冗余和异常,但是r1仍然有,院长那个,因为存在传递函数依赖,x->Y,X->Z,得到X->Z这个是传递函数依赖
第三范式和消除传递函数依赖
这样分解
第三范式存在的问题和BC范式
第一范式满足属性不可再分,如图圈起来的
第二范式每一个非主属性都要对候选码完全函数依赖
满足第三范式,但是存在数据冗余更新异常,店长的名字。如果你要删除一本书,店长还有书店信息也会跟着删除,但是他们还存在
所以出现数据冗余异常,因此我们要消除分解接下来,所以涉及到bc范式
消除主属性对候选码的部分,传递函数依赖
第三范式规范化到bc范式
第四范式
范式总结
判断部分函数依赖技巧
首先找出候选码,除了候选码都是非主属性,然后查看是否有非主属性对候选码存在函数依赖,如果有那就存在部分函数依赖,那么就不满足第二范式。这个判断技巧适用于有多个属性组成的候选码
如果候选码是单个属性那么他肯定满足与第二范式
判断传递函数依赖技巧
当做整体看,那么候选码中是不包含它们的
这题满足范式二 看候选码是否有传递依赖,依然没有x->Y,Y->Z,X->Z,我们看伟传递率
x->Y,去其他地方看看有没有wy也就是有没有其他地方与y在一起
根据为传递率,存在函数传递依赖所以不满足第三范式
关系分解
找出候选码 能唯一标识一条记录的。这个表中员工号和家庭成员可以
如果第二范式都不满足的话就不用看第三bc范式了
无损连接和保持函数依赖
判断出具有无损连接
**倒8是自然连接 **
例题
怎们判断是不是无损连接,把两个属性列进行自然连接,自然连接把重复属性列删掉,自然连接前有4个属性,完了后只剩3个肯定是有损
数据库设计
需求分析阶段
逻辑分析的结果就是上图红色圈圈里的
R-E图实体,联系
联系是把两个或者多个实体联系起来就是实体。无向边就是一条直线,有向边是带箭头的
E-R图属性
属性是椭圆型。域就是大概举例比如性别有男和女
复合属性可以在分,比如职工可以分出奈年龄性别等,原子属性不可再分
E-R图设计和弱实体
图里面带下划线的是唯一标识一个实体,
弱实体就是家属依赖职工的存在而存在,因为有职工才有家属
概念结构设计
就是把两个局部的合并成全局
把一个大系统分成若干个小系统,对小系统入手这样更简单些
2冲突解释。比如学生编号和学号名字不同意思相同
逻辑结构设计
写出来的就是转换出来的关系模式
数据库控制功能(事务管理)
数据库的备份和恢复