Transcript prepa高校

Database Design
Liu Xiufeng
Information and technology school
Objectives for Students
1.Grasp the basic processes and method of DB
design
(掌握数据库设计的基本步骤和方法)
2. Grasp the method of requirements
analysis
(掌握需求分析的方法)
3.Grasp the basic processes and method of
conceptual design
(掌握概念结构设计的基本步骤和方法)
Lecture Outline
1
DB Design Overview
2
Basic Processes of DB Design
3
Requirements Analysis
4
Conceptual Design
Structure Design
5
Conclusion
7.1 DB Design Overview
The definition of DB design
数据库设计
对于一个给定的应用环境,构造(设计)
优化的数据库逻辑模式和物理结构,并据此建
立数据库及其应用系统,使之能够有效地存储
和管理数据,满足各种用户的应用需求,包括
信息管理要求和数据操作要求。
Two points of DB Design
1
2
information management
requirements (信息管理要求):
data manipulation
requirements(数据操作要求):
store and manage all kinds of
data objects in database
do some operations on data,
eg. search ,add ,delete,alter
The Features of DB Design
1.Basic rules of constructing databse:
(数据库建设的基本规律)
三分技术,七分管理,十二分基础数据
Management(管理)
1.Manage DBAS Projects
2.Manage business process
of enterprise
Basic Data(基础数据)
1.collect、store
2.Update
2.Combine data design and operation design:
(数据设计和处理设计相结合)
结构和行为分离的设计
现实世 界
功能分析
数据分析
数
据
库
设
计
概念模型设计
逻辑数据库设计
功能说明
功能模型
事务设计
应用设计
物理数据库设计
应用开发
子模式设计
系统调试
建立数据库
应
用
系
统
设
计
The Method of DB Design
1.Needs for the knowledge below:
Computer basic knowledge
计算机的基础知识
Principle and Method of Software Engineer
软件工程的原理和方法
Method and Technique of programming design 程序设计的方法和技巧
Database basic knowledge
数据库的基本知识
Database Design technology
数据库设计技术
Knowledge in the specific field
应用领域的知识
The Method of DB Design
2.Different kinds of methods including:
New Orleans (新奥尔良法)
Method based on E-R Model(基于E-R模型的数据库设计方法)
3NF Method(第三范式设计方法)
Object Definition Language Method(面象对象的设计方法)
Basic Processes of DB Design
Preparation for DB Design
数据库设计的准备工作
Decide People Participating in DB Design
(选定参加设计的人)
1.系统分析人员、数据库设计人员(Analyser and Designer)
 自始至终参与数据库设计
2. 用户和数据库管理员 (users and DBA)
 主要参加需求分析和数据库的运行维护
3.应用开发人员( Application programmers)
 在系统实施阶段参与进来,负责编制程序和准备软硬件环境
DBAS Life Cycle
Database study
Database design
Implementation and loading
Testing and evaluation
Operation
maintenance and evolution
DBAS Life Cycle
 Database Initial study( requirement analysis)
 Analyse the company situation, define problems and constrains,
define objectives, define scope and boundaries
 Database Design
 Create the conceptual design
 Create the logical design
 Create the physical design
 Implementation and loading
 Install DBMS, create the database(s), load initial data
DBAS Life Cycle(cont.)
 Testing and evaluation
 Test the database
 Fine-tune(adjust) the database
 Evaluate the database and its application programs
 Operation
 Produce the required information flow
 Maintenance and evolution
 Introduce changes
 Make enhancements
7.1.3数据库设计的基本步骤
 数据库设计分6个阶段






需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
 需求分析和概念设计独立于任何数据库管理系统
 逻辑设计和物理设计与选用的DBMS密切相关
Basic processes of DB Design
Mini-World View
Requirements Collection and
Analysis
Conceptual Design
Logic Design
Physical Design
Basic processes of DB Design
 Conceptual Design
 High level description (often done ER model)
 Entity Relationship modelling and normalisation
 DBMS software selection
 Logical design
 Translate ER into DBMS data model
Eg. translate model into definitions for tables, views...
 Schema Refinement
 consistency, normalization
 Physical design
 Storage structures - optimize performance
 Distributed database design
