33、数据库设计与管理全解析

数据库设计与管理全解析

一、数据库基础类型与模型

1.1 数据库类型

当前使用的数据库主要有两种类型:操作型数据库和分析型数据库。操作型数据库主要用于联机事务处理(OLTP)场景,而分析型数据库存储静态数据。

1.2 数据库模型发展

在关系数据库模型出现之前,层次和网络数据库模型被广泛使用。关系数据库模型基于集合论和一阶谓词逻辑,它将数据存储在关系中,用户将其视为表。关系数据库中有三种关系:一对一、一对多和多对多。通过 SQL 可以在关系数据库中检索数据。关系数据库具有内置的多级完整性、逻辑和物理数据与数据库应用的独立性、保证数据的一致性和准确性以及易于数据检索等优点。

1.3 数据库模型扩展

对象 - 关系模型通过结合各种面向对象的元素和特性(如类、封装和继承)扩展了关系数据库模型。数据仓库允许组织访问存储在任意数量的关系和非关系数据库中的数据。XML(可扩展标记语言)正迅速成为跨异构系统共享数据的事实上的数据传输标准。

以下是不同数据库模型的特点对比表格:
| 数据库模型 | 基础理论 | 数据存储形式 | 关系类型 | 优点 |
| — | — | — | — | — |
| 层次和网络数据库模型 | 无特定数学理论 | 层次或网络结构 | 复杂 | 早期广泛应用 |
| 关系数据库模型 | 集合论和一阶谓词逻辑 | 表(关系) | 一对一、一对多、多对多 | 多级完整性、数据独立、一致性好、易检索 |
| 对象 - 关系模型 | 结合面向对象元素扩展关系模型 | 结合对象和关系特性 | 多种 | 融合面向对象优点 |

二、数据库设计的重要性与方法

2.1 设计的关键作用

设计对于数据的一致性、完整性和准确性至关重要。不恰当的数据库设计最有害的结果是产生不准确的信息。学习设计方法有诸多优点,包括获得设计合理数据库结构的技能、有组织地指导设计过程、减少设计失误和重复、使设计过程更轻松并减少时间、更充分有效地使用 RDBMS 软件。

2.2 良好设计的目标

良好设计的目标包括支持所需和临时的信息检索、正确高效地构建表、在字段、表和关系级别实施数据完整性、支持与组织相关的业务规则以及便于数据库未来的增长。数据完整性有助于确保数据结构及其值始终有效和准确。应用良好设计技术的好处包括数据库结构易于修改和维护、数据易于修改、信息易于检索以及最终用户应用程序易于开发和构建。

2.3 设计过程中的注意事项

不能在设计过程中走捷径来获得良好的设计。在使用 RDBMS 程序的设计工具之前,应先设计好数据库的逻辑结构。

以下是学习设计方法优点的列表:
- 获得设计合理数据库结构的技能
- 有组织地指导设计过程
- 减少设计失误和重复
- 使设计过程更轻松并减少时间
- 更充分有效地使用 RDBMS 软件

三、数据库设计中的术语与概念

3.1 术语的重要性

术语在表达和定义关系数据库模型的特殊思想和概念、数据库设计过程本身以及在讨论关系数据库或 RDBMS 的任何地方都很重要。术语分为四类:与值相关、与结构相关、与关系相关和与完整性相关。

3.2 基本概念解释

存储在数据库中的值是数据,经过处理使其有意义和有用的是信息。空值表示缺失或未知的值,其主要缺点是对数学运算有不利影响。表是数据库的主要结构,有数据表格、链接表格和验证表格三种类型。视图是由数据库中一个或多个基表的字段组成的虚拟表。键是用于识别表中记录的逻辑结构,索引是用于优化数据处理的物理结构。

3.3 关系与完整性

表之间可以存在一对一、一对多和多对多三种关系,可以从关系类型、参与方式和参与程度三个方面来描述每个关系。字段规范代表字段的所有元素,包含一般、物理和逻辑三种类型的元素。数据完整性指数据库中数据的有效性、一致性和准确性,有字段级、表级、关系级和业务规则四种类型。

以下是术语分类及相关概念的 mermaid 流程图:

graph LR
    A[术语] --> B[值相关]
    A --> C[结构相关]
    A --> D[关系相关]
    A --> E[完整性相关]
    B --> F[数据与信息]
    B --> G[空值]
    C --> H[表]
    C --> I[视图]
    C --> J[键与索引]
    D --> K[表间关系]
    E --> L[数据完整性]

四、数据库设计流程

4.1 设计流程的重要性

彻底完成设计过程有助于确保数据库结构合理和数据完整性。结构完整性的水平与遵循设计过程的彻底程度成正比。

