数据库复习要点(数据库知识点总汇)

完整代码:https://download.csdn.net/download/pythonyanyan/87454372

一、绪论


1.1 概念


  • 数据:描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的

  • 数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享

  • 数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS 的主要功能包括数据定义功能、操纵、组织、存储功能、数据库的事务管理、运行管理功能、数据库的建立和维护功能

  • 数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成

1.2 数据库发展三阶段及特性


  • 人工管理阶段:数据不保存、应用程序管理数据、数据不共享也不具有独立性

  • 文件系统阶段:数据可以长期保存、由文件系统管理数据、数据共享性差、冗余度大、独立性差

  • 数据库系统阶段:数据结构化、共享性好,冗余度低,易扩充、独立性(物理独立性和逻辑独立性)高、由DBMS统一控制管理

1.3 数据模型


现实世界中数据特征的抽象,包括数据结构(二维表/树/网状结构)、数据操作(操作集合)和数据的约束条件(符合实体/参照/自定义完整性)。概念模型、逻辑模型、物理模型。

  • 实体:客观存在并可以相互区别的事物,可以是具体对象或抽象事件

  • 属性:实体所具有的的某一特性

  • 码/键:唯一标识实体的属性集

  • :属性的取值范围

  • 实体型:某一实体属性的集合

  • 实体集:性质相同的同类实体的集合

  • 联系:实体内部的联系及实体之间的联系

1.4 逻辑模型


  • 层次模型:有且只有一个结点(根)没有双亲,根以外的其它结点有且只有一个双亲;约束条件:增:如果没有相应的双亲结点值就不能插入子女结点值;删:如果删除双亲结点值,相应的子女结点也被同时删除;改:要修改所有相应记录保证数据一致性

  • 网状模型:允许一个以上的结点没有双亲;一个结点可以有多于一个的双亲

  • 关系模型:一张规范化的二维表;支持记录码:唯一标识记录的数据项的集合;保证一个联系中双亲记录和子女记录之间是一对多的联系;可以支持双亲记录和子女记录之间某些约束条件

物理独立性:当DB的存储结构改变时,由DBA对各个模式/内模式的映象作相应改变,可使模式保持不变,从而应用程序不必修改,保证了数据和程序的物理独立性。

逻辑独立性:当模式改变时,由数据库管理员对各个外模式/模式的映象作相应改变,可使外模式保持不变。应用程序是根据外模式编写的,从而应用程序不用作出修改,保证了数据和程序的逻辑独立性。

1.5 思考题


  • 数据库阶段的数据管理有哪些特点?(2)

  • 数据独立性和物理独立性在数据库中如何体现?(7)

  • DBMS有哪些功能?定义、组织、存储、管理、操纵数据,DB的事务、运行管理,建立和维护

  • 数据模型的作用及构成要素是什么?(3)

  • DBS的用户有哪几类,如何区分?偶然(不常访问需不同信息)、简单(查询更新)、复杂(直接用数据库语言访问数据库)

  • DB的三级模式结构描述了什么问题? DB的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成,是数据的三个抽象级别,把数据的具体组织留给DBMS管理。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;外模式也称子模式或用户模式,是数据库用户能看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用相关的数据的逻辑表示;内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

  • DBS由哪几部分组成?硬件平台及DB、软件(DBMS,应用系统…)、人员(数据库管理员、用户…)

二、关系数据库


  • :一组具有相同数据类型的值(基数)的集合,在关系中用域来表示属性的取值范围

  • 笛卡尔积:对两个关系R和S进行乘操作,产生的关系元组个数为两个关系中元组个数之积

  • 候选码:关系中的某一属性组的值能唯一标识一个元组而其子集不能,该属性组为候选码

  • 主码:一个关系有多个候选码(能唯一标识一个元组而其子集不能的属性组),则选定其中的一个为主码

  • 主属性:主码的诸属性

  • 非码属性:不包含在任何候选码中的属性

  • 全码:关系模式的所有属性是这个关系模式的候选码

  • 外部码:关系R的某一属性组X不是R的码,但是其他某一关系的码

实体完整性:一个基本关系上的主属性不能取空值。

参照完整性:一个关系R中的每个元组在他的外码上的取值要么取空值要么等于另一个关系S(关系R的外码对应关系S中的主码)中的某个元组的主码值。

  • 等值连接

  • 自然连接:去除重复的列

