1、 数据库新技术数据库新技术l一一.本课程主要内容本课程主要内容l二二.主要参考书主要参考书l三三.课程要求与考核方式课程要求与考核方式l四四.数据库技术的发展趋势数据库技术的发展趋势l五五.数据库领域的新技术数据库领域的新技术 一一.本课程主要内容本课程主要内容l第第1 1章章 关系数据库基本理论关系数据库基本理论l 关系数据库基本概念关系数据库基本概念、关系运算关系运算、数据依赖数据依赖、关系数据库范式算法关系数据库范式算法。l第第2章章 数据库系统设计数据库系统设计l 数据库系统设计的任务与内容,数据库系统设计方法与步骤、数据库管理数据库系统设计的任务与内容,数据库系统设计方法与步骤、数据
2、库管理系统的功能与组成。系统的功能与组成。l第第3 3章章 分布式数据库系统分布式数据库系统l 分布式数据库系统的特点分布式数据库系统的特点、分布式数据库系统的体系结构分布式数据库系统的体系结构、分布式查询处分布式查询处理理、分布式事务管理分布式事务管理。l第第4 4章章 面向对象数据库面向对象数据库l 面向对象数据模型面向对象数据模型、面向对象数据库系统的查询与并发控制面向对象数据库系统的查询与并发控制、对象对象-关系关系数据库管理系统。数据库管理系统。l第第5章章 互联网分布式系统的数据资源存储与管理互联网分布式系统的数据资源存储与管理l Key/valueKey/value数据存储与管理
3、系统数据存储与管理系统、数据划分、数据划分、复制与一致性保障复制与一致性保障、可用性可用性保障机制保障机制。本课程主要内容本课程主要内容第第6 6章章 云计算中的数据库云计算中的数据库 介绍几种典型云计算中的数据库存储与管理系统,包括:Google云计算中的数据库Bigtable、Hadoop中的数据库HBase、Amazon云计算中的中的简单数据服务Simple DB与关系数据库服务RDS、微软云计算中的数据库SQL Azure等。云计算补充内容:云计算补充内容:云计算的概念、云计算发展现状、云计算实现机制等。第第7 7章章 大数据时代的数据存储与管理大数据时代的数据存储与管理-NoSQL-
4、NoSQL 大数据简介、关系数据库的瓶颈、NoSQL简介、CAP理论、NoSQL数据模型及分类、NoSQL应用现状、几个典型的NoSQL。第第8 8章章 数据库技术新进展数据库技术新进展 数据库技术新进展,包括:数据仓库、数据挖掘、并行数据库、Web数据库、多媒体数据库、工程数据库、主动数据库等。第第9 9章章 数据库技术论文选读数据库技术论文选读 选择10-15篇与教学内容相关的学术论文进行讲解,让学生了解本学科的基本研究方法与研究方向。二二 主要参考书主要参考书1.1.数据库云平台理论与实践数据库云平台理论与实践 清华大学出版社清华大学出版社 2016.12016.12.2.刘鹏,刘鹏,云
5、计算(第二版)云计算(第二版),电子出版社电子出版社,2011.10 ,2011.10 3.3.何小朝,纵横大数据何小朝,纵横大数据 ,电子出版社电子出版社,2014.5,2014.54.4.王珊王珊 萨师煊,萨师煊,数据库系统概论数据库系统概论 高等教育出版社高等教育出版社 20092009 因为数据库技术涉及内容广泛,本课程使用了比较多的参考书因为数据库技术涉及内容广泛,本课程使用了比较多的参考书,不同章节使不同章节使用不同参考书中相关部分,但本课程内容本身自成体系。对以前一点没有学过用不同参考书中相关部分,但本课程内容本身自成体系。对以前一点没有学过数据库基本知识的同学,可以从参考书数据
6、库基本知识的同学,可以从参考书4 4或其它相关参考书中进一步相关知识。或其它相关参考书中进一步相关知识。三三 课程要求与考核方式课程要求与考核方式v 掌握相关理论、原理与技术掌握相关理论、原理与技术v 完成有课后书面作业与上机实践完成有课后书面作业与上机实践v 期末闭卷考试期末闭卷考试v 成绩:平时作业(成绩:平时作业(3 30 0)期末考试成绩()期末考试成绩(7 70 0)任课教师:苏桂平 手机:邮箱:四四.数据库技术的发展趋势数据库技术的发展趋势l 信息技术的不断发展与信息需求的不断增长是数信息技术的不断发展与信息需求的不断增长是数据库技术不断发展的动力。据库技术不断发展的动力。l 信息
7、需求的深入与多样化不断提出了许多需要解信息需求的深入与多样化不断提出了许多需要解决的问题,信息技术不断快速发展与功能增强,为数决的问题,信息技术不断快速发展与功能增强,为数据库技术提供了坚实的基础。据库技术提供了坚实的基础。l 下面研究数据库技术面临的挑战与发展趋势。下面研究数据库技术面临的挑战与发展趋势。数据库技术面临的挑战数据库技术面临的挑战l(1)环境的变化环境的变化l 数据库系统的应用环境由可控制的环境转变为多数据库系统的应用环境由可控制的环境转变为多变的异构信息集成环境与变的异构信息集成环境与Internet环境。环境。l(2)数据类型的变化数据类型的变化l 数据库中的数据类型由结构
8、化扩大至半结构化、数据库中的数据类型由结构化扩大至半结构化、非结构化与多媒体数据类型。非结构化与多媒体数据类型。l(3)数据来源的变化数据来源的变化l 大量数据将来源于实时与动态的传感器或监测设大量数据将来源于实时与动态的传感器或监测设备,需要处理的数据量成倍剧增。备,需要处理的数据量成倍剧增。l(4)数据管理要求的变化数据管理要求的变化l 许多新型应用需要支持协同设计与工作流管理。许多新型应用需要支持协同设计与工作流管理。数据库技术的发展趋势数据库技术的发展趋势l可以执行分布式处理的可以执行分布式处理的分布式数据库技术分布式数据库技术l可以处理复杂对象的可以处理复杂对象的面向对象数据库技术面
9、向对象数据库技术l可以处理多媒体海量数据的可以处理多媒体海量数据的多媒体数据库技术多媒体数据库技术l可以对数据库中数据进行多维与历史分析的可以对数据库中数据进行多维与历史分析的数据仓库技术数据仓库技术l可以支持长事务与协调处理的可以支持长事务与协调处理的工作流数据库技术工作流数据库技术l可以存储空间位置信息的可以存储空间位置信息的空间数据库技术空间数据库技术l移动互联、社交网络、电子商务等极大拓展了互联网的边界与应移动互联、社交网络、电子商务等极大拓展了互联网的边界与应用范围,各种数据正在迅速膨胀并变大,出现了用范围,各种数据正在迅速膨胀并变大,出现了大数据存储与管大数据存储与管理技术理技术l
10、为了将计算任务分布在大量计算机构成的资源池上,使各种应用为了将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间与信息服务,产生了系统能够根据需要获取计算力、存储空间与信息服务,产生了云云计算计算与对应的数据库技术与对应的数据库技术 Key/Value数据数据库库 大数据技术大数据技术 云计算中的数据库云计算中的数据库 分布式数据库分布式数据库 面向对象数据库面向对象数据库 对象对象关系数据库关系数据库 数据仓库与数据挖掘数据仓库与数据挖掘主动数据库主动数据库空间数据库空间数据库时态数据库时态数据库嵌入式数据库嵌入式数据库并行数据库并行数据库多媒体数据库多媒
11、体数据库工程数据库工程数据库 五五.数据库领域的新技术数据库领域的新技术 除了传统的关系数据库外,有新的数据库及相关技术不断除了传统的关系数据库外,有新的数据库及相关技术不断出现,主要包括出现,主要包括:NoSQLNoSQL数据模型及分类数据模型及分类(在云平台与大数据时代(在云平台与大数据时代)类型类型部分代表部分代表特点特点列存储列存储HbaseCassandraHypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化与半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储文档存储MongoDBCouchDB文档存储一般用类似json的格式
12、存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储存储Tokyo Cabinet/TyrantBerkeley DBMemcacheDBRedis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储图存储Neo4JFlockDBInfoGrid图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储对象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库数据库Berkeley DB XMLB
13、aseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。第第1 1章章 关系数据库关系数据库基本基本理论理论l1.1 关系数据库基本概念关系数据库基本概念l1.2 关系运算关系运算l1.3 数据依赖数据依赖l1.4 关系数据库范式理论关系数据库范式理论l 1.1 关系数据库基本概念1.1.1 1.1.1 数据模型数据模型1.1.2 1.1.2 关系与关系模式关系与关系模式1.1.3 1.1.3 键键1.1.4 1.1.4 关系的更新关系的更新数据模型的组成要素:数据模型的组成要素:数据结构、数据操作、数据结构、数据操作、数据的完整性数据的完整性基本的数据模型分类
14、:基本的数据模型分类:层次、网状、关系数据模型、层次、网状、关系数据模型、面向对象数据模型面向对象数据模型、Key/Value Key/Value数据存储模式。数据存储模式。1.1.1 数据模型数据模型 1.数据模型的组成要素数据模型的组成要素(l)数据结构:)数据结构:用于描述数据的静态结构,包括应用用于描述数据的静态结构,包括应用所涉及的对象类与对象类所具有的特性以及它们之间所涉及的对象类与对象类所具有的特性以及它们之间的联系。的联系。(2)数据操作:)数据操作:是施加在对象上的一组操作,是对系是施加在对象上的一组操作,是对系统动态特性的描述。统动态特性的描述。(3)数据的完整性:)数据的
15、完整性:是对数据静态与动态特征性的限是对数据静态与动态特征性的限制,是一组完整性规则的集合。制,是一组完整性规则的集合。完整性规则是用以限定符合数据模型的数据库状完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。态以及状态的变化,以保证数据的正确、有效、相容。(1)(1)层次模型层次模型 有且仅有一个结点无双亲,称为根结点;有且仅有一个结点无双亲,称为根结点;其它结点有且仅有一个双亲。其它结点有且仅有一个双亲。层次模型的数据结构是一棵树。层次模型的数据结构是一棵树。2.基本数据模型分类基本数据模型分类 班级教研室系科室部科室处大学大学组织机构的层次模型大
16、学组织机构的层次模型 (2)网状模型网状模型 允许一个结点可以有多个双亲;允许一个结点可以有多个双亲;多个结点无双亲结点。多个结点无双亲结点。班级课程学生 基本结构是二维表,一张表称为一个关系。基本结构是二维表,一张表称为一个关系。与层次与网状模型比较,关系模型有下列优点:与层次与网状模型比较,关系模型有下列优点:数据结构单一;数据结构单一;建立在严格的数学概念基础上;建立在严格的数学概念基础上;将数据定义与数据操纵统一在一种语言中,使用方将数据定义与数据操纵统一在一种语言中,使用方便,易学易用。便,易学易用。l 由于关系模型具有许多优点,因而在由于关系模型具有许多优点,因而在8080年代之后
17、的年代之后的商品化数据库系统几乎都是关系型的。商品化数据库系统几乎都是关系型的。(3)关系数据模型关系数据模型 陆川陆川 200402 刘敏刘敏 200401 李丽李丽 200302 王鸣王鸣 200301 班级班级 姓名姓名 学号学号(a)学生关系学生关系 9020042 数数 据据 库库 计算机计算机 曹曹 岩岩 9020041 人工智能人工智能 计算机计算机 马小路马小路 9020032 英语英语 外外 语语 赵赵 伟伟 9020031 计算数学计算数学 数数 学学 吴云峰吴云峰 班级班级 课程课程 系别系别 教师姓名教师姓名(b)教师开课关系教师开课关系 可以表示复杂对象;可以表示复杂
18、对象;模块化的结构,便于管理;模块化的结构,便于管理;具有定义抽象数据类型的能力。具有定义抽象数据类型的能力。面向对象的数据模型是新一代数据库系统的面向对象的数据模型是新一代数据库系统的基础,是数据库技术发展的方向。基础,是数据库技术发展的方向。(4)面向对象数据模型面向对象数据模型 (5)Key/Value(5)Key/Value数据存储模式数据存储模式l 传统关系数据库是针对结构化数据以及这些数据之上的复杂查询设计传统关系数据库是针对结构化数据以及这些数据之上的复杂查询设计的。的。互联网计算环境下,互联网计算环境下,数据的规模较大,要处理的互联网数据有很多是数据的规模较大,要处理的互联网数
19、据有很多是非结构化的数据,很多互联网应用非结构化的数据,很多互联网应用(例如互联网搜索、电子商务等应用)(例如互联网搜索、电子商务等应用)并不需要对数据进行复杂的查询并不需要对数据进行复杂的查询,这就使得传统关系型数据库的一些优点,这就使得传统关系型数据库的一些优点在互联网环境下反而成为了缺点。在互联网环境下反而成为了缺点。l 分布式分布式key/value存储系统比关系数据库更适于互联网环境存储系统比关系数据库更适于互联网环境,所以,所以,只只需主键简单查询的需求广泛存在于互联网应用需主键简单查询的需求广泛存在于互联网应用中中,分布式,分布式key/value存储与存储与管理系统日益受到重视
20、管理系统日益受到重视。l 一个一个Key/ValueKey/Value数据模型例子如下图数据模型例子如下图:1.1.2 1.1.2 关系与关系模式关系与关系模式1.1.关系关系 在关系模型中唯一的数据结构是关系,一个关系对应一张在关系模型中唯一的数据结构是关系,一个关系对应一张二维表。二维表。域域 :具有相同数据类型的值的集合。具有相同数据类型的值的集合。定义定义1 1(笛卡尔积)笛卡尔积):D D1 1,D,D2 2,.,Dn,.,Dn的笛卡尔积为:的笛卡尔积为:D D1 1 D D2 2.D Dn n=(d=(d1 1,d,d2 2,.,d,.,dn n)d di i D Di i,i=1
21、,2,.,n i=1,2,.,n。其中每一个元素其中每一个元素(d d1 1,d,d2 2,.,d,.,dn n)叫做一个叫做一个n n元组元组(n-tuple)n-tuple),元素,元素中第中第i i个值个值d di i叫做第叫做第i i个分量。个分量。例:例:设设D D1 1=1=1,2 2,33,D D2 2=a,b=a,b D D1 1 D D2 2=(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)=(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)实际上,如实际上,如D1D1学生集(学生集(5050个),个),如如D2D2班级集(班级集(2
22、 2个),个),D1 D1 D2 D2 有多少元素?具体意义?有多少元素?具体意义?定义定义2 2(关系):(关系):集合集合D D1 1,D,D2 2,.,D,.,Dn n笛卡尔积的任一笛卡尔积的任一个子集称该集合上的一个关系个子集称该集合上的一个关系(Relation)Relation)。其中其中,集合集合D D1 1,D,D2 2,.,Dn,.,Dn是关系中元组的取值范围是关系中元组的取值范围,称关系的,称关系的域域(domain)domain),这些域是有限的非空集合,这些域是有限的非空集合,n n叫做关系的叫做关系的度度(degree)degree)。关系的基本概念关系的基本概念 关
23、系关系(Relation)二维表,关系用关系名标识,如关系二维表,关系用关系名标识,如关系r。元组元组(Tuple)表中的行,一般用变量表中的行,一般用变量 t 表示。表示。属性属性(Attribute)表中的一列,如列表中的一列,如列A Ai i,domAdomAi i 表示属性表示属性A Ai i的域的域 键键(Key,码),码)可以唯一地确定一个元组的属性组。可以唯一地确定一个元组的属性组。关系举例:关系举例:火车时刻表火车时刻表dom(NUMBER)=565,523,532,K95,K96 dom(FROM)=dom(TO)=BeiJing,XuZhou,ShenZhen dom(DE
24、PARTS)=dom(ARRIVES)=一组时间。一组时间。表表1 火车时刻表火车时刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS FROMNUMBER TOXuZhouXuZhouh关系的性质关系的性质 (关系数据库中对关系的限定关系数据库中对关系的限定)1.1.每一列中的值是同类型的数据,来自同一个域。每一列中的值是同类型的数据,来自同一个域。2.2.不同的列
25、可以有相同的域,每一列称为属性,用属性不同的列可以有相同的域,每一列称为属性,用属性名标识。名标识。3.3.列的顺序是无关紧要的。列的顺序是无关紧要的。4.4.任意二个元组不能完全相同。(相同元组称重复组)任意二个元组不能完全相同。(相同元组称重复组)5.5.行的顺序是无关紧要的。行的顺序是无关紧要的。6.6.关系中的每个分量都是原子值,是不可分的数据项。关系中的每个分量都是原子值,是不可分的数据项。2.2.关系模式关系模式 关系模式一般表示为:关系模式一般表示为:关系名(属性关系名(属性1、属性属性n)如:如:R R(A(A1 1,A,A2 2,A,An n)。用用U U表示关系表示关系R
26、R的属性集合的属性集合 U=A1A2An,U=A1A2An,模式模式R R上的一个关系上的一个关系r r是从是从U U到到D D的映象。的映象。元组元组trtr,t t的分量用的分量用tAtAi i 表示表示.tAtAi iDDi i例:例:在学生关系模式在学生关系模式 S(SNO,SNAME,AGE,SEX,CNO)中,中,当当CNO=1,就可以一班学生的列表,即一个具体的关系;就可以一班学生的列表,即一个具体的关系;当当CNO=2,就可以二班学生的列表,即另一个具体的关系。就可以二班学生的列表,即另一个具体的关系。定义定义(关系数据库模式关系数据库模式):l 设属性集设属性集U与与U的属性
27、所关联的域为的属性所关联的域为D,U上的上的关系数关系数据库模式据库模式R是是 R1,R2,Rp 的集合,即:的集合,即:R=R1,R2,Rp,且且U=R1 R2 Rp。l比如:比如:lR1为学生关系:为学生关系:S(Sno,Sname,Sbirth,Dept,Class,Rno)lR2为班级关系:为班级关系:C(Class,Pname,Dept,Cnum,Cyear)R3为系关系:为系关系:D(Dept,Dno,Office,Dnum)R4为学生会为学生会 关系:关系:M(Mname,Myear,Maddr,Mnum)l关系数据库:关系数据库:一个一个关系数据库模式关系数据库模式R 对应的所
28、有关系集合对应的所有关系集合 r1,r2,rp称为关系数据库模式称为关系数据库模式R上的一个关系数据库上的一个关系数据库d.关系模式与关系的区别与联系:l关系模式:对一类实体特征的结构性描述,即对关系的对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域结构性描述,该描述一般包括关系名、属性名、属性域的类型与长度,属性之间固有的依赖联系等。的类型与长度,属性之间固有的依赖联系等。l关系模式与关系的区别与联系:关系模式描述的是关系关系模式描述的是关系的静态结构信息,是对一个关系的的静态结构信息,是对一个关系的“型型”的描述,是相的描述,是相对固定的。关系是在关系
29、模式约束之下的若干实体的集对固定的。关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。系模式的约束范围内。l 一般用大写字母表述关系的结构,比如一般用大写字母表述关系的结构,比如R R,用小写字母一个具,用小写字母一个具体的关系值体的关系值,如如r.r.1.1.1.1.3 3 键(键(KeyKey)与关系的完整性)与关系的完整性 1.1.键键 设关系模式设关系模式R(U)R(U),K K U U,r r是是R R上的任一关系,若上的任一关系,若对对r r中的任意二个不同的元组中的任意二个不同
30、的元组t t1 1、t t2 2满足满足:(1)(1)t t1 1K K t t2 2KK;(2)(2)若若 K K K K 而而t t1 1KK t t2 2KK 不成立。不成立。称称K K是是R R的的键键。若仅条件。若仅条件(1)1)成立,成立,K K是是R R的的超键超键。有键的定义得出:键是能唯一标示元组的最小属有键的定义得出:键是能唯一标示元组的最小属性集。在上面火车时刻表的例子中,性集。在上面火车时刻表的例子中,NUMBERNUMBER是一个是一个键。键。2.主键、隐含键、候选键、主键、隐含键、候选键、超键超键l主键:主键:有的关系具有多于一个键,这种情况下指派其中有的关系具有多
31、于一个键,这种情况下指派其中一个键为主键,简称为关系的键。用带下划线的属性表一个键为主键,简称为关系的键。用带下划线的属性表示。例如:示。例如:lTRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)l TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)l隐含键:隐含键:未被制定的键称隐含键,也称替补键。未被制定的键称隐含键,也称替补键。l候选键:候选键:主键与隐含键统称为候选键。主键与隐含键统称为候选键。l超键:超键:在上面键的定义中,若条件(在上面键的定义中,若条件(2)不成立,称)不成立,称K为为R的超键。的超键。例如:例如:NUMBER、FR
32、OM是一个超键。是一个超键。3.3.关系的完整性关系的完整性 (1 1)关系模型的三要素:)关系模型的三要素:数据结构数据结构 关系模型的数据结构为单一的关系,它表示了实体与实关系模型的数据结构为单一的关系,它表示了实体与实体间的联系。体间的联系。关系操作关系操作 关系操作关系操作 关系代数:布尔运算、专门关系运算;关系代数:布尔运算、专门关系运算;关系演算:关系元组演算、域演算。关系演算:关系元组演算、域演算。完整性约束完整性约束 实体完整性、参照完整性、用户定义的完整性。实体完整性、参照完整性、用户定义的完整性。实体完整性实体完整性 关系中键属性的值不能取关系中键属性的值不能取空值空值。例
33、如:学生关系例如:学生关系 S(S(SNOSNO,SNAME,AGE,SEX,CNO),SNAME,AGE,SEX,CNO)参照完整性参照完整性 是关系间引用所遵循的规则,与是关系间引用所遵循的规则,与外键外键有关。有关。用户定义的完整性用户定义的完整性 数据间应满足的语义约束关系,由用户定义,由系统检数据间应满足的语义约束关系,由用户定义,由系统检查。查。(2 2)完整性约束)完整性约束 下下页u 外键:外键:设设F F是关系是关系R R的一个或一组属性,但不是的一个或一组属性,但不是R R的键。的键。若若F F是另一个关系是另一个关系S S的键,则称的键,则称F F是关系是关系R R的外键
34、。的外键。R R为参照关系,为参照关系,S S为被参照关系。为被参照关系。例如:例如:参照关系参照关系 学生关系学生关系 S(S(SNOSNO,SNAME,AGE,SEX,SNAME,AGE,SEX,CNOCNO)班级关系班级关系 C(C(CNOCNO,CMN),CMN)-被参照关系被参照关系 u 参照完整性规则参照完整性规则 关系关系R R中外键的值或者为空值,或中外键的值或者为空值,或者为被参照关系中主键的值。者为被参照关系中主键的值。建立表结构与完整性约束建立表结构与完整性约束 补充:补充:SQLSQL语言简介语言简介 SQL是英文是英文Structured Query Language
35、的缩写,意思为的缩写,意思为结构化查询语言。结构化查询语言。SQLSQL语言将数据定义语言语言将数据定义语言DDLDDL、数据操纵语言、数据操纵语言DMLDML、数据控制语言、数据控制语言DCLDCL的功能集于一体,可以独立完成数据库的功能集于一体,可以独立完成数据库生命周期中的全部活动生命周期中的全部活动.SQL被作为关系型数据库管理系统的标准语言。被作为关系型数据库管理系统的标准语言。目前,目前,绝绝大多数流行的关系型数据库管理系统,如大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了等都采用了SQL语言标准。语
36、言标准。基本的基本的SQL语句包括语句包括Select、Insert、Update、Delete、Create、Drop,它们可以被用来完成几乎所有的数据库操作。,它们可以被用来完成几乎所有的数据库操作。很多数据库根据不同的需要对很多数据库根据不同的需要对SQL语句进行了再开发与扩语句进行了再开发与扩展。展。SQL的基本语句l1.创建新表创建新表l create table tabname(col1 type1 not null primary key,col2 type2 not null,.)l例:CREATE TABLE C l (CNO NUMBER(6),l CMN CHAR(10)
37、)l2.选择选择lselect*from table1 where 范围范围 l例:SELECT SNO,SNAME l FROM S l WHERE CNO=200201l3.插入插入linsert into table1(field1,field2)values(value1,value2)l例:INSERT INTO Sl VALUES(909901,李利,l 21,男,200205);l4.删除删除ldelete from table1 where 范围范围 l例:DELETE FROM Sl WHERE SNO=20100162;l5.更新(修改)更新(修改)lupdate tabl
38、e1 set field1=value1 where 范围范围 l例:UPDATE S l SET Sage=23 l WHERE Sno=20100162l l 完成核心功能完成核心功能SQLSQL语言只用语言只用9 9个动词,并且它的表达接近英语个动词,并且它的表达接近英语句子,所以比较简单、易学。句子,所以比较简单、易学。l SQLSQL语言既是自含式语言,又是嵌入式语言。作为自含式语语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入键盘上直接键入SQLSQL命令对数据
39、库进行操作;作为嵌入式语言,命令对数据库进行操作;作为嵌入式语言,SQLSQL语句能够嵌入到高级语言,比如:语句能够嵌入到高级语言,比如:C C、PL/1PL/1、FORTRANFORTRAN。CREATE TABLE SCREATE TABLE S (SNO NUMBER(4)SNO NUMBER(4),SNAME CHAR(10)NOT NULLSNAME CHAR(10)NOT NULL,AGE NUMBER(3),AGE NUMBER(3),SEX CHAR(1),SEX CHAR(1),CNO NUMBER(6),CNO NUMBER(6),CONSTRAINT SK1 CONSTR
40、AINT SK1 PRIMARY KEY(SNO),PRIMARY KEY(SNO),CONSTRAINT SK2 FOREIGN KEY(CNO)CONSTRAINT SK2 FOREIGN KEY(CNO)REFERENCES C(CNO),REFERENCES C(CNO),CONSTRAINT SK3 CONSTRAINT SK3 CHECK(AGE IN(16,45)CHECK(AGE IN(16,45);CREATE TABLE C CREATE TABLE C (CNO NUMBER(6)CNO NUMBER(6),CMN CHAR(10),CMN CHAR(10),CONSTR
41、AINT CK CONSTRAINT CK PRIMARY KEY(CNO)PRIMARY KEY(CNO);1.1.4 1.1.4 关系的更新关系的更新插入、删除、修改 1 1插入插入 对关系对关系r(Ar(A1 1,A,A2 2,An),An),插入操作形式为:插入操作形式为:ADD(rADD(r;A A1 1=d=d1 1,A,A2 2=d=d2 2,A An n=d=dn n)ADD(r ADD(r;d d1 1,d,d2 2,d,dn n)例:例:ADD(SADD(S;SNO=909901,SNAME=SNO=909901,SNAME=李利李利,AGE=21,SEX=AGE=21,S
42、EX=男,男,CLASSNO=200205CLASSNO=200205)插入操作的有效检查:插入操作的有效检查:(1).(1).描述的元组是否符合所指定的关系模式描述的元组是否符合所指定的关系模式;(2).(2).元组的某些值是否属于对应的域元组的某些值是否属于对应的域;(3).(3).元组的键是否已在关系中存在。元组的键是否已在关系中存在。例:用例:用SQLSQL语言实现在学生关系语言实现在学生关系S S中插入一个元组。中插入一个元组。INSERT INTO SINSERT INTO S VALUES VALUES(909901909901,李利李利,21 21,男男,20020520020
43、5););2 2删除删除 对关系对关系r(Ar(A1 1,A,A2 2,An),An),删除操作形式为:,删除操作形式为:DEL(rDEL(r;A A1 1=d=d1 1,A,A2 2=d=d2 2,A An n=d=dn n)DEL(r DEL(r;d d1 1,d,d2 2,d dn n););若若K=BK=B1 1B B2 2B Bm m,DEL(r;BDEL(r;B1 1=k=k1 1,B,B2 2=k=k2 2,B Bm m=k=km m)例:例:DEL(SDEL(S;SNO=909901,SNAME=SNO=909901,SNAME=李利李利,AGE=21,SEX=AGE=21,S
44、EX=男,男,CLASSNO=200205CLASSNO=200205)删除操作的检查:删除操作的检查:如果被删除元组在关系中不存在,如果被删除元组在关系中不存在,这个关系将保持不变,但需给出一个出错提示这个关系将保持不变,但需给出一个出错提示。*删去最后一个元组不受限制,即允许是空关系。删去最后一个元组不受限制,即允许是空关系。实际上,为了识别被删除的元组并不实际上,为了识别被删除的元组并不需要所有元组的信息,只需要制定键需要所有元组的信息,只需要制定键的值就足够了。比如:的值就足够了。比如:删除学号为删除学号为909901909901的学生元组的学生元组 DELETE FROM SDELE
45、TE FROM S WHERE SNO=909901 WHERE SNO=909901;3 3修改修改 修改元组的部分值。对关系修改元组的部分值。对关系r(Ar(A1 1,A,A2 2,An),An),若属性集,若属性集 C C1 1,C,C2 2,Cp,Cp A A1 1,A,A2 2,An,An,则修改操作形式为:则修改操作形式为:CH(rCH(r;A A1 1=d=d1 1,A,A2 2=d=d2 2,A An n=d=dn n;C C1 1=e=e1 1,C,C2 2=e=e2 2,C,Cp p=e=ep p)如果如果K KBB1 1,B,B2 2,B Bm m 为键,则可简化为:为键
46、,则可简化为:CH(rCH(r;B B1 1=k=k1 1,B,B2 2=k=k2 2,B Bm m=k=km m;C C1 1=e=e1 1,C,C2 2=e=e2 2;C Cp p=e=ep p)例例:CH(SCH(S;SNO=909901SNO=909901;CLASSNO=200203)CLASSNO=200203)修改操作可用删除操作后跟一个插入操作实现。对插修改操作可用删除操作后跟一个插入操作实现。对插入与删除操作的限制可运用到修改操作中。入与删除操作的限制可运用到修改操作中。例例:施加一系列操作于火车时刻表施加一系列操作于火车时刻表 1.1.ADD(trainADD(train;
47、33,TianJin,ShangHai,33,TianJin,ShangHai,17:20,10:36);17:20,10:36);2.ADD(train2.ADD(train;Y15,BeiJing,TianJin,Y15,BeiJing,TianJin,10:05,12:43);10:05,12:43);3.DEL(train3.DEL(train;523);523);4.CH(train4.CH(train;NUMBER=532;NUMBER=532;DEPARTS=22:45,ARRIVES=10:42)DEPARTS=22:45,ARRIVES=10:42)。火车时刻表火车时刻表7:
48、3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS FROMNUMBER TOXuZhouXuZhou 练习练习l 建立一个关于系、学生、班级、学会等诸信息的关系建立一个关于系、学生、班级、学会等诸信息的关系数据库。数据库。l 学生:学号、姓名、出生年月、系名、班号、宿舍区。学生:学号、姓名、出生年月、系名、班号、宿舍区。l 班级:班号、专业名、系名、人数、入校年份。班级:班
49、号、专业名、系名、人数、入校年份。l 系:系名、系号、系办公地点、人数。系:系名、系号、系办公地点、人数。l 学会:学会名、成立年份、办公地点、人数。学会:学会名、成立年份、办公地点、人数。l 语义如下:一个系有若干专业,每个专业每年只招一语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。加某学会有一个入会年份。l 请给出关系模式,指出各关系模式的候选键与外键请给出关系模式
50、,指出各关系模式的候选键与外键。练习解答练习解答l解:解:(1)关系模式如下:关系模式如下:l 学生:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)l 班级:班级:C(Class,Pname,Dept,Cnum,Cyear)l 系:系:D(Dept,Dno,Office,Dnum)l 学会:学会:M(Mname,Myear,Maddr,Mnum)l (2)各关系模式的候选键、外部键如下:各关系模式的候选键、外部键如下:l A、学生、学生S候选键:候选键:Sno;外部键:;外部键:Dept、Class;l B、班级、班级C候选键:候选键:Class;外部键:;外部键: