《数据库系统》PPT课件.ppt_第1页
《数据库系统》PPT课件.ppt_第2页
《数据库系统》PPT课件.ppt_第3页
《数据库系统》PPT课件.ppt_第4页
《数据库系统》PPT课件.ppt_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 数据库系统,5.1 数据库系统基本概念 5.1.1什么是数据库系统,3个基本概念: (1)数据库(database,简称DB)。 (2)数据库管理系统(database management system,简称DBMS)。 (3)数据库系统(database system,简称DBS)。,数据库(DataBase,简称DB) 数据库是长期存放在计算机内一个通用化的、综合性的、有结构的、可共享的数据集合。 数据库中的数据按一定的数据模型组织、描述和储存,具有尽可能小的冗余度和较高的数据独立性、安全性和易扩展性。,数据库管理系统(DBMS) 数据库系统的核心组成部分,对数据进行管理的软件。

2、 主要功能: 数据定义 :对数据库中的数据对象进行定义 。 数据操作:查询、插入、删除、修改等 数据库的运行管理:对数据库的建立、运用和维护进行统一管理和控制 :安全性控制、完整性控制、并发控制、备份与恢复 数据库的建立和维护功能 数据库初始数据的输入和转换功能、数据库的转储和恢复功能以及数据库重组织功能和性能监视、分析功能等。,常见的DBMS产品:Oracle,Microsoft SQL Server(微软),DB2(IBM), Sybase,Access(微软) 等。,.MySQL,MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家

3、基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。,SQL Server,SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准

4、的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。 多用户时性能不佳,Oracle,Oracle数据库是当今最大的数据库厂商Oracle公司的产品,是世界上第一个商品化的关系型数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品。 Oracle数据库的广泛应用是与其安全性高、稳定性好和跨平台性能强等特点分不开的。其容量大、并发性高等特征可以满足各种商业需求;Oracle数据库的应用结构包括C/S结构、B/S结构和分布式系统结构等多种,可以满足不同架构的系统要求

5、。在安全方面,获得最高级别的ISO标准认证。因此,Oracle数据库成为当前数据库市场占有率最高的产品。,Sybase,1987年Sybase公司推出了Sybase数据库产品。Sybase主要有三种版本:一是UNIX操作系统下运行的版本;二是Novell Netware环境下运行的版本;三是Windows NT环境下运行的版本。对UNIX操作系统,目前应用最广泛的是SYBASE 10及SYABSE 11 for SCO UNIX 。 Sybase数据库的特点: (1)它是基于客户/服务器体系结构的数据库。 (2)它是真正开放的数据库。 (3)它是一种高性能的数据库。,DB2,DB2是内嵌于IB

6、M的AS/400系统上的数据库管理系统,直接由硬件支持。它支持标准的SQL语言,具有与异种数据库相连的GATEWAY。因此它具有速度快、可靠性好的优点。但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。 DB2能在所有主流平台上运行(包括Windows),最适于海量数据。 DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。 除此之外,还有微软的 Access数据库、FoxPro数据库等。其中MySQL是一个完全免费的数据库系统,其功能也具备了标准数据库的功能,因此,在独立制作时,建议使用。

7、Oracle虽然功能强劲,但它毕竟是为商业用途而存在的。,sql是数据库基础。 access是编程软件,可以自己做界面,不是专业搞计算机的建议学access,但是access也会用到sql命令。 access是中小型企业所用。它可以编辑界面,可以存放数据,但只能在有安装access软件的电脑上才可以使用。 sql是大型企业所用。它只是一个存放(查询,修改)数据的地方。不能编辑界面。 可以学vb或c+再加sql数据库比较实用。,总结,数据库系统(DBS) 在计算机系统中引入数据库后的系统构成。 组成:数据库(及相关硬件)、数据库管理系统及开发工具、应用系统、数据库管理员和用户等。 数据库管理员(

8、DataBase Administrator,简称DBA) :负责全面管理和控制数据库系统。,问:数据库(DB)、数据库系统(DBS)与数据库管理系统(DBMS)之间是什么关系?,数据库系统层次结构图,硬件(含DB),操作系统,DBMS,开发工具软件,应用系统,ADBS包括DB和DBMS BDB包括DBS和DBMS CDBMS包括DBS和DB DDBS与DB和DBMS无关,图5.1.1 数据库系统 示意图,5.1.2 数据管理的三个阶段,1人工管理阶段 2文件系统阶段 3数据库系统阶段,背景: 50年代中期以前 计算机主要用于科学计算; 当时外存储器有:磁带、纸带、卡片; 还没有操作系统和管理