数据设计和处理设计同时进行
图表
Two Key points in DB Design
1. Combine Data Design and Manipulation
Design Closely
2.Carry Out The Two Jobs Simultaneously at All
Stages, Consult Each Other, Supplement Each
Other
Schemas in DB Design
数据库设计不同阶段形成的数据库各级模式
Schemas in DB Design
数据库的各级模式
7.2 Requirements of Analysis
(需求分析)
Tasks of RA(需求分析的任务)
1.Defining requirements
(详细调查现实世界要处理的对象, 如组织、部门、企业, 充分了解原系统)
2.Analyzing requirements(明确用户的各种需求)
Inputs
Outputs
Processes
Data Storage
3.Decide the function and boundaries of new system (确定
新系统的功能)
同时充分考虑今后可能的扩充和改变
Instance of Amazon.com
Inputs
 Index page
•Search string
•Clicking on links
Outputs
 Search results
 Web page
Processes
 Search database for search string
 Retrieve web page
Data Storage
Key points of RA
需求分析的重点
 The Critic Points of Investigation:Data,Operation
调查的重点是“数据”和“处理”
 Get Users’ Needs on DB(获得用户对数据库要求)
 Information Management Requirements( 信息要求)
 Operation Management Requirements(处理要求)
 Security and Integrity Requirements(安全性与完整性要求)
Difficulties of RA
Make final users’ needs clear
(确定用户最终需求)
Reasons:
 Users lack for computer knowledge(用户缺少计算机知识)
 Designer lack for users’ professional knowledge
(设计人员缺少用户的专业知识)
Solutions(解决方法):
 Designer should keep the constant and deep
communication with users
(设计人员必须不断深入地与用户进行交流)
Often Used Methods
(1)跟班作业
(2)开调查会
(3)请专人介绍
(4)询问
(5)设计调查表请用户填写
(6)查阅记录
Structured Analysis
(结构化分析方法)
 从最上层的系统组织机构入手
 自顶向下、逐层分解分析系统
Structured Analysis
(结构化分析方法)
1.Any System can be Abstracted to be a
diagram below:
数据
存储
数据流
数据
来源
信息要求
数据流
处理
数据
输出
处理要求
Structured Analysis
(结构化分析方法)
2.Decompose Functions and Data(分解处理功能和数据)
(1) Decompose Functions
 将处理功能的具体内容分解为若干子功能
(2)Decompose Data
 处理功能逐步分解同时,逐级分解所用数据,形成若干层次的数
据流图
(3)expression methods(表达方法)
 处理逻辑:用判定表或判定树来描述
 数据:用数据字典来描述
3.Get Confirmation of users
将分析结果再次提交给用户,征得用户的认可
Procedure of RA
(需求分析过程)
7.2.3 Data Dictionary
(数据字典)
1.Purpose of Data Dictionary
进行详细的数据收集和数据分析所获得的主要结果
2.Content of Dictionary
 Data Item(数据项)
 Data Structure(数据结构)
 Data Flow(数据流)
 Data Storage(数据存储)
 Procedure of Operation)处理过程)
⒈ Data Item(数据项)
 Atomic item(数据项是不可再分的数据单位)
 Description of Data item
数据项描述={ 数据项名,数据项含义说明,别名,
数据类型,长度,取值范围,取值含义,
与其他数据项的逻辑关系,数据项之间的
联系 }
⒉ Data structure
(数据结构)
 Specify the data items’s relationship
(数据结构反映了数据之间的组合关系。)
 Consist of several data items or data structure ,
or two things together
(一个数据结构可以由若干个数据项组成,也可以由若
干个数据结构组成,或由若干个数据项和数据结构混合组
成。)
 Description of Data Structure
数据结构描述={数据结构名,含义说明,
组成:{数据项或数据结构}}
⒊ Data Flow(数据流)
 moving route of data structure in system
