收藏 分销(赏)

基础篇数据库技术与应用.ppt

上传人:仙人****88 文档编号:13323834 上传时间:2026-03-01 格式:PPT 页数:122 大小:558KB 下载积分:10 金币
下载 相关 举报
基础篇数据库技术与应用.ppt_第1页
第1页 / 共122页
基础篇数据库技术与应用.ppt_第2页
第2页 / 共122页


点击查看更多>>
资源描述
上一页,下一页,返回首页,数据库技术与应用,课程负责人 黄崇本,1,.,本软件用,PowerPoint,制作而成,播放亦在其状态下进,行,为了更好地使用该软件,使用者需掌握,PowerPoint,的基本,操作原理和方法。,.,本软件内容丰富、新颖,突破传统教学模式,在多媒体教室使用时,使用者应注意这一变化,改变教学方法,充分发挥其功效。同时也应注意本软件仍是一教学辅助工具,授课时应与讲授相结合使其更好地为教学服务。,.,本软件内容完整,自成体系,对于使用者的不同情况,用本软件授课时,可补充所需内容,链入其它媒体信息,或同其它软(如,CS,ChemDraw,等),共同使用,以达到多媒体辅助教学的良好效果。,.,多媒体教学信息量大,传递速度快,用本软件授课时,应,熟悉播放程序,注意控制播放速度,要使观看者有充足的思,考时间。,注意事项,数据库技术是计算机科学技术中发展最快的应用之一,已经成为计算机信息系统与应用系统的核心技术,它与网络技术构成计算机应用的两个平台。数据库技术与应用课程已成为高职高专院校计算机教学中的主干课程,是计算机应用专业的必修基础课程。,本着高职高专教学突出理论知识的应用和实践能力的培养,基础理论以必需、够用为度,专业教学加强针对性和实用性等原则,将课程的相关内容分为基础篇、应用篇和实训篇。课程中既安排了目前使用非常广泛的桌面数据库管理系统,Access,,,让学生学会使用,Access,数据库的基本方法,也全面介绍了当前主流大型网络数据库系统,SQL Server,,,同时还介绍了数据库应用系统开发的基本方法。,前 言,第,1,章 数据库技术概论,第,2,章 关系数据库,第,3,章,关系数据库语言,SQL,第,4,章 数据库设计,数据库技术与应用,之 基础篇,1.1,数据与数据管理,1.2,数据管理技术的发展,1.3,数据库基本概念,1.4,数据库系统的体系结构,1.5,数据库保护,第一章 数据库技术概论,1.,1,数据与数据管理,1,什么是数据库,数据库是长期存储在计算机内有组织、可共享的数据集合。数据库好比是存放数据的仓库,里面存放各式各样的相关数据。,图书馆可视作一个数据库,书架对应表格,书籍对应原始数据,书名或作者名的目录卡片对应索引,2,数据与信息,数据是指用符号记录下来的可以区别的信息;信息是关于现实世界中事物的存在方式或运动形态的反映,是人们进行各种活动所需的知识,。,数据是信息的载体,信息是被人们消化的数据,1.,1,数据与数据管理,3,数据处理,数据处理指将数据转换成信息的过程,广义也讲,数据处理包括对数据的收集、存储、传播、检索、分类、加工或计算、打印各类报表或输出各种需要的图形等一系列活动;狭义也讲,数据是指对所输入的数据进行加工整理。,4,数据管理,在数据处理的一系列活动中,数据收集、存储、传播、检索、分类等操作是基本环节,这些基本环节统称为数据管理。,数据与信息之间的关系可以表示为:,信息,=,数据,+,数据处理,1.,2,数据管理技术的发展,数据管理技术发展的三个阶段,计算机数据管理大致经历了三个阶段:,人工管理方式阶段,文件管理方式阶段,数据库,管理方式阶段,1.,2,.1,人工管理方式阶段,1,基本情况,20,世纪,50,年代中期以前,计算机主要用于科学计算。硬件方面,外存储器只有卡片、纸带、磁带,没有像磁盘这样的可以,随机访问,、,直接存取,的外部存储设备。软件方面,没有专门管理数据的软件,,数据由计算机或处理它的程序自行携带。,数据处理方式基本是批处理。,1.,2,.1,人工管理方式阶段,2,特点,特点,1,:,数据和程序不具有独立性,。一组数据对应一组程序,这就使得程序依赖于数据,如果数据的类型、格式或者数据量、存取方法、输入输出方式等改变了,程序必须做相应的修改。,特点,2,:,数据不能长期保存,。由于数据是面向应用程序的,在一个程序中定义的数据,无法被其它程序利用,因此,程序与程序之间存在大量的重复数据。,特点,3,:,系统中没有对数据进行管理的软件,。数据管理任务,包括存储结构、存取方法、输入输出方式等完全由程序设计人员 自负其责,这就给应用程序设计人员增加了很大的负担。,1.,2,.2,文件管理方式阶段,1,基本情况,20,世纪,50,年代后期至,60,年代中后期,大量的数据存储、检索和维护成为紧迫的需求。数据处理方式有批处理,也有联机实时处理。,程序与数据有了一定的独立性,,程序与数据分开存储,有了程序文件和数据文件的区别。数据文件可以长期保存在外存储器上多次存取,如进行查询、修改、插入、删除等操作。数据的存取以记录为基本单位,并进行了多种文件组织形式,如顺序文件、索引文件、随机文件等。在文件系统的支持下,,数据的逻辑结构与物理结构之间可以有一定的差别,,逻辑结构与物理结构之间的转换由文件系统的趣取方法来实现。数据与程序之间有设备独立性,程序只需用文件名访问数据,不必关心数据的物理位置。这样,程序员可以集中精力在数据处理的算法上,而不必考虑数据存储的具体细节。,1.,2,.2,文件管理方式阶段,2,存在问题,问题,1,:据冗余大。数据冗余是指不必要的重复存储,同一数据项重复出现在多个文件中。,问题,2,:缺乏数据独立性。文件系统中的数据文件是为某一特定的应用而设计的,数据与程序相互依赖,如果改变数据的逻辑结构或文件的组织方法,必须修改相应的应用程序,反之也是。,问题,3,:数据无集中管理。数据文件均由相应的应用程序管理和维护,没有统一的管理机制。造成数据文件之间无法进行联系,不能反映现实世界事物之间的联系。,1.,2,.3,数据库管理方式阶段,1,基本情况,从,20,世纪,60,年代后期开始,需要计算机管理的数据量急剧增长,并且对数据共享的需求日益增强。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,出现了数据库技术。,数据库,是通用化的相关数据集合。它不仅包括数据本身,而且包括关于数据之间的联系。为数据库的建立、使用和维护而配置的软件称为,数据库管理系统,(,DBMS,)。,它是在操作系统支持下运行的。目前较为流行的数据库管理系统包括:,Oracle,、,Informix,、,SQL server,及微机上,DBMS,(,dDBASE,、,FoxBASE,、,FoxPro,等)。,数据库已成为各类信息系统的核心基础。,1.,2,.3,数据库管理方式阶段,2,优点,实现数据共享,减少数据冗余。,数据库中存放通用化的综合数据,某一应用通常仅使用总体数据的子集。,数据高度结构化。,数据库中的数据是有结构的,它是用某种数据模型表示出来的,这种结构既反映文件内数据之间的联系,也反映文件之间的联系。,具有较高的数据独立性。,在数据库系统中,,DBMS,提供映象功能,确保应用程序对数据结构和存取方法有较高的独立性。数据的物理存储结构与用户看到的逻辑结构可以有很大的差别。用户只以简单的逻辑结构来操作数据,无需考虑数据在存储器上的物理位置与结构。,有统一的数据控制功能。,数据库作为用户与应用程序的共享资源,对数据的存取往往是并发的,即多个用户同时使用同一个数据库。数据库管理系统必须提供并发控制功能、数据的安全性控制功能和数据完整性控制功能。,1.,3,数据库基本概念,1,数据库系统(,DBS,或,DBAS),数据库系统,(,DBS),也称为数据库应用系统(,DBAS,),是指具有管理和控制数据库功能的计算机应用系统。,数据库系统由,5,部分组成,:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员(,DBA,),和用户。,硬件系统是整个数据库系统的基础,数据库集合是若干个设计合理、满足应用需求的数据库。数据管理系统是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心组成部分;相关软件是支持软件,如操作系统等。数据库管理员是全面负责建立、维护和管理数据库系统的人员。用户是最终系统的使用和操作人员。,1.,3,数据库基本概念,2,DBA,职责,1.,安装和升级数据库服务器(如,ORACLE.,、,MICROSOFT SQL SERVER,),,以及应用程序工具,2,数据库设计系统存储方案,并制定未来的存储需求计划,3,开发人员设计了一个应用,就需要,DBA,来创建数据库存储结构,4,开发人员设计了一个应用,就需要,DBA,来创建数据库对象,5,根据开发人员的反馈信息,必要的时候,修改数据库的结构,6,登记数据库的用户,维护数据库的安全性,7,保证数据库的使用符合知识产权相关法规,8,监控和优化数据库的性能,9,控制和监控用户对数据库的存取访问,10,制定数据库备份计划,灾难出现时对数据库信息进行恢复,11,维护适当介质上的存档或者备份数据,12,备份和恢复数据库,13.,联系数据库系统的生产厂商,跟踪技术信息,。,DBA,的认证,:,IBM ORACLE MICROSOFT,1.,3,数据库基本概念,3,数据库管理系统(,DBMS,),数据库管理系统,(,DBMS,),作为数据库系统的核心软件,其主要目标是数据成为方便用户使用的资源,易于为各类用户所共享,并增加数据的安全性、完整性和可用性。,DBMS,具有下列功能:,数据库的定义功能,提供数据定义语言,DDL,或操作命令,以便对各级数据模式进行精确的描述。,1.,3,数据库基本概念,3,数据库管理系统(,DBMS,),数据操纵功能,为了对数据库中的数据进行追加、插入、修改、删除、检索等操作命令,称为数据操作语言,DML,。,可以分为两类:一类是,DML,可以独立交互式使用,不依赖于任何程序设计语言,称为自含或自主型语言。另一类是宿主型,DML,,,嵌入到宿主语言中使用。如嵌入到,C,程序设计语言中,在使用高级语言编写的应用程序中,需要调用数据库中的数据时,则要用宿主型,DML,语句来操纵数据。,1.,3,数据库基本概念,3,数据库管理系统(,DBMS,),数据库运行控制功能,数据库中的数据是提供给多个用户共享的,用户对数据的存取可能是并发的,即多个用户同时使用一个数据库。,DBMS,必须提供以下,3,方面的数据控制功能:并发控制功能,数据的安全性控制。数据的完整性控制。,数据字典,数据字典,DD,中存放着对实际数据库各级模式所做的定义,即对数据库结构的描述。这些数据是数据库系统中有关数据的数据,称之为元数据。,DD,提供了对数据库数据描述的集中管理手段,对数据库的使用和操作都通过查阅数据字典来进行。,1.,3,数据库基本概念,4,数据模型,数据模型是指数据以及数据之间的联系的描述,数据库管理系统所支持的数据模型有四种:层次模型、网状模型、关系模型、面向对象模型。,层次模型用树形结构来表示各类实体以及实体间的联系。每个结点表示一个记录类型,结点之间的连线表示记录类型间的联系,这种联系只能是父子联系。网状数据模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成,1.,4,数据库系统的体系结构,1,模式的概论,模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及模式的描述,不涉及具体的值。,2,数据库系统的三级体系结构,用户使用的数据视图叫做,外模式,,又称子模式,是一种局部的逻辑数据视图,表示用户所理解的实体、实体属性和实体关系。,全局的逻辑数据视图叫,概念模式,,简称为模式,是数据库管理员所看到的实体、实体属性和实体之间的关系。,数据的物理存储模式叫做,内模式,,也称物理模式。,子模式是模式的子集,,可以从模式推导出来。,1.,4,数据库系统的体系结构,数据库三级模式结构,1.,4,数据库系统的体系结构,3,数据库的两级映象,子模式与模式之间的映象,:定义了各子模式与模式之间的映射关系。当整个系统要求改模式时,可以改变映射关系而保持子模式不变。这种用户数据独立于全局的逻辑数据的特性即为,逻辑数据独立性,;,模式与物理模式之间映象,:定义了模式与物理模式的映射关系。当为了某种需要改变物理模式时,可以同时改变两者之间的映射而保持模式与子模式不变,这种全局的逻辑数据独立于物理数据的特性即为,物理数据独立性,。,1.,5,数据库保护,1,安全性保护,防止未被授权者非法存取数据。可采用方法:鉴定用户身份、口令、用密码记载数据、控制用户权限。,2,完整性保护:,指数据正确性和一致性。完整性保护可以通过对数据及数据之间的逻辑关系施加约束条件来实现,约束条件有:值约束、结构约束、动态约束。,1.,5,数据库保护,3,故障恢复保护,备份与恢复。,4,并发控制保护:,多用户共享数据时,而造成数据不一致性。用加锁的方法进行保护。,2.1,关系的数学定义,2.2,关系数据库,1.3,关系运算,第二章 关系数据库,2.1,关系的数学定义,1,二维表与关系,学号,姓名,性别,籍贯,系别,0101,张军,男,杭州,工商,0202,李军,男,宁波,信息,学生信息表,2.1,关系的数学定义,上述二维表(或简称表)表示了学生类型的一些实体,每个二维表又称为,关系,。,学生信息表,是,表名,,在关系数据库中,表名对应于数据库名(或关系名)。,表头由一些反映实体属性的属性名组成,它对应于,数据库结构描述,,定义了实体的型,在表上属性名必须是唯一,不允许重名。,表体是由一些行(元组或称,记录,)组成,它是数据库的内容及数据库操作对象。一个,元组,对应于文件系统中的一个记录,一个记录含有若干个域用以存储属性值。一个元组对应于一个学生实体。表体中的列反映实体的属性。,2.1,关系的数学定义,2,关系的数据定义,域(,Domain,),是值(,Value,),的集合,如:整数、实数、,0,,,1,,,2,,,3,、,真、假,、,(杭州,,0571,)、(宁波,,0574,),域,若是一个有限集,其元数的个数叫做域的基数。,如,1,,,2,,,3,,,4,,,5,的基数为,5,。,给定一组域,D1,,,D2,,,,,Dn,,,这些域中有些域可以是相同的。,D1,,,D2,,,,,Dn,的,笛卡尔乘积,为,D1D2,Dn,=d1,,,d2,,,,,dn,di,Di,,,i=1,,,2,,,,,n,其中每一个元素(,d1,,,d2,,,,,dn,),叫做一个,n,元组,或简称,元组,。,D1D2,Dn,的子集叫作域,D1,,,D2,,,,,Dn,上的关系,,用,R,(,D1,,,D2,,,,,Dn,),表示,这里的,R,表示关系的名字,,n,是关系的度(或叫元数)。,2.1,关系的数学定义,3,关系的相关概念,关系是笛卡积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(,Attribute,)。,n,目关系必有,n,个属性。,若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(,Candidate key,)。,若一个关系有多个候选码,则选定其中一个为主码(,Primary key,)。,主码的诸属性称为主属性(,Prime attribute,)。,不包含在任何侯选码中的属性称为非码属性(,Non-key attribute,)。,在最简单的情况下,,侯选码只包含一个属性。,在最极端的情况下,关系模式的所有属性组是这个关系模式的侯选码,称为全码,(,All-key,),2.1,关系的数学定义,4,关系的三种类型,基本关系(通常又称为基本表或基表)、查询表和视图表。基本表是实际存在的表,它是实际存储数据的逻辑表示。查询表是查询结果对应的表。,视图,表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,2.1,关系的数学定义,5,关系的性质,在关系数据库中,要求关系中的每一个分量是不可再分的数据项,关系数据库中的关系应具有以下性质:,列是同质的,即每一列中的分量均是同类型的数据,即均来自同一个域。,不同的列可以出自同一个域,每一列称为一个属性,要给予不同的列不同的属性名。,列的顺序是无所谓的,即列的次序可以变换。,任意两个元组不能完全相同。,行的顺序是无所谓的,即行的次序可以变换。,每一分量必须是不可再分的数据项。,2.2,关系数据库,1,关系模型,关系模型是由三部分组成,:数据结构(即关系)、关系操作、关系完整性。,在关系模型中,无论是实体还是实体之间的联系均由单一的类型结构,-,关系来表示。,关系模式,是指关系的描述,即对关系名、组成关系的各属性名、属性到域的映射、属性间的数据依赖关系等等。关系模式通常简记为,R,(,A1,,,A2,,,,,An,),关系数据库,是指数据库结构的描述,它包括关系数据库名,若干属性的定义,以及这些属性上的若干关系模式。,2.2,关系数据库,2,关系操作,关系模型规定了关系操作的功能和特点,但不对,DBMS,语言的语法做出具体的规定。,关系数据库语言的主要优点是其高度的非过程化,用户只须知道语句做什么,而不须知道怎么做。,关系操作主要有,:并、交、差、选择、投影、连接等,其中选择、投影及连接是最基本的关系操作。这些操作均对关系的内容或表体实施操作的,得到的结果仍为关系。,关系操作的特点是集合操作,即操作对象和结果都是集合。,2.2,关系数据库,3,关系模型的完整性,关系模型的三类完整性,:实体完整性、参照完整性及用户定义的完整性。,实体完整性和参照完整性是任何关系模型都有,必须满足,的完整性约束条件,应该由关系数据库,DBMS,自动支持。,用户定义的完整性的支持是由,DBMS,提供完整性定义设施,可以随,DBMS,商品软件不同而有所变化。,2.2,关系数据库,4,实体完整性,(,Entity Integrity,),一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。所谓空值就是,“,不知道,”,或,“,无意义,”,的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。,规则,:,实体完整性规则:若属性,A,是基本关系,R,的主属性,则属性,A,不能取空值。,2.2,关系数据库,4,参照完整性,(,Referential integrity,),定义,设,F,是基本关系,R,的一个或一组属性,但不是关系,R,的码,如果,F,与基本关系,S,的主码,Ks,相对应,则称,F,是基本关系,R,的外码(,Foreign key,),,并称基本关系,R,为参照关系(,Referencing relation,),,基本关系,S,为被参照关系(,Referenced relation,),或目标关系(,Target relation,)。,关系,R,和,S,不一定是不同的关系。参照完整性规则就是定义外码与主码之间的引用规则。,规则,2.2,参照完整性规则:若属性(或属性组),F,是基本关系,R,的外码,它与基本关系,S,的主码,Ks,相对应(基本关系,R,和,S,不一定是不同的关系),则对于,R,中每个元组在,F,上的值必须为:,或者取空值(,F,的每个属性值均为空值);,或者等于,S,中某个元组的主码值。,2.2,关系数据库,5,用户定义完整性,(,User-defined integrity,),实体完整性和参照性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,2.2,关系数据库,6,关系数据语言,关系数据语言可分为三类,:数据描述语言,DDL,,,数据操纵语言,DML,和数据控制语言,DCL,。,DDL,负责数据库的描述,,提供一种数据描述机制,用来描述数据库的特征或数据的逻辑结构。,DML,负责数据库的操作,,提供一种数据处理操作的机制。,DCL,负责控制数据库的完整性和安全性,,提供一种检验完整性和保证安全的机制。,2.2,关系数据库,7,DML,语言,DML,包括数据查询和数据的增、删、改等功能。其中查询的表达方式是,DML,的主要部分。,关系数据库的,DML,按照查询方式可以分为两大类:用对关系的集合运算来表示查询方式,称为关系代数;用谓词演算来表达查询方式,称为关系演算;,关系代数和关系演算均是抽象的查询语言,是实际,DBMS,软件产品中实现的具体查询语言的,理论基础,。,结构化查询语言,SQL,是介于关系代数和关系演算之间的一种语言,,SQL,是集,DDL,、,DML,、,DCL,为一体的标准的关系数据库语言。,2.3,关系运算,1,传统的集合运算,传统的集合运算是二目运算。设关系,R,和关系,S,具有相同的度,且相应的属性值取自同一个域,则它们之间能进行并、交及差运算,并运算:两个关系,R,与,S,的并记为,RS,,,它是一个新的关系,由属于,R,或属于,S,的元组组成,可形式地定义为:,RS=ttRtS,其中,t,是元组变量,表示关系中的元组。,交运算:两个关系,R,与,S,的交记为,RS,,,它是由属于,R,且属于,S,的元组组成,可形式地定义为:,RS=ttRtS,差运算:两个关系,R,与,S,的并记为,R-S,,,它是由属于,R,但不属于,S,的,元组组成,可形式地定义为:,R-S=ttRnot(tS),2.3,关系运算,2,专门的关系运算,选择,选择运算是从某个给定的关系中筛选出满足限定条件的元组子集,它是一元关系运算。可形式定义为:,F(R)=ttRF,(,t,),其中,,F,是筛选关系,R,中元组的限定条件的布尔表达式,它由逻辑运算符、连接各算术表达式组成。学生信息表,S,如下:,例:查询信息系,全体学生:,SD,信息,(,S,),学号,S#,姓名,SN,系名,SD,年龄,SA,0101,张军,工商,20,0202,李军,信息,19,2.3,关系运算,3,专门的关系运算,投影,选择运算是从某个关系中选取一个“行”的子集,而投影运算实际上是生成一个关系的“列”的子集,它从给予定的关系中保留指定的属性子集而删去其余属性。设某关系,R,(,X,),,X,是,R,的属性集,,A,是,X,的一个子集,则,R,在,A,的投影可表示为:,A(R)=tAtR,其中,,tA,表示元组相应,A,属性中的分量。,例:查询学生的姓名和所在系:,SN,SD,(S),2.3,关系运算,4,专门的关系运算,连接,连接也称为,连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,,,连接运算中有两种最为重要也最为常用的连接,一种是等值连接(,equi,-join,),,另一种是自然连接(,Natural join,)。,为,“,”,的连接运算称为等值连接。它是从关系,R,与,S,的笛卡尔积中选取,A,、,B,属性值相等的那些元组,自然连接(,Natural join,),是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。,一般的连接操作是从行的角度进行运算。但自然连接还,需要取消了重复列,所以是同时从行和列的,角度进行运算。,2.3,关系运算,5,专门的关系运算,除,一个,m,元关系,R,除以一外,n,元关系,S,(,其中,mn,,,S,非空关系并且,R,中存在,n,个属性与,S,的,n,个属性定义在相同的域)所得到的结果是一个(,m-n,),元的新的关系,它表示满足以下条件的元组集合:,R,S=t(m-n),对任一,t(n)S,都有,t(m-n),。,t(n)R,其中,t(m-n),。,t(n),表示一个(,m-n,),元的元组和一个,n,元的元组拼合成一个,m,元的新元组。,2.3,关系运算,6,关系代数运算举例,学生关系,S,同前面的一样,课程关系,C,(,课程号,C#,,,课程名,CN,,,任课教师,CT,),和学生选课关系,SC,(,学号,S#,,,课程号,C#,,,成绩,G,),例,1,:查询年龄小于,20,岁的学生,sage20(Student),例,2,:,检索学习课程,C2,的学生的学号与成绩,S#,,,G,(,C#=,C2,(,SC,),例,3,:,求出学习全部课程的的学生名单,SN,(,S,(,S#,,,C#,(,SC,),C#,(,C,),2.3,关系运算,例,4,、将新开课程记录(,C6,Q,R,),插入到关系,C,中,C,(,C6,Q,R,),例,5,、将学号为,S3,学生的,C4,课程的成绩改为,A,(,SC,(,S3,C4,?,),(,S3,C4,A,),例,6,、求同时选修课程,C1,和,C2,的学生姓名,C12=C#,(,C#=,C1,OR C#=,C2,(,C,),SC12=S#,,,C#,(,SC,),C12,S12=SN,(,SSC12,),3.1,SQL,数据定义,3.2,数据查询,3.3,SQL,数据更新,3.4,数据控制,第三章 关系数据库语言,SQL,3.1,SQL,数据定义,1,SQL,介绍,SQL,是英文,Structured Query Language,的缩写,意思为结构化查询语言。,SQL,语言的主要功能就是同各种数据库建立联系,进行沟通。按照,ANSI,(,美国国家标准协会)的规定,,SQL,被作为关系型数据库管理系统的标准语言。,SQL,语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如,Oracle,Sybase,Microsoft SQL Server,Access,等都采用了,SQL,语言标准。虽然很多数据库都对,SQL,语句进行了再开发和扩展,但是包括,Select,Insert,Update,Delete,Create,以及,Drop,在内的标准的,SQL,命令仍然可以被用来完成几乎所有的数据库操作,SQL,语言的版本包括:,SQL-89,,,SQL-92,,,SQL3,3.1,SQL,数据定义,2,SQL,动词,数据查询:,SELECT,数据定义:,CREAT,DROP,ALTER,数据操纵:,INSERT,UPDATE,DELETE,数据控制:,GRANT,REVOKE,3.1,SQL,数据定义,3,示例数据库结构,“,学生课程,”,数据库中包括三个表:,“,学生,”,表,Student,由学号(,Sno,)、,姓名(,Sname,)、,性别(,Ssex,)、,年龄(,Sage,)、,所在系(,Sdept,),五个属性组成,可记为:,Student(,Sno,Sname,Ssex,Sage,Sdept,),关键字,Sno,(2),“,课程,”,表,Course,由课程号(,Cno,)、,课程名(,Cname,)、,先修课号(,Cpno,)、,学分(,Ccredit,),四个属性组成,可记为:,Course(,Cno,Cname,Cpno,Ccredit,),关键字,Cno,(3),“,学生选课,”,表,SC,由学号(,Sno,)、,课程号(,Cno,)、,成绩(,Grade,),三个属性组成,可记为:,SC(,Sno,Cno,Grade),关键字,(,Sno,Cno,),3.1,SQL,数据定义,4,创建基本表,一般格式如下:,CREATE TABLE(,列级完整性约束条件,,,列级完整性约束条件,.),;,例,1,建立一个,“,学生,”,表,Student,,,它由学号,Sno,、,姓名,Sname,、,性别,Ssex,、,年龄,Sage,、,所在系,Sdept,五个属性组成,其中学号属性不能为空,并且其值是唯一的。,CREATE TABLE Student,(,Sno,CHAR(5)NOT NULL UNIQUE,Sname,CHAR(20),Ssex,CHAR(1),Sage INT,Sdept,CHAR(15);,3.1,SQL,数据定义,SQL,提供的基本数据类型:,数值型:包括,integer,、,real,、,float,numeric,等字符串型:,char(n),、,varchar,(n),,,前者是定长,后者为,变长串,位串型:,bit(n),bit varying(n),,,同上。,时间型:,date,、,time,。,3.1,SQL,数据定义,5,修改基本表,一般格式如下:,ALTER TABLE,ADD,完整性约束,DROP,MODIFY;,其中,指定需要修改的基本表,,ADD,子句用于增加新列和新的完整性约束条件,,DROP,子句用于删除指定的完整性约束条件,,MODIFY,子句用于修改原有的列定义。,例,2,向,Student,表增加,“,入学时间,”,列,其数据类型为日期型,ALTER TABLE Student ADD,Scome,DATE;,不论基本表中原来是否已有数据,新增加的列一律为空值,3.1,SQL,数据定义,例,3,将年龄的数据类型改为半字长整数,ALTER TABLE Student MODIFY Sage SMALLINT;,修改原有的列定义有可能会破坏已有数据,例,4,删除关于学号必须取唯一值的约束,ALTER TABLE Student DROP UNIQUE(,Sno,);,3.1,SQL,数据定义,5,删除基本表,一般格式如下:,DROP TABLE,例,5,删除,Student,表,DROP TABLE,Student,基本表定义一旦删除,表中的数据、在此表上建立的索引都将自动被删除掉,而建立在此表上的视图虽仍然保留,但已无法引用。因此执行删除操作一定要格外小心。,3.1,SQL,数据定义,6,建立索引,一般格式如下:,CREATE UNIQUE CLUSTER INDEX,ON (,.);,其中,,指定要建索引的基本表的名字。索引可以建在该表的一列或多列上,各列名之间用逗号分隔。每个,后面还可以用,指定索引值的排列次序,包括,ASC,(,升序)和,DESC,(,降序)两种,缺省值为,ASC,。,UNIQUE,表明此索引的每一个索引值只对应唯一的数据记录。,CLUSTER,表示要建立的索引是聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。,3.1,SQL,数据定义,例,6,为学生,-,课程数据库中的,Student,、,Couse,、,SC,三个表建立索引。其中,Student,表按学号升序建唯一索引,,Couse,表按课程号升序建唯一索引,,Sno,、,Cno,表按学号升序和课程号降序建唯一索引。,CREATE UNIQUE INDEX,Stusno,ON Student(,Sno,);,CREATE UNIQUE INDEX,Coucno,ON,Couse,(,Cno,);,CREATE UNIQUE INDEX,SCno,ON SC(,Sno,ASC,Cno,DESC);,3.1,SQL,数据定义,7,删除索引,一般格式如下:,DROP INDEX;,例,7,删除,Student,表的,Stusname,索引,DROP INDEX,Stusname,;,索引一经建立,就由系统使用和维护它,不需用户干预。建立索引是为了减少查询操作的时间,但如果数据增删改频繁,系统会花费许多时间来维护索引。这时,可以删除一些不必要的索引。删除索引时,系统会同时从数据字典中删去有关该索引的描述。,3.2,SQL,数据查询,1,查询语句格式,一般格式为:,SELECT ALL|DISTINCT,.,FROM,.,WHERE ,GROUP BY,HAVING ,ORDER BY ,ASC|DESC;,整个,SELECT,语句的含义是,根据,WHERE,子句的条件表达式,从,FROM,子句指定的基本表或视图中找出满足条件的元组,再按,SELECT,子句中的目标列表达式,选出元组中的属性值形成结果表。如果有,GROUP,子句,则将结果按,的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。通常会在每组中作用集函数。如果,GROUP,子句带,HAVING,短语,则只有满足指定条件的组才予输出。如果有,ORDER,子句,则结果表还要按,的值的,升序或降序排序。,3.2,SQL,数据查询,1,单表查询,一、选择表中的若干列,例,1,查询全体学生的学号与姓名,SELECT,Sno,Sname,FROM Student;,例,2,查询全体学生的姓名、学号、所在系,SELECT,Sname,Sno,Sdept,FROM Student;,例,3,查询全体学生的详细记录,SELECT*,FROM Student;,3.2,SQL,数据查询,例,4,查全体学生的姓名及其出生年份,SELECT,Sname,2004-Sage,FROM Student;,例,5,查全体学生的姓名、出生年份和所有系,要求用小写字 母表示所有系名,SELECT,Sname,Year of Birth:,1996-Sage,ISLOWER(,Sdept,),FROM Student;,3.2,SQL,数据查询,二、选择表中的若干元组,1,、,消除取值重复的行,例,6,:,查所有选修过课的学生的学号,SELECT DISTINCT,Sno,FROM SC;,2,、,查询满足条件的元组,查询满足指定条件的元组可以通过,WHERE,子句实现。,WHERE,子句常用的查询条,件如下页,3.2,SQL,数据查询,常用的查询条件,(,1,)比较,:、,、,=,、,=,、,!=,(,2,),确定范围,:,BETWEEN AND,NOT BETWEEN AND,(,3,),确定集合,:,IN,NOT IN,(,4,),字符匹配,:,LIKE,NOT LIKE,(,5,),空值,:,IS NULL,IS NOT NULL,(,6,),多重条件,:,AND,OR,3.2,SQL,数据查询,(1),比较,例,7,:查计算机系全体学生的名单,SELECT,Sname,FROM Student WHERE,Sdept,=CS;,例,8,:查所有年龄在,20,岁以下的学生姓名及其年龄,SELECT,Sname,Sage,FROM Student,WHERE Sage=20,例,9,:查考试成绩有不及格的学生的学号,SELECT DISTINCT,Sno,FROM Course WHERE Grade 60,3.2,SQL,数据查询,(2),确定范围,例,10,:,查询年龄在,20,至,23,岁之间的学生的姓名、系别、和年龄,SELECT,Sname,Sdept,Sage,FROM Student,WHERE Sage BETWEEN 20 AND 23;,例,11,:查询年龄不在,20,至,23,岁之间的学生姓名、系别和年 龄,SELECT,Sname,Sdept,,,Sage,FROM Student,WHERE Sage NOT BETWEEN 20 AND 23,3.2,SQL,数据查询,(3),确定集合,例,12,:,查信息系(,IS,)、,数学系(,MA,),和计算机科学系(,CS,),的学生的姓名和性别,SELECT,Sname,Ssex,FROM Student,WHERE,Sdept,IN(IS,MA,CS),;,例,13,:,查既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别,SELECT,Sname,Ssex,FROM Student,WHERE,Sdept,NOT IN(IS,MA,CS),3.2,SQL,数据查询,(4),字符匹配,谓词,LIKE,可以用来进行字符串的匹配。其一般语法格式如下:,NOT LIKE ,ESCAPE,其含义是查找指定的属性列值与,相匹配的元组。,可
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服