数据库软考-数据库知识点

第六章 数据库技术基础(比较重要,下午题会出E-R题)

基础知识上午题

6.1 数据库(DB)数据库系统(DBS system)、数据库管理系统(DBMS)

DB:长期存储在计算机内,有组织可共享的数据集合

DBMS:一种系统软件、对数据库进行管理

DBS:由数据库、硬件、数据库管理系统、软件和管理员(DBA)、用户等组成

6.2 数据库技术的发展

人工管理阶段

文件管理阶段

数据库系统阶段(有较高的数据独立性)

6.3 数据操作语言和权限操作语言

(1)数据操作语言:

DDL(CREATE/ALTER/DROP/完整性约束) 对表操作

DML(SELECT/INSERT/DELETE/UPDATE) 对数据操作

(2)权限的操作语言:DCL

6.4 数据模型

数据模型是对现实世界的模拟

(1)数据模型分类:

关系模型:表

半结构化模型:层次、网状、数据结构:json 超文本标记语言(只保留了对象,不会有操作代码)、xml可扩展标记语言

概念数据模型(E-R模型):按照用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象

基本数据模型(层次、网状、关系模型、面向对象数据模型),按照计算机系统的观点对数据建模

目前提出的对象模型

(2)数据模型的三要素

数据结构:对象类型的集合

数据操作:操作的集合

数据的约束条件:是一组完整性规则的集合

6.5 E-R模型

大题是补充E-R图

(1)实体(长方形)

在现实世界中区别其他对象的“事物”和“物体”,例如学生、书本

(2)联系(菱形)

1)两个不同实体之间的联系

一对一、一对多、多对多

2)两个以上不同实体集之间的联系(下午题经常考)

1:1:1;    1:1:*;    1:*:*;   *:*:*

3)同一实体集内的二元关系(两根横线)

一对一,一对多。其中的关系也是实体

(3)属性

1)简单属性和复合属性:不可分、可细分

2)单值属性和多值属性

3)NULL属性:表示无意义或不知道

4)派生属性:从其他属性得来。如身份证和年龄(派生)

(4)扩充的E-R模型

弱实体(要以来另一个实体而存在),两个方框表示

特殊化(实体之间存在的共性)

父实体和子实体之间用圆圈进行联系,用两根线

6.6 DBS的体系结构

(1)数据抽象(层)

视图层、逻辑层、物理层

(2)三层模式结构

外模式:用户模式或子模式,用户与数据库系统的接口

模式(逻辑、概念模式) student(sid,sname),一个系统只能有一个逻辑模式,逻辑结构

内模式(物理、存储模式)

(3)两级映像

外模式/模式映像

模式/内模式映像:逻辑结构和物理结构的关系

(4)数据的立性

外部程序与内部数据是互相独立的,相当于要修改只需在映像进行修改,可以使得多个应用程序不用改变,保证了下面两点

1)数据物理独立性,通过模式/内模式

2)数据逻辑独立性,通过外模式/模式

6.7 数据库类型和授权类型

(1)数据库类型

集中式数据库系统、并行数据库系统(多个CPU)、客户/服务器数据库体系结构、分布式数据库系统、web数据库

(2)授权类型

read:允许读取、不修改 insert:允许插入、不修改

update:允许修改、不删除 delete:允许修改

index:允许创建和删除索引 resource:允许创建新关系

alteration:允许添加和删除关系中的属性 drop:允许删除关系

十二章的内容

数据库的控制功能

事务管理:原子性、一致性、隔离性、持久性

故障恢复:事务故障、系统故障、介质故障、计算机病毒

并发控制:

封锁、排他锁(X锁)和共享锁(S锁)

共享 S(share)锁 :用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。若事务T1对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T1释放A上的S锁

排他锁(X锁):用于数据修改操作,例如INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。若事务T1对数据对象A加上X锁,则只允许T1读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T1释放A上的X锁

三级封锁协议(保证数据的一致性):

一级:解决丢失更新,加X锁、二级:解决读脏数据,加S锁、三级:解决不可重复读数据

事务的执行状态

活动状态:事物的初始状态。

部分提交状态:全部执行完。

失败状态:由于硬件或是逻辑上的错误,使事物不能在继续进行,处于失败状态的事物必须回滚。然后事物就进入了中止态。

