第3章 关系数据库设计
关系数据库设计与数据模型规范化
关系数据库设计与数据模型规范化一、关系数据库设计关系数据库是计算机领域中最为常见的一种数据库类型。
其最大的优点在于能够将数据组织成易于理解和使用的表格形式。
在实际数据处理过程中,如何设计符合需求的关系数据库,就显得尤为重要。
1.需求分析在进行关系数据库设计之前,首先需要进行需求分析。
需求分析是数据库设计的前置条件。
在需求分析的阶段中,需要明确以下几点:(1)目标:明确数据处理的目标和应用范围,为之后的数据库设计打基础。
(2)分类:对数据分类进行划分,避免数据冗余。
(3)结构:建立明确的数据结构,便于数据管理和数据维护。
2.数据模型设计在确定了需求分析后,需要选择合适的数据模型来设计关系数据库。
目前常用的模型包括ER模型和UML模型。
(1)ER模型ER模型是实体关系模型(Entity-Relations),用于描述现实世界中的实体和实体之间的关系。
但是ER模型较为简略,无法完全描述企业组织的复杂业务。
(2)UML模型UML(Unified Modeling Language, 统一建模语言)是由Rational Software从其原有的语言发展而来,也是一个面向对象的系统建模语言。
UML可以完全描述在业务领域中的实体、角色、流程、组织、行业标准、应用程序、计算机设备和网络等事物,并对它们之间的关系进行规范化处理。
3.关系数据库设计在确定了数据模型后,需要按照模型的规范进行关系数据库的设计。
(1)确定实体之间的关系,确定实体之间的主键和外键。
(2)每个实体需有一个表来存储其中的数据。
每个表应该只包含一个主题,表的内容不应该受到单个操作的影响。
(3)确定数据类型,遵循数据类型的规范。
(4)减少冗余,使表格的设计更为完善。
二、数据模型规范化数据模型规范化是指通过一定的方法对数据模型进行检验和优化,以避免数据冗余、不一致和失误等问题,提高数据的有效性和可信性。
其主要目的是将数据冗余减至最小,维护数据库稳定性。
第3章 关系数据库设计理论
表3.1 学生关系
SNO S1 S1 S2 S2 S2 S2 S3 S3 S3 S4 SN 赵亦 赵亦 钱尔 钱尔 钱尔 钱尔 孙珊 孙珊 孙珊 李思 AGE 17 17 18 18 18 18 20 20 20
20
DEPT 计算机 计算机 信息 信息 信息 信息 信息 信息 信息 自动化
MN 刘伟 刘伟 王平 王平 王平 王平 王平 王平 王平 刘伟
SDEPT MN
关系模式SCD 关系模式 是不是2NF? 是不是 ?
不是,因为 不是,因为SNAME,SDEPT , 和MN部分函数依赖于码 部分函数依赖于码
分解说明
一个1NF,但非2NF的关系总是可以被分解成 一个1NF,但非2NF的关系总是可以被分解成 1NF 2NF 为一组2NF的关系。在规范化过程中, 2NF的关系 为一组2NF的关系。在规范化过程中,是通过一组 投影运算消除部分依赖。 投影运算消除部分依赖。 分解为2NF: 将SCD分解为 分解为 SC (SNO, CNO, GRADE) SD (SNO, SNAME , SDEPT, MN)
CNO C1 C2 C5 C6 C7 C5 C1 C2 C4 C1
SCORE 90 85 57 80 70 70 0 70 据库的操作时,会出现以下几方 面的问题: 面的问题: ⑴ 数据冗余 ⑵ 插入异常 ⑶ 删除异常 ⑷ 更新异常
我们把关系模式SCD分解为下面三个结构简单 分解为下面三个结构简单 我们把关系模式 的关系模式: 的关系模式: 学生关系S( 学生关系 (SNO ,SN ,AGE ,DEPT) ) 选课关系SC( 选课关系 (SNO ,CNO ,SCORE) ) 系关系D( 系关系 (DEPT ,MN) ) 在以上三个关系模式中, 在以上三个关系模式中,实现了信息的某种程 度的分离: 度的分离: 中存储学生基本信息, ⑴ S中存储学生基本信息,与所选课程及系主任 中存储学生基本信息 无关; 无关; 中存储系的有关信息, ⑵ D中存储系的有关信息,与学生无关; 中存储系的有关信息 与学生无关; 中存储学生选课的信息, ⑶ SC中存储学生选课的信息,而与所学生及系 中存储学生选课的信息 的有关信息无关。 的有关信息无关。
第3章关系数据库设计基础
第3章关系数据库设计基础第3章关系数据库设计基础设计数据库是建立数据库应用系统过程中的一项重要工作,通常包括需求分析、概念设计、逻辑设计和物理设计4个环节:需求分析:主要对数据库用户的业务要求进行分析,在此阶段,数据库设计人员应该与业务人员反复交流,对用户的业务范围、流程、处理细节和数据库存储环境等方面进行了解,以便全面和细致地收集、归纳和分析资料。
概念设计:用概念模型对事务及其相互关系进一步描述。
概念模型与DBMS无关,是面向现实世界的数据模型,如E – R方法。
逻辑设计:将概念模型转换成关系数据库中等价的关系模型,对关系模型进一步规范化,以便减少数据冗余,避免发生数据异常操作问题。
物理设计:综合考虑软件(操作系统、DBMS)和硬件环境,平衡各种利弊因素,确定数据库存储路径,通过关系模式建立数据库、数据库表、表间联系、数据完整性和安全性规则等。
为了确保主键值的惟一性,通过主键建立主索引;为了减少表连接操作时间,对外键建立普通索引。
数据库设计得如何将直接影响数据库应用系统运行的时空效率。
在实际设计关系数据库时,往往从人工表中整理出数据库表,所以使数据库的逻辑设计和物理设计两个环节显得尤其重要。
3.1 数据库表与数据语义在人们处理各类事物过程中,为了保留事物发展过程中的重要环节,事后进行查阅、统计、分析和总结,通常要提取和加工事物发展过程中的重要信息,将这些关键性数据登记到表格中。
由于人们记载信息的介质和处理方式不同,因此产生了各种各样的表格。
3.1.1 人工表与数据库表从传统意义上讲,人工表(如表3.1)是纸介质表格。
但从数据库的角度来看,有些电子表格(如Word表或Excel表)也是人工表。
人工表的主要特点是:没有格式要求,可以根据实际需要或人们的习惯随意设计,对表格中的每列数据也没有特定的类型要求。
例如一个表中可以嵌套另一个表;同一列中可以包含不同类型的数据等。
人们将某些数据通过数据库进行管理,实质上是将人工表中的数据转存到数据库表(如表3.2)中。
数据库应用第3章Design
S3
信息
王平
离散数学
70
S3
信息
王平
操作系统
85
2020/4/28
7
插入异常
S#
SN
MN
CN
G
S1 计算机 刘伟
数据库
90
S1
计算机 刘伟
离散数学
85
S2
信息
王平
数据结构
57
S2
信息
王平
信息系统
80
S2
信息
王平
VB
70
S3
信息
王平
数据结构
70
S3
信息
王平
数据库
80
S3
信息
王平
离散数学
70
S3
信息
王平
S4 自动化 李明
数据库
93
10
形成初始关系数据库模式
1. 数据冗余:
同一系中有n个学生,“系名”与”系主任”就重复n-1次; 同一个学生选修了m门课程,学号就重复了m-1次。
2. 更新异常:
若调整了某系系主任,数据表中所有行的“系主任”值都 要更新,否则会出现同一系系主任姓名不同的情况。
2020/4/28
如果X→Y,我们称X为这个函数依赖的决定属性集。
描述学生的关系模式:
U={S#, SD, MN, CN, G} (S#, SD)→SD SD→MN
2020/4/28
17
函数依赖
定义2
设R是一个具有属性集合U的关系模式,如果X→Y,并 且对于X的任何一个真子集Z,Z→Y都不成立,则称Y 完全函数依赖于X。若X→Y,但Y不完全函数依赖于X, 则称Y部分函数依赖于X。
第3章关系数据库设计基础_教学课件
F 114 / 41
3.2.2 函数依赖 是不同属性集合, 3.部分函数依赖 :X和Y是不同属性集合,有 P X→Y, 不完全函数依赖于X 记为:X→Y。 X→Y,但Y不完全函数依赖于X 。记为:X→Y。 例:由于学号 性别,课程→学分,故(学号 由于学号→性别,课程 学分, 学号 性别 学分 课程) P 性别,(学号 课程) P 学分 性别,(学号, ,课程)→性别,(学号,课程)→学分。
3.2.2 函数依赖
函数依赖的作用:通过分析关系模式R 函数依赖的作用:通过分析关系模式R中属 性的函数依赖关系规范数据库表。 性的函数依赖关系规范数据库表。
9 / 41
3.2.2 函数依赖 函数依赖: 中两组属性, 1.函数依赖:X和Y是R中两组属性,对R中任 意两元组,如对X的投影值相等,则对Y 意两元组,如对X的投影值相等,则对Y的投影 学号→姓名 就相等。记为:X→Y。 就相等。记为:X→Y。例:学号 姓名 (学号,课程)→姓名 学号,课程) 姓名 学号,课程) 考试成绩 (学号,课程)→考试成绩 学号→考试成绩 学号 考试成绩
姓名 马 伟 立 马伟立 马伟立
性别 男 男 男
出生日期 1987/10/12 1987/10/12 1987/10/12
民族 汉族 院地址 逸夫楼 逸夫楼 逸夫楼
课程 大学计算机基础 英语 高等数学 C
考试成绩
课堂成绩
实验成绩
总 分 84 85 58
学 分 4 5 4
学号 22060101 11050102 12060201
学号 22060101 22060101 22060101 11050102 11050102
姓名 马伟立 赵晓敏 孙武
性别 男 女 男
第3章 关系模型与关系规范化理论 第3节 数据库设计的规范化
例如:学生(学号,姓名,所在系,系主任姓名,课程名,成绩)
BuyerID 1 2 3 4 …
Address 中国北京市 美国纽约市 英国利物浦 日本东京市 …
BuyerID 1 1 4 2 …
Country 中国 中国 日本 美国 …
City 北京 北京 东京 纽约
…
2NF
【定义6】如果关系模式 R(U,F)∈1NF,且 R 中的每个非主属性完全函数依赖于 R 的某个候选码,则 R 满足第二范式(Second Normal Form),记作 R∈ 2NF。
规范化程度较高者必是较低者的子集,即5NF⊆4NF⊆BCNF⊆3NF⊆2NF⊆1NF 一个低一级范式的关系模式,通过模式分解可以转换成若干个高一级范式的关系模式 的集合,这个过程称作规范化。
1NF
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系 数据库。 1NF仍然会出现插入异常、删除异常、更新异常及数据冗余等问题。
数据库原理及MySQL应用 ——第三章(第3节)
数据库设计的规范化
1. 问题的提出 2. 函数依赖 3. 范式以及应用案例 4. 规范化小结
1. 问题的提出
要设计一个教学管理数据库,希望从该数据库中得到学生学号、姓名、年龄、性别、 系别、系主任姓名、学生学习的课程名和该课程的成绩信息。若将此信息要求设计为一 个关系,则关系模式为:
S(sno,sname,sage,ssex,sdept,mname,cno,cname,score) 可以看出,此关系模式的码为(sno,cno)。
sno 1414855328 1414855328 1414855328 1414855328 2014010225 2014010225 2014010225 2014010225 2014010302 2014010302 2014010302 2014010302
03 关系数据库设计与规范化
第三节 需求分析
需求分析的任务是对原系统的 整个应用情况作全面的、详细的调 查,明确用户的各种需求,在此基 础上确定用户的目标(新系统的功 能),新系统必须考虑将来的扩充 和改变。收集支持系统总的设计目 标的基础数据和对这些数据的要求, 并把这些要求写成用户和数据库设 计者都能够接受的文档。
确定用户需求可以通过对不同 层次的企业管理人员进行个人访问 得到。还应了解系统将来要发生的 变化,充分考虑系统的可能的扩充 和改变,使系统设计更符合未来发 展方向。
数据字典主要包括五个部分: (1)数据项 (2)数据结构 (3)数据流 (4)数据存储 (5)处理过程。
(1) 数据项: 是数据的最小单位。
描述: 数据项名: 学号 数据项含义:唯一标识每个学生 别名:学生编号 类型:字符型 精度: 长度:8 取值范围:00000000—99999999
取值含义:前两位标识该学生所在的年级, 后6位按顺序编号;
(3)评审、改进;
四、E-R模型设计方法
E-R(Entity relationship model)模型,简称ER模型,是由美籍 华人陈平山于1976 年提出的。是 对现实世界的一种抽象,将现实世 界的信息结构统一用属性,实体以 及实体之间的联系来描述。
数据库设计
数据库设计指的是在给定的应用环境中, 提供逻辑设计和物理设计,要求逻辑设计 能确定最优数据模型和处理模式,物理设 计能确定数据库的存储结构与存取方法.
大型数据库设计:庞大,开发周期长, 耗资多,设计人员既要有坚实的数据库基 础知识和设计技术、计算机基础知识、程 序设计方法和技巧、软件工程原理和方法、 应用领域知识。还要充分地了解实际应用 对象,难!!!
第三章 关系数据库设计 和规范化
关系数据库设计理论
关系数据库设计理论关系模式是用于描述关系数据库结构的概念模型,它包含了一系列的属性和关系约束。
关系模式的属性是一个属性集合,每个属性都有一个含义和数据类型,属性一般用属性名来表示。
关系模式的关系是一个二维表,表中的每一行称为一个元组,每一列表示一个属性,每个元组描述了实体的一条记录。
关系模式还包括关系完整性约束、参照完整性约束等。
函数依赖是描述属性之间依赖关系的概念,它是关系数据库设计中非常重要的一部分。
函数依赖可以分为函数依赖和多值依赖两种。
函数依赖是指在一个关系模式中,一些属性的值可以通过其他属性的值推导出来。
例如在一个关系模式中,若属性A的值决定了属性B的值,那么称属性B依赖于属性A。
多值依赖是指在一个关系模式中,一些属性的值同时决定了其他属性的值。
函数依赖能够帮助我们识别数据库的冗余、不一致等问题,提高数据的完整性和一致性。
范式是一种数据规范化的理论,它通过消除冗余、提高数据结构的完整性和一致性。
范式可以分为六个等级,分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
每个范式都有一定的规则和要求,越高级的范式要求越严格。
范式设计的核心原则是遵循每个范式的规则,尽量使数据结构简洁、逻辑清晰。
范式设计的目标是消除冗余和数据不一致性,提高数据的可靠性和可用性。
范式设计的过程包括识别属性和依赖关系、消除部分函数依赖和多值依赖、分解关系模式等。
范式设计不仅有助于数据的组织和管理,还可以提高数据库的性能和效率。
综上所述,关系数据库设计理论包括关系模式、函数依赖和范式,它们是数据库设计的基础,能够帮助我们规范化数据,提高数据的完整性和一致性。
合理的数据库设计可以提高数据库的性能和可用性,减少数据冗余,提高数据管理的效率。
第章关系数据库设计
④混合策略。把自顶向下和自底向上结合起来的方法。
概念模型的表示方法
在概念模型的表示方法中,最常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)。
该方法是数据库逻辑设计的一种简明扼要的方法,也称为E-R模型。
数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
对数据存储的描述通常包括以下几项。
数据存储名
说明
编号
输入的数据流(说明该数据流的来源)
输出的数据流(说明该数据流的去向)
组成:{数据结构}
数据量
存取频度(指单位时间内存取几次、每次存取多少数据等信息)
存取方式(包括是批处理还是联机处理,是检索还是更新,是顺序检索还是随机检索等)
在需求分析的基础上,用概念数据模型,例如E-R数据模型,表示数据及其相互间的联系。
概念数据模型是面向现实世界的数据模型,因而也易于为用户所理解。
概念设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
概念模型的特性
①有丰富的语义表达能力。能表达用户的各种需求,包括描述现实世界中各种事物和事物之间的联系,能满足用户对数据的处理要求。
需求分析的结果整理成需求说明,需求说明是数据库技术人员和应用单位的工作人员取得共识的基础,必须得到单位的有关管理人员的确认。
进行需求分析时,要调查清楚用户的实际要求,与用户达成共识,然后再分析与表达这些需求。
调查用户需求的步骤
①调查组织机构情况。包括了解该组织的部门组成情况、各部门的职责等,为分析信息流程做准备。
数据库-关系模式的设计-规范化
关系数据库设计
依赖正式记作 A1A2„An→B,也就是说“A1,A2,„An 函数决定 B” 。其中,A1A2„ An 称为决定因素。 如果一组属性 A1,A2,„An 函数决定多个属性,比如说: A1A2„An→B1 A1A2„An→B2 „ A1A2„An→Bm 则可以把这一组依赖关系简记为: A1A2„An→B1B2„Bm 例:在上例中,我们可以列举关于 Student 关系的以下四个函数依赖: Sno→Sname Sno→Sdept Sdept→Mname Sno Cname→Grade 由于前面的两个依赖的左边完全相同,都是 Sno,用简写的形式可以把它们汇总在 一行中: Sno→Sname Sdept 根据函数依赖的传递规则, 从 Sno→Sdept 和 Sdept→Mname 可以导出 Sno→Mname。 这一点我们从感性认识上也很容易理解,一个学号对应唯一的学生,而一个学生只能有 唯一的系主任。 另一方面,Sno→Cname 就是错误的,它不是函数依赖,原因显而易见,如第 1 元 组和第 2 元组,它们的 Sno 分量相同,但 Cname 分量却不同。
第3章 3.1 3.2
3.3
3.4 3.5
3.6 第4章 4.1 4.2 4.3 4.4 第5章
关系数据库设计
第1章 简介
关系数据库是由一组关系组成,所以关系数据库的设计归根到底是如何构造关系, 即如何把具体的客观事物划分为几个关系,而每个关系又有哪些属性组成。在我们构造 关系时,经常会发现数据冗余和更新异常等现象,这是由于关系中个属性之间的相互依 赖性和独立性造成的。 关系模型有严格的数学理论基础,并形成了关系数据库的规范化理论,这为我们设 计出合理的数据库提供了有利的工具。
Hale Waihona Puke Mname刘刚 刘刚 刘刚 金谦 金谦 李霞 周志光
第3章 关系数据库设计原理
数据库管理系统
什么是关系规范化
一个好的数据库要求数据库中的关系应满足一定 的要求。我们把满足不同要求的关系称为范式。 的要求。我们把满足不同要求的关系称为范式。 又按照要求条件的宽严的不同逐级分为第一范式 第二范式、 第三范式等, 并用1NF、 NF、 、 第二范式 、 第三范式等 , 并用 1NF 、 2NF 、 3NF 表示。 表示。 关系的规范化:就是将一个低一级的范式, 关系的规范化:就是将一个低一级的范式,转化 为一组高一级范式的过程。 为一组高一级范式的过程。这种转化过程就是关 系的规范化。 系的规范化。
数据库管理系统
现实世界随着时间在不断地变化, 现实世界随着时间在不断地变化,因而在不同的时 关系模式的关系也会有所变化。但是, 刻,关系模式的关系也会有所变化。但是,现实世界的 许多已有事实限定了关系模式所有可能的关系必须满足 一定的完整性约束条件。 一定的完整性约束条件。 这些约束或者通过对属性取值范围的限定, 这些约束或者通过对属性取值范围的限定,或者通过 属性值间的相互关连(主要体现于值的相等与否 主要体现于值的相等与否)反映出 属性值间的相互关连 主要体现于值的相等与否 反映出 后者称为数据依赖,它是数据模式设计的关键, 来。后者称为数据依赖,它是数据模式设计的关键,关 系模式应当刻划这些完整性约束条件。 系模式应当刻划这些完整性约束条件。
m:m( m:m(m to many)的关系 many) 一个实体的两个属性集中任何一个值都与另一个属性集中多个值 相对应。例如,学生号与课程号之间, 相对应。例如,学生号与课程号之间,任何一个学生可以选多门 课程,任何一个课程可以由多个学生选择。 课程,任何一个课程可以由多个学系统
U = { Sno,Sdept,Mname,Cname,Grade} , , , , 现实世界的已知事实告诉我们∶ 现实世界的已知事实告诉我们∶ 但一个学生只属于一个系; (1)一个系有若干学生 但一个学生只属于一个系; )一个系有若干学生,但一个学生只属于一个系 (2)一个系只有一名(正职 负责人; )一个系只有一名 正职)负责人; 正职 负责人 (3)一个学生可选修多门课程,每门课程有若干学生选修; )一个学生可选修多门课程,每门课程有若干学生选修; (4)每个学生学习每一门课程有一个成绩; )每个学生学习每一门课程有一个成绩; 于是得到U上的一组函数依赖 上的一组函数依赖: 于是得到 上的一组函数依赖: F = { Sno→Sdept,Sdept→Mname,(Sno, → , → , , Cname)→Grade } →
如何进行关系数据库设计与管理
如何进行关系数据库设计与管理一、引言关系数据库是一种最常用的数据管理系统。
在当今信息时代中,它被广泛应用于各个领域,包括企业管理、学术研究、金融服务等。
在关系数据库的应用过程中,良好的数据库设计和有效的数据库管理是非常重要的。
本文将从数据库设计和数据库管理两个方面进行阐述,以帮助读者更好地理解如何进行关系数据库设计与管理。
二、关系数据库设计关系数据库设计是指在满足特定需求的前提下,根据关系模型原则和设计规范,构建和组织数据库的过程。
一个好的数据库设计能够提高数据存取效率,降低数据冗余,确保数据的一致性和完整性。
1.需求分析在进行数据库设计之前,首先需要进行需求分析,明确数据库的功能和应用场景。
通过与用户的交流和讨论,了解用户的需求和期望,进而确定数据库的基本结构和功能。
2.实体建模实体建模是数据库设计的核心步骤之一。
它通过识别和描述现实世界中的实体以及实体之间的关系,将现实世界的概念转化为数据库中的表结构。
3.属性确定在实体建模的基础上,确定实体的属性和属性间的依赖关系。
属性的确定需要考虑属性的类型、长度和约束条件等因素,以保证数据的一致性和完整性。
4.关系建立根据实体之间的关系,建立关系数据库中的表结构。
在建立表时,需要考虑表之间的关联关系和外键约束,以保证数据的完整性和引用一致性。
5.范式分解范式分解是数据库设计中的一个重要步骤。
通过将表按照特定的范式进行分解,可以提高数据库的性能和可维护性。
常见的范式包括第一范式、第二范式和第三范式。
三、关系数据库管理关系数据库管理是指对已经设计好的关系数据库进行维护、优化和安全管理的过程。
良好的数据库管理可以保证数据库的性能和数据的安全性,提高系统的稳定性和可靠性。
1.数据备份与恢复数据备份与恢复是数据库管理的重要环节。
定期对数据库进行备份,以防止数据丢失或损坏。
在数据丢失或损坏时,可以通过备份数据进行恢复,减少数据的损失。
2.性能优化在进行数据库管理时,应注重对数据库性能进行优化。
数据库应用第3章Design-PPT精选文档
70
85
S4
自动化
李明
数据库
93
10
形成初始关系数据库模式
1. 数据冗余:
同一系中有n个学生,“系名”与”系主任”就重复n-1次; 同一个学生选修了m门课程,学号就重复了m-1次。
2. 更新异常:
若调整了某系系主任,数据表中所有行的“系主任”值都 要更新,否则会出现同一系系主任姓名不同的情况。
2019/3/8
11
形成初始关系数据库模式
3. 插入异常:
假设要开设一门新的课程,暂时还没有人选修。这样, 由于还没有“学号”关键字,课程名称和设课系也无法记 录入数据库。
4. 删除异常:
假设一批学生已经完成课程的选修,这些选修记录就应 该从数据库表中删除。但是,与此同时,系名与系主任 信息也被删除了。很显然,这也会导致插入异常。
属性
字段
概念数据库设计
逻辑数据库设计
物理数据库设计
现实世界
信息世界
逻辑世界
物理世界
E-R模型
2019/3/8
关系模型
3
关系数据库设计步骤
1. 2. 3. 4. 5. 6. 形成初始关系数据库模式; 关系模式规范化; 关系模式优化; 定义关系上的完整性和安全性约束; 子模式定义; 性能估计。
2019/3/8
2019/3/8
12
形成初始关系数据库模式
需要用关系模式的规范化方法消除初始逻辑数据库模 式中存在的问题。 某些关系模式可能存在由属性间的函数依赖引起的冗 余问题、插入问题、更新问题和删除问题。
2019/3/8
13
形成初始关系数据库模式
确定函数依赖集
函数依赖:Functional Dependency 对初始关系数据库模式中的每个关系模式进行深入地分 析,与用户协商,确定每个初始关系的函数依赖集,使 用关系数据库设计理论,对关系模式进行规范化处理。
《数据库系统》:关系数据库设计
《数据库系统》:关系数据库设计关系数据库设计关系数据库设计的⽬的是得到⼀组合适的关系模式,使其不含冗余,结构良好,便于获取信息。
概念和数学基础码超码:⼀个或多个属性的集合,这个集合可以唯⼀地区分出⼀个元组(⼀⾏)候选码:包含属性最少的超码,可能有多个主码:⼈为地选中,作为⼀⾏的区分标准的候选码。
本节中候选码更常⽤另⼀个常⽤的码是外码,与本节⽆关,不详细介绍函数依赖函数依赖是⼀个形如 α→β 的逻辑推理式,表⽰属性集 α 决定(determine)属性集 β ,或称 β 依赖 α . 同⼀模式中包含的多条函数依赖称为函数依赖集。
例如,R 上的两个属性 α 和 β ,如果关系实例中的所有元组对 t1,t2 都符合 若 t1[α]=t2[α] ,则 t1[β]=t2[β]。
也就是说,只要我们知道 α 的值,就能唯⼀确定 β 的值,称 α 决定β 。
特别地,如果β⊆α,称为平凡的函数依赖。
由此,我们得出超码的新定义:对于关系R和函数依赖集K,若 K→R 在 r(R) 上成⽴,则 K 是 r(R) 的⼀个超码。
闭包有了函数依赖集F,我们就可以由已知的函数依赖得出其他的函数依赖。
如 r(A,B,C)中有A→B,B→C,则 A→C(具体推理⽅法见下⽂Armstrong公理)。
类似的推理被称为逻辑蕴涵。
不断将这些新的函数依赖加⼊F,最终能够得到⼀个被原F逻辑蕴涵的所有函数依赖的集合,称为F的闭包,记作 F+.Armstrong公理系统反复运⽤以下三条Armstrong公理,就能通过F求出F+,保证结果是正确有效的。
⾃反律:若α为⼀属性集,β⊆α,则α→β增补律:若α→β,γ为⼀属性集,则γα→γβ传递律:若α→β且β→γ,则α→γArmstrong公理是完备的。
下⾯还有⼀些推论规则,使⽤起来更⽅便。
合并律:若α→β且α→γ,则α→βγ分解律:若α→βγ,则α→β且α→γ伪传递律:若α→β且γβ→δ,则αγ→δ属性闭包与函数依赖集的闭包相似,属性闭包是某⼀属性(或属性集)决定的所有属性的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• CASE(Computer-Aided Software Engineering, 计算机辅助软件工程)
3.1.2 数据库设计的基本步骤
• 按照规范设计法,可以将数据库设计的全过程分 为六个基本阶段(如图3.1所示):
– – – – – – 需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
• 设计一个完善的数据库应用系统往往需要以上6 个阶段的不断反复。
第3章 关系数据库设计
• 3.1 数据库设计概述
• 3.2 概念结构设计 • 3.3 逻辑结构设计 • 3.4 本章小结
3.2 概念结构设计
• 概念结构设计是将用户需求抽象为概念模型(或 称概念结构)的过程,是整个数据库设计的关键。 • 作为各种数据模型的共同基础,概念结构具有以 下主要特点:
– 根据需求分析的结果,为每一个局部应用设计相应的 局部概念模型(或称局部视图); – 将这些局部视图集成为一个全局的概念模型,并对其 进行验证,以确保该全局概念模型的一致性,并满足 需求分析阶段确定的所有用户需求。
3.2.2 局部视图的设计
• 学生成绩管理子系统
– 学生成绩管理子系统主要用于学生的选课管理和成绩管理。 – 学校只有一种类型的学生,每名学生有惟一的一个学号,还 有姓名、性别、年龄、班级等基本信息。 – 学校开设了多门课程,每门课程有惟一的一个课程号,还有 课程名、学分、课程简介等基本信息。 – 由于一门课程同时可以由多位老师讲授,因此,在上一学期 末进行选课的时候,每名学生可以根据主讲老师(有惟一的 老师编号)的姓名、性别、年龄、职称、学历等基本信息有 选择地选修由某些老师讲授的某些课程。 – 每位老师同时可以讲授多门课程,每门课程可以供多名学生 选修,如果由某位老师讲授的某门课程没有学生选修,则取 消由这位老师讲授的这门课程。 – 主讲老师会在学期末将自己所教学生的所教课程成绩输入到 数据库中,供学生在网上进行查询。
3.1.2 数据库设计的基本步骤(续)
• 物理结构设计阶段
– 物理结构设计阶段实现的是数据库系统的内模式, 它的质量直接决定了整个系统的性能。 – 物理结构设计是根据具体计算机系统(DBMS和硬件 等)的特点,为数据模型选取一个最适合应用环境的 物理结构,包括存储结构和存取方法。 – 为了设计数据库的物理结构,设计人员必须充分了 解所用DBMS的内部特征;充分了解数据系统的实际 应用环境,特别是数据应用处理的频率和响应时间 的要求;充分了解外存储设备的特性。 – 对将在数据库上运行的各种事务进行详细分析,根 据所用数据库管理系统提供的存储结构和存取方法, 选取一个最适合应用环境的物理结构,使得在数据 库上运行的各种事务的响应时间小、存储空间利用 率高、事务吞吐率大。
3.2.2 局部视图的设计(续)
• 学生成绩管理子系统(续)
– 首先,根据用户需求,分析潜在的实体。实体通常是 需求文档中的中心名词,主要活动都是围绕它们开展 的。显然可以找出学生、课程和老师这3个实体,因 为该子系统的主要活动——课程的选修与讲授以及成 绩的输入与查询都是围绕这3个实体开展的。 – 每一个实体都有相应的属性来描述它。在本例中,
3.1.2 数据库设计的基本步骤(续)
• 数据库的运行和维护阶段
– 数据库试运行合格后,就可以交给用户正式运行了。 – 由于应用环境的不断变化,对数据库的维护工作将 是一项长期任务。 – 在数据库运行阶段,对数据库经常性的维护工作主 要由数据库管理员负责完成,包括:
• • • • 数据库的转储和恢复。 数据的安全性和完整性控制。 数据库性能的监督、分析与改造。 数据库的重组织和重构造。
也就是说,数据库设计不但要建立数据库,而 且还要建立基于数据库的应用系统,即设计整个数 据库应用系统,这是对数据库设计的广义理解。
本书主要讨论狭义的数据库设计,即设计数据 库本身,或者说,设计数据库的各级模式并据此建 立数据库,这是整个数据库应用系统设计的一部分。
3.1.1 数据库设计的方法
• 新奥尔良方法
3.1.2 数据库设计的基本步骤(续)
3.1.2 数据库设计的基本步骤(续)
• 数据库的设计需要多种人员在不同阶段参与进来, 包括系统分析人员、数据库设计人员、数据库管 理员、应用开发人员和用户。
– 系统分析人员和数据库设计人员是数据库设计的核心人 员,他们将自始至终参与数据库的设计,他们的水平直 接决定了数据库系统的质量。 – 由于需要对数据库进行全面的管理和控制,数据库管理 员也需要参与数据库设计的全过程。 – 应用开发人员(包括程序员和操作员)在数据库实施阶 段参与进来,负责编制程序和准备软硬件环境。 – 用户在需求分析阶段和概念结构设计阶段参与进来,使 设计人员能准确把握用户的各种需求,设计出使用户满 意的概念模型;此外,设计出来的数据库最终还要交给 用户正式运行,因此,用户还要参与数据库的运行和维 护阶段。
3.1.2 数据库设计的基本步骤(续)
• 物理结构设计阶段(续)
– 例如
• 为了提高数据的存取效率,为某些属性(如经常出 现在查询条件中的多值属性等)建立必要的索引等; • 根据实际情况,将数据的易变部分和稳定部分、经 常存取部分和存取频率较低部分分开存放,以改进 系统的性能。
– 在目前商品化的关系数据库管理系统中,数据库的 大部分物理结构都由系统自动完成,用户需要设计 的部分已经很少了。 – 实际上,对于小型的数据库,我们很少考虑数据库 的物理结构。 – 因此,这里只重点讨论数据库的概念结构设计和逻 辑结构设计。
• 和数据模型相比,概念模型更容易被用户理解,是 设计人员和用户之间进行交流的语言,用户的积极 参与是数据库设计成功的关键。
3.1.2 数据库设计的基本步骤(续)
• 逻辑结构设计阶段
– 逻辑结构设计是将概念模型转换为某一数据库管理 系统支持的数据模型(即逻辑模型,如关系模型), 并对其进行优化。 – 此外,逻辑结构设计还要根据用户对数据的不同需 求建立必要的视图,即外模式。
3.1.2 数据库设计的基本步骤(续)
• 需求分析阶段
– – – – 进行数据库设计首先必须准确了解和分析各种用户的应用需求。 需求分析是整个设计过程的基础,是最困难、也最耗时的一步。 简单地说,需求分析就是分析用户的需求,是设计数据库的起点。 通过调查、收集和分析,获得用户对数据库的以下需求:
• 数据需求。 • 处理需求。 • 安全性与完整性需求。
– 其次,根据用户需求,确定实体之间的联系。实体之 间的联系通常是需求文档中的中心动词,表示实体之 间发生的动作或隶属关系。在本例中,选修(或讲授) 就是这3个实体之间发生的主要动作。 – 由于一名学生可以选修由不同老师讲授的不同课程, 一位老师可以给不同学生讲授不同课程,一门课程可 以由不同老师给不同学生讲授,因此,这3个实体之 间的选修联系是一个多对多联系(m:n:p)。 – 选修联系发生后,会产生一个基本属性,这就是主讲 老师要向数据库输入的成绩。 – 老师对成绩的输入和学生对成绩的查询都不能看作是 实体之间的联系,它们只是对成绩属性的数据操作。
• 描述学生的基本属性有学号、姓名、性别、年龄和 班级,其中,学号为码。 • 描述课程的基本属性有课程号、课程名、学分和课 程简介,其中,课程号为码。 • 描述老师的基本属性有老师编号、姓名、性别、年 龄、职称、学历,其中,老师编号为码。
3.2.2 局部视图的设计(续)
• 学生成绩管理子系统(续)
第3章 关系数据库设计
• 3.1 数据库设计概述
• 3.2 概念结构设计 • 3.3 逻辑结构设计 • 3.4 本章小结
3.1 数据库设计概述
数据库设计是指对于一个给定的应用环境,设 计优化的数据库逻辑模式和物理结构,并据此建立 数据库及其应用系统,使之能够有效地存储、管理 和利用数据,满足各种用户的应用需求(包括数据 需求、处理需求、安全性和完整性需求)。
3.2.2 局部视图的设计(续)
– 对用户的以上需求进行分析和表达之后,必须提交 给用户,征得用户的认可。 – 需求分析阶段的一个重要而困难的任务是收集将来 应用可能涉及到的数据,设计人员应充分考虑到应 用的可扩充性,使系统易于扩充。
3.1.2 数据库设计的基本步骤(续)
• 概念结构设计阶段
– 概念结构设计是整个数据库设计的关键,它通过对 用户需求进行综合、归纳和抽象,形成独立于任何 数据库管理系统的概念模型,通常用E-R图表示。 – 在需求分析阶段得到的应用需求首先应抽象为信息 世界中的概念模型,才能更准确地用某一数据库管 理系统支持的数据模型来实现这些需求。
– 规范设计法,即运用软件工程思想,将设计过程 分为若干阶段和步骤,按照工程化的方法设计数 据库。 – 新奥尔良方法将数据库设计分成需求分析、概念 设计、逻辑设计和物理设计四个步骤。 – 现在常用的规范设计法大多起源于新奥尔良方法, 只是在数据库设计的不同阶段上采用了某些具体 的技术和方法。
• 基于E-R模型的数据库设计方法 • 基于3NF的数据库设计方法
3.2.1 概念结构设计的方法和步骤
• 概念结构设计通常有以下四种方法:
– 自顶向下
– 自底向上
– 逐步扩张 – 混合策略
• 其中,最常用的策略是自底向上方法,即自顶向 下地进行需求分析,然后再自底向上地设计概念 模型。
ቤተ መጻሕፍቲ ባይዱ
3.2.1 概念结构设计的方法和步骤(续)
• 概念结构设计可分为以下两个步骤:
3.2.2 局部视图的设计(续)
• 学生成绩管理子系统的E-R图
3.2.2 局部视图的设计(续)
• 在不同的应用中,同一个客观事物可以有不同的 抽象级别。 • 例如,班级在这里作为学生的一个属性,而在其 它地方可能被抽象为一个实体。 • 为了简化E-R图,尽量减少实体个数,凡满足以 下两条准则的客观事物,一般都作为属性处理:
– 属性必须是不可再分的数据项,即属性不能再有需 要进一步描述的性质; – 属性不能与其它实体发生联系,即E-R图中的联系都 是实体和实体之间的联系。