数据库技术SQL Server 2000全套PPT教学课件.ppt_第1页
数据库技术SQL Server 2000全套PPT教学课件.ppt_第2页
数据库技术SQL Server 2000全套PPT教学课件.ppt_第3页
数据库技术SQL Server 2000全套PPT教学课件.ppt_第4页
数据库技术SQL Server 2000全套PPT教学课件.ppt_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

数据库技术SQLServer2000,吴锐佳TELQ:11060824E-MAIL:,第1章关系数据库基础第2章SQLServer2000安装与配置第3章SQLServer2000数据库的建立与管理第4章SQLServer2000表的建立与管理第5章索引与视图的建立与管理第6章Transact-SQL使用基础第7章Transact-SQL编程第8章Transact-SQL事务编程第9章SQLServer2000数据库管理与维护第10章SQLServer2000应用开发基础与实例,第1章关系数据库基础,1.1基本概念1.2数据库系统的体系结构1.3关系数据库系统基本概念1.4关系代数1.5数据库设计1.6关系规范化基本思想,1.1基本概念,数据(Data):是人们用来反映客观世界而记录下来的可以鉴别的数字、字母、符号、图形、声音、图象、视频信号。数据经编码后可存入计算机进行相关处理。信息(Information):是对原始数据进行加工或解释之后得到的对客观世界产生影响的数据。信息是消化理解了的数据。,数据库(Database,DB):是长期存储在计算机内、有组织的、可共享的数据集合。顾名思义,数据库就是计算机内存放数据的仓库。数据库管理系统(DataBaseManagementSystem,简称DBMS):数据库管理系统能够为数据库提供数据的定义、建立、查询、统计、维护等功能,并完成对数据完整性、安全性、多用户同时使用等控制功能,以及发生故障后进行系统恢复的功能。,DBMS是用户与计算机之间的数据管理软件,是计算机操作系统支持的计算机系统软件,类似于VB、VC、Pascal、FORTRAN等程序设计语言,为事务管理提供计算机系统的设计平台与实现的工具。DBMS有很多,目前流行的有Oracle,Sybase,SQLServer,Access,VisualFoxPro等。,数据库系统(DatabaseSystem,简写为:DBS)包括和数据库有关的整个系统:计算机硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库、应用程序、用户和维护人员等。有时也将人以外与数据库有关的硬件和软件系统称为数据库系统。一个数据库系统应该具有的功能有:使用数据定义语言建立数据库;使用数据操作或查询语言对数据库中的数据进行查询和更新;支持存储大量的数据,保证对数据的正确安全使用;支持多用户并发访问且不相互影响和损坏数据。,数据管理技术的发展,数据处理一般总是以某一种管理为目的。例如,商店里用计算机来记账、开发票,人事部门用计算机来建立和管理人事档案等。伴随着计算机硬件、软件技术的发展以及计算机应用的不断扩充,计算机进行数据处理也经历了从低级到高级的4个发展阶段。,人工管理阶段,在早期(20世纪50年代中期以前),计算机主要用于数值计算,只能使用卡片、纸带、磁带等来存储数据。数据是程序的组成部分,数据的输入、输出和使用都是由程序来控制的,使用时随程序一起进入内存,用完后完全撤出计算机。这里有“人”指的是程序员。,人工管理阶段中程序与数据之间的关系,文件系统阶段,在这一阶段,数据不再是程序的组成部分,而是按照一定的规则把成批数据组织在数据文件中,存放于外存储器上,并可为每个文件取一个名字。在程序中通过文件名把文件调入内存而使用其中的数据。到了20世纪60年代中期,出现了磁带、磁盘等大容量的外存储器和操作系统,便可利用操作系统中的文件管理功能来进行数据处理了。,文件系统阶段中程序与数据之间的关系,记录内有结构。数据的结构是靠程序定义和解释的。数据只能是定长的。可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。文件间是独立的,因此数据整体无结构。可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。数据的最小存取单位是记录。,文件系统阶段特点,实例:人事数据文件的存储格式,2000A12345678,李光明,1980/12/25,男,河北省,2000A12345679,李格,1982/10/25,男,山西省,2000A12345680,李希望,1980/12/5,女,北京市,2000A12345681,王光,1983/2/2,男,北京市,2000A12345683,李希望,1980/12/5,男,北京市,2000A12345688,王光名,1983/2/2,男,陕西省,在数据文件中,数据之间用逗号隔开。在上边的人事数据文件中,每个学生有5个属性:学号,姓名,生日,性别,籍贯;这5个属性之间用逗号隔开。而每两个学生之间的数据也是用逗号隔开。这样,数据的存取、管理不是很方便。,数据库系统阶段,20世纪60年代后期,数据处理的规模急剧增长。同时,计算概系统中采用了大容量的磁盘(数百MB以上)系统,使联机存储大量数据成为可能。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,数据库技术得到了极大的发展。为数据库的建立、使用和维护而配置的软件称为数据库管理系统(databasemanagementsystem,DBMS),它是在操作系统支持下运行的。数据库系统是一种可以有组织地、动态地存储大量关联数据,方便用户访问的计算机应用软件。,数据库系统阶段中程序与数据之间的关系,数据库系统阶段的特点,数据的管理者:DBMS数据面向的对象:现实世界数据的共享程度:共享性高数据的独立性:高度的物理独立性和一定的逻辑独立性数据的结构化:整体结构化数据控制能力:由DBMS统一管理和控制,人工管理阶段,文件系统阶段,从第1阶段到第3阶段数据与程序之间关系的演变,数据库系统阶段,分布式数据库系统阶段,分布式数据库系统是数据库技术与计算机网络技术相结合的产物,在20世纪80年代中期已有商品化产品问世。分布式数据库系统是一个逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个局部数据库的逻辑集合,同时受分布式数据库管理系统的控制和管理。分布式数据库系统适合于那些各部门在地理上分散的组织机构的事务处理,如银行业务、飞机订票等。,1.2数据库系统的体系结构,站在不同的角度或不同层次上看数据库系统的体系结构会有所不同。站在最终用户的角度看,数据库系统体系结构分为集中式、分布式、C/S(客户/服务器)和并行结构。站在数据库管理系统的角度看,数据库系统体系结构一般采用三级模式结构:外模式、模式和内模式。,集中式数据库体系结构:将DBMS软件、所有用户数据和应用程序放在一台计算机(作为服务器)上,其余计算机作为终端通过通信线路向服务器发出数据库应用请求,这种网络数据库应用系统称为集中式数据库体系结构。客户/服务器(C/S)体系结构:这是在客户/服务器计算机网络上运行的数据库系统,这个计算机网络中,有一些计算机称为客户,另一些计算机称为服务器(即客户机/服务器)。客户/服务体系结构的关键在于功能的分布,一些功能放在客户机(前端机)上运行,另一些功能则放在服务器(后端机)上执行。,分布式数据库体系结构:将分散存储在计算机网络中的多个节点上的数据库在逻辑上统一管理。它是建立在数据库技术与网络技术发展的基础之上的。最初的数据库一般是集中管理的,随着网络的扩大,增加了网络的负荷,对数据库的管理也困难了,分布式数据库则可克服这些缺点,分布式数据库可供地理位置分散的用户共享彼此的数据资源。并行结构数据库体系结构:是多个物理上连在一起的CPU(而分布式系统是多个地理上分开的CPU),各个承担数据库服务责任的CPU划分它们自身的数据,通过划分的任务以及通过每秒兆位级的高速网络通信完成事务查询。,(1)概念模式简称模式,是由数据库设计者综合所有用户数据,按照统一的观点构造的全局逻辑结构。(2)外模式又称为子模式,是用户与数据库的接口,是应用程序可见的数据描述。(3)内模式又称为物理模式或存储模式,它描述数据在存储介质上的安排与存储方式。,三种模式,应用程序,应用程序,应用程序,外模式A,模式,外模式B,DBMS,子模式/模式映射,模式/子模式映射,三级模式之间的联系:二级映射,映射用来指定映射双方进行数据转换的规则,实际的转换工作由DBMS来完成。子模式/模式映射:表达了子模式与模式之间的对应关系;模式/内模式映射:表达了模式与内模式之间的对应关系。,1.3关系数据库系统基本概念,1970年美国IBM公司的TedCodd发表了一篇著名的论文,文中首次提出了关系数据库的概念。此前出现过层次数据库系统和网状数据库系统,但现在均已很少使用,关系数据库早已占据了主导地位。我们使用的SQLServer是关系型的数据库系统,其理论基础是关系代数。这节我们主要介绍关系的基本概念、关系模型、关系运算等方面的内容。,关系,所谓关系,就是一张表。表的各列以属性开始,属性是列的入口。属性下面的每一行称为元组。,龄,属性,元组(记录),关键字(主码或主键),关系中能唯一标识每个元组的最少属性或属性组称之为关键字或主码。例如“学生”关系中的属性“学号”就是关键字,只要学号确定了,就能知道这个学号对应的姓名、性别和年龄等信息,但学生关系中的“性别”和“年龄”不能作为关键字,因为即使年龄或性别确定了,还是不能确定学生的姓名和学号等信息,同性别或者同年龄的学生太多了。当然如果这个关系中没有同姓名的学生,则姓名也可以作为关键字看待,这要根据具体的语义来决定。当有多个可选的关键字(称之为候选关键字)时,可由关系的设计者或使用者指定其中之一为主关键字。,关系的特点,关系中的每一个属性值都必须是不能再分的元素。例如学生的“姓名”不能再细分为“姓”和“名”两个属性值,必须把其作为一个整体来看待。每一列中的数值是同类型的数据。例如学生的年龄列为整数值等。不同的列应该给予不同的属性名。同一个关系中的两个列即使其取值范围相同也必须有不同的属性名,以便区分其不同意义。同一关系中不允许有相同的元组。如果有相同的元组也只保留一个。关系是行或列的集合,所以行、列的次序可以任意交换,不影响关系的实际意义。,关系模式,关系名称和关系的属性名集称为该关系的模式,其记法为:(,),教材表1-1所示的学生关系对应的关系模式为:学生(学号,姓名,性别,年龄)一个数据库中往往包含多个关系,一个数据库中这些关系模式的集合称之为“数据库模式”。数据库设计的主要任务是确定其中需要多少个关系,每个关系有多少个属性,属性的名称和数据类型等内容,也就是设计好每个关系的模式。,外关键字,在同一个数据库中某个关系R1中的属性或属性组若在另一个关系R2中作为主码使用,则该属性或属性组为R1的外关键字或外码。在同一个数据库中的关系往往是通过外关键字而相互关联的。学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)成绩(学号,课程号,成绩)“学号”是“成绩”关系中的外关键字;“课程号”也是“成绩”关系中的外关键字。,关系模型,数据模型就是对客观事物抽象化的表现形式,具有三大特点:1、它必须真实地反映现实世界中的具体应用,否则就失去了意义;2、要便于理解,使用者与设计者要取得一致的看法;3、应该便于使用计算机来实现和处理。数据模型通常由数据结构、数据操作和完整性约束三要素组成。分别表示系统的静态特性、动态特性和数据库的正确性、相容性和有效性。,传统的数据模型有层次、网状和关系。但层次和网状数据模型已很少使用,关系数据库占据了主导地位。近年以来,对象模型也得到了一些应用。数据以“关系”的形式表示,也就是二维表的形式表示,其数据模型就是我们所说的关系模型。在关系模型中,数据及数据之间的联系均用关系来表达,并且对关系进行各种处理之后得到的还是关系。,关系模型建立数据库系统具有的特点,(1)组织数据的结构单一(2)采用集合运算(3)数据完全独立(4)数学理论支持,关系数据库系统,关系数据库系统就是以关系模型为基础的数据库系统。由于关系模型有严格的数学基础,而且便于人们理解和使用,因此关系数据库系统自七十年代末推出以来,得到了广泛的应用,并迅速占据了数据库系统的主流位置。近年来各大公司推出的关系数据库产品主要有:Microsoft公司的ACCESS、SQLServer2000、ORACLE公司的Oracle、IBM公司的DB2、Sybase公司是Sybase等。,1.4关系代数,关系代数是过程化的查询语言,所谓过程化语言就是需要用户指导系统对数据库执行一系列操作从而计算得到所需要的结果。关系代数包括运算的集合,这些运算都是以一个或两个关系为输入,产生一个新的关系作为结果。关系代数的运算分为两大类,第一类是传统的集合运算(并、交、差),另一类是专门的关系运算(选择、投影、连接等)。,关系运算,从集合论的观点来定义关系:每个关系(表)是一个具有K个属性(字段)的元组(记录)集合。关系的基本运算分为两大类:1、传统的集合运算(并、交、差)2、专门的关系运算(选择、投影、联接等),传统的集合运算,设P1和P2为参加运算的两个关系,它们具有相同的属性集,则可定义以下三种传统的集合运算。并运算:P1P2,表示关系P1与关系P2的并,结果中的元组或者属于P1或者属于P2。差运算:P1一P2,表示关系P1与关系P2的差,结果中的元组属于P1但不属于P2。交运算:P1P2,表示关系P1与关系P2的交,结果中的元组既属于P1又属于P2。,R1R2,R1R2R1R2R1R2,专门的关系运算,专门的关系运算我们主要介绍三类:选择、投影和连接(笛卡尔积、等值连接和自然连接)。选择:从关系中找出满足条件的元组的运算,其运算符号为“”。投影:从关系中选取若干属性的运算,其运算符号为“”。连接:从两个关系的广义笛卡儿积中选取满足条件的元组的运算,其运算符号“”,选择(Selection)运算“”,选择的运算符号为“”;选择时需要说明是从哪个关系(表)中进行选择,给出关系名;选择时需要说明选择的条件,如年龄19或成绩60等;复合条件使用AND、OR、NOT等符号连接。选择运算的一般表示:条件(关系名),选择运算是从关系中行的角度进行的运算,选择运算实例,设有一个学生关系Student如上所示,要求找出信息(IS)系的全部学生。,Student,条件(关系名)Sdept=IS(Student),查询年龄小于20岁的女学生;,条件(关系名)Sage20ANDSsex=女(Student),投影运算“”,从原关系中选择出若干属性列组成新的关系。投影的运算符号为“”;投影时需要说明是从哪个关系(表)中进行投影,给出关系名;投影时需要说明要投影的列(属性)名,多个列之间用逗号分开。投影运算的一般表示:列名集(关系名),投影操作主要是从列的角度进行运算注意:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(重复行),投影运算实例,在前面学生关系中查询学生的姓名及所在系。Sname,Sdept(Student)结果如右图所示,查询学生关系Student中都有哪些系Sdept(Student)结果如右表所示,注意:少了一行!,笛卡尔积(CartesianProduct),给定一组域D1,D2,Dn(注:这些域中可以有相同的),则D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n其中每个(d1,d2,.,dn)叫做一个n元组,元组中的每个di是Di域中的一个值,称为一个分量。当n1时,称为单元组,当n2时,称为二元组,依此类推。,笛卡尔积实例,设有域D1李明,刘滔,吴双,D220,21,19,则笛卡儿积D1D2=?,D1D2(李明,20),(李明,21),(李明,19),(刘滔,20),(刘滔,21),(刘滔,19),(吴双,20),(吴双,21),(吴双,19),李明,20,李明,21,李明,19,刘滔,20,刘滔,21,刘滔,19,吴双,20,吴双,21,吴双,19,连接运算,连接运算是从两个关系的笛卡儿积中选取满足条件的元组形成新的关系,表示为:R(F)S其中R和S是要连接的两个关系的名称,F是两关系中元组连接的条件表达式,其值为真时连接,否则不连接。两种特殊的连接:等值连接与自然连接。如果F仅仅是比较两个关系中两个属性的值相等这样的条件,我们称这样的连接为等值连接;如果两关系中有相同的属性并且连接时比较相同属性的值相等即连接,且去掉重复的属性,则这种连接称之为自然连接,记为:RS,一般的连接操作是从行的角度进行运算。而自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,R,S,连接运算举例,R,S,连接运算RCES,等值连接:RR.B=S.BS,自然连接RS,关系代数运算综合实例,先行课,学分,Student,Course,SC,Sno(Cno=2(SC),查询选修了2号课程的学生的学号,进行综合运算时,要弄清楚需要对哪些关系进行什么样的运算,注意尽量先做选择运算,然后再自然连接,最后进行投影运算。,Sname(Cpno=5(CourseSCStudent)或Sname(Cpno=5(Course)SCSno,Sname(Student)或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。,查询出姓名(Sname)为lhy的学生的学生号、所选课程的每门课程号及相应成绩,Sno,Cno,Grade(sname=lhp(SCStudent)或Sno,Sno,Grade(sname=lhp(Sno,Sname,Cno,Grade(SCStudent)或Sno,Sno,Grade(sname=lhp(Sno,Sname(Student)SC),1.5数据库设计,在给定的DBMS、操作系统和硬件环境下,如何表达应用需求,并将其转换为有效的数据库结构,构成较好的数据库模式,这个过程称为数据库设计。根据一个单位的信息需求、处理需求和数据库的支撑环境,设计出数据模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。其中信息需求表示一个单位所需要的数据及其结构。处理需求表示一个单位需要经常进行的数据处理。,数据库设计的特点和步骤,数据库设计的3个特点反复性(Iterative)试探性(Tentative)分步进行(Multistage)数据库设计的4个步骤数据库的设计一般分为四步:需求分析概念设计逻辑设计物理设计,需求分析,需求分析时首先围绕要设计的课题进行调查研究,明确使用系统的有哪些用户,并与他们进行充分沟通,了解系统设计的目的、意义,要达到的预期目标,现有系统的状况,业务处理流程,用户希望的主要功能及特殊要求,并收集所有的数据资料。在上面的基础上,再对调研所收集到的所有信息进行归类、整理、筛选、抽象(抽取本质特性,去掉非本质内容)、提炼、分析和仔细审查,以确保准确地明白其含义并找出其中的错误、遗漏或其它不足的地方。在此基础上,再对调研所收集到的所有信息进行归类、整理、筛选、抽象(抽取本质特性,去掉非本质内容)、提炼、分析和仔细审查,以确保准确地明白其含义并找出其中的错误、遗漏或其它不足的地方。,对于得到的需求分析结果,经整理后,都必须用一种较统一的方式来将它们编写成用户需求(功能)说明书。用户需求(功能)说明书阐述你所设计的系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是后续设计和编码、测试的基础。为确保系统设计者对用户需求的理解正确,设计者完成了用户需求说明书之后,请有关用户对需求说明书及相关模型进行仔细的检查,确认这些需求的正确性和还未包括的内容,并进行有关的修正。,概念设计,概念设计阶段的主要任务和目标是根据需求分析的结果找出所有的数据实体及其相互联系,画出对应的实体-联系(Entity-Relationship)模型,或称之为E-R图。E-R图是数据库建模的一种直观的易于理解的图形表示,由实体、属性和联系三部分组成。用概念数据模型,例如E-R模型,表示数据及其相互间的联系,产生反映用户信息需求和处理需求的数据库概念模式。数据库概念模式是独立于任何数据库管理系统、面向现实世界的数据模型。,用图形表示的数据库建模方法E-R方法,E-R(EntityRelation)即实体-联系方法,用于构造数据库的概念模型,是设计数据库的一种实用工具。E-R图由实体、属性和联系三者构成。实体集:实体是实体集的成员,矩形表示实体集,有时将实体和实体集混为一说。属性:使用椭圆形表示属性。联系:E/R图中的联系可以涉及两个以上的实体集。菱形表示联系。,E-R图例,E/R图中联系的三种类型,联系有三种类型:一对一(1:1),一对多(1:n)和多对多(n:m)。,三个或更多实体之间存在多元联系,一个供应商为多个工程项目提供多种设备的订货,一个工程项目可由多个供应商提供多种设备;一种设备可以由多个供应商提供给不同的工程项目所使用。,E-R图设计中要注意的问题,实际问题往往比较复杂,应从局部分析做起,先局部后全部;分清哪些应该是实体而哪些应该是实体的属性;再分析实体之间的联系;使用一些制作工具,如PowerDesigner等,ER图设计实例,假设要求我们设计一个适合大学选课的数据库。该数据库应需要表达学生选修的课程及其成绩;每个教师可担任多门课程的教学,每门课也可以由多个教师来授课,一个系可以开设多门课程,每门课程只归属于一个系等信息。请用E-R图表达学生选课数据库。,设计步骤,在设计过程中,我们首先要做的工作是找出实体集,然后再分析实体集之间的联系,最后考虑实体集和联系的属性有哪些。,找出实体和联系,分析上面实例说明,我们可以看出有学生、教师、系和课程等四个实体集。学生和课程之间有多对多的选课联系,即一个学生可能选修多门课,每门课亦可以由多个学生选修;教师和课程之间也是多对多的联系;系与课程之间是一对多的联系;教师与系之间也是一对多的联系。,实体和联系的属性,学生实体的属性有:学号、姓名、性别和班级;课程的属性有:课程号、课程名和学分;教师的属性的:姓名、性别和职称;系的属性有:系名、系办地址和联系电话。学生选修课程的联系上应该有成绩属性,而教师授课应该加上教学效果这个属性,逻辑设计,在逻辑设计阶段,将第二步所得到的数据库概念模式,转换成以DBMS的逻辑数据模型表示的逻辑模式(关系)。,从E-R图转换为数据库需要遵循的规则,一个实体转换为一个数据表;实体的属性转换为数据库的字段。一对一、一对多的联系不转换为数据表,两个实体对应的数据表依靠外部关键字建立联系;多对多的联系转换为一个数据表。该数据表的复合关键字为两个实体的关键字;,三个或三个以上实体多对多联系转换为一个数据表。该数据表的复合关键字为各个实体的关键字;也可引入一个单一字段(ID)作为关键字,把各个实体的关键字作为外关键字;处理三个以上实体的联系时,先画出一对一对应的实体;具有相同关键字的数据表可以合并为一个。,逻辑设计实例1,对于教材中图1-22所示的学生选课E-R图,有两个实体,一个多对多的联系,转化成数据库的逻辑结构时变成三个关系,分别是学生、课程和选修,内容如下所示。学生关系对应原来的学生实体集,其主码为“学号”;课程关系对应原来的课程实体集,选修联系是多对多的,转换为逻辑模式时成为一个新的关系,其关键码(主码)是与之相关的两体的关键码(主码)的组合,再加上联系本身的属性“成绩”。学生(学号,姓名,性别,班级)课程(课程号,课程名,学分)选修(学号,课程号,成绩),逻辑设计实例2,教材中图1-23所示的大学选课数据库E-R图,有四个实体,两个多对多的联系和两个一对多的联系,转化成数据库的逻辑结构时变成六个关系,分别是学生、课程、系、教师和选修、讲授,内容如下所示。学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分,系名*)教师(教师名,性别,职称,系名*)系(系名,地址,电话)选修(学号,课程号,成绩)讲授(课程号,教师名,效果),物理设计,根据数据库的逻辑和概念模式、DBMS及计算机系统所提供的功能和施加的限制,设计数据库文件的物理存储结构、各种存取路径。,从E-R图到数据库,数据库的概念模型:用E-R图表示的实体模型,数据库的逻辑模型:用格式化表示的数据模型,数据库的物理模型:用数据表(二维表)表示的数据库,1.6关系规范化基本思想,在使用基于关系数据模型的关系数据库时,需要理解的几个主要概念:关系:由行和列组成的二维表。元组:表中的一行,记录。属性:表中的一列,字段。域(Domain):属性(字段)的取值范围。关系模式:关系名(属性1,属性2,,属性n)或表名(字段1,字段2,,字段n)。,关键字(Key):某个或某几个字段,可以唯一确定一条记录,就成为本关系的关键字。或者说,对于某个关系,能够唯一地确定其它属性(字段)值的属性(字段)组称为关键字。候选关键字:对于某个关系,若存在多个属性组都是关键字,则称它们中的每一个都为该关系的候选关键字。主关键字:从候选关键字中任选一个作为现行关键字,则该关键字称为主关键字。主属性和非主属性:凡能作候选关键字的属性称为主属性,而不能作候选关键字的属性称为非主属性。外部关键字:不是本关系的关键字,而是另一个关系的关键字。关系之间的连接常常依靠外部关键字。,为了更好地了解函数依赖的概念,先看实例:学生关系Student的实例如下:SnoSNSDMNCNG99230贺小华计算机周光OS9699239金谦计算机周光OS9099239金谦计算机周光编译9299851陈刚建筑王勇建筑89back,函数依赖,SnoSNSnoSDSDMNSnoCNG,设计关系数据库模式时,特别是从E/R设计直接向关系数据库模式转换时,很容易出现的问题是冗余性,即一个事实在多个元组中重复。造成这种冗余的最常见的原因是,企图把一个对象的单值和多值特性包含在一个关系中。,当我们企图把太多的信息存放在一个关系时,就会出现数据冗余和更新异常等问题。主要表现如下:1数据冗余。2修改异常。3删除异常。4插入异常。参看实例,问题的根源(1),关系的键码函数决定该关系的所有其它属性。由于键码能唯一确定一个元组,所以,也可以说关系的键码函数决定该关系的所有属性。一个关系中的所有属性都函数依赖于该关系的键码。不同的属性在关系模式中所处的地位和扮演的角色是不同的。把键码所在的属性称为主属性,而把键码属性以外的属性称为非主属性。,问题的根源(2),不同的属性对键码函数依赖的性质和程度是有差别的。有的属于直接依赖,有的属于间接依赖(通常称为传递依赖)。当键码由多个属性组成时,有的属性函数依赖于整个键码属性集,而有的属性只函数依赖于键码属性集中的一部分属性。,问题的根源(2),不同的属性对键码函数依赖的性质和程度是有差别的。有的属于直接依赖,有的属于间接依赖(通常称为传递依赖)。当键码由多个属性组成时,有的属性函数依赖于整个键码属性集,而有的属性只函数依赖于键码属性集中的一部分属性。,完全依赖与部分依赖对于函数依赖WA,如果存在VW(V是W的真子集)而函数依赖VA成立,则称A部分依赖于W;若不存在这种V,则称A完全依赖于W。当存在非主属性对键码部分依赖时,就会产生数据冗余和更新异常。若非主属性对键码完全函数依赖,则不会出现类似问题。,传递依赖对于函数依赖XY,如果YX(X不函数依赖于Y)而函数依赖YZ成立,则称Z对X传递依赖。如果XY,且YX,则X,Y相互依赖,这时Z与X之间就不是传递依赖,而是直接依赖了。我们以前所讨论的函数依赖大多数是直接依赖。,解决的途径,部分依赖和传递依赖有一个共同之处,这就是,二者都不是基本的函数依赖,而都是导出的函数依赖:部分依赖是以对键码的某个真子集的依赖为基础传递依赖的基础则是通过中间属性联系在一起的两个函数依赖。,导出的函数依赖在描述属性之间的联系方面并没有比基本的函数依赖提供更多的信息。在一个函数依赖集中,导出的依赖相对于基本的依赖而言,虽然从形式上看多一种描述方式,但从本质上看,则完全是冗余的。正是由于关系模式中存在对键码的这种冗余的依赖导致数据库中的数据冗余和更新异常。,解决的途径消除关系模式中各属性对键码的冗余的依赖。由于冗余的依赖有部分依赖与传递依赖之分,而属性又有主属性与非主属性之别,把解决的途径分为几个不同的级别,以属于第几范式来区别。,范式就是符合某一种级别的关系模式的集合。目前主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。第一范式需满足的要求最低,在第一范式基础上满足进一步要求的为第二范式:1NF2NF3NFBCNF4NF5NF通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为规范化。,第一范式(1NF),如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式。在任何一个关系数据库系统中,第一范式是对关系模式的一个最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。,第二范式(2NF),若关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码,则R属于第二范式。第二范式就是不允许关系模式中的非主属性部分函数依赖于键码。,学生关系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。该关系模式存在如下部分依赖:Sno,CnameSname,Sdept,Mname显然不满足“每个非主属性都完全函数依赖于键码”的条件。所以学生关系模式不属于第二范式。,关系分解的含义,关系R的分解包括两个方面,一方面是把R的属性分开,以构成两个新的关系模式:另一方面是通过对R的元组进行投影而产生两个新的关系。,分解的过程,给定一个模式为A1,A2,An的关系R,我们可以把R分解为两个关系S和T,模式分别为B1,B2,Bm和C1,C2,Ck,使得:1A1,An=B1,BmC1,Ck,2关系S中的元组是R的所有元组在B1,Bm上的投影。对于R的当前实例的每个元组t,取t在属性B1,B2,Bm上的分量。这些分量构成一个元组,它属于S的当前实例。3类似地,关系T中的元组是R的当前实例中的元组在属性集C1,C2,Ck上的投影。,第三范式(3NF),若关系模式R属于第一范式,且每个非主属性都不传递依赖于键码,则R属于第三范式。这里应说明一点:属于第三范式的关系模式必然属于第二范式。因为可以证明部分依赖蕴含着传递依赖。,关系模式S1(Sno,Sname,Sdept,Mname)由于存在传递依赖而不属第三范式.S1分解成两个关系模式S11(Sno,Sname,Sdept)S12(Sdept,Mname),关系的规范化过程,按照范式理论,在lNF的基础上,消除了属性对关键字的不完全函数依赖关系,即可得到第二范式(2NF),在2NF的基础上,消除了属性对关键字的传递函数依赖关系,即可得到第三范式(3NF)。,第一范式(一张表),成绩管理(学号,姓名,生日,性别,所在城市,长途区号,课程,学期,学分,成绩)1.使字段成

温馨提示

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

评论

0/150

提交评论