4.2 设计流程步骤

  • 明确使命 :使命声明确定数据库的目的,使命目标代表用户可以对数据库中的数据执行的一般任务。
  • 确定数据需求 :在设计过程的第二阶段编译的字段和计算列表构成组织的基本数据需求。
  • 确定表的主题 :根据第一阶段编写的使命目标和第二阶段收集的数据需求确定表将代表的各个主题。
  • 建立字段规范 :在数据库设计过程的第三阶段为数据库中的每个字段建立字段规范。
  • 建立表间连接 :通过主键或链接表在关系中的表之间建立逻辑连接。
  • 考虑组织需求 :组织看待和使用数据的方式将决定必须构建到数据库中的一组限制和要求。
  • 定义验证表格 :根据需要定义和实施验证表格以支持某些业务规则。
  • 确定视图类型 :通过采访用户和管理层并确定他们如何处理各自的数据来确定需要在数据库中构建的视图类型。
  • 实施数据库结构 :在完成整个数据库设计过程后,可以在 RDBMS 程序中实施逻辑数据库结构。

以下是数据库设计流程的列表:
1. 明确使命
2. 确定数据需求
3. 确定表的主题
4. 建立字段规范
5. 建立表间连接
6. 考虑组织需求
7. 定义验证表格
8. 确定视图类型
9. 实施数据库结构

五、数据库设计中的访谈技巧

5.1 访谈的重要性

访谈为开发者和数据库设计对象之间提供了宝贵的沟通渠道,有助于确保设计工作的成功,并提供可能影响数据库结构设计的关键信息。

5.2 访谈中的问题与注意事项

当与大量人员进行访谈时,部分参与者的紧张程度会与参与人数成正比增加。分别与用户和管理层进行访谈的主要原因是每个群体对组织整体以及组织日常使用数据的方式有不同的看法。在访谈中通常使用开放式问题,应尽量从访谈参与者那里获得完整、描述性的回答。每次访谈最重要的指导原则是始终控制访谈。

5.3 使命声明与目标

使命声明以一般术语声明数据库的特定目的,一个好的使命声明应明确、简洁、切中要害,且不包含明确描述特定任务的短语或句子。必须了解组织才能撰写使命声明,当有一个描述数据库特定目的且相关人员都理解和同意的句子时,使命声明才算完成。使命目标代表数据库中维护的数据支持的单个一般任务,好的使命目标是一个明确定义一般任务且无不必要细节的陈述句,应使用一般术语表达,简洁明了且无歧义。应采访用户和管理层来帮助定义使命目标,员工的日常工作与使命目标相关,许多他们执行的任务将成为使命目标。使命目标不能描述多个任务,可以从回答中明确或隐含地得出使命目标,当使命目标定义恰当且明确,对设计者和设计对象有意义时,它才算完成。

以下是访谈相关要点的表格:
| 访谈要点 | 具体内容 |
| — | — |
| 重要性 | 提供沟通渠道,确保设计成功,提供关键信息 |
| 问题 | 大量人员访谈时部分参与者紧张程度增加 |
| 注意事项 | 用开放式问题,获完整回答,控制访谈 |
| 使命声明 | 明确、简洁、切中要害,需了解组织 |
| 使命目标 | 明确单一任务,简洁无歧义,采访确定 |

六、现有数据库分析

6.1 分析目标

分析现有数据库的目标包括确定组织使用的数据类型、组织如何使用其数据以及组织如何管理和维护其数据。

6.2 分析过程

分析过程包含三个步骤:
1. 审查数据收集方式。
2. 审查信息呈现方式。
3. 与用户和管理层进行访谈。

在分析过程中,应审查的计算机软件程序包括文字处理器、电子表格、数据库和网页。在收集数据收集和信息呈现样本后进行访谈,原因如下:
- 提供之前审查中收集样本的详细信息。
- 提供组织使用数据方式的信息。
- 有助于定义初步的字段和表结构。
- 有助于定义未来的信息需求。

6.3 信息需求与识别技术

使用开放式问题聚焦特定主题,使用封闭式问题聚焦特定主题的细节。通过主题识别技术可以在参与者对给定问题的回答中识别主题,使用特征识别技术为特定主题识别具体属性。应分别与用户和管理层进行访谈。必须识别的三种基本类型的信息需求是当前、额外和未来的需求。初步字段列表代表组织的基本数据需求,构成数据库中必须定义的核心字段集,列表中的每个项目应有唯一名称。值列表指定特定特征的可接受值范围,通常用于执行给定的业务规则。应将计算字段从初步字段列表中移除,并放在专用的计算字段列表中。

以下是分析现有数据库过程的 mermaid 流程图:

graph LR
    A[分析现有数据库] --> B[审查数据收集方式]
    A --> C[审查信息呈现方式]
    A --> D[与用户和管理层访谈]
    D --> E[提供样本详细信息]
    D --> F[提供数据使用信息]
    D --> G[定义初步结构]
    D --> H[定义未来需求]

七、新数据库表的确定与设计

7.1 表的确定

使用初步表列表来识别和建立新数据库的表。初步字段列表可帮助定义数据库的表,因为列表中的字段可能暗示数据库需要跟踪的主题。当主题列表中的项目和初步表列表中不同名称的项目代表同一主题时,选择最能代表该主题的名称作为该主题的唯一标识符。最终表列表提供数据库中每个表的名称、类型和描述。