思考题


  • 关系中的元组为什么没有先后顺序 ?关系是一个元组的集合,元组在集合中的顺序不重要

  • 关系与普通的表格、文件有什么区别 ? 关系是一张规范化的二维表格,在关系模式中对关系有规范性限制:关系中的每一个属性值都不可分解,不允许出现相同的元组,没有行序,属性无序但使用时要考虑列的顺序。

  • 广义笛卡尔积、等值连接、自然连接三者区别? 笛卡尔积对两个关系R和S进行乘操作,产生的关系元组个数为两个关系中元组个数之积;等值连接是在笛卡尔积的结果上进行选择操作,从R和S的笛卡尔积中选择对应属性值相等的元组;自然连接是在等值连接上进行投影操作,并去掉重复的公共属性列。当两个关系没有公共属性时,自然连接就转化为笛卡尔积。

三、关系数据库标准语言SQL、数据库安全性、数据库完整性


  • 查询 WHERE GROUP BY HAVING LIKE ODER BY 集函数…

  • 相关子查询… IN EXISTS?

思考题


  • SQL语言有何特点? 综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供多种使用方式、语言简洁,易学易用

  • SQL的定义功能是什么? 模式定义、表定义、视图和索引的定义

  • 基本表和视图的区别和联系是什么? 视图是从一个或几个基本表(或视图)导出的虚表

  • 视图有何优点? 简洁用户的操作、使用户能以多种角度看待同一数据、对重构数据库提供了一定程度的逻辑性、安全保护机密数据、清晰表达查询

  • 所有视图是否都可更新?为什么?请举例说明。 不是 视图由两个以上基本表导出、字段来自字段表达式或常数、字段来自聚集函数、定义中含GROUP BY、DISTINCT、嵌套查询且内层查询FROM中的表也是导出该表的基本表,一个不允许更新的视图上定义的视图,都不允许更新

  • 连接查询和嵌套查询的特征分别是什么? 一个查询同时涉及两个以上的表;将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询

四、规范化


  • 函数依赖(简答):对一个属性集上的关系模式的任意一个关系,其中不可能存在两个元组在X函数上的属性值相等但在Y函数上的属性值不等的情况,则称X函数确定Y或Y函数依赖于X,记作X→Y。

  • 不平凡函数依赖:X→Y,Y⊆X

  • 平凡函数依赖:X→Y,Y⊆X 如:(学号,课程)→学号

  • 完全函数依赖F:X→Y,真子集X’Y 如:(学生,课程)→成绩

  • 部分函数依赖P:X→Y且Y不完全依赖于X

  • 传递函数依赖:Y对X不平凡函数依赖,YX,Y→Z 如:(学生、宿舍、面积)

给出模式及其语义,写出函数依赖(部分/完全/传递)


码:一个关系模式的属性或属性集完全函数依赖于K,则K为此关系模式的候选码,若有多个则选一个做主码;不可能出现两个元组在码上的值相同在其他值不同

给出关系模式和函数依赖,判断第几范式


  • R∈1NF:一个关系模式R的所有属性都是不可分的基本数据项

  • (无非主对码的部分…)R∈2NF:关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码 每一个非主属性完全函数依赖于任一个候选码

  • (无非主对码的传递…)R∈3NF:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z  Y), 使得X→Y,(Y→X)Y→Z成立,则称R∈3NF

  • (无主对码的部分和传递…)R∈BCNF:设关系模式R∈1NF,若X→Y且YX时X必含有码,则R∈BCNF 每一个决定因素都包含码

  • 多值依赖X→→Y:一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

  • (限制关系模式间无非平凡且非函数依赖的多值依赖)R∈4NF:关系模式R∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y  X),X都含有码,则称R∈4NF

五、数据库设计


  • (大题)给出数据库要求,画出E-R图,转换为模式(需求分析、概念结构设计、逻辑结构设计)

  • 数据字典:数据项(不可再分的数据单位)、数据结构(反应数据之间组合关系)、数据流(数据结构在系统内传输的路径)、数据存储(数据结构停留和保存的地方,数据流的来源和去向之一)、处理过程(描述处理过程的说明性信息)的含义,写出某个应用系统的数据字典

