数据库及其应用系统开发的6个阶段

2024-05-09
来源:网络整理

根据标准化设计方法,考虑数据库及应用系统开发的全过程,数据库设计可分为以下六个阶段,即:1.需求分析,2.概念结构设计,3.逻辑结构设计,4.物理结构设计,5.数据库实现,6.数据库运维。

数据库设计通常分为6个阶段1(1需求分析:分析用户需求,包括数据、功能和性能需求;2概念结构设计:主要使用ER模型进行设计,包括绘制ER图;3逻辑结构设计:通过将ER图转化为表,实现ER模型到关系模型的转换; 4.数据库物理设计:主要是为设计的数据库选择合适的存储结构和访问路径; 5.数据库实现:包括编程、测试等;试运行;6数据库运维:系统操作和数据库的日常维护),现在我们主要讨论第三阶段,即逻辑结构设计。

在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,而逻辑设计和物理设计则与所选的DAMS密切相关。

1、需求分析阶段(常用自上而下)

数据库设计首先必须准确理解和分析用户需求(包括数据和处理)。 需求分析是整个设计过程的基础,也是最困难、最耗时的步骤。 需求分析是否充分、准确,决定了在此基础上构建数据库的速度和质量。 如果需求分析没做好,整个数据库设计就要返工、重做。

需求分析的任务是通过对现实世界中待处理对象的详细调查,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能。 新系统还必须充分考虑未来可能的扩展和变化,不能仅仅根据当前的应用需求来设计。

调查的重点是数据和处理。 满足信息要求、处理要求、安全性和完整性要求。

常用的分析方法是SA()结构分析方法。 SA方法从顶层系统组织结构出发,采用自上而下、逐层分解的方法对系统进行分析。

数据流图表达了数据和处理之间的关系。 在SA方法中,常常借助决策表或决策树来描述处理的处理逻辑。 在处理功能逐步分解的同时,系统中的数据也逐步分解,形成多层数据流图。 系统中的数据是借助数据字典(data,DD)来描述的。 数据字典是系统中各种数据描述的集合。 数据字典通常包括五个阶段:数据项、数据结构、数据流、数据存储和处理。

2.概念结构设计阶段(常用自下而上)

概念结构设计是整个数据库设计的关键。 它通过综合、概括和抽象用户需求,形成独立于具体DBMS的概念模型。

设计概念结构通常有四种方法: (1) 自上而下。 即先明确全局概念结构的框架,然后逐步细化。 (2)自下而上。 即首先定义各个局部应用的概念结构,然后将它们整合以获得全局概念结构。 (三)逐步扩大。 首先定义最重要的核心概念结构,然后向外扩展,以滚雪球的方式逐渐生成其他概念结构,直至整体概念结构。 (4)混合策略。 即自上而下和自下而上的结合。

3.逻辑结构设计阶段(ER图)

逻辑结构设计是将概念结构转换为某种DBMS支持的数据模型并对其进行优化。 在这个阶段,ER图极其重要。 每个人都必须学习每个实体定义的属性才能绘制整体的ER图。 ER图之间的冲突主要有三种类型:属性冲突、命名冲突和结构冲突。 在将ER图转换为关系模型时,要解决的问题是如何将实体以及实体之间的联系转换为关系模型,以及如何确定这些关系模型的属性和代码。

4.物理设计阶段

物理设计就是为逻辑数据结构模型选择最适合应用环境的物理结构(包括存储结构和访问方式)。 首先,我们需要详细分析正在运行的事务,以获得选择物理数据库设计所需的参数。 其次,我们需要充分了解所使用的数据库的内部特性,特别是系统提供的访问方式和存储结构。 常用的访问方式有三类: 1、索引方式,目前主要是B+树索引方式。 2.聚类()方法。 3、是HASH方法。

5.数据库实施阶段

在数据库实现阶段,设计人员操作DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编译和调试应用程序,将数据组织到数据库中,并进行试运行。

6、数据库运维阶段

数据库应用系统试运行后即可正式运行。 数据库系统在运行过程中,必须不断地评估、调整、修改。

数据库设计的五个步骤

1. 确认并

a) 澄清宏观行为。 数据库是用来做什么的? 例如,管理员工信息。

b) 好的。 对于一系列的操作,确定所管理的信息的主题范围。 这将成为。 例如,雇用员工、分配特定部门以及确定技能水平。

c) 好的。 分析行为以确定它们之间的关系。 例如,部门和员工之间存在关系。 给这种关系起一个名字。

d) 改进行为。 从宏观行为开始,现在仔细检查这些行为,看看哪些行为可以转化为微观行为。 例如,管理员工信息可以细化为:

·增加新员工 ·修改存在员工信息 ·删除调走的员工