9、数据的专用软件; 所以主要靠人工利用计算机来管理数据。,人工管理阶段,数据不能共享 数据不具有独立性 依靠应用程序管理数据 数据一般不需要长期保存。,人工管理阶段主要特点:,文件系统管理阶段,背景: 50年代后期-60年代中期 计算机已经大量用于数据管理; 外存有了磁盘、磁鼓等直接存取设备; 有了管理数据的软件-文件系统(此时的文件系统是包括在操作系统中的,用户通过文件系统这个软件去管理大量的数据)。,文件系统阶段( 50年代后期到60年代中期),文件系统方法阶段由操作系统的文件系统对数据进行管理,用户无需直接涉及物理设备及数据的物理组织细节。,优点: “按文件名进行访问,按记录进行存储” 数

10、据存储由操作系统提供支持,用户程序与数据的物理存储结构的分离,采用: “应用程序-操作系统-数据文件”的存取方式。,文件管理阶段主要特点:,数据可以长期保存 不需要设计物理结构 数据独立性差-文件逻辑结构的改变要修改应用程序;数据和程序间缺乏独立性 数据共享性差-一个文件一般对应于一个应用程序,不同的应用程序具有相同的数据时,也必须建立各自的文件。,数据是结构化的,是面向系统的。 数据独立性高。 高度的数据控制能力。,数据库系统阶段主要特点:,OS,数据库方法的特点,1. 对数据实施集中统一管理 数据库系统通过DBMS实现对所有数据的集中统一管理,即对数据的结构、数据的特征(名、类型、长度)、

11、数据的操作、数据的一致性、数据的安全保密性等均按统一标准进行控制和管理。也正因为实施这种集中统一管理,才能实现下述的各优点。,2. 数据独立性高 数据与使用数据的程序分离的特征称为数据独立性。其目的是使得数据或应用程序的修改不导致对方的修改。 数据独立性分为两种: 逻辑数据独立性数据库的全局逻辑结构发生改变时,用户应用程序不必改变,或反之。 物理数据独立性数据库的物理结构(存储设备、存储结构、存取方法)发生改变时,应用程序无需改变。,数据库方法的特点(续),3. 数据共享 数据共享指数据库中的同一数据可为多个用户共同使用。,4. 控制冗余 冗余由同一数据的重复存储产生。数据库方法中的同一数据可

12、重复出现在不同局部数据结构中,但物理上只存储一次。 数据库中并非完全消除冗余,有时为了数据的存取效率,同一数据可保留多个副本。,5. 数据完整性 数据完整性是指数据的正确性、真实性和客观性。 例如,一个 25 岁的职员有 35 年工龄,一个人的身高为 5 米,都是数据完整性被破坏的情况。,数据库方法的特点(续),6. 数据一致性 数据一致性是指数据库中表示同一对象的数据无论何时何处都是一致的。例如,同一职员的年龄在数据库中存在多个不同的值就是数据不一致的情况。 数据不一致性通常是由数据冗余或并发控制不当造成的。另外,系统故障或运行错误也可导致数据的不一致性。,7. 数据安全性 数据安全性即数据

