考研复试数据库

2024年3月更新:又到一年复试季了,但是现在大部分学校都是线下复试了,本篇经验是网上复试的,可能不太适合现在的情况

--------------------------------------------------------------------------------------------------
仅针对考研复试相关,没有计算部分的问题等我觉得不会问的部分(如果你报考的学校要求开摄像头做笔试当我没说)

表示我背的八股文都快忘了,所以来这里整理一下 。以下内容仅仅是个人理解,参考数据库本科教材,可能会有错误的地方,希望大家批评指正)
有的参考书上会有单行函数 ∑(っ°Д°;)っ、、 高教版的没有

数据库大概分为11章
第一章:绪论(我觉得这玩意提问的频率最高)
第二章:关系数据库(投影、选择、并、差、笛卡尔积)
第三章:写SQL(?线上复试怎么写SQL,很迷)
第四章:数据库安全(我觉得不问)
第五章:数据库完整性(实体,参照,自定义)
第六章:关系数据库理论(范式)
第七章:数据库设计(需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库的实施和维护)
第八章:数据库编程(从未遇见过,可能是我格局小了)
第九章:关系查询处理和查询优化(?SQL优化这是真·八股文
第十章:数据库恢复技术(事务ACID我也不会英文)
第十一章:并发控制+锁(嗯背)

第一章:绪论(我觉得这玩意提问的频率最高)

1.四个概念(数据,数据库,数据库管理系统,数据库系统)
数据:描述事物的符号记录
数据库(DB):长期存储在计算内有组织可共享的数据集合
数据库管理系统(DBMS):一种计算机基础软件,如MySQL,Oracle等
数据库系统(DBS)=DB+DBMS+DBA(数据库管路员)+。。。

2.三个阶段人工管理,文件管理,数据库管理

3.三个概念
DCL(数据库控制语言):由DBA负责,进行授权(Grant)或撤销(REVOKE)的管理
DDL(数据库定义语言):定义数据库对象,表级操作
DML(数据库操纵语言):实现增删改查

4.三级模式两级映像
外模式:是数据库用户的数据视图。是数据库中局部数据逻辑结构和特征的描述。

模式:是数据库中全体数据逻辑结构和特征的描述。

内模式:对物理结构的描述

外模式/模式:当模式发生改变时,保持外模式不变,保证了逻辑独立性。

模式/内模式:当存储结构发生改变时,程序不变,保证了物理独立性。

5.两大数据模型:
概念模型;
逻辑模型和物理模型;
数据模型三要素: 1.数据结构2.数据操作3.完整性约束(实体,参照,自定义)

6.E-R图(逻辑结构设计)
方框表示实体:如学生,课程
椭圆表示属性:学生姓名,学生编号,课程名
菱形表示联系:学生选课

7.数据模型(层次,网状,关系)
1.层次模型:树形
2.网状模型:无向图
3.关系模型:二维表

第二章:关系数据库(投影、选择、并、差、笛卡尔积)&&第五章前部分

8.关系操作(选择、投影、并、差、笛卡尔积 ``我觉得大概率不会问

1.选择(σ)从行的角度
查询年龄<20的学生

σ Sage<20(Student)

2.投影(Π)从列的角度
查询学生的姓名和系

ΠSname,Sdept(Student)

3.连接(符号我找不到)
查询成绩大于95学生的姓名和系

ΠSno,Sname(σ grade>95(Student 连接 SC))

。。。。
9.关系完整性
1.实体完整性:主键非空不能重复(学生学号不为空)

primary key(Sno);--定义Sno为主键

2.参照完整性:比如课程表中只有1,2,3号课程,那么在学生选课表中就不能出现4号课程。
FOREIGN KEY (SNO) REFERENCE STU(SNO);
--在选课表中定义SNO参照学生表中的SNO

3.用户自定义完整性:设置性别只能为男或女

sex CHAR(2)  CHECK(SEX IN ('男','女'));

4.完整性约束命名(CONSTRAINT)

Sno NUMBER(6) 
CONSTRAINT C1  CHECK(Sno BETWEEN 000000 AND 999999 );

Sname varchar(6) 
CONSTRAINT C2  NOT NULL;

5.修改完整性约束
。。。。。。
扎不多德勒

第三章:写SQL(?线上复试怎么写SQL,很迷)

⑤SELECT
①FROM
②WHERE
③GROUP BY
④H\AVING、
⑥ORDER BY 最后一步

10.WHERE和H\AVING的区别
WHERE和H\AVING的区别在于作用域不同

WHERE是从全部中选择
H\AVING是从GROUP BY之后的分组中选择,HAVING必须和GROUP BY一起出现

11.索引(INDEX,约等于图书的目录)
建立索引可以提高查找性能,适合于内容不常改变的表,是数据库自动实现的(显然。。)

CREATE INDEX 索引名 ON STU(Sno);
DROP INDEX ON 索引名;
聚簇索引:物理位置与逻辑位置一样,一个表只能包含一个聚簇索引。

第四章:数据库安全(我觉得不问)

授权与回收:GRANT,REVOKE
**角色:**为了授权方面,所以创建了角色。
CREATE ROLE 名字

**视图:**试图是一个虚表,提供查询的窗口。
with read only///with check option;

第五章:数据库完整性(实体,参照,自定义)

实体,参照,自定义见第二章

12.触发器(trigger)

设置完触发器后自动执行(类似于烧水壶温度100自动断电)
Create TRIGGER 触发器
BEFORE|AFTER 增删改 ON 表名

FORE EACH {ROW|STATEMENT}

ROW行级:如果新插入的员工工资小于4000,则自动将工资变为4000。
STATEMENT 语句级(表级):

。。。。下列来自百度
行级触发器对DML语句影响的每个行执行一次. 语句级触发器对每个DML语句执行一次,
(如果一条insert语句在一个表中插入500行,
那么这个表的语句级触发器只执行一次,
而行级触发器要执行500次) 可以按字面意思理解:
行级触发器针对行,
语句级触发器针对语句(一个语句可以包含多行).
。。。。

第六章:关系数据库理论(范式)**

1.平凡函数依赖(学号,课程号)—>课程号 (条件包含结论)
非平凡函数依赖(学号,课程号)—>成绩(条件不包含结论)

2.完全函数依赖(学号,课程号)—>成绩(缺一不可)
部分函数依赖(学号,课程号)—>姓名(部分就可以)

3.传递函数依赖
学生(Sno,Sname,Deptno,Sdept)
Sno—>deptno—>Sdeptname

1NF:每个属性都是不可再分的
↓ 消除非主属性对码的部分函数依赖

2NF:每个非主属性都完全函数依赖于码
↓ 消除非主属性对码的传递函数依赖

3NF:不存在非主属性都传递函数依赖于码
消除主属性对码的部分函数依赖传递函数依赖

BCNF

第七章:数据库设计(需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库的实施和维护)

1.需求分析
2.概念结构设计(E-R图,UML)
3.逻辑结构设计(设计数据库表CREATE)
4.物理结构设计(存储结构)
5.数据库的实施和维护

第八章:数据库编程(从未遇见过,可能是我格局小了)

游标:方便对结果集的数据进行处理。
四步:
声明游标,打开游标,从游标中处理数据,关闭游标。

第九章:关系查询处理和查询优化(?SQL优化这是真·八股文

第十章:数据库恢复技术(事务ACID我不会英文)

BEGIN TRANSACTION 开始事务
COMMIT;提交
ROLLBACK;回滚
事务的四大特性: 原子性一致性持久性隔离性

经典解释:
原子性: A–》B转100元,A的账户-100,B的+100,两个事情要么同时发生,要么同时不发生。
持久性: A–>B转钱的过程是真是发生的,(理论上)就是的

一致性 :结合后面的不一致状态

第十一章:并发控制+锁(嗯背)

事务是并发控制的基本单位
1.并发控制导致的三个问题:
1.丢失修改:A对数据进行了修改,但B在读取数据时仍读的是未修改的数据(人话:B想抄A的答案,A本来写的1后来改成了0,但是由于未知的原因B抄的答案是1)
2.不可重复读:在同一事务中,两次读取同一数据,得到内容不同
3.脏读:一个事务读取到了另外一个事务没有提交的数据

2.封锁

排它锁(exclude,X锁,写锁):A对事务加了X锁,A可读可写,其他事务不能操作。

共享锁(share,S锁,读锁):A对事务加了S锁后,其他也可以加S锁,都可以读,但是都不能写

3.三级封锁:
一级封锁:修改前先加X锁,事务结束释放,可以防止丢失修改。

二级封锁:读取前加S锁,读完后释放,可以防止丢失修改,脏读。
三级封锁:读取前加S锁,事务结束释放,可以防止丢失修改,脏读,不可重复读。

4.活锁&死锁:
活锁(饥饿):某个事务可能无限等待
死锁:两个或多个事务互相等待对方

死锁预防:
一次封锁:事务把所需要的的资源全部加锁。
顺序封锁:

死锁检测解除: 结合OS
超时法(等待时间超过规定时间就认为死锁了)
等待图法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值