当前位置:网站首页>SQL数据库:知识点汇总,期末不挂科

SQL数据库:知识点汇总,期末不挂科

2022-06-23 22:24:00 念迟鱼学编程

第一章
1数据库的特点:数据库数据具有永久存储、有组织和可共享三个基本特点。
2什么是DBMS?(DBMS是数据库管理系统:数据库管理系统是一个专门用于对数据进行管理和维护的系统软件。)
3数据的独立性(什么是物理独立性,什么是逻辑独立性?)
物理独立性:是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性。
逻辑独立性:是指当表达现实世界的信息内容发生变化时,也不影响应用程序的特性。
第二章
1数据模型的三要素:即在描述数据时要包括数据的基本结构、数据的约束条件(这两个属于数据的静态特征)和定义在数据上的操作(属于数据的动态特征)三个方面。
2概念层数据模型:是指抽象现实系统中有应用价值的元素及其关联关系(常用的有实体-联系模型)
实体:是具有公共性质并可相互区分的现实世界对象的集合。
属性:就是描述实体或者联系的性质或特征的数据项,属于一个实体的所有实例都具有相同的性质。
联系:是指一个实体内部属性之间的联系,实体之间的联系通常是指不同实体属性之间的联系。
两个实体之间的联系通常有三种类型:①一对一联系(1:1)②一对多联系(1:n)③多对多联系(m:n)
3组织层数据模型:层次模型、网状模型、关系模型。
4外模式是什么?(外模式也称用户模式或子模式,它是对现实系统中用户感兴趣的整体数据的局部描述,用于满足数据库的不同用户对数据的需求。一个数据库可以有多个外模式。)
5什么是模式?(也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据描述。一个数据库只有一种模式。)
6内模式是什么?(也称为存储模式。是整个数据库的底层表示,它描述了数据的存储结构,比如是顺序存储,B树存储还是散列孙处,索引按什么方式组织,是否加密等。内模式只有一个。)
第三章
1.候选键:能够唯一标识关系中的一个元组的一个属性或最小属性组。一个关系上可以有多个候选键。
2.主键:也称为主键或主关键字。是表中的一个属性或属性组,用于唯一地确定一个元组。可以由一个属性组成,也可以由多个属性共同组成。
3.主属性:包含在任一候选码中的属性。
4.非主属性:不包含在任一候选码中的属性。
5.关系模式的完整性约束有什么?
①实体完整性:实体完整性是保证关系中的每个元组都是可识别的和唯一的。是指关系数据库中所有表都必须有主键,而且表中不允许存在无主键值的记录和主键值相同的记录。
②参照完整性:限制一个关系中某列的取值受另一个关系中某列的取值范围约束特点就称为参照完整性。
③用户定义的完整性:也称为域完整性或语义完整性。就是针对某一具体应用领域定义的数据库约束条件,它反映某一具体应用涉及的数据必须满足应用语义的要求。
6.什么是外键:设F是关系R的一个或一组属性,如果F与关系S的主码相对应,则称F是关系R的外码(Foreign Key),并称关系R为参照关系(Referencing Relation),关系S为被参照关系(Referenced Relation)或目的关系(Target Relation)。关系R和关系S不一定是不同的关系。
7.什么是选择σ:它从指定的关系中选择某些元组形成一新的关系,被选择的元组是满足指定
的逻辑条件的。
8.什么是投影∏:是对指定的关系进行垂直方向的选择,并形成一个新的关系。包括两个过程:1)选择指定的属性 2)删除重复行,形成新的关系
9.什么是连接:用来连接相互之间有联系的两个关系,从而产生一个新的关系。
10.连接的要求是什么:连接中常用的连接有两个:等值连接和自然连接。
自然连接是一种特殊的连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中要去掉重复的属性列。
自然连接与等值连接的差别为:
自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;
自然连接要求把重复的属性名去掉,等值连接却不这样做。
11.基本的关系代数要会写。
Eg:查询修c02号课程的学生的学号和成绩。
∏sno, grade(σcno=‘c02’(SC))
查询信息系修c04号课程的学生的姓名和成绩。
∏sname, grade(σcno=‘c04’(SC)σsdept=‘信息系’(Student))
查询修了第2学期课程的学生的姓名、所在系和所选的课程号。
∏sname, sdept,cno(σsemester=2(Course) SC Student)
查询修了全部课程的学生的学号和姓名。
∏sno, sname(Student (SC ÷ ∏cno(Course)))
查询选了“VB”课程且考试成绩大于等于80的学生姓名、所在系和成绩。
∏Sname, Sdept, Grade(σCname=‘VB’∧ Grade>=80(CourseSCStudent))
或:
∏Sname, Sdept, Grade(σCname=‘VB’(Course)σGrade>=80(SC)Student)
在全体的学生中,查询没选“计算机文化学”的学生姓名和所在系。
∏Sname, Sdept(Student)- ∏Sname, Sdept(σCname=‘计算机文化学’ (CourseSC
Student) )
或:
∏Sname, Sdept(Student)- ∏Sname, Sdept(σCname=‘计算机文化学 ’
(Course)SCStudent)
第五章
1.SQL按其功能可分为四大部分:数据定义功能、数据控制功能、数据查询功能、数据操纵功能。
2.定义基本表:使用SQL语言中的CREATE TABLE语句实现,其一般格式为:
CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束定义]{,<列名> <数据类型> [列级完整性约束定义] … }[,表级完整性约束定义 ] )
Eg:
例.为Student表添加“专业”列,此列的定义为:Spec char(10),允许空。
ALTER TABLE Student
ADD Spec char(8) NULL
例.将新添加的“专业”列的类型改为char(20)。
ALTER TABLE Student
ALTER COLUMN Spec char(20)
例.删除新添加的“专业”列。
ALTER TABLE Student
DROP COLUMN Spec
3.约束:
NOT NULL:限制列取值非空。
DEFAULT:给定列的默认值。
UNIQUE:限制列取值不重。
CHECK:限制列的取值范围。
PRIMARY KEY:指定本列为主码。
FOREIGN KEY:定义本列为引用其他表的外码。
4.删除关系表:DROP TABLE <表名>
5.修改关系表:
ALTER TABLE <表名>
[ ALTER COLUMN <列名> <新数据类型>] --修改列定义
[ADD <列名> <数据类型> <约束>] --添加新列
[DROP COLUMN <列名>] --删除列
[ADD [constraint <约束名>] 约束定义]–添加约束
[DROP [constraint] <约束名>] --删除约束
6.数据完整性:数据完整性是指数据的正确性和相容性。数据完整性约束是为了防止数据库中存在不符合语义的数据。这些加在数据之上的语义约束条件就是数据完整性约束。
7.完整性约束条件的作用对象:列级约束、元组约束、关系约束
列级约束:对数据类型、数据格式、取值范围或取值集合、空值的约束。
元组约束:是元组中各个字段之间的联系的约束。
关系约束:指若干元组之间、关系之间的联系的约束。
8.PRIMARY KEY 约束
例:对雇员表和工作表分别添加主码约束。
ALTER TABLE 雇员表
ADD CONSTRAINT PK_EMP PRIMARY KEY (雇员编号)
ALTER TABLE 工作表
ADD CONSTRAINT PK_JOB PRIMARY KEY (工作编号)
9.UNIQUE 约束
例.为雇员表的“电话号码”列添加UNIQUE约束。
ALTER TABLE 雇员表
ADD CONSTRAINT UK_SID UNIQUE (电话号码)
10.FOREIGN 约束
例.为雇员表的工作编号添加外码引用约束,此列引用工作表的工作编号列。
ALTER TABLE 雇员
ADD CONSTRAINT FK_job_id FOREIGN KEY (工作编号) REFERENCES 工作表 (工作编号)
11.DEFAULT 约束
例.定义雇员表的工资的默认值为1000。
ALTER TABLE 雇员
ADD CONSTRAINT DF_SALARY DEFAULT 1000 FOR 工资
12.CHECK 约束
例1.在雇员表中,添加限制雇员的工资必须大于等于1000的约束。
ALTER TABLE 雇员
ADD CONSTRAINT CHK_Salary CHECK ( 工资 >= 1000 )
例2.添加限制工资表的最低工资小于等于最高工资的约束。
ALTER TABLE 工作
ADD CONSTRAINT CHK_Job_Salary CHECK ( 最低工资 <= 最高工资 )
第六章
1.必须掌握子查询、分组(包括聚合函数)、表的连接、增删改查、DELETE、UPDATE、字符串匹配查询
①子查询

