当前位置: 首页 > news >正文

第8讲 数据库的设计与实施

一、数据库设计的特点

1.数据库设计方法

  • 新奥尔良方法
  • 基于E-R模型的数据库设计方法
  • 基于3NF的设计方法
  • 对象定义语言(Object Definition Language,ODL)方法

2.数据库设计的基本步骤

1)需求分析

获取需求是整个设计过程的基础。进行数据库设计时首先必须准确了解与分析用户的需求,弄清系统要达到的目标和实现的功能。

2)概念结构设计

概念结构设计的主要任务是根据系统分析建立的业务对象模型(实体对象),形成一个独立于具体DBMS的概念模型。此步骤即设计E-R模型。

3)逻辑结构设计

逻辑结构设计阶段的主要任务是将概念结构转换为某个DBMS所支持的数据模型,对关系数据库来说,就是将E-R模型转化为关系模型,最终生成表

4)物理结构设计

数据库物理结构设计的主要任务是为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储结构和存取方法。

5)数据库实施

在数据库实施阶段中,系统设计人员要运用DBMS提供的数据操作语,如SOL语言,以及宿主语言,根据数据库的逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据人库并进行系统试运行。

6)数据库运行和维护

数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中,必须不断地对其结构性能进行评价、调整和修改。

8.1 数据库设计概述

数据库设计的含义

是指根据用户需求研制数据库结构的过程,具体地说,就是根据用户的信息需求、处理需求和数据库的处理环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效地存储数据,满足用户的信息需求和处理需求

数据库设计的特点

  • 是一种“反复探寻,逐步求精”的过程
    • 反复性,试探性,多阶段
  • 自身的特点
    • 数据库建设需将(三分)技术、(七分)管理和(十二分)基础数据相结合
    • 需将结构设计与行为设计相结合
    • 数据库设计涉及多学科领域

数据库系统生存期

8.2 数据库规划

1. 主要工作

  • 确定数据库系统在企业或部门的计算机系统中的地位以及各个数据库之间的联系
  • 对建立数据库的必要性和可行性进行分析

2. 结束标记

  • 可行性分析报告
  • 数据库系统规划纲要

8.3 需求分析

主要任务---数据库设计的基础和起点

  • 通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
  • 主要需求有:
    • 信息需求
    • 处理需求
    • 安全性和完整性方面的需求
  • 结束标记
    • 需求分析报告

需求分析的步骤

需求调查

  • 明确调查的目的、内容和方式
  • 手段:检查文档,面谈,观察业务的运转,文献研究,问卷调查
  • ·自顶向下

分析整理

  • 业务流程分析与表示(数据流图)
  • 需求信息的补充描述(数据字典等)
  • 需求分析说明书

评审

数据流图

数据字典

8.4 概念结构设计

主要任务

  • 在需求分析的基础上,通过对用户需求进行分析、归纳、抽象,形成一个独立于具体DBMS和计算机硬件结构的整体概念结构,即概念模式

常用方法

  • E-R模型

设计策略

  • 自底向上
  • 注意:重点在于“信息”结构的设计!!!“处理”需求则由行为设计来考虑

主要设计步骤

  • 设计局部E-R模式
  • 合并局部E-R模式
  • 优化全局E-R模式

8.5 逻辑结构设计

E-R模型到关系模式的转换

实体型的转换

  • 关系模式中包含实体型的所有属性

联系的转换

  • 1:1:将联系的属性和其中一个实体型对应关系模式的主键属性加入到另一个关系模式中
  • 1:n:将联系的属性和1端对应关系模式的主键属性加入到n端对应的关系模式中
  • n:m:将联系转换为一个关系型,其属性有联系的属性和前面两个关系模式的主键属性构成

关系模式的优化

规范化处理

  • 分析数据依赖
  • 对数据依赖进行极小化处理,消除冗余的联系
  • 确定各关系模式的范式
  • 按照处理要求,对某些模式进行合并或分解

模式的评价与修正

  • 根据需求分析的结果,检查规范化后的关系模式集合是否满足用户的功能要求
    • 使用更符合用户习惯的别名
    • 定义不同级别的视图
    • 简化用户对系统的使用
  • 为了节省存储空间,可修正关系模式

Power Designer

  • PowerDesigner是Sybase公司生产的一个CASE工具集,它不仅支持数据库模型设计的全过程,同时为面向对象分析、设计与开发以及企业业务流程规划提供了有力的工具。
  • 更具特色的是,它将对象设计、数据库设计和关系数据库生成无缝地集成起来,提供了非常强大的数据库设计和生成能力。