13、保密问题,以防止对数据的非授权访问。DBMS可在全局数据结构、局部数据结构、记录甚至数据项级提供安全性检查与控制。 常见的安全控制方法有身份鉴别、存取控制、数据加密、审计等。,5.1.3 数据描述与数据模型,1数据描述,信息的三个领域 现实世界(事实世界) 信息世界(观念世界) 数据世界(计算机世界、机器世界),概念模型描述,数据模型描述,图5.1.5 现实世界、信息世界和数据世界的关系,信息世界涉及到的几个基本概念 :,(1)实体。客观存在并可相互区别的事物。 (2)属性。实体所具有的某一特性。一个实体可以由若干个属性来刻画。例如:学生 (学号,姓名,性别,年龄) (3)域。属性的取值范围称

14、为该属性的域。 (4)实体集。同型实体的集合称为实体集。例如,全体学生就是一个实体集。 (5)实体型。用实体名及其属性名集合来抽象和刻画实体集,称为实体型。实体型往往简称为实体。 (6)关键字。唯一标识实体的属性称为关键字。 (7)实体值(entity value)实体型的具体实例。,学 生,实体型,实体值,实体集,2数据模型,是对客观事物及其联系的数据描述,它反映了实体内部以及实体与实体之间的联系,是数据库设计的核心。 目前常用的数据模型有三种:,层次模型:用树型结构表示实体间的联系。 网状模型:用有向图结构表示实体类型及实体间联系。 关系模型:用二维表结构表达实体和实体间的联系。 每一个二

15、维表称为一个关系。,层次模型,用树型结构表示实体及实体间联系的数据模型。,表示方法: 一个结点表示一个实体; 无向连线表示实体间联系; 联系中表示1的实体在上层, 表示n的结点在下层。,特征: 有且仅有一个结点无父结点,该结点称为根; 根以外的结点有且仅有一个父结点。 缺点: 只能表示 1:m 联系,不能直接表示 m:n 联系; 随机存取效率低。,网状模型,用网状结构表示实体及实体间联系的数据模型。,表示方法: 一个结点表示一个实体; 有向连线表示实体间联系; 两个结点间的联系不唯一,因此联系必须命名。,特征: 可以有多个结点无父结点; 至少有一个结点有多个父结点。 缺点: 结构复杂; 数据独

16、立性不高。,关系模型,用二维表格表示实体及实体间联系的数据模型。,关 系,关系中: 每一行称为元组; 每一列称为属性,每一属性的值集称为域; 若一个关系有N个属性,则称该关系为N元关系。 关系和属性都必须命名。,特点: 用关系表示实体; 用关系表示实体间的联系; 行、列次序无关; 属性不可再分; 每个关系至少有一个关键字。,能唯一标识一个元组的最小属性集,表5.5、表5.6、表5.7给出三个不同的关系集,其中表5.5和表5.6是基本关系,用于表示现实世界的基本实体。 而表5.7则是“联系”关系,用于表示哪些学生选修哪些课程的联系,这种联系是通过在“选课”关系中引入“学生”关系中的“学号”和“课

17、程”关系中的“课程号”属性的数据建立的。,举例,关系数据模型结构简单、理论基础严密、数据独立性高、支持非过程化语言、一次操作可存取多个元组,并且可直接表示多对多联系。 主要不足是查询效率低。,以一个选课系统为例:,1、元组:记录二维表的每一行在关系中称为元组,在数据库中称为记录。 2、 属性 :二维表的每一列在关系中称为属性,每个属性都有一个属性名。 在数据库中,一个属性对应表中一个字段,属性名对应字段名。 3、域: 属性的取值范围称为域。,二维表里的三个概念:,5.1.4 实体联系模型,实体集之间的联系,1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,

18、那么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 1:N联系:如果实体集E1中每个实体与实体集E2中多个实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 M:N联系:如果实体集E1中每个实体与实体集E2中多个实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。,班 级,班 长,班 级,学 生,课 程,学 生,概念模型,是独立于计算机系统的模型,完全不涉及信息在计算机系统中的表示。 最著名的是实体联系模型(Entity-Relationship Model,ER模型),它直接抽象出实体类型和实体

