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

news2025/1/12 23:01:11

       

目录

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.coloradmin.cn/o/1623690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

比特币减半倒计时:NFT 生态将受到怎样的影响?

BTC 减半倒计时仅剩不到 1 天,预计在 4 月 20 日迎来减半。当前区块奖励为 6.25 BTC,减半后区块奖励为 3.125 BTC,剩余区块为 253。比特币减半无疑是比特币发展史上最重要的事件之一,每当这一事件临近,整个加密社区都充…

qt tcp 连接 秒断连

问题: tcp连接总是秒成功后断连 debug会出现下面这些 onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFDA2A1D93D: (caller: 00007FFDD8BEACF6) LogHr(1) tid(336c) 8007277C ¡£¡£ one…

Python交换两个变量的值

问题 python交换两个变量的值很简单: x, y y, x 复制号右侧的元祖会首先计算内部的值,然后安装从左到右的顺序,依次赋值给赋值号右侧的变量。 有一种情况需要注意: 如图,交换下标为0的数字2和下标为2的数字4。返回…

在React函数组件中使用错误边界和errorElement进行错误处理

在React 18中,函数组件可以使用两种方式来处理错误: 使用 ErrorBoundary ErrorBoundary 是一种基于类的组件,可以捕获其子组件树中的任何 JavaScript 错误,并记录这些错误、渲染备用 UI 而不是冻结的组件树。 在函数组件中使用 ErrorBoundary,需要先创建一个基于类的 ErrorB…

加州大学欧文分校英语中级语法专项课程01:Perfect Tenses and Modals 学习笔记

Perfect Tenses and Modals course certificate 本文是学习https://www.coursera.org/learn/perfect-tenses-modals?specializationintermediate-grammar 这门课的学习笔记,如有侵权,请联系删除。 这门课是如下专项中的一门:Learn English:…

【前端】3. CSS【万字长文】

CSS 是什么 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. CSS 就是 “东方四大邪术” 之化妆术. 基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁)声明决…

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台&…

前端发送请求,显示超时取消

前端发送请求,显示超时取消 问题说明:后台接口请求60s尚未完成,前端控制台显示取消(canceled) 原因 1、前端设置60s超时则取消 2、后台接口响应时间过长,过长的原因统计的数据量多(实际也才17…

Docker的数据管理、网络通信和dockerfile

目录 一、Docker的数据管理 1. 数据卷 1.1 数据卷定义 1.2 数据卷配置 2. 数据卷容器 2.1 创建数据卷容器 2.2 使用--volume-from来挂载test1 二、端口映射 三、容器互联 1. 创建容器互联 ​编辑2. 进入test2测试(ping 容器名/别名) 四、Dock…

进制转换问题

1.十进制转二进制&#xff08;善于使用__int128&#xff09; 3373. 进制转换 - AcWing题库 #include<bits/stdc.h> using namespace std; __int128 x; int x_; string s1; int main(){stack<int> s;while(cin>>s1){int lens1.size();for(int i0;i<len;i)…

【原创教程】EPLAN如何制作专属的封面

想要给EPLAN制作专属封面吗?没问题,我来给你支个招。在EPLAN设计电气图纸时,封面就是第一印象,得好好弄。咱们以口罩机项目为例,来看看怎么做吧! 首先,得新建个封面。在项目属性里找到表格名称,点那个数值下拉菜单,选择“查找”。在弹出的表格里挑个你喜欢的模版,点击…

jmeter5.4.1源码编译(IDEA)问题解决

问题现象&#xff1a;最近想更深入的研究下jmeter5.4.1的原理及功能具体实现&#xff0c;从官网down了个源码&#xff0c;在本地使用IDEA工具导入项目、编译时&#xff0c;报以下错误&#xff1a; class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast…

P44,45 属性预处理,执行后游戏效果回调,附录指定区域内修改变量

这节课主要是怎么对Attribute进行在进行到游戏角色前先进行处理,以及游戏效果如何回调 AuraAttributeSet.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "AttributeSet.h&…

前端常用样式组元SCSS

* { margin: 0; padding: 0; border: 0; box-sizing: border-box; } #主题色 $primary: #183ee4; $success: #0cce63; $danger: #f00c63; mixin setThemeBgColor($name, $oClor, $start, $end) { .#{$name}-color { color: $oClor } .#{$name}-color-active { color: dark…

MATLAB非均匀网格梯度计算

在matlab中&#xff0c;gradient函数可以很方便的对均匀网格进行梯度计算&#xff0c;但是对于非均匀网格&#xff0c;但是gradient却无法求解非均匀网格的梯度&#xff0c;这一点我之前犯过错误。我之前以为在gradient函数中指定x&#xff0c;y等坐标&#xff0c;其求解的就是…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制婴儿性别比例饼图

在MATLAB 中可以使用 pie 函数来创建饼图。饼图是一种展示不同部分占总体的相对比例的图表。 本示例从“婴儿出生数据.csv”文件读取婴儿出生数据&#xff0c;然后计算男性和女性婴儿的数量&#xff0c;使用MATLAB绘制饼图。 配套图书链接&#xff1a;https://item.jd.com…

用c++实现起泡排序、哈密顿回路问题、TSP问题

5.3.2 起泡排序 【问题】 起泡排序(bubble sort)的基本思想是&#xff1a;两两比较相邻记录&#xff0c;如果反序则交换&#xff0c;直至没有反序的记录&#xff0c;如图5.8所示。【想法】下表给出了一个起泡排序的例子&#xff08;方括号括起来的为无序区&#xff09;&#x…

数组模拟几种基本的数据结构

文章目录 数组模拟单链表数组模拟双链表数组实现栈数组模拟队列总结 数组模拟单链表 首先类比结构体存储单链表&#xff0c;我们需要一个存放下一个节点下标的数组&#xff0c;还需要一个存储当前节点的值的数组&#xff0c;其次就是一个int类型的索引&#xff0c;这个索引指向…

【智能算法】金豺优化算法(GJO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年&#xff0c;N Chopra等人受到金豺狩猎行为启发&#xff0c;提出了金豺优化算法&#xff08;Golden Jackal Optimization, GJO&#xff09;。 2.算法原理 2.1算法思想 GJO 模拟金豺协同狩猎…

vlan的学习笔记2(vlan间通信)

1.使用路由器的物理接口 原理&#xff1a;在二层交换机上配置VLAN&#xff0c;每个VLAN单独使用一个交换机接口与路由器互联。路由器使用两个物理接口&#xff0c;分别作为VLAN 10及VLAN 20内PC的默认网关&#xff0c;使用路由器的物理接口实现VLAN之间的通信。 实验1&#x…