数据库基础知识 .ppt

上传人:小飞机 文档编号:6296415 上传时间:2023-10-14 格式:PPT 页数:135 大小:907.50KB
返回 下载 相关 举报
数据库基础知识 .ppt_第1页
第1页 / 共135页
数据库基础知识 .ppt_第2页
第2页 / 共135页
数据库基础知识 .ppt_第3页
第3页 / 共135页
数据库基础知识 .ppt_第4页
第4页 / 共135页
数据库基础知识 .ppt_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《数据库基础知识 .ppt》由会员分享,可在线阅读,更多相关《数据库基础知识 .ppt(135页珍藏版)》请在三一办公上搜索。

1、第1章 数据库基础知识,章节分布,1.1 数据库的基本概念,数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。,数据管理技术的发展,四个基本术语,数据库应用,1.1.1 数据管理技术的发展,什么是数据管理对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题 数据管理技术的发展过程人工管理阶段(40年代中-50年代中)文件系统阶段(50年代末-60年代中)数据库系统阶段(60年代末-现在),数据管

2、理技术的发展动力应用需求的推动计算机硬件的发展计算机软件的发展,人工管理时期40年代中-50年代中产生的背景应用需求科学计算硬件水平无直接存取存储设备软件水平没有操作系统处理方式批处理,特点数据的管理者:应用程序,数据不保存。数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制,文件系统阶段 时期50年代末-60年代中 产生的背景应用需求科学计算、管理硬件水平磁盘、磁鼓软件水平有文件系统处理方式联机实时处理、批处理,特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序 数据的共享

3、程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序数据控制能力:应用程序自己控制,数据库系统阶段 时期60年代末以来 产生的背景应用背景大规模管理硬件背景大容量磁盘软件背景有数据库管理系统处理方式联机实时处理,分布处理,批处理,特点数据的管理者:DBMS数据面向的对象:现实世界数据的共享程度:共享性高数据的独立性:高度的物理独立性和一定的 逻辑独立性数据的结构化:整体结构化数据控制能力:由DBMS统一管理和控制,独立性,物理独立性 指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用

4、改变。逻辑独立性 指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。,数据结构化,数据库中实现的是数据的真正结构化,数据的结构用数据模型描述,无需程序定义和解释,数据可以变长,数据的最小存取单位是数据项。,DBMS对数据的控制功能,数据的安全性(Security)保护使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏。数据的完整性(Integrity)检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。,并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。数据

5、库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。,1.1.2 四个基本概念,数据(Data)数据(Data)是数据库中存储的基本对象 数据的定义描述事物的符号记录 数据的种类文字、图形、图象、声音 数据的特点数据与其语义是不可分的,数据举例学生档案中的学生记录(李明,男,1972,江苏,计算机系,1990)数据的形式不能完全表达其内容数据的解释语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间解释:李明是个大学生,1972年出生,江苏人,1990年考入计算机系,数据库(DataBase,DB)人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工

6、处理,进一步抽取有用信息。数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。,数据库的特征数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展,数据库管理系统 数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。通过它人们可以科学地组织和存储数据、高效地获取和维护数据库中的数据。DBMS的主要功能 数据定义功能 提供数据定义语言(DDL)定义数据库中的数据对象,数据操纵功能:提供数据操纵语言(DML)操纵数据实现对数据库的基本操作(查询、插入、删除和

7、修改)数据库的运行管理 保证数据的安全性、完整性,多用户对数据的并发使用,发生故障后的系统恢复。数据库的建立和维护功能(实用程序)数据库数据批量装载,数据库转储,介质故障恢复,数据库的重组织,性能监视等,数据库系统(DataBase System,DBS)数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。在不引起混淆的情况下常常把数据库系统简称为数据库。它由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。,1.1.3 数据库的应用,数据库应用非常广泛,以下是一些具有代表性的应用:银行业:用于存储客户的信息、帐户、贷款

