2、数据库需求分析阶段详解

下面将详细介绍

需求分析阶段

需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。

常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表并请用户填写和查阅与业务相关的数据记录等。

常用的需求分析方法有调查客户的公司组织情况,各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。

无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:

  1. 收集信息
  2. 标识实体
  3. 标识每个实体需要存储的详细信息

标识实体之间的关系

1. 收集信息

创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单来说,就是要了解数据库中需要存储哪些信息(数据),实现哪些功能。

下面以酒店管理系统为例,我们需要了解酒店管理系统的具体功能,以及在后台数据库中保存的数据,如以下需求:

  • 酒店为客人准备充足的客房,后台数据库需要存放每间客房的信息,如客房号、客房类型、价格等。
  • 客人在酒店入住时要办理入住手续,后台数据库需要存放客人的相关信息,如客人姓名、身份证号等。

2. 标识实体

在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体可以是有形的事物,如人或产品,也可以是无形的事物,如商业交易、公司部门或发薪周期。

在系统中标识这些实体以后,与它们相关的实体就会条理清楚。以酒店管理系统为例,我们需要标识出系统中的主要实体。

  • 客房:单人间、标准间、三人间、豪华间和总统套房。
  • 客人:入住酒店客人的个人信息。

注意:实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。

数据库中每个不同的实体都拥有一个与之相对应的表,按照以上的酒店管理系统需求,在酒店管理系统数据库中,会对应至少两张表,分别是客房表和客人表。

3. 标识每个实体需要存储的详细信息

将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单的说,就是需要细分出每个实体中包含的子成员信息。

下面以酒店管理系统为例,逐步分解每个实体的子成员信息,如下:

  • 客房:客房号、客房类型、客房状态、客房描述、床位数、入住人数、价格
  • 客人:客人姓名、身份证号、客人编号、入住日期、结账日期、押金、总金额

在进行实体属性分解时,含义相同的成员信息不能重复出现,如联系方式和电话等。

每个实体对应一张表,实体中的每个子成员分别对应表中的每一列。例如,从上述关系可以看出客人应该包含姓名和身份证号等列。

4. 标识实体之间的关系

关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息,不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。

在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。

以酒店管理系统为例,客人与客房有主从关系,我们需要在客房实体中标明其入住的客房号。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库中的split函数通常用于将一个字符串按照指定的分隔符拆分成多个子字符串,并将这些子字符串以数组的形式返回。它的语法通常如下: ``` split(string, delimiter) ``` 其中,string表示要被拆分的字符串,delimiter表示分隔符。该函数的返回值是一个数组,包含被分隔后的所有子字符串。 以下是一些常见的数据库中split函数的用法: 1. MySQL中的split函数: MySQL中没有原生的split函数,但可以使用SUBSTRING_INDEX函数来实现类似的功能。例如: ``` SELECT SUBSTRING_INDEX('a,b,c', ',', 1) AS col1, SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c', ',', 2), ',', -1) AS col2, SUBSTRING_INDEX('a,b,c', ',', -1) AS col3; ``` 该语句会将字符串'a,b,c'按照','分隔成三个子字符串'a'、'b'和'c',并将它们分别存储在名为col1、col2和col3的列中。 2. Oracle中的split函数: Oracle中也没有原生的split函数,但可以使用REGEXP_SUBSTR函数来实现类似的功能。例如: ``` SELECT REGEXP_SUBSTR('a,b,c', '[^,]+', 1, 1) AS col1, REGEXP_SUBSTR('a,b,c', '[^,]+', 1, 2) AS col2, REGEXP_SUBSTR('a,b,c', '[^,]+', 1, 3) AS col3; ``` 该语句会将字符串'a,b,c'按照','分隔成三个子字符串'a'、'b'和'c',并将它们分别存储在名为col1、col2和col3的列中。 3. SQL Server中的split函数: SQL Server中有一个内置的STRING_SPLIT函数,可以直接用于对字符串进行分隔。例如: ``` SELECT value FROM STRING_SPLIT('a,b,c', ','); ``` 该语句会将字符串'a,b,c'按照','分隔成三个子字符串'a'、'b'和'c',并将它们存储在名为value的列中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值