第1章 数据库技术基础_第1页
第1章 数据库技术基础_第2页
第1章 数据库技术基础_第3页
第1章 数据库技术基础_第4页
第1章 数据库技术基础_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、 信息(信息(information)是指现实世界中事物的存在)是指现实世界中事物的存在方式或运动状态的表征,是客观世界在人们头脑中的方式或运动状态的表征,是客观世界在人们头脑中的反映,是可以传播和加以利用的一种知识反映,是可以传播和加以利用的一种知识。信息具有。信息具有可感知、可存储、可加工、可传递和可再生等自然属可感知、可存储、可加工、可传递和可再生等自然属性。信息也是社会各行各业中不可或缺的资源,这是性。信息也是社会各行各业中不可或缺的资源,这是它的社会属性。它的社会属性。 在现实世界中,人们为了交流信息、了解信息,需要对现实世界中的在现实世界中,人们为了交流信息、了解信息,需要对现实世

2、界中的事物进行描述。例如,利用自然语言描述一个学生事物进行描述。例如,利用自然语言描述一个学生:“李四是一个李四是一个20082008年入学的男大学生,年入学的男大学生,19901990年出生,四川人。年出生,四川人。”在计算机中,为了在计算机中,为了处理现实世界中的事物,可以抽象出人们感兴趣的事物特征,组成一处理现实世界中的事物,可以抽象出人们感兴趣的事物特征,组成一个记录来描述该事物。例如,最感兴趣的是学生的个记录来描述该事物。例如,最感兴趣的是学生的姓名、性别、出生姓名、性别、出生日期、籍贯、入学时间日期、籍贯、入学时间,那么刚才的话就可以用如下一条表示数据的,那么刚才的话就可以用如下一