(数据流是数据结构在系统内传输的路径。
 Description:
数据流描述={ 数据流名,说明,数据流来源,
数据流去向,组成:{数据结构},
平均流量,高峰期流量}
⒋ Data Storage(数据存储)
Place for data to stay or to be stored, also
input and output data flow
(数据存储是数据结构停留或保存的地方,也是数据
流的来源和去向之一。)
Description:
数据存储描述={数据存储名,说明,编号,
输入的数据流 ,输出的数据流 ,
组成:{数据结构},数据量,存取频度,
存取方式}
⒌ Procedure of operation
(处理过程)
 Decision Diagram or Decision Tree used to deal with
logics
(具体处理逻辑一般用判定表或判定树来描述)
 Description:
处理过程描述={处理过程名,说明,输入:{数据流},
输出:{数据流},处理:{简要说明}}
Requirements Analysis
(需求分析)
 分析用户活动产生,产生业务流程图
 确定系统范围,产生系统范围图
 分析用户活动涉及的数据,产生数据流图
 分析系统数据,产生数据字典
需求分析文档
Summary for requirements
Analysis
 设计人员应充分考虑到可能的扩充和改变,使设计易于
更改,系统易于扩充
 必须强调用户的参与
7.3 Conceptual Design Using the ER
Model (用ER图进行概念结构设计)
 Design choices:
 Should a concept be modeled as an entity or an attribute?
 Should a concept be modeled as an entity or a relationship?
 Identifying relationships: Binary or ternary?
 Note constraints of the ER Model:
 A lot of data semantics can (and should) be captured.
 But some constraints cannot be captured in ER diagrams.
• We’ll refine things in our logical (relational) design
Abstract Methods
1.分类(Classification, is member of)
Entity Set (Student,Teacher,Course)
2.聚集(Aggregation, is part of)
Attribute(Student:Sno,Sname,Ssex,Sage)
3.概括(Generalization, is subset of)
Superclass
Student
Subclass
undergraduate
graduate
Example of ER Model
学号
职号
m
姓名
性别
职称
老
师
教
n
Entity Set
姓名
学
Relationship Set
生 专业
班级
Attribute
Categorization of Attibutes
(属性的分类)
 基本属性和复合属性
 单值属性和多值属性
 多值属性的处理
邮政编码
 将原来的多值属性用
几个新的单值属性来表示
 将原来的多值属性用
家庭地址
省(市)
名
门牌号码
区 名
街 道
基本工资
姓名
地址
图5.4 地址属性的层次结构
实发工资
职工
规格
供应商
进货价格
零件名
图5.8 导出属性的表示
销售价格价
格
零件编码
零件
多值属性的表示
房租
工号
一个新的实体类型表示
 导出属性
奖金
Operation on ER Model
(ER模型上的操作)
教师号
姓名
出生日期
职务
工资
教师
(a)
教师号
姓名
出生日期
教师号
教师不变信息
职务
工资
教师变动信息
(b)
图 实体类型的垂直
分裂
奖金
奖金
Design of local ER Model
设计局部ER模式
确定属性的原则:
属性应该是不可再分解
的语义单位;实体与属性之
间的关系只能是1:N的。
属性分配的原则:
当多个实体类型用到同一
属性时,一般把属性分配给
那些使用频率最高的实体类
型,或分配给实体值少的实
体类型。
有些属性不宜归属于任一
实体类型,只说明实体之间
联系的特性
需求分析结果
确定局部结构范围
实体定义
联系定义
属性分配
有
还有局部
结构待分
析
无
进入全局ER模式设计
图 局部ER模式设计
An Example of Intergration of E-R Model
Local ER Model of students
Local ER Model of Courses
Intergration of ER Model
Whole ER Model(全局 ER模式)
局部ER模式
确定公共实体类型
合并两个局部ER模式
1.Attribute conflict
2.Structure conflict
检查并消除冲突
3.Name conflict:
还有冲突吗
还有未合
并的局部
模式无
全局ER模式设计
有
有
Optimization of Whole ER Model
全局ER模式的优化
 Unite entity sets
(实体类型的合并)
 Eliminate redundant attributes
(冗余属性的消除 )
 Eliminate redundant relationship
(冗余联系的消除)
A)Unite Entities
(合并实体)
一般1:1联系的两个实体可以合并为一个实体
如果两个实体在应用中经常需要同时处理,也可
考虑合并
 例如病人和病历,如果实际中通常是查看病人
时必然要查看病历,可考虑将病历合并到病人
实体中
•减少了联接查询开销,提供效率
Flash
B)eliminate redundant
Attributes(消除冗余属性)
分ER图中一般不存在冗余属性,但集成后可能产
生冗余属性
 例如,教育统计数据库中,一个分ER图中含有高校毕业
生数、在校学生数,另一个分ER图中含有招生数、各年
级在校学生数
 每个分ER图中没有冗余属性,但集成后“在校学生数”
冗余,应消除
Flash
Logic
DB Design
Converting ER to Relational
 Fairly analogous structure
 But many simple concepts in ER are subtle to specify
