• 沒有找到結果。

第七章 数据库设计

N/A
N/A
Protected

Academic year: 2022

Share "第七章 数据库设计"

Copied!
56
0
0

加載中.... (立即查看全文)

全文

(1)

第七章 数据库设计

(2)

数据库设计概述

• 数据库设计的成果

• 建立数据库

• 构造最优的数据库模式

• 应用系统

• 有效地存储、处理数据,满足用户的需求

• 数据库是信息系统的核心和基础

• 存储、维护、检索数据

(3)

数据库设计概述

• 知识结构

• 数据库的基本知识和数据库设计技术

• 计算机科学的基础知识和程序设计的方法和技巧

• 软件工程的原理和方法

• 应用领域的知识

(4)

数据库设计概述——特点

• 硬件、软件、界面

• 数据(结构)、处理(行为)

• 数据库模式是公用的、共享的,影响整个应用 的质量

• 三分技术,七分管理,十二分基础数据.

(5)

现实世界

概念模型设计

子模式设计 物理数据库设计

逻辑数据库设计

建立数据库

数据分析 功能分析

功能模型 功能说明 事务设计

应用设计 应用开发 系统调试

数据库设计的特点

(6)
(7)

数据库设计各个阶段的数据设计 描述

(8)

数据库设计概述——方法

• 软件工程的思想和方法

• 新奥尔良方法

• 需求分析

• 概念分析

• 逻辑设计

• 物理设计

(9)

数据库设计概述——特性

• 反复性

• 反复推敲、修改、迭代的过程

• 试探性

• 结果不是唯一的

• 在矛盾中求得平衡

• 分步进行

• 小组、团队工作

• 分段把关

(10)

数据库设计概述——工具

• 手工迭代、优化

• 辅助工具(CASE)

• Oracle: Design 2000

• Sybase: Powerdesigner

• Rational: Rational Rose

(11)

数据库设计过程中的各级模式

• 数据库设计不同阶段形成的数据库各级模式

数据库的各级模式

(12)

数据库设计概述——基本步骤

• 需求收集和分析

• 概念结构设计

• 逻辑结构设计

• 物理结构设计

• 物理实现

(13)

数据库设计概述——基本步骤

• 需求收集和分析

• 用户/用途

• 用户关心什么

• 用户要什么结果

• 概念结构设计

• 逻辑结构设计

• 物理结构设计

• 物理实现

(14)

数据库设计概述——基本步骤

• 需求收集和分析

• 概念结构设计

• 存什么,对现实世界的模拟

• 关系(联系)如何,概念数据模型

• E/R图、OO定义

• 逻辑结构设计

• 物理结构设计

• 物理实现

(15)

数据库设计概述——基本步骤

• 需求收集和分析

• 概念结构设计

• 逻辑结构设计

• 转换成逻辑数据模型(与DBMS模型相关)

• 数据库的模式(database schema)

• 用户子模式(视图模式)

• 物理结构设计

• 物理实现

(16)

数据库设计概述——基本步骤

• 需求收集和分析

• 概念结构设计

• 逻辑结构设计

• 物理结构设计

• 数据怎么存,物理数据模型

• 根据DBMS产品、环境特点

• 影响数据库的性能

• 物理实现

(17)

数据库设计概述——基本步骤

• 需求收集和分析

• 概念结构设计

• 逻辑结构设计

• 物理结构设计

• 物理实现

• 运行DDL

• 装入测试数据

• 应用程序

(18)

需求分析的任务

调查的重点是“数据”和“处理”,获得用户对数据库的要

(1)信息要求

用户需要从数据库中获得信息的内容与性质

由信息要求可以导出数据要求,即在数据库中需要存储哪些数据

(2)处理要求

用户要完成的处理功能

对处理性能的要求

(3)安全性与完整性要求

(19)

需求分析过程

需求分析过程

(20)

数据字典

数据字典的内容

数据项

数据结构

数据流

数据存储

处理过程

数据项是数据的最小组成单位

若干个数据项可以组成一个数据结构

数据字典通过对数据项和数据结构的定义来描述数据

流、数据存储的逻辑内容

(21)

概念结构设计——ER图

概念结构设计的方法

• 自顶向下

• 自底向上:经常用的方法。

• 逐步扩张

• 混合策略

(22)

自顶向下

• 定义全局概念结构的框架,逐步细化.

需求

全局概念模式

概念模式 概念模式

(23)

自底向上

• 定义局部应用的概念结构,再集成,形成全局概念 结构.

子需

子需求

概念模式 概念模式 概念模式

概念模式

概念模式

子需

(24)

其他策略

• 逐步扩展

• 混合策略

核心概念 结构

需求 需求 核心需求

全局概念结构

(25)

自底向上的ER图设计

• 选择局部应用,逐一设计分E-R图 划分实体和属性的两条原则:

(1)作为属性,不能再具有需要描述的性质,属性是不可分的 数据项。