8、以及银行的交易记录。航空业:用于存储订票和航班的信息。大 学:用于存储学生的信息、课程和成绩等信息。信用卡交易:用于记录信用卡消费的情况和产生每月清单。电信业:用于存储通话记录,产生每月帐单,维护预付电话卡的余额和存储通信网络的信息。金融业:用于存储股票、债券等金融票据的持有、出售和买入的信息。销售业:用于存储客户信息,产品和购买的信息。制造业:用于管理供应链,跟踪工厂种产品的产量、仓库(或商店)中的产品的详细清单以及产品的订单。人力资源:用于存储员工、工资、所得税和津贴的信息,以及产生工资单。,1.2 数据描述,在使用计算机对数据库中的数据进行处理,首先要解决一个重要的问题,即如何将现实世界

9、中对事物的描述转换成能够被计算机识别并处理的信息世界中数据的表示,本节将从三个方面对数据转换过程中的几个基本概念进行解释。,1.2.1 现实世界的信息表示,实体(Entity)客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系,例如,一个职工、一个学生、一个部门、老师与系的工作关系等。属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画,例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。Example:(94002268,张山,男,1976,计算机系,1994)表征了一个学生。,实体和属性的型与值 实体

10、和属性有型与值之分,型是结构,具有相同属性的实体,称它们具有相同的实体型,但是不同的个体有着不同的属性内容,由具体属性值组组成的实体,称实体值。类似地,属性也有型、值之分。,码(Key)唯一标识实体的属性集称为码。例如身份证号。域(Domain)属性的取值范围称为属性的域,例如性别的域为(男,女)。实体集(Entity Set)同型实体的集合称为实体集,例如全体学生就是一个实体集。联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。,1.2.2 信息世界的数据描述,字段(Field)标记实体属性的命

11、名单位称为字段,或数据项,它是可以命名的最小信息单位。记录(Record)字段的有序集合称为记录,一般情况下,一个记录描述一个实体。文件(File)同类记录的集合称为文件,文件用来描述实体集。关键码(Key)能惟一标识文件中每个记录的字段或若干字段的集合称为关键码,又称主码。,1.2.3 数据联系的描述,实体间的联系一般存在两类联系:一类是实体之间的联系,另一类是实体内部的联系。1、实体之间的联系方式 两个实体之间的联系可以分为三类:a.一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1

12、。,Eg,班级与班长之间的联系:一个班级只有一个正班长一个班长只在一个班中任职,b.一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。c.多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n。,Eg,班级与学生之间的联系:一个班级中有若干名学生,每个学生只在一个班级中学习,Eg,课程

13、与学生之间的联系:一门课程同时有若干个学生选修一个学生可以同时选修多门课程,2、同一实体集内实体间的联系 同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如职工实体集内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系,如下图所示。,职工,领导,1,n,1.3 数据模型,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求:能比较真实地模拟现实世界、容易为人所理解、便于在计算机上实现。数据模型分成两个不同的层次:(1)概念模型:

14、也称信息模型,它是按用户的观点来对数据和信息建模。(2)数据模型:主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。,1.3.1 数据库的三级结构,从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象的过程,在数据抽象的过程中,我们使用到四种数据模型:概念模型:用来表达用户需求观点的数据库全局逻辑结构的模型。逻辑模型:用来表达计算机实现观点的数据库全局逻辑结构的模型。外部模型:用来表达用户使用观点的数据库局部逻辑结构的模型。内部模型:用来表达数据库物理结构的模型。,后面三种模型我们有时又把它们称为外模式、模式和内模式。,概念模型,1.3.2 数据抽象过程,

15、客观对象的抽象过程-两步抽象:(1)现实世界中的客观对象抽象为概念模型;(2)把概念模型转换为某一DBMS支持的数据模型。概念模型是现实世界到机器世界的一个中间层次。,1.3.3 概念模型的特点及设计,概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言 对概念模型的基本要求较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解。,概念模型的设计 概念模型的表示方法很多,其中最著名的是实体联系方法(E-R方法),即用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。实体型

