资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,数 据 库 原 理 及,应 用,(,SQL Server 2005,),:,2025年3月2日,第,1,章数据库概述,第,1,章数据库概述,任务目标:,熟悉数据管理技术的基本概念;,掌握数据库系统的构成、体系结构;,掌握数据模型的三要素、分类;,理解概念模型及其表示方法。,第,1,章数据库概述,1.1,数据管理技术基本概念,1.2,数据库系统,1.3,数据模型,习题,1.1,数据管理技术的基本概念,1.1.1,信息与数据,姓名:张三,年龄:,17,性别:男,身高:,1.67 m,体重:,50 kg,客观事物,数据表达,数据表达,信息(,Information,),1.1,基本概念,1.1.1,信息与数据,数据(,Data,):,是对客观事物及其活动的抽象符号表示;,存储在某一种媒体上可以鉴别的符号资料;,表示形式多样,可以是数据、文本、图形、声音等。,信息(,Information,),是经过,加工处理,后具有一定含义的数据集合;,以某种特定数据形式表现。,数据处理(,Data Processing,),将数据转换成信息的过程称为数据处理;,对数据进行收集、储存、分类、加工等活动;,目的:从数据出发,推导、抽取有价值的信息。,1.1,基本概念,数据管理是指对数据进行收集、分类、组织、编码、存储、检索和维护等,数据管理技术的发展经历了人工管理、文件系统和数据库系统,3,个阶段,目前正在向着网络化、智能化和集成化的方向发展。,数据管理技术发展三阶段,:,1,人工管理阶段,2,文件系统阶段,3,数据库系统阶段,1.1.2,数据管理技术的发展,1.1,基本概念,数据库系统阶段特点如下:,数据管理者:数据库管理系统。,数据面向的对象:整个应用系统。,数据的共享程度:共享性良好,冗余度小。,数据的独立性:独立性良好,具备高度的逻辑独立性和物理独立性。,数据的结构化:单条记录内部有结构,并使用数据模型描述,整体上有结构。,数据控制能力:由数据库管理系统提供数据安全性、完整性等数据控制。,1.1.2,数据管理技术的发展,1.2,数据库系统,数据库系统(,DataBase,System,DBS,)是指引进了数据库技术后的计算机系统,它能够有组织地、动态地存储大量数据,提供数据处理和数据共享机制。,数据库系统是一个复杂的系统,一般情况下由硬件系统、软件系统、数据库和用户组成。,1.1.2,数据库系统构成,1.2,数据库系统,数据库系统的基本组成主要有以下几项:,(,1,)系统硬件(,HW,,,Hard Ware,),(,2,)操作系统(,OS,Operating,System,),(,3,)数据库,(,DB,DateBase,),(,4,)数据库管理系统,(,DBMS,DateBase,Management System),(,5,)数据库应用系统开发软件,(,DT,Development,Tools),(,6,)数据库应用系统,(,DBAS,DateBase,Application System),(,7,)用户,(User),1.1.2,数据管理技术的发展,1.2,数据库系统,数据库管理系统(,DataBase,Management,System,DBMS,)是处理数据访问的软件系统,是位于用户与操作系统之间的一层对数据库进行管理的软件。数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制。,数据库管理系统的功能主要包括:,数据定义:数据库提供数据定义语言(,DDL,,,Date Definition Language,)对数据库进行定义。,数据操纵:数据库提供数据操作语言(,DML,Date,Manipulation,Lauguage,)对数据进行具体操作。,数据库的运行管理:数据库提供数据控制语言(,DCL,Date,Control Language,)对数据进行完整性控制、安全性控制、数据库恢复、数据库维护和数据库的并发控制等。,数据字典:数据库的逻辑结构、物理存储结构和完整性约束均保存在数据字典(,DD,,,Date Dictionary,)中。,数据通信接口:数据库管理系统需要提供与其他软件系统进行通信的功能。例如提供与其他数据库管理系统的接口,从而能够将数据转换为另一个数据库管理系统能够接受的格式,或者接收其他数据库管理系统的数据。,常见的数据库管理系统有,Qracle,、,SQL Server,、,Sybase,、,MYSQL,、,DB2,、,Access,等。,1.1.2,数据管理技术的发展,1.2,数据库系统,根据数据库从建设到运行的整个过程中不同岗位的工作性质,可以将其用户分为两个大类:开发类用户和应用类用户。,1.1.2,数据管理技术的发展,数据库分析员,开发类用户,应用程序员,数据库管理员,终端用户,应用类用户,数据库用户分类,1.2,数据库系统,1,单机数据库系统,整个数据库系统,包括应用程序、数据库管理系统、数据信息,都安装在一台计算机上,这类系统系统结构简捷,系统运行速度快,但不同机器之间不能进行数据共享,安全性较差,只适用于小型用户使用。,2,主从结构的数据库系统,1.2.2,数据库系统体系结构,应用终端,(应用程序),主 机,(,DBMS,、,DB,),发送请求,响应请求,主从结构的数据库系统,1.2,数据库系统,3,分布式结构的数据库系统,数据库中的数据在逻辑上是一个整体,但物理地分布在整个数据库系统网络下的不同结点上。网络中的每个结点都可以独立处理本地数据库中的数据;同时也可以同时存取和处理网络上的多个异地数据库中的数据,执行全网的数据库应用。,4,客户服务器(,C/S,,,Client/Server,)结构的数据库系统,该结构下的数据库系统显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力。,C/S,结构分为二层,C/S,体系结构和三层,C/S,体系结构。,SQL Server 2005,是可用于,C/S,模式的数据库管理系统。,5,浏览器,/,服务器(,B/,S,Browser,/Server,)结构的数据库系统,1.2.2,数据库系统体系结构,1.2,数据库系统,1.2.2,数据库系统体系结构,数据库应用端,计算机操作系统,客户端,1,计算机硬件,数据库应用端,计算机操作系统,客户端,n,计算机硬件,数据库管理系统,计算机操作系统,计算机硬件,数据库,服务器端,请求,响应,响应,二层,C/S,结构,1.2,数据库系统,1.2.2,数据库系统体系结构,应用程序界面,计算机操作系统,客户端,1,计算机硬件,应用程序界面,计算机操作系统,客户端,n,计算机硬件,数据库应用程序,数据库,服务器,数据库管理系统,计算机操作系统,计算机硬件,数据库,服务器端,请求,响应,响应,请求,响应,三层,C/S,结构,1.2,数据库系统,1.2.2,数据库系统体系结构,三层,B/S,结构,浏览器,计算机操作系统,客户端,1,计算机硬件,浏览器,计算机操作系统,客户端,n,计算机硬件,数据库应用程序,浏览器,服务器,数据库管理系统,计算机操作系统,计算机硬件,数据库,服务器端,请求,响应,响应,请求,响应,1.2,数据库系统,数据库管理系统将数据库建立为三级模式结构和二级存储映象,这便是数据库的体系结构。,1.2.3,数据库的体系结构,外部应用,1,外部应用,2,外部应用,3,外部应用,n,外模式,1,外模式,2,外模式,n,模式,内模式,数据库,模式,/,外模式映象,模式,/,内模式映象,三级模式结构和二级存储映象,1.3,数据模型,数据模型(,Data Model,)是对数据特征的抽象,是严格定义的概念集合。数据模型包括数据库数据的结构部分、数据库数据的操作部分和数据库数据的约束条件。即数据模型所描述的三个部分:,(,1,)数据结构,(,2,)数据操作,基本的数据操作包括两大类:,检索:数据查询,更新:数据的插入、删除和更新等操作,(,3,)数据的完整性约束,1.3.1,数据模型的三要素,1.3,数据模型,在实际数据库应用中,为了更为便捷、准确的描述现实世界中的数据,通常依据不同的应用环境,采用不同的数据模型。,数据模型按不同的应用层次分成三种类型,:,(,1,),概念数据模型,(,2,)逻辑数据模型,(,3,)物理数据模型,如果要将现实世界中的具体事物抽象和表示为根据某具体应用环境的、某种数据库管理系统支持的数据模型,那么通常需要首先把现实世界转换为信息世界(概念模型),再由信息世界转换成数据库管理系统支持的逻辑模型。,1.3.2,数据模型分类及关系,1.3,数据模型,数据模型(,Data Model,)是对数据特征的抽象,是严格定义的概念集合。数据模型包括数据库数据的结构部分、数据库数据的操作部分和数据库数据的约束条件。即数据模型所描述的三个部分:,(,1,)数据结构,(,2,)数据操作,基本的数据操作包括两大类:,检索:数据查询,更新:数据的插入、删除和更新等操作,(,3,)数据的完整性约束,1.3.2,数据模型分类及关系,1.3,数据模型,1.3.2,数据模型分类及关系,机器世界,关系数,据模型,信息世界,实体及,其联系,现实世界,客观事物,及其联系,存 在,概念模型,逻辑模型,三个世界模型关系,1.3,数据模型,概念模型是对信息世界的建模,是对真实世界中问题域内的事物的描述,它不依赖于某一个具体数据库管理系统支持的数据模型,但概念模型可以转换为计算机上某数据库管理系统支持的特定数据模型。,概念模型具备以下特点:,能够方便、直接地表达应用中的各种语义知识。,简单、清晰、易于理解,是用户与数据库设计人员之间进行交流的媒介。,1.3.3,概念模型及其表示方法,1.3,数据模型,1,基本概念,(1),实体(,Entity,),客观存在并可相互区别的事物和活动的抽象称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。,例如:一个员工。,(2),属性(,Attribute,),实体和联系所具有的特性称为属性。一个实体可以由若干个属性来描述。,例如:员工编号、员工姓名、员工性别、员工年龄。,(3),主码(,Key,),能唯一标识实体的属性或属性集称为码。,例如:实体员工中的员工编号。,(4),域(,Domain,),属性的取值范围称为该属性的域。,例如:可以为员工编号设置一定的取值范围。,1.3.3,概念模型及其表示方法,1.3,数据模型,(5),实体型(,Entity Type,),用实体名及描述它的各属性名,可以刻画出全部同质实体的共同特征和性质,它被称为实体型。,(6),实体集(,Entity Set,),同型实体的集合称为实体集。,(7),联系(,Relationship,),实体集间或一个实体集内的各实体之间存在的关系,现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。,联系有以下三种:,一对一联系(,1:1,),一对多联系(,1:n,),多对多联系(,m:n,),1.3.3,概念模型及其表示方法,1.3,数据模型,2,概念模型表示方法,联系方法(,Entity-Relationship Approach,),用这个方法描述的概念模型称为实体联系模型,简称,ER,模型。,ER,模型(,Entity-Relationship Model,)用,E-R,图来描述现实世界的概念模型,它是一个面向问题的概念模型。,E-R,图的描述方式很接近人的思维方式,描述过程不设计数据在数据库中的表示和存取,便于用户与系统开发人员之间的交流。,在,ER,模型中,信息由实体型、实体属性和实体间的联系三种概念单元来表示。,1.3.3,概念模型及其表示方法,1.3,数据模型,实体型:用矩形表示,矩形框内写明实体名。,属性:是实体的说明,用椭圆形表示,并用无向边将其与相应的实体连接起来。,如图所示,学生实体具备学号、姓名、性别等属性。,1.3.3,概念模型及其表示方法,学 生,学 号,姓 名,性 别,学生实体属性,1.3,数据模型,联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(,1:1,、,1:n,或,m:n,)。,1.3.3,概念模型及其表示方法,课 程,课程号,课程名,课程类型,学 生,学 号,姓 名,性 别,选修,n,m,课程与学生的联系,1.3,数据模型,联系本身也是一种实体型,可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。学生与课程具有联系选课,课程被学生选修后,学生需获得对应课程的成绩。因此,选修联系具有属性“成绩”。,1.3.3,概念模型及其表示方法,课 程,课程号,课程名,课程类型,学 生,学 号,姓 名,性别,选修,n,m,成 绩,联系“选修”的属性“成绩”,第,1,章数据库概述,本章小结:,数据与信息;,数据库系统与数据库管理系统;,数据模型及其分类;,概念模型及,E-R,图的画法。,Thank You!,数 据 库 原 理 及,应 用,(,SQL Server 2005,),:,2025年3月2日,第,2,章关系数据库基础,第,2,章关系数据库基础,任务目标:,了解数据模型的分类,掌握关系模型的组成及相关概念;,了解关系代数的基础知识,能运用关系代数进行传统的集合运算和专门的集合运算;,掌握关系完整性的相关知识,能够对关系进行实体完整性、参照完整性和用户定义完整性约束;,掌握关系规范化理论,能够使用,1NF,、,2NF,和,3NF,对关系进行规范化。,第,2,章关系数据库基础,2.1,关系模型的基本概念,2.2,关系数据的基本运算,2.3,关系的完整性,2.4,关系规范化理论,习题,2.1,关系模型的基本概念,2.1.1,关系模型,在数据库中,有些数据实体之间存在着某种联系,用来描述这些数据实体间关联形式的模型叫做数据模型。,在数据库技术领域中,较为经典的数据模型有三种,分别是:,层次模型;,网状模型;,关系模型,采用二维表结构描述数据实体间的关联,以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。,2.1,关系模型的基本概念,2.1.1,关系模型,关系模型和层次、网状模型相比,有以下特点:,1,)数据结构简单(二维表),2,)扎实的理论基础,3,)关系运算,4,)关系模式的数据独立性强,关系模型由三部分组成:,关系数据结构;,关系数据操作;,关系数据完整性约束。,2.1,关系模型的基本概念,2.1.2,关系基本概念,在关系和关系数据库的学习中,需要先学习以下术语和相关概念。,1.,域,域是一组具有相同数据类型的值的集合。,2.,元组,关系中的每个元素是关系中的元组,可以用来表示一个实体。,3.,关系,关系是一个规范化的二维表,表的每一行对应一个元组,表的每一列对应一个域,由于域可以相同,为了加以区分表中的列,必须对每列起一个名字,称为属性。,2.1,关系模型的基本概念,基本的关系满足以下特性:,关系(二维表)中的每一行对应一个元组,即一个实体;表的每一列对应某个实体,的一个属性。,关系中的元组(实体)不能完全相同。,关系中的属性名称不能重复。,关系中的元组次序和属性次序可以互换。,关系中的每个属性都是不可再分解的数据项。,关系的属性中必须有一个是关键字,用来唯一标识一个实体。,2.1.2,关系基本概念,2.1,关系模型的基本概念,例:学生选课系统中,其概念模型中有学生实体、课程实体以及选课联系。,学号(,studentID,),姓,(,studentName,),性别(,Sex,),20100101,张小丽,女,20100102,王刚,男,20100103,李平,女,20100104,郭鹏,男,20100105,刘翔,男,20100106,吴飞,男,20100107,张国强,男,20100108,李国庆,男,2.1.2,关系基本概念,课程号(,courseID,),课程名,(,coursename,),课程类别(,typename,),342101,计算机基础,专业课,342102,数据库应用,专业课,342103,C,语言程序设计,专业课,342104,大学英语,基础课,342105,高等数学,基础课,学号(,studentID,),课程号(,courseID,),成绩(,Grade,),20100102,342103,86,20100101,342101,79,20100105,342102,81,20100107,342104,90,20100108,342101,92,20100102,342104,75,20100107,342105,80,20100106,342101,70,关系选课,关系课程,关系学生,2.1,关系模型的基本概念,4.,属性,描述实体或者联系的特性的列名称为属性,属性分为主属性和非主属性。,主属性:主码的各个属性。,非主属性:除了主属性之外的属性。,例如,关系,Student,中的,studentID,、,studentName,、,Sex,是关系,Student,的属性。在关系,Student,的各属性中,主属性有,studentID,,非主属性有,studentName,和,Sex,。,关系,Course,中的,courseID,、,coursename,、,typename,是关系,Course,的属性。在关系,Course,的各属性中,主属性有,courseID,,非主属性有,coursename,和,typename,。,2.1.2,关系基本概念,2.1,关系模型的基本概念,5.,属性值,描述实体或者联系的具体数据称为属性值。属性值的取值范围是域。,例如,关系,Student,中的,20100101,,,20100105,,张小丽,张国强,女,男等都是关系,Student,的属性值。,关系,Course,中的,342101,,,342103,,,C,语言程序设计,数据库应用,专业课,基础课等都是关系,Course,的属性值。,关系,Student_Course,中的,20100102,,,20100108,,,342104,,,342101,,,70,,,81,等都是关系,Student_Course,的属性值。,2.1.2,关系基本概念,2.1,关系模型的基本概念,6.,关系型,关系表的所有列标题,即所有属性名。,例如,关系,Student,的关系型可表示成为:,(,studentID,,,studentName,,,Sex,),关系,Course,的关系型可表示成为:,(,courseID,,,coursename,,,typename,),关系,Student_Course,的关系型可表示成为:,(,studentID,,,courseID,,,Grade,),2.1.2,关系基本概念,2.1,关系模型的基本概念,7.,关键字,关系中用来唯一标识一个实体的某个属性或属性组。每个关系只能有一个关键字,又被称为主码或主键。,例如,关系,Student,中的关键字是,studentID,属性。关系,Course,中的关键字是,courseID,属性。关系,Student_Course,中的关键字是,studentID,和,courseID,属性组,原理与关系,Student_Course,主属性的选取一样。,2.1.2,关系基本概念,2.1,关系模型的基本概念,8.,外关键字,关系中用的某个属性或属性组不是本关系的关键字,而是另一个关系的关键字,又被称为外码或外键。,例如,关系,Student_Course,中的,studentID,属性和,courseID,属性都是外关键字。在关系,Student,和关系,Student_Course,中没有外关键字。,9.,候选码,候选码是指可以作为关键字的属性或属性组。候选码可以有多个,可从候选码中选取一个或部分作为关键字。,2.1.2,关系基本概念,2.1,关系模型的基本概念,10.,关系模式,用来描述关系的关系名称。,关系模式通常可以简记为,:,关系名,(,属性名,1,属性名,2,属性名,n),。,如,学生关系模式通常可以简记为:,Student,(,studentID,,,studentName,,,Sex,),课程关系模式通常可以简记为:,Course,(,courseID,,,coursename,,,typename,),选课关系模式通常可以简记为:,Student_Course,(,studentID,,,courseID,,,Grade,),2.1.2,关系基本概念,2.1,关系模型的基本概念,1.,关系数据库,关系数据库是指在一个给定的现实世界应用领域中,用于描述实体及实体之间联系的所有关系表的集合。,2.,关系数据库系统,采用关系数据模型构造的数据库系统,被称为关系数据库系统。关系数据库系统是目前使用最为广泛的数据库系统。,2.1.3,关系数据库,2.2,关系数据的基本运算,关系数据的运算是以关系代数为基础的。关系代数是一种抽象的查询语言,用于对关系的运算来表达各种操作,其运算对象是关系,运算结果亦为关系。,关系代数用到的运算符包括四类:,集合运算符(并、差、交、笛卡尔积);,专门的关系运算符(选择、投影、连接);,算术比较符(大于、小于、等于、大于等于、小于等于、不等于);,逻辑运算符(与、或、非)。,2.2.1,关系代数,2.2,关系数据的基本运算,比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。,2.2.1,关系代数,传统的集合运算符,运算名称,运算符号,并,差,交,笛卡儿积,专门的关系运算符,运算名称,运算符号,选择,投影,连接,专门的关系运算符,传统的集合运算符,2.2,关系数据的基本运算,传统的集合运算是二目运算。假设有两个关系,R,和,S,,,t,是元组变量,关系,R,为学习成绩优秀的学生,关系,S,为心理素质优秀的学生,分别如表,2-6,和表,2-7,所示。,学生姓名,学生性别,张小丽,女,王刚,男,李平,女,郭鹏,男,刘翔,男,吴飞,男,张国强,男,李国庆,男,2.2.2,传统的集合运算,学生姓名,学生性别,张小丽,女,王刚,男,王晓霞,女,郭鹏,男,刘翔,男,表,2-7,心理素质优秀的学生关系,S,表,2-6,学习成绩优秀的学生关系,R,2.2,关系数据的基本运算,学生姓名,学生性别,张小丽,女,王刚,男,李平,女,郭鹏,男,刘翔,男,吴飞,男,张国强,男,李国庆,男,王晓霞,女,2.2.2,传统的集合运算,1.,并运算,任务,2-1,对以上,R,和,S,两个关系进行并运算。,任务分析:按照学习成绩优秀的学生关系和心理素质优秀的学生关系,可知并运算,RS,表示学习成绩优秀或心理素质优秀的学生,可以得到,RS,的关系如下表,2-8,所示。,表,2-8,并运算后的新关系,2.2,关系数据的基本运算,2.,差运算,任务,2-2,对以上,R,和,S,两个关系进行差运算。,任务分析:按照学习成绩优秀的学生关系和心理素质优秀的学生关系,可知差运算,R-S,表示学习成绩优秀的学生但心理素质没有达到优秀的学生,可以得到,R-S,的关系如下表,2-9,所示。,2.2.2,传统的集合运算,学生姓名,学生性别,李平,女,张国强,男,李国庆,男,吴飞,男,表,2-9,差运算后的新关系,2.2,关系数据的基本运算,3.,交运算,任务,2-3,对以上,R,和,S,两关系进行交运算。,任务分析:按照学习成绩优秀的学生关系和心理素质优秀的学生关系,可知交运算,RS,表示学习成绩优秀同时心理素质也优秀的学生,可以得到,RS,的关系如下表,2-10,所示。,2.2.2,传统的集合运算,学生姓名,学生性别,张小丽,女,王刚,男,刘翔,男,郭鹏,男,表,2-10,差运算后的新关系,2.2,关系数据的基本运算,4.,笛卡儿积运算,任务,2-4,假如在学生选课系统中,学生关系,R,如表,2-11,所示,选课关系,S,如表,2-12,所示,对以上,R,和,S,两关系进行交运算。,任务分析:笛卡儿积是关系的连接,在形成的新关系中前,m,个属性来自,R,,后,n,个属性来自,S,,即新关系的属性为,m+n,;关系,R,的元组个数为,a,关系,S,的元组个数为,b,,则新关系的元组个数为,ab,。,2.2.2,传统的集合运算,2.2,关系数据的基本运算,学号,姓名,性别,20100101,张小丽,女,20100102,王刚,男,学号,课程号,成绩,20100102,342103,86,20100101,342101,79,20100105,342102,81,20100107,342104,90,2.2.2,传统的集合运算,学号,姓名,性别,学号,课程号,成绩,20100101,张小丽,女,20100102,342103,86,20100101,张小丽,女,20100101,342101,79,20100101,张小丽,女,20100105,342102,81,20100101,张小丽,女,20100107,342104,90,20100102,王刚,男,20100102,342103,86,20100102,王刚,男,20100101,342101,79,20100102,王刚,男,20100105,342102,81,20100102,王刚,男,20100107,342104,90,表,2-13,笛卡儿积,RS,表,2-11,学生关系,R,表,2-12,选课关系,S,2.2,关系数据的基本运算,1,选择运算,选择又称为限制。它是在关系,R,中选择满足给定条件的元组。,任务,2-5,使用选择运算从学生关系,R,中选择男学生,学生关系,R,如表,2-14,所示。,任务分析:运算过程中选择性别条件为“男”的元组组成新关系。进行过选择运算后的新关系如表,2-15,所示。,学号,姓名,性别,20100101,张小丽,女,20100102,王刚,男,20100103,李平,女,20100104,郭鹏,男,20100105,刘翔,男,20100106,吴飞,男,20100107,张国强,男,20100108,李国庆,男,2.2.3,专门的关系运算,学号,姓名,性别,20100102,王刚,男,20100104,郭鹏,男,20100105,刘翔,男,20100106,吴飞,男,20100107,张国强,男,20100108,李国庆,男,表,2-14,学生关系,R,表,2-15,选择运算后新关系,2.2,关系数据的基本运算,2,投影运算,关系,R,上的投影是从,R,中选择出若干属性列组成新的关系。,任务,2-6,使用投影运算从表,2-15,所示关系中运算出学生姓名和性别情况。,任务分析:运算过程中选择表,2-15,所示关系的“姓名”和“性别”情况组成新关系。进行过投影运算后的新关系如表,2-16,所示。,2.2.3,专门的关系运算,姓名,性别,王刚,男,郭鹏,男,刘翔,男,吴飞,男,张国强,男,李国庆,男,表,2-16,选择运算后的新关系,2.2,关系数据的基本运算,3,连接运算,连接也称为,连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,形成一个新的关系。,连接分为两种:,1,)等值连接;,等值连接是在关系,R,和关系,S,的连接中,比较条件,为等于,则在笛卡儿积中,按等于的比较条件进行选择。,2,)自然连接。,自然连接是一种特殊的等值连接,它要求两个关系,R,和,S,中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。此时,可以将自然连接运算过程理解为先进行等值连接,再去处重复属性列。,2.2.3,专门的关系运算,2.2,关系数据的基本运算,等值连接,任务,2-7,学生、选课和课程关系如表,2-17,、表,2-18,和表,2-19,所示,使用等值连接进行关系运算。,任务分析:以选课表中的,courseID,和,studentID,条件进行等值连接,观察等值连接的结果是具有重复属性的新关系。新关系如表,2-20,所示。,学号,姓名,性别,0101,张小丽,女,0102,王刚,男,2.2.3,专门的关系运算,学号,课程号,成绩,0101,342103,86,0101,342101,79,0102,342102,81,0102,342104,90,课程号(,courseID,),课程名(,coursename,),课程类别(,typename,),342101,计算机基础,专业课,342102,数据库应用,专业课,342103,C,语言程序设计,专业课,342104,大学英语,基础课,342105,高等数学,基础课,表,2-17,学生关系(,Student,),表,2-18,选课关系,(,Student_Course,),表,2-19,课程关系(,Course,),2.2,关系数据的基本运算,2.2.3,专门的关系运算,学号,姓名,性别,学号,课程号,成绩,课程号,课程名,课程类别,0101,张小丽,女,0101,342103,86,342103,C,语言程序设计,专业课,0101,张小丽,女,0101,342101,79,342101,计算机基础,专业课,0102,王刚,男,0102,342102,81,342102,数据库应用,专业课,0102,王刚,男,0102,342104,90,342104,大学英语,基础课,表,2-20,等值连接关系,2.2,关系数据的基本运算,2.2.3,专门的关系运算,表,2-21,自然连接关系,自然连接,自然连接是一种特殊的等值连接,它要求两个关系,R,和,S,中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。此时,可以将自然连接运算过程理解为先进行等值连接,再去处重复属性列。,任务,2-8,根据任务,2-7,的结果,进行自然连接。,任务分析:自然连接运算过程理解为先进行等值连接,再去处重复属性列。因此,可以在表,2-20,的基础上去处重复列。其结果如表,2-21,所示。,学号,姓名,性别,课程号,成绩,课程名,课程类别,0101,张小丽,女,342103,86,C,语言程序设计,专业课,0101,张小丽,女,342101,79,计算机基础,专业课,0102,王刚,男,342102,81,数据库应用,专业课,0102,王刚,男,342104,90,大学英语,基础课,2.3,关系的完整性,任意一个关系通常对应现实世界的某一个实体,如学生关系对应于学生的集合,课程关系对应课程的集合。现实世界中的实体是可区分的,即它们具有自身特定的标识。相应地,关系模型中以主码作为唯一性标识。主属性不能取空值,即不能是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与实体的定义相矛盾。,实体完整性规则:若属性,A,是基本关系,R,的主属性,则属性,A,不能取空值。,2.3.1,实体完整性,2.3,关系的完整性,任务,2-9,建立表“学生”,其中的属性“课程号”为主码,该主码唯一且不能为空。使用,T-SQL,语言定义“学生”表。,任务分析:,T-SQL,语言的相关知识将在本书第五章介绍,此处从,T-SQL,语言定义数据表的角度帮助读者理解实体完整性规则。,使用,T-SQL,语言创建某表“课程”的语句如下:,CREATE TABLE COURSE,(,courseID,char(8)NOT NULL PRIMARY KEY,coursename,varchar(20)null,typename,varchar(18)null,),从表的定义中可以看到“,courseID,char(8)NOT NULL PRIMARY KEY”,,对“课程”表的主属性“,PRIMARY KEY”,指明了“,NOT NULL”,。依据以上,T-SQL,语句进行了表的创建后,当有基于此表的数据输入、修改等操作时,数据库管理系统自动对输入和修改的数据进行检查,从而可以保障数据的有效性。,2.3.1,实体完整性,2.3,关系的完整性,实体与实体之间往往存在某种依存关系,这种依存关系叫做联系。在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用,即关系参照的完整性。,在一个关系模型中,关系,R,中的外码对应另一个关系,S,的主码(关系,R,和,S,不一定是不同的关系),关系,R,中外码的取值要参照另一个关系,S,主码的取值。此时,,R,为参照关系,,S,为被参照关系。,参照完整性规则:定义外码与主码之间的引用和参照规则,参照关系的外码取值不能超出被参照关系的主码取值。,2.3.2,参照完整性,2.3,关系的完整性,任务,2-10,新建一个关系“选课”,与任务,2-9,中关系“课程”形成参照关系和被参照关系,此时“选课”中外码,courseID,的值不能超过“课程”中,courseID,的值。使用,T-SQL,语言定义参照完整性。,任务分析:,T-SQL,语言的相关知识将在本书第五章介绍,此处从,T-SQL,语言实现参照完整性约束的角度帮助读者理解参照完整性。,使用,T-SQL,语言创建某表“选课”的语句如下:,CREATE TABLE,Student_Course,(,studentID,char(10)NOT NULL,courseID,char(8)NOT NULL,Grade,Tinyint,PRIMARY,KEY(studentID,courseID,),FROEIGN,KEY(courseID,)REFERENCES,Course(courseID,),),当对“选课”中插入数据时,数据库管理系统检查其插入的,courseID,值是否在“课程”的,courseID,属性值中,如果存在则可插入,如不存在则不能插入。,2.3.2,参照完整性,2.3,关系的完整性,2.3.3,用户定义完整性,实体完整性和参照性适用于任何关系数据库系统,而用户自定义的完整性规则是针对某一具体数据库的约束条件。,不同的关系数据库系统根据其应用环境的不同,往往需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库进行的条件约束,它反映的是具体应用所涉及的数据所须满足的要求。关系模型应能提供定义和检验这类完整性的机制,以便用统一的处理这些条件要求。因此,在实际应用中,应用程序的编程人员不需考虑这类完整性规则。,2.3,关系的完整性,任务,2-11,对关系“学生”,其中的属性“性别”的取值范围必须满足“男”或“女”,使用,T-SQL,语言定义用户完整性约束(,CHECK,约束)。,任务分析:,T-SQL,语言的相关知识将在本书第五章介绍,此处从,T-SQL,语言实现用户定义完整性约束的角度帮助读者理解用户定义完整性。,使用,T-SQL,语言创建某表“学生”的语句如下:,CREATE TABLE STUDENT,(,studentID,char(10)NOT NULL PRIMARY KEY,studentName,varchar,(10)NOT NULL,Sex char(2)NULL CHECK,(,Sex=,男,OR Sex=,女),),在对关系“学生”进行数据输入的时候,数据库管理系统自动检查所输入性别对应的值,所输入的,Sex,值只可能是“男”或者是“女”两种情况之一。,2.3.3,用户定义完整性,2.4,关系规范化理论,在数据库设计过程中,需要考虑到针对具体问题构造适合于这个问题的数据库模式,即在该数据库设计过程中应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。,关系数据库逻辑设计的好坏与其所含的各个关系模式设计的好坏相关。如果各个关系模式结构合理、功能简单明确、规范化程度高,就能确保所建立的数据库具有较少的数据冗余、较高的数据共享度、较好的数据一致性,并
展开阅读全文