数据库系统概述(重点梳理版)

1绪论

1.1什么是数据库系统?

数据:描述事物的符号记录
数据库:长期储存在计算机内的、有组织的、可共享的大量数据的集合(冗余度小、数据独立、易扩展、可共享)
三个基本特点:永久存储、有组织、可共享
数据库管理系统:位于用户与操作系统之间的一层数据管理软件(是计算机的基础软件)
数据库系统:由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

1.2数据库管理系统功能:

  1. 数据定义功能
  2. 数据组织、存储和管理
  3. 数据操控
  4. 数据库的事务管理和运行管理
  5. 数据库的建立和维护
  6. 其他功能,如与其他软件系统通信

1.3数据库系统特点

  1. 数据结构化:文件中存字节流,数据库汇总的数据不仅仅针对某一个应用,数据之间具有联系
  2. 数据共享性高、冗余度低、容易扩充
  3. 数据独立性高(物理独立性:用户的应用程序与数据中的数据的物理存储是相互独立的;逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的)
  4. 数据由数据库管理系统统一管理和控制:数据库管理系统提供数据控制功能(数据的安全性保护、数据的完整性检查、并发控制、数据库恢复

1.4数据模型

在这里插入图片描述

实体型:实体和属性抽象和可画的同类实体。有眼睛鼻子的人
实体集:同类实体的集合。学校

1.5数据库系统模式

开发人员角度(内部的系统结构):三级模式结构
用户角度(外部的系统结构):单用户结构、主从式结构、分布式结构
模式:数据库中全体数据的逻辑结构和特征的描述,仅涉及型的描述,不涉及具体的值
实例:模式的一个具体的值
模式是相对稳定的,实例是相对变动的

1.6数据库系统的三级模式结构

数据库由外模式、模式和内模式三级构成

模式(schema):也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式
外模式:也称子模式或用户模式,他是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式。一个应用只能用一个外模式,一个外模式可以共多个应用程序使用。
内模式:也称存储模式,描述数据物理结构和存储方式。一个数据库只有一个内模式

1.7数据库的二级映像功能

为了能在系统内部实现三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像、模式/内模式映像

  1. 外模式/模式映像:模式描述的是数据的全局逻辑结构,外模式描述的是数据局部逻辑结构。一个模式可以有多个外模式。对每一个外模式有一个映像描述对应关系,这些映像定义包含在外模式的描述中
    模式改变,管理员改变该映像,使外模式保持不变。应用程序不用改变,保证了数据与程序的逻辑独立性
  2. 模式/内模式:该模式映像是唯一的。定义了数据全局逻辑结构和存储结构之间的对应关系。
    数据存储结构改变时,改变该映像,可以使模式、应用程序保持不变。保证了数据与程序的物理独立性。

例题:试述数据库系统三级模式结构,这种结构的优点是什么? 答:数据库系统的三级模式结构由外模式、模式和内模式组成。

(参见书里图1.16,不需要画图)。
外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMS
管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示
和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

2关系型数据库

2.1基本概念

候选码:关系中能唯一表示一个元组,而其子集不能的属性组
主码:多个候选码中的一个
主属性:候选码中的属性
非主属性(非码属性):不包含在任何候选码中的属性
全码:所有属性都是改关系模式的候选码
外码:

2.2关系模型

定义:由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
( l )关系:一个关系对应通常说的一张表;
( 2 )属性: 表中的一列即为一个属性;
( 3 )域:属性的取值范围;
( 4 )元组:表中的一行即为一个元组;
( 5 )主码:表中的某个属性组,它可以唯一确定一个元组;
( 6 )分量:元组中的一个属性值;
( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性2 ,…,属性n )

关系有三种类型:基本关系、查询表、视图表
基本关系的六条性质:
1.列是同质的。列的分量来自同一个域
2.不同的列可出自同一个域,但列名不能一样
3.列的次序无所谓
4.任意两个元组的候选码不能取相同的值
5.行的顺序无所谓
6.分量都是不可再分的数据项(最基本)

2.3关系代数语言

三大要素:运算对象、运算符号(集合运算符、专门的关系运算符)、运算结果
关系代数:
1.传统的集合运算(二目运算)
(1)并
(2)差:结果为A有B没有的
(3)交
(4)笛卡尔积:排列组合
2.专门的关系运算
(1)σ选择(限制):满足条件的
(2)π投影:选出若干属性组成新的关系
(3)除运算:在A但不在B的属性和值,且AB的所有组合都在A中
(4)连接:笛卡尔积中选取属性间满足一定条件的元组
A.等值连接:选择AB属性值相同的元组
B.自然连接:特殊的等值连接,等值连接的基础上去掉重复列
C.外连接:保留共同属性无相同值的元组,补NULL
D.左外连接:保留左表
E.右外连接:保留右表
F.非等值连接?
*悬浮元组:共同属性无相同值的元组

例题:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

1)求供应工程J1零件的供应商号码SNO: πSno(σJno=‘J1’(SPJ)) 2)求供应工程J1零件P1的供应商号码SNO:
πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO:
πSno(πSno,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P)))
4)求没有使用天津供应商生产的红色零件的工程号JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘
(S∞SPJ∞P) 5)求至少用了供应商S1所供应的全部零件的工程号JNO:–不要求,因为与SQL实现方式不同

πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

例题:试述等值连接与自然连接的区别和联系。

答:连接运算符是“=”的连接运算称为等值连接。它是从关系 R与S的广义笛卡尔积中选取 A,
B属性值相等的那些元组。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

3SQL语言

Where子句不能用聚集函数作为条件表达式。聚集函数只能用于select子句和groupby的having子句中
Where子句作用于基本表或视图,having作用于组,选择满足条件的组
Exists子查询,目标列表大师通常用*

增删改、视图
多表/嵌套查询为主
双not exists
存储过程(过程化SQL)

4数据库的安全性

4.1安全概念

数据库的安全性:保护数据库,以防不合法使用造成的数据写漏、更改或破坏
不安全因素:
1.非授权用户对数据库的恶意存取和破坏——身份鉴别、存取控制、视图
2.重要或敏感数据泄露——强制存取控制、加密存储、加密传输
3.安全环境的脆弱性——加强计算机系统的安全性保证

4.2安全措施(数据库的安全性控制)

4.2.1 用户身份鉴别:核对用户标识。是数据库管理系统提供的外层安全保护措施

(1)静态口令鉴别(常用):如密码,均已密文方式存在密码,用户身份鉴别可重复多次
(2)动态口令鉴别(较安全):如短信验证码,一次一密
(3)生物特征识别:使用生物特征认证,如指纹
(4)智能卡鉴别:通过印加加密,用户随身携带,但卡中数据使静态的能被截取。一般与个人身份识别码结合使用

4.2.2 存取控制:授权才能访问,分两部分,两部分组成数据库管理系统的存取控制子系统

(1)定义用户权限:授权,存进数据字典,被称为安全规则或授权规则
(2)合法权限检查:数据库管理系统查找数据字典,查权限

4.2.3 视图机制

为不同的用户定义不同的视图,把数据对象限制在一定的范围内。间接支持了存取为此的用户权限定义

4.2.4 审计——约束用户可能的恶意操作

数据管理系统达到C2以上安全级别必不可少的一项指标
定义:把用户对数据库的操作自动记录导审计日志中,审计员利用该日志监控数据库中的各种行为,重现导致数据库现有状况的一系列时间,找出非法存取数据的人时间和内容
(1)审计事件:服务器事件、系统权限、语句事件、模式对象事件
(2)审计功能:提供多种审计查阅方式、提供多套审计规则、提供审计分析和报表、管理审计日志、提供查询审计设置以及审计记录信息的专门视图
(3)Audit、noaudit:设置/取消审计功能

4.2.5 数据加密

基本思想:根据一定的算法将原始数据变换为不可直接识别的格式,明文变密文
(1)存储加密:透明/非透明存储加密
(2)传输加密:CS结构中,防止被网络恶意用户截获

