《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一1.7 数据库系统设计步骤

简介: 本节书摘来自华章出版社《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一书中的第1章,第1.7节,作者孙风栋 王澜,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.7 数据库系统设计步骤

1.7.1 数据库设计概述

数据库设计的目标就是为用户的应用系统提供一个高效数据库系统。为了保证数据库设计更合理,数据库的设计工作通常分阶段进行,在不同的阶段采用不同的方法完成不同的设计内容。
数据库设计分为以下6个阶段:
1)需求分析阶段。收集和分析用户对系统的信息需求和处理需求,得到设计系统所必需的需求信息,建立系统的需求说明文档。
2)概念结构设计阶段。通过对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
3)逻辑结构设计阶段。在概念模型的基础上导出一种DBMS支持的逻辑数据库模型,该模型应满足数据库存取、一致性及运行等各方面的用户需求。
4)物理结构设计阶段。为逻辑数据模型选取一个最适合应用环境的物理结构。
5)数据库实施阶段。根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,将数据录入到数据库中,同时进行数据库系统的试运行。
6)数据库运行与维护阶段。数据库应用系统试运行后,即可以投入正式运行。在此过程中必须不断地对其进行评价、调整与修改。
设计一个完善的数据库应用系统不可能一蹴而就,往往需要不断重复上述6个阶段。

1.7.2 需求分析

需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际需求,将直接影响后面各个阶段的设计,并影响设计结果是否合理、实用。
需求分析的主要任务是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。通过调查现有系统的运行状况,明确新系统的数据及处理这些数据的流程。需求分析所调查的重点是“数据”和“处理流程”,包括数据库中需要存储哪些数据、数据如何进行处理,以及数据的安全性与完整性要求等。
需求分析是软件工程中最重要的一个步骤,是其他各个步骤的基础,如果这一步出了问题,那么往往会导致整个项目的返工甚至失败。要想使需求分析富有成效,必须学会怎样与客户打交道,如何从客户那里得到最有效的需求。通常需求分析可以通过下面几种方式来实现。
检查文档:通过检查以往业务中保留下来的文档,可以发现业务处理中的数据流程。常见的文档有文件、图表和报告等。
面谈:面谈是最常用、最有效的方法。通过与操作员、主管领导面对面谈话,可以直接获得最有用的信息。但是,这种方式需要交谈双方具有较高的语言表达能力和分析、归纳、总结的能力,不然可能得到的只是一些只言片语。
观察、参与业务的运转:最理想的情况就是开发人员实际参与需求方业务的运转,从而在第一线了解业务流程。对于复杂的系统尤其应该如此。即使由于种种原因无法实际参与业务的运转,也要对业务流程进行仔细的观察。
研究:从Internet或各种出版物中查找和研究,看看是否有类似或者相关的项目可供参考。或从行业标准、规则中提取需求。
问卷调查:这种方式特别适合于有大批量用户使用该系统的情况,为了防止面谈带来的片面性,最好进行全体的问卷调查。问卷的设计要以选择题和判断题为主,因为大多数用户不会有耐心或能力用太多的文字来回答问题。
在进行需求调查时,往往需要同时采用上述多种方法。但无论采用何种调查方法,都需要用户的积极参与配合,并对设计工作的结果共同承担责任。

1.7.3 概念结构设计

概念结构设计是在需求分析的基础上形成数据库的概念模型,这是语义层的描述,与具体的DBMS无关。通常可以使用E-R图来表示概念模型。
在概念结构设计中,主要会用到以下几种方法。
自底向上:先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。
自顶向下:先定义全局的概念结构框架,然后再逐步细化。
由里向外:先定义最重要的核心结构,然后再逐步向外扩展。
混合策略:将自顶向下和自底向上方法结合起来,先用自顶向下方法设计一个概念结构框架,然后以此为框架再根据自底向上策略设计局部概念结构,最后把它们集成起来。
采用E-R图进行数据库概念结构设计可分以下3步:
1)设计局部E-R模型,确定各个局部E-R模型的范围、定义实体、关系以及它们的属性。
2)集成局部E-R图,形成全局E-R模型。在此过程中,需要消除各个局部E-R中的属性冲突、命名冲突、结构冲突等问题。
3)对全局E-R模型做进一步的优化,其原则是实体个数尽可能少、实体所包含的属性尽可能少、实体间关系无冗余。可以把具有相同主码的实体进行合并,将具有1对1关系的两个实体合并成一个实体,消除冗余属性和冗余联系。

1.7.4 逻辑结构设计

