zoukankan      html  css  js  c++  java
  • 数据库设计概述

    数据库设计概述

    数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求,包括信息需求和处理需求。

    • 信息需求:表示一个单位所需要的数据及其结构,该部分的数据库设计是将应用系统所要用到的所有信息描述成实体、属性及实体间的联系,主要用来描述数据之间的联系。
    • 处理需求:表示一个单位需要经常进行的数据处理,该部分的数据库设计是将要进行的数据处理描述为操作的优先次序、操作执行的频率和场合,主要用来描述操作与数据之间的联系。
    • 信息需求表达了对数据库的内容及结构的要求,是静态要求,处理需求表达了基于数据库的数据处理要求,是动态要求。

    ​ 由于数据库系统的复杂性及其与环境联系的密切性,使得数据库设计成为一个困难、复杂和费时的过程。大型数据库设计和实施涉及多学科的综合与交叉,是一项开发周期长、耗资巨大、风险较高的工程,因此,一个从事数据库设计的专业人员至少应该具备以下4个方面的技术和知识:

    • 数据库的基本知识和数据库设计技术。
    • 计算机科学的基础知识和程序设计的方法和技巧。
    • 软件工程的原理和方法。
    • 应用领域的知识。

    数据库设计的任务

    ​ 数据库系统的设计主要包括数据库的结构特性设计以及数据库的行为特性设计。

    • 设计数据库的结构特性,是为特定应用环境构造出最优的数据模型。
    • 设计数据库的行为特性,是建立满足各种用户对数据库应用需求的功能模型。
    • 设计数据库系统,首先应进行结构设计,数据库结构设计是否合理,直接影响到系统中各个处理过程的性能和质量。另一方面,结构特性又不能与行为特性分离,静态的结构特性的设计与动态的行为特性的设计分离,会导致数据与程序不易结合,增加数据库设计的复杂性。

    数据库设计的原则

    • 不依赖性原则:指数据库系统对各种原始成果数据的格式和内容进行存储和管理,对数据的存储和管理不依赖于某个特定的软件系统。
    • 开放性原则:指系统不限定数据的存储格式,即原则上能存储任意格式的数据,在系统中,数据的存储位置、存储方法、数据格式等对系统管理者来说是透明的和开放的,原则上没有数据黑匣子。系统管理员能够知道数据以什么样的格式存放在系统中的什么位置,为实现真正意义上的数据管理(特别是数据备份)提供条件。
    • 可扩展性原则:随着新数据源的出现和用户需求的增加,今后数据库所包含的数据种类可能会比现在多,因此要求系统具有一定的可扩充性。当增加新种类的数据时,系统只要在原来的基础上增加一个对新数据的管理模块和若干数据库表后,就可实现对新数据的存储和管理。此外,数据的可扩展性还包含数据服务的可扩展性,生产出的数据和建立的数据库系统,不仅要能满足用户今天的要求,还应该考虑到用户在未来几年内可能提出的从数据的种类到数据服务的方式等方面的新的需求。
    • 检索和管理的高效性原则:数据库系统的重点是对数据的管理和数据的提供,因此如何高效地实现“知道有什么数据、在什么地方、迅速提取数据并加工成用户所要求的产品”,是进行系统设计时考虑的一个主要因素。

    设计的方法

    • 规范设计法:比较著名的有新奥尔良方法,它将数据库设计分为4个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。 其后,许多科学家对此进行了改进,认为数据库系统设计应分6个阶段进行,分别是需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行及维护。
    • 基于E-R模型的设计方法、基于3NF(第三范式)的设计方法、基于抽象语法规范的设计方法等。
    • 数据库设计工具:经过多年努力,数据库设计工具已经实用化和产品化。例如,Design 2000和PowerDesigner,分别是Oracle公司和Sybase公司推出的数据库设计工具软件,这些工具软件可以自动或辅助设计人员完成数据库设计过程中的很多任务,特别是大型数据库的设计需要自动设计工具的支持。

    设计的步骤

    ​ 在数据库需求分析的基础上,按照规范化、结构化设计方法,将数据库设计分为以下三个步骤:

    • 逻辑结构设计:将系统需求分析的结果设计成数据库的逻辑模式,即适应于某种特定DBMS所支持的逻辑数据模型,与此同时,还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果是“逻辑数据库”。
    • 物理结构设计:根据特定DBMS所提供的、依赖于具体计算机结构的多种存储结构和存取方法等,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序等)、存取方法和存取路径等。这一步设计的结果是“物理数据库”。
    • 验证设计:在逻辑结构、物理结构设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务,来验证数据库设计的正确性和合理性,当发现问题时,可能需要返回到前面的步骤进行修改。一般一个大型数据库的设计过程往往需要经过多次循环反复,因此,在做上述数据库设计时,就应考虑到今后修改设计的可能性和方便性。
  • 相关阅读:
    [BZOJ2296] [POJ Challenge] 随机种子
    [BZOJ1026] [SCOI2009] windy数 (数位dp)
    [BZOJ1306] [CQOI2009] match循环赛 (搜索)
    [BZOJ2654] tree (kruskal & 二分答案)
    [BZOJ3506] [Cqoi2014] 排序机械臂 (splay)
    [BZOJ1552] [Cerc2007] robotic sort (splay)
    [BZOJ3110] [Zjoi2013] K大数查询 (树套树)
    BZOJ3611: [Heoi2014]大工程
    BZOJ2286: [Sdoi2011]消耗战
    BZOJ3876: [Ahoi2014]支线剧情
  • 原文地址:https://www.cnblogs.com/vvlj/p/12750688.html
Copyright © 2011-2022 走看看