当前位置:
文档之家› 第七章 数据库设计 - 上海交通大学计算机科学与工程系(CSE)
第七章 数据库设计 - 上海交通大学计算机科学与工程系(CSE)
数据库设计——Example
统计该图书馆中数据库类(关键词中为“数据库”) 书籍的藏书情况(含书名、分类号、出版社、作者、馆 藏数)。 统计已借阅(尚未归还)5本(或以上)书籍的读者 的证号、姓名、单位及借阅的册数。 列出所有从未被借阅过的书籍(按分类号计算)的 书名、分类号、出版社、作者及馆藏册数。 列出借书证号为‘95001’的读者所借阅过的、书名中 含有‘数据库’的图书的书名、分类号、借阅次数,并 按借阅次数进行排序(次数多的排列在前)。
E-R模型
转换成关系模型: (符合BCNF和4NF) Criticism(publication, url, synopsis, title)
Author(name, birth, death, description)
Period(region, era) Works(id, title, year, length) WrittenIn(work, region, era) Criticized(work, url) WroteCriticism(author, url) LivedIn(name, region, era) WrittenBy(author, work) 函数依赖关系: Criticism: url -> publication, synopsis, title Author: name -> birth, death, description
第七章 数据库设计
数据库设计概述
数据库设计的成果
建立数据库
构造最优的数据库模式
有效地存储、处理数据,满足用户的需求
应用系统
数据库是信息系统的核心和基础
存储、维护、检索数据
数据库设计概述
知识结构
数据库的基本知识和数据库设计技术 计算机科学的基础知识和程序设计的方法和 技巧 软件工程的原理和方法 应用领域的知识
子需 求 概念模式 子需求
子需 求 概念模式
概念模式
概念模式 概念模式
其他策略
逐步扩展
核心需求
需求
需求
核心概念 结构
全局概念结构
混合策略
自底向上的ER图设计
选择局部应用,逐一设计分E-R图 划分实体和属性的两条原则: (1)作为属性,不能再具有需要描述的 性质,属性是不可分的数据项。 (2)属性不能和其他实体具有联系。 合并分E-R图,生成初步的E-R图 解决属性冲突,命名冲突,结构冲突。
反复性
反复推敲、修改、迭代的过程 结果不是唯一的 在矛盾中求得平衡 小组、团队工作 分段把关
试探性
分步进行
数据库设计概述——工具
手工迭代、优化 辅助工具(CASE)
Oracle: Design 2000 Sybase: Powerdesigner Rational: Rational Rose
CREATE TABLE Criticized ( url varchar(255) references Criticism(url), work number(5) references Work(id), primary key (url, work) ); CREATE TABLE WrittenBy ( work number(5) references Work(id), name varchar(128) references Author(name), primary key (work, name) );
数据库设计概述——特点
硬件、软件、界面 数据(结构)、处理(行为) 数据库模式是公用的、共享的,影响整 个应用的质量
三分技术,七分管理,十二分基础数据.
数据库设计概述——方法
软件工程的思想和方法 新奥尔良方法
需求分析 概念分析 逻辑设计 物理设计
数据库设计概述——特性
自底向上的ER图设计(续)
消除冗余,设计基本的E-R图 冗余数据: 可由基本数据导出. 冗余联系: 可由其它联系导出的联系.
数据抽象与局部视图设计
三种抽象: 分类: 定义某一类概念作为现实世界中的 一组对象的类型 is a member of 聚集:定义某一类型的组成成分 is a part of 概括: 定义类型之间的一种子集关系 is a subset of
运行DDL 装入测试数据 应用程序
概念结构设计——ER图
概念结构设计的方法 自顶向下 自底向上:经常用的方法。 逐步扩张 混合策略
自顶向下
定义全局概念结构的框架,逐步细化.
需求 全局概念模式
概念模式
概念模式
自底向上
定义局部应用的概念结构,再集成,形成全 局概念结构.
物理结构设计 物理实现
数据库设计概述——基本步骤
需求收集和分析 概念结构设计 逻辑结构设计 物理结构设计
数据怎么存,物理数据模型 根据DBMS产品、环境特点 影响数据库的性能
物理实现
数据库设计概述——基本步骤
需求收集和分析 概念结构设计 逻辑结构设计 物理结构设计 物理实现
1:1,联系集可以去除
数据库的物理设计
物理设计的主要内容包含: 为关系模式选择存取方法。 设计关系、索引等数据文件的物理存储结 构 存取方法包括: 索引方法:决定那些属性要建立索引 聚簇方法:存放在连续的物理块 HASH方法:通过计算找到实际的存放位置
数据库的物理设计(续)
逻辑结构的设计——ER到关系
实体集→表
属性→属性 主码→主码
逻辑结构的设计——ER到关系
联系集→表
M:N,联系集必须存在
Key包含参与实体集的主码
将1端的主码属性,引入N端的表中,成为外码 外码参照1端的主码 两个实体集可合并 或一端的主码引入到另一端中,作为外码
N:1,联系集可以去除
Works: id -> title, year, length
定义关系模式: (考虑需要的各种约束条件)
CREATE TABLE Author ( name varchar(128) primary key, birth int, death int, description clob );
CREATE TABLE Criticism ( title varchar(255), critic varchar(128), url varchar(255) primary key, synopsis clob, publication varchar(255), unique (title, critic) );
作为属性还是实体?
书上214页几个实例
自底向上设计的一个实例:
先设计子系统的E-R图 合并
某工厂管理信息系统
物质管理子系统
销售管理子系统
人事管理子系统
视图的合并
1. 2.
3.
属性冲突: 属性类型,取值范围不同 命名冲突:同名异议,异名同异 结构冲突: 同一对象具有不同的抽象(实体,属性) 实体中属性个数,次序不同 实体联系类型不同 消信息:书名,哪一年写的,作者,哪个 地区,哪个年代。
CREATE VIEW ReadableBookInfo AS SELECT Work.title as title, Work.year as year_written, as author, WrittenIn.region as region, WrittenIn.era as era FROM Work, Author, WrittenIn, WrittenBy WHERE Work.id = WrittenBy.work and = and WrittenIn.work = Work.id; 2)加入数据库中一本好的书,自动增加一个对这本书好的评论.
确定数据的存放位置和存贮结构
根据不同DBMS,确定系统的配置 对物理结构进行评价。
数据库设计——Example
设计一个数据库系统,存放有关作者,文学作品, 以及对作品的评论的信息。用户可以对数据库进行查询 来获取有关作者,作品的信息。
设计一个ER模型 转换为关系模型 设计有关约束 实现该系统
数据库设计概述——过程
数据库设计概述——基本步骤
需求收集和分析 概念结构设计 逻辑结构设计 物理结构设计 物理实现
数据库设计概述——基本步骤
需求收集和分析
用户/用途 用户关心什么 用户要什么结果
概念结构设计 逻辑结构设计 物理结构设计 物理实现
数据库设计概述——基本步骤
数据库设计要求:
根据如下需求,设计数据库关系模式(要求定义完整性 约束并使该模式符合BCNF),并完成相应的 DDL/DML操作。(设:SQL语句中可利用 Current_Date()函数获得系统日期)。 某校图书馆管理系统中储存着馆藏书籍、读者及读者借 阅书籍的信息。每位读者有一张借书证(证号是唯一 的);每本书籍均有一个唯一的书籍序号、并有统一 的分类号及关键词;图书馆记录着读者借阅书籍的日 期、状态及还书日期;同一位读者不会在同一天重复 借阅同一本书籍(书籍序号相同);
CREATE TRIGGER GoodReviewsTrig AFTER INSERT ON Work