数据库原理提纲
期中考试复习心得体会
概念是要的,但是不是记定义什么的,而是记名字、分类(比如说逻辑数据独立性这个词差点没写出来、子模式也没想出来,数据模型三要素,关系的基本性质(我服了这个也没记住====》原来数据库也是文科。。。【但是那个什么概念模型和结构模型和也考了定义?
大题很重要!幸好中午把关系代数和SQL的大题猛猛学了点
所以其实不应该把重点放在梳理课本上面的东西?就是那些定义找找别人的笔记copy一下就好了
这次题型是选择2*10 填空2*10 简答6*5 ,剩下的都是计算,但是我怎么记得不止30分,按照分数的就占比一半一半?
颜老师的考试提纲可以信👍,比lh好多了
关于复习提纲:
“熟记”部分,一定要熟记
“查询习题讲解”课件中的题型及方法
掌握蓝色部分的应用题型和解题方法(对应章节的课件中有)
第一章 引论
1. 四个概念:什么是数据? 什么是数据库? 什么是数据库管理系统(DBMS)?什么是数据库系统(DBS)?
数据就是信息的载体,可以是任何形式的,比如数字、文字、图片、声音等等。举个例子,当你在社交媒体上发布一张照片,这张照片就是一种数据。数据库是一个里面按照一定的规则存放了很多数据的数据集合。它包含了相关的数据及其描述,是数据管理的重要基础。数据库管理系统(DBMS)是一套管理数据库的软件系统,它提供了数据定义、数据操作、数据维护和数据控制的功能。常见的DBMS有MySQL、SQL Server等。数据库系统(DBS)包括了所有与数据库有关的东西,除了数据库本身和管理它的软件(DBMS),还包括硬件设备(比如服务器)、操作系统、数据库管理员和使用数据库的应用程序。可以把它看成是一个完整的生态系统,所有部分一起工作来处理和管理数据。\
2. 熟记数据库系统的组成。
数据库,数据库管理系统,支持数据库运行的软、硬件环境,用户
硬件:用于存储和运行数据库系统的物理设备。
软件:包括操作系统、DBMS、应用程序等。
数据:数据库中存储的各种数据。
人员:包括数据库管理员(DBA)、最终用户、应用程序开发人员等。
程序:各种用于操作和管理数据库的数据处理程序。
\
3. 理解DBA是对数据库进行集中控制和管理的最重要人员。
数据库管理员(DBA,Database Administrator)是负责数据库系统管理和维护的重要人员。他们的主要职责包括:
安装和升级数据库服务器和应用工具
分配数据库的存储并规划未来的存储需求
管理用户访问和数据安全
确保数据库的性能、可用性和安全性
备份和恢复数据库
\
4. 实例和模式的对比(内容/状态 vs 结构,变化 vs 稳定)
内容/状态 vs 结构:实例是数据库在某一时刻的具体数据内容,即数据库的当前状态。模式是数据库的结构和约束,是数据库的逻辑设计,是相对稳定的。
变化 vs 稳定:实例是不断变化的,每次对数据库的操作都会引起实例的变化。模式则是相对稳定的,只在数据库设计或结构发生重大改变时才会变动。
\
5. 三级模式的含义是什么?一个数据库有几个物理模式,逻辑模式和子模式?三级模式间的两极映射,以及是由谁(DMBS)完成这种映射功能的?两级映射的作用(好处)是带来以下两种数据独立性——
物理模式(内模式):描述数据在计算机里的实际存储方式。一个数据库只有一个物理模式。
逻辑模式(模式):描述数据库的总体设计,描述了数据库中的数据以及数据之间的关系。一个数据库只有一个逻辑模式。
子模式(外模式):是数据库用户可见的部分,每个用户只看到和自己相关的部分数据。一个数据库可以有多个子模式。
三级模式间的两级映射:由DBMS负责完成。
外模式/模式映射:定义子模式到模式的映射,比如学生看到的成绩单和实际数据库表格之间的对应关系。
模式/内模式映射:定义模式到物理模式的映射,比如一张学生表格在硬盘上的具体存储位置和形式。
两级映射的作用(好处):带来以下两种数据独立性:
6. 熟记两种数据独立性:什么是逻辑数据独立性?什么是物理数据独立性?用户或者应用程序面向的到底是哪一级数据库模式?
逻辑数据独立性:是指当数据库的逻辑结构发生变化时,应用程序不需要做相应的改变。这是通过外模式和模式之间的映射来实现的。【这就像是房间里的家具位置变了,客人还是进门就能看到沙发。】物理数据独立性:是指当数据库的物理存储结构发生变化时,应用程序不需要做相应的改变。这是通过模式和内模式之间的映射来实现的。【这就像是你把保险柜换了个地方,但你拿文件的方式不变。】用户或者应用程序面向的数据库模式:用户和应用程序主要面向外模式,即子模式。
7. 概念数据模型用于数据库设计,是对客观世界的第一层抽象。常见例子是E-R模型。
E—R模型:需求分析(用户需求)、概念设计(E—R模型)、逻辑设计(逻辑模式(关系模型))、物理设计(数据库模式)。
(逻辑)数据模型中,了解层次、网状和关系模型,特别是它们(与名字相关的)数据结构。
层次模型:用树状结构来组织数据;(结构简单、清晰,但缺少灵活性、只能1:n)网状模型:用有向图来表示实体和实体之间的联系;(能解决现实中的复杂问题、但结构复杂)关系模型:二维表(关系型数据库)
第二章 关系模型介绍(含第六章关系代数部分)
1. 数据模型的三要素?关系模型的三要素?
数据模型的三要素:数据结构、数据操作、数据完整性;关系模型的三要素:单一数据结构——关系、数据操作——关系操作、数据完整性——关系完整性。
2. 关系的组成:什么是属性?什么是元组?什么是分量?
属性:表格的列。每个属性代表数据的一个特性,比如学生表中的“学号”、“姓名”都是属性。
元组:表格的行。每一行代表一个完整的数据记录,比如学生表中的一行记录一个学生的信息。
分量:元组中的一个具体值。比如在某个学生的元组中,“学号”列的具体值是某个学生的学号。
度:属性的数目;
基数:元组的数目;
域:属性可能取值的集合。
\
3. 熟记关系有哪些基本性质?
无重复元组:表格中每一行都是唯一的,没有重复。
无序性:表格中的行和列的顺序是无关紧要的,换句话说,行和列的顺序可以改变而不会影响数据的逻辑结构。
分量不可再分:每个分量必须是原子的,不可再分。比如,一个分量不能同时包含多个值。
列是同质的。列中的分量类型必须相同,因为它们来自同一个域;
不同的列可来自同一个域,但属性名不能相同;
\
4. 关系有哪四种键?数量(是否有多个)?什么是外部键?外部键的属性名可以和所对应的主键不同。外部键可以指向同一个关系的主键。例如:学生(学号,姓名,班长学号...)。外部键从E-R图的什么概念转化而来?
超键:包含一个或多个属性的集合,这些属性可以唯一标识一个元组。超键可能包含多余的属性。
候选键:唯一标识表中元组的一个或多个属性组合。一个表可以有多个候选键。
主键:从候选键中选出的一个,用来唯一标识表中的每一行。一个表只有一个主键。
外键:表中的一个属性,它引用了另一个表的主键,用来建立两个表之间的联系。外键的属性名可以和它引用的主键不同。
外部键的属性名可以和所对应的主键不同。比如学生表中的“班长学号”可以是外键,引用班长的“学号”。外部键可以指向同一个关系的主键。比如学生表中的“班长学号”指向同一个学生表中的“学号”。外部键从E-R图的什么概念转化而来?外部键从E-R图中的“关系”概念转化而来,用来表示实体之间的联系。
5. 关系模式和关系实例的对比。
关系模式:是关系(表格)的结构定义,包括表名、列名和列的数据类型等。它描述了表的框架和格式,是静态的。关系实例:是关系在某一时刻的具体数据内容。它是表格中的具体数据,是动态的,会随着数据的增删改而变化。
6. 过程化和非过程化语言的区分和理解——看课件。
过程化语言:需要用户明确指定操作步骤和执行顺序。用户告诉系统“怎么做”。例如,关系代数是一种过程化语言。非过程化语言:用户只需指定“做什么”,不需关心具体操作步骤。系统会自动找出实现的方法。SQL和关系演算都是非过程化语言。
7. 关系操作分为查询和更新操作。表示关系操作的语言:关系代数,关系演算(又分为元组关系演算和域关系演算)。关系代数是过程化的,关系演算是非过程化的。后面讲到的SQL是非过程化的。
表示关系操作的语言:关系代数:是一种过程化语言,用运算符对关系进行操作,表示查询过程。关系演算:是一种非过程化语言,用谓词逻辑来表达查询条件
8. 掌握关系代数的各种运算(包括符号)。其中最基本的运算(不可替代)是哪些?
9. 查询优化不要求。【这可是面试重点烙铁!怎么能不要求!】
10. 应用题型:用关系代数表达查询问题(查询习题课件)
第三章 SQL(含课本第四章部分)
1. SQL的全名(中英文)。SQL是非过程化的语言。熟记SQL的特点
SQL(Structured Query Language)统一化、非过程化、面向集合的操作方式(高效性)和提供多种方式使用(可移植性)
2. 熟记SQL的四种功能。这些功能分别由哪些语句(动词)实现?
\
3. SQL对数据库三级模式的规定:每级模式由什么组成?
外模式:由用户视图组成,是用户能看到和操作的部分。逻辑模式:由数据库的逻辑结构组成,是所有数据的全局视图。内模式:由数据的物理存储结构组成,是数据在物理设备上的存储方式。
4. 理解SQL中的系统数据类型,char/varchar/numeric等。
char(n):长度固定为n的字符串;Varchar(n):可变长度的字符串,最大长度为n;Numeric(p,q):小数点左边p位,右边q位的定点数;Real:浮点数;Float(n):精度至少为n位的浮点数;Interval:两个date或time类型数据之间的差。
5. 掌握SQL的各个数据定义语句(特别是新建表,建视图,修改表,删除表的语句)。
6. 掌握SQL的Select数据查询语句。掌握Like运算中的通配符和转义符。
like比较运算中使用escape关键词来定义转义字符。“%”代表零个或者多个字符“_”代表一个且只能是一个字符
7. 掌握SQL的各个数据修改语句: Insert, Update, Delete。
\
8. 空值的意义;掌握空值的运算规则(包括聚集函数忽略空值等),例如给出一个包含空值的式子,能计算最终结果。在关系代数和SQL中如何(根据以上规则)处理空值。
空值(NULL)表示未知或不存在的值。运算规则:
聚合函数会忽略空值。例:SUM、AVG、COUNT等。
表达式中含有空值的运算结果通常为空值。例:5 + NULL结果为NULL、NULL > 5 的结果是 NULL、TRUE AND NULL 的结果是 NULL、FALSE OR NULL 的结果是 NULL。
9. 理解视图的本质:命名的查询语句,只有这个才是真正存储在数据库里的;表象:虚拟表,与真正的表基本表相比有相同也有不同;动态变化)。
10. 熟记理解视图的优点。
简化查询:将复杂的查询封装成简单的视图。
数据安全:限制用户访问特定的数据。
逻辑独立性:数据结构变化时,视图可以保持不变,减少对应用程序的影响。
\
11. 掌握定义视图的语句。理解对视图的查询以及对视图的更新在后台是怎样进行的(视图的查询:展开视图——替换视图为它所对应的查询。视图的更新:转化为对基本表的更新,这种转化可能因为缺少主键等原因失败,从而无法更新)。
12. 什么样的视图可以成功修改?什么样的视图不可以?
可以成功修改的视图:
视图包含基本表的主键或唯一键,可以唯一标识要更新的行。
视图的定义中没有复杂的聚合函数、子查询或连接。
不可以成功修改的视图:
视图中不包含基本表的主键或唯一键,导致无法唯一标识要更新的行。
视图的定义中包含聚合函数、子查询或连接,导致更新操作无法转化为对基本表的更新。
视图定义中包含计算列或派生列,这些列无法直接更新到基本表。
\
13. 嵌入式SQL不要求。
14. 应用题型:用SQL表达数据查询(Select)和数据修改(Insert, Update, Delete)问题。用SQL建表(Create Table,包括主码、外部码、检查约束等),建视图(Create View)等数据定义操作。
\
第四章 关系数据库模式设计
熟记关系模式设计不当可能产生的四种问题:数据冗余和三种异常。
数据冗余:指同一数据被存储多次,导致存储空间浪费和数据一致性问题。
插入异常:指在插入数据时,由于某些数据依赖关系的存在,无法插入某些数据。
删除异常:指在删除数据时,意外地删除了有用的信息。
更新异常:指在更新数据时,由于数据冗余,导致需要更新多处,容易出现数据不一致的问题。
\
理解函数依赖X→Y的含义。掌握判定函数依赖的方法。
函数依赖X→Y:表示在一个关系中,如果对于任意两个元组,只要它们在X上的值相同,它们在Y上的值也相同。X称为决定因素,Y称为被决定因素。
判定方法:通过分析关系的实际数据,检查是否对于任意两个元组,如果X相同则Y也相同,来判定是否存在函数依赖。
\
用函数依赖判断一个属性集是否超码,或者是否候选码的方法。
三对特殊类型的函数依赖:
平凡/非平凡函数依赖:
平凡:如果Y是X的子集,则X→Y是平凡函数依赖。
非平凡:如果Y不是X的子集,则X→Y是非平凡函数依赖。
部分/完全函数依赖:
部分:如果存在一个真子集Z (Z ⊂ X) 使得Z→Y成立,则X→Y是部分函数依赖。
完全:如果对于X的任何真子集Z (Z ⊂ X),Z→Y不成立,则X→Y是完全函数依赖。
传递/非传递函数依赖:
传递:如果X→Y和Y→Z成立且Y不包含于X和Z,则X→Z是传递函数依赖。
非传递:如果不存在上述条件,则X→Z是非传递函数依赖。
超码:如果一个属性集能够唯一标识一个元组,则称为超码。
候选码:如果一个属性集是超码且没有冗余属性(即任何真子集都不是超码),则称为候选码。
判定方法:通过检查属性集的函数依赖关系,确定它是否能唯一标识元组,以及是否有冗余属性。
\
掌握计算属性集闭包的算法。以及由此判定一个函数依赖是否成立的方法。
属性集闭包:指给定属性集X,计算所有通过函数依赖可以推导出的属性集称为X的闭包,记为X⁺。
算法:
初始化闭包X⁺为X。
循环应用函数依赖:如果X⁺包含函数依赖的左侧,则将函数依赖的右侧加入X⁺。
直到X⁺不再增加。
判定方法:如果给定的函数依赖Y→Z,且Y的闭包包含Z,则函数依赖成立
\
最小函数依赖集不要求。4.3这一节不要求。
掌握1NF、2NF、3NF、BCNF的定义/要求,并能依此进行判定。
1NF(第一范式):每个字段的值都是原子值,即不可再分。
2NF(第二范式):在1NF的基础上,消除部分函数依赖,即每个非主属性完全依赖于候选码。
3NF(第三范式):在2NF的基础上,消除传递函数依赖,即每个非主属性非传递依赖于候选码。
BCNF(Boyce-Codd范式):在3NF的基础上,消除任何形式的冗余,即每个决定因素必须是候选码。
\
掌握规范化到1NF,3NF,BCNF的相关方法。关系模式应该至少规范化到3NF。规范化到3NF和规范化到BCNF相比,后者得到的关系模式属于更高级别,但是可能会丢失函数依赖。
规范化到1NF:确保所有字段的值都是原子值。
规范化到3NF:确保消除部分和传递函数依赖。
规范化到BCNF:确保消除所有冗余,使得每个决定因素都是候选码。
\
多值依赖不要求。
应用题型:给出关系和函数依赖
找出候选码,并证明。
判断某个函数依赖是否成立,给出证明。
判断关系所属的最高范式,给出证明。
将关系规范化到3NF,或者BCNF
判断一个分解是否无损依赖,给出证明
\
第五章 数据库设计
理解E-R模型的三要素:实体、属性和联系。以及在E-R图中的表示。
三种特殊类型的属性,并能够判断。
能判断二元联系的类型:一对一,一对多,多对多。以及在E-R图中的表示。
能将E-R图转化为关系模型。注意:多值属性的处理(如果有n个多值属性,n个分开来处理);1对1,1对多,多对1,多对多,三元以上联系各自的转化方式——不要张冠李戴。
熟记数据库设计的基本过程,包括在各个阶段分别要做的工作?
应用题型:
给出用户需求,画E-R图(概念设计)。
将E-R图转化为关系模型(逻辑设计)。
\
第六章 数据库安全性与完整性
安全性是防止非法用户进入数据库,以及合法用户进入数据库后做了(未授权的)非法操作。完整性是防止非法数据进入数据库,即使是合法用户及合法操作产生的。
掌握用SQL授予权限和回收、禁止权限的语句(grant, revoke, deny)。with grant option子句的作用。
理解常见权限的含义。(例如 insert on (table) S, update on (view) A等)
理解完整性的含义:正确、有效、相容。完整性约束(规则)是数据为保证完整性所必须满足的条件。
熟记关系模型中的三类完整性规则。各有什么要求?理解哪些(修改)操作会破坏这些规则?
掌握用SQL定义主码约束、外码约束、非空(not null)约束、唯一(unique)约束、域约束、检查(check)约束的语句?以及这些约束的含义、作用。
在定义外部码约束时,有哪几种参照动作?代表什么意义?
断言不作要求
熟记以下全部触发器的概念。触发器有哪些作用?触发器/ECA规则构成的三个方面,包括英文单词。哪些事件会激活(INSERT,UPDATE,DELETE操作)。
\
第七章 数据库事务管理。
深刻理解事务的概念。熟记事务的ACID性质(包括英文单词、解释、保障机制)。
掌握事务控制的多个SQL语句。两种结束方式(提交或回滚)的含义及区别。不能提交的事务结局只能是回滚。
事务调度分串行调度和并发调度,并发调度的效率高,但也有问题:破坏数据一致性,产生错误。
熟记并发引起的三类数据不一致问题,它们是如何发生的(过程?)。产生不一致问题的根本原因是事务在并发执行(调度)时,没有保证隔离性。
并发执行(调度)的正确性准则:可串行化——效果等价于一个串行调度。
封锁的基本类型:排他锁(写锁、X锁)、共享锁(读锁、S锁)。各个锁的含义(例如排他锁是读+写,共享是读),相容/排斥关系?
意向锁不要求。更新锁不要求。
有哪几种封锁协议?规则是什么?它们的作用(各自解决了哪些数据不一致性问题)?两段封锁协议是可串行化调度的充分非必要条件。
数据库恢复技术的基本原理:冗余。建立冗余的两种方法:数据备份和登记日志文件
静态备份 vs 动态备份(有否一致性;是否允许用户运行事务来操作数据库)。
日志文件的定义:是用来记录事务对数据库进行更新操作的文件
日志文件的基本内容(事务开始一条;事务结束一条;事务若干次更新若干条)。在登记更新操作的日志记录时,更新前后的旧值与新值都要保存到日志记录中。
什么是运行记录优先(先写日志)原则?
熟记以下全部不同类型的数据库故障,包括它们的定义,故障的起因(例如死锁引起事务故障,停电引起系统故障,硬盘坏道引起介质故障等等...),影响范围(事务本身?DBMS系统?内存中的数据?磁盘上的数据?)、恢复策略(方法过程),及由谁完成(系统自动 or 用户干预?)
检查点不要求
最后更新于