(2)属性不能和其他实体具有联系。

• 合并分E-R图,生成初步的E-R图

解决属性冲突,命名冲突,结构冲突。

(26)

自底向上的ER图设计(续)

• 消除冗余,设计基本的E-R图

• 冗余数据: 可由基本数据导出.

• 冗余联系: 可由其它联系导出的联系.

(27)

数据抽象与局部视图设计

三种抽象 :

 分类 : 定义某一类概念作为现实世界中的一组对象的类型 is a member of

 聚集 :定义某一类型的组成成分 is a part of

 概括 : 定义类型之间的一种子集关系 is a subset of

(28)

扩展的E-R模型(子类描述)

• 不相交与可重叠约束:

父类中的实体是否最多 属于一个子类

• 完备性约束:父类中的 实体是否必须属于某一 个子类

学生

研究生 本科生

导师 方向

(29)

扩展的E-R模型 (part-of联系)

• 强联系 part-of:

整体实体被破坏,部分实体不存在。如窗口由菜单,按钮等组成,

一旦窗口不存在,菜单也没有了,称为强part-of.

• 弱联系 part-of

整体实体被破坏,部分实体还存在。

汽车与车轮的关系。汽车由车轮等组成,该组成关系是弱part-of。

(30)

扩展的E-R模型 (弱实体集)

• 房间是一个弱实体集,因为 它必须是在某一个楼里,房 间号与楼号共同组成房间的 码。

• 组成关系是一个弱关系。

• 房间的码:房间号+楼号

楼房

房间 组成

楼号

房间号

(31)

自底向上设计的一个实例:

• 先设计子系统的E-R图

• 合并

某工厂管理信息系统

物质管理子系统 销售管理子系统 人事管理子系统

(32)

视图的合并

• 属性冲突: 属性类型,取值范围不同

• 命名冲突:同名异议,异名同异

• 结构冲突:

1. 同一对象具有不同的抽象(实体,属性) 2. 实体中属性个数,次序不同

3. 实体联系类型不同

• 消除冗余

(33)

E-R模型(实例)

一个实例

某个工厂物资管理的概念模型。物资管理涉及的实体有:

仓库:属性有仓库号、面积、电话号码

零件:属性有零件号、名称、规格、单价、描述

供应商:属性有供应商号、姓名、地址、电话号码、账号

项目:属性有项目号、预算、开工日期

职工:属性有职工号、姓名、年龄、职称

(34)

E-R模型(续)

这些实体之间的联系如下:

1. 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因 此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓 库中的数量。

2. 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,

因此仓库和职工之间是一对多的联系。

(35)

E-R模型(续)

这些实体之间的联系如下(续):

(3) 职工之间具有领导与被领导关系。即仓库主任领导若 干保管员,因此职工实体型中具有一对多的联系。

(4) 供应商、项目和零件三者之间具有多对多的联系。即一 个供应商可以供给若干项目多种零件,每个项目可以使 用不同供应商供应的零件,每种零件可由不同供应商供 给。

(36)
(37)
(38)

概念结构设计(实例)

某工厂管理信息系统的视图集成。

图7.27 劳动人事管理的分E-R图 图7.23 销售管理子系统的E-R图

(39)

某工厂管理信息系统的视图集成。

异名同义,项目和产品含义相同。某个项目实质上是指某个产 品的生产。统一用产品作实体名。

库存管理中职工与仓库的工作关系已包含在劳动人事管理的部门与 职工之间的联系之中,所以可以取消。职工之间领导与被领导关系 可由部门与职工(经理)之间的领导关系、部门与职工之间的从属 关系两者导出,所以也可以取消。

(40)

逻辑结构的设计——ER到关系

• 实体集→表

• 属性→属性

• 主码→主码

(41)

逻辑结构的设计——ER到关系

• 联系集→表

• M:N,联系集必须存在

• Key包含参与实体集的主码

• N:1,联系集可以去除

• 将1端的主码属性,引入N端的表中,成为外码

• 外码参照1端的主码

• 1:1,联系集可以去除

• 两个实体集可合并

• 或一端的主码引入到另一端中,作为外码

(42)

E-R图向关系模型的转换(实例)

部门(部门号,部门名,经理的职工号,…)

职工(职工号、部门号,职工名,职务,…)

产品(产品号,产品名,产品组长的职工号,…)

供应商(供应商号,姓名,…)

零件(零件号,零件名,…)

职工工作(职工号,产品号,工作天数,…)

供应(产品号,供应商号,零件号,供应量)

(43)

数据库的物理设计

分为两步:

• 确定数据库的物理结构:设计存取方法和存贮结构

• 对物理结构进行评价:时间和空间效率

 根据不同DBMS,确定系统的配置

(44)

数据库的物理设计:需要考虑

• 数据库的查询事务

查询关系,查询条件所涉及的属性,连接条件所涉及的属性,

投影属性

• 数据库的更新事务

