《数据库系统》第七章 数据库设计

第七章 数据库设计

本章重点

数据库设计的步骤:

  • 需求分析
  • 概念结构设计
  • 逻辑结构设计
  • 物理结构设计
  • 数据库实施
  • 数据库运行和维护

考法:选择、填空、简答

数据库设计概述

数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,始址能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。

三分技术,七分管理,十二分基础数据是数据库设计的特点之一。

数据库设计的步骤:【背】

  • 需求分析
  • 概念结构设计
  • 逻辑结构设计
  • 物理结构设计
  • 数据库实施
  • 数据库运行和维护

前两个阶段与使用的数据库无关;逻辑结构设计、物理结构设计与所选数据库密切相关;

需求分析和概念结构设计独立于任何DBMS;逻辑结构设计和物理结构设计与DBMS密切相关;

需求分析阶段

准确了解与分析用户需求(数据字典),是整个设计过程的基础

概念结构设计阶段

是整个数据库设计的关键。E-R图

逻辑结构设计阶段

设计表结构。(视图)

物理结构设计阶段

设计内模式;设计存储结构和存取方法

e.g. 随机存;聚簇

数据库实施阶段

建立数据库,编写与调试应用程序,组织数据入库,并进行试运行

数据库运行和维护阶段

需求分析

调查的重点是"数据"和"处理",通过调查、收集与分析,获得用户对数据库的如下要求:

  • 信息要求
  • 处理要求
  • 安全性与完整性要求

数据字典

数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要结果。

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程几部分。【背】

作用:描述数据流、数据存储的逻辑内容

概念结构设计

设计概念结构的四种方法:

  • 自顶向下
  • 自底向上
  • 逐步扩张
  • 混合策略

常用策略:

  • 需求分析------自顶向下
  • 概念结构------自底向上

E-R模型

E(entity) 实体

R(relationship) 联系

  • 实体:矩形框
  • 属性:椭圆形框
  • 联系:菱形框

一对一、一对多、多对多联系

E-R图集成

把各个"局部"E-R图画成一个大的

分E-R图合并生成初步E-R图 ,消除不必要的冗余后,生成基本E-R图

各子系统的E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。【背】

要求:懂概念,会举例

  • 属性冲突(属性域冲突、属性取值单位冲突)e.g. 成绩有百分制,也有五级制 e.g. 身高单位有米,也有英尺
  • 命名冲突(同名异义、异名同义) e.g. title可以表示书名,也可以表示职称 e.g. Sno和Stu_no都可以表示学生学号
  • 结构冲突(实体与属性的冲突) e.g. 成绩既可以作为一个实体(包含各科成绩作为属性),也可以作为其他实体的属性

所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。

逻辑结构设计

基本E-R图转换为关系模式

数据库的优化在此阶段

数据模型的优化:完全、可重构、不相交

物理结构设计

  • 存储结构
  • 存取方法

聚簇:把某个或某些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。

不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇。

数据库的实施和维护

数据库实施阶段:

  • 数据的载入
  • 应用程序的编码和调试

数据库的维护工作:

  • 数据库的转储和恢复
  • 数据库的安全性、完整性控制
  • 数据库性能的监督、分析和改造
  • 数据库的重组织与重构造

重新设计数据库表------重构造

回收、清理垃圾------重组织

相关推荐
A.A呐9 分钟前
【QT第三章】常用控件1
开发语言·c++·笔记·qt
笨鸟笃行1 小时前
英语学习——单词篇(第十七天)
学习
nenchoumi31191 小时前
ROS2 Humble 笔记(十二)launch 文件与 namespace 启动多个节点
笔记·机器人·ros2
CwSy_1 小时前
openlab配置作业
笔记
d111111111d2 小时前
STM32TIM定时器外设学习,输出比较模式(舵机,驱动直流电机)
笔记·stm32·单片机·嵌入式硬件·学习
立志成为大牛的小牛2 小时前
数据结构——四十、折半查找(王道408)
数据结构·学习·程序人生·考研·算法
小码过河.2 小时前
告别 mysqldump 痛点!用 mydumper 实现 MySQL 高效备份与恢复
数据库·mysql
TDengine (老段)2 小时前
从“数据堆场”到“智能底座”:TDengine IDMP如何统一数据语言
大数据·数据库·物联网·时序数据库·tdengine
东方欲晓w2 小时前
Git高效开发:常用命令速查指南
git·stm32·学习
nenchoumi31192 小时前
ROS2 Humble 笔记(十)多机分布式通讯 DDS 与宿主机和Docker容器
笔记·机器人·ros2