资料总结分享:数据库:1.设计概念

server/2024/9/23 9:26:28/

       

目录

1 数据库设计任务

3 数据库设计方法

4 数据库设计的基本步骤

4.1 需求分析阶段

4.2 概念结构设计阶段

4.3 逻辑结构设计阶段

4.4 物理结构设计

4.5 数据库的实施阶段

4.6 数据库的运行和维护阶段

5 数据库结构设计阶段

6 数据库设计与模式结构

        根据一个单位的信息需求、处理需求、数据库的支撑环境和数据库的设计特点,按照规范化设计的方法,考虑数据 库及其应用系统开发全过程,设计数据模式以及典型的应用程序,就是所谓的数据库设计。数据库设计通常包括需求分析, 概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护六个阶段。

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

1 数据库设计任务

        数据库设计的基本任务是:根据一个单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统和硬件),设计出数据模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。其中信息需求表示一个单位所需要的数据及其结构。处理需要表示一个单位需要经常进行的数据处理,前者表达了数据库的内容性结构的要求,也是静态的要求,后者表达了基于数据库的数据处理要求,也是动态的要求。DBMS、操作系统和硬件是建立数据库的软、硬件基础,也是其制约因素。数据库的设计成果有两个:一是数据模式,二是以数据库为基础的典型应用程序。应用程序是随着应用而不断发展的,在有些数据库系统中(例如情报检索),事先很难编出所需要的应用程序或事务。因此,数据库设计的最基本的成果是数据模式。不过,数据模式的设计必须适应数据处理的要求,保证大多数常用的数据处理能够方便、快速地进行。

2 数据库的设计特点

        “三分技术,七分管理,十二分基础数据”是数据库建设的基本规律。技术与管理的界面(称之为“干件”)十分重要。数据库建设是硬件、软件和干件的结合。这是数据库的设计特点之一。

数据库设计应该和应用系统相结合,也就是说:整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来,这是数据库设计的特点之二。结构设计和行为设计这两部分紧密相关、相辅相成,组成统一的数据库工程。图 1 是结构设计和行为设计的示意图:

3 数据库设计方法

        数据库规范设计法中比较著名的有新奥尔良(New Orleans)方法:将数据库设计分为四个阶段:需求分析、概念设计、逻辑设计和物理设计。有人将数据库设计分为五个步骤。又有人把数据库设计当成一步接一步的过程,并采用一些辅助设计实现每一个过程。

        基于 E- R 模型数据库设计方法,基于 3NF 的设计方法,基于抽象语法规范的设计方法等,是数据库设计的不同阶段上支持实现的具体技术和方法。规范设计法从本质上看仍然是手工设计方法,其基本思想是过程迭代和逐步求精的过程。

4 数据库设计的基本步骤

        按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段性,如图 2 所示。需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。

数据库设计的整个过程中,需求分析可以独立于任何的数据库管理系统,而逻辑设计和物理设计则与具体的数据库管理系统密切相关。下面分别介绍数据库设计的每个步骤:

4.1 需求分析阶段

        进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理),需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。

4.2 概念结构设计阶段

        概念结构设计的目标是产生反映全组织信息需求的整体数据库概念结构,即概念模式。概念模式是整个组织各个用户共同关心的信息结构,它必须独立于计算机的任何数据模型,不受特定的数据库管理系统的限制,不考虑计算机软硬件技术细节,方便与用户进行交流。在需求分析阶段得到的数据流图对数据的动态运动轨迹进行了描述,数据字典定义了数据本身的静态特征。它们反映的仅仅是应用需求,并没有反映数据之间的本质联系,即数据内在特征。描述概念结构的工具是 E- R 图。用实体联系方法对具体数据进行抽象加工,将实体集合抽象成实体类型,用实体间联系的类型反映现实世界事物间的内在联系。概念结构设计又可分为局部视图设计和视图集成两个步骤,如图 3 所示。

        在此阶段,用户可以参与和评价数据库的设计,从而有利于保证数据库的设计与用户的需求相吻合。

4.3 逻辑结构设计阶段

        在逻辑设计阶段,将第二步所得的数据库概念模式,转换成以 DBMS的逻辑数据模型表示的逻辑模式。数据库逻辑设计的目标是满足用户的完整性和安全性要求,能在逻辑级上高效率地支持各种数据库事务的运行。数据库的逻辑设计不仅涉及数据模型的转换问题,而且涉及进一步深入解决数据模式设计中的一些技术问题。例如数据模式的规范化、满足 DBMS各种限制等。数据库逻辑设计的结果以数据定义语言(DDL)表示。由于 SQL语言是综合性语言,DDL就相当于 SQL中定义关系模式部分。