16、用矩形表示,矩形框内写明实体名。,学生,教师,属性用椭圆形表示,并用无向边将其与相应的实体连接起来,联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。,Example:工厂物资管理的概念模型 物资管理涉及的实体有:仓库 属性有仓库号、面积、电话号码。零件 属性有零件号、名称、规格、单价、描述。供应商 属性有供应商号、姓名、地址、电话号码、帐号。项目 属性有项目号、预算、开工日期职工 属性有职工号、姓名

17、、年龄、职称。实体及其属性图如下所示:,1.3.4 模式,在选定DBMS软件后,就要把概念模型根据使用的DBMS的特点转换成逻辑模型,即数据库模式,目前较为常见的有以下几种模式:非关系模型层次模型(Hierarchical Model)网状模型(Network Model)数据结构:以基本层次联系为基本单位基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系,关系模型(Relational Model)数据结构:表面向对象模型(Object Oriented Model)数据结构:对象,层次模型 满足下面两个条件的基本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结

18、点称为根 结点2.根以外的其它结点有且只有一个双亲结点,网状模型 满足下面两个条件的基本层次联系的集合为网状模型。1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。,关系模型 最重要的一种数据模型。也是目前主要采用的数据模型。1970年由美国IBM公司San Jose研究室的研究员提出。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,1.4 数据库系统,数据库系统的组成 数据库系统是由数据库、数据库管理系统、支持数据库运行的软、硬件环境、应用程序、数据库管理员和用户等组成的。DB是存放数据的仓库,只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放

19、的。每个用户只享用其中一部分数据,不同用户所使用的数据可以重叠,并且同一片数据可以为多个用户共享;使用数据库中的数据是用户的事,要自编应用程序处理自己的业务。,DBMS向用户提供对数据的存储组织、数据操作的方便界面,它还提供有保护数据库的功能。使用DBMS的一个主要原因是可以对数据和访问这些数据的程序进行集中控制。对系统进行集中控制的人称为数据库管理员(DBA)。DBA的作用包括:模式定义存储结构及存取方式定义模式及物理组织的修改数据访问授权日常维护:备份、保护及监视,DBMS的工作模式,应用程序,DB,数据请求,数据(处理结果),底层指令,数据(查询结果),DBMS的主要功能 数据库定义功能

20、 DBMS一般提供数据定义(描述)语言(DDL)定义外模式、模式和内模式。各种模式翻译程序把用DDL书写的各种源模式翻译为相应的内部表示,分别称为目标外模式、目标模式和目标内模式。这些目标模式是对数据库的描述,而不是数据本身。它们是刻画数据库的框架,被保存在数据字典(亦称系统目录)中。,数据库操纵功能 数据操纵是指:对存储在数据库中的信息进行检索;向数据库中插入新的信息;从数据库中删除信息;修改数据库中存储的信息。DBMS提供数据操纵语言(Data Manipulation Language 简称DML)实现对数据库的基本操作:检索、插入、修改和删除等各种操作命令。DML有两类:一类是嵌入主语

21、言中的语言,称为宿主型语言;一类是交互式命令语言,称为自含语言。,数据库管理功能 数据库中的不同或相同的数据要供不同的用户使用,对特定用户而言,可以取数据库的某个子集,这是通过DBMS的数据管理功能实现的。数据库控制功能这是DBMS运行时的核心部分,包括并发控制、存取控制(即存取权限的检查)、完整性约束条件的检查和执行、数据库内部的维护(如索引、数据字典的自动维护)等等。,1.5 关系模型的基本概念,1.关系的概念,2.关系的性质,3.关系的约束,4.关系模型,1.5.1 关系的概念,现实世界的实体以及实体间的各种联系均用关系来表示,从用户角度,关系模型中数据的逻辑结构是一张二维表。域(Dom

22、ain)域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合,笛卡尔积 给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n所有域的所有取值的一个组合不能重复,Example:给出三个域:D1=SUPERVISOR=张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏则D1,D2,D3的笛卡尔积为:D1D2D3(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息

23、专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏),元组 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。分量 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,关系(Relation)D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)R:关系