7.2 表命名与描述准则

表命名准则
  • 创建一个对整个组织有意义的唯一、描述性名称。
  • 名称应准确、清晰、明确地标识表的主题。
  • 使用最少的必要单词来传达表的主题。
  • 不使用传达物理特征的单词。
  • 不使用首字母缩写词和缩写。
  • 不使用专有名称或其他会过度限制可输入表中数据的单词。
  • 不使用隐含或明确标识多个主题的名称。
  • 使用名称的复数形式。
表描述准则
  • 包含准确定义表的陈述。
  • 包含解释该表对组织为何重要的陈述。
  • 描述应清晰简洁。
  • 表描述中不包含特定于实现的信息,如表的使用方式或位置。
  • 一个表的描述不依赖于另一个表的描述。
  • 表描述中不使用示例。

7.3 字段分配与设计

通过确定哪些字段最能代表表主题的特征,将字段分配到最终表列表中的表。创建字段名称的准则如下:
- 创建一个对整个组织有意义的唯一、描述性名称。
- 名称应准确、清晰、明确地标识字段代表的特征。
- 使用最少的必要单词来传达字段代表的特征的含义。
- 不使用首字母缩写词,谨慎使用缩写。
- 不使用可能混淆字段名称含义的单词。
- 不使用隐含或明确标识多个特征的名称。
- 使用名称的单数形式。

设计不佳的字段可能导致重复数据和冗余数据问题。可以通过确保字段符合理想字段的要素来解决字段异常问题。理想字段的要素包括:
- 代表表主题的独特特征。
- 仅包含单个值。
- 不能分解为更小的组件。
- 不包含计算或连接的值。
- 在整个数据库结构中是唯一的。
- 当出现在多个表中时,保留其大部分特征。

冗余数据在解决多值字段或不必要的重复字段时是可以接受的。解决多值字段的一般步骤如下:
1. 从表中移除该字段,并将其作为新表的基础。
2. 使用原表中的一个字段(或一组字段)将原表与新表关联起来。
3. 为新表分配适当的名称、类型和描述,并将其添加到最终表列表中。

仅在字段用于建立两个表之间的关系时,才需要使用重复字段。可以通过确保每个表符合理想表的要素来优化表结构。理想表的要素包括:
- 代表单个主题,该主题可以是对象或事件。
- 有主键。
- 不包含多部分或多值字段。
- 不包含计算字段。
- 不包含不必要的重复字段。
- 仅包含绝对最少的冗余数据。

子集表是代表特定数据表从属主题的表。

以下是表和字段设计准则的表格:
| 设计对象 | 设计准则 |
| — | — |
| 表命名 | 唯一、描述性、准确清晰、用词最少、无物理特征词、无缩写、无多主题标识、用复数 |
| 表描述 | 准确定义、解释重要性、清晰简洁、无实现信息、无依赖、无示例 |
| 字段命名 | 唯一、描述性、准确清晰、用词最少、无缩写、无混淆词、无多特征标识、用单数 |

八、数据库中的键与完整性

8.1 键的重要性与类型

键的重要性体现在以下方面:
- 确保表中的每个记录都能被正确识别。
- 有助于建立和执行各种类型的完整性。
- 用于建立表之间的关系。

主要的四种键类型是候选键、主键、外键和非键。

8.2 候选键与主键

候选键的目的是唯一标识表主题的单个实例。候选键的要素包括:
- 不能是多部分字段。
- 必须包含唯一值。
- 不能包含空值。
- 其值整体或部分不是可选的。
- 由定义唯一性所需的最少字段组成。
- 其值必须唯一且排他地标识表中的每个记录。
- 其值必须排他地标识给定记录中每个字段的值。
- 其值仅在极少数或极端情况下可以修改。

候选键可以由多个字段组成,一个表可以有多个候选键。当表中没有“自然存在”的候选键时,会创建用于作为候选键的字段,称为人工候选键。

主键是分配给表的最重要的键,其重要性如下:
- 主键字段在整个数据库结构中唯一标识表,并有助于与其他表建立关系。
- 主键值唯一标识表中的给定记录,并在整个数据库中排他地代表该记录,还有助于防止重复记录。

通过检查表中可用的候选键池,然后选择一个作为主键来建立主键。主键的要素与候选键相同。在最终确定主键选择之前,必须确保它能排他地标识给定记录中每个字段的值。

8.3 其他键与表级完整性

未被选为主键的候选键称为备用键。通过建立表级完整性,可以确保以下几点:
- 表中没有重复记录。
- 主键唯一标识表中的每个记录。
- 每个主键值都是唯一的。
- 主键值不为空。

以下是键的类型及相关要素的列表:
- 候选键:唯一标识表主题实例,有特定要素要求
- 主键:最重要,从候选键中选择,要素与候选键相同
- 备用键:未选为主键的候选键
- 外键:用于建立表间关系未详细展开
- 非键:未详细展开

通过以上对数据库设计各个方面的介绍,涵盖了从基础概念到具体设计步骤和关键元素的内容,为数据库设计提供了全面的指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值