武汉大学数据库基础知识课件_第1页
武汉大学数据库基础知识课件_第2页
武汉大学数据库基础知识课件_第3页
武汉大学数据库基础知识课件_第4页
武汉大学数据库基础知识课件_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章数据库基础知识学习导读

数据库技术是研究数据管理的技术,即如何妥善地保存和科学地管理数据。数据库技术是发展速度最快,应用最广泛的技术,它作为计算机科学和技术的一个重要分支已成为多种计算机应用系统的核心。数据库技术主要延着数据模型、数据库应用、数据库管理系统开发技术三个方面发展。本章主要介绍数据管理技术的发展、数据模型、关系运算、关系规范化理论和数据库设计等内容。1第1章数据库基础知识学习导读11.1信息、数据与数据处理1.1.1数据与信息

数据是人类活动的重要资源,数据库系统就是研究如何妥善地保存和科学地管理数据的计算机系统。现代社会是信息的社会,信息以惊人的速度增长,因此,如何有效地组织和利用它们成为急需解决的问题。数据库系统的目的就是为了高效地管理及共享大量的信息,而信息与数据是分不开的。

21.1信息、数据与数据处理1.1.1数据与信息2数据与信息

信息--是现实世界各种事物的存在特征、运动形态以及不同事物间的相互联系等诸要素在人脑中的抽象反映,是经过加工的数据。例如,气象局每天从各地气象站收集到大量有关气象的图形或文字记录后,对这些记录数据进行综合处理、分析、判断后,就可告知当地温度、湿度、风力、阴晴等信息。信息对决策或行动是有价值的。例如,人们可以根据天气预报安排生产和生活。数据--是对信息的符号化的表示,是数据库研究和处理的对象。

信息与数据的关系:数据是信息的载体,信息是数据的内涵。即数据是信息的符号表示,而信息通过数据描述,又是数据语义的解释。信息是有一定含义的、经过加工处理的、对决策有价值的数据。3数据与信息信息--是现实世界各种事物的存在特征、运动形态以数据处理1.1.2数据处理

数据处理--是指对数据进行收集、管理、加工、传播等一系列工作,是将数据转换成信息的过程。目前在计算机的各类应用中,用于数据处理约占80%。数据管理--是指对数据的组织、存储、检索、维护等工作,是数据处理的基本环节,是任何数据处理必有的共性部分。由于数据管理技术的优劣直接影响数据处理的效率,因此它是数据处理的核心。

4数据处理1.1.2数据处理41.2计算机数据管理的3个阶段数据管理技术好坏评判的标准:

(1)数据冗余数据冗余--是指同一数据多次存放。数据冗余带来的问题有:①浪费存储空间②修改麻烦③潜在的数据不一致性(2)数据共享数据共享体现在:①多个应用可以使用同一数据、记录、数据项。②在同一时刻多个用户可存取同一数据。51.2计算机数据管理的3个阶段数据管理技术好坏评判的标准:数据管理技术好坏评判的标准(3)数据独立性数据独立性是指应用程序和数据之间相互独立,不受影响。即数据结构的修改不引起应用程序修改的特性。数据独立性包括:①逻辑独立性②物理独立性(4)数据统一集中管理

提供对数据进行安全性控制、完整性控制、并发性控制等功能。6数据管理技术好坏评判的标准(3)数据独立性61.2计算机数据管理的3个阶段1.2.1人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算,数据量不大,也没有专门的软件对数据进行管理。1.人工管理阶段的特点数据是面向应用的,一组数据对应一个程序,数据冗余大,不能实现数据共享。数据不保存,数据与程序合在一起,数据独立性差。没有软件系统对数据管理,只能采用手工方式进行处理。程序员负担重,他必须自己编程实现数据的存储结构、存取方法和输入输出,迫使程序员直接与物理设备打交道,加大了程序设计难度,编程效率低。

71.2计算机数据管理的3个阶段1.2.1人工管理阶段7数据集1应用程序1数据集2应用程序2应用程序n数据集n人工管理阶段2.人工管理阶段应用程序与数据之间的关系8数据集1应用程序1数据集2应用程序2应用程序n数据集n人工管文件系统阶段1.2.2文件系统阶段

20世纪50年代末,计算机不仅用于科学计算,而且大量用于数据管理,同时磁盘、磁鼓等大容量直接存储设备的出现,使存放大量数据成为可能。操作系统中的文件系统就是专门用来管理所存储数据的软件。1.文件系统阶段的特点数据以文件形式组织,可以长期保存在磁盘上。数据有了逻辑结构和物理结构之分,由“存取方法”实现逻辑结构与物理结构的映射。数据是面向特定用途设计的,一个文件基本上对应一个应用程序,造成数据冗余大,数据共享性差;文件之间相互独立,数据联系弱。