19、间的关系,用ER图表示数据模型。 ER模型的三个要素:实体、属性、联系,实体,联系,属性,ER模型的图形描述*,实体-联系(Entity-Relationship)模型,采用画E-R图的形式直接表示实体及实体间联系的方法: (1)矩形表示实体型,框内标明实体名; (2)椭园表示属性,用无向边与其相应实体连接; (3)菱形表示联系,标明联系名,用无向边与相关实体连接; (4)无向边上标明联系的类型(1:1,1:m,m:n); (5)可据需要任意展开(E-R图复杂时可略去属性)。,E-R图是数据库设计人员与用户进行沟通、交流的工具。但是,DBMS很难直接支持E-R模型。,例:,请设计一个图书馆数据

20、库的ER图,此数据库中 对每个借阅者保存读者记录,包括:读者号、姓名、地址、性别、年龄、单位 对每本书存有:书号、书名、作者、出版社、价格 对每本被借出的书存有读者号、借出日期和应还日期。,书,读者,借阅,5.1.5数据库组织数据库系统的体系结构通常采用三级模式结构 :,1) 模式(也称逻辑模式) 模式描述的是全局数据逻辑结构,又可称为逻辑模式。 模式是所有用户的公共数据视图。 它与具体的应用程序及使用的程序设计语言无关,不涉及物理存储细节。 一个数据库只有一个模式,三级模式,2) 内模式 内模式描述的是数据的物理结构和存储方式。因而又可称为存储模式或物理模式。一个数据库只有一个内模式。 内模

21、式是数据在数据库系统内部的表示。 例如:记录是顺序存储还是按照树结构存储还是按照hash 方法存储,索引的组织方式是什么,数据是否压缩、是否加 密,数据的存储记录结构的规定等。,三级模式(续),3) 外模式 外模式描述的是局部数据逻辑结构。它是模式的子集,因而又称为子模式或用户模式。 是用户看到的数据视图,即与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式 同一外模式可以为多个应用程序所使用,一个应用程序只能使用一个外模式。,模式反映的是数据的全局观 内模式反映的是数据的存储观 外模式反映的是数据的用户观 全局观、存储观只有一个,而用户观可能有多个。,数据库系统体系结构 集中式数据库

22、系统:数据是集中的,数据的管理也是集中的 客户/服务器数据库系统:数据是集中的,应用分布 分布式数据库系统 :数据分布、应用分布,客户/服务器(C/S)数据库系统,分布式数据库系统,5.2关系数据库系统 5.2.1什么是关系数据库系统,关系数据库系统是支持关系模型的数据库系统 。 关系数据库目前是各类数据库中最重要、最流行的数据库。,以一个或两个关系为输入(或称为操作对象),产生一个新的关系作为其操作结果。即其运算对象是关系,运算结果亦为关系。 四类运算符: 集合运算符 专门的关系运算符 比较运算符 逻辑运算符,5.2.2 关系代数,1、并( ):两个关系需有相同的关系模式,并由两个关系所有元

23、组构成 ,但相同的元组仅保留一行。,定义 所有至少出现在两个关系中之一的元组集合 RS = r | rR rS ,R S,R关系,S关系,定义:RS =t | t Rt S,2、差(-):两个关系有相同的模式,R-S是由属于R但不属于S的元组构成的集合。,R - S,R关系,S关系,3、交():R和S的交是由既属于R又属于S的元组构成的集合,关系R与关系S的交定义为: RS =t | tRtS,R S,R关系,S关系,定义二个分别为n目和m目的关系R和S的广义笛卡尔积RS是一个(n+m)列的元组集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则

24、RS有k1k2个元组。记作: RS =tr ts |trRtsS 其中tr ts表示由两个元组tr和ts前后有序连接而成的一个元组。,4、笛卡尔积():,R关系,S关系,R S,专门的关系运算,选择(Selection) 投影(Projection) 连接(Join) 条件连接 自然连接 除(Division),根据某些条件关系作水平分割,即选择符合条件的元组(单目运算)。,形式:F (R),F:是一个逻辑表达式。表示选择的条件。 逻辑表达式:把关系表达式用逻辑运算符 连接起来。 关系表达式:用关系运算符 连接起来的式子。,5、选择():,R关系,AB (R),6、投影( ):对关系进行垂直分

