关闭

关闭

关闭

封号提示

内容

首页 2013年计算机等级考试四级数据库技术复习笔记2.doc

2013年计算机等级考试四级数据库技术复习笔记2.doc

2013年计算机等级考试四级数据库技术复习笔记2.doc

上传者: Rebecca莹莹 2018-07-13 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《2013年计算机等级考试四级数据库技术复习笔记2doc》,可适用于项目管理领域,主题内容包含年计算机等级考试四级数据库技术复习笔记年计算机等级考试四级数据库技术复习笔记第五章关系数据库逻辑设计概述基本概念关系模型、关系模型采用一个二维表格在符等。

年计算机等级考试四级数据库技术复习笔记年计算机等级考试四级数据库技术复习笔记第五章关系数据库逻辑设计概述基本概念关系模型、关系模型采用一个二维表格在计算机中组织、存储、处理和管理数据。关系名数据库名:由字母数字组成属性名关系模式和关系:描述模式描述关系的静态结构由模式名、关系模式所包含的属性及属性值所满足的条件组成模式定义。元组:描述关系中的行域:它定义关系的每个属性取值的类型主码:能够惟一标识关系中每一个元组的属性或属性组关系的数学定义:关系模式是建立在集合集论的基础上的用数学的概念定义关系有A定义一:域是值的集合同一个域中的值具有相同的数据类型B定义二:C定义三:D当关系引用了属性名后关系具有以下属性:不能有重复的元组元组上下无序按属性名引用时属性左右无序所有属性值都是原子项不可再分总结:关系是一张二维表表中的一行被称为一个元组一列称为属性由一组域值组成。关系是元组的集合关系中的每个元组在数学上被定义为这个关系所涉及的全部域值中笛卡儿积的一个元素。关系数据库、关系数据库是按照二维表组织和存储的相互关联的关系的集合关系数据库模式是关系模式的集合关系的完整性、关系的完整性完整性约束:是对关系的某种约束规则和关系满足的定义。通常这组约束规则用来限定和检查数据库所含实例的合法性和正确性、完整性约束分静态和动态两种静态完整性约束是基于关系模式的主要有主码、外码约束和域约束组成动态完整性约束是基于企业的业务规则的。、静态完整性约束规则:主码约束:主码必须满足:A惟一性:在一个关系中不存在两个元组它们具有相同的主码值B最小性:不存在从组成主码的属性集中去掉一个属性还仍能保持数据的惟一性外码约束:用户定义的完整性:关系数据库设计理论问题的提出究竟一个关系数据库包含哪些属性是合理的如何评价一个关系模式设计的优劣函数依赖函数依理论利用一个关系中属性之间的依赖关系评价和优化关系模式以保证存储到数据库中的关系具有较好特性、函数依赖:设RU为一关系模式X和Y为属性全集U的子集若对于RU的任意一个可能的关系rr中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等则称“X函数决定Y”或“Y函数依赖于X”并记作XY其中X称为决定因素因为根据函数依赖定义给定一个X就能。惟一决定一个Y这里讨论的函数关系与数学上的不同是不能计算的是一个关系它是一种语义范畴的概念只能根据两个属性之间中属性之间存在的依赖关系的语义来确定一个函数依赖是否存在。、完全与部分函数依赖:在关系模式RU中如果XàY成立并且对X的任何真子集X’不能函数决定Y则称Y对X是完全函数依赖被记作XfàY。若XàY但Y不完全函数依赖于X则称Y对X是部分函数依赖记作XpàY、传递函数依赖:在关系RU模式中如果X决定YY不属于XY不决定XY决定Z则称Z对X传递函数依赖。、平凡与非平凡函数依赖:若X决定Y但Y属于X则称XàY是平凡函数依赖否则称非平凡函数依赖即平凡函数依赖仅当其右边的属性集是左边属性集的子集时成立非平凡函数依赖仅当其右边的属性集至少有一个属性不属于左边有集合时成立完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立、码:在关系模式RU中K为R的属性或属性组若K函数决定AA„An则K为关系模式R的候选码包含在候选码中的属性称为主属性否则为非主属性若一个关系的候选码不止一个则选定其中一个作为关系R的主码关系的码属性除了必须完全函数决定关系的所有其他属性外还必须满足最小化规则即在关系模式RU中不存在一个K的真子集能够函数决定R的其他属性。、函数依赖的推理规则:自反律:若Y包含于X包含于U则XàY成立增广律:若XàY且Z包含于U则XZàYZ成立传递律:若XàYYàZ则XàZ成立合并规则:若XàYXàZ成立则XàYZ分解规则:若XàY和Z包含于Y成立则XàZ也成立伪传递规则:若XàYYWàZ则XWàZ成立、属性集闭包:设F是属性集U上的函数依赖集X为U的一个子集那么对于F属性集X关于F的闭包用X表示为:XA|XàA由属性集团包的定义可知若想判断函数依赖XàY是否成立只要计算X关于函数依赖集F的闭包若Y是X闭包中的一个元素则XàY成立、确定关系的码:利用迭代算法计算X步骤如下:A选X作为闭包X的初值XB由Xi计算Xi时它是由X并上属性集合A所组成其中A满足下列条件:Y包含于Xi且F中存在函数依赖YàZ而A包含于Z。因为U是有穷的所以会得到XiXi此时Xi为所求的X。规范化设计方法、第一范式:定义:设关系模式RFU如果R的每一个属性都是不可分的数据项则此关系模式为第一范式一个给定关系和第一范式NF的区别:A一个关系中的数据按照行和列的形式组织每个元组具有相同数目的属性个数且每一个元组的属性值具有统一的数据类型和长度元组或属性的排列与顺序无关每个元组必须通过一个属性或属性组惟一识别B第一范式实际上对关系增加了一个约束即关系中元组的每个属性都只取一个值第一范式是对关系模式的基本要求不满足第一范式的数据库就不是关系数据库。、第二范式:定义:若关系模式RFU是NF且每个非主属性完全函数依赖于码则称R为第二范式即在NF中不存在非主属性对码的部分依赖仅满足第一范式关系会存在种种问题要消除必须用更高级的范式标准来设计称为标准化具体做法是将大的关系分解成多个小的关系使分解后的关系满足更高级范式的要求。第二范式实际上对关系增加了一个约束就是关系中的每一个属性必须完全依赖于主码即在第一范式的基础上消除非主属性对主码的部分函数依赖可达到NF、第三范式:定义:若关系RUF为第一范式且不存在非主属性对主码的传递函数依赖则称R为第三范式第三范式是在第二范式的基础上对关系又增加了一个约束就是关系中的每一个非主属性必须只依赖于主码。即NF的基础上消除非主属性对主码的传递函数依赖可达到NF。、改进的第三范式:定义:如果关系模式R是NF且每个属性既不相存在部分函数依BCNF。赖也不存在传递函数依赖于候选码则称R是改进的第三范式、多值依赖与NF:多值依赖:表示关系中属性如A、B、C之间的依赖对于A的每个值都存在一个B或C的值的集合而且B和C的值相互独立记为:AààB、AààC第四范式:如果关系模式R属于NF对于R的每个非平凡的多值依赖XàYY不属于XX含有候选码则R是第四范式。即是从BCNF范式中消除主码内的独立依赖集非平凡多值依赖可达NF、连接依赖与NF连锁依赖:设关系模式RR的属性子集为R、R、R、R、R、R、R„当且仅当R的每个合法值等于R、R、R、R、R、R、R„的投影连接时称R满足连接依赖第五范式:设R是一个满足NF的关系模式当且仅当R的每一个非平凡连接依赖都被R的候选码所蕴含即从NF中消除非候选码所蕴含的连接依赖为NF、总结:范式表达了关系模式满足的条件也是衡量关系模式设计优劣的标准利用范式进行规范化设计的目的是消除数据冗余避免出现异常使结构更合理规范化设计的基本过程是对关系进行的分解消除属性间不合理的数据依赖用一组等价的子关系代替原有的关系数据库规范化的程序越高其关系表就越多从而增加了表之间连接运算的代价影响了数据库的执行速度和性能。所以通常关系模式规范化工作仅做到NF这样既使关系中不合理的属性基本消除规范化程度也不太高保证数据库有较好的性能。数据库模式设计初始关系模式的设计、把ER图转换成关系模式:把ER模型中的每个实体集转换成一个同名的关系实体集的属性就是关系的属性实体集的码就是关系的码把ER模型中的每个联系转换成一个关系与该联系相连的各实体集的码以及联系的属性转换成为关系的属性。A若联系为:则每个实体集的码均是该关系的候选码B若联系为:n则关系的码为n端实体集的码C若联系为m:n则关系的码为各实体集码的组合合并具有相同码的关系、检查确认对象:检查转换后的每个关系名和属性名是否符合数据库设计关于统一命名的约定优化关系模式、模式分解原则:分解具有无损连接性:分解后的关系能够恢复成原来的关系分解保持函数依赖:A无损连接和保持函数依赖是用于衡量一个模式分解是否导致原有模式中部分信息丢失的两个标准B当一个关系被分解后会出现几种结果既有无损连接又能保持函数依赖是较理想的分解结果意味着在分解的过程中没有丢失原有模式的任何信息C一般情况下分解到NF就足够了但在NF关系下仍存在一定程度上的更新异常或不一致的隐患但与数据库性能比较起来是可以忽略的因为在数据库设计过程中通过增加一些数据约束就可以解决NF引起的数据问题了。、优化属性:确定各字段的类型和长度、确认模式满足需要:数据完整性设计、指定义数据库中存储的数据值满足的约束条件通过对存储的数据值的约束维护关系的完整性。、数据值满足条件分为:域约束:限制指定列的取值及范围主码约束:定义每个关系的主码值不空且惟一引用完整性约束:定义不同模式的属性间满足的条件及一个关系模式中属性间可能满足的条件安全模式和外模式的设计、根据选定的DBMS支持的安全控制特征来确定、根据不同用户对数据库存取特点定义相关的外模式年计算机等级考试四级数据库技术复习笔记()第六章存储技术与数据库物理设计文件组织数据库的物理结构、数据库中的应用数据是以文件形式存储在外存上的文件在逻辑上被组织成记录的序列即每个DB文件可看作是逻辑记录的集合、一个文件在磁盘上占有一定的物理存储空间文件中的每个逻辑记录被映射存储到某个特定的磁盘块上一个文件在物理上可以看作是由存放文件记录的一系列磁盘块组成称为物理文件、文件的逻辑记录与磁盘间的映射关系是由操作系统或DBMS来管理的当需要对一个文件的逻辑记录进行操作时先要根据这种映射关系找到该逻辑记录所在的磁盘块然后再进行操作。、从数据库物理结构角度需要解决如下问题:文件的组织文件的结构文件的存取索引技术文件组织、数据库与文件的对应关系在外存中数据库以文件形式组织文件由逻辑记录组成记录由多个域组成一个关系数据库包括一张或多张关系表关系表与文件的对应关系有如下方式:A每张关系表单独用一个文件来存储由DBMS通过OS的文件管理功能来管理B现代中大型DBMS是由OS直接分配一块大的磁盘空间DBMS将该磁盘空间作为数据库磁盘文件直接管理DB的所有关系表都存储在该文件中关系表在逻辑上由一系列元组组成元组由多个属性组成每个元组可以用磁盘文件中的一个逻辑记录来存储记录包括多个域对应元组的多个属性、文件记录格式:数据库文件通常采用两种逻辑记录格式:定长记录格式和变长记录格式文件结构与存取堆文件、堆文件也称无序文件记录随机在存储在文件物理空间是新插入的记录存储在文件的末尾、堆文件常常用作存储那些将来使用但目前不清楚如何使用的记录为了实现文件记录的有效存取堆文件经常与附加的存取路径一起使用、查找操行平均需要搜索B个磁盘块效率比较低、插入操作十分简单先读文件头找到最末磁盘地址将最末磁盘块读入内存将需插入的新记录写入磁盘块的末端最后将修改过的磁盘块写回磁盘、删除比较复杂可以先找到被删除记录所在的磁盘块读入内存后在内存缓冲区删除记录最后再写回磁盘也可以在每个记录的磁盘空间增加一个删除标志位当需要删除记录时将标示位置顺序文件、顺序文件按照文件记录在查询码上的取值的大小顺序排列各个记录、顺序文件的每个记录中有一个指针字段根据查询码大小用指针将各个记录按序连接起来、文件建立时应尽量使记录的物理顺序与查找码的顺序一致以减少访问磁盘块的次数、根据查询条件对顺序文件进行查询时如查询条件定义在查找码上则使用二分法查找技术快速找到记录如条件不在查找码上则必须从头到尾依次扫描磁盘块与堆文件一致所以顺序文件的访问效率也不高、顺序文件插入工作包括定位和插入:定位:在指针链中找到插入的位置即插入记录在哪个记录的前面插入:如有自由空间则在该位置插入新记录如没有自由空间则只能插入溢出块中重新调整记录指针链关系保证记录顺序聚集文件、聚集文件是一种具有多种记录类型文件存储了来自多个关系表的数据每个关系表对应文件中的一种记录类型、当数据库中数据量效大时对数据库查询需要多次访问磁盘文件严重影响性能指标为了降低多表操作时的磁盘访问次数提高多表查询速度可采用聚集文件、聚集文件将不同关系表中有关联关系的记录存储在同一磁盘块内从而减少多表查询时磁盘块的访问次数提高处理速度索引文件是一种利用索引技术技术快速文件访问的文件组织和存取方法散列文件是一种利用散列函数支持快速文件访问的文件组织和存取方法索引技术基本概念、索引技术:是一种快速文件访问技术它将一个文件的每个记录在某个或某些域属性上的取值与该记录的物理地址直接联系起来提供了一种根据记录域的取值快速访问文件记录的机制它的关键是建立取值域到记录的物理地址刘的映射关系这种映射关系叫索引、索引技术分类:有序索引技术:利用索引文件实现记录域查找码取值到记录物理地址间的映射关系索引文件由索引记录组成每个记录中记载一个索引项索引项记录了某个特定的查找码值和具有该值的数据文件记录的物理地址散列技术:利用一个散列函数实现记录域取值到记录物理地址间的直接映射关系有序索引:有序索引作为基于索引文件的索引技术需要考虑两个组织索引文件中的索引记录如何从索引文件出发访问数据问题:如何文件中的数据记录A当需要采用有序索引机制快速访问数据文件时首先要为该数据文件建立一个索引文件它是索引记录和索引项的集合B索引文件建立的方法:首先选定某些记录域作为查找码然后建立数据记录在查找码上的取值与物理地址间的映射关系组成索引项。所有索引项作为索引记录存储在索引文件中索引文件根据某个特定的查找码值的顺序组织为顺序文件C一个数据文件可以有多个查找码和索引文件有序索引的分类及特点、聚集索引与非聚集索引对数据文件和它的一个特定的索引文件如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致则该索引文件称为聚集索引否则称为非聚集索引在一个数据文件上除了建立一个聚集索引外还可建立多个非聚集索引、稠密索引和稀疏索引如果数据文件中的每个查找码都在索引文件中都对应一个索引记录称为稠密索引如果只一部分对应则称为稀疏索引、主索引和辅索引在数据文件包含主码的属性集上建立索引称为主索引在非主码属性上建立的索引称为辅索引、单层索引和多层索引单层索引线性索引:索引项根据键值在索引文件中顺序排列组织成一维线性结构每个索引项直接指向数据文件中的数据记录当数据文件很大时即使采用稀疏索引建成的索引文件也很大导致效率低下为解决该问题可对索引文件中的索引项本身再建立一级稀疏索引组成层索引结构进一步地可建立多层树型索引结构来快速定位散列技术散列文件、散列是一种快速查找技术它利用定义在文件记录上的查找码通过计算一个散列函数以散列函数值作为记录的物理地址实现对文件记录直接快速访问。、首先指定文件记录的一个域作为查找码散列域然后定义一个查找码上的函数散列函数函数的输入为查找码值输出为物理地址、一般使用桶作为基本的存储单位一个桶可存放多个文件记录物理地址可以是记录所在的桶号散列函数的输出可以是桶号散列函数、散列方法依赖于好的散列函数它应该尽可能均匀地将查找码分布到各个桶中具体要满足如下两个条件:地址的分布是均匀的地址的分布是随机的桶溢出、产生桶溢出的两个原因:文件初始设计时为文件记录预留的存储空间不足散列函数的均匀分布性不好、设计散列函数时应根据文件大小决定物理空间一般应有余量再设计合适的桶数目和桶大小尽可能留有一些空闲桶降低桶溢出的可能性、桶溢出的现象是难免的需要DBS采用相应的桶溢出处理机制、散列方法的缺点:为了避免桶溢出。必须选一合适的散列函数但这比较复杂而且不象索引文件那样可以据数据记录变化动态调整。数据字典、数据字典系统目录中存储了数据库对象的各类描述信息和DBMS所需的控制信息全称数据库元数据、数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的描述、DBMS所需的控制信息:包括查询优化、安全性检查、用户权限验证等、数据字典主要包括:关系模式信息与视图描述有关的信息关系的存储结构和存取方法信息完整性约束信息安全性有关信息数据库运行统计信息数据库物理设计设计步骤和内容、数据库物理结构设计:在具体的硬件环境、OS、DBMS约束下根据数据库逻辑设计结果设计合适的数据库物理结构。目标是存储空间占用少、访问效率高和维护代价低、一旦选定了硬件平台、OS和DBMS数据库的数据存储和存取方式等可用的物理模式也就随之确定了、数据库物理设计主要包括以下步骤:数据库逻辑模式调整:将数据库逻辑模式及其视图转换为DBMS支持的基本表和视图并利用DBMS提供的完整性机制设计业务规则文件组织与存取设计:配置基本表的文件组织形式据实际情况为基本表设计合适的存取方法和路径数据分布设计:安全模式设计:确定系统配置:物理模式评估:数据库逻辑模式调整、物理数据库设计首先需要根据数据库逻辑结构信息设计目标DBMS平台支持的基本表的模式信息这些模式信息代表了所要开发的具体目标数据库的结构这个过程称为数据库逻辑模式调整主要包括如下设计内容:实现目标数据库基本表和视图:采用目标DBMS所支持的建表方法设计基本表及其面向模型的完整性约束设计基本表业务规则DB文件组织与存取设计、分析事务的数据访问特性使用事务基本表交叉引用矩阵分析系统内数据库事务对各个基本表的访问情况确定事务访问了哪些基本表对这些基本表执行了何种操作并进一步分析各操作涉及到的基本表属性估计各事务的执行频率对每张基本表汇总所有作用于该表上的各事务的操作频率信息、了解并选择数据库文件结构如果数据库中的一个基本表中的数据量很少并且操作非常频繁该基本表可采用堆文件组织方式顺序文件支持基于查找码的顺序访问也支持快速二分查找如果用户查询是基于散列域值的等值匹配特别是如果访问顺序是随机的散列文件比较合适。但散列文件组织不适合以下情况:A基于散列值域的非精确查询B基于非散列域进行查询时B树和B树文件是实际数据库系统中使用非常广泛的索引文件结构适合于定义在大数据量基本表上、基于查找码的等值查询等如果某此重要而频繁的用户查询经常需要进行多表连接操作可考虑将这些基本表组织为聚集文件、设计存取路径:为数据库文件设计合理的物理存储位置为基本表设计索引机制:索引可以提高文件存取速度改善访问性能但索引由DBMS管理它的建立、维护需要一定的系统开销数据的操作会引起索引的重新调整还占用一定的存储空间可根据如下原则决定是否为一个基本表建立索引:A对于经常需要查询、连接、统计操作且数据量大的基本表可考虑建立索引而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引B一个基本表上除了可以建立一个聚集索引外还可以建立多个非聚集索引但索引越多对表内数据更新所需的开销越大对于一个更新频繁的表应少建或不建索引C索引可以由用户根据需要随时创建或删除以提高数据查询性能数据分布设计、不同类型数据的物理分布各种数据在系统中的作用不同使用的频率也不一样应根据实际使用情况放在合适的物理介质上使用频率低但数据量大的可以放在磁带中而使用频繁要求响应时间短的必须放在支持直接存取的磁盘存储介质上、应用数据的划分和分布根据数据的使用特征划分:可将基本表划分为频繁使用分区和非频繁使用分区分别存放在不同的磁盘上对前者可考虑建立B树等多层索引而后者不建立或只建立单层索引根据时间、地点划分分布式数据库系统中的数据划分:、派生属性数据分布派生属性指该属性的取值可根据表中其他属性的取值惟一确定对带有派生属性的基本表可采用两种实现方式:A将派生属性作为基本表内单独一列称为派生列B派生属性不出现在基本表中、关系模式的去规范化在数据库物理设计阶段可以对考虑数据库中某些NF、BCNF模式是否可以降低其规范化程度以提高查询效率这称为关系模式的去规范化处理但不满足NF的关系模式又可能导致数据库访问异常因此设计基本表时需在规范化和查询效率间权衡安全模式设计、系统安全设计是指为数据库服务器合法用户分配用户名和口令使其能够正常登录服务器访问所需的数据还可采用基于CA认证的系统安全控制机制、数据安全设计是指通过数据库系统视图机制和授权机制为用户对数据库对象访问的权限引用数据视图机制只给用户需求的那部分数据访问权限防止由合法用户造成信息泄密另外数据视图还可以防止基本表发生改变时影响用户的访问权限是允许用户对一给定的数据库对象可执行的操作数据库安全设计需要根据用户需求采用授权机制为用户分配合法访问的权限确定系统配置、要根据实际应用系统的运行情况配置系统参数物理模式评估、在设计过程中通过对时间效率、空间效率、维护代价和用户要求权衡考虑择优采用、评估物理数据库的方法完全依赖所选用的DBMS主要从定量估算各方案的存储空间、存取时间和维护代价入手年计算机等级考试四级数据库技术复习笔记()第七章数据库应用系统功能设计软件体系结构与设计过程软体体系结构、软件体系结构又称软件架构软件体系结构构件连接件约束。、构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统是组成软件的系统元素、连接件将不同的构件连接起来表示了构件间的相互作用、约束一般是对象连接时的规则或指明了构件连接的条件。、软件体系结构描述了软件系统的总体组织和层次结构、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等软件设计过程、概要设计定义:是建立软件系统的总体结构和模块间的关系定义各功能模块的接口设计全局数据库、规定设计约束、制定组装测试计划一个好的概要设计要求是:良好的总体结构、功能模块间较低的耦合度和较高的内聚度并尽量降低模块接口的复杂性可以采用层次结构图表示软件总体结构图中节点代表功能模块。、详细设计是细化概要设计产生的功能模块形成可编程的程序模块并用某种过程设计语言设计程序模块的内部细节为编写软件代码提供依据。可选用结构化设计方法、面向对象设计方法等、关于软件总体设计一些大的DBAS可根据逐步抽象和层次化原则将概要设计分解成两个步骤:A首先是软件总体结构设计即对软件需求进行分解B第二步是将每个子系统进一步划分为功能模块定义各模块的数据结构、相互间交互关系DBAS总体设计系统总体设计任务:是根据系统规划与分析结果特别是技术可行性分析以及系统需求规范确定系统总体框架作为后续设计活动的基础。、确定DBAS体系结构指将系统从功能、层次结构、地理分布等角度进行分解划分为多个子系统。定义各子系统应实现的功能设计全局控制明确各子系统间的交互和接口关系可以从功能角度进行分解也可以根据DBAS自身固有的层次结构特征进行分解将系统分解为多个子系统后需选择和设计合适的系统体系结构将这些子系统组织起来并设计它们之间的交互关系DBAS体系结构可采用一些通用体系结构也可根据DBAS所属的特定应用领域相关的体系结构。、软硬件造型和配置设计总体设计阶段需要对系统的软硬件平台、存储设备、操作系统、数据库管理系统等作出合理的选择并进行初步配置设计还需要选择系统开发采用的合适的中间件和开发工具确定开发模式和开发语言、应用软件总体设计根据系统体系结构确定相应的软件系统模块划分、功能分配选择合适的软件体系结构、业务规划初步设计软件总体设计、DBAS软件包括OS、DBMS、开发环境、中间件和应用软件、应用软件分为数据库事务和应用程序、数据库事务通过对数据库的直接操作实现数据管理和处理功能、应用程序一方面对数据库进一步加工处理或从中抽取新信息实现复杂的数据处理功能另一方面还可实现与数据库访问无关的功能、应用软件总体设计:从数据流图、事务规范和业务规则需求分析结果出发将系统分解为一系列子系统分配相应功能定义系统间协调交互机制进一步进行子系统结构设计将各子系统从功能上划分为:数据库事务模块和应用程序模块确定子系统、应用程序模块、数据库事务间的全局控制和调用关系并按体系结构框架组织起来。、总体设计得到的系统总体结构和分层模块结构可以用模块结构图表示、模块结构图是结构化程序设计中描述系统结构的一种图形化工具它定义了模块的名字、功能和接口并在模块结构图中反映出结构化设计思想。它只关心模块的外部特性与模块内部流程无关它由模块、调用、数据、控制和转接等于种基本符号组成客户服务器体系结构、基于CS体系结构的DBAS将DBMS数据管理功能与数据库应用相分离将DBMS数据库管理功能在客户端和服务器之间进行合理的分布和配置、数据库报务器完成DBMS的核心功能而客户端负责完成用户交互功能接收用户数据生成并向数据库报务器发出数据操作请求接收数据查询结果并通过客户端反馈给用户、两层CS结构的特点是:DBAS的数据管理和处理功能被分解并分布在客户端和服务器上服务器楞为多个客户端应用提供共享的数据管理功能客户端应用可通过网络访问多个不同数据源客户端除了完成人机交互功能外还需要完成面向应用的数据处理功能负荷重属于典型的“胖客户端”、三层浏览器服务器BS结构是一种互联网环境下的新型数据库应用系统结构它将数据处理功能分解并分布在表示层、功能层和数据层三层次上分别由WEB浏览器、WEB服务器和数据库服务器来实现其特点是:表示层位于客户端由WEB浏览器实现其功能单一没有其他应用程序属于典型的“瘦客户端”功能层位于WEB服务器实现面向具体应用领域的业务规则数据层位于数据库服务器通过DBMS完成具体的数据存储和存取等数据管理功能概要设计数据库事务概要设计、如数据处理需求分析的结果是数据流图则可将待设计的事务看作是程序采用软件工程中面向数据流的程序设计方法设计事务内部的数据处理流程和结构也就是设计事务处理逻辑过程包括:从数据流图中识别出该事务对应的子数据流图确定子数据流图中的信息流类型划定流界将子数据流图映射为事务的结构和处理流程即事务逻辑修正和细化事务设计识别事务所访问的数据库对象和数据库用户、如数据处理需求分析的结果表示为事务规范由于事务规范包括了事务名称、事务描述、访问的数据项、用户等信息可直接从事务描述出发根据具体应用领域的知识设计事务逻辑得到事务概要结果、一个完整的事务概要设计包括:事务名称、访问的关系表及属性、事务处理逻辑、事务用户、检查关系表对数据库事务的支持性:对每一个事务根据需求分析阶段的事务分析列出该事务所访问的各个数据项列出事务访问的数据项所在的关系表和对应的属性如事务访问的数据项同时出现在多个表中检查关联关系检查是否存在某些事务访问的一些数据项未出现在任何关系表中应用软件概要设计、应用软件概要设计按照逐步求精、模块化、信息隐藏和功能细化原则根据DBAS需求分析阶段得到的系统功能和业务规则描述在总体设计结构基础上将DBAS应用软件进一步细化为模块子模块组成软件的系统子系统模块子模块层次结构并对这些系统元素从结构、行为和数据三方面进行设计详细设计数据库事务详细设计、事务详细设计是从事务概要设计得到的事务流程出发在DBMS平台下采用事务实现机制和高级程序设计语言利用SQL语句和数据库访问接口在DBMS平台和开发环境下进一步细化事务设计设计具体的实现模式应用软件详细设计、根据概要设计中定义的各程序模块功能和输入输出数据需求结合具体的设计环境和机制设计各模块的内部处理流程和算法、数据结构、对外接口等人机界面设计、人机界面设计原则:用户应当感觉系统的运行始终在自己的控制之下保持用户与人机界面间的双向交流当系统发生错误或程序运行时间较长时用户界面应该为用户提供有意义的反馈信息应该忍受用户在使用过程中发生的各种操作错误并能够方便地恢复过来保证系统不受或少受影响应该遵循一定的标准和常规采取灵活多样的数据输入方式尽量减少用户数据输入负担、人机界面设计最好采用原形迭代法:初步设计用户界面细节设计原形设计与改进年计算机等级考试四级数据库技术复习笔记()第章关系数据库操作语言SQLSQL支持的数据类型数值型、准确型、近似型字符串型、普通编码字符串类型、统一编码字符串类型―Unicode编码、二进制字符串类型日期时间类型货币类型定义和维护关系表关系表的定义与删除、定义表CREATETABLE列级完整性约束定义,列级完整性约束定义„,表级完整性约束定义、列级完整性约束:NOT:取值非空DEFAULT:指定列的默认值形式:DEFAULT常量UNIQUE:列取值不重复CHECK:列的取值范围形式:CHECK约束表达式PRIMARYKEY:指定本列为主码FOREIGNKEY:定义本列为引用其他表的外码、删除表DROPTABLE修改表结构ALTERTABLE数据操作语言数据查询、查询语句的基本结构:SELECTFROMWHERE,GROUPBY,HAVING,ORGERBY比较:SELECTABCFROMTABLEAWHEREA确定范围:WHEREANOTBETWEEN初始值AND结束值确定集合:WHEREANOTIN‘A’‘A’„‘A’字符串匹配:WHEREALIKE四种:A下划线:匹配任意一个字符B百分号:匹配个或多个字符C:匹配中的任意一个字符D^:不匹配中的任意一个字符涉及空值的查询:WHEREAISNOT多重条件查询:AND条件必须全部为TRUE结果才为TRUEOR任一条件为TRUE结果即为TRUE对查询结果进行排序:ORDERBYAASC顺序|DESC逆序列别名:列名AS新列名消除取值相同的行:SELECTDISTINCTAFROMTABLEA使用聚合函数统计数据:SQL的聚合函数:ACOUNT*:统计表中元组的个数BCOUNTALL全部|DISTINCT无重复:统计本列非空列值的个数CSUM列名:计算列值的总和必须是数值型列DAVG列名:计算列值平均值必须是数值型列E列名:求列最大值FMIN列名:求列最小值对查询结果进行分组计算:A使用GROUPBYB使用HAVING子句、连接查询内连接:FROM表JOIN表ON连接条件自连接:一种特殊的内连接相互连接的表在物理上是同一张表但通过为表取别名的方法在逻辑上分为两张表外连接:输出不满足连接条件的元组格式:FROM表LEFT|RIGHTOUTERJOIN表ON连接条件、查询语句的扩展:合并多个结果集:SELECT语句UNIONSELECT语句„„使用UNION的两个基本规则:A所有查询语句中列的个数和列的顺序必须相同B所有查询语句中对应的数据类型必须兼容将查询结果保存到新表中:SELECT查询列表序列INTO新表名FROM数据源使用TOP限制结果集行数:TOPnpercentWITHTIESATOPn:表示取查询结果的前n行BTOPnpercent:表示取查询结果的前n行CWITHTIES:表示包括并列的结果使用CASE表达式:A简单CASE表达式:B搜索CASE表达式、子查询:如果一个SELECT语句是嵌套在一个SELECT、INSERT、UPDATE或DELETE语句中则称为子查询或内层查询包含子查询的语句称为主查询或外层查询使用子查询进行基于集合的测试形式:WHERE表达式NOTIN子查询使用子查询进行比较测试形式:WHERE表达式比较运算符子查询使用子查询进行存在性测试形式:WHERENOTEXISTS子查询数据修改、添加数据:INSERTINTO表名VALUE值列表使用插入单行语句时要注意:值列表中的值与列名表中的列按位置顺序对应要求它们的数据类型必须一致如果表名后边没有指明列名则值列表中的值的顺序必须与表中列的顺序一致且每一列均有值、更新数据:形式UPDATE表名SET列名表达式WHERE更新条件、删除数据::形式DELETEFROM表名WHERE删除条件索引、创建索引:CREATEUNIQUECLUSTERED|NONCLUSTEREDINDEX索引名ON表名UNIQUE:表示要创建的索引是唯一索引CLUSTERED:表示要创建的索引是聚集索引NONCLUSTERED:表示要创建的索引是非聚集索引、删除索引:DROPINDEX索引名视图定义视图、语法格式:CREATEVIEW视图名ASSELECT语句WITHCHECKOPTION、需要注意下列几点:在定义视图时要么指定全部视图列要么全部省略不写。如果省略了视图列名则视图的列名与查询语句的列名相同。但如下情况则要明确指出组成视图的所有列名:A、某个目标列不是单纯的属性名而是计算函数或列的表达式B、多表连接时选出了几个同名列作为视图的字段C、需要在视图中为某个列选用新的更合适的列名。WITHCHECKOPTION选项表示通过视图对数据进行增加、删除和更改操作时要保证对数据的操作结果要满足定义视图时指定的WHERE子句条件、视图通常用于查询数据也可修改基本表中的数据但不是所有的视力都可以这样。、定义单源表视图―视图数据可只取自一个基本表的部分行、列这样的视图行列与基本表行列对应这样定义的视图一般可以进行查询和更改数据操作、定义多源表视图―视图数据可以来自多个表中这样定义的视图一般只用于查询不用于修改数据。、在已有视图上定义新视图―可以在视图上再建立视图这时作为数据源的视图必须是已经建立好的。、定义带表达式的视图―在定义基本表时为减少数据库中的冗余数据表中只存放基本数据由基本数据经过各种计算派生出的数据一般是不存储的。所以定义视图时可以根据需要设置一些派生属性列在这些派生属性列中保存经过计算的值。这些派生属性由于在基本表中并不实际存在因此也称它们为虚拟列。包含虚拟列的视图也称为带表达式的视图。、含分组统计信息的视图―指定义视图的查询语句中含有GROUPBY子句这样的视图只能用于查询不能修改数据。删除视图、格式为:DROPVIEW视图的作用、简化数据查询语句、使用户能从多角度看到同一数据、提高了数据的安全性、提供了一定程度的逻辑独立性年计算机等级考试四级数据库技术复习笔记()来源:考试大【考试大:助你考试通关,掌握未来】年月日第章事务调度与并发控制事务与事务调度事务的概念、事务是构成数据库应用中一个独立逻辑工作单元的操作的集合也是访问并可能更新数据库中各种数据项的一个程序执行单元。数据库系统通过执行各种事务实现对数据库数据的操作管理和执行事务是DBMS的基本功能。事务的特性ACID特性、原子性Atomicity一个事务对数据库的所有操作是一个不可分割的工作单元这些操作要么全部执行要么一个也不执行。、一致性Consistency当一个事务独立执行时其执行结果应维护数据库的一致性即数据库不会因事务执行而受到破坏。数据库满足全部完整性约束处于正确的状态、隔离性Isolation当多个事务并发执行时系统应保证一个事务的执行结果不受其他事务的干扰事务并发执行结果与这些事务串行执行时的结果是一样的、持久性Durability一个事务一旦成功完成全部操作则它对数据库的所有更新就永久地反映在数据库中即使以后数据库发生了故障事务调度、一个事务中各操作的执行顺序和执行时机一方面取决于事务自身内部逻辑另一方面也受DBMS中事务调度机制的控制。当多个事务并发执行时DBMS必须采用合适的并发调度机制合理安排各个事务执行顺序以保证事务的ACID特性。、调度分为串行调度和并发调度串行调度的特点是一个事务的所有操作都执行完后才开始执行另一事务不存在事务操作的交叉执行不同事务操作的交叉执行称为并发调度DBMS交叉执行来自多个事务的各个操作以提高数据库系统的性能。可串行化调度、事务的串行调度能够产生正确的结果但执行效率低如果并发调度S等价于某一定义在TS上的串行调度那么S称为可串行化调度、给定两个定义在事务集TS上的的调度S和S’如果可以通过交换S中一系列非冲突操作的执行顺序将S转换为S’则称S与S’是冲突等价。、如果定义在事务TS上的并发调度S冲突等价于事务集TS上的某个串行调度S’则称S是冲突可串行的。、在引入冲突可串行概念后判断一个并发调度是否正确可以归结为判断该调度是否冲突可串行的。基于锁的并发控制技术锁的概念、对数据库系统中每个可能被多个事务并发访问的数据项设置锁锁代表了对该数据项的访问权限。即事务T在访问数据项Q前须向DBMS申请获得设置在Q上的锁如成功则T获得对Q的访问权T对Q操作完成后释放所占用的锁允许其他事务获得该锁并访问Q在T释放设置在Q上的锁前其他事务不能访问Q。、锁的类型有两种:互斥锁X锁:若T获得Q上的X锁则T可以对Q读写其他事务不能再对Q进行任何操作直到T释放Q上的锁共享锁S锁:若T获得Q上的S锁则T可以对Q进行读取操作但不可以修改同时允许其他事务再申请获得Q上的S锁与T并行读取Q但在T释放Q上的S锁前其他事务不能对Q做任何修改加锁协议、保证数据一致性的三级加锁协议:级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁直到事务结束才释放事务结束包括正常结束和非正常结束但事务如果只对Q读而不写则不需对Q加锁级加锁协议是在级加锁协议基础上要求T在读取Q前必须先对其加S锁读完后立即释放S锁级加锁协议是在级加锁协议基础上要求在读取Q前必须先对其加S锁但需等到事务结束后才释放S锁。两阶段锁协议、两阶段锁PL基本原理如下:每个事务的执行过程划分为两个阶段加锁阶段和解锁阶段在加锁阶段事务可以申请获得任何数据项上的任何类型的锁但是不允许释放任何锁在解锁阶段事务可以释放任何数据上的任何类型的锁但是不能再申请任何的锁每个事务开始执行后就进入加锁阶段当第一次释放锁后即进入解锁阶段。锁粒度、施加X锁和S锁的数据项大小称为锁粒度。、锁粒度越大系统中可以被锁的数据项就越少事务的并发执行度也越低但同时系统的开销也小相反当锁粒度越小时事务的并发度高但系统开销也较大死锁处理死锁预防、一次加锁法该方法要求每个事务在开始时必须将需要访问的数据项全部加锁否则不能执行下去也就是要求事务必须一次性地获得对需要访问的全部数据项的访问权该方法的缺点是:多个数据项会被一个事务长期锁定独占导致其他事务无法及时访问这些数据项降低了系统的并发程度由于很难事先精确知道每个事务在执行过程中需要加锁的全部数据项只能扩大加锁范围将事务执行时可能访问的所有数据项全部加锁进一步降低了系统的并发程度、顺序加锁法该方法对数据库中事务访问的所有数据项规定一个加锁顺序每个事务在执行过程中必须按此顺序对所需数据加锁该方法的缺点:数据库中需要加锁的数据项非常多并且不断变化维护这些数据项的加锁顺序很困难代价非常大事务访问的数据项有时无法事先完全确定有时很难要求事务按照固定的顺序对这些数据项进行加锁死锁检测与恢复、死锁检测可以利用事务等待图进行死锁检测数据库系统出现死锁当且仅当事务等待图中包含回路而且回路中的所有事务就是处于死锁的事务数据库并发控制子系统动态地构造和维护事务等待图并周期地检测等待图如图中有回路则说明系统中出现了死锁、死锁恢复当发现死锁存在时系统可以通过死锁恢复机制将系统从死锁中解救出来通常是选取一个或几个死锁事务撤消这些事务释放其所有的锁消除事务等待图中的回路从而解决了系统死锁问题如果决定撤消哪个事务或哪些事务有两个原则:A、选择处于最多条回路交点处的事务B、选择具有最少撤消代价的事务。活锁处理、如果一个事务在系统不存在死锁的情况下长期得不到DBMS的获批处于长时间等待中的情况叫活锁为了避免活锁DBMS可采用先来先服务的原则解决。年计算机等级考试四级数据库技术复习笔记()第章数据库的实施、运行和维护数据库的实施定义数据库结构、为了实现数据库的逻辑结构设计和物理结构设计结果必须建立实际的数据库即在确定了数据库的逻辑结构和物理结构后开发人员使用具体的DBMS提供的数据定义语言DDL来严格描述数据库结构。数据装载、完成了数据库定义后还须装入各种实际数据、由于数据的来源不同其组织方式、结构、格式会不同可能出现源数据与新数据库结构不相容、我们可以先将源数据提取出来存入计算机然后分类转换成为符合新数据库结构的数据再存入数据库具体步骤如下:筛选数据转换数据格式输入数据校验数据、为完成初始数据的录入通常需要设计一些数据录入子系统由计算机辅助完成入库工作对某些纸质数据或数据量少的数据可由人工一条条进行录入而对于数据量大的数据可考虑采用批量数据装载程序来实现。编写与调试应用程序、只有当数据库的结构建立好后才能开始应用程序的编写和调试、可使用模拟数据进行程序的调试。数据库的试运行、应用程序调试完成并已有一小部分数据入库就可以开始数据库的试运行也称联合调试、试运行十分重要因为:检测应用程序在接近真实的环境中运行是否符合设计要求检测系统设计的性能和评价。、试运行的工作主要有两个:功能测试:运行数据库应用程序执行各种操作测试程序是否满足设计要求找出不足改进现有程序直到符合设计要求性能测试:测量系统的性能指标分析是否符合设计目标。数据库的运行和维护、数据库设计并试运行后如试运行结果符合设计目标数据库就可以真正投入运行了同时也标志着开发任务的基本结束和维护工作的开始、维护工作包括:数据库的转储与恢复数据库安全性和完整性控制数据库性能的检测与改善数据库的重组和重构。监控分析、数据库的监控分析:指管理员借助相应工具在数据库运行过程中监测数据库系统的运行情况掌握数据库当前或以往的负荷、配置、应用和其他相应信息并对监测数据进行分析分析数据库的性能参数和环境信息评估系统的整体运行状态为系统的安全运行和性能调优提供依据并提出相应的改善措施帮助管理人员尽早清除数据库的性能隐患、监控分析的目的:保证数据库系统安全、稳定地运行以便在发现不正常的情况时及时对系统进行维护、根据实现的方法不同监控的机制分为:自动监控机制手动监控机制。、根据监控的对象不同监控分为:对数据库架构体系的的监控对数据库性能的监控。空间管理、在数据库运行过程中对数据库空间使用情况特别是空间的增长情况进行监控并采取相应的措施对空间进行管理非常重要、空间管理主要包括:创建数据库空间更改空间大小删除空间修改空间状态新建、移动、关联数据文件等参数调整、外部调整:CPU:当数据库操作对CPU的要求超过数据库服务器的CPU性能时数据库性能就受到CPU的限制使数据库操作变慢如业务高峰时CPU的使用量仍然很低说明服务器CPU资源充足网络:大量的SQL数据在网络上传输会导致网速变慢调整网络设备也可以一定程度上提高数据库的性能、调整内存分配、调整磁盘IO、调整竞争:修改参数以控制连接到数据库的最大进程数减少调试进程的竞争减少多线程服务进程的竞争减少重做日志缓冲区竞争减少回滚段竞争。查询优化、合理使用索引:索引是数据库中重要的数据结构根本目的就是为了提高查询效率使用原则如下:经常在索引中作为条件被使用的列应为其建立索引频繁进行排序或分组即进行groupby或orderby操作的列应为其建立索引一个列的值域很大时应为其建立索引如果待排列的列有多个应在这些列上建立复合索引可以使用系统工具来检查索引的完整性必要时进行修复。、避免或简化排序:因为磁盘排序的开销很大当能够利用索引自动以适当的次序产生输出时优化器就可以避免不必要的排序步骤以下是一些影响因素:由于现有的索引不足导致排序时索引中不包括一个或几个等待排序的列groupby或orderby子句中列的次序与索引的次序不一样排序的列来自不同的表。为了避免不必要的排序就要正确地增建索引合理地合并数据库表。如排序不可避免那么应试图简化它。、消除对大型表行数据的顺序存取:在嵌套查询中对表的顺序存取对查询效率可能产生致命的影响解决方法就是对连接的列进行索引。还可以使用并集来避免顺序存取。、避免相关子查询:查询嵌套层次越多效率越低应尽量避免子查询如不可避免那么要在子查询中过滤尽量多的行、避免困难的正规表达式:避免含MATCHES和LINK关键字的正规表达式、使用临时表加速查询:把表的一个子集进行排序并创建临时表有时能加速查询、用排序来取代非顺序磁盘存取、不充分的连接条件、存储过程、不要随意使用游标、事务处理。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/39
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部