被更新的关系,更新操作条件所涉及的属性,以及要改变的 属性值

(45)

数据库的物理设计:存取方法

存取方法包括:

• 索引方法:决定那些属性要建立索引,B+树

• HASH方法:通过计算找到实际的存放位置

• 聚簇方法:存放在连续的物理块

(46)

B+树索引存取方法的选择

• 选择索引存取方法的一般规则

• 如果一个(或一组)属性经常在查询条件中出现,则考虑在这个

(或这组)属性上建立索引(或组合索引)

• 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考 虑在这个属性上建立索引

• 如果一个(或一组)属性经常在连接操作的连接条件中 出现,

则考虑在这个(或这组)属性上建立索引

(47)

HASH存取方法的选择

选择Hash存取方法的规则

如果一个关系的属性主要出现在等值连接条件中或主要 出现在等值比较选择条件中,而且满足下列两个条件之

该关系的大小可预知,而且不变;

该关系的大小动态改变,但所选用的数据库管理系统提供了动 态Hash存取方法。

(48)

聚簇存取方法的选择

什么是聚簇

为了提高某个属性(或属性组)的查询速度,把这个或 这些属性(称为聚簇码)上具有相同值的元组集中存放 在连续的物理块中称为聚簇。

该属性(或属性组)称为聚簇码(cluster key)

许多关系型数据库管理系统都提供了聚簇功能

聚簇存放与聚簇索引的区别

(49)

聚簇存取方法的选择(续)

聚簇索引

建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的 升序或降序存放。也即聚簇索引的索引项顺序与表中元组的 物理顺序一致。

在一个基本表上最多只能建立一个聚簇索引

聚簇索引的适用条件

很少对基表进行增删操作

很少对其中的变长列进行修改操作

(50)

聚簇存取方法的选择(续)

选择聚簇存取方法

设计候选聚簇

(1)常在一起进行连接操作的关系可以建立组合聚簇

(2)如果一个关系的一组属性经常出现在相等比较条件中

,则该单个关系可建立聚簇;

(3)如果一个关系的一个(或一组)属性上的值重复率很 高,则此单个关系可建立聚簇。

(51)

数据库的物理设计: 存贮结构

• 综合考虑

存取时间

存贮空间利用率

维护代价

• 确定数据的存放位置

• 确定系统的配置

• 评价物理结构

(52)

确定数据的存放位置

基本原则

根据应用情况将

易变部分与稳定部分分开存放

经常存取部分与存取频率较低部分分开存放

[例]

可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别 有效。

可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。

(53)

确定系统配置

数据库管理系统一般都提供了一些存储分配参数

同时使用数据库的用户数

同时打开的数据库对象数

内存分配参数

缓冲区分配参数(使用的缓冲区长度、个数)

存储分配参数

物理块的大小

物理块装填因子

时间片大小

数据库的大小

锁的数目等

(54)

评价物理结构

对数据库物理设计过程中产生的多种方案进行评价,从中选 择一个较优的方案作为数据库的物理结构。

评价方法

定量估算各种方案

存储空间

存取时间

维护代价

对估算结果进行权衡、比较,选择出一个较优的合理的物理结构

(55)

小结

数据库的设计过程

需求分析

概念结构设计

逻辑结构设计

物理结构设计

数据库实施

数据库运行维护

设计过程中往往还会有许多反复

(56)

课堂练习:

根据交大选课系统,以及下面需要完成的功能,我们设计一个选课系 统,由学生,课程,老师等组成,请画出其ER模型,并设计各个模 式,以及各种必要的完整性约束。假设一门课程可以有多个教师上,

一个教师可以上多门课程。系统主要针对学生,完成功能如下:

1)学生选课 2)学生查询成绩

參考文獻

相關文件

奖励活动:

營建工程系 不限系科 工業工程與管理系 不限系科 應用化學系 不限系科 環境工程與管理系 不限系科 工業設計系 不限系科. 景觀及都市設計系

學校中層管理者是一個召集人,責任包括個別學科的教 學、對同工的計劃及工作的支持、資源管理、評核及記

本計畫配合本校營建工程系(簡稱營建系)以及工業工程與管理系(簡稱工

依據相關主管機關 95 年的統計資料顯示(中部科學工業園區管 理局、行政院經濟部加工出口區管理處、行政院經濟部工業局),中部 科學工業園區廠商員工數

七、本系將於 6 月 1 日(二)13:30 於時選廳舉辦教學精進工作坊,邀請 IBM 智慧生活前瞻 研究中心張鴻洋經理蒞校進行教學演講,講題為「Beyond Cloud Computing -an ecosystem

可承認之非 本系學分數 上限包含外 系學分、課 程規劃中未 有之本系課 程、超修的 本系專業選 修學分或校 訂必修及選 修學分。. 四、

可承認之非 本系學分數 上限包含外 系學分、課 程規劃中未 有之本系課 程、超修的 本系專業選 修學分或校 訂必修及選 修學分。. 四、