25、割,消去某些列,相同的元组保留一行。,R关系, A,C (R),7、连接:(连接):是选择RS中满足ij的集合(先笛卡尔积,再选择)。,R AB S = R.AS.B (RS),是比较运算符。如果为=的连接运算称为等值连接,R关系,S关系,R R.AS.B S,8、自然连接(R|X|S):在笛卡尔积RS中,选择R和S相同属性值相等的元组,并去掉RS中重复的相同属性列。如果两个关系没有相同属性,则自然连接就转化为笛卡尔积。,R关系,S关系,(R)|X|(S),自然连接例,关系运算举例,有一个学生课程关系数据库,包括学生关系student、课程关系course和选课关系SC。 1)查询学生关系St

26、udent在学生姓名和所在系的两个属性 2)查询信息系(IS系)全体学生 3)查询选修了2号课程的学生的学号。,学生关系Student,查询学生关系Student在学生姓名和所在系的两个属性,Sname, Sdept(Student),2, 5Student),查询信息系(IS系)全体学生,选修关系SC,查询选修了2号课程的学生的学号,(1)首先在选修关系SC上进行选择操作:选择课程号Cno=1的元组,形成新的关系,如下表所示。,(2)在上述新的关系上,再进行投影操作,选取属性为学号Sno作为最终结果。,5.2.3 关系数据库设计,数据库设计是指根据用户需求研制数据库结构并应用的过程。 数据库

27、设计就是指对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效地存储数据,满足用户的信息要求和处理要求。 目前数据库设计主要采用逻辑数据库设计和物理数据库设计为核心的规范化设计方法。 数据库设计分为需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护六个阶段。,数据库设计步骤,数据库设计六个步骤,需求分析阶段需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。它决定了以后各阶段设计的速度和质量。 概念结构设计阶段概念结构设计是指对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS产品的概念模型

28、,是整个数据库设计的关键。 逻辑结构设计阶段逻辑结构设计是指将概念模型转换成某个DBMS所支持的数据模型,并对其进行优化。 物理结构设计阶段物理结构设计是指为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存储方法)。 数据库实施阶段数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行调试运行。 数据库运行与维护阶段数据库运行与维护是指对数据库系统实际正常运行使用,并时时实时进行评价、调整与修改。,1、需求分析,需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上

29、确定新系统的功能。 信息要求指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。 处理要求指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。 安全性与完整性要求指对数据库中的数据应该实施哪些约束和控制以保证数据的完整性和安全性。,需求分析的方法,自顶向下和自底向上两类 常用:结构化分析方法自顶向下、逐层分解。,2、概念结构设计,概念模式独立于数据库系统的逻辑结构,独立于具体的DBMS产品,也独立于计算机系统。 概念模式是面向现实世界的数据模型,用ER模型来设计 逐一设计分ER图-合并分ER图-消除冗余生产基本ER

30、图,例:课程管理局部分E-R图,3、逻辑结构设计,将概念设计阶段产生的概念模式变换为逻辑模式。 步骤(以关系ER模型为例) 将概念结构转换为一般的关系模型 将以上得到的一般关系模型向特定DBMS支持下的数据模型转换 对数据模型进行优化,4、物理结构设计,数据库的物理设计是对已确定的逻辑数据结构,利用DBMS所提供的方法、技术,以较优的数据存储结构、数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。物理设计常常包括某些操作约束如响应时间与存储要求等。 完成物理设计后,对该物理结构作出相应的性能评价,评价的主要指标是时间和空间效率。,物理设计的内容,确定数据的

31、存储结构 存取路径的选择和调整 确定数据存放位置 确定存储分配,物理设计过程需要对时间、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。在实施数据库前,对这些方案进行细致的评价,以选择一个较优的方案作为来设计数据库的物理结构。,5、数据库实施,数据库实现主要包括以下工作: 1)定义数据库结构:用DBMS提供的数据定义语言(DDL)来严格描述数据库结构 2)数据装载:数据库结构建立好后,就可以向数据库中装载数据了 3)编制和调试应用程序 4)数据库运行,6、数据库运行和维护,数据库运行和维护阶段的主要工作为: 1)数据库的转储和恢复 2)数据库的安全性和完整性控制 3)数据库的