实现了数据的物理独立性,但未实现数据的逻辑独立性。9文件系统阶段1.2.2文件系统阶段9文件系统阶段文件系统文件1应用程序1文件2应用程序2文件n应用程序n2.文件系统阶段应用程序与数据之间的关系10文件系统阶段文件文件1应用程序1文件2应用程序2文件n应用程数据库系统阶段1.2.3数据库系统阶段

20世纪60年代后期,随着数据管理的规模日趋增大,数据量的急剧增加,文件系统已不能适应需要。为此,人们研制出了一种新的、先进的数据管理方法,即数据库系统。1.数据库系统阶段的特点实现了数据共享。面向全组织的数据结构化,数据不再面向特定的某个或多个应用,而是面向整个应用系统,减少了数据冗余。数据独立性高,实现了数据的逻辑独立性和物理独立性。

统一数据控制功能,提供了数据安全性控制、数据完整性控制、并发控制和数据库恢复等数据控制功能。11数据库系统阶段1.2.3数据库系统阶段11数据库系统阶段应用程序1应用程序2应用程序nDBMSDB2.数据库系统阶段应用程序与数据之间的关系12数据库系统阶段应用程序1应用程序2应用程序nDBMSDB2.思考题问:文件系统中的文件与数据库系统中的文件有何本质的区别?答:文件系统中的文件是面向应用的,一个文件基本对应一个应用程序,文件之间不存在联系,数据冗余大。数据库系统中的文件是面向整个应用系统,文件之间相互联系,减少了数据冗余,实现了数据共享。13思考题问:文件系统中的文件与数据库系统中的文件有何本质的区别例例:某系统涉及人事、科研、教学、工资四个部门。假定每个部门只有一种登记表。其结构如下,试建立该系统的数据结构。序号姓名性别年龄职称单位工龄工资人事文件科研文件序号姓名性别年龄职称单位科研名称经费教学文件序号姓名性别年龄职称单位课程名学时工资文件序号姓名单位工资工龄补贴房租水电14例例:某系统涉及人事、科研、教学、工资四个部门。假定每个部门例

文件系统:

建立与上述结构相同的四个文件。存在的问题:数据冗余大。文件是独立的、分散的,只反映文件本身的结构,而未反映文件间的联系,因而不能进行文件交叉访问。15例文件系统:15例

数据库系统:(分三步进行)第一步:建立全局数据逻辑结构。数据的组织、存储与应用程序相分离独立进行,全面综合地考虑数据的组织,从整个系统的效率、性能出发来组织数据。第二步:建立局部数据逻辑结构。面向各个具体用户,从满足用户的需求出发,从全局数据逻辑结构导出各自所需的基本结构。第三步:建立数据物理结构。面向物理存储、在保证全局数据逻辑结构的前提下,权衡系统的空间利用、效率等,按物理存储的最佳形式来组织文件结构。16例数据库系统:(分三步进行)16例第一层水电房租学时课程名经费科研名称工资工龄单位职称年龄性别姓名序号第二层单位职称年龄性别姓名序号经费科研名称序号学时课程名序号水电房租工资工龄序号第三层17例第一层水电房租学时课程名经费科研名称工资工龄单位职称年龄性1.3什么是数据库数据库(DataBase,DB):按一定结构组织存储的、集成的、可共享的数据的集合。数据库结构的三个层次逻辑表示层:是数据库最终用户所看到和使用的数据集合。概念定义层:是由开发人员设计的反映数据之间的逻辑关系。物理存储层:反映物理存储设备上实际存储的数据集合。181.3什么是数据库数据库(DataBase,DB):181.4数据库管理系统

DBMS是数据库系统的核心,是为数据库建立、使用和维护而配置的系统软件。它建立在操作系统的基础之上,是位于操作系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。

DBMS的软件地位:用户、应用软件DBMSOSDB191.4数据库管理系统DBMS是数据库系统的核心,DBMS的主要功能1.4.1DBMS的主要功能

1.数据定义提供数据定义语言(DDL-DataDefinitionLanguage)定义数据库结构及其相互之间的映象,定义数据的完整性、安全性控制等约束。

2.数据操纵提供数据操纵语言(DML-DataManipulationLanguage)实现对数据库中数据的检索、插入、删除和修改。3.数据库运行管理提供数据安全性控制、并发控制、和数据完整性控制等数据控制功能。

4.数据库的建立和维护数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。

5.数据通信实现用户程序与DBMS之间的通信。

