在应用环境中如何构造最优的数据库模式

作者:fen 来源:赛迪网 时间:2009-04-01 14:28:00 

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

(在数据库领域内,经常把使用数据库的各类系统统称为数据库应用系统)。

一、数据库和信息系统

(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的

功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。

(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。

(3)数据库设计是信息系统开发和建设的重要组成部分。

(4)数据库设计人员应该具备的技术和知识:

数据库的基本知识和数据库设计技术

计算机科学的基础知识和程序设计的方法和技巧

软件工程的原理和方法

应用领域的知识

二、数据库设计的特点

数据库建设是硬件、软件和干件的结合

三分技术,七分管理,十二分基础数据

技术与管理的界面称之为“干件”

数据库设计应该与应用系统设计相结合

结构(数据)设计:设计数据库框架或数据库结构

行为(处理)设计:设计应用程序、事务处理等

结构和行为分离的设计

传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计。

如图:

三、数据库设计方法简述

手工试凑法

设计质量与设计人员的经验和水平有直接关系

缺乏科学理论和工程方法的支持,工程的质量难以保证

数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价

规范设计法

手工设计方法

基本思想

过程迭代和逐步求精

规范设计法

典型方法:

(1)新奥尔良(New Orleans)方法:将数据库设计分为四个阶段

S.B.Yao方法:将数据库设计分为五个步骤

I.R.Palmer方法:把数据库设计当成一步接一步的过程

(2)计算机辅助设计

ORACLE Designer 2000

SYBASE PowerDesigner

四、数据库设计的基本步骤

数据库设计的过程(六个阶段)

1.需求分析阶段

准确了解与分析用户需求(包括数据与处理)

是整个设计过程的基础,是最困难、最耗费时间的一步

2.概念结构设计阶段

是整个数据库设计的关键

通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型

3.逻辑结构设计阶段

将概念结构转换为某个DBMS所支持的数据模型

对其进行优化

4.数据库物理设计阶段

为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)

5.数据库实施阶段

运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果

建立数据库,编制与调试应用程序,组织数据入库,并进行试运行

6.数据库运行和维护阶段

数据库应用系统经过试运行后即可投入正式运行。

在数据库系统运行过程中必须不断地对其进行评价、调整与修改

设计特点:

在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。

五、数据库各级模式的形成过程

1.需求分析阶段:综合各个用户的应用需求

2.概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)

3.逻辑设计阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式。

标签:应用环境,构造,数据库,模式
0
投稿

猜你喜欢

  • Django中的JWT身份验证的实现

    2022-10-28 23:01:54
  • 超长文章的智能分页-支持HTML

    2008-03-20 13:21:00
  • Tensorflow2.1实现Fashion图像分类示例详解

    2021-01-28 03:59:52
  • python开根号实例讲解

    2022-10-03 12:29:07
  • python模拟登录百度贴吧(百度贴吧登录)实例

    2023-11-20 14:30:56
  • python异常处理try except过程解析

    2021-06-23 14:53:29
  • 基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)

    2024-04-16 08:49:09
  • Python实现的井字棋(Tic Tac Toe)游戏示例

    2023-03-08 23:22:34
  • 分享css处理浏览器兼容问题上的小技巧

    2008-02-03 14:41:00
  • Vue项目之学生管理系统实例详解

    2024-04-28 09:31:57
  • JavaScript中的fontsize()方法使用详解

    2024-06-05 09:55:25
  • 网站登录持久化Cookie方案

    2023-07-01 01:44:17
  • js版sliderBar(滑动条)控件

    2008-10-18 15:59:00
  • 详细总结Python常见的安全问题

    2022-04-22 14:19:20
  • Python模块相关知识点小结

    2022-04-12 06:58:23
  • Coda 前端开发插件 F2E Tools

    2009-09-22 14:53:00
  • 程序猿新手学习必备的Python工具整合

    2024-01-02 00:53:26
  • Python用Pillow(PIL)进行简单的图像操作方法

    2022-06-10 10:29:49
  • Chrome V8 引擎对 sort 的优化

    2010-02-04 17:27:00
  • Python爬取网站图片并保存的实现示例

    2023-06-05 18:01:29
  • asp之家 网络编程 m.aspxhome.com