免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2023年上半年 数据库系统工程师 下午试卷 案例
  第5题      
  知识点:   事务   AR   安装工作   编码   磁盘   恢复   日志文件   数据库   数据库系统

 
某装备的组装过程需要经过多道程序,由于工作空间狭小,同时只能有一人在操作间工作,所以在每道工序之间需要先完成使用配件的出库后,操作人员携带配件到操作间进行安装工作,安装过程中需要扫描配件编码以自动记录该配件的安装情况。
假使存在三个事务用于处理某一类配件的某次安装实施,事务T1负责出库登记,T2负责安装登记,T3负责将未使用的配件重新入库。所有三个事务执行完成后,T1出库的数量应等于T2安装的数量与T3重新入库的数量之和。数据项I记录配件的库存数量,数据项]记录成功安装的数量。某次组装过程出库了12个配件,安装了6个。假设数据库系统采用检查点机制对故障进行恢复,部分日志文件如表5-1所示。日志记录内容中:<Ti,START>表示事务Ti 开始执行,<Ti,COMMIT>表示事务Ti提交,<Ti,D,V1,V2>表示事务 Ti将数据项D的值由V1 修改为V2。例如:<T1,D,22,3>表示事务T1将数据项的数值从 22 修改为3。<Ti, D.V>表示将事务 Ti回滚数据项D的值回滚到V。<Ti,abort>表示事务Ti回滚结束。CRASH表示系统磁盘出错。请回答以下问题。

 
问题:5.1   请用100字以内的文字简要说明数据库系统常见故障类型,并说明表5-1中的日志记录表明数据库出现哪种类型的故障。
 
问题:5.2   请给出系统恢复时需要重做(Redo)的事务列表和需要撤销(Undo)的事务列表
 
问题:5.3   根据题干中所描述的业务逻辑,请填写表5-1日志记录中的空白(a);请给出 Undo 恢复的补偿日志记录,填写空白(b)和(c)。
 
 
 

   知识点讲解    
   · 事务    · AR    · 安装工作    · 编码    · 磁盘    · 恢复    · 日志文件    · 数据库    · 数据库系统
 
       事务
               概述
               事务(Transaction)是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行。
               事务是一个操作序列,这些操作“要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可包含多个事务。
               事务通常由数据库操纵语言或其他高级语言(如SQL、CoBOL、C、C++、Java等)书写的用户程序来实现。一个事务由应用程序的一组操作序列组成,它以BEGIN TRANSACTION语句开始,以END TRANSACTION结束语句。
               事务定义的语句如下:
               (1)BEGIN TRANSACTION:事务开始。
               (2)END TRANSACTION:事务结束。
               (3)COMMIT:事务提交。该操作表示事务成功地结束,它将通知事务管理器该事务的所有更新操作现在可以被提交或永久地保留。
               (4)ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。
               典型的例子是银行转账业务。对“从账户A转入账户B金额x元”业务,站在顾客角度来看,转账是一次单独操作;而站在数据库系统的角度它至少是由两个操作组成的,第一步从账户A减去x元,第二步给账户B加上x元。下面是银行转账事务的伪代码:
               
               SQL中事务的开始与结束
               SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务,SQL中的Commit work和Rollback work语句之一会结束一个事务。
               (1)Commit work:提交当前事务。这意味着将该事务所做的更新在数据库中永久保存。一旦事务被提交后,一个新的事务自动开始。
               (2)Rollback work:回滚当前事务。这意味着将撤销该事务对数据库的更新。这样,数据库恢复到该事务执行第一条语句之前的状态。
               需要注意的是,若事务已执行了Commit work,就不能用Rollback work来撤销。数据库系统能保证在发生诸如某条SQL语句错误、断电、系统崩溃的情况下,若事务还没有执行Commit work,则所造成的影响将被回滚。对断电、系统崩溃的情况,回滚是在系统重新启动时进行。
 
       AR
        (1)AR的定义。增强现实技术(Augmented Reality,AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。这种技术1990年提出。随着随身电子产品CPU运算能力的提升,预期增强现实的用途将会越来越广。
        (2)AR的特点。
        ①真实世界和虚拟世界的信息集成;
        ②具有实时交互性;
        ③是在三维尺度空间中增添定位虚拟物体。
        (3)AR的营销价值。
        ①虚实结合,震撼体验。借助AR的虚实交互体验,增强产品发布会的趣味性和互动性。另外借助AR技术,可以展示模拟现实条件无法表现的细节和创意,使消费者更直观形象地感知产品,提升对企业品牌形象的理解,尤其适用于工艺复杂、技术含量高、价值相对较高的产品。
        ②体验营销。AR技术实现品牌和消费者零距离接触,在游戏或互动中潜移默化地传达产品内容、活动及促销信息,加深消费者对品牌的认可和了解。AR技术借助手机摄像头可以生动地再现产品使用场景,增强用户的购物体验,解决电子商务当下无法试用、试穿的瓶颈,给我们生活带来极大地便利和乐趣。
        ③与微博、SNS等社交媒体整合。利用AR技术与微博、SNS等社交媒体的融合打通,实现从体验营销到自营销,最终形成消费者对产品和品牌的信任和钟爱,满足了消费者购买咨询、体验和分享的需求,促成消费者形成良好的口碑并促进购买。
 
       安装工作
               网络实施过程
               网络实施是在网络设计的基础上,进行设备的购买、安装、调试、培训和系统切换等工作。网络实施包括以下步骤。
               1)工程实施计划
               安装网络设备之前,需要准备一个工程实施计划,列出需安装的项目、安装费用、安装负责人等,以便控制投资和进度,按进度要求完成安装任务。工程实施计划必须包括网络实施阶段的设备验收、人员培训、系统测试以及网络运行维护等具体事务的处理,必须合理安排工程实施的时间,并充分调动有关人员的积极性。
               2)网络设备到货验收
               订购的网络设备到货后,在安装调试之前,必须先进行严格的功能和性能测试,以保证购买的产品能很好地满足用户的需要。
               3)设备安装
               网络系统的工程安装和调试要由专门的技术人员负责。安装项目一般可分为布线系统、网络设备、主机服务器、系统软件、应用软件等几个部分,不同部分应由专门的工程师进行安装调试。
               4)系统测试
               系统安装完毕,要进行系统测试。系统测试是保证网络安全可靠运行的基础。
               5)系统试运行
               系统调试完毕后,进入试运行阶段。这一阶段的任务主要是验证系统在功能上、性能上是否达到预期目标,若没有达到,则需要不断调整直至达到用户要求。
               6)系统切换
               系统经过一段时间的试运行,达到稳定可靠的水平,就可以进行系统切换了。系统切换是指从原有人工或计算机系统上迁移到新平台上工作。具体有三种切换方法:双运行方式(两种运行方式同时运行)、逐步替代法(用新系统逐步替代原有的网络系统)和直接切换法(停止旧系统,启动新系统)。显然,这三种方法的可靠性和成本各不相同,应视具体情况而定。
               7)人员培训
               对有关人员的培训是网络建设的重要一环,也是保证业务正常开展的一个重要因素。一个规模大、结构复杂的网络系统往往需要网络管理员来维护网络、协调网络资源的使用。
               结构化综合布线系统
               结构化综合布线系统(SCS)是一种模块化、灵活性极高的建筑物和建筑群内的信息传输系统。它是一种集成化的通用传输系统,利用双绞线或光缆来传输建筑物内的多种信息。
               在现代化的大型建筑中,除计算机网络系统以外,通常还会有电话系统、楼宇控制系统等各种专业布线系统。传统的做法是:为不同的专业系统配置不同的线缆、插座及接头等不同的布线材料来构成各自的网络;连接这些不同网络的插头、插座及配线架互不兼容,只要变动终端机的位置,就得重新布放新的线缆,安装新的插座。在这种传统的布线方式下,因办公室的重新规划及办公设备的变更而导致的布线系统的变更要耗费大量的金钱和时间,同时,对于布线系统的日常维护和管理、故障的检查和排除都不太方便。
               为解决传统布线方式中的种种弊端,工业界推出了结构化综合布线系统。SCS将所有的语音、数据、图像及监控设备的布线组合在一套标准的布线系统上,采用统一的线缆、插头、插座及配线架,当终端机的位置需要变动时,只需将其插入新地点的插座上,然后做一些简单的跳线即可,不需要再布放新的线缆,也不需要再安装新的插孔。另外,SCS采用星型结构,系统的管理维护及故障的检查和排除也非常方便。SCS以其高度的灵活性及多元化服务越来越受到人们的重视。
               SCS可以划分为以下6个子系统。
               ◆工作区子系统(用户端子)。
               ◆水平布线子系统。
               ◆干线子系统。
               ◆设备间子系统。
               ◆管理子系统。
               ◆建筑群子系统。
               1)工作区子系统
               工作区子系统是结构化综合布线系统中将用户的终端设备连接到布线系统的子系统。工作区子系统所包含的硬件包括信息插座、插座盒(或面板)、连接软线以及适配器或连接器等连接附件。
               工作区是一个独立的需要设置终端设备的区域,它的服务面积一般按5~10m2估算,每个工作区设置一个电话插座和一个计算机插座。信息插座是终端设备与水平子系统连接的接口,8针模块化信息插座是为所有的综合布线系统推荐的标准I/O插座。
               信息插座的数量一般由使用者的数量决定,如果使用者的数量不能确定,有一些经验值可供参考。根据经验,在办公环境下一般可考虑9m2设置一个工作区,安装一对信息插座(一个接电话,一个接计算机)。但这仅是一个参考,在具体设计和施工过程中,设计单位和用户单位应根据具体情况灵活掌握。
               2)水平布线子系统
               水平布线子系统是结构化综合布线系统中连接用户工作区与布线系统主干的子系统。水平布线子系统由每层配线间至信息插座的配线电缆和工作区用的信息插座等组成。在结构化综合布线系统中,水平布线子系统起着支线的作用,它将所有用户端通过一些连接件连接到配线设备上。
               水平布线方式受到很多因素的影响,常用的布线方式大致有两种:一种是直接铺设管线方式,它采用星状结构,利用金属线槽或金属管从布线系统的干线接线间或卫星接线间直接引到每个信息点;另一种是线槽管道布线法,通常是在天花板内安装线槽,再用管线从线槽引到每个插座。
               在新建建筑中,布线系统的设计应在设计大楼的图纸时考虑,并融进大楼的弱电图中,以便在施工过程中暗铺相关的线槽和管线,预留墙面出口,安装插座底盒。
               3)干线子系统
               干线子系统是结构化综合布线系统中连接各管理间、设备间的子系统,又称垂直子系统。干线子系统是综合布线系统的骨干,包括以下几个方面。
               ◆供干线电缆走线用的垂直或水平通道。
               ◆设备间与网络接口之间的连接电缆。
               ◆设备间与建筑群子系统之间的连接电缆。
               ◆干线接线间与各卫星接线间之间的连接电缆。
               ◆主设备间与计算机中心之间的电缆。
               综合布线系统的干线可根据距离的远近和用户对传输速率及传输质量的要求,选择大对数双绞线或光缆。一般在楼内的语音通信采用3类的大对数双绞线作为主干;数据通信可以采用高品质的5类双绞线,也可以采用光缆;如果电磁干扰严重,则推荐采用光缆作为数据主干。在做干线子系统的设计时,首先要确定每一层楼的干线需求,总结出整座楼的干线总体需求,确定干线电缆的种类及其大小尺寸,然后确定干线电缆的路由通道。
               干线的路由通道有两大类,即封闭型和开放型。开放型通道通常是指在建筑物的地址集中安装大型通信设备的场所,如PABX(自动用户小交换机)、大型计算机、计算机网络通信中枢等。
               4)设备间子系统
               设备间子系统主要用来安放网络关键设备,地位十分重要。并非每一个综合布线系统都有设备间子系统,但在大型建筑物中一般是有的,而且有时还不止一个。设备间子系统中的电话、数据、计算机主机设备及其保安配线设备宜设在一个房内。必要时,也可以分别设置,但程控交换机及计算机主机房距离设备间不宜太远。设备间的位置及大小应根据设备的数量、规模、最佳网络中心等内容综合考虑确定。在设备间子系统的设计和安装过程中,还需要综合考虑配电系统(不间断电源UPS)和安全因素(设备接地等)。
               5)管理子系统
               管理子系统是结构化综合布线系统中对布线电缆进行端接及配线管理的子系统。
               管理子系统通常设置在一幢大楼的中央设备机房和各个楼层的配线间,一般由配线架和相应的跳线组成。通过管理子系统,用户可以在配线架上灵活地更改、增加、转换和扩展线路,而不需要专门的工具或专业的技术人员。正是通过这些功能,结构化综合布线系统才具有传统布线无法比拟的开放性、扩展性和灵活性。
               6)建筑群子系统
               建筑群子系统是结构化综合布线系统中由连接楼群之间的通信传输介质及各种支持设备组成的子系统。建筑群子系统也称为户外子系统,其传输介质除了各种有线手段之外,还包含其他无线通信手段,如微波、无线电通信等。
               户外电缆在进入大楼时通常在入口处经过一次转接接入户内系统,在转接处可以加上电器保护设备。现代化电话通信系统中的通信线路在进入楼群时一般都考虑这一点,主要是避免因雷击或与高压线接触而给人和设备带来的损失。建筑群子系统的布线方式有以下几种:地下管道敷设方式、直埋沟内敷设方式和架空等。不同方式各有其优缺点。
               结构化综合布线方面的标准有EIA/TIA 568A和EN 50173,分别是北美和欧洲标准。它们都规定利用铜介质双绞线的特性实现数据链路的平衡传输,只是在抗电磁干扰要求方面有差异。ISO/IEC 11801是1995年由ISO确定的国际标准。我国相关规范如下。
               ◆GB/T 50311-2000《建筑与建筑群综合布线系统工程设计规范》。
               ◆GB/T 50312-2000《建筑与建筑群综合布线系统工程验收规范》。
               ◆GB 2887-89《计算站场地技术条件》。
               ◆GB 50174-93《电子计算机机房设计规范》。
               ◆GB 9361-88《计算站场地安全要求》。
               网络主干设备安装调试
               在网络布线工程完工且验收合格后,一旦选配的局域网主干设备到货,就进入了网络主干构建阶段。构建从设备安装调试开始,通常由设备供应商派出的技术人员进行。网络管理员的任务是在参加设备安装调试工作的同时尽快熟悉系统构建的操作,并且把好安装调试质量关。
               网络主干交换设备安装调试的步骤通常如下。
               1)拆箱检验
               网络管理员与设备供应商共同打开硬件设备的包装箱,确认其中的设备符合订购要求,确认包装中的内容与装箱单一致,确认设备在运输过程中没有受损,确认所配置的软件、说明书和附件齐备。
               2)设备安装
               网络主干使用的交换机通常都是机架式设备,配备带有风扇的专门机柜。将交换机通过支架安装固定在机柜内。注意:要确认电源插座的电压和设备卡上规定的电压相符,连接好设备电源。
               3)连接网络线缆
               交换机上常见的双绞线通信端口有两种:一种是供直接连接用户设备的直通电缆端口;另一种是供与其他交换机连接的级联端口。线缆用的都是RJ-45插头,安装时要注意看说明书。
               配备千兆以太网的光纤接口交换机,需要使用不同的千兆以太网接口转换器(GBIC),分别提供对100Base-LX、1000Base-SX和1000Base-LH等单模光纤和多模光纤使用长波/短波激光信号传输的支持。GBIC使用SC(方型接口)类型的光缆插头,光缆另一端使用的插头类型要与所连接的设备匹配。注意:使用光纤跳线时,光纤类型要与GBIC支持的光纤类型匹配。最后根据网络设计方案将交换机网络线缆连接好。
               4)连接交换机控制台设备
               交换机通常都提供一个串行接口,网络管理员可以通过该接口连接计算机终端设备,监控、配置、调试和管理交换机。通常,技术人员通过交换机配件中提供的转换线缆,将一台笔记本电脑或台式计算机连接到交换机上标识为控制台的串行口,在用作控制台的计算机上启动终端仿真程序。这种管理方式的优点在于无论交换机是否与网络连通,都可以通过计算机进行配置管理操作。
               5)加电调试
               在上述准备工作完成后,可以打开交换机电源开关,观察加电自检。通常加电后交换机所有端口的指示灯都闪亮,然后按照设备内置的程序进行硬件检测。在检测时各种指示灯会不断地变化状态,报告检测的进展情况。同时在控制台计算机屏幕上有文字显示。设备加电自检后显示的具体内容随设备的不同而各异,需要仔细阅读说明书。如果一切与说明书所示的情况一样,则表示加电自检通过。
               6)主干设备参数配置
               在完成了局域网主干设备的安装调试,设备自检正常,网络线缆连接完毕后,就进入了网络主干设备参数配置阶段。对于一个仅用于小型办公室环境的简单局域网来说,如果数据通信仅限于第2层交换,接入层交换机又没有需要上连的主干交换机,设备提供的默认参数往往就可以满足联网要求,将入网设备连接到交换机的端口后,局域网就可以立即开始工作了。
               但是,对于一个具有多个层次且结构复杂的局域网而言,必须在完成对所有构成网络主干的交换机的系统参数配置后,局域网才能够正常工作。
               通常在进行网络主干设备配置前,应该制订一个计划,并且将计划以文档形式确认下来,画出网络布局示意图。在计划中,应该对各个设备的名称、访问密码、设备地址、设备模块和网络接口配置、设备链路的使用、设备上运行的网络协议和网络管理工作站等做出规定。
               进行交换机的参数配置通常有两种途径:通过与交换机控制台端口连接的计算机作为本地控制台进行配置和通过网络登录作为远程控制台进行配置。
               实施注意事项
               在网络实施任务中的注意事项如下。
               ◆选择资质合格的施工单位。
               ◆加强工程协调。
               ◆照顾后续施工步骤。
               ◆把好产品关。
               ◆把好工程质量关。
               ◆特别关注光纤布线。
               ◆注意布线系统的防火。
               ◆重视屏蔽布线系统的接地问题。
               在布线实施的过程中,施工部门必须对所安装的线缆系统进行相关标准的测试,以保证质量的可靠性。
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       磁盘
        在磁表面存储器中,磁盘的存取速度最快,且具有较大的存储容量,是目前广泛使用的外存储器。磁盘存储器由盘片、驱动器、控制器和接口组成。盘片的两面用来存储信息。驱动器用于驱动磁头(读/写头)沿盘面作径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,通常是5400~15000r/min(Revolution Per Minute,RPM),并且控制数据的写入和读出。控制器接收主机发来的命令,将它转换成磁盘驱动器的控制命令,并实现主机和驱动器之间数据格式的转换及数据传送,以控制驱动器的读/写操作。一个控制器可以控制一台或多台驱动器。接口是主机和磁盘存储器之间的连接逻辑。
        磁盘存储器也称为硬盘存储器。硬盘存储器具有存储容量大,使用寿命长,存取速度较快的特点。硬盘存储器的硬件包括硬盘控制器(适配器)、硬盘驱动器以及连接电缆。硬盘控制器(Hard Disk Controller,HDC)对硬盘进行管理,并在主机和硬盘之间传送数据。硬盘控制器以适配卡的形式插在主板上或直接集成在主板上,然后通过电缆与硬盘驱动器相连。硬盘驱动器(Hard Disk Drive,HDD)中有盘片、磁头、主轴电机(盘片旋转驱动机构)、磁头定位机构、读/写电路和控制逻辑等。
        为了提高单台驱动器的存储容量,在硬盘驱动器内使用了多个盘片,它们被叠装在主轴上,构成一个盘组;每个盘片的两面都可用作记录面,所以一个硬盘的存储容量又称为盘组容量。
        硬盘的接口方式可以说是硬盘另一个非常重要的技术指标,这点从SCSI硬盘和IDE硬盘的巨大差价就能体现出来,接口方式直接决定硬盘的性能。现在最常见的接口有IDE(ATA)和SCSI两种,此外还有一些移动硬盘采用了PCMCIA或USB接口。
        .IDE(Integrated Drive Electronics):IDE接口最初由CDC、康柏和西部数据公司联合开发,由美国国家标准协会(ATA)制定标准,所以又称ATA接口。普通用户家里的硬盘几乎全是IDE接口的。IDE接口的硬盘可细分为ATA-1(IDE)、ATA-2(EIDE)、ATA-3(Fast ATA-2)、ATA-4(包括UItraATA、Ultra ATA/33、Ultra ATA/66)与Serial ATA(包括Ultra ATA/100及其他后续的接口类型)。基本IDE接口数据传输率为4.1Mb/s,传输方式有PIO和DMA两种,支持总线为ISA和EISA。后来为提高数据传输率、增加接口上能连接的设备数量、突破528MB限制及连接光驱的需要,又陆续开发了ATA-2、ATAPI和针对PCI总线的FAST-ATA、FAST-ATA2等标准,数据传输率达到了16.67MB/s。
        .小型计算机系统接口(Small Computer System Interface,SCSI):SCSI并不是专为硬盘设计的,实际上它是一种总线型接口。由于独立于系统总线工作,所以它的最大优势在于其系统占用率极低,但由于其昂贵的价格,这种接口的硬盘大多用于服务器等高端应用场合。
 
       恢复
        数据恢复有3个步骤。
        (1)反向扫描文件日志,查找该事务的更新操作。
        (2)对事务的更新操作执行逆操作。
        (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
 
       日志文件
        事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中,这种文件就称为日志文件。对于任何一个事务,事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。从事务动作开始,事务日志就处于记录状态,事务执行过程中对数据库的任何操作都记录在内,直到用户提交或回滚后才结束记录。
        日志文件是用来记录对数据库每一次更新活动的文件,在动态备份方式中,必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库;在静态备份方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。
        例如,在热备份期间的某时刻t1,系统把数据A=100备份到了磁带上,而在时刻t2,某一事务对A进行了修改使A=200。备份结束,后备副本上的A已是过时的数据了。为此,必须把备份期间各事务对数据库的修改活动登记下来,建立日志文件。这样,后备副本加上日志文件就能把数据库恢复到某一时刻的正确状态。
        事务在运行过程中,系统把事务开始、事务结束(包括COMMIT和ROLLBACK),以及对数据库的插入、删除、修改等每一个操作作为一个登记记录存放到日志文件中。每个记录包括的主要内容有:执行操作的事务标识、操作类型、更新前数据的旧值(对插入操作而言此项为空值)、更新后的新值(对删除操作而言此项为空值)。登记的次序严格按并行事务操作执行的时间次序,同时遵循“先写日志文件”的规则。写一个修改到数据库中和写一个表示这个修改的日志记录到日志文件中是两个不同的操作,有可能在这两个操作之间发生故障,即这两个写操作只完成了一个,如果先写了数据库修改,而在日志记录中没有登记这个修改,则以后就无法恢复这个修改了。因此,为了安全,应该先写日志文件,即首先把修改记录写到日志文件上,然后再写数据库的修改。这就是“先写日志文件”的原则。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       数据库系统
        简单地说,数据库系统就是基于数据库的计算机应用系统。这样一个系统包括以下内容。
        ①以数据为主体的数据库。
        ②管理数据库的系统(DBMS)。
        ③支持数据库系统的计算机硬件环境和操作系统环境。
        ④管理和使用数据库系统的人——数据库管理员。
        1)数据库的定义和特征
        数据库,顾名思义就是存放数据的仓库,这种想当然的理解是不准确的。数据库对应的英文单词是DataBase,如果直译则是数据基地;而数据仓库则另有其词DataWarehouse。所以数据库和数据仓库不是同义词,数据仓库是在数据库技术的基础上发展起来的又一新的应用领域。
        数据库技术发展到今天已经是一门成熟的技术,但却没有一个被普遍接受的、严格的定义。数据库是相互关联数据的集合,这是大家公认的数据库的基本特征之一。下面一段话概括了数据库应该具备的一些特征,也可以把它作为数据库的定义。
        数据库是相互关联数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
        (1)相互关联的数据集合。数据库中的数据不是孤立的,数据与数据之间是相互关联的。也就是说,在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。比如在学籍管理中,有学生和课程两类数据,在数据库中除了要存放这两类数据之外,还要存放哪些学生选修了哪些课程或哪些课程由哪些学生选修这样的信息,这就反映了学生数据和课程数据之间的联系。
        (2)用综合的方法组织数据。数据库能够根据不同的需要按不同的方法组织数据,如可以用顺序组织方法、索引组织方法、聚集(Cluster)组织方法等。
        (3)低冗余与数据共享。由于在数据库技术之前,数据文件都是独立的,所以任何数据文件都必须含有满足某应用的全部数据。比如,人事部门有一个职工文件,教育部门也有一个职工文件,两个部门的职工文件中都有"职工基本情况"的数据,也就是说这一部分数据是重复存储的,如果还有第三、第四个部门也有类似的职工文件,那么重复存储所造成的空间浪费是很大的。在数据库中,可以共享类似"职工基本情况"这样的共用数据,从而降低数据的冗余度。
        (4)数据具有较高的独立性。数据独立性是指数据的组织和存储方式与应用程序互不依赖、彼此独立的特性。在数据库技术之前,数据文件的组织方式和应用程序是密切相关的,当改变数据结构时,相应的应用程序也必须随之修改,这样就大大增加了应用程序的开发代价和维护代价。而数据库技术却可以使数据的组织和存储方法与应用程序互不依赖,从而大大降低应用程序的开发代价和维护代价。
        (5)保证数据的安全、可靠。数据库技术要能够保证数据库中的数据是安全、可靠的。数据库要有一套安全机制,以便可以有效地防止数据库中的数据被非法使用或非法修改;数据库还要有一套完整的备份和恢复机制,以便保证当数据遭到破坏时(软件或硬件故障引起的),能立刻将数据完全恢复,从而保证系统能够连续、可靠地运行。
        (6)最大限度地保证数据的正确性。保证数据正确的特性在数据库中称为数据完整性。在数据库中可以通过建立一些约束条件保证数据库中的数据是正确的。比如输入年龄小于0或者大于200时,数据库能够主动拒绝这类错误。
        (7)数据可以并发使用并能同时保证数据的一致性。数据库中的数据是共享的,并且允许多个用户同时使用同一数据,这就要求数据库能够协调一致,保证各个用户之间对数据的操作不发生矛盾和冲突,即在多个用户同时使用数据库的情况下,能够保证数据的一致性和正确性。
        2)数据库管理系统
        数据库的各种功能和特性,并不是数据库中的数据所固有的,而是靠管理或支持数据库的系统软件——数据库管理系统(DataBase Management System, DBMS)提供的。一个完备的数据库管理系统应该具备上一节提到的各种功能,其任务就是对数据资源进行管理,并且使之能为多个用户共享,同时还能保证数据的安全性、可靠性、完整性、一致性,并要保证数据的高度独立性。一个数据库管理系统应该具备以下功能。
        (1)数据库定义功能。可以定义数据库的结构和数据库的存储结构,可以定义数据库中数据之间的联系,可以定义数据的完整性约束条件和保证完整性的触发机制等。
        (2)数据库操纵功能。可以完成对数据库中数据的操纵,可以装入、删除、修改数据,可以重新组织数据库的存储结构,可以完成数据库的备份和恢复等操作。
        (3)数据库查询功能。可以以各种方式提供灵活的查询功能,可以使用户方便地使用数据库中的数据。
        (4)数据库控制功能。可以完成对数据库的安全性控制、完整性控制、多用户环境下的并发控制等各方面的控制。
        (5)数据库通信功能。在分布式数据库或提供网络操作功能的数据库中还必须提供数据库的通信功能。
        3)数据库管理员
        从事数据库管理工作的人员称为数据库管理员(DataBase Administrator, DBA)。DBA有大量的工作要做,既有技术方面的工作,又有管理方面的工作,要参加数据库开发和使用的全部工作。总体来说,DBA的工作可以概括如下。
        (1)在数据库规划阶段要参与选择和评价与数据库有关的计算机软件和硬件,要与数据库用户共同确定数据库系统的目标和数据库应用需求,要确定数据库的开发计划。
        (2)在数据库设计阶段要负责数据库标准的制定和共用数据字典的研制,要负责各级数据库模式的设计,要负责数据库安全、可靠方面的设计。
        (3)在数据库运行阶段首先要负责对用户进行数据库方面的培训;要负责数据库的转储和恢复;要负责对数据库中的数据进行维护;要负责监视数据库的性能,并调整、改善数据库的性能,提高系统的效率;要继续负责数据库安全系统的管理;要在运行过程中发现问题、解决问题。
        4)数据库的发展
        数据库的核心任务是数据管理,它包括数据的分类、组织、编码、存储、检索和维护等。数据管理经历了以下3个阶段。
        (1)人工管理阶段。人工管理阶段是指计算机诞生的初期(20世纪50年代中期以前)。这个时期的计算机技术,从硬件看还没有磁盘这样的可直接存取的存储设备,从软件看没有操作系统,更没有管理数据的软件。这个时期数据管理的特点如下。
        ①数据不保存。因为计算机主要用于科学计算,一般也不需要长期保存数据,只是在完成某一个计算或课题时才将数据输入,然后不仅原始数据不保存,计算结果也不保存。
        ②没有文件的概念。这个时期的数据组织必须由每个程序的程序员自行组织和安排。
        ③一组数据对应一个程序。每组数据只对应一个应用,即使两个程序用到相同的数据,也必须各自定义、各自组织,数据无法共享、无法相互利用和互相参照。因此,程序和程序之间有大量的数据重复。
        ④没有形成完整的数据管理的概念。由于以上几个特点及没有对数据进行管理的软件系统,所以这个时期的每个程序都要包括数据存取方法、输入输出方法和数据组织方法等。因为程序是直接面向存储结构的,所以存储结构的任何一点修改,都会导致程序的修改,程序与数据不具有独立性。
        (2)文件系统阶段。文件系统阶段是指20世纪50年代后期到60年代中期这一阶段。从那时起,计算机不仅大量用于科学计算,也开始大量用于信息管理。像磁盘这样的直接存取存储设备也已经出现,在软件方面也有了操作系统和高级语言,还有了专门用于数据管理的软件,即文件系统(或操作系统的文件管理部分)。这个阶段的数据管理具有以下特点。
        ①数据可以长期保存在磁盘上,也可以反复使用,即可以经常对文件进行查询、修改、插入和删除等操作。
        ②操作系统提供了文件管理功能和访问文件的存取方法,程序和数据之间有了数据存取的接口,程序开始通过文件名和数据打交道,可以不再关心数据的物理存放位置。因此,这时也有了数据的物理结构和数据的逻辑结构的区别。程序和数据之间有了一定的独立性。
        ③文件的形式已经多样化。由于有了磁盘这样的直接存取存储设备,文件也就不再局限于顺序文件,也有了索引文件、链表文件等。因而,对文件的访问可以是顺序访问,也可以是直接访问。但文件之间是独立的,它们之间的联系要通过程序去构造,文件的共享性还比较差。
        ④有了存储文件以后,数据就不再仅仅属于某个特定的程序,而是可以由多个程序反复使用。但文件结构的设计仍然是基于特定的用途,程序仍然是基于特定的物理结构和存取方法编制的。因此,数据的存储结构和程序之间的依赖关系并未根本改变。
        ⑤数据的存取基本上以记录为单位。
        (3)数据库系统阶段。数据库系统阶段从20世纪60年代后期开始,数据库技术的诞生既有计算机技术的发展做依托,又有数据管理的需求做动力。数据库的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用。
   题号导航      2023年上半年 数据库系统工程师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第5题    在手机中做本题