20DBMS的主要功能1.4.1DBMS的主要功能20DBMS的组成1.4.2DBMS的组成

1.语言翻译处理程序主要包括数据定义语言编译程序、数据操纵语言编译程序、终端命令解释程序、数据库控制命令解释程序等。

2.系统运行控制程序主要包括系统总控程序、存取控制程序、并发控制程序、完整性控制程序、安全性控制程序、数据存取和更新程序、通信控制程序等。

3.系统建立、维护程序

主要包括数据装入程序、数据库重组程序、数据库恢复程序、性能监督程序等。

4.数据字典数据字典是对数据库中数据的描述信息的集合。通过数据字典DBMS能快速查询有关对象,DBA能掌握整个系统运行的情况。21DBMS的组成1.4.2DBMS的组成211.5什么是数据库系统

数据库系统(DBS-DataBaseSystem)是指具有管理数据库功能的计算机系统。它由数据库、用户、软件和硬件四部分组成。1.5.1数据库

数据库(DB-DataBase):按一定结构组织存储的、集成的、可共享的数据的集合。这里的结构是指数据库的结构要依据DBMS所支持的数据模型来建立。

221.5什么是数据库系统数据库系统(DBS-Data数据库系统中的用户1.5.2用户1.数据库管理员(DBA-DataBaseAdministrator)DBA是指组织数据库的计划、设计、建立、运行监视、维护以及重开发的全部技术工作的专业人员。

DBA的职责:(1)决定数据库中的信息内容和结构。(2)决定数据库的存储结构和存储策略。(3)定义数据的安全性要求和完整性约束条件。(4)监控数据库的使用和运行。(5)数据库的重组和重构。2.应用程序员是指负责设计和编制应用程序的人员。3.终端用户是指从计算机终端存取数据库的人员。

23数据库系统中的用户1.5.2用户23数据库系统中的软件和硬件1.5.3软件

主要是指数据库管理系统(DBMS-DataBaseManagementSystem)。DBMS是位于用户和OS之间的专门用于管理和维护数据库的系统软件,为用户或应用程序提供了访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制功能。1.5.4硬件

要求有足够大的内存,以存放OS、DBMS、系统缓冲区、应用程序等;配有高速的、大容量的直接存取的外存;要有较高的通道能力,以提高数据的传输速度。

24数据库系统中的软件和硬件1.5.3软件24

1.6数据库系统的体系结构模型与模式的区别:

模型是以图形来表示的,给人以直观清晰、一目了然之感。但计算机是无法识别的,必须用一种语言来描述它,即DDL(DataDefinitionLanguage,数据定义语言)。所以模式是对模型的描述。251.6数据库系统的体系结构模型与模式的区别:25

1.6数据库系统的体系结构1.6.1数据库系统的三级模式结构外模式(子模式)局部数据逻辑结构和特征的描述。(多个)概念模式(模式)全局数据逻辑结构和特征的描述。(一个)。定义模式时不仅要定义数据的逻辑结构,还要定义与数据有关的安全性、完整性要求。内模式(存储模式、物理模式)数据物理结构和存储方式的描述。(一个)261.6数据库系统的体系结构1.6.1数据库系统的三级模1.6数据库系统的体系结构应用1模式DB应用3应用m…...外模式1外模式2外模式n变换1变换2内模式应用2…...概念视图内部视图外部视图

三级模式间的联系:模式是内模式的逻辑表示;内模式是模式的物理实现;外模式是模式的逻辑子集。271.6数据库系统的体系结构应用1模式应用3应用m…...外1.6数据库系统的体系结构1.6.2

三个模式之间的两层映像

外模式/模式映象(变换1)模式/内模式映象(变换2)数据库的二级映象功能(1)实现逻辑数据到物理数据的转换(2)实现数据独立性外模式/模式映象:实现数据逻辑独立性模式/内模式映象:实现数据物理独立性281.6数据库系统的体系结构1.6.2三个模式之间的两层映

1.7数据模型

数据库是一个结构化的数据集合,这个结构要使用数据模型来描述。

数据模型--是表示数据及其联系的模型。

数据模型分类概念模型(也称语义模型)(常用E-R模型)结构数据模型(简称数据模型)(层次模型、网状模型、关系模型)概念模型是按用户的观点来对数据和信息建模,它强调语义表达能力,建模容易、方便、概念简单、清晰,易于用户理解,它是一种独立于计算机系统的模型;结构数据模型是按计算机系统的观点对数据建模,它着重于具体描述数据的数据结构。

291.7数据模型数据库是一个结构化思考题

问:能否一步到位,只建立结构数据模型呢?答:可以,但更多是采用分二步的设计方法。因为建立数据模型不是件简单的事,它既要模拟现实世界,又要考虑数据结构,存取效率等一系列因素,使问题变得复杂,对此,人们通过一个中间步骤,先用E-R模型反映实体及其联系,再从E-R模型出发结合具体数据模型进行转换。30思考题问:能否一步到位,只建立结构数据模型呢?30概念模型1.7.1概念模型

概念模型是对客观事物及其联系的抽象,用于信息世界的建模。概念模型的主要概念:实体--客观存在并可相互区别的事物。属性--实体所具有的某一特性。关键字(码,key)--实体的某一属性或属性组合,其值能惟一标识某一实体。域--属性的取值范围。实体型--用实体名及其属性名集合来抽象和刻画的同类实体。例:学生(学号,姓名,性别,班号)实体集--同一类型的实体集合称为实体集。

31概念模型1.7.1概念模型31实体之间的联系实体间的联系

一对一联系(1:1)一对多联系(1:m)多对多联系(m:n)例:系---系主任(1:1)学生---座位(1:1)班级---学生(1:m)公司---职员(1:m)学生---课程(m:n)运动员---项目(m:n)设实体集:

E1E232实体之间的联系实体间的联系例:32实体联系模型

E-R模型(EntityRelationship),也称为实体联系模型,是概念模型最常用的表示方法。E-R模型的基本成分:实体集用长方形表示属性用椭圆表示联系用菱形表示联系名实体型A实体型B11nm33实体联系模型E-R模型(EntityRelat实体联系模型之例sum?总分:sum?成绩:scorescore注意:联系也有属性。例:no学生s课程cS-Cagenamecnocnamemn34实体联系模型之例sum?总分:sumscore注意实体联系模型之例

例:为某百货公司数据库系统设计一个E-R模型。百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。商店的属性有:店号、店名、店址、店经理。商品的属性有:商品号、品名、单价、产地。职工的属性有:工号、姓名、性别、工资。在联系中应反映出职工参加某商店工作的开始时间,商店销售商品的月销售量。

E-R模型设计的一般步骤:确定实体集确定实体集之间的联系和联系的类型确定属性(实体属性、联系属性)

35实体联系模型之例例:为某百货公司数据库系统设计一个E-R模实体联系模型之例职工商品商店店号店址店名产地单价品名工资性别姓名工号店经理商品号开始时间月销售量经营隶属1nmm百货公司的E-R图36实体联系模型之例职工商品商店店号店址店名产地单价品常用的数据模型1.7.2常用的数据模型1.关系模型用二维表格结构来表示实体以及实体之间联系的数据模型。2.层次模型用树结构表示实体间联系的数据模型。层次模型的特征是:有且仅有一个结点没有父结点,它就是根结点;其他结点有且仅有一个父结点。在层次模型中,每个结点描述一个实体型,称为记录型。一个记录型可有许多记录值,简称为记录。结点之间的有向边表示记录之间的联系。如果要存取某一记录型的记录,可以从根结点开始,按照有向树层次逐层向下查找,查找路径就是存取路径。

37常用的数据模型1.7.2常用的数据模型37层次模型记录类型1:m的联系R1R3R2R4R5层次模型38层次模型记录类型1:m的联系R1R3R2R4R5层次模型3网状模型3.网状模型用网状结构表示实体间联系的数据模型。网中的每一个结点代表一个记录类型,联系用链接指针来实现。广义地讲,任何一个连通的基本层次联系的集合都是网状模型。它取消了层次模型的两点限制。网状模型的特征是:允许结点有多于一个的父结点;可以有一个以上的结点没有父结点。

39网状模型3.网状模型391.8关系数据库

1.8.1基本术语关系--一个关系就是一张二维表,每个关系有一个关系名。元组--

表中的行称为元组。一行为一个元组,对应存储文件中的一个记录值。属性--

表中的列称为属性,每一列有一个属性名。属性值相当于记录中的数据项或者字段值。域--属性的取值范围,即不同元组对同一个属性的值所限定的范围。例如,逻辑型属性只能从逻辑真或逻辑假两个值中取值。关系模式--关系结构的描述。R(A1,A2,A3,…,An)例:学生(学号,姓名,年龄)

401.8关系数据库1.8.1基本术语40基本术语

侯选关键字--

属性或属性组合,其值能惟一标识一个元组。主关键字--用户选作元组标识的一个侯选关键字。主属性--包含在任一侯选关键字中的属性。非主属性--不包含在任一侯选关键字中的属性。外关键字--如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。

例:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)“专业号”是学生关系的外关键字。

全关键字--由所有属性组成的侯选关键字。41基本术语侯选关键字--属性或属性组合,其值能惟一标识一基本术语

属性元组主关键字教师编号姓名性别所在系名001王丽华女计算机系008孙军男电子工程系教师关系42基本术语属性元组主关键字教师编号姓名性别所在系名001关系模型的特征关系模型的特征:描述的一致性。实体及实体之间的联系都是用关系来描述。可直接表示多对多关系。关系必须是规范化的关系。每个属性是不可分的数据项,不允许表中有表。有较强的理论基础。例:有如下三个关系模式:学生(学号,姓名,性别,年龄)课程(课程号,课程名,学时,学分)学习(学号,课程号,成绩)其中:学生、课程关系是描述实体的,学习关系是描述学生和课程之间存在的选课联系的。43关系模型的特征关系模型的特征:43不符合关系模型规范的表车间号班组工资超额奖实发基本补助01甲组50002005005700乙组4500100300490002甲组4800200+50505003丙组3000300500380044不符合关系模型规范的表工资基本补助甲组50002005关系运算1.8.2关系运算

从一个或多个关系中找出所需要的数据,要使用关系运算。1.笛卡尔积

R×SR

.

A1R

.

A2R

.A3

S

.

A2S

.

A3

b2d2d

b2d3b

b3b2d

b3b3b

c2d2d

c2d3b

d3b2d

d3b3b

S

A2A3

2d

3b

R

A1A2A3

b2d

b3b

c2d

d3b

R×S:R是m元关系,S是n元关系,则R×S是(m+n)元关系,R×S每个元组的前m个分量是R的一个元组,后n个分量是S的一个元组。45关系运算1.8.2关系运算R×SR.A1R.关系运算2.选择σF(R):在关系R中求取满足给定条件F的元组组成的集合。F的组成:运算对象:常数、元组分量(属性名或列号)运算符算术比较符:>、≥、<、≤、=、≠逻辑运算符:、∧、∨

例:

σA2>5∨A3≠“f”(R)或σ[2]>5∨[3]≠“f”(R)R

A1A2A3

a3f

b2

d

c2d

e6f

g6f

A1A2A3

b2d

c2d

e6f

g6f√√√√σ[2]>5∨[3]≠“f”(R)46关系运算2.选择RA1A2A3a

关系运算3.投影运算πA(R):在关系R中求指定的若干个属性列组成的集合(消除重复元组)。

A3A2

f3

d2

f63,2πAA(R)R

A1A2A3

a3f

b2

d

c2d

e6f

g6f

47关系运算3.投影运算A3A2f

关系运算4.连接运算(1)一般连接(θ为关系比较符)

R

S

AθB

含义:从RXS中选取R关系在A属性组上的值与S关系在B属性组上值满足θ关系的元组。(2)等值连接:θ为“=”的连接。

48关系运算4.连接运算48关系运算

(3)自然连接

R

S:自然连接是在两个关系的公共属性上进行的等值连接,并且除去重复属性。

计算过程:R×Sσ公共属性上的等值选择。∏去掉重复属性

49关系运算(3)自然连接49

连接运算之例

设有关系R、S(如下表所示),计算:(1)R1=R⋈S(2)R2=R⋈S

A<D

RSABCBCD123234578235978786

计算结果是:

R1R2ABCDAR.BR.CS.BS.CD1234123234123512323557861237869786578786

50连接运算之例设有关系R、S(如下表所示),计算

思考题问:等值连接与自然连接有何区别?答:有如下两点区别:(1)自然连接一定是等值连接,但等值连接不一定是自然连接。因为自然连接要求相等的分量必须是公共属性,而等值连接相等的分量不一定是公共属性。(2)等值连接不把重复的属性去掉,而自然连接要把重复属性去掉。51思考题问:等值连接与自然连接有何区别?51规范化设计理念和方法1.8.3规范化设计理念和方法

如何评价数据模型设计的优劣呢?由于关系模型有严格的数学理论基础,因此人们就以关系模型为背景来讨论这个问题,从而形成了数据库逻辑设计的一个有利工具--关系数据库的规范化理论。下面通过一个具体关系来考察关系模式在使用中存在的问题。

52规范化设计理念和方法1.8.3规范化设计理念和方法52规范化设计理念和方法

s学号姓名课程号课程名教师号教师名教师地址成绩80152刘力C1OST1王平D17080153李军C2DBT2高升D28580154王林C1OST1王平D17080154王林C3AIT3杨杨D37280155赵红C4DST2高升D29253规范化设计理念和方法s学号姓名课程号课程规范化设计理念和方法关系s存在如下问题:(1)数据冗余大。姓名、课程名、教师号、教师名、教师地址大量重复。(2)插入异常。插入异常是指应该插入到数据库中的数据不能执行插入操作的情形。关系s的主关键字是:(学号,课程号)关系s是否存在插入操作异常?可从在学号、课程号、和(学号,课程号)上出现NULL值去分析。注意:当一个元组在主关键字的属性上部分或全部为空时,该元组不能插入到关系中。关系s出现插入操作异常的情况有:新来的学生还没有选课时,学生的信息无法插入。课程安排好,若无学生选课时,则任课信息无法插入。新来的教师未承担教学任务时,教师的信息无法插入。54规范化设计理念和方法关系s存在如下问题:54规范化设计理念和方法

(3)删除异常。删除异常是指不应该删去的数据被删去的情形。

关系s中出现删除异常的情况:当选修某门课的所有学生都退选时,删除相关元组,会丢失课程和教师的信息。如何解决关系s中存在的问题呢?解决的方法:关系模式分解(关系规范化)可将关系s分解为如下4个关系:s1(学号,姓名)s2(课程号,课程名,教师号)s3(教师号,教师名,教师地址)s4(学号,课程号,成绩)55规范化设计理念和方法(3)删除异常。删除异常是指不应该删去关系规范化中的相关概念

函数依赖:若R的任意关系有:对X中的每个属性值,在Y中都有惟一的值与之对应,则称Y函数依赖于X,或称X函数决定Y,记作X

Y。例:指出关系R中存在的函数依赖。ABCDa1b1c1d1a1b1c1d2a1b1c1d3a1b1c1d4a2b2c5d1a2b2c5d2a3b3c4d2a4b4c2d2a5b4c2d4a6b5c2d5R函数依赖有:AB,AC,BC(C,D)A,(C,D)B(B,D)A,(B,D)C(A,D)B,(A,D)C56关系规范化中的相关概念函数依赖:若R的任意关系有:对X中的关系规范化中的相关概念

部分函数依赖:如果X

Y,且存在X的真子集X’,有X’->Y,则称Y部分函数依赖于X,记作:X

P

>

Y。例:关系R中有:(B,D)

P

>

C,(A,D)

P

>B

,(A,D)

P

>

C

完全函数依赖:如果X

Y,且对任何X的真子集X’,都有X’+>Y,则称Y完全函数依赖于X,记作:X

F

>

Y。例:关系R中有:A

F

>

B,A

F

>C

,B

F

>

C(C,D)

F

>

A,(C,D)

F

>B

,(B,D)

F

>

A

传递函数依赖:如果X

Y(Y⊈X),Y+>X,而Y

Z,则称Z传递函数依赖于X,记作:X

T

>Z。例:关系R中有:A

T

>

C(∵AB,B+>A,BC)57关系规范化中的相关概念部分函数依赖:如果XY,且存在X的规范化设计理念和方法关系的规范化是将一个低级范式的关系模式,通过关系模式的分解转换为若干个高级范式的过程。1.第一范式(1NF)若R的每个分量都是不可分的数据项,则R∈1NF。从型上看:不存在嵌套结构。从值上看:不存在重复组。1NF是关系模式的最低要求。58规范化设计理念和方法关系的规范化是将一个低级范式的关系模式非1NF的二维表车间号班组工资超额奖实发基本补助01甲组50002005005700乙组4500100300490002甲组4800200+50505003丙组3000300500380059非1NF的二维表工资基本补助甲组50002005005转换后的1NF关系车间号班组基本工资补助工资超额奖实发01甲组5000200500570001乙组4500100300490002甲组4800250505003丙组30003005003800学生关系s是1NF关系,但它存在数据冗余,插入异常和删除异常等问题。60转换后的1NF关系01甲组50002005005规范化设计理念和方法2.第二范式(2NF)

若关系R∈1NF,且不存在任何非主属性对侯选关键字的部分函数依赖,则R∈2NF。分析:关系s不是2NF。因为,侯选关键字为(学号,课程号)

非主属性:姓名、课程名、教师号、教师名、教师地址、成绩

函数依赖有:学号→姓名,课程号→课程名,课程号→教师号,教师号→教师姓名,教师号→教师地址所以,(学号,课程号)

P

>

姓名(学号,课程号)

P

>

课程名(学号,课程号)

P

>教师号(学号,课程号)

P

>教师名(学号,课程号)

P

>教师地址61规范化设计理念和方法2.第二范式(2NF)61规范化设计理念和方法分解为2NF的方法:将满足部分函数依赖和满足完全函数依赖的属性分解到不同的关系中。关系S分解为3个关系:s1(学号,姓名)s2(课程号,课程名,教师号,教师名,教师地址)s3(学号,课程号,成绩)分解后,关系s1、s2、s3都为2NF。62规范化设计理念和方法分解为2NF的方法:62规范化设计理念和方法达到2NF的关系仍然可能存在问题。例如,在关系s2中还存在以下问题:(1)数据冗余。一个教师承担多门课程时,教师的地址要重复存储。(2)插入异常。一个新教师报到,需将其有关数据插入到s2关系中,但该教师暂时还未承担任何教学任务,则因缺关键字课程号的值而不能进行插入操作。(3)删除异常。删除某门课程时,会丢失该课程任课教师的信息。63规范化设计理念和方法达到2NF的关系仍然可能存在问题。63规范化设计理念和方法3.第三范式(3NF)

若关系R∈2NF,且不存在非主属性对侯选关键字的传递函数依赖,则R∈3NF。分析:关系s2不是3NF。因为,侯选关键字为:课程号

非主属性:教师号、课程名、教师名、教师地址∵课程号教师号,教师号+

>课程号,教师号教师地址∴课程号

T

>教师地址64规范化设计理念和方法3.第三范式(3NF)64规范化设计理念和方法

分解为3NF的方法:将涉及传递函数依赖中的两个依赖中的属性分解到不同的关系中。将s2分解为:s21(课程号,课程名,教师号)s22(教师号,教师名,教师地址)则关系s21和s22都是3NF,关系s中存在的问题得到了解决。65规范化设计理念和方法分解为3NF的方法:65

3种范式的关系:规范化设计理念和方法1NF非规范化的关系2NF3NF消除组合数据项消除非主属性对关键字的部分函数依赖消除非主属性对关键字的传递函数依赖范式的转换关系:1NF2NF3NF663种范式的关系:规范化设计理念和方法1NF非规范化的关1.9数据库设计

数据库设计:是指对于一个给定的应用环境,构造最优的数据模型,然后据此建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。数据库设计的内容:结构特性设计行为特性设计数据库设计的目标:满足要求与模拟精确程度良好的数据库性能671.9数据库设计数据库设计:是指对于一个给定的应用数据库设计步骤需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护需求收集和分析设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计、性能预测物理实现试运行对数据库系统进行评价、调整与修改68数据库设计步骤需求分析概念结构设计逻辑结构设计数据库物理设计需求分析1.9.1需求分析一、需求分析的任务收集与分析用户的信息及应用处理的要求,并将结果按照一定的格式形成需求说明书。二、需求分析的方法1.需求信息的收集(1)了解组织的机构设置(2)主要业务活动和职能(3)了解系统的各种外部要求(4)确定系统边界69需求分析1.9.1需求分析69需求分析2.需求信息的分析整理用数据流图和数据字典描述。三、数据流图(DFD--DataFlowDiagram)DFD用来表示收集到的各业务流程中涉及到的数据和处理过程的关系。数据流图的基本成分:表示同类数据的集中存放处,通常指数据文件表示对数据的处理表示不同处理过程之间传递的数据表示数据的发送者和接收者70需求分析2.需求信息的分析整理表示同类数据的集中存放处,通需求分析四、数据字典(DD--DataDictionary)数据库应用系统的数据字典包括:数据项、数据结构、数据流、数据存储、处理过程。

例:下图给出了某机器制造厂的零配件采购子系统的数据流图。该子系统要处理的工作是生产部门提出的生产计划根据零配件当前价格计算成本送主管部门审批,对已批准生产计划制定采购计划,准备好订货单给供应商。

71需求分析四、数据字典(DD--DataDictionary零配件采购子系统DFD核对预算确定采购计划编制定货单供应商零配件采购记录生产计划批准/不批准批准/不批准核对预算产品预算零件价格零件库存量报价单供应商报价采购计划订单细节订货单72零配件采购子系统DFD核对确定采编制供应商零配件采购记录生产零配件采购子系统的数据字典数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}例:数据项名:订货单号类型:CHAR长度:8别名:采购单号取值范围:10000000--9999999973零配件采购子系统的数据字典数据项描述={数据项名,数据项含义零配件采购子系统的数据字典

数据结构是若干数据项有意义的集合。数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}例:数据结构:采购细节说明:作为采购计划的组成部分,说明对某个产品要采购哪些零件,哪种零件采购多少数量。组成:零件号、零件名、数量

74零配件采购子系统的数据字典数据结构是若干数据项有意义零配件采购子系统的数据字典

数据流表示加工处理过程的输入或输出数据。数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}例:数据流名:采购计划说明:由各产品所需零件数、选定的供应商、审核情况组成采购零配件计划。来源:确定采购计划去向:编制订货单数据结构:--采购细节--采购审核75零配件采购子系统的数据字典数据流表示加工处理过程的输零配件采购子系统的数据字典

数据存储是处理过程中要存取的数据。数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}例:数据存储名:产品说明:对每种产品的品名、规格的描述,并对每种产品做成本预算。在核对生产计划书的成本时用。输出数据流:预算组成:产品号、产品名、预算数据量:每月30--40件存取方式:随机存取76零配件采购子系统的数据字典数据存储是处理过程中要存取零配件采购子系统的数据字典

处理过程是对加工处理过程的描述。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}例:处理过程:确定采购计划说明:对要采购的每一零件,根据零件库存量确定采购数量,再根据每位供应商的报价选择适当的供应商,制定采购计划。输入:供应商报价、零件库存、已批准生产计划输出:采购计划简要说明:(1)对应采购的每种零件查找供应商报价表,选择报价最低的供应商号。(2)将此供应商号填入应采购零件表的相应列中。77零配件采购子系统的数据字典处理过程是对加工处理过程的概念结构设计1.9.2概念结构设计

将需求分析得到的用户需求抽象为概念模型的过程就是概念结构设计。在进行数据库设计时,如果将现实世界中的客观对象直接转换为机器世界中的对象,就会感到比较复杂,注意力往往被牵扯到更多的细节限制方面,而不能集中在最重要的信息的组织结构和处理模式上。因此通常是将现实世界中的客观对象首先抽象为不依赖任何DBMS和具体机器的信息结构,即概念模型,然后再把概念模型转换成具体机器上DBMS支持的数据模型。常用的概念结构的设计方法是自底向上的设计方法。下面就介绍采用这种设计方法的设计步骤。