24、名,n:关系的目或度(Degree)关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。关系的表示 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。,属性 关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute),n目关系必有n个属性。,1.5.2 关系的基本性质,列是同质的(Homogeneous),每一列中的分量是同一类型的数据,来自同一个域。不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名。列的顺序无所谓,列的次序可以任意交换。任意两个元组不能完全相同,由笛卡尔积的性质决定。行的顺序无所谓,行的次

25、序可以任意交换。分量必须取原子值,每一个分量都必须是不可分的数据项,这是规范条件中最基本的一条。,1.5.3 关系的约束,关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性 参照完整性 用户定义的完整性 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。,实体完整性 实体完整性规则(Entity Integrity):若属性A是基本关系R的主属性,则属性A不能取空值。Example:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE属性为主码(假设研究生不

26、会重名),则其不能取空值。主码中的属性即主属性不能取空值。空值就是“不知道”或“无意义”的值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,因此这个规则称为实体完整性。,参照完整性 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值 Example:选修(学号,课程号,成绩)中“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。,用户定义的完整性 用户定

27、义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。Example:课程(课程号,课程名,学分)“课程名”属性必须取唯一值 非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4,1.5.4 关系模型,关系模式(Relation Schema)是对关系的描述。关系模式可以形式化地表示为:R(U,D,dom,F)R 关系名 U 组成该关系的属性名集合 D 属性组U中属性所来自的域 dom 属性向域的映象集合 F 属性间的数据依赖关系集合,关系

28、模型有三个重要组成部分,这就是数据结构、数据操纵和数据完整性规则。,1.6 E-R模型设计,设计E-R图的步骤:(1)确定实体、属性和实体间的联系,画出用户视图的局部E-R图;(2)综合各个用户的局部E-R图,产生反映数据库整体概念的总体E-R图。(3)对于全局E-R模型进行再优化。,Example:某企业有:物资、销售、劳动人事管理部门,物资管理部门负责产品所需的零件采购,以及对全部零件的仓库保管;销售管理部门负责产品的销售;劳动人事管理部门管理职工人事关系及职工与产品的关系。,(1)根据要求画出各部门的局部E-R图,物资管理部门,销售管理部门,劳动人事管理部门,综合后的E-R图,1.7 概

29、念模型到E-R模型的转换,E-R模型和关系数据库模型都是现实世界抽象的逻辑表示。由于两种模型采用类似的设计原则,我们可以将E-R设计转换为关系设计。将数据库的表示从E-R图转换为表的形式达到了我们从E-R图产生关系数据库设计的目标。1、从E-R图导出关系数据模型的原则(1)E-R图中的每个实体,对应一个关系。(2)E-R图中的一个联系对应一个关系,该关系的属性由联系的属性以及与该联系相关的实体的关键字组成,组成规则如下:,1:1,则每个实体的关键字均可作为该关系的关键字。1:n,n端实体的关键字作为该关系的关键字。m:n,各个实体关键字的组合作为该关系的关键字。,Example:劳动人事管理部

30、门关系数据模型。,职工(职工号,职工名,性别,年龄,部门号,职务,工资,文化程度)产品(产品号,产品名,价格)负责(职工号,产品号)参加(职工号,产品号,天数),Example:供应关系模型,供应商(供应商号,供应商名,地址,电话,信誉度)产品(产品号,产品名,价格)零件(零件号,零件名,型号)供应(供应商号,产品号,零件号,供应量),1.8 关系代数,数据操作语言使得用户可以访问或操纵那些按照某种特定数据模式组织起来的数据。关系DML的查询建立在关系代数基础之上,有着严格的数学理论基础。关系代数是过程化的查询语言,它包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果

