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

第七章 数据库设计

本章重点

数据库设计的步骤:

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

考法:选择、填空、简答

数据库设计概述

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

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

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

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

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

需求分析和概念结构设计独立于任何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图转换为关系模式

数据库的优化在此阶段

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

物理结构设计

  • 存储结构
  • 存取方法

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

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

数据库的实施和维护

数据库实施阶段:

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

数据库的维护工作:

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

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

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

相关推荐
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz5 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
for_ever_love__5 小时前
UI学习:UISearchController基础了解和应用
学习·ui·ios·objective-c
心中有国也有家5 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
東雪木7 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
GHL2842710907 小时前
换脸工作流学习
学习·ai
_李小白7 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习
Oll Correct7 小时前
实验二十九:TCP的运输连接管理
网络·笔记
键盘上的猫头鹰8 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst8 小时前
数据库知识点
数据库