78概念结构设计1.9.2概念结构设计78概念结构设计一.数据抽象与局部视图设计根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图,即分E-R图。1.选择局部应用可利用机构职能关系进行局部处理。2.逐一设计分E-R图设计时注意:(1)实体与属性的划分原则属性应是系统中最小的信息单位,不再具有描述性质。属性不能与其他实体有联系。

79概念结构设计一.数据抽象与局部视图设计79概念结构设计例:有职工、部门及其相关信息。eno职工E部门DE-Dagenamednodname部门Ddno部门名...职工Eeno部门...80概念结构设计例:有职工、部门及其相关信息。eno职工E部门D概念结构设计病人住院号姓名病房号病人住院号姓名住在1n医疗病房号病房医生级别床位数医生号医生名1m职称81概念结构设计病人住院号姓名病房号病人住院号姓名住在1n医疗病概念结构设计二.视图集成(全局视图设计)1.合并分E-R图,生成初步E-R图合并的过程实际上是一个发现冲突和解决冲突的过程。

冲突主要有:(1)属性冲突属性值类型、取值范围等发生冲突。(2)命名冲突同名异义、异名同义。(3)结构冲突同一对象在不同视图中有不同抽象。同一实体在不同视图中属性组成不同。相同实体间联系在不同视图中呈现不同类型。