逻辑结构设计的任务就是将概念结构设计阶段产生的E-R图转换为具体的数据库管理系统所支持的数据模型。对于关系数据库而言,逻辑结构设计就是将E-R图转换成关系模式,并对关系模式进行优化。
1.将E-R图转换成关系模式
将E-R图转换为关系模式的基本原则为:
一个实体转换为一个二维表。实体的名字作为表的名字,实体的属性作为表的属性,实体的主码作为表的主码。
一对一联系可以转换为一个独立的表,也可以与任意一端的实体所对应的表合并。如果单独作为一张表,则关系的名称作为表的名称,与关系相关联的两个实体的主码及联系本身的属性都作为这张表的属性,任选一个与之相关联的实体的主码作为主码。如果与实体所对应的表合并,则需要在该表中添加另一张表的主码和联系本身的属性作为该表的属性。
一对多联系可以转换为一个单独的表,也可以合并到多端实体所对应的表中。如果单独作为一张表,则关系的名称作为表的名称,与关系相关联的两个实体的主码及关系本身的属性都作为这张表的属性,多端实体的主码作为主码。如果与多端实体所对应的表合并,则需要在该表中添加一端所对应表的主码和关系本身的属性作为该表的属性。
多对多联系必须转换为一张表,关系的名称作为表的名称,相关联的两个实体的主码及联系本身的属性都作为该表的属性,两个实体的主码联合起来作为该表的主码。
三个或三个以上实体间的多元关系可以转换为一张表,各个实体的主码及关系本身的属性作为该表的属性,各个实体的主码联合起来作为该表的主码。
2.关系模式优化
数据库逻辑结构设计的结果并不是唯一的。为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,适当地修改、调整数据模型的结构,即关系模式优化。
关系模式优化的步骤如下:
1)确定数据依赖。分析出每个关系模式的各属性之间的依赖关系及不同关系模式各属性之间的数据依赖关系。
2)对各个关系模式之间的数据依赖进行极小化处理,消除冗余的关系。
3)按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。根据应用需求,分析模式是否合适,是否需要进行合并或分解。

1.7.5 物理结构设计

物理结构设计的目的是利用已经确定的逻辑结构的结果及DBMS提供的方法、技术,以适当的存储结构、存取路径、合理的存储位置及存储分配,设计出一个高效的、可实现的数据库结构。
数据库的物理结构设计通常分为以下两个方面。
确定数据库的物理结构,在关系数据库中主要指确定存储结构和存取方法。确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价3方面的因素。常用的存储方式有顺序存储、散列存储和聚簇存储。为了提高数据的存取效率,应该建立合适的索引。
对物理结构进行评价,评价的重点是时间和空间效率。评价物理数据库的方法完全依赖于所选用的DBMS,主要从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的、合理的物理结构。
关于数据库的物理结构设计,需要明确一点,即使不进行物理结构设计,数据库系统照样能够正常运行,物理结构设计主要是为了进一步提高数据的存取效率。如果项目的规模不大,数据量不多,那么可以不进行物理结构设计。

1.7.6 数据库实施与维护

完成了数据库的逻辑结构和物理结构设计之后,我们已经在特定的DBMS系统下建立好了一系列二维表。下一步就是将整个数据库投入运行,同时还要进行相应的维护。

  1. 数据库数据的加载和试运行
    数据库结构建立好后,可以向数据库中装载数据。对于数据量不是很大的小型系统,可以用人工方式完成数据的入库。对于大中型系统,由于数据量极大,用人工方式进行数据入库将会耗费大量的人力、物力,而且很难保证数据的正确性,因此应该设计一个数据输入子系统,由计算机来辅助完成数据的入库工作。

2.数据库的运行和维护
在数据库运行阶段,对数据库经常性的维护工作主要是由数据库系统管理员来完成的,其主要工作包括数据库备份和恢复、数据库性能的调整、数据库的重新改造等。
实践指导
1.场景与要求
企业库存管理的操作步骤一般如下:
1)企业采购部采购商品后,填写采购入库单,并将商品发送给仓库,办理入库。
2)仓库收到采购部门的商品后,办理入库业务,并更新库存总账。
3)根据使用或销售的需要,操作员或业务员拿着出库单到仓库中提货或仓库根据出库单发货,并更新库存总账。
下面是某企业库存管理过程中使用的入库单、出库单和库存总账的样例。
image
image

请根据以上企业库存管理的介绍,设计出库存管理数据库的概念结构(E-R)与逻辑结构(表)。

  1. 关键步骤
    1)根据场景描述,提炼出实体、属性,并确定实体之间的关系。

2)用E-R图表示数据库的概念模型。
3)根据数据库概念模型到关系模型的转换原则,设计出数据库的关系模式。

相关文章
|
2月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
2月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
16天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
4天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
4天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
15 2
|
23天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
1月前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
38 10
|
8天前
|
SQL Oracle 关系型数据库
Oracle数据库管理:从入门到精通
表(Table):表是Oracle数据库中存储数据的基本结构单元,由行(Row)和列(Column)组成。每行代表一个记录,每列代表一个字段。 SQL(Structured Query Language):SQL是Oracle数据库的核心语言,用于与数据库交互,执行查询、插入、更新和删除等操作。 数据库实例与数据库:在Oracle中,数据库实例是一组后台进程和内存结构,用于管理数据库并提供服务。而数据库则是数据的物理存储,包括数据文件、控制文件、联机日志和参数文件等。
30 0
|
2月前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
84 1
|
2月前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
72 7

推荐镜像

更多
下一篇
无影云桌面