《2022年数据库原理复习资料 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库原理复习资料 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、读书之法 ,在循序而渐进 ,熟读而精思数据库原理复习资料(仅供参考)第 1 章 数据库系统概述1.信息就是客观世界的现实反映。2.信息的特征:信息的普遍性和客观性、信息是有用的、信息的依附性、信息的共享性、信息的可传输性、信息的可识别性、信息的可压缩性、信息的可转换性3.数据的定义:数据是信息的最佳表现形式之一。4.数据的特征:数据的“型”和“值”、数据受数据类型和取值范围的约束、数据有定性表示和定量表示5.数据库( Database , DB)的定义:是一个按一定数据结构来组织、存储和管理的数据的集合。6.数据库的特点:数据的结构化、数据独立性、实现数据共享、数据的冗余度小、避免了数据的不一
2、致性、有利于数据的安全性、有利于保证数据的完整性、可以发现故障和恢复正常状态7.数据库管理系统(Database Management System , DBMS)是对数据库进行管理的软件系统,它负责数据库中的数据组织、数据操纵、数据维护、数据控制及保护和数据服务等。8.数据库管理系统的功能:数据定义、数据操纵、数据控制、数据组织与存取、数据库建立与维护、运行管理9.数据库系统( Database System ,DBS)是一个带有数据库的计算机应用系统,由硬件、软件和人员组成。10. 数据库系统的人员:开发人员、用户和运行维护人员。相应的角色有系统分析员、程序员、用户、数据库管理员(Data
3、base Administrator ,DBA):全面负责数据库系统的运行管理和控制。11. 数据库的三级模式:外模式、模式、内模式12. 模式:也称逻辑模式,它是由数据库设计者综合所有的数据需求,从全局的角度对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图即全局视图。一个数据库只有一个模式。13. 外模式:也称子模式或用户模式,是程序员和最终用户能看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。通常是模式的子集。14. 内模式:也称存储模式或物理模式,它是数据物理结构和存储方式的底层描述。一个数据库只有一个内模式。15. 数据库的二级映像技
4、术:外模式/ 模式映像、模式/内模式映像16. 数据管理经历了人工管理、文件系统和数据库系统三个发展阶段17. 瀑布模型把数据库应用系统生存期划分为规划、需求分析、设计、实现、测试、运行与维护 6 个阶段。特点:自顶向下、逐层分解。第 2 章 数据库需求分析2.1.3数据库需求分析的原则1. 制定数据库需求分析计划2. 选择适当的数据库需求分析方法3. 选择合适的数据库需求分析工具软件4. 调查现存系统5. 充分与用户沟通6. 理解用户的数据管理内容及目标7. 分析并确认数据库需求8. 需求变更要立即联系9. 提出数据库实施建议和解决方案10. 认真撰写数精选学习资料 - - - - - -
5、- - - 名师归纳总结 - - - - - - -第 1 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思据库需求规格说明书11. 使用软件复用技术12. 认真评审数据库需求规格说明书13. 修改、完善数据库需求规格说明书注:数据库需求分析的最终目的是获得共同批准的数据库需求规格说明书。2. 数据流程图(Data Flow Diagram,DFD)是数据库系统最重要的需求分析工具之一,它通过图形符号描述数据的输入(来源)、输出(去向)和移动变换过程。它的基本图形元素有4 个:外部实体、数据流、处理、数据存储。3. 数据库系统需求分析方法:结构化分析方法、原型化分析方法、面向对象分析方法
6、。4. 结构化分析(Structured Analysis,SA)方法是最著名需求分析方法之一,它通过与DFD结合,遵循自顶向下、逐层分解和结构化、模式化的原则从DFD的顶层开始,逐层、逐幅画出数据库系统的全部DFD 。5. 数据库需求调查的原则:自顶向下全面展开、分析现存系统数据管理存在的问题,研究改进的可能性、采用工程化的工作方法、全面铺开与重点调查相结合6. 数据字典( Data Dictionary,DD)(是各类数据描述的集合)是数据收集和分析后所获得的成果,通常包括数据项、数据结构、外部实体、数据流、数据存储和处理逻辑6 个部分。7. 信息分类的原则:科学性原则、系统性原则、可扩展
7、性原则、兼容性原则、综合实用性原则8. 信息分类的方法:线分类法与面分类法9. 信息编码的原则:唯一性原则、正确性原则、可扩展性原则、规范性原则、稳定性原则10. 信息编码的方法:顺序编码、区间编码、字母编码、组合编码11. 关键字是能够唯一标识一个实体的一个或一个以上的无冗余数据项(或数据结构)。也称主码或主键。12.E-R 图:实体 - 联系方法( Entity-Relationship Approach )第 3 章 数据库设计1.数据库系统的设计包括数据库的结构 特性设计(静态)和行为 特性设计(动态)。2.数据库设计的原则:1)不依赖性原则 2 )开放性原则3)可扩展性原则4)检索和
8、管理的高效性原则3.数据库设计的歩骤:1)逻辑结构设计2)物理结构设计3)验证设计4.数据库模型 :是现实世界数据特征的模拟和抽象。应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现(真实、方便、易懂)数据模型三要素(重点):数据结构;数据操纵;数据的约束条件5.关系模型的完整性约束:实体完整性、参照完整性和用户定义的完整性6.关系的基本术语(名词解释):元组(Tuple) :关系表中每一个横行称作一个元组,组成元组的元素称为分量。数据库中的一个实体或实体间的一个联系均使用一个元组表示。属性 (Attribute):关系中的每一列即为一个属性,都有一个属性名。候选码
9、 (Candidate Key)和主码 (Primary Key):若关系中的某一属性组(或单个属性)的值能唯一地标识一个元组,则称该属性组(或属性)为候选码。当一个关系有多个候选码时,选定其中的一个候选码为主码。若关系中只有一个候选码,则这个唯一的候选码就是主精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思码。主属性 (Prime Attribute)和非主属性 (Non-Prime Attribute):候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。外码 :建立在子表
10、上去引用主表的某些字段。7. 关系的类型:关系分为基本表、视图表和查询表。8. 关系的基本性质(重点): 1 )列是同质的 2 )不同列可来自同一个域 3 )列的位置具有顺序无关性,列的次序可以任意交换 4 )任意两个元组不能完全相同 5 )元组的位置具有顺序无关性,元组的次序可以任意交换 6 )分量必须取原子值,即每个分量都必须是不可分的数据项9. 完整性约束 : 1 )实体完整性(主键) 2 )参照完整性(外键) 3 )用户定义的完整性(除主键和外键之外的)10. 完整性设计中应注意的问题: 1 )修改关系中主码的问题 2 )外码能否接受空值问题 3 )在被参照关系中删除元组的问题(3 种
11、情况) (重点)级联删除 (CASCADES) 将参照关系中外码值,与被参照关系中将要删除元组的主码值相同的所有元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种删除操作会进行级联下去。受限删除 (RESTRICTED) 仅当参照关系中没有任何元组的外码值与被参照关系要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作;置空值删除 (NULLIFIES)删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 4 )在参照关系中插入元组时的问题。11. 触发器: 是一类特殊的存储过程。特点 :是定义在触发器表上的,不能由用户调用执行,而是在对触发器进行操作时自动触
12、发执行的,但存储过程可以通过存储过程名字而被直接调用。 缺点 :触发器的性能比较低。12. 索引 :是一个单独的、物理的数据库结构,它是某个关系中,一列或若干列值的集合和相应的指向关系中物理标识这些值的数据页的逻辑指针清单。(存数据, 用空间来换取时间)按存储结构的不同,分为聚簇索引(主键默认)和非聚簇索引。13. 索引的作用 : 1 )加快数据查询的速度2)保证数据的唯一性3)加快连接速度。14. 事务 :是恢复和并发控制的基本单位。是用户定义的一组数据库操作序列的集合。15. 事务 4 个特性(解答题): 1 )原子性( Atomicity)一个事务是不可分割的数据库的逻辑工作单位 2 )
13、一致性( Consistency ) 事务的执行结果必须是使数据库从一个一致性状态到另一个一致性状态 3 )隔离性( Isolation)一个事务的执行不能被其他事务干扰 4 )持续性( Durability)一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思16. 并发控制(以事务为单位)条件:(1)一个对象;(2)多个事务;(3)同一时刻17. 并发操作 :数据库中的数据是共享的,即多个用户可以同时使用数据库中的数据18. 并发操作
14、带来的4 个问题 : 1 )丢失或覆盖更新2)不可重复读3)脏读数据4)幻像读19. 基本的封锁类型: 1 )排他锁( X锁) 2)共享锁( S锁)20. 死锁 :如当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时,就发生了死锁。21. 预防死锁发生常用的方法有: 1 )一次封锁法(要求每个事务必须一次将所有要使用的数据全部加锁,否则不能继续执行) 2 )顺序封锁法(预先对数据对象规定一个封锁顺序,所有事务都按此顺序执行)22. 死锁的诊断与解除: 1 )超时法 : 指如果一个事务的等待时间超过
15、了规定的时限,就认为发生了死锁 2 )等待图法:事务等待图动态反映所有事务的等待情况。23. 将 E-R 图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。实体集向关系模式转换的原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的主码就是关系的主码。24. 联系集向关系模式的三种转换: 1 ): ( 可转为一个独立的关系模式,也可与任意一端 对应的关系模式合并) 2):( 可转为一个独立的关系模式,也可与任意n 端对应的关系模式合并) 3 ):( 可转为单独存在的关系模式,与该联系相连的各实体的主码以及联系本身的属性均转为该关系模式的属性。而关系模式
16、的主码为各实体主码的组合) 第 4 章 数据库标准语言SQL 4.2.1数据库1. 定义数据库Create database 学生选课库On primary (name=学生选课库 , Filename=学生选课 .mdf , Size=4mb, Maxsize=6mb, Filegrowth=20%) 2. 选择数据库use 3. 删除数据库Drop database 4.2.2基本表1. 定义基本表精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思Create table student
17、( sno char(5) not null or primary key, Sname varchar(20) unique , Sex char(1), Sdept varchar(15), Smon char(5), Sbirthday smalldatetime) 2 修改基本表a.add 方式:向student表增加“入学时间”列,其数据类型为日期型。Alter table student add scome datetime B.drop 方式:删除sc 表中的 score_chk 约束。Alter table sc drop score_chk C.alter方式:把studen
18、t表中的 sname列加宽到28 位字符宽度。Alter table student alter column sname varchar(28) 3. 删除基本表Drop table student 4.2.3索引1. 定义索引为 student,course,sc三个表建立索引。其中student表按学号升序建唯一索引,course表按课程号升序建唯一索引,sc 表按学号升序和课程号降序建唯一索引。Create unique index s_sno on student(sno) Create unique index c_cno on course(cno) Create unique
19、index scno on sc(sno asc,cno desc) 2. 删除索引drop index 数据表名 . 索引名4.3 数据查询4.3.1概述: 数据查询是数据库中最常见的操作。SQL语言提供SELECT 语句, 通过查询操作可得到所需的信息,其语法格式为:Select all|distinct , From , where group by having order by 4.3.2简单查询1. 无条件查询a. 查询学生的全部信息Select * from student 等 价 于select sno,sname,sex,sdept,smon,sbirthday from s
20、tudent b. 查询全体学生的姓名、学号和出生日期。Select sname 姓名 ,sno 学号 ,sbirthday as 出生日期 from student 闯. 查询全体学生的姓名年龄。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思Select sname,year(getdate()-year(sbirthday) from student 2. 条件查询a. 比较大小的条件查询:查询成绩高于85 分的学生的学号、课程号和成绩。Select sno,cno,score fro
21、m sc where score85 b. 多重条件查询:查询选修c1 或 c2 且分数大于等于85 分学生的学号、课程号和成绩。Select sno,cno,score from sc where(cno=c1 or cno=c2) and score=85 C.确定范围:查询成绩在90-100 之间的学生的学号以及课程号。Select sno,cno from sc where score between 90 and 100 d. 查询选修c1 或 c2 的学生的学号、课程号和成绩。Select sno,cno,score from sc where cno in( c01, c02)
22、等价于Select sno,con,score from sc where cno=c01 or cno=c02e. 部分匹配查询:查询所有姓刘学生的姓名、学号和性别。Select sname,sno,sex from student where sname like 刘 % 查询以“ DB_ ”开头的课程的课程号,课程名和学分。Select cno,cname,credits from course where cname like DB_% escape 其中 escape 短语表示“”为换码字符,这样匹配串中紧跟在“”后面的字符“_”不再具有通配符的含义,转义为普通的“”字符。F.涉及空
23、值的查询:空值查询使用is null关键字。查询没有成绩的学生的学号和相应的课程号。Select sno,cno from sc where score is null 查询选修c2、c3、c4 或 c5 课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。Select sno,cno,score from sc where cno in(c02, c03 , c04, c05) order by sno,score desc 4.3.4使用 SQL函数查询分组函数: avg、sum 、max、min、 count a. 求学号为s1 学生的总分和平均分。Select
24、sum(score) ad totalscore, avg(score) as avescore from sc where (sno= s01) b. 求选修 c1 号课程的最高分、最低分及之间相差的分数。Select max(score) as maxscore,min(score) ad minscore,max(score)-min(score) as diff from sc where(cno=c01) c. 求参加选修课程的学生总数。Select count(distinct sno) from sc 4.3.5分组查询1.group by子句a. 查询每位学生的学号以及该学生选
25、修课程的门数。Select sno,count(*) as c_num from sc group by sno 2.having子句查询至少选择修2 门课的学生的学号及平均成绩。Select sno,avg(score) from sc group by sno having count(*) 2 4.4 数据更新精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思4.4.1插入数据a. 插入单个元组在 student表中插入记录:(Sno:S07。Sname :郑冬。 Sex:女。 Sdep
26、t:计算机)。Insert into student(sno,sname,sex,sdept) values ( s07, 郑冬 , 女 ,计算机 ) b. 插入子查询结果集Insert into (,) 子查询求出各位同学的学号、平均成绩,及总分,并把结果存放在新表avgscore 中。先建表: create table avgscore( Sno varchar(10), Avggrd decimal(4,2), Sumgrd decimal(5,1) 然后利用子查询:insert into avgscore Select sno,avg(score),sum(score) from sc
27、 group by sno 4.4.2修改数据1. 修改基本表数据a. 把学号为“ s02”的学生的专业改为计算机系。Update student set sdept=计算机 where sno= s022. 用子查询提供要修改的值把所有教师的工资提高到平均工资的1.2 倍。Update teacher set salary=(select 1.2*avg(salary) from teacher) 3. 用子查询选择要修改的行将计算机系所有学生的成绩置零。Update sc set score=0 Where sno in(select sno from student where sdep
28、t=计算机)4.4.3删除数据1. 删除基本表数据删除选课表中学号为“s04”选修“ c03”课程的选课记录。Delete from sc Where sno =s04 and cno= c032. 利用子查询选择要删除的行。删除刘华的选课记录。Delete from sc Where sno in (select sno from student where sname=刘华4.5 视图4.5.1定义视图创建一个计算机系学生情况的视图sub_s。Create view sub_s as Select sno,sname,sbirthday from student where sdept=计
29、算机4.5.2删除视图删除计算机系学生情况的视图sub_s。Drop view sub_s 4.5.3查询视图查询视图sub_s 中年龄小于20 岁的学生姓名(sname) 和出生日期 (sbirthday)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思Select sname,sbirthday from sub_s Where (year(getdate()-year(sbirthday)20 4.5.4更新视图1. 数据插入向视图 sub_s 中插入一条记录(sno:s07 。 S
30、name:李丹, sbirthday:1982年 12 月 1 日)。Insert into sub_s values(s07,李丹 , 1982-12-1 ) 2. 数据修改将视图 sub_s 中李丹的性别改为女。Update sub_s set sex=女 where sname= 李丹3. 删除删除视图sub_s 中李丹的记录。Delete from sub_s where sname=李丹4.6 数据控制4.6.1授权把对 student表和 course 表的全部操作权限授予zhao,并允许 zhao 将该权限授予他人。Grant all privileges on student,
31、course to zhao with grant option 4.6.2收权把用户 zhao 修改成绩的权限收回。Revoke update(score) on sc from zhao 4.8 存储过程的创建与维护a. 编写一个存储过程,实现删除一个学生的记录。由于一个学生可能已经选课,所以在删除一个学生的数据前,必须首先删除该学生选课数据,然后再删除学生数据。Grant procedure usp_deleteastudent sno char(5), sname varchar(8) output As - 删除学生选课表中学生的记录 If exists(select * from
32、sc where sno=sno) Delete from sc where sno=sno - 得到指定学号的学生姓名 Select sname=sname from student where sno=sno - 删除指定学号的记录 Delete from student where sno=sno Go b. 执行 a. 定义的存储过程,并删除学号为“95010”的相关信息。- 测试和运行存储过程Declare sname varchar(8) - 调用存储过程Execute usp_deleteastudent 95010, sname output - 显示返回变量值Select s
33、name 4.9 触发器的创建与维护精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思4.9.1定义触发器利用触发器来保证学生- 课程库中sc 表的参照完整性,以维护其外码与参照表中的主码一致。Grant trigger sc_inserted on 选课For insert As If(select count(*) from student,inserted,course) Where student.sno=inserted.sno and o=o)=0 Rollback transac
34、tion 4.9.2修改触发器语法: alter trigger trigger_name Onowner. table|view Forinsert,update,delete as Sql_statement 4.9.3删除触发器语法: drop trigger trigger_name 第 6 章数据库测试6.1 概述6.1.1 数据库测试定义数据库简单定义:数据库测试是为了发现错误 和缺陷 而运行数据库的过程。数据库测试的主要内容是数据库模式测试 、功能测试 和性能测试 。6.1.2 数据库测试原则(1)数据库测试是一个测试排错(排除错误和缺陷)一再测试一再排错、循环往复、数据库质量不
35、断改进的过程。(2)尽早地和不断地进行数据库测试。(3)测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。(4)系统开发人员要避免测试自己所作的数据库需求分析文档、设计文档和实现代码。(5)在设计测试用例时,应当包含合理的输入数据和不合理的输入数据。(6)充分注意测试中的错误群集现象。(7)严格执行测试计划,杜绝测试的随意性。(8)对每一个测试结果做全面复查,避免疏漏和失误。(9)进行出错统计、撰写测试分析报告。6.1.3 数据库测试的方法按照对数据库的内部结构和工作过程了解的程度,数据库测试的方法分为白盒测试 和 黑盒测试 。1.白盒测试白盒测试是已知数据库内部结构 和工作过程,
36、允许测试人员利用数据库的内部结构等信息,设计或选择测试用例,对数据结构、存储过程及触发器的逻辑路径等进行测试,确定实际的状态是否与预期的状态一致。数据库测试人员使用白盒测试方法,除可以对数据结构进行测试外,还可以对存储过程和触发器的模块进行如下的检查:(1) 对模块的所有独立的执行路径至少测试一次。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思(2) 对所有的逻辑判断的取“真”与取“假”的两种情况都至少测试一次。(3) 在循环的边界和运行的边界内执行循环体。(4) 测试内部数据结构的有效性
37、等常用的白盒测试方法包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖发、基本路径测试法。2.黑盒测试黑盒测试是在已知数据库所有的功能的基础上,在测试时,在完全不考虑数据库内部结构和内部特性的情况下,测试人员根据经验,通过相应的数据库系统或数据库访问工具进行测试。(1)数据结构(例如,数据类型、宽度)是否正确定义?(2)输入能否正确地接受?能否输出正确的结果?(3)能否能够正确插入(增加)、更新、删除数据?(4)主码、外码是否正确定义?(5)数据库操作权限定义是否正确?(6)是否正确处理并发操作?(7)表级、列级完整性约束条件是否满足?(8)数据库的处理能力是否满足要求?(9)数据库的可
38、靠性、可维护性是否满足要求?黑盒测试着眼于数据库的功能和性能。黑盒测试方法包括等价类划分法、 边界值分析法、错误推测法、 因果图法、 判定表驱动法、正交试验设计法、功能图法、场景法。黑盒测试的关键是设计测试用例。6.1.4 数据库测试的步骤数据库测试分为单元测试 、 集成测试 、确认测试 、系统测试4 个步骤。(4 个步骤具体内容见书P151P152.)6.2 测试用例设计6.2.1 白盒测试的测试用例设计逻辑覆盖法和基本路径测试法是计算机软件白盒测试用例设计的两个重要方法。逻辑覆盖法逻辑覆盖包括语句覆盖 、判定覆盖 、条件覆盖 、判定 - 条件覆盖 、条件组合覆盖 及路径覆盖 。(各个覆盖具
39、体内容与相对应例子见书P153P156)6.2.2 黑盒测试的测试用例设计1. 等价类划分法所谓等价类划分法是把全部可能的输入数据划分为若干等价类,从每个类中选取一个数据作为输入数据来测试程序。等价类划分法设计测试用例分为两步:划分等价类、确定测试用例。(1)划分等价类和列出等价类表等价类分为有效等价类和无效等价类。划分等价类的几个原则:1) 如果输入条件规定了取值范围,则可以定义一个有效等价类和两个无效等价类。2) 如果输入条件规定了输入值的集合,或者规定了“必须如何”的条件, 则可以定义一个有效等价类和一个无效等价类。3) 如果输入条件是一个布尔量,则可以定义一个有效等价类和一个无效等价类
40、。4) 如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时可为每一个输入值定义一个有效等价类,把这组输入值之外的数据定义为一个无效等价类。5) 如果规定了输入数据必须遵守的规则,则可以定义一个有效等价类(符合规则) 和精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思若干个无效等价类(从不同角度违反规则)。6) 在已划分的等价类中,如果程序对某些数据的处理方式不同,则应考虑将该等价类进一步划分为更小的等价类。(对应例子在书P156P157)(2)确定测试用例在确立了等价类
41、之后,建立等价类表, 列出所有划分的等价类。1) 为每个等价类分配一个唯一的编号。2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。3) 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。(对应例子在书P157P158)1.边界值分析法边界是指程序输入、输出范围的边缘,边界值是指程序输入、输出范围的边缘值。边界值分析法是一种黑盒测试方法。应用边界值分析法设计测试用例,需遵循几条原则见书P159. 2.错误推测法错误推测法就是根据测试人员的直觉与经验,推测被测数据库哪些地方容
42、易出错,并据此设计测试用例。6.3 数据库模式测试、6.4 数据库功能测试、6.5 数据库性能测试见书P159P164. 6.6 数据库调试数据库测试是在进行了成功的数据库测试之后才开始的工作。与数据库测试不同,测试的目的是尽可能多的发现错误,而 调试的目的是进一步诊断和改正数据库中的潜在错误。调试的活动由两部分组成:1) 确定数据库中可疑错误的性质和位置。2) 对数据库的设计或编码进行修改,排错这个错误。6.6.1 数据库调试的原则1. 确定错误的性质和位置的原则1)认真分析与错误征兆有关的信息。2)避开死胡同。3)只把调试工具当作辅助手段来使用。4)避免用试探法,最多只能把它当作最后手段。
43、2. 修改错误的原则1)在出现错误的地方,很可能还有别的错误。2)修改错误的一个常见失误就是只修改了错误的征兆或错误的表现,而没有修改错误的本质。3)当心修正一个错误的同时有可能会引入新的错误。4)修改错误的时候将迫使人们暂时回到数据库设计阶段。5)修改源代码,不要改变目标代码。6.6.2 数据库调试步骤1. 加载调试数据2. 运行3. 评价6.6.3 数据库调试的方法1. 强行排错精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思2. 回溯法排错3. 归纳法排错4. 演绎法排错第 7 章
44、数据库维护7.1.1数据库维护的定义当数据库投入正式运行后,为保障数据库正常、平稳和高效地运行,针对数据库的安装、备份、恢复、压缩、故障排除等的工作就是数据库维护。7.1.2数据库维护的任务1. 日常维护2. 定期维护3. 故障维护7.1.3数据库维护的原则1.DBA随时监控数据库系统(包括服务器等)各部分基本软件、硬件的正常运行。2.DBA根据不同应用要求定期对数据库进行备份、重组织和重构。3. 当数据库出现故障时,尽快采取正确措施排除故障,必要时进行数据库恢复。4. 数据库的定期维护应尽量在运行事务数量最少的情况与进行。5. 数据库的维护应该根据其运行的状况来定,只做必要的维护。7.1.4
45、数据库维护的方法1. 随时监视系统运行状况,及时处理系统错误。2. 定期压缩数据库。3. 定期清理废旧无用的数据。4. 定期检查数据是否存在损环,如发生损环应及时修复。5. 定期进行数据备份。6. 定期备份日志文件。7. 当数据发生故障或崩溃时,恢复数据库。8. 保证系统数据安全,周期更改用户口令。7.1.5数据库维护的步骤1. 重建索引。2. 更新统计。3. 删除不使用的文件、释放一些空间。4. 完全备份。5. 产生用户信息表、并为信息表授权。6. 随时监控系统运行状况。7. 保证系统数据安全,周期更改用户口令。8. 将上述步骤应用到所有系统和用户数据库。7.2 运行日志7.2.1日志文件的
46、格式和内容2 种格式:以记录为单位的日志文件和以数据块为单位的日志文件每一个日志记录(LOG RECORD)包括以下内容:1. 事务标识2. 操作类型3. 操作对象精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思4. 更新前数据的旧值5. 更新后数据的新值7.2.2日志文件的使用为保证数据库是可恢复的,登录日志文件时必须遵循两条原则:1. 登录的次序严格按并发事务执行的时间次序。2. 必须先写日志文件,后写数据库。7.2.4日志文件的维护1. 周期地更新日志文件2. 定期备份日志文件3.
47、定期删除旧的日志文件7.3 数据库故障及其排除7.3.1故障的种类1. 事务故障: a. 非预期故障 - 不能由应用程序处理。b. 可预期故障:由应用程序处理。2. 系统故障:常称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。3. 介质故障:被称为硬故障,主要是指外存故障,如磁盘损环、磁头碰撞等。4. 计算机病毒:属于系统故障或者介质故障的范畴。7.3.2故障的排除方法1. 收集故障信息2. 确定故障原因和故障种类3. 故障处理方案7.4 数据库备份与恢复7.4.1数据库备份的原则和方式1. 数据库备份的原则:A.在数据库系统处于空闲的时候做海量备份B.定期执行备份C.经常做日
48、志备份D.备份文件保存到多种介质和多个地点2. 数据库备份的方式a. 静态备份和动态备份b. 海量备份和增量备份7.4.4数据库的镜像功能1. 数据库镜像:根据DBA的要求, DBMS 自动地把整个数据库或其中的关键数据复制到另一个磁盘上,那么这个复制品就是原数据库(也称为主数据库)的镜像(或镜像数据库)。2. 数据库镜像的优点a. 增强数据保护功能b. 提高数据库的可用性第 8 章 数据库应用系统开发8.2 数据库接口技术8.2.1 ODBC (Open Database Connectivity,开发数据库互联)是Microsoft公司推出的为异质数据库访问提供统一接口的技术。8.2.2
49、ADO ( Active Data Object,活动数据对象)是一组由Microsoft提供的 COM 组件。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 14 页读书之法 ,在循序而渐进 ,熟读而精思8.2.3 JDBC (Java Database Connectivity),即 Java 数据库连接机制实现的。第 9 章 关系数据库理论9.2.3第一范式在关系模式R(U)中的每一个具体关系r 中,如果每个属性值堵都是不可再分的最小数据单位,则称R(U)是第一范式的关系,记为R(U)1NF。9.2.4第二范式如果关系模式R (U)中的所有非主属性都完全函数依赖于主码,则称R(U)是第二范式的关系,记为R(U)2NF。9.2.5第三范式如果关系模式R (U)中的所有非主属性对主码不存在传递函数依赖,则称R (U)是第三范式的关系,记为R(U)3NF。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 14 页