②查询

③插入

④更新数据

⑤删除

⑥分组+聚合函数+HAVING子句

⑦表的连接

⑧字符串匹配查询

2.内连接与外连接的区别:(内连接两张表都要满足条件,外连接一张表满足调剂即可)
内连接:内连接是一种最常用的连接类型。使用内连接时,如果两个表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的记录。注意:连接条件中的连接字段必须是可比的,即必须是语义相同的列,否则比较将是无意义的。
外连接:是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件。
第七章
1.聚集索引:对数据按索引关键字进行物理排序。
2.非聚集索引:不对数据进行物理排序。
3.创建和删除索引
①创建索引

②删除索引

4.视图的定义:是由数据库的基本表中选取出来的数据组成的逻辑窗口,是基本表的部分行和列数据的组合。视图是一个虚表。
第八章
1.非平凡的函数依赖:如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。
2.平凡函数依赖:如果X→Y,但Y包含于X,则称X→Y是平凡的函数依赖。
3.完全函数依赖:如果X→Y,并且对于X的一个任意真子集X‘都有X‘—/→Y,则称Y完全函数依赖于X,记作:。
4.部分函数依赖:如果X‘→Y成立,则称Y部分函数依赖于X,记作:。
5.传递函数依赖:如果X→Y(非平凡函数依赖,并且Y—/→X)、Y→Z,则称Z 传递函数依赖于X 。
6.函数依赖产生的问题:数据冗余问题 、数据更新问题 、数据插入问题 、数据删除问题
7.关系规范化:是指将有“不良”函数依赖关系模式转换为良好的关系模式的理论。
8.第一范式:不包含重复组的关系。
9.第二范式:如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF。
10.第三范式:如果R(U,F)∈2NF,并且所有非主属性都不传递依赖于主码,则R(U,F)∈3NF。
11.BC范式(BCNF):关系模式R∈1NF。若函数依赖集合F中的所有函数依赖X→Y(Y不包含于X)的左部都包含R的任一候选键,则R∈BCNF。换言之,BCNF中的所有依赖的左部都必须包含候选键。
Eg:例1、以仓库管理关系表为例:仓库ID,存储物品ID,管理员ID,数量。一个管理员只在一个仓库工作,一个仓库能够存储多种物品。
语义分析:
(仓库ID,存储物品ID)→(管理员ID,数量)
(管理员ID,存储物品ID)→(仓库ID,数量)
符合第三范式的。
(仓库ID)→(管理员ID) (管理员ID)→(仓库ID),其不符合BCNF范式。
分解方法:把仓库管理关系表分解为二个关系表:仓库管理:StorehouseManage(仓库ID,管理员ID);仓库:Storehouse(仓库ID,存储物品ID,数量)。
例2、设有关系模式:Student(学号,姓名,导师号,导师名,课程号,课程说明,成绩)
语义:一名学生只有一个导师,学生可选多门课。
将其规范化成3NF的。
1.此表是1NF,其函数依赖为:
学号→姓名,学号→导师号,学号→导师名,课程号→课程说明,
(学号,课程号)→成绩
主码为(学号,课程号)
存在部分函数依赖关系,不是2NF,首先将其分解为2NF。
学生(学号,姓名,导师号,导师名),
课程(课程号,课程说明),
成绩(学号,课程号,成绩) 均为2NF
2.判是否为3NF
“学生”表不是3NF,其函数依赖为:
学号→姓名,学号→导师号,导师号→导师名,
∴学号传递→导师名
消除依赖于决定者的属性,把它们放在一个单独的表中,得到:
学生(学号,姓名,导师号),导师(导师号,导师名)
12.关系模式的分解准则有那两点:模式分解具有无损连接性;模式分解能够保持函数依赖。
什么是无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息、又不丢失信息。
什么是保持函数依赖分解是指在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。
附加p154的课后习题6、7、8.
第九章
1.事务的概念:事务是用户定义的数据操作系列,这些操作作为一个完整的工作单元执行。一个事务内所有语句作为一个整体,要么全部执行,要么全部不执行。
2.事务的ACID特征:原子性(A):是数据库的逻辑工作单位,事务中的操作,要么都做,要么都不做。
一致性(C):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性(I):指数据库中一个事务的执行不能被其他事务干扰。
持久性(D):指事务一旦提交,则其对数据库中数据的改变就是永久性的,以后的操作或故障不会对事务的操作结果产生任何影响。
3.什么是并发控制:就是要用正确的方法来调度并发操作,使一个事务的执行不受其他事务的干扰,避免造成数据的不一致情况。
4.并发操作所带来的问题:丢失数据修改、读“脏”数据、不可重复读、产生“幽灵”数据。
5.S锁(共享锁):可以读但不能修改事务的数据。可以继续加S锁,但不能加X锁,直至释放S锁为止。
6.X锁(排他锁):允许读取和修改事务的数据。有排他锁,不能加任何锁,直至释放X锁为止。
7.封锁协议:
一级封锁协议:对事务T要修改的数据加X(排他锁)锁,直到事务结束(包括正常结束和非正常结束)时才释放。一级封锁协议可以防止数据丢失修改,并保证事务T是可恢复的。不能保证可重复读和不读“脏”数据。
二级封锁协议:一级封锁协议加上事务T对要读取的数据加S(共享锁)锁,读完后即释放S锁。可以防止数据丢失修改,还可以防止读“脏”数据。不能保证可重复读数据。
三级封锁协议:一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。可以防止数据丢失修改和不读“脏”数据,还可以防止不可重复读。
8.死锁:两个事务相互等待对方释放资源,则会造成死锁。
9.解决死锁问题的方法:一类是采取一定的措施来预防死锁的发生;另一类是允许死锁的发生,但采用一定的手段定期诊断系统中有无死锁,若有则解除之。
10.不允许发生死锁:预防死锁:(1)一次封锁法(每个事务一次将所有要用的数据全部加锁,否则就不能继续执行)(2)顺序封锁法(预先对数据对象规定一个封锁顺序,所有事务都按这个顺序封锁)实现难度大。
11.允许发生死锁:死锁的诊断和解除:(1)超时法(等待时间超过了规定的时限,则认为发生死锁。容易实现,但容易发生误判和不能及时对死锁进行处理)(2)等待图法
第十章
1.结构设计包括:概念结构设计、逻辑结构设计和物理结构设计。
2.设计全局E-R模型产生的冲突有:属性冲突、命名冲突、结构冲突。
3.如何把概念模型向关系模型的转换:

附加p186课后习题10、11
(最后一道大题:根据语义自己画E-R图,转换成符合3NF 的,找出主键和外键)

原网站

版权声明
本文为[念迟鱼学编程]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_55804957/article/details/125383963