32、性能监督、分析和改造 4)数据库的重组和重构,数据库安全控制模型,数据库技术应用,典型的关系数据库管理系统产品 ORACLE Microsoft SQL Server Microsoft Access,选择关系DBMS产品时考虑的主要因素,数据库应用的规模、类型和用户的数量 速度指标; 软件、硬件平台性价比; 开发者的经验和习惯; 安全性要求; 对分布式应用的支持等。,典型的数据库应用系统实例 航空售票系统 座位预定信息座位分配、座位确认、餐饮选择等; 航班信息航班号、飞机型号、机组号、起飞地、目的地、起飞时间、到达时间、飞行状态等; 机票信息票价、折扣、是否有票等。,典型的数据库应用系统实例

33、 银行业务系统 顾客信息姓名、身份证号码、地址、电话等信息; 账户信息账号、存款金额、余额、取款金额、日期等信息; 顾客与账户关系信息身份证号码、账号等信息。,典型的数据库应用系统实例 超市业务系统 销售信息连锁点、日期、时间、顾客、商品、数量、总价等; 商品信息商品名称、单价、进货数量、供应商、商品类型、摆放位置等; 供应商信息供应商名称、地点、商品、信誉等。,典型的数据库应用系统实例 工厂的管理信息系统 销售记录产品、服务、客户、销售人员、时间等; 雇员信息姓名、地址、工资、津贴、所得税款等; 财务信息合同、应收货款、应付货款等。,典型的数据库应用系统实例 学校教学管理系统 学生信息姓名、

34、学号、性别、班级、年龄、宿舍、电话、E-mail地址等; 教师信息姓名、工作证号、性别、年龄、学历、教研室、住址、电话、E-mail地址等; 教室信息教室号、位置、座位、类型等; 课程信息课程名称、指定教材、学时、学分等; 排课信息课程名称、教室、班级、教师名称等。,典型的数据库应用系统实例 图书管理系统 图书信息书号、书名、作者姓名、出版日期、类型、页数、价格、出版社名称等; 读者信息姓名、借书证号、性别、出生日期、学历、住址、电话等; 借阅信息借书证号、书名、借书日期、还书日期等。,5.3 关系数据语言 5.3.1 关系数据库语言概述,SQL语言(Structured Query Lang

35、uage) :关系数据库的标准语言。对关系模型的发展和商用DBMS的研制起着重要的作用。 具有数据定义、数据查询、数据更新、数据控制等功能。,SQL发展历史 1986年10月,ANSI批准SQL作为关系数据库语言的美国标准,并公布了SQL的标准文本“数据库语言SQL”(简称SQL86),1987国际标准化组织ISO通过了这一标准; 1989年公布了SQL89标准,增加了对完整性约束的支持; 1992年公布了SQL92标准; 1996年公布了SQL96标准; 1999年公布了SQL99标准; 2003年公布了SQL2003标准; SQL标准文本的修改和完善还在继续进行,(1)一体化。SQL集数据

36、定义语言DDL、数据操纵语言DML和数据控制语言DCL为一体。 (2)使用方式灵活。SQL既可以作为自含型语言供用户在终端上直接与系统进行交互,又可作为宿主型语言,嵌入某种高级语言中使用,以方便数据处理。 (3)高度非过程化。 (4)语言简洁,易学易用。,SQL的特点:,SQL数据库的体系结构,SQL语句汇总,1、数据定义,数据定义包括对基本表(table)、视图(view)和索引(index)等数据库对象进行定义、修改和删除。 基本表是数据库中数据存储的基本单位,一个关系对应一个表。 视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,数据库只存放视图的定义而不存放视图对应的数据