思考题


  • 数据库的生命周期分为哪几个阶段?6 需求分析 概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护

  • 数据库结构设计在生命周期中的地位如何?

  • 数据库概念设计的重要性和设计步骤。 将需求分析阶段的数据分类组织,确定实体、实体的属性、实体之间的联系模型,画E-R图。

  • 数据库逻辑设计的重要性和设计步骤。 把概念结构设计阶段的E-R图转换为与DBMS支持的数据模型相符的逻辑结构

  • 数据库物理设计的重要性和设计步骤 为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构。1确定数据库物理结构2对物理结构进行评价

  • 最后一道大题 习题(学校/零件) 某学校有若干系,每个系有若干学生,若干课程,每个学生只在一个系学习,同一门课只在一个系开设,某个学生选修了若干课程,每门课有若干学生选修。其中,学校包括属性:学校代码、学校名称、学校地址;系包括属性:系名、系代号、系主任名和电话;学生包括属性:学号、姓名、年龄、性别、所在系代号;课程包含属性:课程号、课程名;学生上课后有一个成绩。 今要建立该学生选修课程的数据库,请你设计:关于此学校数据库的E-R图,并把该E-R图转换为关系模型,并标识出每个关系模式的主码。

六、数据库恢复技术


事务:用户定义的一个数据库操作序列,要么全做要么不做,是一个不可分割的工作单位ACID原子性(事务是数据库的逻辑工作单位)、一致性(事务执行的结果必须是数据库从一个一致性状态变到另一个一致性状态)、隔离性(一个事务的执行不能被其他事务干扰)、持续性(一个事务一旦提交他对数据库中数据的改变就应该是永久性的)

三种故障和恢复


  • 事物内部的故障(事务在运行过程中未运行至正常终止点就夭折了):撤销事务UNDO、强行回滚该事务ROLLBACK、清除该事务对数据库的所有修改

  • 系统故障(正常运行被破坏、正在运行的事务非正常终止、内存数据库缓冲区的信息全丢失、外部存储设备上的数据没受影响):重启时恢复程序要强行撤销所有未完成事务UNDO、重做所有已提交的事务REDO

  • 介质故障(硬件故障使存储在外存中的数据丢失):数据转储

静态转储:在系统无运行事务时进行转储,转储开始时一致性,转储期间不允许对数据库的任何存取、修改活动 简单但降低可用性

动态转储:与事务并发进行,转储期间允许对数据库存取或修改不能保证副本中的数据正确有效和登录日志文件(后两种故障时用到)

思考题


  • 什么是事务?事务有哪些重要属性 ?(1)

  • 什么是数据库的恢复 ?

  • 什么是数据库中数据的一致性?

  • 为什么事务的非正常结束会影响数据库数据的一致性?试举例说明。 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致性状态。 例如,某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放,则可以定义一个事务T。T包括两个操作:Q1=Q1-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。

  • 数据库恢复的基本原理是什么?冗余

  • 数据库恢复的基本技术有哪些?数据转储和登录日志文件

七、并发控制


  • 丢失修改:事务1、2读入同一数据并修改,2的提交结果破坏了1提交的结果,导致1的修改被丢失

  • 不可重复读:指1读取数据后,2执行更新操作,使1无法再现前一次读取结果

  • 脏数据:1修改某一数据,并将其写回磁盘;2读取同一数据后;1由于某种原因被撤消,这时事务1已修改过的数据恢复原值;事务2读到的数据就与数据库中的数据不一致,是不正确的数据

思考题


  • 什么是事务的并发操作,有哪几种类型 ?事务的并行执行 2交叉并发和同时并发

  • 并发操作会带来哪几种问题,这些问题的特征和根由是什么?破坏I、C +(1)

  • 什么是封锁?基本的封锁类型有几种? 事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。 加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 2 排它锁X、共享锁S

  • 数据库恢复的基本原理是什么? 冗余。数据库中任何一部分被破坏或不正确的数据可以根据存储在系统别处的冗余数据来重建。

  • 数据库恢复的基本技术有哪些? 数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

  • 为什么要引进意向锁?意向锁的含义是什么? 为提高封锁子系统的效率。 该封锁子系统支持多种封锁粒度。原因是:在多粒度封锁方法中一个数据对象可能以两种方式加锁——显式封锁和隐式封锁。因此系统在对某一数据对象加锁时不仅要检查该数据对象上有无(显式和隐式)封锁与之冲突,还要检查其所有上级结点和所有下级结点,看申请的封锁是否与这些结点上的(显式和隐式)封锁冲突,显然,这样的检查方法效率很低。为此引进了意向锁。 含义:对任一结点加锁时,必须先对它的上层结点加意向锁。 例如事务T要对某个元组加X锁,则首先要对关系和数据库加ix锁。对关系和数据库加ix 锁,表示它的后裔结点——某个元组拟(意向)加X锁。引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突了。例如,事务T要对关系R加X锁时,系统只要检查根结点数据库和R本身是否己加了不相容的锁(如发现已经加了ix,则与x冲突),而不再需要搜索和检查R中的每一个元组是否加了X锁或S锁。

你可能感兴趣的:(数据库)