3、条表示数据的记录来描述:记录来描述:(李四,男,(李四,男,1990,四川,四川,2008)n人工管理人工管理n文件系统文件系统n数据库系统数据库系统 20世纪世纪50年代中期以前,计算机主要用于年代中期以前,计算机主要用于科学计算科学计算;而存储方面只有纸;而存储方面只有纸带、卡片、磁带,带、卡片、磁带,没有大容量的外存没有大容量的外存;没有操作系统和数据管理软件;数据;没有操作系统和数据管理软件;数据处理方式是批处理,数据的管理是由程序员个人设计和安排的。程序员把数处理方式是批处理,数据的管理是由程序员个人设计和安排的。程序员把数据处理纳入程序设计的过程中,据处理纳入程序设计的过程中,除了

4、编制程序之外,还要考虑数据的逻辑定除了编制程序之外,还要考虑数据的逻辑定义和物理组织,以及数据在计算机存储设备中的物理存储方式。程序和数据义和物理组织,以及数据在计算机存储设备中的物理存储方式。程序和数据混为一体。混为一体。人工管理阶段的人工管理阶段的特点特点有:有:n数据不长期保存在计算机中,用完就删除。数据不长期保存在计算机中,用完就删除。n应用程序管理数据,数据与程序结合在一起。应用程序管理数据,数据与程序结合在一起。n数据不共享,数据是面向应用的,一组数据对应一个程序。数据不共享,数据是面向应用的,一组数据对应一个程序。 文件系统阶段是指文件系统阶段是指2020世纪世纪5050年代后期

5、到年代后期到2020世纪世纪6060年代中年代中期这一阶段。由于计算机硬件有了磁盘、磁鼓等直接存取设期这一阶段。由于计算机硬件有了磁盘、磁鼓等直接存取设备,软件有了操作系统、数据管理软件,计算机应用扩展到备,软件有了操作系统、数据管理软件,计算机应用扩展到了数据处理方面。这一阶段的了数据处理方面。这一阶段的特点特点有:有:n数据以文件的形式长期保存在计算机中。数据以文件的形式长期保存在计算机中。n程序与数据之间有一定的独立性,数据可以共享,一个程序与数据之间有一定的独立性,数据可以共享,一个数据文件可以被多个应用程序使用。数据文件可以被多个应用程序使用。n数据文件彼此孤立,不能反映数据之间的联

6、系,存在大数据文件彼此孤立,不能反映数据之间的联系,存在大量的数据冗余。量的数据冗余。 数据库系统阶段从数据库系统阶段从2020世纪世纪6060年代后期至今。随着计算机硬年代后期至今。随着计算机硬件与软件技术的发展,计算机用于管理的规模越来越大,文件件与软件技术的发展,计算机用于管理的规模越来越大,文件系统作为数据管理手段已经不能满足应用的需要。系统作为数据管理手段已经不能满足应用的需要。为了解决多为了解决多用户、多应用程序共享数据的需求用户、多应用程序共享数据的需求,人们开始了,人们开始了对数据组织方对数据组织方法的研究法的研究,并开发了对数据进行统一管理和控制的,并开发了对数据进行统一管理

7、和控制的数据库管理数据库管理系统系统,在计算机领域逐步形成了数据库技术这一独立的分支。,在计算机领域逐步形成了数据库技术这一独立的分支。数据库系统阶段的数据库系统阶段的特点特点有:有:n数据结构化。数据结构化。n数据的共享性高、冗余度低、易扩充。数据的共享性高、冗余度低、易扩充。n数据的独立性强。数据的独立性强。n数据由数据由DBMSDBMS统一管理和控制。统一管理和控制。 数据库是长期存储在计算机内的、有组织的、数据库是长期存储在计算机内的、有组织的、可共享的数据集合。可共享的数据集合。DBMS的功能的功能数据定义数据定义数据操纵数据操纵数据库数据库的的运行管理运行管理 狭义地讲,由数据库、

8、数据库管理系统构成;狭义地讲,由数据库、数据库管理系统构成; 广义地讲,由数据库、数据库管理系统及开发工具、广义地讲,由数据库、数据库管理系统及开发工具、数据库应用程序、数据库管理员和用户构成。数据库应用程序、数据库管理员和用户构成。用户用户数据库管理员数据库管理员DBADBA用户用户用户用户应用系统应用系统数据库数据库应用开发工具应用开发工具数据库管理系统数据库管理系统DBMSDBMS操作系统操作系统OSOS数据库系统构成数据库系统构成 数据模型数据模型是现实世界数据特征的抽象,是对现实世界的模是现实世界数据特征的抽象,是对现实世界的模拟。现实生活中的具体模型,如汽车模型、航空模型等,人拟。

9、现实生活中的具体模型,如汽车模型、航空模型等,人们并不陌生,人们看到模型就会想到现实生活中的事物。们并不陌生,人们看到模型就会想到现实生活中的事物。数数据模型同样是现实世界中数据和信息在数据库中的抽象与表据模型同样是现实世界中数据和信息在数据库中的抽象与表示示。 数据模型应满足数据模型应满足三方面的要求三方面的要求:一是能比较真实地模拟现:一是能比较真实地模拟现实世界;二是容易理解;三是便于在计算机中实现。实世界;二是容易理解;三是便于在计算机中实现。 根据模型应用目的的不同,根据模型应用目的的不同,数据模型可以分为两类数据模型可以分为两类:一类:一类是是概念模型概念模型,它按用户的观点来对数

10、据和信息进行抽象,主,它按用户的观点来对数据和信息进行抽象,主要用于数据库设计;另一类是要用于数据库设计;另一类是结构数据模型结构数据模型,它按计算机的,它按计算机的观点来建模,主要用于观点来建模,主要用于DBMS的实现。的实现。 概念模型是现实世界到信息世界的概念模型是现实世界到信息世界的第一次抽象第一次抽象,用于信息,用于信息世界的建模,是数据库设计人员的重要工具,也世界的建模,是数据库设计人员的重要工具,也是数据库设是数据库设计人员与用户之间交流的语言计人员与用户之间交流的语言。(1 1)实体(实体(entityentity):):指客观存在并且可以相互区别的事指客观存在并且可以相互区别

11、的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联物。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个部门、一名学生、一名教师、一场比赛等都是系。例如,一个部门、一名学生、一名教师、一场比赛等都是实体。实体。(2 2)属性(属性(attributeattribute):):实体所具有的某一特性称为实体实体所具有的某一特性称为实体的属性。一个实体可由若干个属性来描述。例如,职工实体可的属性。一个实体可由若干个属性来描述。例如,职工实体可以用职工编号、姓名、性别、职称、学历、工作时间等属性来以用职工编号、姓名、性别、职称、学历、工作时间等属性来描述。如(描述。如(10011

12、001,张莹,女,副教授,硕士,张莹,女,副教授,硕士,19681968),这些属),这些属性组合起来描述了一名职工。性组合起来描述了一名职工。(3 3)关键字(关键字(keykey):):唯一标识实体的属性集称为关键字。唯一标识实体的属性集称为关键字。例如,职工编号是职工实体的关键字。例如,职工编号是职工实体的关键字。(4 4)域(域(domaindomain):):属性的取值范围称为该属性的域。例属性的取值范围称为该属性的域。例如,职工实体的性别属性的域为(男,女)。如,职工实体的性别属性的域为(男,女)。(5 5)实体型(实体型(entity typeentity type):):具有相

13、同属性的实体称为同型具有相同属性的实体称为同型实体。用来抽象和刻画同类实体的实体名及其属性名的集合称实体。用来抽象和刻画同类实体的实体名及其属性名的集合称为实体型。例如,学生(学号,姓名,年龄)就是一个实体型。为实体型。例如,学生(学号,姓名,年龄)就是一个实体型。(6 6)实体集(实体集(entity setentity set):):同型实体的集合称为实体集。例同型实体的集合称为实体集。例如,全体学生就是一个实体集,全体老师也是一个实体集。如,全体学生就是一个实体集,全体老师也是一个实体集。(7 7)联系(联系(relationshiprelationship):):在现实世界中,事物内部

14、及事物在现实世界中,事物内部及事物之间普遍存在联系,这些联系在信息世界中表现为实体型内部之间普遍存在联系,这些联系在信息世界中表现为实体型内部各属性之间的联系以及实体型之间的联系。两个实体型之间的各属性之间的联系以及实体型之间的联系。两个实体型之间的联系可以分为三类:联系可以分为三类: 一对一联系(一对一联系(1:11:1):若对于实体集若对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中至多有一个实体与之联系,反之亦然,则称实体集中至多有一个实体与之联系,反之亦然,则称实体集A A与实体集与实体集B B具有一对一的联系具有一对一的联系。例如,一个班级有一个班长,一个班长存在

15、。例如,一个班级有一个班长,一个班长存在于一个班级,因此班级与班长之间具有一对一的联系。于一个班级,因此班级与班长之间具有一对一的联系。 一对多联系(一对多联系(1:1: n n):若对于实体集若对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中有中有n n(n n00)个实体与之联系,反之,对于实体集)个实体与之联系,反之,对于实体集B B中的每一中的每一个实体,实体集个实体,实体集A A中至多只有一个实体与之联系,则称实体集中至多只有一个实体与之联系,则称实体集A A与与实体集实体集B B有一对多的联系有一对多的联系。例如,一个班级有多名学生,多名学。例如,一个班级有多名

16、学生,多名学生可存在于同一个班级,班级与学生之间就是一对多的联系。生可存在于同一个班级,班级与学生之间就是一对多的联系。多对多联系(多对多联系(m:nm:n):若对于实体集若对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中有中有n n(n n00)个实体与之联系,反过来,对于实体集)个实体与之联系,反过来,对于实体集B B中的每一中的每一个实体,实体集个实体,实体集A A中也有中也有m m(m m00)个实体与之联系,则称实体集)个实体与之联系,则称实体集A A与实体集与实体集B B有多对多的联系。有多对多的联系。例如,一门课程同时可以供若干个例如,一门课程同时可以供若干个

17、学生选修,而一个学生同时也可以选修若干门课程,课程与学生学生选修,而一个学生同时也可以选修若干门课程,课程与学生之间的联系是多对多的联系。之间的联系是多对多的联系。 概念模型是信息世界比较真实的模拟,容易为人所理解。概念模型是信息世界比较真实的模拟,容易为人所理解。概念模型应该方便、准确地表示出信息世界中常用的概念。概念模型应该方便、准确地表示出信息世界中常用的概念。概念模型的表示方法有很多,其中比较著名的是概念模型的表示方法有很多,其中比较著名的是实体实体联系联系方法(方法(Entity-RelationshipEntity-Relationship,E-RE-R),),该方法用该方法用E-

18、RE-R图来描图来描述现实世界的概念模型。述现实世界的概念模型。 E-RE-R图提供了表示实体型、属性和联系的方法。图提供了表示实体型、属性和联系的方法。 实体型实体型:用:用矩形矩形表示,矩形框内写实体名。表示,矩形框内写实体名。 属性属性:用:用椭圆形椭圆形表示,椭圆内写属性名,用无向边将属表示,椭圆内写属性名,用无向边将属性与实体连接起来。性与实体连接起来。 联系联系:用:用菱形菱形表示,菱形框内写联系名,用无向边与有表示,菱形框内写联系名,用无向边与有关实体连接起来,同时在无向边上注明联系类型。联系也具关实体连接起来,同时在无向边上注明联系类型。联系也具有属性,也要用无向边将联系与有关

19、实体连接起来。有属性,也要用无向边将联系与有关实体连接起来。 例:例:下面用下面用E-R图表示学生选课管理的概念模型。图表示学生选课管理的概念模型。学生选课管理设计有如下实体:学生选课管理设计有如下实体:学生:学生:属性有学号、姓名、性别、出生日期、入学时间、班级。属性有学号、姓名、性别、出生日期、入学时间、班级。课程:课程:属性有课程编号、课程名、学时数、学分、课程性质。属性有课程编号、课程名、学时数、学分、课程性质。教材:教材:属性有教材编号、教材名、出版社、主编、单价。属性有教材编号、教材名、出版社、主编、单价。这些实体之间的这些实体之间的联系联系如下:如下: 一门课程只能选用一种教材,

20、一种教材对应一门课程。一门课程只能选用一种教材,一种教材对应一门课程。 一个学生可以选修多门课程,一门课程可以由多个学生选修。一个学生可以选修多门课程,一门课程可以由多个学生选修。教材编号教材编号教材名教材名出版社出版社主编主编单价单价教材教材1 11 1课程课程课程编号课程编号课程名课程名学时数学时数学学分分课程性质课程性质n nm m学生学生出生年月出生年月入学时间入学时间班级班级学学号号姓名姓名性别性别课程成绩课程成绩选用选用选课选课学生选课管理学生选课管理E-R图图 结构数据模型直接描述数据库中结构数据模型直接描述数据库中数据的逻辑结构数据的逻辑结构,这类模型,这类模型涉及计算机系统,

21、又称基本数据模型。它涉及计算机系统,又称基本数据模型。它是信息世界到机器是信息世界到机器世界的抽象世界的抽象。 目前,常用的结构数据模型有目前,常用的结构数据模型有四种四种,它们是:,它们是:n层次模型(层次模型(hierarchical model)。)。n网状模型(网状模型(network model)。)。n关系模型(关系模型(relational model)。)。n面向对象模型(面向对象模型(object oriented model)。)。 目前关系模型是最重要的一种数据模型。关系数据系统采用目前关系模型是最重要的一种数据模型。关系数据系统采用关系模型为数据的组织方式,关系模型为数

22、据的组织方式,SQL Server 2005数据库就是数据库就是基于关系模型建立的。基于关系模型建立的。 虽然实际的数据库系统多种多样,支持不同的数据模型,虽然实际的数据库系统多种多样,支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但存储结构也各不相同,但从体系结构上看都采用三级模式两级从体系结构上看都采用三级模式两级映像结构。映像结构。 (1 1)外模式:外模式:外模式又称子模式或用户模式,外模式又称子模式或用户模式,是模式的子集是模式的子集,是数据的是数据的局部逻辑结构,也是数据库用户看到

23、的数据视图局部逻辑结构,也是数据库用户看到的数据视图。一个数据库可以有多个外模式一个数据库可以有多个外模式,每一个外模式都是为了不同的应用而建立的数据视图。外模式是保证数据库安全每一个外模式都是为了不同的应用而建立的数据视图。外模式是保证数据库安全的一个有力措施,每个用户只能看到和访问所对应的外模式中的数据,数据库中的一个有力措施,每个用户只能看到和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。的其余数据是不可见的。 (2 2)模式:模式:模式也称逻辑模式,模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的是数据库中全体数据的逻辑结构和特征的描述描述,也是所有用户的公共数据视图

24、。,也是所有用户的公共数据视图。模式是数据库数据在逻辑上的视图。模式是数据库数据在逻辑上的视图。一个一个数据库中有一个模式数据库中有一个模式,它既不涉及存储细节,也不涉及应用程序和程序设计语,它既不涉及存储细节,也不涉及应用程序和程序设计语言。定义模式时不仅要定义数据的逻辑结构,也要定义数据之间的联系,定义与言。定义模式时不仅要定义数据的逻辑结构,也要定义数据之间的联系,定义与数据有关的安全性、完整性要求。数据有关的安全性、完整性要求。 (3 3)内模式:内模式:内模式也称存储模式,内模式也称存储模式,是数据在数据库中的内部表示,即数是数据在数据库中的内部表示,即数据的物理结构和存储方式描述据

25、的物理结构和存储方式描述。一个数据库只有一个内模式一个数据库只有一个内模式。数据库的三级模式两级映像结构数据库的三级模式两级映像结构 外模式外模式/ /模式映像模式映像B B应用应用1 1应用应用2 2应用应用3 3应用应用4 4应用应用5 5外模式外模式A A外模式外模式B B外模式外模式/ /模式映像模式映像A A模式模式内模式内模式数据库数据库数据库数据库管理系统管理系统OSOS由数据库管由数据库管理员建立和理员建立和维护维护模式模式/ /内模式映像内模式映像 数据库系统的三级模式是对数据的三级抽象,数据的具体组织由数据库管理数据库系统的三级模式是对数据的三级抽象,数据的具体组织由数据库

26、管理系统负责,使用户能够逻辑地处理数据,而不必关心数据在计算机内部的具体表示系统负责,使用户能够逻辑地处理数据,而不必关心数据在计算机内部的具体表示与存储方式。为了在内部实现这三个抽象层次的转换,与存储方式。为了在内部实现这三个抽象层次的转换,数据库管理系统在这三级模数据库管理系统在这三级模式中提供了两级映像:外模式式中提供了两级映像:外模式/模式映像和模式模式映像和模式/内模式映像。内模式映像。 (1)外模式外模式/模式映像模式映像:指存在于外模式与模式之间的某种对应关系。这些映指存在于外模式与模式之间的某种对应关系。这些映像定义通常包含在外模式的描述中。像定义通常包含在外模式的描述中。 当

27、数据库的模式发生改变时,例如,增加了一个新表或对表进行了修改,数据当数据库的模式发生改变时,例如,增加了一个新表或对表进行了修改,数据库管理员对各个外模式库管理员对各个外模式/模式的映像做相应的修改,使外模式保持不变,这样应用模式的映像做相应的修改,使外模式保持不变,这样应用程序就不用修改了,因为应用程序是在外模式上编写的,所以保证了数据与程序的程序就不用修改了,因为应用程序是在外模式上编写的,所以保证了数据与程序的逻辑独立性,逻辑独立性,简称数据的逻辑独立性简称数据的逻辑独立性。 (2)模式模式/内模式映像内模式映像:指数据库全局逻辑结构与存储结构之间的对应关系。指数据库全局逻辑结构与存储结

28、构之间的对应关系。 当数据库的内模式发生改变时,例如,存储数据库的硬件设备或存储方式发生当数据库的内模式发生改变时,例如,存储数据库的硬件设备或存储方式发生了改变,由于存在模式了改变,由于存在模式/内模式映像,使得数据的逻辑结构保持不变,即模式不内模式映像,使得数据的逻辑结构保持不变,即模式不变,因此使应用程序也不变,保证了数据与程序的物理独立性,变,因此使应用程序也不变,保证了数据与程序的物理独立性,简称数据的物理独简称数据的物理独立性。立性。课程关系课程关系C C 关系模式名(属性名关系模式名(属性名1 1,属性名,属性名2 2,属性名,属性名n n) 关系模式的表示:关系模式的表示:用符

29、号表示关系模式:用符号表示关系模式:关系关系属性(列)属性(列)关系名关系名学生表学生表属性名属性名关系模式关系模式主码主码关系模型数据结构关系模型数据结构 数据完整性是指关系模型中数据完整性是指关系模型中数据的正确性与一致性数据的正确性与一致性。 关系模型允许定义关系模型允许定义三类完整性约束三类完整性约束:n实体完整性规则(实体完整性规则(entity integrity ruleentity integrity rule):这条约束:这条约束要求关系中的元组在主属性上的值不能为空。例如,教师要求关系中的元组在主属性上的值不能为空。例如,教师表中的教师编号不能为空。表中的教师编号不能为空。

30、n参照完整性规则(参照完整性规则(reference integrity rulereference integrity rule):这条约:这条约束要求不能在从表中引用主表中不存在的元组。例如,在束要求不能在从表中引用主表中不存在的元组。例如,在“学生选课表学生选课表”中的学号不能引用中的学号不能引用“学生学生”表中没有的学表中没有的学号。号。n用户自定义完整性规则(用户自定义完整性规则(user-user-defindedintegritydefindedintegrity rulerule):用户自定义完整性规则是根据应用领域的需要,:用户自定义完整性规则是根据应用领域的需要,由用户定义

31、的约束条件,体现了具体应用领域的语义约束。由用户定义的约束条件,体现了具体应用领域的语义约束。 33域完整性域完整性实体完整性实体完整性参照完整性参照完整性数据完整性数据完整性正确性正确性一致性一致性表中所有行唯一,即所表中所有行唯一,即所有记录都是可以区分的有记录都是可以区分的表中指定列的数据具有表中指定列的数据具有正确的数据类型、格式正确的数据类型、格式和有效的数据范围和有效的数据范围有关联的两个或两个以上表之间数据的一致性。有关联的两个或两个以上表之间数据的一致性。可以通过建立主键和外键约束来实现。可以通过建立主键和外键约束来实现。其他教材对完整性的定义其他教材对完整性的定义34n每一种

32、数据完整性类型,都是由不同的约束类型来保障的每一种数据完整性类型,都是由不同的约束类型来保障的。完整性类型完整性类型约约 束束 类类 型型描描 述述域完整性域完整性DEFAULT(缺省缺省)在使用在使用INSERT语句插入数据时,如语句插入数据时,如果某个列的值没有明确提供,则果某个列的值没有明确提供,则将定义的缺省值插入到该列中将定义的缺省值插入到该列中CHECK(检查检查)指定某一个列中的可保存值的范围指定某一个列中的可保存值的范围实体完整性实体完整性PRIMARY KEY(主键主键)每一行的惟一标识符,确保用户不能每一行的惟一标识符,确保用户不能输入冗余值和确保创建索引,提输入冗余值和确

33、保创建索引,提高性能,不允许空值高性能,不允许空值UNIQUE(惟一性惟一性)防止出现冗余值,并且确保创建索引,防止出现冗余值,并且确保创建索引,提高性能。允许空值提高性能。允许空值参考完整性参考完整性FOREIGN KEY(外键外键)定义一列或者几列,其值与本表或者定义一列或者几列,其值与本表或者另外一个表的主键值匹配另外一个表的主键值匹配其他教材对完整性的定义其他教材对完整性的定义 关系操作的基础是关系代数,关系代数是一种抽象的关系操作的基础是关系代数,关系代数是一种抽象的查询语言,这些抽象的语言与具体的查询语言,这些抽象的语言与具体的DBMSDBMS中的实现语言并中的实现语言并不完全一致

34、。不完全一致。 关系操作的特点是关系操作的特点是集合操作集合操作,即操作的对象和结果都是,即操作的对象和结果都是集合,这种操作称为一次一个集合的方式。集合,这种操作称为一次一个集合的方式。 关系操作有选择操作、投影、连接、除、并、交、差、关系操作有选择操作、投影、连接、除、并、交、差、等等查询操作查询操作和增加、删除、修改等和增加、删除、修改等更新操作更新操作两大部分。两大部分。 SQLSQL(Structured Query LanguageStructured Query Language)语言是关系数据库的标)语言是关系数据库的标准语言,它提供了数据定义、数据查询和访问控制功能。准语言,

35、它提供了数据定义、数据查询和访问控制功能。 (1 1)SQLSQL的数据定义功能的数据定义功能:可以用于定义和修改模式(如基:可以用于定义和修改模式(如基本表)、定义外模式(如视图)和内模式(如索引)。本表)、定义外模式(如视图)和内模式(如索引)。 SQLSQL定义基本表的语句有:定义基本表的语句有: CREATE TABLE CREATE TABLE创建表创建表 DROP TABLE DROP TABLE 删除表删除表 ALTER TABLE ALTER TABLE 修改表修改表 SQL定义视图的语句有:定义视图的语句有: CREATE VIEW 创建视图创建视图 DROP VIEW 删除

36、视图删除视图SQL定义索引的语句有:定义索引的语句有: CREATE INDEX 创建索引创建索引 DROP INDEX 删除索引删除索引(2)SQL的数据查询功能的数据查询功能:SQL的数据查询功能非常强大,它主的数据查询功能非常强大,它主要是通过要是通过SELECT语句来实现的。语句来实现的。SQL可以实现简单查询、连可以实现简单查询、连接查询和嵌套查询等。接查询和嵌套查询等。(3)SQL的数据更新功能的数据更新功能:主要包括:主要包括INSERT、DELETE、UPDATE三个语句。三个语句。(4)SQL的访问控制功能的访问控制功能:指控制用户对数据的存取权力。某个:指控制用户对数据的存

37、取权力。某个用户对数据库的操作是由数据库管理员来决定和分配的,数据用户对数据库的操作是由数据库管理员来决定和分配的,数据库访问控制功能保证这些安全策略的正确执行。库访问控制功能保证这些安全策略的正确执行。SQL通过授权通过授权语句语句GRANT和回收语句和回收语句REVOKE来实现访问控制功能。来实现访问控制功能。(5)SQL嵌入式使用方式嵌入式使用方式:SQL具有两种使用方式,既可以作为具有两种使用方式,既可以作为独立的语言在终端交互方式下使用,又可以将独立的语言在终端交互方式下使用,又可以将SQL语句嵌入某语句嵌入某种高级语言(如种高级语言(如C、C+、Java等等 )之中使用。嵌入)之中

38、使用。嵌入SQL的高的高级语言称为主语言或宿主语言。级语言称为主语言或宿主语言。 前面已经讨论了数据库系统的一些基本概念、关前面已经讨论了数据库系统的一些基本概念、关系模型的三个部分以及关系数据库的标准语言。那么,系模型的三个部分以及关系数据库的标准语言。那么,针对一个具体的数据库应用问题,应该构造几个关系模针对一个具体的数据库应用问题,应该构造几个关系模式?每个关系由哪些属性组成?即如何构造适合于它的式?每个关系由哪些属性组成?即如何构造适合于它的数据模式,这是关系数据库逻辑设计的问题。为了解决数据模式,这是关系数据库逻辑设计的问题。为了解决上述问题并使数据库设计走向规范,上述问题并使数据库

39、设计走向规范,1971年年E.F.Codd提出了规范化理论。关系数据理论就是指导产生一个具提出了规范化理论。关系数据理论就是指导产生一个具体确定的、好的数据库模式的理论体系。体确定的、好的数据库模式的理论体系。 首先来看不规范设计的关系模式所存在的问题。例如,给首先来看不规范设计的关系模式所存在的问题。例如,给出如下一组关系实例:出如下一组关系实例: 学生关系:学生(学号,姓名,性别,出生日期,入学时学生关系:学生(学号,姓名,性别,出生日期,入学时间,系部代码)。间,系部代码)。 课程关系:课程(课程号,课程名,学时数,学分)。课程关系:课程(课程号,课程名,学时数,学分)。 选课关系:选课

40、(学号,课程号,成绩)。选课关系:选课(学号,课程号,成绩)。 现构造以下两种数据模式:现构造以下两种数据模式: (1 1)只有一个关系模式:)只有一个关系模式:学生学生- -选课选课- -课程课程(学号,姓名,(学号,姓名,性别,出生日期,入学时间,系部代码,课程号,课程名,学性别,出生日期,入学时间,系部代码,课程号,课程名,学时数,学分,成绩)。时数,学分,成绩)。 (2 2)有三个关系模式:)有三个关系模式:学生,课程,选课学生,课程,选课。比较这两种设计方案比较这两种设计方案 第一种设计可能有下述问题:第一种设计可能有下述问题: 数据冗余:数据冗余:如果学生选修多门课程时,则每选一门

41、课程就必须存储一次如果学生选修多门课程时,则每选一门课程就必须存储一次学生信息的细节,当一门课程被多个同学选修时,也必须多次存储课程的学生信息的细节,当一门课程被多个同学选修时,也必须多次存储课程的细节,这样就有很多数据冗余。细节,这样就有很多数据冗余。 修改复杂:修改复杂:由于数据冗余,当修改某些数据项(如姓名)时,可能有一由于数据冗余,当修改某些数据项(如姓名)时,可能有一部分有关元组被修改,而另一部分元组却没有被修改。部分有关元组被修改,而另一部分元组却没有被修改。 插入异常:插入异常:当需要增加一门新课程,而这门课程还没有被学生选修时,当需要增加一门新课程,而这门课程还没有被学生选修时

42、,则该课程不能进入数据库中。因为在学生则该课程不能进入数据库中。因为在学生选课选课课程关系模式中,课程关系模式中,(学号,课程号)是主码,此时学号为空,数据库系统会根据实体完整性(学号,课程号)是主码,此时学号为空,数据库系统会根据实体完整性约束规则拒绝插入该元组。约束规则拒绝插入该元组。 删除异常:删除异常:如果某个学生的选课记录都被删除了,那么,此学生的基本如果某个学生的选课记录都被删除了,那么,此学生的基本信息也一起被删除了,这样就无法找到这个学生的信息。信息也一起被删除了,这样就无法找到这个学生的信息。 第二种方案不存在上述问题。第二种方案不存在上述问题。消除了数据冗余,也消除了插消除

43、了数据冗余,也消除了插入、删除、修改异常。即使学生没有选修任何课程,学生的基入、删除、修改异常。即使学生没有选修任何课程,学生的基本信息也仍然保存在学生关系中;即使课程没有被任何学生选本信息也仍然保存在学生关系中;即使课程没有被任何学生选修,课程的基本信息也仍然保存在课程关系中。解决了冗余及修,课程的基本信息也仍然保存在课程关系中。解决了冗余及操作异常问题,但又出现了另外一些问题,如果要查找选修操作异常问题,但又出现了另外一些问题,如果要查找选修“高高等数学等数学”课程的学生姓名,课程的学生姓名,则需要进行三个关系的连接操作,则需要进行三个关系的连接操作,这这样代价很高。样代价很高。相比之下,

44、学生相比之下,学生-选课选课-课程关系直接投影、选择课程关系直接投影、选择就可以完成,代价较低。就可以完成,代价较低。 如何找到一个好的数据库模式?如何判断是否消除了上述问如何找到一个好的数据库模式?如何判断是否消除了上述问题?题?这就是关系数据理论研究的问题。关系数据理论主要包括这就是关系数据理论研究的问题。关系数据理论主要包括三方面的内容:数据依赖、范式、模式设计方法。其中,三方面的内容:数据依赖、范式、模式设计方法。其中,数据数据依赖依赖起核心作用。起核心作用。 随着时间、地点的不断变化,现实世界也发生变化。因而,随着时间、地点的不断变化,现实世界也发生变化。因而,从现实世界经过抽象得到

45、的关系模式的关系也会有所变化。但从现实世界经过抽象得到的关系模式的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式可能的关系必须是,现实世界的许多已有事实限定了关系模式可能的关系必须满足一定的完整性约束条件。这些约束条件通过对属性取值范满足一定的完整性约束条件。这些约束条件通过对属性取值范围的限定反映出来,例如,学生出生日期为围的限定反映出来,例如,学生出生日期为1985年而入学时间年而入学时间也为也为1985年,这显然是不合理的。年,这显然是不合理的。这些约束条件通过对属性值这些约束条件通过对属性值之间的相互关联反映出来,这类限制统称为之间的相互关联反映出来,这类限制统称为数据依

46、赖数据依赖,而其中,而其中最重要的是最重要的是函数依赖(函数依赖(FD)和和多值依赖(多值依赖(MVD),它是数据它是数据模式设计的关键。关系模式应当刻画出这些完整性约束条件。模式设计的关键。关系模式应当刻画出这些完整性约束条件。 (1)函数依赖。函数依赖。函数依赖普遍存在于现实生活中,比如描述一个学生的函数依赖普遍存在于现实生活中,比如描述一个学生的关系,关系,学生(学号,姓名,性别,出生日期,入学时间,系名),学生(学号,姓名,性别,出生日期,入学时间,系名),由于一由于一个学号只对应一个学生,一个学生只在一个系学习,因而,个学号只对应一个学生,一个学生只在一个系学习,因而,当学号值确定当

47、学号值确定之后,姓名和该学生所在的系名的值也就唯一确定了之后,姓名和该学生所在的系名的值也就唯一确定了,这样就称,这样就称“学号学号”函函数决定数决定“姓名姓名”和和“系名系名”,或者说,或者说“姓名姓名”和和“系名系名”函数依赖于函数依赖于“学学号号”,记为:记为:学号学号姓名,学号姓名,学号系名系名。 函数依赖的定义函数依赖的定义:设:设R(U)是属性集是属性集U上的关系模式,上的关系模式,X与与Y是是U的子的子集,若对于集,若对于R(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元组在中不可能存在两个元组在X上上的属性值相等,而在的属性值相等,而在Y上的属性值不等(即

48、上的属性值不等(即若它们在若它们在X上的属性值相等,在上的属性值相等,在Y上的属性值也一定相等上的属性值也一定相等),则称),则称“X函数决定函数决定Y”或或“Y函数依赖于函数依赖于X”,记记为为XY,并称,并称X为决定因素为决定因素。 例如,姓名例如,姓名年龄这个函数依赖只有在没有同名人的条件下成立。如年龄这个函数依赖只有在没有同名人的条件下成立。如果允许有相同名字,则年龄就不再函数依赖于姓名了。果允许有相同名字,则年龄就不再函数依赖于姓名了。 函数依赖和其他数据依赖一样,是语义范畴的概念,只能根据语义来函数依赖和其他数据依赖一样,是语义范畴的概念,只能根据语义来确定一个函数依赖,而不能试图

49、用数学来证明。确定一个函数依赖,而不能试图用数学来证明。其他教材对函数依赖的定义其他教材对函数依赖的定义 设有关系模式设有关系模式R(AR(A1 1,A,A2 2, ,A,An n) )和属性集和属性集U=AU=A1 1,A,A2 2, ,A,An n 的子集的子集X X、Y Y。如果对于具体关系。如果对于具体关系r r的任何两个元组的任何两个元组u u和和v v,只要,只要uXuX=vXvX ,就有,就有uYuY=vYvY ,则称,则称X X函数地决定函数地决定Y Y,或,或Y Y函数依赖函数依赖X X,记为记为X XY Y。例例:R(R(教员教员,住址,住址,课程号课程号,课程名,课程名)

50、 )教员教员住址住址uvXY举例举例1教员教员 课程名课程名uvXY 举例举例2(2)函数依赖的分类函数依赖的分类。关系数据库中函数依赖主要有如下几种:。关系数据库中函数依赖主要有如下几种: 平凡函数依赖和非平凡函数依赖:平凡函数依赖和非平凡函数依赖:设有关系模式设有关系模式R(U),XY是是R的一个函数依赖,但的一个函数依赖,但Y是是X的子集的子集,则称,则称XY是一个是一个平凡平凡函数依赖。若函数依赖。若XY,但,但Y不是不是X的子集的子集,则称,则称XY是是非平凡非平凡函数依赖。若不特别声明,本书都是讨论非平凡函数依赖。函数依赖。若不特别声明,本书都是讨论非平凡函数依赖。 完全函数依赖和

51、部分函数依赖:完全函数依赖和部分函数依赖:设有关系模式设有关系模式R(U),如果,如果XY,且,且对于对于X的任何真子集的任何真子集X,都有,都有XY不成立不成立,则称,则称XY是一个是一个完全完全函数依赖。反之,如果函数依赖。反之,如果存在存在XY成立成立,则称,则称XY是一个是一个部分部分函数依赖。函数依赖。 传递函数依赖:传递函数依赖:设有关系模式设有关系模式R(U),对于,对于X,Y,Z,如果,如果XY,且,且Y不是不是X的子集,的子集,YZ,且,且Y不函数决定不函数决定X,则,则Z传递传递函数依赖于函数依赖于X。n若有若有XY,且,且 ,称,称XY为为非平凡非平凡FD n若有若有XY

52、,且,且Y X,称,称XY为为平凡平凡FDYX50 设有关系模式设有关系模式R(AR(A1 1,A,A2 2, ,A,An n) )和属性集和属性集U=U= A A1 1,A,A2 2, ,A,An n 的子集的子集X X、Y Y。如果。如果X XY Y,并且对,并且对 于于X X的任何真子集的任何真子集XX,都有,都有XXY Y不成立,则称不成立,则称Y Y 完全依赖完全依赖于于X X,记为,记为X YX Y。 f完全依赖完全依赖51 设有关系模式设有关系模式R(AR(A1 1,A,A2 2, ,A,An n) )和属性集和属性集U= U= A A1 1,A,A2 2, ,A,An n 的子

53、集的子集X X、Y Y。如果。如果X XY Y,但,但Y Y不不 完全依赖于完全依赖于X X,则称,则称Y Y部分依赖部分依赖于于X X,记为,记为X YX Y。p存在存在X X的真子集的真子集XX,有,有XXY Y部分依赖部分依赖52 设有关系模式设有关系模式R(AR(A1 1,A,A2 2, ,A,An n) )和属性集和属性集U=AU=A1 1,A,A2 2, ,A,An n 的子集的子集X X、Y Y、Z Z。如果有。如果有X XY Y、Y YZ Z、 Z-Z-YY,Z-Z-XX和和Y XY X,则称,则称Z Z传递传递依赖于依赖于X X,记为,记为X ZX Z。 t传递依赖传递依赖

54、在介绍了关系数据理论的一些基本概念之后,下面将讨论如何根据属性在介绍了关系数据理论的一些基本概念之后,下面将讨论如何根据属性间依赖情况来判定关系是否具有某些不合适的性质。按间依赖情况来判定关系是否具有某些不合适的性质。按属性间的依赖情况属性间的依赖情况来来区分关系规范化的程度为区分关系规范化的程度为第一范式、第二范式、第三范式和第四范式第一范式、第二范式、第三范式和第四范式等,以等,以及如何及如何将具有不合适性质的关系转换为更合适的关系将具有不合适性质的关系转换为更合适的关系。衡量关系模式好坏衡量关系模式好坏的的标准就是关系模式的范式(标准就是关系模式的范式(Normal Forms,简记为,

55、简记为NF)。)。 关系数据库中的关系要满足一定的要求,满足不同程度要求的是不同范关系数据库中的关系要满足一定的要求,满足不同程度要求的是不同范式,式,满足最低要求的叫第一范式,简称满足最低要求的叫第一范式,简称1NF,在第一范式中进一步满足一些,在第一范式中进一步满足一些要求的为第二范式,其余范式依此类推。要求的为第二范式,其余范式依此类推。 不是不是1NF的关系都是非规范化关系,满足的关系都是非规范化关系,满足1NF的关系称为规范化的关系。的关系称为规范化的关系。数据库理论研究的关系都是规范化的关系。数据库理论研究的关系都是规范化的关系。1NF是关系数据库的关系模式应是关系数据库的关系模式

56、应满足的最起码的条件。满足的最起码的条件。(1)第一范式:)第一范式:如果关系模式如果关系模式R的的每一个属性都是不可分解的每一个属性都是不可分解的,则则R为第一范式的模式,记为:为第一范式的模式,记为:R1NF。(2)第二范式:)第二范式:如果关系模式如果关系模式R是第一范式,且每个非主属性是第一范式,且每个非主属性都完全函数依赖于主码,则称都完全函数依赖于主码,则称R为满足第二范式的模式,记为满足第二范式的模式,记为:为:R2NF。 例:例:有关系:有关系:选课选课1(学号学号,课程号课程号,系部代码系部代码,出生日期出生日期,成绩成绩) 存在非主属性(存在非主属性(系部代码系部代码,出生

57、日期出生日期)对主关键字()对主关键字(学号学号)的)的部部分函数依赖分函数依赖。 解决的方法是将解决的方法是将“选课选课1”关系投影分解为以下两个关系模式:关系投影分解为以下两个关系模式: 选课(选课(学号学号,课程号课程号, 成绩)成绩) 学生(学生(学号学号,姓名姓名,性别性别,出生日期出生日期,系部代码系部代码,入学时间)入学时间) S#C#GRADETNAMETADDR200401001C40100190徐徐 浩浩a1200401001C40200290李阳洋李阳洋b1200401001C40300185宋宋 歌歌c1200401002C40100175徐徐 浩浩a120040100

58、2C40200288李阳洋李阳洋b1200401003C40200269李阳洋李阳洋b1200402001C40100487徐徐 浩浩a1例例:R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR), F=C# F=C#TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMETADDR TADDR 三、第二范式(三、第二范式(2NF)(续)(续3)例例:R R1 1(S#,C#,GRADES#,C#,GRADE),F,F1 1=(S#,C#)=(S#,C#)GRADEGRADE R R2 2(C#,

59、TNAME,TADDRC#,TNAME,TADDR), , F F2 2=C#=C#TNAME,TNAMETNAME,TNAMETADDRTADDRC#TNAMETADDRC401001徐徐 浩浩a1C402002李阳洋李阳洋b1C403001宋宋 歌歌c1C401004徐徐 浩浩a1S#C#GRADE200401001C40100190200401001C40200290200401001C40300185200401002C40100175200401002C40200288200401003C40200269200402001C40100487三、第二范式(三、第二范式(2NF)(续)(

60、续4)r2r1(3)第三范式:)第三范式:如果关系模式如果关系模式R是第二范式,且没有一个是第二范式,且没有一个非主属性是传递函数依赖于候选码属性,则称非主属性是传递函数依赖于候选码属性,则称R为满足第三范为满足第三范式的模式,记为:式的模式,记为:R3NF。例:例:有关系:有关系:学生学生2 2(学号学号,姓名,性别,出生日期,姓名,性别,出生日期,系名系名,入学时间,入学时间,系宿舍楼系宿舍楼),“学生学生2”2”关系不满足第三范式,因关系不满足第三范式,因为为“系宿舍楼系宿舍楼”属性依赖于主关键字属性依赖于主关键字“学号学号”,但也可以从,但也可以从非关键字属性非关键字属性“系名系名”导

温馨提示

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

评论

0/150

提交评论