4.4 物理结构设计

        在数据库物理设计阶段,根据数据库的逻辑和概念模式、DBMS 及计算机系统所提供的功能和施加的限制,设计数据库文件的物理存储结构、各种存取路径、存储空间的分配、记录的存储格式等。数据库的物理模式虽不直接面向用户,但对数据库的性能影响较大,所以此阶段也较重要。

4.5 数据库的实施阶段

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

4.6 数据库的运行和维护阶段

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

5 数据库结构设计阶段

        设计一个完整的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。需要指出的是,这个设计步骤是数据库设计的过程,包括了数据库应用系统的设计过程。在设计过程中把数据库设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段现时进行,相互参照,相互补充,以完善两个方面的设计。按照这个原则,设计过程各个阶段的设计描述,可用图 4 概括地给出。

6 数据库设计与模式结构

按照上述的设计过程,在不同的设计阶段将逐步形成数据库的三层模式。

1)需求分析阶段,综合用户的应用需求;

2)概念设计阶段,形成独立于数据库管理系统

DBMS 的概念模式;

3)逻辑设计阶段,将概念模式(可用 E- R 图描述)转换成 DBMS 支持的数据模型(如关系模型),形成数据库的逻辑模式;

4)根据用户处理的要求和安全性的考虑,在基本表的基础上建立必要的视图,形成数据库的外模式;

5)物理设计阶段,根据 DBMS 的特点和处理的需求,选择存储结构,建立索引,形成数据库的内模式。数据库的设计阶段与数据库模式结构之间的联系如图 5 所示。

本文主要来自文献《数据库设计》和其它资料,只为学习交流,不为获利,侵权联系立删。

接下来,我会继续分享。


http://www.ppmy.cn/server/23561.html

相关文章

C语言 | Leetcode C语言题解之第46题全排列

题目: 题解: void swap(int * nums,int indexA,int indexB) {int temp nums[indexA];nums[indexA] nums[indexB];nums[indexB] temp; }void prem(int* nums, int numsSize, int* returnSize, int** returnColumnSizes,int** returnNums,int offset)…

MATLAB中左边的大括号最后一行为什么会留很大的空白——解决

看了一些帖子说改字体,但是并没有什么用,在此给出亲测有效的方法:改变矩阵的行间距 先说一下问题 上图中留有大块空白 **解决办法:**光标放在矩阵上 格式——矩阵——更改矩阵,在矩阵设置中选中“行高相等”&#xff…

按下按键点亮灯-第二天

1.按下亮,松开不亮 #include "reg52.h"sbit key1 P2^1; sbit ledone P3^7; void main() {//while(1){if(key1 0){ //ledone 0;break;}else if(key1 1){ledone 1;break;}} }

Android Studio的button点击事件

xml添加onClick调用方法 public class MainActivity extends AppCompatActivity {// 创建系统时间的文本控件TextView systemTimeTextView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activit…

【智能优化算法】粒子群优化KNN分类算法【附python实现代码】

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

C++之const

const是C中的关键字&#xff0c;又叫常量限定符&#xff0c;作用是告知编译器const修饰的变量是不可修改的。 1、const修饰常量 1.1、修饰常量 #include <iostream> using namespace std;int main(int argc, char argv[]) {// 在修饰常量时&#xff0c;int const和con…

怎么给字符串字段加索引?

怎么给字符串字段加索引&#xff1f; 现在&#xff0c;几乎所有的系统都支持邮箱登录&#xff0c;如何在邮箱这样的字段上建立合理的索引&#xff0c;是我们今天要讨论的问题。 假设&#xff0c;你现在维护一个支持邮箱登录的系统&#xff0c;用户表是这么定义的&#xff1a; …

2024-4-29

今日流水账&#xff1a; 上午&#xff1a; 还是在看相关源码&#xff0c;搞懂了 unix socket 和 inet soeket 的区别&#xff0c;并且终于搞懂了 SCM_RIGHTS 一些源码的细节&#xff0c;太不容易了~~~&#xff0c;但还是感觉效率不高&#xff0c;下午的把效率提起来了 下午&am…