4.2.6 其他安全性保护

(1)控制推理:避免用户利用其能访问的数据推知更高密级的数据
(2)隐蔽信道:避免利用反馈信息进行间接信息传递

例题:试述实现数据库安全性控制的常用方法和技术。

答:实现数据库安全性控制的常用方法和技术有:
(l)用户标识和鉴别。
(2)存取控制。
(3)视图机制。
(4)审计:建立审计日志。
(5)数据加密。

4.3自主存取控制(C2级支持)

定义:用户可以自主的决定将数据的存取权限授予任何人、决定是否也将授权的权限授予别人
用户权限的两个要素:数据库对象、操作类型
存取控制的对象:数据、数据库模式
授权很灵活
授权:grant
撤销权限:revoke

4.4强制存取控制(B2级)

定义:对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操作数据
每个数据库对象被标以一定密级,每个用户也被授予某一级别的许可证。较严格,使用于军政
数据库管理系统的全部实体分两类:主体(活动实体,如用户)、客体(被主体操纵,如文件)
主体的敏感度标记称为许可证级别
客体的敏感度标记称为密级
密级:绝密、机密、可信、公开

例题:什么是数据库中的自主存取控制方法和强制存取控制方法?

自主存取控制方法DAC:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
强制存取控制方法MAC:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

5数据库的完整性

5.1完整性

数据的正确性(数据符合实际情况)、数据的相容性(同一数据在不同的关系表中的数据符合逻辑)
功能:防止不合语义、不正确的数据进入数据库

数据库的正确性是指数据是符合现实世界语义、反映当前实际情况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。

5.2数据库完整性控制机制

5.2.1 实体完整性:

(1)定义完整性:在列级定义主码、在表级定义主码
(2)检查和违约处理:主码不唯一/主码属性为空时拒绝修改

5.2.2 参照完整性

(1)定义参照完整性:定义外码用references指向外码参照的是那些表的主码
(2)检查和违约处理:保证相容性。处理策略:拒绝、级联、设为空值

5.2.3 用户定义的完整性

(1)属性上的约束条件:列值非空、列值唯一、列值满足条件表达式
(2)元组上的约束条件:不同属性取值相互约束

例题:DBMS的完整性控制机制应具有哪三个方面的功能?