37、,数据仍存放在导出视图的基本表中。 索引是为表而创建的。定义一个合适的索引可以使查询速度提高几倍。,数据类型: INTEGER或INT 全字长二进制整数 SMALLINT 半字长二进制整数 DECIMAL(p, q) 十进制数 FLOAT 浮点数 CHAR(n) 长度为n的定长字符串 VARCHAR(n) 最大长度为n的变长字符串 DATE 日期型,格式YYYY-MM-DD TIME时间型,格式为HH.MM.SS.XX 常用语句: CREATE TABLEDROP TABLE CREATE VIEWDROP VIEW CREATE INDEXDROP INDEX,语法: CREATE TABL

38、E 表名( 列名 数据类型 DEFAULT 缺省值 NOT NULL , 列名 数据类型 DEFAULT 缺省值 NOT NULL , PRIMARY KEY(列名 , 列名 ) , FOREIGN KEY (列名 , 列名 ) REFERENCES 表名(列名 , 列名 ) ,CHECK (条件表达式) ) 注:句法中 表示该成分是可选项。,CREATE TABLE语句,举例,设教学数据库有三个关系: STUDENT (sno, sname, ssex, sage, sdept) COURSE (cno, cname, credit) SC (sno, cno, grade) 基本表STUD

39、ENT可用下列语句创建: CREATE TABLE STUDENT ( sno CHAR(4) NOT NULL, sname CHAR (8) NOT NULL, sage SMALLINT, ssex CHAR(1), sdept CHAR(30), PRIMARY KEY(Sno) ;,主键约束,CREATE TABLE COURSE ( cno CHAR(4) PRIMARY KEY, cname CHAR(50) NOT NULL, credit SMALLINT ) ; CREATE TABLE SC ( sno CHAR(4) NOT NULL, cno CHAR(4) NOT

40、NULL, grade SMALLINT, PRIMARY KEY(sno, cno), FOREIGN KEY(sno) REFERENCES STUDENT(sno), FOREIGN KEY(cno) REFERENCES COURSE(cno), CHECK (grade= 0) ) ;,外键约束,自定义约束,修改基本表:ALERT TABLE语句,ALTER TABLE ADD DROP MODIFY ; :指定需要修改的基本表名 ADD子句:用于增加新列、定义新列的类型和新列的完整性约束。 DROP子句:用于删除指定的完整性约束。 MODIFY子句:用于修改原有的列定义,可以修改列

41、名,列的数据类型。,DROP TABLE语句,语法: DROP TABLE 表名 CASCADE | RESTRICT 注: 撤消基本表后,基本表的定义、表中的数据、表上的索引、以及由此表导出的视图的定义都被删除。 例: DROP TABLE SC ; DROP TABLE COURSE ; DROP TABLE STUDENT ;,建立视图,语法: CREATE VIEW (,) AS WITH CHECK OPTION; 例:建立信息系学生的视图 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sde

42、pt=IS,数据查询语句,数据查询语句是SQL语言中最复杂的部分,允许用户以灵活的方式表达查询意图,并返回数据库中符合条件的数据。 语法: SELECT ALL | DISTINCT目标表的列名或列表达式序列 FROM 基本表和(或)视图序列 WHERE 行条件表达式 GROUP BY 列名序列 HAVING 条件表达式 ORDER BY 列名ASC|DESC 注:SELECT语句中,WHERE子句称为行条件子句,GROUP子句称为分组子句,HAVING子句称为组条件子句,ORDER子句称为排序子句。,举例(简单查询),例1:查询全部学生的所有信息。 SELECT * FROM STUDENT

43、; 例2:查询全部被选课程的课程号。 SELECT DISTINCT cno FROM SC; 例3:列出选修了课程号为C6的所有学生的学号和成绩,并按分数的降序排列。 SELECT sno, grade FROM SC WHERE cno=C6 ORDER BY grade DESC;,例5.3.810,表达查询条件的谓词,比较谓词:,=, ; 例:cno=C6 IN谓词:适合于离散有穷集合的查询; 例:性别 IN (男,女) LIKE谓词:适合于字符串的模糊查询(匹配符%_) 例:书名 LIKE 数据库% NULL谓词:判断空值 例:成绩 IS NULL BETWEEN谓词:适合数值型字段

44、,可以定义一个闭区间;例:成绩 BETWEEN 80 AND 90 多重条件查询,例5.3.1112,例5.3.13,例5.3.14,例5.3.15,例5.3.16,例5.3.17,举例(使用谓词查询),例4:查询信息系(IS)、数学系(MA)以及计算机系(CS)学生的姓名和性别。 SELECT sname, ssex FROM STUDENT WHERE sdept IN(IS,MA,CS); 例5:查询还没有分系的学生的学号和姓名。 SELECT sno, sname FROM STUDENT WHERE sdept IS NULL; 例6:查询所有姓王的学生的姓名、学号和性别。 SELE

45、CT sname, sno, ssex FROM STUDENT WHERE sname LIKE 王%; 注:%代表任意长度的字符串 _(下划线)代表任意单个字符,举例(使用谓词查询),例7:查询课程名以DB开头且倒数第3个字符为I的课程的所有信息。 SELECT * FROM COURSE WHERE cname LIKE DB%I_ _; 例8:查询年龄在20到23岁之间的学生姓名、系别和年龄。 SELECT sname,sdept,sage FROM STUDENT WHERE sage BETWEEN 20 AND 23;,集函数和分组,集函数是面向一个集合的求值函数。 SUM:求总

46、和 AVG:求平均值 COUNT:求集合中元素的个数 MAX:最大值 MIN:最小值 分组就是对查询的结果进行分类。 GROUP子句可以按某些属性的值对查询结果进行分组。 HAVING子句可以对分组后的结果作进一步的筛选。 当查询语句中有GROUP子句时,集函数作用的对象是一个分组的结果,而不是整个查询的结果。,举例(分组查询),例9:查询每门课程的课程号和平均成绩。 SELECT cno, AVG(grade) FROM SC GROUP BY cno; 例10:查询选修了三门以上课程的学生学号。 SELECT sno FROM SC GROUP BY sno HAVING COUNT(*)

47、3; 注:WHERE子句与HAVING子句的区别在于WHERE子句作用于基本表或视图,从中选择满足条件的元组;HAVING短语作用于组,从中选择满足条件的组。,例5.3.1920,连接查询,当查询的信息涉及到多个表中的数据时,要将这些表按某种条件连接起来。 例10:求“数据结构”课程成绩大于85分的学生姓名和成绩,结果按成绩降序排列。 SELECT STUDENT.sname,grade FROM STUDENT,SC,COURSE WHERE STUDENT.sno = SC.sno AND SC.cno = COURSE.cno AND COURSE.cname = 数据结构 AND SC

48、.grade 85 ORDER BY grade DESC; 注:当不同的表中有同名属性时,属性名前要用表名限定。,例5.3.2123,数据更新,数据更新包括数据插入、数据删除和数据修改三种操作。 数据插入 元组值的插入 语法:INSERT INTO 基本表(列表) VALUES(元组值) 作用:将一条元组值插入到表中。 例1:往基本表SC中插入一个元组值 INSERT INTO SC VALUES(S004,数据库,90); 例2:往基本表SC中插入部分元组值 INSERT INTO SC(sno, cno) VALUES(S004,物理); 查询结果的插入 句法: INSERT INTO 基本表名(列名表) 子查询 作用:将子查询返回的结果数据集插入到表中。 要求:查询语句的目标列必须与INTO子句匹配。,例3:将平均成绩大于80分的学生学号和平均成绩存入另一个基本表S_GRADE(Sno, Avg_grade)。 INSERT INTO S_GRADE (Sno, Avg_grade) SELECT Sno, AVG(grade) FROM SC GROUP BY sno HAVING AVG(grade)80; 数据删除 语法:DELETE FROM 基本表WHERE 条件表达式 作用:从表中删除符合WH

温馨提示

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

评论

0/150

提交评论