e) 确定业务规则。 分析业务规则以确定您想要采用哪一种。 例如,可能有一条规定,一个部门只能有一名部门领导。 这些规则将被设计到数据库的结构中。

例子:

ACME 是一家小公司,在 5 个地点设有办事处。 目前,有员工75人。 该公司准备迅速扩张,并分为九个部门,每个部门都有自己的领导者。

为了帮助寻找新员工,人事部门规划了68项技能,为未来的人事管理做好准备。 招聘员工时,会确定每种技能的专业水平。

定义宏观行为

ACME 公司的一些宏观行动包括:

● 招聘员工

● 消防员工

●管理员工个人信息

● 有关管理公司所需技能的信息

● 管理哪些员工拥有哪些技能

● 管理部门信息

● 管理办公信息

好的并且

我们可以识别要存储信息的主题区域(表)及其关系,并根据宏观行为和描述创建图表。 我们用方框来表示,用菱形来表示。 我们可以确定哪些是一对多、一对一、多对多。

这是 ER 草图,稍后将进行完善。

细化宏观行为

基于上述宏观行为,形成以下微观行为:

● 添加或删除员工

● 添加或删除办事处

● 列出部门中的所有员工

● 添加技能

● 为员工添加一项技能

● 确定员工的技能

● 确定员工各项技能的水平

● 识别具有相同技能水平的所有员工

● 修改员工技能等级

这些微观行为可用于确定需要哪些行为。

确定业务规则

业务规则通常用于确定一对多、一对一和多对多关系。

相关业务规则可能包括:

● 目前设有5个办事处; 最多允许扩展 10 个。

● 员工可以更换部门或办公室

● 各部门设一名部门领导

● 每个办公室最多 3 个电话号码

● 每个电话号码一个或多个分机

● 在招聘员工时,就确定了各项技能的专业水平。

● 每个员工拥有3至20项技能

● 员工可能会也可能不会被分配到某个办公室。

2.确定所需数据

确定所需数据:

a) 确定支持数据

b) 列出要跟踪的所有数据。描述性(主题)数据回答以下问题:人物、事件、地点、时间和原因

c) 为每个数据创建数据

d) 列出目前看来合适的所有可用数据

e) 为每个设置数据

f) 如果适用,请列出每个的适用数据

确定支持数据

您确定的支持数据将成为 中的字段名称。 例如,以下数据将适用于表、表、表中。

如果您绘制此数据的图表,它将如下所示:

需要注意:

● 在识别支持数据时,请务必参考您之前识别的宏观行为,以了解如何利用数据。

● 例如,如果您知道需要按姓氏排序的所有员工的列表,请确保将支持数据分解为名字和姓氏,这比简单提供名字更好。

● 您选择的名称最好保持一致。 这将使维护数据库更容易,并且更容易阅读输出报告。

● 例如,如果在某些地方使用缩写名称,则不应在其他地方使用全名()。 相反,这些名称应该是 and。

● 数据是否正确并不重要,您可以根据自己的喜好来决定。 在下一节中,您将对此进行测试。

公司小程序开发6大步骤_公司开发小程序流程_开发程序的步骤

3.标准化数据

规范化是用于消除数据冗余并确保数据正确或相关的一系列测试。 总共有5个测试。 在本节中,我们将讨论 3 个常用的。

有关标准化测试的更多信息,请参阅有关数据库设计的书籍。

标准化格式

标准化格式是测试标准化数据的常用方法。 当你的数据通过第一次测试后,就被认为已经达到了第一个标准化格式; 通过第二次测试后,已达到第二标准化格式; 通过第三次测试后,就达到了第三种标准化格式。

如何标准格式:

1.列出数据

2. 为每个表至少确定一个键。 每个表都必须有一个主键。

3.确定键。 键是连接两个表的键。

4. 检查计算数据支持的数据列表。 计算的数据通常不保存在数据库中。

5. 将第一遍数据采用标准化格式:

6. 从 和 中删除重复数据。

7. 根据您删除的数据创建一个或多个 AND。

8. 将数据置于标准化格式中以进行第二遍:

9. 用多键确认 和 。

10. 删除仅依赖于部分密钥的数据。

11. 根据您删除的数据创建一个或多个 AND。

12. 将第三遍数据采用标准化格式:

13. 删除依赖于 或 中其他数据并且不是键的数据。

14. 根据您删除的数据创建一个或多个 AND。

数据和密钥

在开始标准化(测试数据)之前,只需列出数据并确定每个表的唯一主键。 该密钥可以由一个字段或多个字段(链式密钥)组成。

主键是表中唯一区分每一行的一组字段。 表的主键是 ID 字段。 In 中的主键包括 Code 和 ID 字段。 给定数据库中每个密钥的密钥,从它连接到的每个链接中提取该密钥。