(l)定义功能,即提供定义完整性约束条件的机制; (2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;
(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

5.3完整性约束常用关键字

5.3.1 实体完整性

Primary key(列1,列2) 主码

5.3.2 参照完整性

Foreign key(列) references 表(列) 外码
On delete ascade 级联删除
On delete no action 拒绝删除

5.3.3用户定义完整性

Not null 不允许空值
Unique 列值唯一
check(要满足的条件)

Constraint:命名完整性约束条件
Drop:删除完整性约束条件

5.4断言

触发器基本语法
触发器是用户定义的在关系表上的一类由事件驱动的特殊过程。

6关系数据理论

6.1数据依赖

数据依赖是一个关系内部属性与属性之间的一种约束关系,这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系

函数依赖:能由A得到B,称B函数依赖于A
完全函数依赖:能由A得到B,但A的任何真子集都无法得到Y,称B完全函数依赖于A
部分函数依赖:能由A得到B,A的真子集也能得到Y,称B部分依赖于A
传递函数依赖:Y依赖于X,Z依赖于Y
超码:候选码的超集。候选码的任何真子集一定不是超码

6.2规范化

范式:规范化的关系
关系数据库中的关系要满足一定的要求,满足不同程度要求的为不同范式
一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程叫规范化。
1NF:
2NF:1NF+每一个非主属性完全函数依赖于任何一个候选码
3NF:2NF+每一个非主属性既不传递依赖于码
BCNF:

例题:理解并给岀下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码( All key )、1NF、2NF、3NF、BNF,不要求:多值依赖、4NF。范式不要求给出严格定义,要求掌握规范化过程。
在这里插入图片描述

例题:关系模式R(员工编号,日期,零件数,部门名称,部门经理),表示某个工厂里每个员工的日生产零件数以及员工所在的部门和经理信息。假设:每个员工每天只有一个日生产零件数,每个员工只在一个部门工作,每个部门只有一个经理,那么:
(1) 请写出模式R的基本函数依赖和码;
(2) R是否是2NF,如果不是,把R分解成2NF;
(3) 进一步将R分解成3NF;
答:在这里插入图片描述

7数据库设计

7.1数据库设计的基本步骤

  1. 需求分析:了解用户需求(数据与处理)
  2. 概念结构设计:形成概念模型
  3. 逻辑结构设计:将概念结构转化为某个数据库管理系统所支持的数据模型
  4. 物理结构设计:选择合适的物理结构(存取)
  5. 数据库实施:设计人员简历数据库,写程序,数据入库,试运行
  6. 数据库运行和维护:正式使用,不断改进

7.2E-R图转换关系模式的原则

一个实体型转换为一个关系模式
实体型间的四种联系

  1. 1:1——转换为独立的关系模式,也可以与任意一端对应的关系模式合并
  2. 1:n——转换为一个独立的关系模式,也可以与n端独赢的关系模式合并
  3. m:n——转换为一个关系模式
  4. 三个或三个以上实体间的一个多元你联系可以转换为一个关系模式
  5. 由相同码的关系模式可以合并

例题:试述数据库设计过程中形成的数据库模式

数据库结构设计的不同阶段形成数据库的各级模式: ①在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,比如E-R图;
②在逻辑设计阶段将
E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图,形成数据的外模式;
③在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,进行复杂的存储参数设置,形成数据库内模式。

例题:数据字典的内容和作用是什么?

数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:数据项、数据结构、数据流、数据存储、处理过程五个部分
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。

例题:画ER图、关系模型
某个IT公司的数据库信息:
①部门具有部门编号、部门名称、办公地点属性;
②部门员工具有员工编号、姓名、级别属性,员工只在一个部门工作;
③每个部门有唯一一个部门员工作为部门经理;
④实习生具有实习编号、姓名、年龄、学校名、专业名属性,只在一个部门实习;
⑤项目具有项目编号、项目名称、开始日期、结束日期属性;
⑥每个项目由一名员工负责,由多名员工、实习生参与;
⑦一名员工只负责一个项目,可以参与多个项目,在每个项目具有工作时间比;
⑧每个实习生只参与一个项目。
请用笔手写画出E-R图,拍照放入word文档,并将E-R图转换为关系模型(包括关系名、属性名、码(下划线)和外码(标注FK))。并指出符合的最高范式。
在这里插入图片描述

图中的编号不正确,应当与题目描述的相符,如员工编号等。

关系模型为:
部门(部门编号,名称,办公地点,经理员工编号(FK))
员工(员工编号,姓名,级别,部门编号(FK))
实习生(实习编号,姓名,年龄,部门编号(FK)、项目编号(FK));
项目(项目编号,项目名称,开始日期,结束日期,负责人员工编号(FK))
员工参与(员工编号(FK),项目编号(FK),时间比),一个员工的所有时间比相加不超过100%。 以上均符合BCNF

注意:本题题意只有一个多对多的联系:

8数据库编程

8.1存储过程

过程化sql块两种类型:命名块、匿名块(每次都要编译,不被存储在sql中)
命名块(持久性存储模块)有函数和过程。编译后保存在数据库中,可反复调用,运行快
存储过程:由过程化sql语句书写的过程,这个过程经过编译和优化后在数据库服务器中,使用时调用即可。

优点:
1.运行效率高,无需请求后在进行语法分析和优化
2.降低了客户机和服务器之间的通信量
3.方便实施企业规则

存储过程的用户接口:
1.创建存储过程:CREATE/REPLACE PRECEDURE NAME() AS XX
2.执行存储过程:CALL/PERFORM PRECEDRE NAME();
3.修改存储过程:ALTER PRECEDURE NAME1 TO NAME2;
4.删除存储过程:DROP PRECEDURE NAME();

9数据库恢复技术

9.1事务

用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位
Commit:提交事务的所有操作,更新内容写入磁盘
Rollback:所有已完成的操作全部撤销

事务的acid特性
原子性
一致性
隔离性:一个事务的内部操作及使用的数据对其他并发事务使隔离的
持续性:一个事务一旦提交,对数据库的影响永久

由数据库的恢复机制和并发控制机制负责。
故障恢复可以保证事务的原子性和持续性。并发控制技术可以保证事务的一致性与隔离性。

9.2故障

种类:

  1. 事物内部:即事务故障,非预期故障。意味着事务没有到达预期的中的那,需要的恢复操作为事务撤销
  2. 系统故障:造成系统停止运转的任务事务,使得系统要重新启动。不确定有些已完成的事务对数据库的修改是部分或全部,除了未完成事务外,还需要重做已提交的事务
  3. 介质故障(硬故障):外存故障,破坏数据库并影响当前正是用改端数据的事务
  4. 计算机病毒:人为的故障或破坏
    故障对数据库的影响:1. 数据库本身被破坏;2. 数据可能不确定

9.3恢复的基本原理:冗余

建立冗余数据常用技术:数据转储、登记日志文件(通常两个一起用)
转储很耗资源,分为静态转储(无事务时进行,降低数据库的可用性)、动态转储(允许转储中存取或修改数据库+日志文件恢复空白时间的更改)、海量转储、增量转储
日志文件记录事务对数据库的更新操作,包括:事务开始结束对应的操作

9.4恢复策略(具体操作由管理系统完成)

  1. 事务故障的恢复:逆向扫描日志文件,undo回到事务开始的地方
  2. 系统故障的恢复:正向扫描,有commit重做,仅有begin的撤销
  3. 介质故障的恢复:装入最新数据库副本和该转储的日志副本,装入转储结束后的日志副本,重做已完成事务(redo+undo)
  4. 具有检查点的恢复技术:
  5. 数据库镜像:对关键数据和日志文件进行镜像。不需要关闭系统重装数据库副本,还能用于并发操作

11并发控制

11.1并发控制原理

事务是并发控制的基本单位
为了保证事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度。
并发操作带来的不一致性问题:

  1. 丢失修改:两个事务同时读取数据并修改,一方的修改淹没了另一方的修改
  2. 不可重复读:一事务两次读取中间数据被另一事务修改
  3. 读脏数据:两次写事务中间读取,读取的数据与数据库中最终实际的值不一样
    并发控制机制用正确的方式调度并发操作,使一个用户事务的执行不受其他事务干扰。

11.2并发控制的主要技术

  1. 封锁:
    (1)排他锁:X锁、写锁。保证上锁期间,其他事务都不能读取和修改。其他任何用户不能再上任何锁。
    (2)共享锁:S锁、读锁。保证其他事务在上锁期间可以读但不能修改。其他用户能再上S锁,不能上X锁。
    (3)封锁协议:
    A. 一级封锁协议:修改前必须上X锁,事务结束才释放
    B. 二级封锁协议:一级基础上,读前上S锁,读完结束释放S锁
    C. 三级封锁协议:一级基础上,读前上S锁,事务结束才释放S锁
  2. 时间戳
  3. 乐观控制法
  4. 多版本并发控制

11.3活锁与死锁的概念及数据库系统的常见预防方法

活锁:永远等待,事务永不开始——先来先服务
死锁:相互等待,事务永不结束——预防死锁发生/定期诊断死锁的存在并解除之

11.3.1死锁的预防:

1.一次封锁法:将每个事务所需的数据一次全部加锁。降低了并发度
2.顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务按这个顺序封锁。有效防止死锁,但维护顺序难,成本高

11.3.2死锁的诊断与解除(普遍采用):

1.超时法:等待时间超过规定时限就认为发生了死锁
2.等待图法:动态放映所有事务的等待情况,图中有回路即发生死锁。
撤销处理死锁代价最小的事务


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部