31、。,1.8.1 传统运算,并(Union)仍为n目关系,由属于R或属于S的元组组成,记为:RS=t|t Rt S Example:,R,S,RS,差(Difference)仍为n目关系,由属于R而不属于S的所有元组组成,记为:R-S=t|tRtS。Example:,R,S,R-S,交(Intersection)仍为n目关系,由既属于R又属于S的元组组成,记为:RS=t|t Rt S,由定义,有RS=R(R-S)。Example:,R,S,R S,广义笛卡尔积(Extended Cartesian Product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的组合,记为:RS

32、=tr ts|tr R tsS。Example:,R,S,R S,1.8.2 专门关系运算,选择(Selection)选择又称为限制(Restriction),它是在关系R中选择满足给定条件的诸元组,记为:F(R)=t|tRF(t)=真 其中,F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算是从行的角度进行的运算。,Example:设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,Student,Course,SC,(1)查询信息系(IS系)全体学生 Sdept=IS(Student)结果:(2)查询年龄小于20岁的学生 Sage

33、20(Student),投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系,记为:A(R)=tA|t R,其中A为R的属性列。投影运算主要是从列的角度进行的运算。,Example:(3)查询学生的姓名和所在系 Sname,Sdept(Student)结果:,(4)查询学生关系Student中都有哪些系 Sdept(Student)结果:,连接(Join)连接也称为连接,它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记为:R S=tr ts|tr Rts StrAtsB 其中,A和B:分别为R和S上度数相等且可比的属性组;:比较运算符。连接运算从R和S的广义

34、笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。一般的连接运算是从行的角度进行的。,Example:,R,S,R S,连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接(Natural join)。为“=”的连接运算称为等值连接,它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。Example:R S,自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。Example:R S,Example:应用多种关系代数运算,进行以下查询。Stud

35、ent(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)(1)查询选修了2号课程的学生的学号 Sno(Cno=2(SC)95001,95002(2)查询至少选修了一门其直接先行课为5号课程的学生姓名。Sname(Cpno=5(Course SC Student),1.9 关系规范化,前面已经讨论了数据库系统的一般概念,介绍了关系数据库的基本概念、关系模型的三个部分以及关系的基本运算。但还有一个很基本的问题尚未涉及,针对一个具体问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关

36、系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。本节将详细讨论这方面的知识。,1.9.1 引入,1.9.2 基本概念,1.9.3 范式及规范化,1.9.1 引入,我们现在从以下这个例子中,引入要进行关系规范化的必要性。Example:描述学校的数据库:学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade)有以下单一关系模式:Student U Sno,Sdept,Mname,Cname,Grade 学校数据库的语义:一个系有若干学生,一个学生只属于一个系;一个系只有一名主任;一个学生可以选修多门课程,每门课程有

37、若干学生选修;每个学生所学的每门课程都有一个成绩。,属性组U上的如下一组依赖F:F Sno Sdept,Sdept Mname,(Sno,Cname)Grade,关系模式Student中存在的问题:1、数据冗余太大,例如:每一个系主任的姓名重复出现;2、更新异常,例如:某系更换系主任后,系统必须修改与该系学生有关的每一个元组;3、插入异常,例如:如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库;4、删除异常,例如:如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了;,之所以产生以上一些问题,是由存在于模式中的某些数据依赖引起的,我

38、们只有通过分解关系模式来消除其中不合适的数据依赖。,1.9.2 基本概念,码(关键字)定义1:设K为关系模式R中的属性或属性组合。若K U,则K称为R的一个侯选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。包含在任何一个候选码中的属性,称为主属性(Prime attribute);不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Nonkey attribute);最简单的情况,单个属性是码,最极端的情况,整个属性组是码,称为全码(All-key)。,定义2:关系模式 R 中属性或属性组X 并

39、非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。Example:在SC(SNO,CNO,G)中,SNO不是码,但SNO是关系模式S(SNO,SDEPT,SAGE)的码,则SNO是关系模式SC的外码。,函数依赖 定义3:设U=A1,A2,An是属性集合,R(U)是U上的一个关系,x,y是U的子集。若对于R(U)下的任何一个可能的关系,均有x的一个值对应于y的唯一具体值,称y单值函数依赖于x,x称为决定因素,记作x y;进而若y x,则x与y相互依赖,记作:X Y。函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实

40、例均要满足的约束条件。,Example:Student(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有:Sno Ssex,Sno Sage,Sno Sdept,Sno Sname,Sname Ssex,Sname Sage,Sname Sdept 但Ssex Sage,定义3:在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y完全函数依赖于X,记作X Y。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。Example:在关系SC(Sno,Cno,Grade)中,由于:Sno Grade,Cno Grade,因此:(

41、Sno,Cno)Grade。,定义3.5:在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数依赖于X。Example:在关系Std(Sno,Sdept,Mname)中,有:Sno Sdept,Sdept Mname,Mname传递函数依赖于Sno。,1.9.3 范式及其规范化,基本概念 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式,范式来自英文Normal Form,缩写为NF。满足最低要求的叫第一范式,简称1NF。各范式存在着如下关系:范式的判定与规范化 1NF 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。第一范式是对关系模式的最起

42、码,的要求。不满足第一范式的数据库模式不能称为关系数据库,但是满足第一范式的关系模式并不一定是一个好的关系模式。2NF 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。Example:2NF SLC(Sno,Sdept,Sloc,Cno,Grade)1NF SLC(Sno,Sdept,Sloc,Cno,Grade)2NF,SC(Sno,Cno,Grade)2NFSL(Sno,Sdept,Sloc)2NF一个关系模式R不属于2NF,就会产生以下几个问题:插入异常:假设Sno95102,SdeptIS,SlocN的学生还未选课,因课程号是主属性,因此该学生的信息无法插入S

43、LC。删除异常:假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。,修改复杂:例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部Sdept、Sloc信息。数据冗余度大:如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。3NF 关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z Y),使得XY,Y X,YZ,成立,则称R 3NF。,Example:3NF SL(Sno,Sde

44、pt,Sloc)2NF SL(Sno,Sdept,Sloc)3NF SD(Sno,Sdept)3NF DL(Sdept,Sloc)3NF,BCNF 设关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。Example:BCNF 在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:(S,J)T,(S,T)J,TJ,STJ3NF(S,J)和(S,T)都可以作为候选码 S、T、J都是主属性 STJBCNF TJ

45、,T是决定属性集,T不是候选码,解决方法:将STJ分解为二个关系模式:SJ(S,J)BCNF,TJ(T,J)BCNF,分解关系的基本原则 关系规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。一般地,关系的分解要遵循以下三条原则:a.分解必须是无损的,即分解后不应丢失信息;b.分解要保持函数依赖;c.分解既要保持函数依赖,又要具有无损连接性;下面通过三种分解方式的比较来说明这三条分解的原则。,Example:现有如下关系模型,对该关系模型进行三种分解。SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptS

46、loc,SnoSloc SL2NF,分解方法一:SL分解为下面三个关系模式:SN(Sno)、SD(Sdept)、SO(Sloc),SN,SD,SO,分解后的数据库丢失了许多信息。例如无法查询95001学生所在系或所在宿舍。如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息。,分解方法二:SL分解为下面二个关系模式:NL(Sno,Sloc)、DL(Sdept,Sloc),NL,DL,NL DL,NL、DL比原来的SL关系多了3个元组,无法知道95002、95004、95005,究竟是哪个系的学生。元组增加了,信息丢失了。分解方法三:将SL分解为下面二个关系模式:ND(Sno,Sdept)、NL(Sno,Sloc)。,ND,NL,与SL关系一样,因此没有丢失信息,ND NL,关系规范化理论很重要,直接触及怎样设计关系,是关系数据库逻辑设计的理论依据,规范化过程可按下图所示步骤进行。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号