8.6 物理结构设计

  • 聚簇设计
  • 索引设计
  • 分区设计
  • 确定系统配置参数
  • 评价物理结构设计

8.7 数据库的实施和维护

数据库的建立

  • 数据库模式的建立
  • 数据加载

数据库的调整

  • 关系模式、视图、索引、磁盘分区等

应用程序编制与调试

  • 使用模拟数据进行调试

数据库系统的试运行

  • 功能测试
  • 性能测试

数据库系统的运行和维护

  • 数据库的转储和恢复
  • 维持数据库的完整性与安全性
  • 监测并改善数据库性能
  • 数据库的重组和重构(物理)

8.8 数据库应用系统的结构

单用户结构

  • 以单台微型计算机为其运行环境,是最简单的一种数据库应用系统结构
  • 整个数据库系统都装在一台计算机上
  • 所有操作由一个用户独占完成

集中式结构

  • 一个主机带多个终端的多用户数据库应用系统结构(主从式数据库系统结构)
  • 整个数据库系统都装在主机上
  • 主机操作系统多数是分时系统
  • 多个用户通过终端公共总线连在一起,并发地存取数据库,共享数据资源

二层客户机/服务器(C/S)结构

应用系统的功能在客户机和服务器之间进行重新划分

客户机主要负责应用逻辑的处理、用户界面的处理和显示,与服务器连接

服务器负责向客户机提供数据服务,实现数据管理和事务逻辑

三层客户机/服务器(B/S)结构

  • 数据库应用系统分为三层:数据访问层、业务逻辑层和表示层
  • 三个层次分别放在各自不同的硬件系统上,具有高灵活性,能适应客户及数据的增加和处理负荷的变动
    • 数据访问层:数据管理、事务逻辑(数据库服务器)
    • 业务逻辑层:应用逻辑(应用服务器)
    • 表示层:表达逻辑(客户机)

http://www.jsqmd.com/news/472413/

相关文章:

  • ZYNQ多路AXI_DMA并发传输的实战避坑指南
  • Python之a2a-agent-mcpserver-generator包语法、参数和实际应用案例
  • 从基础到应用:深入解析常见概率分布的特性与实战场景
  • 从芯片到应用:FM1208 CPU卡如何重塑智能卡安全与多场景生态
  • Camunda与Spring Boot集成中的权限冲突解决方案
  • 位运算实战:从基础到高效算法设计
  • (2026) 专业VOC气体报警仪OEM/ODM,提供PID传感器技术平台与算法定制 - 品牌推荐大师
  • Python之a2anet包语法、参数和实际应用案例
  • 2026昆明白银回收怎么选?四九商贸以“透明+专业”破局成为优选 - 深度智识库
  • Mac 用户必看:优化 Homebrew 下载速度的实用技巧
  • Python之a2apay包语法、参数和实际应用案例
  • 深入解析1/0号进程中mynext变量的地址转换机制
  • HCIP数通 vs 安全 vs 云计算:2024年华为认证方向选择指南(含薪资对比)
  • Python之a2a-protocol包语法、参数和实际应用案例
  • GPUStack 离线部署镜像准备与国内加速源
  • 避免断连!Ubuntu服务器安全重启网络服务的3个技巧与1个致命错误
  • 高光谱数据处理实战:从.mat到真彩色图像的完整流程(含常见问题解答)
  • Python之a2a-python包语法、参数和实际应用案例
  • 避坑指南:为什么你的Python坐标转换结果总差几百米?解析bd09/gcj02/wgs84加密原理
  • 合成孔径雷达(SAR) vs 真实孔径雷达:5个关键区别与选型建议
  • Python之a2as包语法、参数和实际应用案例
  • 5个超实用的Shapefile免费下载网站,ArcGIS用户必备(附详细使用指南)
  • Flutter动画进阶:用SlideTransition打造丝滑页面转场效果(含组合动画技巧)
  • 从Flutter到HarmonyOS NEXT:跨平台开发的鸿蒙适配实战指南
  • Fiddler抓包HTTPS全攻略:从浏览器到手机端的保姆级配置指南(含证书过期解决方案)
  • Nacos默认密钥漏洞实战:QVD-2023-6271攻击链深度解析
  • Shuttle.dev成本优化终极指南:如何降低部署和运维费用
  • 遥感影像分析新思路:用SAM模型自动发现城市变迁(附完整Python代码)
  • 从零到一:SeaTunnel 集群部署与核心配置实战解析
  • Web安全必备:如何用vulmap快速检测常见Web容器漏洞(含实战案例)