精华内容
下载资源
问答
  • 详写数据库需求分析

    千次阅读 多人点赞 2020-04-04 21:03:46
    需求分析一、数据库系统设计概述  1.数据库系统设计的内容1>数据库的结构特性设计2>数据库的行为特性设计3>数据库的物理模式设计   2.应注意的问题  3.基本方法  4.基本步骤二、系统需求分析  1....

    本篇文章通过上课讲解,网上资料总结而成

    需求分析

    Date date = new Date();
    System.out.println(date);
    //当前时间为2020-4-4 19:00;

    一、数据库系统设计概述

      1.数据库系统设计的内容

      数据库系统设计的目标是:对于给定的应用环境,建立一个性能良好的、能满足不同用户使用要求的、又能被选定的DBMS所接受的数据库系统模式。按照该数据库系统模式建立的数据库系统,应当能够完整地反映现实世界中信息及信息之间的联系;能够有效地进行数据存储;能够方便地执行各种数据检索和处理操作;并且有利于进行数据维护和数据控制管理的工作。
      数据库系统设计的内容主要有:数据库的结构特性设计、数据库的行为特性设计、数据库的物理模式设计。
      在数据库系统设计过程中,数据库结构特性的设计起着关键作用,行为特性设计起着辅助作用。将数据库的结构特性设计和行为特性设计结合起来,相互参照,同步进行,才能较好地达到设计目标。

    1>数据库的结构特性设计

      数据库的结构特性是指数据库的逻辑结构特征。由于数据库的结构特性是静态的,一般情况下不会轻易变动,因此数据库的结构特性设计又称为数据库的静态结构设计。
      数据库的结构特性设计过程是:先将现实世界中的事物、事物间的联系用E-R图表示,再将各个分E-R图汇总,得出数据库的概念结构模型,最后将概念结构模型转化为数据库的逻辑结构模型表示。

    2>数据库的行为特性设计

      数据库的行为特性设计是指确定数据库用户的行为和动作,并设计出数据库应用系统的系统层次结构、功能结构和系统数据流程图,确定数据库的子模式。数据库用户的行为和动作是指数据查询和统计、事物处理及报表处理等操作,这些都要通过应用程序表达和执行。由于用户行为总是更新数据库内容的存取数据操作,用户行为特性是动态的,所以数据库的行为特性设计也称为数据库的动态特性设计。
      数据库行为特性的设计步骤是:将现实世界中的数据及应用情况用数据流程图和数据字典表示,并详细描述其中的数据操作要求(即操作对象、方法、频度和实时性要求);确定选和系统层次结构;确定系统的功能模块结构;确定数据库的子模式;确定系统数据流程图。

    3>数据库的物理模式设计

      数据库的物理模式设计要求:根据库结构的动态特性(即数据库应用处理要求),在定的DBMS环境下,把数据库的逻辑结构模型加以物理实现,从而得出数据库的存储模式存取方法。

       2.应注意的问题

      数据库系统设计时应使结构特性设计和行为特性设计紧密结合。数据库设计过程是一种自上而下的、逐步逼近设计目标的过程。数据库设计过程是结构设计和行为设计分离设计、相互参照、反复探寻的过程。

      3.基本方法

      数据库设计应分6个阶段进行:
        需求分析
        概念结构设计
        逻辑结构设计
        物理结构设计
        数据库实施
        数据库运行与维护
      在数据库设计的不同阶段上,实现的具体方法有基于E-R模型的数据库设计方法、基于3NF(第3范式)的设计方法、基于抽象语法规范的设计方法等。

      4.基本步骤

    在这里插入图片描述
    在这里插入图片描述

    二、系统需求分析

      1.概述

      需求分析是数据库设计的第一步,也是最困难、最耗时间的一步。需求分析的任务是准确了解并分析用户对系统的需要和要求,弄清系统要达到的目标和实现的功能。需求分析是否做得充分与准确,决定着在其上构建数据库大厦的速度与质量。如果需求分析做不好,会影响整个系统的性能,甚至会导致整个数据库设计返工。
      数据库应用系统的需求分析包括数据需求分析功能需求分析(数据处理需求分析、业务规则需求分析)、性能需求分析(数据操作响应时间或数据访问响应时间、系统吞吐量、允许并发访问的最大用户数、每秒TPS代价值)、其他需求分析(存储需求分析、安全性需求分析、备份和恢复需求分析)。
      ①数据处理需求分析:从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构,与数据处理需求分析结果一 起,组成数据字典,形成数据规范说明书”。
      ②功能需求分析:功能需求分析主要针对DBAS应具有的功能进行分析,是DBAS需求分析的核心环节,总体上可分为数据处理需求分析与业务规则需求分析。数据处理需求分析从数据访问和处理的角度,明确对各数据项所需要进行的数据访问操作。在系统规划与分析阶段,DBAS开发者已经明确了各类用户视图。因此数据处理需求分析阶段可以从这些视图出发,
      ③性能需求分析:性能需求则描述了系统应当做到什么程度,分析DBAS应具有的性能指标。
      ④其他需求分析包括:存储需求、安全性需求等。
        a.存储需求分析:存储需求分析是指估计DBAS系统需要的数据存储量,如DB所存储的数据总量。
        b.安全需求分析:主要用于数据库安全设计,避免被非法使用和攻击。

       2.基本步骤

      设计者的中心工作是弄清并综合各个用户的应用需求;

       3.主要任务

      详细调查现实世界要处理的对象(组织、部门、企业等);充分了解原系统(手工系统或计算机系统)的概况和发展前景;明确用户的各种需求;收集支持系统目标的基础数据及其处理方法;确定新系统的功能和边界。

      4.抽象系统概貌

    在这里插入图片描述

      5.常用的数据建模方法

    1>DFD方法

      数据流图(Data Flow Diagram,简称DFD)是便于用户理解系统数据流程的图形表示。DFD建模方法的核心是数据流,它能精确地在逻辑上描述系统的功能、输入、输出和数据存储等,从而摆脱了其物理内容。数据流图是系统逻辑模型的重要组成部分。
      DFD的主要组成包括外部实体(外部项)、处理过程、数据存储和数据流。外部实体指系统之外又和系统有联系的人或者事物,说明了数据的外部来源和去处。处理指对数据逻辑处理,也就是数据变换,它用来改变数据值。数据流是指处理功能的输入输出数据存储表示数据保存的地方,它用来存储数据。
      在DFD建模方法中,数据流用箭头表示,处理用矩形框表示,数据存储用圆角矩形框表示,外部项用圆角框或
    者平行四边形框表示。
      数据流程图表达了数据和处理过程之间的关系。在结构化分析方法中,处理过程的处理逻辑常常用判定表或判定树来描述。
      DFD特性:
      ①抽象性:在DFD中具体的组织机构、工作场所、物质流等都已经去掉,只剩下信息和数据存储、流动、使用以及加工的情
    况。所以描述的是抽象出来的数据。

      ②概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体,可反映出数据流之间的概括情况。

    2>IDEF0方法

    1.IDEF方法
      是70年代提出的结构化分析方法基础上发展起来的
      IDEF0:描述系统的功能活动及其联系
      IDEF1:描述系统信息及其联系,建立信息模型作为数据库设计的依据
      IDEF2:用于系统模拟,建立动态模型
    2.IDEF大家族
    在这里插入图片描述
    3.IDEF0详解
      用于系统的需求处理和结构关系的功能定义,IDEF0能同时表达系统的活动(用盒子表述)和数据流(用箭头表示)以及它们之间的联系,IDEF0被称为“Static Model”,是一种图形化方法,采用的是层次分解,逐步细化的结构树描述系统。
    4.IDEF0控制图
    IDEF0是活动模型(ICAM DEF inition Method)的缩写,来源于结构化分析与设计技术的一套标准,这些标准包含多种层次的图形语言。输入(Input)箭头表示完成特定活动所需的数据,置于矩形框的左侧;输出(Output)箭头说明由活动产生的结果及信息,置于矩形框的右侧;控制(Control) 箭头描述了影响这个活动执行的事件或约束条件,置于矩形框的上方;机制(Mechanisms) 箭头表示实施该活动的物理手段或完成活动需要的资源(计算机系统、人或组织),置于矩形框的下方。
    在这里插入图片描述

    3>UML方法

      UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
      UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。

    参考软件工程导论这里不做细

      6.数据字典

      数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括以下5个部分。

    1>数据项

      数据项是不可再分的数据单位。它的描述为:
      数据项={数据项名,含义说明,别名,类型,长度,取值范围,与其他数据项的逻辑关系}。
      其中:“取值范围”和“与其他数据项的逻辑关系”两项定义了数据的完整性约束条件,它们是设计数据完整性检验功能的依据。

    2> 数据结构

      数据结构的描述为:
      数据结构={数据结构名,含义说明,组成,{数据项或数据结构}}。
      数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干数据项和数据结构混合组成。

    3>数据流

      数据流是数据结构在系统内传输的路径。数据流的描述通常为:
      数据流 ={数据流名,说明,流出过程,流入过程,组成:{数据结构},平均流量,高峰期流量}。
      其中,“流出过程”说明该数据流来自哪个过程;“流入过程”说明该数据流将到哪个过程去;“平均流量”是指在单位时间(每天、每周、每月等)里传输的次数;“高峰期流量”则是指在高峰时期的数据流量。
      数据流是数据结构在系统内传输的路径。数据流的描述通常为:
      数据流 ={数据流名,说明,流出过程,流入过程,组成:{数据结构},平均流量,高峰期流量}。
      其中,“流出过程”说明该数据流来自哪个过程;“流入过程”说明该数据流将到哪个过程去;“平均流量”是指在单位时间(每天、每周、每月等)里传输的次数;“高峰期流量”则是指在高峰时期的数据流量。

    4> 数据存储

      数据存储是数据及其结构停留或保存的地方,也是数据流的来源和去向之一。数据存储可以是手工文档、手工凭单或计算机文档。数据存储的描述通常为:
      数据存储 ={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}。
      其中:“数据量”说明每次存取多少数据;“存取频度”指每小时或每天或每周存取几次、每次存取多少数据等信息;“存取方式”指是批处理还是联机处理,是检索还是更新,是顺序检索还是随机检索等;“输入的数据流”要指出其数据的来源处;“输出的数据流”要指出其数据去向处。

    5>处理过程

      处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息,通常包括以下内容:
      处理过程={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}。
      其中:“简要说明”中主要说明该处理过程用来做什么(不是怎么做)及处理频度要求,如单位时间里处理多少事务、多少数据量、响应时间要求等。

    6>小结

      数据字典是关于数据库中数据的描述,即对元数据的描述。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。
      需求和分析阶段收集到的基础数据用数据字典和一组数据流程图(Data Flow Diagram , 简称DFD)表达,它们是下一步进行概念设计的基础。数据字典能够对系统数据的各个层次和各个方面进行精确和详尽的描述,并且把数据和处理有机地结合起来,可以使概念结构的设计变得相对容易。

    三、数据库概念结构的设计

      1.概述

     &emsp概念结构设计是整个数据库设计的关键。在概念结构的设计过程中,设计者要对用户需求进行综合、归纳和抽象,形成一个独立于具体计算机和DBMS的概念模型。

      2.基本步骤

      设计者要将应用需求转换为与计算机硬件无关的、与各个数据库管理系统产品无关的概念模型(即E-R图);

      3.特点

      概念结构独立于数据库逻辑结构和支持数据库的DBMS,其主要特点如下。

    • 1)概念模型是现实世界的一个真实模型:概念模型应能真实、充分地反映现实世界,能满足用户对数据的处理要求。
    • 2)概念模型应当易于理解:概念模型只有被用户理解后,才可以与设计者交换意见,参与数据库的设计。
    • 3)概念模型应当易于更改:由于现实世界(应用环境和应用要求)会发生变化,这就需要改变概念模型,易于更改的概念模型有利于修改和扩充。
    • 4)概念模型应易于向数据模型转换:概念模型最终要转换为数据模型。设计概念模型时应当注意,使其有利于向特定的数据模型转换。

      4.步骤

      概念结构的设计可分为两步:

    • 第一步是抽象数据,并设计局部视图;
    • 第二步是集成局部视图,得到全局的概念结构。

       5.数据抽象与局部视图设计

      概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。

    1.三种数据抽象方法

    ⑴ 分类 (Classification)
      定义某一类概念作为现实世界中一组对象的类型,这些对象具有某些共同的特性和行为。分类抽象了对象值和型之间的“成员”的语义。在E-R模型中,实体集就是这种抽象。
    ⑵ 聚集 (Aggregation)
      定义某一类型的组成部分,它抽象了对象内部类型和对象内部“组成部分”的语义。若干属性的聚集组成了实体型。
    ⑶ 概括 (Generalization)
      定义了类型之间的一种子集联系,它抽象了类型之间的“所属”的语义。例如,学生是一个实体型,本科生、研究生也是实体型。本科生、研究生均是学生的子集。把学生超类( Superclass ),本科生、研究生称为学生的子类( Subclass)。
      在E-R模型中用双竖边的矩形框表示子类,用直线加小圆圈表示超类­-子类的联系。
       概括的一个重要性质是继承性。继承性指子类继承超类中定义的所有抽象。

      6.E-R图

    概念结构设计是利用抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体集、属性和码,确定实体集之间的联系类型(一对一、一对多或多对多的联系),进而设计分E-R图。
    ⑴ 设计分E-R图的具体做法

    • 1)选择局部应用。选择局部应用是根据系统的具体情况,在多层的数据流程图中选择一个适当层次的数据流程图,作为设计分E-R图的出发点,并让数据流程图中的每一部分都对应一个局部应用。选择好局部应用之后,就可以对每个局部应用逐一设计分E-R图了。
    • 2)设计分E-R图。在设计分E-R图前,局部应用的数据流程图应已经设计好,局部应用所涉及的数据应当也已经收集在相应的数据字典中了。在设计分E-R图时,要根据局部应用的数据流程图中标定的实体集、属性和码,并结合数据字典中的相关描述内容,确定E-R图中的实体、实体之间的联系。

      7.视图

      各子系统的局部E-R图设计好以后,下一步就是要将所有的局部E-R图综合成一个系统的总E-R图。一般说来,视图集成可以有两种方式:

    • 多个局部E-R图一次集成。
    • 逐步集成,用累加的方式一次集成两个局部E-R图。

      第一种方法比较复杂,做起来难度较大。
      第二种方法每次只集成两个局部E-R图,可以降低复杂度。
      每次集成局部E-R图时都需要分两步走

    ① 合并。解决各局部E-R图之间的冲突,将各局部E-R图合并起来生成初步E-R图。
    ② 修改和重构。消除不必要的冗余,生成基本E-R图。

    1.合并分E-R图,生成初步E-R图

      各个局部应用所面向的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个局部E-R图之间必定会存在许多不一致的地方,这称之为冲突。因此,合并局部E-R图时并不能简单地将各个局部E-R图画到一起,而是必须着力消除各个局部E-R图中的不一致,以形成能为全系统中所有用户共同理解和接受的统一的概念模型。合理消除各局部E-R图的冲突是合并局部E-R图的主要工作与关键所在。
      ⑴ 属性冲突
      ① 属性域冲突,即属性值的类型、取值范围或取值集合不同。例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。不同的部门对零件号的编码也不同。又如年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。
      ② 属性取值单位冲突。例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
      ③ 属性冲突理论上好解决,但实际上需要各部门讨论协商,解决起来并非易事。
      ⑵ 命名冲突
      ① 同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
      ② 异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
      命名冲突可能发生在实体、联系一级上,也可能发生在属性一级上。其中属性的命名冲突更为常见。处理命名冲突通常也像处理属性冲突一样,需要通过讨论、协商等行政手段加以解决。
      ⑶ 结构冲突
      ① 同一对象在不同应用中具有不同的抽象。例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
      解决方法通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
      ② 同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
      解决方法是根据应用的语义对实体联系的类型进行综合或调整。

    2.消除不必要的冗余,设计基本E-R图

      在初步E-R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步 E-R图称为基本E-R图。
      消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
      但并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。因此在设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需求来确定。如果人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。

    四、数据库逻辑结构的设计

      1.概述

      数据逻辑结构设计的主要任务是将概念结构转换为某个DBMS所支持的数据模型,并将其性能进行优化。

      2.基本步骤

      要完成数据库的逻辑模式和外模式的设计工作,即系统设计者要先将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑模式,然后根据用户处理的要求、安全性的考虑建立必要的数据视图,形成数据的外模式;
    ( 1 ) 将概念结构转换为一般的关系、网状、层次模型;
    ( 2 ) 将转换来的关系、网状、层次模型向指定数据库管理系统支持的数据模型转换;
    ( 3 ) 对数据模型进行优化。

       3.范式

    1>第一范式

      定义:数据库表中的所有字段都是单一属性,不可再分的。这个单一属性是由基本的数据类型所构成的,如整数,浮点数,字符串等,换句话说,第一范式要求数据库中的表都是二维表。(二维表就是由行和列组成的表)

    2>第二范式

      定义:数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。
      部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。
      换句话说:所有单关键字的表都符合第二范式。

    3>第三范式

      定义:第三范式是在第二范式的基础上定义的,如果数据表中不存在非关键字段,对任意候选关键字段的传递函数依赖则符合第三范式。

    4>BC范式

      定义:在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BC范式。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系

    5>范式之间的关系

    在这里插入图片描述

       4.E-R图向关系模型的转换

      转换规则 
    1) 一个实体型转换为一个关系模式 
    一般E-R图中的一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
    2) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
    3) 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
    4) 一个m:n联系可以转换为一个独立的关系模式。 
    5) 一个多元联系可以转换为一个独立的关系模式。
    6) 具有相同码的关系模式可以合并。
    7) 有些1:n的联系,将属性合并到n端后,该属性也作为主码的一部分

       5.数据模型的优化

       有了关系模型,可以进一步优化,方法为:
    1).确定数据依赖。
    2).对数据依赖进行极小化处理,消除冗余联系(参看范式理论)。
    3).确定范式级别,根据应用环境,对某些模式进行合并或分解。
    4).对关系模式进行必要的分解。
    1.2.3.工作理论性比较强,主要目的是设计一个数据冗余尽量少的关系模式。
    4.考虑效率问题了。
      对关系模式进行必要的分解。如果一个关系模式的属性特别多,就应该考虑是否可以对这个关系进行垂直分解。如果有些属性是经常访问的,而有些属性是很少访问的,则应该把它们分解为两个关系模式。
      如果一个关系的数据量特别大,就应该考虑是否可以进行水平分解。

       6.设计用户子模式

      这部分主要是考虑使用方便性和效率问题,主要借助视图手段实现
    1)建立视图,使用更符合用户习惯的别名。
    2)对不同级别的用户定义不同的视图,以保证系统的安全性。
    3)对复杂的查询操作,可以定义视图,简化用户对系统的使用。

    五、数据库物理结构的设计

      1.概述

      数据库物理结构设计的主要任务是为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储位置、数据存储结构和存取方法。

      2.基本步骤

      数据库上运行的各种事务响应时间小、存储空间利用率高、事务吞吐率大,首先对要进行的事务进行详细分析,获得选择物理数据库设计所需要的参数;其次,要充分了解所用关系数据库管理系统的内部特征,特别是系统所提供的存取方法和存取结构。
      以下是确定关系的存取方法的依据:

    1. 对于数据库查询事务,需要得到:查询的关系,查询条件所涉及的属性,连接条件所涉及的属性,查询的投影属性。
    2. 对于数据更新事务,需要得到:被更新的关系,每个关系上的更新操作条件所涉及的属性,修改操作要改变的属性值。
    3. 除此之外,还需要制定每个事务在各关系上运行的频率和性能要求。

      通常关系数据库物理设计的内容主要包括为关系模式选择存取方法,以及设计关系、索引等数据库文件的物理存储结构。

      3、关系模式存取方法选择

      数据库系统是多用户共享的系统,对同一个关系要简历多条存取路径才能满足多用户的多种应用要求。物理结构设计的任务之一是根据关系数据库管理系统支持的存取方法确定选择哪些存取方法。
      存取方法是快速存取数据库中数据的技术。数据库管理系统一般提供索引方法和聚簇方法。

    1.B+树索引和hash索引

    B+树索引存取方法的选择
    所谓选择索引存取方法,实际上就是根据应用要求确定对关系的那些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计唯一索引。

    • 1)如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引)。
    • 2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。
    • 3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引。

    hash索引存取方法的选择
      选择hash存取方法的规则:如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择条件中,而且满足下列两个条件之一,则此关系可以选择hash存取方法。
    1)一个关系的大小可预知,而且不变。
    2)关系的大小动态改变,但数据库管理系统提供了动态hash存取方法。

    2. 聚簇存取方法的选择

      为了提高某个属性(或属性组)的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。该属性(或属性组)称为聚簇码。
      聚簇功能可以大大提高按聚簇码进行查询的效率。
      聚簇功能不单适用于单个关系,也适用于经常进行连接操作的多个关系。即把多个连接关系的元组按连接属性值聚集存放。这就相当于把多个关系按“预连接”的形式存放,从而大大提高连接操作的效率。
    一个数据库可以连接多个聚簇,一个关系只能加入一个聚簇。这样聚簇存取方法,即确定要建立多少个聚簇,每个聚簇中包括哪些关系。
    首先设计候选聚簇,一般来说:

    1. 对经常在一起进行连接操作的关系可以建立聚簇。
    2. 如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇。
    3. 如果一个关系的一个(或一组)属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不能太少,太少则聚簇的效果不明显。

    然后检查候选聚簇中的关系,取消其中不必要的关系

    1. 从聚簇中删除经常进行全表扫描的关系。
    2. 从聚簇中删除更新操作远多于连接操作的关系。
    3. 不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇。要从这多个聚簇方案(包括不建立聚簇)中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。

      聚簇只能提高某些应用的性能,而且能建立与维护聚簇的开销是相当大的。对已有关系简历聚簇将导致关系中元组移动其物理存储位置,并使此关系上原来建立的所有索引无效,必须重建。当一个元组的聚簇码值改变时,该元组的存储位置也要做相应的移动,聚簇码值要相对稳定,以减少修改聚簇码值所引起的维护开销。
      当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是西药的,这时可以使用聚簇。尤其当SQL语句中包含有与聚簇码有关的ORDER BY、GROUP BY、UNION、DISTINCT等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作。

      4、确定数据库的存储结构

      确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
      确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,因此需要进行权衡选择一个折中方案。

    1. 确定数据的存放位置
      为了提高系统性能,应根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。

    2. 确定系统配置
      关系数据库管理系统产品一般都提供了一些系统配置变量和存储分配参数,供设计人员和数据库管理员对数据库进行物理优化。

      5、评价物理结构

    数据库物理设计过程中需要对时间效、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。评价物理数据库的方法完全依赖于所选用的关系数据库管理系统,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的、合理的物理结构

    版权声明:本文为CSDN博主「lxwthinker」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lxw983520/article/details/80890419

    六、数据库实施

      1.概述

      在数据库实施阶段中,系统设计人员要运用DBMS提供的数据操作语言和宿主语言,根据数据库的逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库并进行系统试运行。

      2.步骤以及详细描述

      数据库的实施一般包括以下几个步骤:

    1>定义数据库结构

      在确定了数据库的逻辑结构和物理结构之后,接着就要使用所选定的数据库管理系统提供的各种工具来建立数据库结构。当数据库结构建立好后,就可以开始运行DBMS提供的数据语言及其宿主语言编写数据库的应用程序。

    2>数据的载人

      数据库结构建立之后,可以向数据库中装载数据。组织数据入库时数据库实施阶段的主要工作。来自于各部门的数据通常不符合系统的格式,需要对数据格式进行统一,同时还要保证数据的完整性和有效性。

    3>应用程序的编码与调试

      数据库应用程序的设计应与数据库的设计同时进行,也就是说编制与调试应用程序的同时,需要实现数据的入库。如果调试应用程序时,数据的入库尚未完成,可先使用模拟数据。

      在将一部分数据加载到数据库后,就可以开始对数据库系统进行联合调试了,这个过程又称为数据库试运行。这个阶段要实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。如果不满足网站建设要求,则要对应用程序进行修改、调整,直到满足设计要求为止。此外,还要对系统的性能指标进行测试,分析其是否达到设计目标。

      当应用程序开发与调试完毕后,就可以对原始数据进行采集、整理、转换及入库,并开始数据库的试运行。

    4>数据库的试运行
    1. 应用程序调试完成并已有一小部分数据入库,就可以开始数据库的试运行,也称联合调试;
    2. 试运行十分重要,因为:
      (1) 检测应用程序在接近真实的环境中运行是否符合设计要求;
      (2) 检测系统设计的性能和评价。
    3. 试运行的工作主要有两个:
      (1) 功能测试:运行数据库应用程序,执行各种操作,测试程序是否满足设计要求,找出不足,改进现有程序直到符合设计要求;
      (2) 性能测试:测量系统的性能指标,分析是否符合设计目标。

    七、数据库运行维护

       1.概述

      数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中,必须不断地对其结构性能进行评价、调整和修改。

       2、数据库运行维护基本工作

       ①数据库的转储与恢复
       ②数据库的安全性、完整性控制
       ③检测并改善数据库的性能
       ④数据库的重组和重构

       3、运行状态监控与分析

       管理员借助相应工具在数据库运行过程中监测数据库系统的运行情况,掌握系统当前或以往的负荷、配置、应用和其他相关信息,并对监测数据进行分析。

       ①自动监控机制
       ②手动监控机制
       ③对数据库构架体系的监控
       ④对数据库性能的监控

       4、 数据库存储空间管理

       数据库的存储结构一般分为逻辑存储结构和物理存储结构,其物理存储结构决定了数据库存储数据时数据文件所占用空间的大小及分布。不同的数据库对空间的管理是不一样的。空间不足可扩大存储容量或合理备份转储。

       5、 数据库运行环境与参数调整

    1)外部调整:

       ①CPU:在空闲是使用率超过90%,说明服务器缺乏CPU资源;若高峰期时CPU 使用率依然很低,说明CPU资源充足。
       ②网络:大量SQL数据会使网络速度变慢,调整网络。

    2) 调整内存分配
    3)调整磁盘I/O:响应时间的最大组成部分。
    4)调整竞争:

       方法:
       ① 修改参数以控制连接到数据库的最大进程数
       ②减少调度进程的竞争

       ③ 减少多线程服务进程竞争
       ④减少重做日志缓冲区竞争
       ⑤减少回滚段竞争。

    Date date = new Date();
    System.out.println(date);
    //当前时间为2020-4-4 21:01;

    展开全文
  • 数据库性能需求分析及评估模型

    万次阅读 2017-11-22 17:05:50
    数据库作为应用系统当中最重要的一块,也是性能测试非常关注的一块,根据我自己的项目经验,和以往对应用系统的性能需求分析和测试策略制定过程,总结一下如何开展数据库系统的性能需求分析,以及制定数据库能力评估...

           数据库作为应用系统当中最重要的一块,也是性能测试非常关注的一块,根据我自己的项目经验,和以往对应用系统的性能需求分析和测试策略制定过程,总结一下如何开展数据库系统的性能需求分析,以及制定数据库能力评估模型。

    一、数据库性能需求制定

    1、需求信息收集-任务/交易分布

    (1)收集有哪些主要交易任务(与业务系统需求一致)

    (2)在一天的某些特定时刻系统都有哪些主要操作,以及操作量

    2、需求信息收集-交易混合图

          需要关注的信息有:

    Ø   高峰期有哪些操作?

    Ø   中间件操作有多少?数据库操作有多少?

    Ø   如果任务失败,那么商业风险有多少?

    Ø   有没有涉及保密系数高的数据?

          测试选型标准:高吞吐量、高I/O、高商业风险

    二、数据库能力需求

     

    1、高吞吐量

          满足高并发下的大数据量交互需求,满足数据备份或ETL过程的大数据量迁移。具体需求信息获取参照以上数据库应用需求。

    2、负载均衡

          满足高并发下数据库的负载均衡能力,需求分析需要收集数据库的部署架构、负载均衡策略等数据信息。

    3、读写分离

          获取需求的要点是明确哪些是写节点,哪些是读节点,并且切换的策略什么,数据同步的策略是什么。

    4、分区分片(分库分表)

          获取需求的要点是把握数据的垂直切换和水平分库概念。明确需要对哪些数据块进行切分,分别分散到哪几台数据库主机上;需要对哪些大表进行数据水平切分,并且分布到哪些DB或table中。通过需求分析,做出数据切分的合理性判断,以及做出系统可测性的判断。

    5、高并发

          根据以上的数据库应用需求,进一步制定数据库的高并发需求,估算出单台数据库的API接口压力和需要满足的并发能力。

    6、高可用性

          高可用性可能也综合涉及到数据的多项能力,主要应用的是集群技术,HA容错及互备技术,体现的是无故障运行。获取需求的要点是明确高可用性技术架构,了解HA采用的工作方式,以及掌握故障切换方法和数据一致性验证需求。

    三、数据库评估模型

    (一)关键业务时间指标

           在我们的印象中,应用的关键业务能够提供真正的用户行为洞察——他们捕捉实时性能数据,展现真实用户在交互时的用户体验。衡量一个关键业务的性能包括捕捉交易的整体响应时间以及测量其不同层面的响应时间。这些时间都可以满足你业务需要的基准做比较。

          如果你只想测量应用的某个方面,关键业务流程是最佳选择。虽然容器指标可以提供丰富的信息,可以帮助你确定何时自动缩放您的环境,但业务流程交易还是决定着你的应用性能最终效果。不管你作为什么规模公司的程序“猿”,都应该首先关心你的用户是否可以完成他们的关键业务流程。

           一旦你定义了整个关键业务,性能好坏就是衡量整个应用生态系统的最好标准。我们需要设定低于平均关键业务响应时间的交易为异常行为,这样就能更好的观察应用的性能了,如下图所示。

          那么问题来了,怎么设定关键业务的标准呢?

          这里提供一个简单的方法供大家参考:假设关键业务在周三13:00~14:00是一个常见的高峰,那么选择这个时段平均响应时间作为标准,等到下周三的同一个时段,再将这周的这个时段的所有关键业务平均响应时间与前一周相比得到一个平均值,如此循环。通过这个机制,应用可以随时间而发展,而原始的关键业务数据也变得更有意义。关键业务的监测是用户体验中最具反思性的测量方法,因此它们是能捕捉到的最重要的指标之一。

    (二)SQL性能指标

          查询的性能主要体现为SQL查询缓慢和数据返回时间过长。那么我们要怎么解决它呢?下面是测试需要重定关注的:

          1、数据的查询方式对传输效率的影响,比如选用了更多的数据:查询返回的列太多的话会导致在选择行和检索数据时造成缓慢(如使用了SELECT*,没有列出所需的列)。此外,在结果中列出所需的列,也能减少数据传输,有利于性能的提升。

          2、重点关注索引的应用,对于只是访问表中的几个字段,并且字段内容较少,可以为这几个字段单独建立一个组合索引,这样就可以直接只通过访问索引得到数据,一般索引占用的磁盘空间比表小很多,所以这种方式可以大大减少磁盘IO开销。

          3、关注慢SQL执行计划及优化:SQL执行计划是关系型数据库最核心的技术之一,它表示SQL执行时的数据访问算法。当业务需求越来越复杂,表数据量越来越大,SQL也需要支持非常复杂的业务逻辑,但SQL的性能还需要提高,因此,优秀的关系型数据库除了需要支持复杂的SQL语法及更多函数外,还需要有一套优秀的算法库来提高SQL性能。

          4、关注批处理对性能影响:读取大量的数据或生产复杂的分析报告时通常都是在批量操作。这些操作是资源密集型,可能会影响在线用户的性能。想要解决这个问题需要将这些操作在低负载下进行,如在夜间;或使用单独的数据库来处理和分析报告。

    (三)锁及粒度

          数据库一般都允许多用户的存在,多个用户同时活动必然会导致冲突,然而正常工作中这种情况又无法避免,所以测试需要关注的是锁的应用与性能的平衡关系:

          1、页/行锁定:当一个用户试图读取另一个用户正在修改的数据,或修改另一个用户正在读取的数据时,又或者尝试修改另一个事务正在尝试修改的数据时,就会出现并发问题。这时候资源就会被锁定。

          可以锁定的资源在粒度(granularity)上差异很大。从细(行)到粗(数据库)。细粒度锁允许更大的数据库并发,因为用户能对某些未锁定的行执行查询。然而,每个由数据库系统产生的锁都需要内存,所以数以千计独立的行级别的锁也会影响数据库的性能。粗粒度的锁降低了并发性,同时消耗的资源也较少。

          2、死锁:死锁是数据库性能的重量级杀手之一,然而死锁却是不同事务之间抢占数据资源造成的。死锁耗时耗资源,然而在大型数据库中,高并发带来的死锁是不可避免的,所以我们只能让其变的更少。

    ①按照同一顺序访问数据库资源

    ②保持事务的简短,尽量不要让一个事务处理过于复杂的读写操作。事务过于复杂,占用资源会增多,处理时间增长,容易与其它事务冲突,提升死锁概率。

    ③尽量不要在事务中要求用户响应,比如修改新增数据之后再完成整个事务的提交,这样延长事务占用资源的时间,也会提升死锁概率。

    ④尽量减少数据库的并发量(通过优化架构实现)。

    ⑤尽可能使用分区表,分区视图,把数据放置在不同的磁盘和文件组中,分散访问保存在不同分区的数据,减少因为表中放置锁而造成的其它事务长时间等待。

    ⑥避免占用时间很长并且关系表复杂的数据操作。

    ⑦使用较低的隔离级别,使用较低的隔离级别比使用较高的隔离级别持有共享锁的时间更短。这样就减少了锁争用。

    (四)硬件资源指标

          然而并不是所有的数据库性能问题都是来自数据库本身,我们日常工作中最常见的另一个情景就是数据库的硬件有若干问题,这里我们简单的介绍一下可能会出现的情况,毕竟市面上有已经有很多工具可以监测这些问题了。

    1、没有足够的CPU或CPU速度太慢:更多的CPU可以分担服务器的负载,从而提高性能。

    2、慢的磁盘没有足够的IOPS:磁盘性能可以描述为每秒输入/输出操作(IOPS),它表示每秒磁盘的吞吐量。

    3、配置不正确的磁盘:数据库需要效果明显的磁盘访问,配置不正确的磁盘会造成相当大的性能影响。

    4、没有足够的内存:受限或不好的物理内存影响数据库性能,可用的内存越多,性能越好。

    (五)NoSQL

          NoSQL发展到今天,已经有了很大的吸引力,因为它处理大规模数据和高并发的能力非常显著。但是,NoSQL却很难测试,也不容易监控。

    1、NoSQL特性:关系型SQL已经成熟,有行业标准接口,但是每一个NoSQL都是独一无二的存在,并且都不支持复杂的数据库模型。所以简洁、有效、速度是它的业务应用标准。

    2、集群化和负载均衡:NoSQL数据库相比关系型数据库通常更多的是资源密集型。它们需要更多的内存和内存分配,集群化和分布式是评估要点;

    3、扩展性要求:随着数据库的需求增加,硬件也必须扩展,可扩展性是一项评估要点。

    4、高可用性要求:可以说NoSQL对稳定性的要求更为苛刻(因为它们有些是基于内存的数据库),高可用性是重要评估点。

    5、监控要求:相对于已经成熟的关系SQL,NoSQL现在的监控可以说是比较困难的,国内也只有听云一家公司能够支持主流的Memcached, MongoDB, Redis等非关系型数据库服务(但是NoSQL监控部分要收费);ApplicationsManager也支持对Memcached, MongoDB,Redis、HBase、Oracle NoSQL的监控(这些的监控指标还不够丰富,有待完善)。

    (六)扩展架构模型

    1、数据切分和分布式

          数据切分可以是物理上的,对数据通过一系列的切分规则将数据分布到不同的DB服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力。数据切分也可以是数据库内的,对数据通过一系列的切分规则,将数据分布到一个数据库的不同表中。

    (1)数据垂直切分

          数据的垂直切分,也可以称之为纵向切分。将数据库想象成为由很多个一大块一大块的“数据块”(表)组成,我们垂直的将这些“数据块”切开,然后将他们分散到多台数据库主机上面。这样的切分方法就是一个垂直(纵向)的数据切分。

    (2)数据水平切分

          数据的垂直切分基本上可以简单的理解为按照表、按照模块来切分数据,而水平切分就不再是按照表或者是功能模块来切分了。一般来说,简单的水平切分主要是将某个访问极其平凡的表再按照某个字段的某种规则来分散到多个表之中,每个表中包含一部分数据。

    除了垂直切分、水平切分,还有其他的切分或分片方式,如导出切分、混合切分。

    (3)负载均衡和读写分离

          一般是通过负载均衡器,其职责就是定位到一台具体的DB服务器。具体的规则如下:负载均衡器会分析当前sql的读写特性,如果是写操作或者是要求实时性很强的操作的话,直接将查询负载分到Master,如果是读操作则通过负载均衡策略分配一个Slave。

          其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。在一般的互联网应用中,经过一些数据调查得出结论,读/写的比例大概在 10:1左右 ,也就是说大量的数据操作是集中在读的操作,这也就是为什么我们会有多个Slave的原因。
          但是为什么要分离读和写呢?熟悉DB的技术人员都知道,写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是会降低系统执行的效率。我们这样的分离是把写操作集中在一个节点上,而读操作在其他的N个节点上进行,从另一个方面有效的提高了读的效率,保证了系统的高可用性。

    (4)分布式存储

          分布式存储是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

          分布式存储利用的就是数据的切分,也叫数据分片,数据分片将达到以下三个目的:
    Ø 分布均匀,即每台设备上的数据量要尽可能相近;
    Ø 负载均衡,即每台设备上的请求量要尽可能相近;
    Ø 扩缩容时产生的数据迁移尽可能少。

          有了分布式存储,就会有分布式计算,这就是大数据的范畴了,在这里不多说。

    2、Cache与Search的利用

          (1)结合传统关系型数据库和NoSQL两种类型数据库的优缺点,对于Oracle、Mysql这些数据库,可以通过引入Cache(Redis、Memcached),减少数据库的访问,增加性能(主要是解决传统关系型数据库的IO性能瓶颈,Cache都是基于内存的,大大减少了磁盘读写)。特别说明一下,这里说的Cache不是指数据库底层对应的Cache缓存,数据库层次的缓存一般针对的是查询内容,而且粒度也太小,一般只有表中数据没有变更的时候才发挥作用。我们这里说的Cache,是指外部引入的数据库缓存。
          (2)通过引入Search(Lucene、Solr、ElasticSearch),利用搜索引擎高效的全文索引和分词算法,以及高效的数据检索实现,来解决数据库和传统的Cache软件完全无法解决的全文模糊搜索、分类统计查询等功能。

          通过以上的数据库性能评估模型分析,我们就能把握数据库系统将要有的性能能力,并分析具体的测试范围和指标评估范围,以决定后期需要采用的测试方法、策略和工具。毕竟性能不是靠测试和调优出来的,是靠设计出来的,如果我们不了解数据库的能力模型和相应的架构要求,我们将很难深入开展相应的性能测试和性能调优工作。

    展开全文
  • 6.1.1 数据库设计的任务内容和特点 数据库设计的任务 数据库设计是指根据用户需求研制数据库结构的过程具体地说是指对于一个给定的应用环境构造最优的数据库模式建立数据库及其应用系统使之能有效的存储数据满足用户...
  • 数据库原理》— 数据库系统概论第五版习题解析

    万次阅读 多人点赞 2017-05-29 14:57:48
    数据库系统概论前七章习题解析 第1章绪论 1.试述数据、数据库数据库系统、数据库管理系统的概念。答: (l)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。...

    数据库系统概论前七章习题解析

    第1章 绪论

    1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答:  

    ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。  ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 

    ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。  

    ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。   

    2 .使用数据库系统有什么好处? 答: 

    使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。  

     3 .试述文件系统与数据库系统的区别和联系。 答: 

    文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 

    文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件。解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件。但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。  

    4 .举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。答 : ( l )适用于文件系统而不是数据库系统的应用例子数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适合用文件系统。 

     ( 2 )适用于数据库系统而非文件系统的应用例子目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统(其中会包括许多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等),学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等,都适合用数据库系统。希望读者能举出自己了解的应用例子。  

    5 .试述数据库系统的特点。 答: 

    数据库系统的主要特点有: 

     ( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。解析注意这里的“整体’夕两个字。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个学生的完整记录。 

     ( 2 )数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。解析数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”是指数据结构是针对某个应用设计的,只被这个应用程序或应用系统使用,可以说数据是某个应用的“私有资源”。所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。 

     ( 3 )数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。 

    ( 4 )数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, DBMS 必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。解析 DBMS 数据控制功能包括四个方面:数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。下面可以得到“什么是数据库”的一个定义:数据库是长期存储在计算机内有组织的大量的共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。 DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

    6 .数据库管理系统的主要功能有哪些? 答: 

    ( l )数据库定义功能;  ( 2 )数据存取功能;  ( 3 )数据库运行管理;  ( 4 )数据库的建立和维护功能。 

    7 .什么是概念模型?试述概念模型的作用。 

    答:概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。 

    概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 

    8.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。 答: 

    实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集;实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一,一对多和多对多等多种类型。   

    9 .试述数据模型的概念、数据模型的作用和数据模型的三个要素。 答: 

    数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。  ( l )数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。 

     ( 2 )数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 

     ( 3 )数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。解析数据模型是数据库系统中最重要的概念之一。必须通过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任何一个 DBMS 都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。 

    12 .试述网状、层次数据库的优缺点。 答: 

    层次模型的优点主要有: ( l )模型简单,对具有一对多层次关系的部门描述非常自然、直观,容易理解,这是层次数据库的突出优点; ( 2 )用层次模型的应用系统性能好,特别是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现,其性能优于关系模型; ( 3 )层次数据模型提供了良好的完整性支持。 

    层次模型的缺点主要有: ( l )现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型不能自然地表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决; ( 2 )对插入和删除操作的限制比较多; ( 3 )查询子女结点必须通过双亲结点。 

    网状数据模型的优点主要有: ( l )能够更为直接地描述现实世界,如一个结点可以有多个双亲; ( 2 )具有良好的性能,存取效率较高。 

    网状数据模型的缺点主要有: ( l )结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握; ( 2 )其 DDL 、 DML 语言复杂,用户不容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。 

    13.试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式 答: 

    关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 ( l )关系:一个关系对应通常说的一张表; ( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 )元组:表中的一行即为一个元组; ( 5 )主码:表中的某个属性组,它可以惟一确定一个元组; ( 6 )分量:元组中的一个属性值; ( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , „ ,属性 n )  14 .试述关系数据库的特点。 答: 

    关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 ( 2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 ( 3 )关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

    15.试述数据库系统三级模式结构,这种结构的优点是什么? 答: 

    数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图 1 . 29 ) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 

    16 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML 。 

    模式、外模式、内模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML :数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。  

    17.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性? 答: 

    数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。  

    18 .试述数据库系统的组成。 答: 

    数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 19 .数据库管理员、系统分析员、数据库设计人员、应用程序员的职责是什么? 答: 

    数据库管理员的职责:(1)决定数据库中的信息内容和结构; (2)决定数据库的存储结构和存取策略; (3)定义数据的安全性要求和完整性约束条件; (4)监控数据库的使用和运行; (5)数据库的改进和重组、重构。 

    系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户及 DBA 相结合,确定系统的硬件、软件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

     

    第二章 关系数据库

    1、试述关系模型的三个组成部分。
    答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

    2、试述关系数据语言的特点和分类。

    答:关系数据语言可以分为三类:

    关系代数语言。

    关系演算语言:元组关系演算语言和域关系演算语言。

    SQL:具有关系代数和关系演算双重特点的语言。

    这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

    5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

    答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。

    若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

    6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

    1)求供应工程J1零件的供应商号码SNO:

    πSno(σJno=‘J1’(SPJ))

    2)求供应工程J1零件P1的供应商号码SNO:

    πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))

    3)求供应工程J1零件为红色的供应商号码SNO:

    πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P)))

    4)求没有使用天津供应商生产的红色零件的工程号JNO:

    πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)

    5)求至少用了供应商S1所供应的全部零件的工程号JNO:

    πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

    7. 试述等值连接与自然连接的区别和联系。

    答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组

    自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

    8.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算? 

    答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。

    第三章 关系数据库语言SQL

    1 .试述 sQL 语言的特点。

    答:(l)综合统一。 sQL 语言集数据定义语言 DDL 、数据操纵语言 DML 、数据控制语言 DCL 的功能于一体。

    (2)高度非过程化。用 sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及 sQL 语句的操作过程由系统自动完成。

    (3)面向集合的操作方式。 sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

    (4)以同一种语法结构提供两种使用方式。 sQL 语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。

    (5)语言简捷,易学易用。

    3 (1) select * from S where A='10';

     (2) select  A,B  from S;

     (3) select A,B,S.C,S.D,E,F from S ,T  where S.C=T.C and S.D=T.D;

     (4) select * from S ,T  where S.C=T.C;

     (5) select * from S ,T  where S.A<T.E;

     (6) select S.C,S.D,T.* from S ,T ;

    4.用 sQL 语句建立第二章习题 6中的 4 个表。

    答:

    对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ;

    建 S 表:

        CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status  C(2),City C(4));

    对于 P 表: P ( PNO , PNAME , COLOR , WEIGHT );

    建 P 表 :

    CREATE TABLE P(Pno  C(2)  UNIQUE,Pname  C(6),COLOR  C(2),  WEIGHT INT);

    对于 J 表: J ( JNO , JNAME , CITY) ;

    建 J 表:

    CREATE  TABLE  J(Jno  C(2) UNlQUE,JNAME  C(8), CITY C(4))

    对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ;

    建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)

    CREATE TABLE SPJ(Sno  C(2),Pno  C(2),JNO  C(2),  QTY  INT))

    针对建立的 4 个表用 sQL 语言完成第二章习题6中的查询。

     ( l )求供应工程 Jl 零件的供应商号码 SNO ;

    SELECT DIST SNO FROM SPJ WHERE  JNO=’J1’

     ( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ;

    SELECT  DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'

    ( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ;

    SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'

    ( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;

    SELECT  DIST  JNO FROM SPJ  WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO  AND P.PNO=SPJ.PNO)。

    ( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ;

    由于VFP不允许子查询嵌套太深,将查询分为两步

    A、查询S1供应商供应的零件号

    SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)

    B、查询哪一个工程既使用P1零件又使用P2零件。

    SELECT JNO FROM SPJ WHERE PNO='P1'

    AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')

    5.针对上题中的四个表试用SQL语言完成以下各项操作:

    (1)找出所有供应商的姓名和所在城市。

           SELECT SNAME,CITY FROM S

    (2)找出所有零件的名称、颜色、重量。

    SELECT PNAME,COLOR,WEIGHT FROM P

    (3)找出使用供应商S1所供应零件的工程号码。

            SELECT  DIST JNO FROM SPJ WHERE SNO='S1'

    (4)找出工程项目J2使用的各种零件的名称及其数量。

    SELECT PNAME,QTY FROM SPJ,P

    WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'

    (5)找出上海厂商供应的所有零件号码。

    SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'

    (6)出使用上海产的零件的工程名称。

    SELECT JNAME FROM SPJ,S,J

    WHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO

    (7)找出没有使用天津产的零件的工程号码。

    注意: SELECT DISP JNO FROM SPJ  WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津') 适用于JNO是唯一或不唯一的情况.

        注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>'天津'适用于JNO是唯一的情况

    (8)把全部红色零件的颜色改成蓝色。

    UPDATE P SET COLOR='蓝'  WHERE COLOR='红'

    (9)由S5供给J4的零件P6改为由S3供应。

        UPDATE  SPJ  SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'

    (10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。

        A、DELETE  FROM  S  WHERE  SNO=’S2’

        B、DELETE  FROM  SPJ  WHERE  SNO=‘S2’

    (11)请将(S2,J6,P4,200)插入供应情况关系。

         INSERT  INTO  SPJ  VALUES(‘S2’,‘J6’,‘P4’,200)

    6 .什么是基本表?什么是视图?两者的区别和联系是什么?

    答:基本表是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

    7 .试述视图的优点。

    ( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。

    8 .哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。

    答:基本表的行列子集视图一般是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的。

    所有的视图是否都可以更新?为什么?

    答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的.

    9 .请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

    CREATE VIEW VSP AS SELECT SNO,SPJ.PNO,QTY FROM SPJ,J

     WHERE SPJ.JNO=J.JNO AND J.JNAME='三建'

    针对该视图VSP完成下列查询:

    (1)找出三建工程项目使用的各种零件代码及其数量。

    SELECT  DIST  PNO,QTY  FROM  VSP

    (2)找出供应商S1的供应情况。

    SELECT  DIST * FROM VSP WHERE SNO='S1'

    第四章 数据库安全性

    1 .什么是数据库的安全性?

    答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

    2 .数据库安全性和计算机系统的安全性有什么关系?
    答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
    系统安全保护措施是否有效是数据库系统的主要指标之一。
    数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,

    4 .试述实现数据库安全性控制的常用方法和技术。

    答:实现数据库安全性控制的常用方法和技术有:
    ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
    ( 2 )存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
    ( 3 )视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

    ( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
    ( 5 )数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

    5.什么是数据库中的自主存取控制方法和强制存取控制方法? 

    答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。

    强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

    6. (1) GRANT ALL PRIVILEGES ON Student,Class  

    TO U1
    WITH GRANT OPTION ;

      (2)GRANT SELECT,UPDATE(家庭住址),DELETE ON Student TO U2;

      (3)GRANT SELECT ON Class TO PUBLIC;

      (4)GRANT SELECT,UPDATE ON Student TO R1;

      (5)GRANT R1 TO U1 WITH ADMIN OPTION ;

     7 .SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。

    答:SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如:

    GRANT SELECT , INSERT ON Student  

    TO 王平
    WITH GRANT  OPTION ;

    就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。
    REVOKE INSERT ON Student FROM 王平CASCADE ;
    就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。

    7.请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:

    ( a )用户王明对两个表有SELECT 权力。

    GRANT SELECT ON 职工,部门

    TO 王明

    ( b )用户李勇对两个表有INSERT 和DELETE 权力。

    GRANT INSERT,DELETE ON 职工,部门

    TO 李勇

    ( c ) 每个职工只对自己的记录有SELECT 权力。

    GRANT SELECT ON 职工

    WHEN USER()=NAME

    TO ALL;

    ( d )用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。

    GRANT SELECT,UPDATE(工资) ON 职工

    TO 刘星

     ( e )用户张新具有修改这两个表的结构的权力。

    GRANT ALTER TABLE ON 职工,部门

    TO 张新;

     ( f )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。

    GRANT ALL PRIVILIGES ON 职工,部门

    TO 周平

    WITH GRANT OPTION;

    ( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。

    CREATE VIEW 部门工资 AS

    SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)

    FROM 职工,部门

    WHERE 职工.部门号=部门.部门号

    GROUP BY 职工.部门号

    GRANT SELECT ON 部门工资

    TO 杨兰;

    8 .把习题8 中(1)---(7)的每一种情况,撤销各用户所授予的权力

    (1) REVOKE SELECT ON 职工,部门 FROM 王明;

    (2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇;

    (3) REOVKE SELECT ON 职工
    WHEN USER ( ) =NAME
    FROM ALI ;

    (4) REVOKE SELECT , UPDATE ON 职工
    FROM 刘星;

    (5) REVOKE ALTER TABLE ON 职工,部门
    FROM 张新;

    (6) REVOKE ALL PRIVILIGES ON 职工,部门
    FROM 周平;

    (7) REVOKE SELECT ON 部门工资
    FROM 杨兰;
    DROP VIEW 部门工资;

    9.理解并解释MAC 机制中主体、客体、敏感度标记的含义。

    答:主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
    客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。

    敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )· 可信( Confidential )、公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫vel ) ,客体的敏感度标记称为密级(Classification Level )。

    11 .什么是数据库的审计功能,为什么要提供审计功能?

    答:审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
    因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

    第5章 数据库完整性

    1什么是数据库的完整性?

    答:数据库的完整性是指数据的正确性和相容性。

    2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系?

    答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

    3 .什么是数据库的完整性约束条件?可分为哪几类?

    答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。

    常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。

    动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

    4 . DBMS 的完整性控制机制应具有哪些功能?

    答:DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

    5 . RDBMS 在实现参照完整性时需要考虑哪些方面?

    答 :RDBMs 在实现参照完整性时需要考虑以下几个方面:

    ( l )外码是否可以接受空值。

    ( 2 )册 l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: l )级联删除( CASCADES ) ; 2 )受限删除( RESTRICTED ) ; 3 )置空值删除( NULLIFIES )。 ( 3 )在参照关系中插入元组时的问题,这时系统可能采取的作法有: l )受限插入; 2 )递归插入。

    ( 4 )修改关系中主码的问题。一般是不能用 UPDATE 语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。

    6 .假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用 sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过 60 岁。

    CREATE TABLE DEPT

        (Deptno NUMBER(2),

         Deptname VARCHAR(10),

         Manager VARCHAR(10),

         PhoneNumber Char(12)

         CONSTRAINT PK_SC RIMARY KEY(Deptno));

    CREATE TABLE EMP

        (Empno NUMBER(4),

         Ename VARCHAR(10),

         Age NUMBER(2),

         CONSTRAINT C1 CHECK ( Aage<=60),

          Job VARCHAR(9),

          Sal NUMBER(7,2),

          Deptno NUMBER(2),

          CONSTRAINT FK_DEPTNO

             FOREIGN KEY(Deptno)

             REFFERENCES DEPT(Deptno));

    7 .关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

    答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。

    第6章 关系数据库理论

    1 .理解并给出下列术语的定义:
    函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF 。

    定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XàY。(即只要X上的属性值相等,Y上的值一定相等。)

    术语和记号:

    XàY,但Y不是X的子集,则称XàY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。

    XàY,但Y是X的子集,则称XàY是平凡的函数依赖。

    若XàY,则X叫做决定因素(Determinant)。

    若XàY,YàX,则记作XßàY。

    若Y不函数依赖于X,则记作X à Y。

    定义2:在R(U)中,如果 XàY,并且对于X的任何一个真子集X’,都有X’ à Y,则称Y对X完全函数依赖

           若XàY,但Y不完全函数依赖于X,则称Y对X部分函数依赖

    定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。

    定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。

    定义5:关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XàY,Y à X,Y à Z成立,则称R<U,F>∈3NF。

    定义6:关系模式R<U,F>∈1NF 。若XàY且Y不是X的子集时,X必含有码,则R<U,F>∈BCNF。

    定义7:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖XààY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R<U,F>∈4NF。

    2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

    学生:学号、姓名、出生年月、系名、班号、宿舍区。

    班级:班号、专业名、系名、人数、入校年份。

    系:系名、系号、系办公地点、人数。

    学会:学会名、成立年份、办公地点、人数。

        语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

    请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?

     

     

    解:(1)关系模式如下:

      学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)

      班级:C(Class,Pname,Dept,Cnum,Cyear)

      系:D(Dept,Dno,Office,Dnum)

      学会:M(Mname,Myear,Maddr,Mnum)

      (2)每个关系模式的最小函数依赖集如下:

      A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoàSname,SnoàSbirth,SnoàClass,ClassàDept,DEPTàRno

        传递依赖如下:

    由于SnoàDept,而DeptàSno ,DeptàRno(宿舍区)

     

    所以Sno与Rno之间存在着传递函数依赖。

        由于ClassàDept,Dept à Class,DeptàRno

             所以Class与Rno之间存在着传递函数依赖。

        由于SnoàClass,ClassàSno,ClassàDept

             所以Sno与Dept之间存在着传递函数依赖。

      B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:

        ClassàPname,ClassàCnum,ClassàCyear,PnameàDept.

        由于ClassàPname,PnameàClass,PnameàDept

            所以C1ass与Dept之间存在着传递函数依赖。

     C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:

        DeptàDno,DnoàDept,DnoàOffice,DnoàDnum

        根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。

     D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:

        MnameàMyear,MnameàMaddr,MnameàMnum

         该模式不存在传递依赖。

      (3)各关系模式的候选码、外部码,全码如下:

      A、学生S候选码:Sno;外部码:Dept、Class;无全码

      B、班级C候选码:Class;外部码:Dept;无全码

      C、系D候选码:Dept或Dno;无外部码;无全码

      D、学会M候选码:Mname;无外部码;无全码

    7.下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。

    (1)任何一个二目关系是属于3NF。

    答:正确。因为关系模式中只有两个属性,所以无传递。

    (2)任何一个二目关系是属于BCNF.

    答:正确。按BCNF的定义,若XàY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是BCNF)。

    证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:

    A、A1àA2,但A2àA1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。

    B、A1àA2,A2àA1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。

    包含码。R是BCNF。C、R的码为(A1,A2)(即A1 àA2,A2 àA1),决定因素都

    第七章 数据库设计

    1.试述数据库设计过程。

    答:这里只概要列出数据库设计过程的六个阶段: ( l )需求分析; ( 2 )概念结构设计; ( 3 )逻辑结构设计; ( 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

    2 .试述数据库设计过程各个阶段上的设计描述。

    答:各阶段的设计要点如下: ( l )需求分析:准确了解与分析用户需求(包括数据与处理)。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。 ( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 ( 5 )数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 ( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。

    3 .试述数据库设计过程中结构设计部分形成的数据库模式。

    答:数据库结构设计的不同阶段形成数据库的各级模式,即: ( l )在概念设计阶段形成独立于机器特点,独立于各个 DBMS 产品的概念模式,在本篇中就是 E 一 R 图; ( 2 )在逻辑设计阶段将 E 一 R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图 ( Vi 娜),形成数据的外模式; ( 3 )在物理设计阶段,根据 DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

    5 .什么是数据库的概念结构?试述其特点和设计策略。

    答:概念结构是信息世界的结构,即概念模型,其主要特点是: ( l )能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型; ( 2 )易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键; ( 3 )易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充; ( 4 )易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种: l )自顶向下,即首先定义全局概念结构的框架,然后逐步细化; 2 )自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构; 3 )逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构; 4 )混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

    7.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用 E 一 R 图画出此学校的概念模型。

    答:

     

    各实体属性为:

    系:系编号,系名

    班级:班级号,班级名

    教研室:教研室号,教研室

    学生:学号,姓名,学历

    课程:课程号,课程名

    教员:职工号,姓名,职称

    联系的属性:“选修”的属性为“成绩”

    转换为关系模型如下:

    系(系编号,系名,学校名)

    班级(班级号,班级名,系编号)

    教研室(教研室号,教研室,系编号)

    学生(学号,姓名,学历,班级号,导师职工号)

    课程( 课程号,课程名)

    教员(职工号,姓名,职称,教研室号)

    选修(学号,课程号,成绩)

    8 .某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E 一 R 图画出此工厂产品、零件、材料、仓库的概念模型。

    答:

     

    各实体属性为:

    产品:产品号,产品名

    零件:零件号,零件名

    原材料:原材料号,原材料名,类别

    仓库:仓库号,仓库名

    各联系的属性为:

    产品组成:使用零件量

    零件制造:使用原材料量

    零件存储:存储量

    材料存放:存储量

    转换为关系模型如下:

    产品(产品号,产品名,仓库号)

    零件:零件号,零件名

    原材料:原材料号,原材料名,类别,仓库号,存放量)

    仓库(仓库号,仓库名)

    产品组成(产品号,零件号,使用零件量)

    零件组成(零件号,原材料号,使用原材料量)

    零件储存(零件号,仓库号,存储量)

    9 .什么是数据库的逻辑结构设计?试述其设计步骤。

    答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l )将概念结构转换为一般的关系、网状、层次模型; ( 2 )将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换; ( 3 )对数据模型进行优化。

    11、第七题中设计的关系模型中的各个关系模式都只有一个码,且都是唯一的决定因素,所以属于BCNF,不会发生更新异常。

     

    展开全文
  • 数据库应用系统的需求分析

    千次阅读 2019-03-01 23:46:58
    需求分析的概念与意义 所谓的需求分析,就是对待开发系统要做什么,完成什么功能的全面描述 软件的一些特性使得需求的获取常常并不容易! 比如软件功能复杂,需求可变性,软件的不可见性 二 获取需求的方法 ...

    一 需求分析的概念与意义

    所谓的需求分析,就是对待开发系统要做什么,完成什么功能的全面描述
    软件的一些特性使得需求的获取常常并不容易!
    比如软件功能复杂,需求可变性,软件的不可见性

    二 获取需求的方法

    • 面谈
    • 实地观察
    • 问卷调查
    • 查询资料

    三 需求分析过程

    3.1标识问题

    首先就是对文题的标准化定义;其次界定人机的关系,就是说什么是计算机可以完成的,什么是计算机不可以完成的;再者就是对原始数据要建立模型。

    3.2建立需求模型

    借助模型来理解系统涉及的各种业务活动与各个部件的的相互作用关系和约束(UML,DFD,IDEF0)

    3.3描述需求

    • 需求概述:描述软件项目研发的背景与意义等
    • 功能需求:描述系统的总体结构与功能
    • 性能需求:相应时间,存储容量,对系统的性能要求
    • 环境需求:硬件,操作系统的需求
    • 信息需求(数据需求):信息的范围,属性,数据之间的关系与约束
    • 其他需求:安全性需求等

    3.4确认需求

    审核内容:

    • 功能需求
    • 性能需求
    • 数据需求
    • 数据管理
    • 其他需求

    四 需求分析方法

    4.1结构化分析与功能建模方法(自顶向下,逐步细化)优点在于:

    (1)不过早陷入具体的细节
    (2)宏观入手分析问题
    (3)图形化表示
    (4)不涉及过多的技术用语(便于客户理解)

    4.2DFD建模方法

    在这里插入图片描述
    基本元素由数据流,处理,数据存储,外部项组成
    DFD方法建模的主要核心是数据流
    建模过程:

    • 明确目标,系统的范围
    • 构建顶层图
    • 构建第一层分解图
    • 构建层次结构图
    • 建立确认DFD图
      在这里插入图片描述
      满足要求:
    • 父图中出现的数据流要在子图中出现
    • 一个处理至少由一个输入流和一个输出流
    • 一个存储必定要有流入的数据流和流出的数据流
    • 一个数据流至少由一端为处理框
    • 表达描述的信息要完整,全面,一致

    4.3IDEFO建模方法

    在这里插入图片描述
    基本元素由箭头,矩形框组成
    在这里插入图片描述

    展开全文
  • 数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 文章目录1.概念数据模型(CDM)2.逻辑数据模型(LDM)3.物理数据模型(PDM) 1.概念...
  • 数据库系统概论(第五版) 王珊 第一章课后习题答案

    千次阅读 多人点赞 2019-12-23 16:18:55
    试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。 ( 2 )数据库...
  • 关系型数据库和非关系型数据库的区别

    千次阅读 多人点赞 2019-08-14 18:19:00
    关系型数据库 关系型数据库: 关系模型中的常用概念 优点 不足 非关系型数据库 非关系型数据库: 非关系型数据库结构 优点 不足 分类 CAP 理论 关系型与非关系型数据库的比较 最近的数据库排名 关系型...
  • 本人在讲授课程《数据库需求分析与规划设计》时候精心收集的文档,希望讲授同样课程的同仁有帮助。
  •   数据库服务器对硬件配置的...着运营时间的增加,那些以数据库为主要支撑的应用例如ERP系统、论坛系统,在具备一定规模之后,对服务器硬件的设备要求就更加严苛,一旦服务器设备无法承受数据库的工作压力,将直接
  • 数据库

    千次阅读 2019-02-23 17:44:47
    数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用...
  • 需求分析---步骤一2.1 收集资料2.2 分析整理2.3 数据流图2.4 数据字典2.5 用户确认3.概念结构设计---步骤二3.1 E-R 模型3.2 建立 E-R 模型4.逻辑结构设计---步骤三4.1 E-R 模型向关系模式的转换4.2 关系模式的优化...
  • 探析大数据需求下的分布式数据库

    千次阅读 2017-08-11 14:25:02
    传统关系型数据库、列存储数据库、内存分析型数据库(以SAP HANA为代表的内存分析型数据库,以PC服务器配置大量内存为硬件基础,将海量数据缓存在内存中换取极高的访问效率,做到对大量数据的实时交互式分析。...
  • 数据库系统概论》复习

    千次阅读 多人点赞 2019-05-27 12:13:27
    数据库系统概论》复习 第一章 绪论 1.1 数据库系统概述 1、数据库系统的四个基本概念 数据(Data):描述事物的符号记录称为数据,数据是数据库存储的基本对象。 数据库(DB):长期存储在计算机内、有组织的...
  • 数据库殁计 概述与需求分析 00回 教据库计概迷 数据库设计的任务内容和特点 数据厍设计的任务 数据库设计是指根据用户需求研制数据库结构 的过程,具体地说,是指对于一个给定的应用 环境,构造最优的数据库模式,建立...
  • 4.1 数据库设计的步骤;按照应用的要求工作环境要求在DBMS支持下对其结构数据设计和行为处理设计从而设计出一个结构合理使用方便效率较高的数据库及其应用系统;... 需求分析阶段 综合各个用户的应用需求是整个设
  • 文章目录1. 绪论1.1. 数据库4个基本概念1.1.1. 数据1.1.2. 数据库1.1.3. 数据库管理系统(DBMS)1.1.4. 数据库系统(DBS)1.2. 数据管理1.2.1. 发展过程1.2.2. 三个阶段对比1.2.3. 数据库系统特...
  • 教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社 注:文档高清截图在后 第7章 数据库设计 7.1 数据库设计概述 1、数据库应用系统,通常是指使用数据库的各类信息系统,比如以数据库为基础的各种管理...
  • 随着5G、AI、区块链、云计算、大数据等技术的融合,万物互联时代真正来临,各行各业在云计算、海量数据智能处理、大数据分析中提出更多需求。分布式数据库作为重要基础软件,在新一轮信息技术发展中发挥着关键作用。...
  • 数据库系统概论第五版 课后习题答案王珊

    万次阅读 多人点赞 2020-01-11 14:15:14
    试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机...
  • 运维工作梳理

    千次阅读 多人点赞 2019-12-19 07:44:12
    运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常。 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术。 运维又包括很多种,有DBA...
  • 数据库题目之数据库设计

    千次阅读 2019-01-10 15:21:25
    1、在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的 阶段。 A.需求分析 B.概念设计 C.逻辑设计 D.物理设计 【答案:】B 2、在关系数据库设计中,设计关系模式是 的...
  • 关系型数据库与NoSQL数据库简述

    千次阅读 2017-09-21 16:10:44
    一、 关系型数据库   简单定义,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型中常用的概念: 关系:可以理解为一张二维表,每个关系都具有...
  • 四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型。但是现在非关系型数据库,...无论如何,随着交易频率、可用性要求的提高,和数据库向云上和虚拟环境中迁移的需求的提出,基于商业硬件的横向扩展所带来
  • 硬件到软件栈的选取和水平扩展能力,本书将帮助您建立一个通用的PostgreSQL集群,它能够从宕机中幸存,抵御数据错误,还能够根据用户的需求平滑的扩展“成长”。一切都从为高效的PostgreSQL数据集群的框架选取硬件...
  • 1 引言 1.1目的 1.2范围 1.3读者范围 1.4参考文档 1.5术语与缩写解释 2 产品介绍 3 产品面向的用户群体 ... 6.2软硬件环境需求 6.3产品质量需求 6.4其他需求 7 需求确认 附件:用例分析 1.1<用例图>
  • 实时数据库与时序数据库

    千次阅读 多人点赞 2020-11-18 10:40:39
    在工业大数据数据库存储领域,除了传统的关系型数据库和分布式数据库以外,还有一种类型的数据库是非常常用,而且是非常有必要的,就是实时数据库,以及时序数据库。 但是,大家可能会有疑问,都是专门处理时序数据...
  • 当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据...
  • 国产数据库岁末大盘点

    千次阅读 2019-12-14 14:02:43
    由于Oracle数据库并不能满足阿里在促销时的并发场景需求,所以阿里的IT人决定自主研发一款分布式金融级数据库,在普通硬件上实现金融级高可用,在金融行业首创“三地五中心”城市级故障自动无损容灾新标准,同时具备...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,313
精华内容 69,725
关键字:

数据库硬件需求