in relations
ER to Relation
Entity sets to tables.
ssn
name
lot
ssn
name
lot
123-22-3666 Attishoo
48
231-31-5368 Smiley
22
131-24-3650 Smethurst 35
Employees
CREATE TABLE Employees
(ssn CHAR(11),
name CHAR(20),
lot INTEGER,
PRIMARY KEY (ssn))
Relationship Sets to Tables
 In translating a many-tomany relationship set to
a relation, attributes of
the relation must include:
1) Keys for each
participating entity set
(as foreign keys). This set
of attributes forms a
superkey for the relation.
2) All descriptive attributes.
CREATE TABLE Works_In(
ssn CHAR(1),
did INTEGER,
since DATE,
PRIMARY KEY (ssn, did),
FOREIGN KEY (ssn)
REFERENCES Employees,
FOREIGN KEY (did)
REFERENCES Departments)
ssn
123-22-3666
123-22-3666
231-31-5368
did
51
56
51
since
1/1/91
3/3/93
2/2/92
Review: Key Constraints
 Each dept has at
most one manager,
according to the ssn
key constraint on
Manages.
since
name
dname
lot
Employees
did
Manages
budget
Departments
Translation to
relational model?
1-to-1
1-to Many
Many-to-1
Many-to-Many
Translating ER with Key
Constraints
since
name
ssn
Employees
dname
did
lot
Manages
budget
Departments
 Since each department has a unique manager, we could instead
combine Manages and Departments.
CREATE TABLE Manages(
ssn CHAR(11),
did INTEGER,
since DATE,
PRIMARY KEY (did),
FOREIGN KEY (ssn)
REFERENCES Employees,
Vs.
CREATE TABLE Dept_Mgr(
did INTEGER,
dname CHAR(20),
budget REAL,
ssn CHAR(11),
since DATE,
PRIMARY KEY (did),
FOREIGN KEY (ssn)
REFERENCES Employees)
Review: Participation
Constraints
 Does every department have a manager?
 If so, this is a participation constraint: the participation of
Departments in Manages is said to be total (vs. partial).
• Every did value in Departments table must appear in a
row of the Manages table (with a non-null ssn value!)
since
name
ssn
dname
did
lot
Employees
Manages
Works_In
since
budget
Departments
Participation Constraints in
SQL
 We can capture participation constraints involving one
entity set in a binary relationship, but little else
CREATE TABLE Dept_Mgr(
did INTEGER,
dname CHAR(20),
budget REAL,
ssn CHAR(11) NOT NULL,
since DATE,
PRIMARY KEY (did),
FOREIGN KEY (ssn) REFERENCES
Employees)
Physic Design
设计数据库的物理结构
 为关系模式选择存取方法
 设计数据库的存储结构
物理设计的考虑
 查询时间效率
 存储空间
 维护代价
物理设计依赖于给定的计算机系统
1.Select access method
存取方法:数据的存取路径
 例如图书查询
存取方法的选择目的是加快数据存取的速度
 索引存取方法
 聚簇存取方法
 散列存取方法
可以使用什么样的存取方
法依赖于具体的DBMS
2.Design storage structure of Database
确定数据的存放位置
 针对应用环境和DBMS特性,合理安排数据存储位置
• 表和索引可考虑放在不同的磁盘上,使查询时可以并行
读取
• 日志文件和备份文件由于数据量大,而且只有恢复时使
用,可放到磁带上
确定系统配置
 系统初始参数不一定适合应用
• 并发用户数、同时打开的数据库对象数、缓冲区分配参
数、物理块的大小等
Implement of Database
建立实际的数据库结构
 CREATE TABLE
 CREATE INDEX
 ……
初始数据装入
安全性设计和故障恢复设计
应用程序的编码和调试
Operation and Maintain
试运行
 根据初始数据对数据库系统进行联调
 执行测试:功能、性能
维护




数据备份和恢复
数据库安全性控制和完整性控制
数据库性能的分析和改造
数据库的重组织
Useful Links
人大《数据库系统概论》国家精品课程
The database course in harvard university
The Database and Information Systems
Laboratory on UIUC
Conclusion
 1.数据库设计需要综合多种知识,通常由有经验
的系
统分析人员来进行
 2.搞清楚应用系统的业务逻辑是设计的关键,包括系统
的数据要求和处理要求
 3.在业务的基础上选择合适的技术
Conclusion