第六章 数据库技术基础(比较重要,下午题会出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(联机分析处理)
通常对数据仓库进行数据挖掘
面向事务、面向具体业务、提供决策支持
第六章下午题E-R图
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)知识产权
知识产权的特性:
1.地域性:只在中国领域内受法律保护,在其他国家不受到保护
2.时间性
著作权:
1.发表权:保护期受限制
2.身份权(署名权):辞职过后仍享有署名权、但没有著作权。署名权不可以转让、保护期限不受期限限制
3.修改权:不受时间限制
4.保护作品完整权:不受时间限制
5.财产权:受时间限制
工业产权:
1、专利权:对软件产品发出专利、谁先申请谁获得注册、同一天申请协商确定谁获得专利权、不能都授予专利权,保护期为20年。实用新型专利权和外观设计专利权10年
2、商标权:对软件产品商标注册、谁先申请谁获得注册、谁先使用就先谁能获得注册,否者抽签决定。保护期限为10年,可以延长商标权(可一直持续)
(2)软件(程序及其相关文档)著作权
保护软件著作权的两个基础法律文件:《中华人民共和国著作权法》和《计算机软件保护条例》是国务院颁布的
在创作之日即为软件著作权产生的时间,软件著作权属于开发之
单个自然人的软件著作权保护期:自然人终生及其死亡后50年
发表权(自然人终生及其死亡后50年)和署名权(永远是那个人,永远不会消失署名权,及身份权)、著作财产权
客体:源程序、目标程序、软件文档
1.计算机软件著作权的主体和客体
主体:享有著作权的人。《著作权法》和《计算机软件保护条例》
客体:计算机程序及其与有关文档:源程序,目标程序,软件文档
翻译权:将原软件从一种程序语言转换成另一种程序语言
2.软件著作权的归属
员工编写的文档,属于职务作品,本职工作,其著作权由公司享有,其他的都是公司所有
要享有著作权时:开发的软件不是公司职务、不使用公司资源、与公司职务不一致
3.委托开发的软件著作权归属
A委托B,签了合同约定,委托方A获得软件著作权,否则受托者拥有软件著作权
4.计算机软件著作权侵权
5.计算机软件的商业秘密权:
经营秘密和技术秘密进行保护
版权法:保护计算机知识产权不受侵犯
委托时,谁完成(受委托公司)享有著作权