中止状态:事物回滚并数据库恢复到开始执行前的状态。

提交状态:当事物成功完成后,事物处于提交状态,只有事物处于提交状态,才能说明事物已经提交。

事物的隔离级别(高到低)

可串行化(读幻影):SERIALIZABLE

可重复读:REPEATABLE READ

读提交数据:READ COMMITTED 

可以读未提交数据:READ UNCOMMITTED 

SQL语句定义:SET RANSACTION SOLATON LEVEL a)/b)/c)/d)

幻影现象:同一事物对数据对象的两次访问得到的数据记录不同,加了内容,不可重复读问题

6.8 数据仓库

DW的基本特性:面向主题的、数据是集成的、数据是先对稳定的、数据是反映历史变化的(时限一般5~10年)

数据模式——事实表,多维数据模式包括(星型模式、雪花模式、事实星状模式

数据仓库体系结构:

通常采用:数据仓库服务器、OLAP(联机分析处理)、前端服务器

从结构的角度:企业仓库、数据集市、虚拟仓库

数据仓库的数据模型与操作行数据库的区别:1不包含纯操作型的数据;2扩充了码结构,增加了时间属性作为码的一部分;3增加了一些导出数据。

数据仓库的物理设计:主要提高I/O性能,通过粒度划分和数据分割来提高系统的性能。

第十三章内容:

数据挖掘技术

(1)各项技术

海量数据收集

强大的多处理计算机

数据挖掘算法:人工神经网络、决策树、遗传算法、近邻算法和规则推导

(2)数据挖掘的过程

确定对象

准备数据(60%工作量,包括数据选择,数据预处理清晰,数据转换)、建立模型、数据挖掘、结构分析、知识应用

数据转储

OLAP(联机分析处理)

通常对数据仓库进行数据挖掘

面向事务、面向具体业务、提供决策支持

第六章下午题

1.概念模型设计(补充图信息)

(1)两方联系 AB,BA

(2)三方联系 AB,BC

(3)弱实体(双边矩形和菱形) 一个实体的存在必须以另一个实体为前提(家长(弱实体)-学生)

(4)聚合(涉及三个实体,又先后顺序) 两个实体A,B产生联系,联系再跟另一个实体C产生联系,要将AB之间的联系,框起来

(5)子实体 (员工(代购员、配送员))

(6)同一实体集内的二元关系

2.逻辑模型设计(补充逻辑信息)

也可被叫做关系模式:例如 医院(医院名称、地址、电话)

3.23年例题及其答案

例题

答案


第七章 数据库

基础知识上午题(10分左右)

7.1 数据库系统分类

(1)非关系型数据库系统: redis hadoop mango

(2)关系型数据库系统:表,用SQL进行操作

关系数据结构:

域(D):一组具有相同数据类型(实数、字符串)的值的集合,是原子的,不可再分的

笛卡尔积:不同或相同的集合相乘 ,N*M,元组(一行,记录),域(一列,属性)

关系(二维表),关系集合(F)

关系对应:一对一、一对多、多对多

关系操作:查询、插入、删除、修改

关系数据库的标准语言:SQL语句

7.2 关系

(1)码(Key,键)

候选码:在关系中能唯一标识元组的属性或者属性集

主属性:候选码的各个属性名

主码:唯一一个候选码(可以是集合),用横线标注

全属性:全部属性都是候选码的属性集合

全码:所有属性组是候选码

外键(Foreign key):其中专业是被参照表(父表,主表),学生是参照表(子表),专业号为外码,用波浪线标注

(2)关系的三类

基本关系(真正存储的表);关系的表示方式次数:n(属性)!*m(元组)!       

查询表:查询结果对应的表

视图:虚拟的表

(3)关系模式和关系数据库

关系模式是对关系的描述

学生(学号,姓名,年龄,性别,籍贯)

所有是实体之间的联系的关系的集合构成一个关系数据库

​​

7.3 完整性约束

实体完整性(针对主码)

主码唯一且不能为空、主属性不能取空值

参照完整性(针对外码)

外码取值必须暂时为空或者被参照表中元组的主码值

用户自定义完整性约束

针对某一具体的关系数据库的约束条件,例如金额必须>3000

7.4 关系代数、关系运算

是一种抽象的数据查询语言,但以及不用现在商用的数据库管理系统

(1). 传统的集合运算符,前提是两个表的属性值要一样,(但在sql中会去除重复的)、差(行)(优先级高于前两个),其中属性要相同(相同的关系模式)

(2). 专门的关系运算符 笛卡尔积

笛卡尔积

R关系:k1*n

S关系:k2*m

R X S (k1+k2)*(n*m)

(3). 专门的关系运算符 投影(优先级最高) 需去重

投影:从R中选择一些属性的数据  Πsname(student) sname是取的属性(也可以选择几列)student是表名,最后还是要进行去重,各个投影可以用传统集合运算符进行选择

(4). 专门的关系运算符 选择(优先级最高)

选择(在选择和投影谁先,最好是先选择):选择满足条件的样本,在选择时可以用与和或 segma sname=’李明‘(student)

(5) 连接(笛卡尔积的扩展)where:seta连接,先笛卡尔积,在通过小于号<连接

R(A B C)  自然连接 R(B C D E)   得到R(A B C D E)

(6). 专门做等值连接不许要去重复属性

(7). 自然连接:公共属性的等值连接(但重复属性列需要进行删除)

(8). 外连接:可以处理缺失的信息

左外连接(左侧为准,右侧填充)

右外连接(右侧为准,左侧填充)

全外连接(左外连接+右外连接求并集)

(8). 除

(9). 辅助的关系运算符

重命名

将关系R重新命名为S,将R中的列分别改为A1...An

7.5 关系代数计算(表达式)

答案:D、C

7.6 元组演算(对几个表进行计算、表达式)和域演算

(1)元组公式

R(t):R是关系名,t是元组变量,t表示关系R的一个元组

t[3]表示关系的第三个分量(属性)

(2)公式的定义

例子:

第五个例子,中的t[1]表示满足条件的u[1]

(3)域演算:跟元组演算差不多

7.7 查询优化

在关系代数演算中,笛卡尔积(更耗时)和连接运算是最耗费时间和空间的

(1)优化的准则

提前执行选择运算

对多投影运算进行操作

在进行自然连接时,可以先选择、投影,再自然连接

(2)查询语法树

7.8 关系数据库的依赖

(1)函数依赖

(2)完全函数依赖和部分函数依赖

完全函数依赖:只有码(完整)决定非主属性

部分函数依赖:

(3)传递函数依赖

(4)BCNF函数依赖

7.9 Armstrong公理系统(求候选码

(1)Armstrong公理系统

(2)函数依赖的闭包F+及其属性的闭包XF+

(3)候选码的求解方法

(4)最小函数依赖集

7.10 模式分解(分解为两个以上不考)

(1)无损连接定义:指一个关系模式分解为若干模式后,通过自然连接和投影等运算仍然能还原到原来的关系模式。

(2)无损连接定理(只适用于分解为两个模式):

F+表示F的闭包(表示是否蕴含在F中)

例子:p1不是,p2是

(3)保持函数依赖

最简单的一个分解为:按照原来的依赖集得到分解p(即分解之后是否丢失

第七章 下午题(关系规范化,有点难)

1 找候选码

候选码:候选码可以决定关系模式的所有属性(唯一),候选码的任何一个真子集(不包含本身和空集)都不能单独决定全属性

2 是否满足某一范式,或最高可达到第几范式

(1)第二范式2NF:消除非主属性对候选码的部分函数依赖

不是第二范式,由于X->Y存在非主属性Y对候选码(X,Z)的部分依赖

(2)第三范式3NF:消除了非主属性对码的传递函数依赖

不是第三范式,存在传递依赖X->Y,Y->Z

(3)BCNF范式:消除了主属性对码的部分和传递函数依赖

(4)第四范式4NF:消除了多值依赖。例如X->->Y,则X和Y必在一个关系模式,且只有X和Y,不能有其他多余的属性。

不满足4NF说明:该关系存在嵌入式的多值依赖,因此不满足第四范式

3 分解关系模式

(1)有部分函数依赖,即为不满足第二范式(候选码必须是属性组才行,不然无法讨论部分函数),大意是属性组公不共同决定其他属性

R(A,B,C,D,E,F),AB为主码,函数依赖集:F={A->(C,D,E),(A,B)->F}

分解成R1(A,C,D,E)和R2(A,B,F)

(2)有传递函数依赖的情况

(3)有多值依赖的情况

4 总结方法

5 数据冗余

冗余属性一般是除了主属性之外的、并在其他关系中出现的属性

不满足第一第二第三范式的,都存在更新、插入、删除异常

6. 23真题及答案

真题

答案


第八章 SQL语言(完成一部分)

基础知识

8.1 SQL的基本组成和数据类型

(1)数据定义语言DDL

创建(CREATE):CREATE TABLE C (C# CHAR(4) NOT NULL UNIQUE/NOT NULL PRIMARY/PRIMARY KEY, CNAME CHAR(10)NOT NULL)

删除(DELETE):定义级联删除 在定义B表外键(A表的主键)属性时加上ON DELETE CASCADE。此时删除A表主键时,在B表的外键也会被删除。也可定义触发器

修改(ALTER):增加新的列:ALTER TABLE <基本表名> ADD<列名><类型>{可设置缺省值0,——DEFAULT=0}  ;删除列:ALTER TABLE<基本表名>DROP COLUMN<列名>[完整性约束条件CASCADE|RESTRICT]

修改数据类型:ALTER TABLE<基本表名>ALTER COLUMN<列名><类型>;ALTER TABLE<基本表名>MODIFY<列名><类型>

撤销(DROP):DROP TABLE<基本表名>[CASCADE|RESTRICT]

(2)数据操作语言DML

查询(Select)

插入(Insert)

删除(Delete):DELETE FROM<基本表名> WHERE<条件表达式>

修改(Updete):UPDETE<基本表名>SET<列名>=<值表达式>WHERE<条件表达式>

(3)数据控制

Grant、Revoke

(4)数据类型

8.2 表的创建、修改和删除

(1)创建(CREATE)

CREATE TABLE 表名 (列名 数据类型 列级完整性约束条件);

CREATE TABLE C (CNO CHAR(4) NOT NULL UNIQUE/NOT NULL PRIMARY/PRIMARY KEY, CNAME CHAR(10)NOT NULL);

(2)修改表(ALTER)

ALTER TABLE<表名>[ADD <新列名><数据类型>[列级完整性约束]]

ADD或者Modify 更新类型

(3)删除表

DROP TABLE S

8.3 完整性约束

(1)实体完整性约束primary key

第一种在列后面加 PRIMARY KEY

第二种在最后加PRIMARY KEY(属性名1,属性名2) //主码为属性组时用只能用这种方法

(2)参照完整性约束

第一种在列后面加References 表名(属性名)    SC(sno int reference S(Sno))

第二种在最后加,有几个外码,就写几行

Foreign Key(属性名) References 表名(属性名)[ON DELETE [CASCADE|SET NULL]]

(3)属性值上的约束

NOT NULL 不为空;UNIQUE 取值不唯一;NOT NULL UNIQUE取值唯一且不为空

CHECK 限制列中值得取值范围 例如:SEX ...CHECK(SEX='男' OR SET='女')

不等于:<>                           大于等于:>=                            小于等于:<=

(4)全局约束

1)基于元组的检查子句:这种约束是对单个关系的元组值(或多个)加以约束

2)基于断言的语法格式(约束涉及到其他表)

CREATE ASSERTION<断言名> CHECK(<条件>)

不允许

8.4 索引、视图的创建和删除

(1)索引(INDEX)概念:表中的一列或者若干列的值的集合

(2)索引作用:加快数据检索速度,可以分为聚集索引(索引项的顺序与表中记录的物理顺序一致)和非聚集索引

(3)建立索引

CREATE[UNIQUE][CLUSTER] INDEX(索引名)ON <表名>(<列名>[<次序>])

(4)删除索引

DROP INDEX<索引名>

(5)视图的作用

(6)创建视图

CREATE VIEW 视图名(列表名 AS SELECT 查询子句 [WITH CHECK OPTION]

SELECT可以是复杂的查询句,但不能含有DISTINCT ,ORDER BY

WITH CHECK OPTION 保证以后删除更新操作只有where,满足条件的信息

(7)删除视图

DROP VIEW 视图名

8.5 数据操作

(1)select语句

 (1)where后可以跟很多 用and连接,但需要用()括起来

更名操作:AS ;sno as 学号 或者 sno 学号,

(2)连接查询

自连接

(3)子查询

嵌套查询(在SELECT中去嵌套一个SELECT)

先看外面(主查询),从表里每一行去进行匹配,如果子查询满足,则保留主查询

IN(在...集合里)NOT IN(不再...集合中)一般跟在where 属性 后

EXISTS(存在)NOT EXISTS(不存在)

(4)聚集函数(一般跟在select后)

聚集函数是一个值的集合为输入,返回单个值的函数

DISTINCT 去重复

ANY和ALL与其他聚集函数的转化关系

(5)分组查询GROUP BY

GROUP BY [HAVING]

一般用了GROUP就得在前面加聚合函数

HAVING的作用是在得到分组后,加上限制,做一个满足HAVING后面那个条件的分组

(6)字符串操作

字符串常用LIKE(跟在where后)来进行匹配操作,‘%’匹配任意操作,“_”匹配任意一个字符

\是转移字符 \%则表示%

(7)集合操作(数据类型要一样多用在两个select并列的时候

NUION(并)、UNION ALL(不去重复行)、INTERSECT(交)、EXCEPT(差)

(8)外连接

左外连接LEFT JOIN  ON

右外连接、全连接(FULL JOIN)

(9)插入 INSERT INTO(针对于元组)VALUES

(10)DELETE语句       

DELETE FROM 表名 WHERE 条件表达式

DELETE FROM SC WHERE Cno='C1'

(11)UPDATE语句

更新要写全、要写列名

UPDATE 表名 SET 列名=新值 WHERE 条件表达式

(12)视图的查询与更新

查询:与查询表一致

更新:

8.6 授权与触发器

(1)授权(GRANT)

GRANT 权限 ON 对象(数据库、表、视图、属性) TO 用户 [WITH GRANT OPTION]

用户:PUBLIC表明把权限给所有用户

WITH GRANT OPTION :表示得到这个权限的人可以给其他用户

(2)收回授权(REVOKE)

 REVOKE ON FROM

RESTRICT表示只收回语句里的用户权限

CASCADE:级连收回

注意UPDATE(Sno):

(3)触发器概述(下午考一题)

触发器内部不能有事务程序

发生插入、删除、更新时(除了插入)出发一条SQL语句

(4)建立触发器

注意REFERENCING old ROW AS OLD

一般先用到新表NEW、后用到旧表OLD

插入没有old row

例子:

(5)更改与删除触发器

8.7 嵌入式SQL与存储过程

(1)嵌入式SQL

区分主语言与SQL语句的方式 EXEC SQL<SQL语句>

主变量(共享变量):需要用DECLARE语句声明,为了与SQL中属性名区分,在引用共享变量时,前面需要加“:”,工作用的“@”

在SELECT等数据操作语句中,多了一个INTO,表示赋值

(2)游标(事务下午题)

过程:

定义游标: DECLARE 游标名称 CURSOR FOR SELECT

或者

打开游标:OPEN 游标名称

推进游标:FETCH 游标名 INTO 变量表(:sid,:...)(游标里定义的属性名

关闭游标:CLOSE 游标名

(3)存储过程(下午第五题)

存储过程:是一组为了完成特定功能的SQL语句集合,经过编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。可以提高数据库的查询速度

LOOP...END LOOP是循环语句

失败最后需要提交:用ROLLBACK,如有需要添加RETURN

成功最后需要提交:用COMMIT,如有需要添加RETURN

第八章下午题(SQL查询--补全查询代码、完整性约束)


第九章 非关系型数据库NoSQL

9.1 ACID理论(关系型数据库的理论)

原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability):一旦提交事务,对数据库的改变是永久的

9.2 CAP理论(分布式系统理论)

三选二,最多只能满足两个:一致性(C)、可用性(A):对所有操作都有成功的返回、分区容忍性(P)

9.3 BASE特性(非关系数据库的理论)

一种ACID理论的变种,弱一致性,只要求最终一致性

BA(Basically Available):基本可用

S(Soft state):软状态,可理解为“无联系的”

E(eventual consistency):最终一致性

9.4 各种NoSQL数据库的分类与特点


第十章 系统开发和运行知识(3-4分)

10.1 软件工程基础知识

(1)软件生存周期

可行性分析和项目开发计划、需求分析(数据流图:接口之间的交互、实体联系图、数据字典)、概要设计(数据结构和数据库结构)、详细设计(功能描述、不是具体编程)、编码和单元测试(编程源程序)、综合测试、维护(软件生存周期时间最长的阶段

可需概详编综维

(2)软件生存周期模型

瀑布模型(线性):需求明确、适用于二次开发和简单项目

增量模型:瀑布模型的衍生、分批次和模块化

演化(原型化)模型:快速开发一个原型,适用于需求无需明确的项目

螺旋模型:瀑布+快速原型模型,强调风险分析、适用于庞大、复杂并且具有高风险的系统

制定计划、风险分析、实施工程、用户评价

喷泉模型:适用于面向对象的开发方法、无间隙、可以各个开发阶段同时进行

10.2 典型的软件开发方法

(1)结构化开发方法:面向数据流的一种开发方法。精髓是自顶向下、逐层分解、模块化设计

(2)原型化开发方法:跟演化模型相似,快速开发

(3)面向对象开发方法:尽可能按照人类的思维进行分析和解决问题

(4)敏捷方法:灵活性、在后期可增加、改变需求

10.3 软件项目管理

(1)成本估算

(2)风险分析

(3)进度管理

1)Gantt图

以日历描述项目任务,可以清晰看到每个任务点的时间进展、任务之间的并行性

2)PERT图

给出每个任务的开始时间、完成时间,能反映各个任务的依赖关系,能清晰地确定影响进度的关键任务,如期完成工程的关键路径

(4)人员管理

主程序员:主程序员(领导)和其他

无主程序员组:成员平等、层次式程序员组、沟通路径:(n-1)!

层次式程序员组:有一位组长,领导若干高级程序员、高级程序员又领导若干程序员

10.4 面向对象分析方法

(1)面向对象的基本概念

对象:包括数据(属性),也包括操作(行为)

消息:对象之间的通信

类:一组大体相似的对象

继承:父类和子类共享数据和方法的机制

多态:不同对象收到同一消息产生不同的结果

动态绑定和静态绑定

(2)统一建模语言UML图

结构:构造块、规则、公共机制

类图:展现了一组对象、接口、协作和它们之间的关系

对象图:展现一组对象以及它们之间的关系

用例图、序列图、通信图、状态图、活动图、构件图、

部署图:展现了运行处理节点及其构件的配置,组成了体系结构的静态实施视图

10.5 数据流图(DFD)

(1)数据流:一组固定成分的数据组成,表示数据的流向

(2)加工:输入数据流和输出数据流之间的变换

(3)数据存储

(4)外部实体:系统之外的人员或组织或其它系统

10.6 系统设计(概要、详细)

(1)概要设计的基本任务

设计软件系统总体结构、数据结构及数据库设计、编写概要设计文档、评审

将系统分解为若干个子系统,建立整个系统的体系结构

(2)详细设计的基本任务

10.7 系统和设计的基本原理

(1)系统和设计的基本原理:模块独立性

衡量标准:耦合性和内聚性

耦合性:模块之间紧密程度越高,耦合性越高、独立性越差

数据耦合:数据值传递;标记耦合:数据结构传递;内容耦合:耦合程度最高;公共耦合

内聚性:模块内部各元素之间联系的紧密程度,内聚性越低、独立性越差

顺序内聚;功能内聚:内聚程度最高;时间内聚;逻辑内聚

独立性目标:高内聚、低耦合

(2)系统测试类型

单元测试、集成测试、

确认测试:性能确认

系统测试回归测试:变更之后是否符合

(3)系统评价指标

可理解性、可测试性、可修改性

10.8 软件测试方法

(1)黑盒测试:功能测试

(2)白盒测试:结构测试,方法有路径覆盖、条件覆盖


第十一章 数据库设计(3分)(还有一部分没看、真题也没看)

11.1 数据库设计概述

(1)数据库应用系统生命期(6阶段)

数据库规划、需求描述与分析、数据库与应用程序设计、数据库设计实现、测试、运行维护

(规分设实测维)

(2)数据库设计的一般策略

自顶向下和自底向上

(3)数据库设计的基本步骤

用户需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施阶段、数据库运行和维护阶段

11.2 系统需求分析

(1)需求分析的任务、方法和目标

信息要求、处理要求、系统要求

(2)需求分析阶段的文档

需求分析阶段的成果是系统需求说明书,主要包括数据流图、数据字典、各种说明性表格、统
计输出表和系统功能结构图等。

(3)数据字典

各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和处理过程5个部分

11.3 概念结构设计

(1)选择局部应用

(2)逐一设计分E-R图

(3)E-R合并

合并时的冲突:(1)属性冲突  在不同的分E-R图中属性的类型等方面不同(2)命名冲突 在不同的分E-R图中相同属性需要统一(3)结构冲突 同一实体可能在其他E-R中代表属性

11.4 物理结构设计

索引为物理结构设计中

11.5 数据框运行维护和管理

7点


第十二章 事务管理(上午6分、下午一题)

12.1 事务

(1)概念:是一系列的数据库操作,是数据库应用程序的逻辑单位,是一个操作序列,是数据库环境中不可分割的逻辑工作单位

语句定义:

BEGIN TRANSACTION:事务开始

END TRANSACTION:事务结束

COMMIT:事务提交。表示事务成功地结束,通知事务管理器该事务的操作可以被提交或永久保留

ROLLBACK:事务回滚。表示事务非成功地结束,通知出故障了,可能处于不一致状态,该事务的所有更新操作必须回滚或撤销

例子(伪代码)

(2)事务的4个特性:原子性、一致性、隔离性、持久性

原子性:事务的所有操作在数据库中要么都做要么都不做

一致性:保持数据一致性、数据不会遭到破坏

隔离性:一个事务的执行不能被其他事务干扰。并发事务在执行中对同一数据进行操作也不会相互干扰,相互隔离

持久性:一个事务一旦提交,对数据库的改变必须是永久的。

(3)事务的状态(不重要,历年没考)

12.2 数据库的并发控制 (重点)

(1)事务调度

串行调度:是指多个事务一次串行执行,当一个事务的所有操作执行完成才执行另一个事务的所有操作

并发调度:利用分时的方法同时处理多个事务

并发调度是否正确,取决于与任意一次串行调度的结果一致,则正确

可恢复调度:

(2)并发操作带来的问题

并发操作带来的数据不一致性有三类:丢失修改、读脏数据、不可重复读

丢失修改:两个事务对同一数据修改,导致修改操作被覆盖(要用write去写入再执行read)

 读脏数据:某事务读取的数据是其他事务修改后的值,但该修改后来又被撤销了(相当于和没有保存一个道理)

不可重复读:事务对同一数据进行两次读取结果不同。原因是两次读取的间隙数被另一事务修改

幻影现象:在两次读取中间,加入一条记录导致两次读取不一致

统一回答话术存在丢失修改问题,破坏了事务的隔离性

12.3 并发调度的可串行性

(1)多个事务的并发执行时正确的,当且仅当其结果与某一次序串行执行它们的结果相同,称这种调策略是可串行化的调度

(2)可串行并发事务正确性的准则:一个给定的并发调度,当且仅当它是可串行化的才认为是正确调度

(3)保证并发调度的可串行化,可以保证事务的隔离性和一致性

12.4 并发控制技术

排它锁(X锁):写锁。只能一个事务占有,可读可修改,其他事务既不能读也不能修该

共享锁(S锁):读锁。只能读取(其他事务只能加S锁才能读)不能修改

12.5 封锁协议

二级封锁:读完后释放

三级封锁:事务结束后时释放

12.6 两段锁协议2PL(并发事务正确地执行)

两段锁协议(2PL):指同一事务对任何数据进行读写之前必须对该数据加锁;再释放一个封锁之后,该事务不再申请和获得任何其他封锁。

两段:1.获得封锁 2.释放封锁


注意:

满足两段锁协议->事务一定是可串行化->并发事务正确,但串行不能一定满足两段锁协议的

两段锁协议也可能产生死锁。例如两个事务需要对方以及锁住的数据

死锁的解决:预防死锁、避免死锁、检测死锁、解除死锁


12.7 事务的隔离级别(下午题)

12.8 数据库的备份与恢复

(1)数据库系统故障的种类

事务故障:程序执行错误而引起事务异常终止的故障。逻辑错误:溢出、数据的完整性约束错误,系统错误:不良状态、死锁

系统故障:硬件故障、软件漏洞、数据库管理系统、CPU故障漏洞的影响

介质故障:存储介质发生故障,物理错误、磁盘损坏

(2)数据库备份

静态转储和动态转储:在存储期间不能对数据库进修改、能修改操作的区别

海量(全局)转储和增量转储:一个是每次都全部数据、一个是只转储更新后的数据

日志文件:把操作写入日志文件,日志的撤销操作是UNDO

数据库镜像:为了避免磁盘介质出现故障

(3)数据库恢复

要是数据库发生故障后能够恢复,必须建立冗余数据,同时是数据库恢复的基础,常用数据转储和日志文件恢复

撤销事务(UNDO):将未完成的事务撤销,是数据库恢复到事务执行前的正确状态。反向扫描日志文件

重做事务(REDO):将已提交(commit)的事务重新执行。正向扫描日志文件

(4)不同故障的恢复策略

事务故障的恢复:事务本身产生的故障,用撤销事务(UNDO),仅需要日志,对用户是透明的,由DBMS进行回滚操作

系统故障的恢复:对检查点前未完成的事务执行UNDO,对检查点后已经提交的事务执行REDO(重做),仅需要日志

介质故障的恢复:重装数据库。需要数据库备份以及日志文件,再执行UNDO和REDO,即对检查点前未完成的事务执行UNDO,对检查点后已经提交的事务执行REDO(重做)

(5)检查点机制(CHECKPOINT)

对检查点后提交的事务进行REDO

对检查点后未提交的事务执行UNDO(撤销,回到原始状态)

过程:反向扫描日志文件,找到检查点,确认检查点时刻正在执行的事务(活动事务),然后查看检查点之后的提交的事务做REDO,未提交的事务做UNDO

第十二章下午题(数据库恢复)

1 解题思路

检查点之后提交的事务,需要重做

2 23年真题

第十二章下午题(两段锁协议)

1 23年真题

创建存储过程(或基于游标的存储过程)、创建触发器、两段锁协议


第十三章 云计算与大数据处理(第四版新增)

13.1 云计算基础知识

通过互联网按需访问资源池模型

(1)关键特征

广泛的网络接入、可测量的服务、多租户、按需自服务、快速的弹性和可扩展性、资源池化

(2)分类

范围分类:公有云、社区云、私有云、混合云(由两种或两种以上的云组成)

服务层次和服务类型分类:基础设施即服务Iaas:服务器、存储空间、计算能力,核心是虚拟化、平台即服务paas:平台、核心是分布式并行计算、软件即服务saas

(3)关键技术

虚拟化技术、分布式数据存储、并行计算、运营支撑管理

13.2 大数据处理基础知识

(1)大数据的特征(5V)

多样性、速度(快变性)、大量、价值、真实(Veracity)

(2)大数据处理流程

第十四章 数据库主流应用技术(2-3分)

14.1 分布式数据库

分布式数据库数据透明性的表现形式:位置、分片、模型透明性

14.2 OLAP和OLTP

OLTP是指 联机事务处理

OLAP是指 联机分析处理


第十五章 标准化与知识产权基础知识

15.1 标准化基础知识(可以不看)
15.2 知识产权基础知识(需要认真看)

(1)软件(程序及其相关文档)著作权

保护软件著作权的两个基础法律文件:《中华人民共和国著作权法》和《计算机软件保护条例》

单个自然人的软件著作权保护期:自然人终生及其死亡后50年

客体:源程序、目标程序、软件文档

翻译权:将原软件从一种程序语言转换成另一种程序语言

身份权(署名权):辞职过后仍享有署名权、但没有著作权。署名权不可以转让、保护期限不受期限限制

专利权:对软件产品发出专利、谁先申请谁获得注册、同一天申请协商确定谁获得专利权、不能都授予专利权,保护期为20年

商标权:对软件产品商标注册、谁先申请谁获得注册、谁先使用就先谁能获得注册、保护期限为10年,可以延长商标权

版权法:保护计算机知识产权不受侵犯

员工编写的文档,属于职务作品,其著作权由公司享有

委托时,谁完成(受委托公司)享有著作权

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值