数据库复习
第一章 数据库系统概论:
(1) 数据管理的发展阶段
(阶段和名称记住以及优缺点):
- 人工管理阶段(20世纪50年代左右)程序之间存有大量的冗余数据,且易产生数据不一致等问题。
- 文件系统阶段(20世纪50年代后期到60年代中期)仍然存在上述问题,但数据可以长期保存到外存。
- 数据库系统阶段(20世纪60年代后期)具有数据独立性强、冗余小、共享性高、完整性和安全性好等特点。
(2) 数据库系统的基本概念(6点):
-
数据(data)
指用符号记录的可区别的信息。在数据库系统中,数据实际上就是可以被计算机存储、识别的信息。 -
数据库系统(DBS)
即DataBase System。DBS是数据库技术在计算机中的应用,是一个有机结合的人机系统,是由计算机硬件系统、操作系统、数据库管理系统、数据库、应用程序、数据库管理员和用户组成。数据库系统必备的特性(七点
):-
灵活多样的用户界面
-
数据的独立性
-
数据的完整性
-
查询优化
-
并发控制
-
备份与恢复
-
安全性
-
-
在
数据库(DB)
中,数据与数据的逻辑结构同时存储,各数据文件的数据项的逻辑定义都记录在“数据字典”中,通过数据库管理系统,用户可以很方便地访问数据库中的数据,数据可高度共享。 -
数据库管理系统
即DataBase Management System。数据库管理系统(DBMS)是数据库系统的核心,在操作系统的支持下,对内负责数据库中数据的管理,对外负责数据库操作界面的提供。主要功能如下:- 数据定义:DBMS提供的数据定义语言(DDL),用于定义数据库中数据的逻辑结构
- 数据操纵:DBMS提供的数据操纵语言(DML),主要用于对数据进行检索、插入、修改和删除等基本操作。
- 数据库运行控制:DBMS提供的运行控制机制包括数据完整性控制、并发性控制、安全性控制及数据备份和恢复功能
-
数据库管理员
即DataBase Administrator。数据库管理员(DBA)主要职责就是:管理用户对数据库及相关软件的正确和安全地使用,对数据库进行维护,确保数据库的正常运行。 -
用户
即数据库的使用者。
(3) 概念模型:
-
基本概念
-
实体
:即客观存在且可区别的事物在信息世界的反映,实体既可以是实际的事物,又可以是一种概念或现象。例如一个教室,一本书等 - 实体集:具有相同属性名,而属性值又有所不同的实体的集合。在实体集中,不能存在两个或两个以上相同的实体。如学校的全体教工
- 实体型:即抽象的实体集的命名表示。由实体名和实体集的各属性名构成。(教师登记表(编号,姓名,性别,年龄,婚否,职称,部门))
-
属性
:事物所具有的具体特征。实体是由若干个属性来描述的(教师实体由编号、姓名等属性来描述) - 域:某个属性的取值范围称为该属性的域(domain)。域限制属性的取值(性别中的域为”男“和”女“)
-
键
:唯一区分一个实体属性或属性组的存在,该属性或属性组就被称为键(key)也称为码 -
联系
:联系反映在概念模型中,就表现为实体集本身内部的联系和实体集间外部的联系。内部联系表现在组成实体的各属性之间,如姓名与职称之间是“拥有”联系;实体集的外部联系表现为不同实体集之间,如教师实体与学生实体是“教学”联系。联系一般都有联系名。
-
-
实体集间的联系(ER图,大题,重要)
- 一对一联系
- 一对多联系
- 多对多联系
ER图分为实体、属性、联系三个核心部分。实体是长方形体现,而属性则是椭圆形,联系为菱形。
还要标上属于哪种联系(1 : 1,1 : n或m : n)
(4) 数据模型:
- 层次数据模型
- 网状数据模型
- 关系数据模型
(5) 数据库体系结构★_简答题
分为三层,数据库的物理结构是数据的物理存储方式,一般称为内模式;数据库的视图结构是用户的数据视图,最接近于用户,一般称为外模式;数据库的逻辑结构是介于物理结构和视图结构两者之间,一般称为模式。`对于一个数据库系统来说,只有一个内模式,也只有一个模式,但可有多个外模式。
-
模式(逻辑模式、概念模式)
是数据库的逻辑结构。表示了数据库的全部信息内容,定义了数据库的全部数据和逻辑结构,主要描述数据库中存储什么数据以及这些数据之间有何种关系。 -
内模式(存储模式,物理模式)
是数据库的物理结构,是整个数据库的最底层表示,用于定义数据的存储方式和物理结构 -
外模式(子模式,用户模式)
是数据库的视图结构。 -
二级映像:
数据库体系结构中,还定义了二级映像(Mapping)——模式/内模式间的映像和外模式/模式间的映像,以保证数据库系统的数据具有较高的独立性。(简答,判断,选择)
-
数据独立性
-
物理独立性:
指用户的应用程序与存储在数据库中的数据是相互独立的,应用程序处理的是数据的逻辑结构,至于存储文件中的数据在磁盘中如何存储,用户不必了解,当存储文件中的数据在磁盘中的存储位置发生改变时,应用程序也不必发生改变。 -
逻辑独立性:
指用户的应用程序与数据库定义的逻辑结构是相互独立的,当数据库的逻辑结构要发生变化时,不至于影响到用户的应用程序。 -
模式/内模式映像
是保持数据的物理独立性的关键 -
外模式/模式映像
是实现数据的逻辑独立性的关键
-
(6) 课后习题
(1) 数据管理技术经历了:`人工管理、文件系统、数据库系统`三个阶段。
(2) DBMS是指`数据库管理系统`,它是位于`用户`和`操作系统`之间的一层管理软件。
(3) 数据库具有数据结构化和最小的`冗余`及较高的`数据安全性`等特点。
(4) 每个关系实际上就是一张`二维表`。
(5)要保证数据库的数据独立性,需要修改的是 `三级模式间的二级映像`
(6)在数据库的三级模式结构中,用于描述数据库中全体数据的全体逻辑结构和特性的是`模式`。
(7)DBMS的主要功能是什么?
(8)什么是数据独立性?数据独立性包括哪两个层次?
(9)关系数据模型有什么特点?`概念简单清晰,操作直观方便,易于使用。`
第二章 关系数据库:
(1) 基本概念
-
关系模型
:是建立在严格的数学理论基础上的,关系模型由关系数据结构、关系数据操纵 和 关系数据完整性
三部分组成。 -
基本关系术语
(参考ppt、详细)-
关系:一个关系即一张二维表
-
属性:关系中的一系列数据
-
元组:即关系中的一行数据(任意两个元组的候选码是不同的)
-
分量:一个元组在一个属性上的值被称为该元组在这个属性上的分量
-
域:某个属性可以取值的范围
-
键key:如果关系中一个属性或属性组能唯一标识一个元组,且不含多余的属性,则该属性或该属性组称为该关系的候选键,简称键
-
主键:一个关系中可以有一个或多个键(候选键)但至少要有一个键,每个关系有且只能有一个主键
-
外键:外键是一个或多个列的组合,它存在于两个表中。
-
关系模式:某个关系的关系名及其所有属性的集合称为该关系的关系模式,描述的是一个关系的结构。
-
(2) 数据完整性?_简答题
-
实体完整性约束:
主要用于限制关系中所有的元组唯一,即表中所有的记录都可区分。一般在一个表中规定一个主键,则主键列(可以是组合列)的值必须存在、不为空值且唯一。 -
参照完整性约束:
涉及两个或两个以上关系的数据一致性的维护。即参照完整性约束是对不同关系之间有关联的数据的约束。一般是使用外键来实现参照完整性约束。 -
用户自定义完整性约束
:用户自己定义的特殊约束。一般关系数据库系统都提供这种完整性约束机制,以满足各种用户不同的需要。
(3) 关系代数
- 传统集合运算 P27
并运算
交运算
差运算
笛卡儿积
- 专门的关系运算 P28
选择运算
投影运算
连接运算
除法运算解析:
(4) 课后习题
-
在一个关系模型中,不同关系模式之间的联系是通过____来实现的。—▲
-
关系数据完整性有哪些实现方式?
-
等值连接与自然连接有何区别?
等值连接从两个关系的笛卡儿积的运算结果上,选取A、B字段值相等的那些记录构成新的关系。
自然连接,即将两个关系在等值连接的基础上,消除冗余字段,形成新的关系的操作。
-
简述关系模型的三个组成部分。
1.关系数据结构、2.关系数据操纵、3.关系数据完整性
-
关系代数的基本运算主要有哪些?请结合例子解释。
第三章 关系数据库标准语言SQL_?
(1)SQL基本概念
SQL
是Structured Query Language(结构化查询语言)的缩写,SQL是关系数据库的标准语言。
SQL特点:
- 综合统一(集数据定义、数据操纵和数据控制于一体,可以独立完成数据库的定义、查询、更新、维护、完整性控制、安全性控制等一系列操作_★)
- 高度非过程化
- 面向集合的操作方式
- 以同一种语法结构提供多种使用方式
- 语言简洁,易学易用
(2) SQL语言分类
SQL语言主要用于
查询、定义、操纵和控制,是一种功能齐全的关系数据库标准语言,包括以下4大类:
-
数据定义语言(DDL,Data Definition Langulage),用于定义、修改、删除数据库表结构、视图、索引等。
-
数据操纵语言(DML,Data Management Language),用于对数据库中的数据进行查询和更新操作。
-
数据控制语言(DCL),用于设置数据库用户的各种操作权限
-
事务处理语言:用于保证数据库中数据的完整性
(3) SQL数据定义
SQL的数据定义
包括模式定义、基本表定义、视图定义和索引定义
-
创建基本表,列完整性约束 P47
-
修改表结构(P48,必考,不考索引)_★
(4) 数据更新
- 数据更新(P50,全看,必考)_★
(5) 数据查询
- 分组查询 P61
- 聚集函数查询P67
(6) 视图
视图(掌握实验内容,和表的区别
,创建为主)
- 定义:视图实际上是从一个或多个基本表或已有视图中派生出来的虚拟表,也是一个关系。
- 作用:通过操作视图而达到操作基本表数据的目的。
- 与表的区别:
区别:在数据库中只存在视图的定义,不存在数据,表既有数据又有定义 联系:视图是从表中或其他视图中派生出来的
(7) SQL的数据完整性约束
SQL的数据完整性约束
:数据完整性约束指的是保证数据库中的数据始终是正确的、一致的。如事务处理可以保证数据库中的数据的一致性;主键约束、唯一性约束可以实现实体完整性约束,外键约束可以实现参照完整性约束,检查约束可实现用户自定义完整性约束。
事务
是RDBMS提供的一种特殊手段,事务可确保数据能够正确地被修改,避免因某些原因造成数据只修改一部分而致使数据不一致的现象。
事物的特性
,一般统称为ACID特性
- 原子性(Atomicity):要求事务中的所有操作都作为数据库中的一个基本的工作单元。工作单元中的所有操作,要么全被执行,要么一个都不执行,即只要其中一个语句操作失败,则这个工作单元的所有语句将全被拒绝执行,回到这个工作单元执行前的状态
- 一致性(Consistency):要求无论事务完成或失败,都应保持数据库中的数据的一致性。当事务执行结果从一种状态转变为另一中状态,在状态的始终,数据库中的数据必须保持一致。事务的原子性是事务一致性的重要保证。
- 独立性(Isolation):要求多个事务并发(同时)执行时,事务之间彼此不会发生干扰,一个事务所做的操作就是独立于其他事务的。事务的独立性由并发控制来保证。
- 持久性(Durability):要求数据一旦执行成功执行,则他对数据库中的数据的修改就应永远地存在系统中保存下来,即使系统出现故障也不至于对他产生影响。
事务控制语句
(P68,参照实验指导书)
完整性约束代码
(P69)
(8) 课后习题
- 视图是一个____表,它是从____导出来的表。—▲
- 某个表不再用时可将其删除,此时表中____的自动删除。—▲
- 在视图上不能完成的操作是
定义新的表
。 - SQL语言中的视图,对应于关系数据中的____。—▲
- 假设有下列表:学生(学生,姓名,性别,年龄,系别),成绩(学号,课程名,成绩),用SQL语言表示下列操作:
- 在学生表中插入数据(‘1001‘,‘王小春‘,‘男‘18,‘计算机系‘)、(‘1002‘,‘江海‘,男",17,‘经管系‘)
- 查询学生表中的所有记录。
- 查询学生表中姓名为“万云”的记录。
- 修改姓名为“李微“的记录,将系别改为“计算机系”。
- 查询“计算机”系学生的姓名,年龄。
- 查询“李微”的各门课成绩。
- 查询“经管系”学生的“数学”成绩。
- 查询成绩不及格的学生的姓名、系别和不及格课程的成绩。
- 查询成绩在80分及80分以上的学生姓名、系别及课程名和成绩。
- 创建一个视图包含学号, 姓名,性别,系别,课程名,成绩。
第四章 关系数据库规范化理论:
(1) 问题的提出
问题的提出
(非常重要,参考PPT)p84
四种异常问题:
- 插入异常
- 删除异常
- 数据冗余过多
- 更新异常
异常原因:由于关系模式中属性间存在复杂的依赖关系。
异常问题的解决:
利用关系数据库规范化理论,对关系模式进行相应的分解,消除其中不合适的数据依赖,使得每一个关系模式表达的概念单一,属性间的数据依赖关系单纯化,从而消除异常。
(2) 函数依赖的基本概念_ ? P88
-
函数依赖:
某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。 -
部分函数依赖:
在关系模式R(U)中,如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖。 -
完全函数依赖:
在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。 -
传递函数:
如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=?,则称Z传递函数依赖 。 -
候选码:
若关系中的一个属性或属性组的值能够唯一地标识一个元组,且它的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。 -
主码:
它的值用于唯一地标识表中的某一条记录。 -
外码:
属性或属性组X并非R的码,但X是另一个关系模式S的码,则称X是R的外码,也称为外键。
(3) 关系模式的规范化_ ?
-
第一范式(1NF)
:关系模式R中不包含多值属性。 -
第二范式
(2NF,和第一范式的区别和联系
):如果一个关系R∈1NF,且它所有的非主属性都完全依赖于R的任一候选码,则R属于第二范式。- 第二范式的实质是要从第一范式中消除非主属性对码的部分函数依赖。
-
第三范式
(3NF,判断一个案例是否属于第三范式
)如果关系模式R∈2NF,且它的每一个非主属性都不传递依赖与任何候选码,则称R属于第三范式。- 第三范式既没有非主属性对码的部分函数依赖,也没有非主属性对码的传递函数依赖。
-
BCNF范式
:设关系模式R<U,F>∈1NF,若F的任一函数依赖X→Y(Y?X),X必为候选码,则称R∈BCNF。每个BCNF范式具有以下3个性质:- 所有非主属性都完全函数依赖于每个候选码;
- 所有主属性都完全函数依赖于不包含它的候选码;
- 没有任何属性完全函数依赖于非码的任何一组属性。
- 3NF范式向BCNF转换的方法是:消除主属性对码的部分函数依赖和传递函数依赖,通过投影分解,将3NF关系模式分解为多个BCNF关系模式。?__最好结合具体的例子分析。
(4) 课后习题
-
给出下列术语的定义:
- 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、2NF、3NF、BCNF、 多值依赖、4NF、 连接依赖、5NF、无损连接、保持函数依赖。
-
设关系模式R(学号,课程号,成绩,教师姓名,教师地址)。规定:每个学生每学一
门课只有一个成绩,每门课只有一个教师任教。每个教师只有一个地址且没有同姓名的教师。-
试写出关系模式R的函数依赖集和候选码。
-
试将R分解成2NF的模式集,并说明理由。
-
试将R分解成3NF的模式集, 并说明理由。
-
-
指出下列关系模式是第几范式?说明理由。?
- R(X, Y, Z), F={XY→Z}。
- R(X, Y, Z),F={X→Z, XZ→Y}。
- R(X,Y, Z), F={X→Z, Y→X, X→YZ}。
- R(X, Y, Z),F={x→Y, X→Z}。
- R(X, Y, Z),F={XY→Z}。
- R(W, X, Y, Z),F={X→Y, WX→Y}。
第五章 数据库设计与管理:
(1) 数据库设计概述
(2) 数据库设计的一般步骤 P111
-
需求分析设计阶段:
了解用户对数据的加工要求,确定系统的功能与边界 -
概念设计阶段:
通过对用户需求进行综合、归纳、抽象,形成一个独立于具体DBMS的概念模型 -
逻辑设计阶段:
在概念结构设计的基础上,按照一定的规则,将概念模型转换为某个DBMS所支持的数据模型,并将其进行优化 -
物理设计阶段:
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法) -
数据库实施阶段:
设计人员用具体的DBMS所提供的数据语言及宿主语言,根据逻辑设计和物理设计的结果建立数据库。编制与调试应用程序。组织数据入库,并进行试运行 -
数据库运行和维护阶段:
在数据库系统运行过程中必须对数据库运行情况进行监控、收集、登记,不断地对其进行评价、调整与修改。
(3) 课后习题
- 数据库设计分为哪几个设计阶段?
- 简述E-R图转换为关系模型的规则。?