在第一遍中将数据采用标准化格式

● 删除重复组

● 要测试标准化格式的第一遍,请删除重复的组并将它们放入自己的表中。

● 在下面的例子中,可以重复。 (一名工作人员可以有多个电话号码。)删除重复的组并创建一个名为 的新表。 并创建一个名为With.

将数据设置为标准化格式以进行第二遍

● 删除不依赖于整个密钥的数据。

● 只看那些有不止一把钥匙的。 要测试规范化格式的第二遍,请删除不依赖于整个键(组成键的所有字段)的任何数据。

● 在本例中,原表有一个由两个字段组成的键。 有些数据并不依赖于整个密钥; 例如,名称仅取决于键之一(ID)。 因此,ID 由于其他数据不依赖于它,因此应将其移至名为 To 的新表并创建名为 To 的新表。

将第三遍数据采用标准化格式

● 删除不直接依赖于密钥的数据。

● 要测试标准化格式的第三遍,请删除不直接依赖于密钥但依赖于其他数据的数据。

● 在此示例中,原始表具有依赖于其键(ID)的数据。 然而, 和 取决于其他字段,即 Code。 它们不直接依赖于 ID 密钥。 将这组数据(包括 Code)移动到名为 In for and 的新表中并创建一个名为 In for and 的表。

4.考虑关系

当您完成标准化过程时,您的设计就基本完成了。 您需要做的就是考虑这种关系。

考虑与数据的关系

您的一些可能的集合包含数据。 这经常发生在多对多关系中。

在这种情况下,它将被转换为一个。 的键仍然成为 的键。

考虑没有数据的关系

要实现没有数据的关系,您需要定义外键。 外键是包含另一个表中的主键的一个或多个字段。 外键使您能够同时连接多个表中的数据。

有一些基本原则可帮助您决定将这些键放置在何处:

一对多 在一对多关系中,“一”中的主键放在“多”中。 在此示例中,外键放置在表中。

一对一 在一对一关系中,外键可以放置在任一表中。 如果必须放置在一侧而不能放置在另一侧,则应放置在必要的一侧。 在此示例中,外键(Head ID)位于表中,因为它是必需的。

多对多 在多对多关系中,创建一个具有两个外键的新表。 现有的旧表通过这个新表关联。

5. 检查设计

在最终确定设计之前,您需要确保它满足您的需求。 检查您在开始时定义的行为,以确保您可以获得该行为所需的所有数据:

● 您能找到获取所需所有信息的途径吗?

● 设计是否满足您的需求?

● 是否提供了所有必需的数据?

如果您对上述所有问题的回答都是肯定的,那么您的设计就差不多完成了。

最终设计

最终设计如下:

设计数据库表属性

数据库设计需要确定有哪些表以及每个表有哪些字段。 本节讨论如何指定每个字段的属性。

对于每个字段,您必须决定字段名称、数据类型和大小、是否允许 NULL 值以及是否希望数据库限制字段中允许的值。

选择字段名称

字段名称可以是字母、数字或符号的任意组合。 但如果字段名包含字母、数字或下划线,且不以字母开头,或者是关键字(详见关键字表),则使用时必须将字段名用双引号引起来。

选择字段的数据类型

SQL支持的数据类型包括:

整数 (int, , )

小数 (, )

浮点数 (, )

字符类型(char、, long)

二进制数据类型 (, long)

日期/时间类型(日期、时间、)

用户定义类型

有关数据类型的信息,请参阅“SQL 数据类型”部分。 字段的数据类型影响字段的最大大小。 例如,如果您指定,此字段可以保存整数 32,767。 可以容纳 2,147,483,647 个整数。 对于 CHAR,必须指定字段的最大值。

长二进制数据类型可用于在数据库中存储图像(例如位图)或文本编辑文档。 这些类型的信息通常称为二进制大对象,或。

有关每种数据类型的完整描述,请参阅“SQL 数据类型”。

空和非空

如果需要字段值,则将该字段定义为 NOT NULL。 否则,该字段值可以为NULL值,即可以有空值。 SQL 中默认允许 NULL 值; 您应该将字段显式定义为 NOT NULL,除非您有充分的理由将其设置为允许 NULL 值。

有关 NULL 值的完整说明,请参阅“NULL”。 其比较用法参见“”。

选择约束条件

尽管字段的数据类型限制了字段中可以存储的数据(例如,只能存储数字或日期),但您可能希望进一步限制允许的值。

您可以通过指定“”约束来限制任何字段的值。 您可以使用子句中出现的任何有效条件来约束允许的值,尽管大多数约束使用 OR 条件。

分享