82概念结构设计二.视图集成(全局视图设计)82概念结构设计2.消除不必要的冗余,设计基本E-R图冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。例:实发工资、应发工资

83概念结构设计2.消除不必要的冗余,设计基本E-R图83逻辑结构设计1.9.3逻辑结构设计

逻辑结构设计的主要任务:将基本E-R模型转换为DBMS所支持的数据模型。

关系型逻辑结构设计的步骤:1)将概念结构转换为关系模型2)优化模型3)设计适合DBMS的子模式84逻辑结构设计1.9.3逻辑结构设计84逻辑结构设计一、E-R模型向关系模型的转换1.实体的转换每一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的关键字就是关系的关键字。

2.联系的转换(1)一般1:1和1:m联系不产生新的关系模式,而是将一方实体的关键字加入到多方实体对应的关系模式中,若有联系的属性也一并加入。(2)m:n联系要产生一个新的关系模式,该关系模式由联系涉及实体的关键字加上联系的属性(若有)组成。85逻辑结构设计一、E-R模型向关系模型的转换85逻辑结构设计之例职工商品商店店号店址店名产地单价品名工资性别姓名工号店经理商品号开始时间月销售量经营隶属1nmm将百货公司的E-R模型转换为关系模型。转换的关系模型如下:商店(店号,店名,店址,店经理)商品(商品号,品名,单价,产地)职工(工号,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论