同方第6章62信息系统与数据库.ppt
关系数据模型(操作),在关系数据库中,通常可以定义一些操作来通过已知的关系(二维表)创建新的关系(二维表)。最常用的关系操作有:并 插入 交 更新 差 删除 笛卡尔积 选择 除 连接 投影,专门的关系操作,传统集合的关系操作,关系数据模型(操作),举例用例(5张二维表):,SC1:60-80分成绩表,SC2:70-100分成绩表,关系数据模型(传统集合的关系操作),并 并操作是一个二元操作。它要求参与操作的两个关系有相同的关系模式。其作用是将两个关系组合成一个新的关系。根据集合论的定义,并操作创建的新关系中的每一个元组或者属于第一个关系、或者属于第二个关系,或者在两个关系中皆有。,结果关系表示选课程学生的“60100分成绩表”,关系数据模型(传统集合的关系操作),交 交操作也是一个二元操作。它对两个具有相同关系模 式的关系进行操作,创建一个新关系。根据集合论的定义,交操作所创建新关系中的每一个元组必须是两个原关系中共有的成员。,结果表示选课学生“70分80分成绩表”。,关系数据模型(传统集合的关系操作),.,差 差操作也是一个二元操作。它应用于具有相同关系模式的两个关系。生成新关系中的元组是存在于第一个关系而不存在于第二个关系中的元组。例如,关系SC1与关系SC2进行差操作:,结果关系包括那些在SC1表中而不在SC2表中的成绩信息,即“60 69分成绩表”,关系数据模型(传统集合的关系操作),差(续)在集合操作中,“并”和“交”具有交换律的性质,而“差”操作没有交换律的性质.例如,关系SC2与关系SC1进行差操作:,结果关系包括那些在SC2表中而不在SC1表中的成绩信息,即“81 100分成绩表”,SC2,SC1,差,SC1SC2=SC2SC1SC1SC2=SC2SC1SC1SC2SC2SC1,关系数据模型(专门的关系操作),插入 插入操作是一种一元操作。它应用于一个关系,其操作是在关系中插入新的元组(或另一个具有相同模式的关系).例如:在课程开设表(C)中插入一个新的课程信息(CW101,论文写作,30,春)。,关系数据模型(专门的关系操作),删除 删除操作为一元操作。它根据要求删去表中相应的元组。例如:从课程表(C)中删除课程CC112。,关系数据模型(专门的关系操作),更改 更改操作也是一种一元操作,它应用于一个关系。用来改变关系中指定元组中的部分属性值。例如:课程开设表(C)中的课程ME234元组的LHOUR值由“40”改为“30”,SEMESTER值由“秋”改为“春”。,关系数据模型(专门的关系操作),选择 选择操作是一元操作。它应用于一个关系并产生另一个新关系。新关系中的元组(行)是原关系中元组的子集。选择操作根据要求从原先关系中选择部分元组。结果关系中的属性(列)与原关系相同(保持不变)。例如:从学生登记表(S)中,选出性别为“男”的学生元组,组成一个新关系“男学生登记表”。,关系数据模型(专门的关系操作),投影 是一元操作,它作用于一个关系并产生另一个新关系。新关系中的属性(列)是原关系中属性的子集。在一般情况下,虽然新关系中的元组属性减少了,但其元组(行)的数量与原关系保持不变。例如:需要了解学生选课情况而不关心其成绩时,可对学生选课成绩表(SC)进行相关的投影操作.。,其结果的每个元组仅包括学(SNO)课程号(CNO)两个属性,关系数据模型(专门的关系操作),连接 是一个二元操作。它基于共有属性把两个关系组合起来。连接操作比较复杂并有较多的变化。例如:学生登记表(S)和学生选课成绩表(SC)的连接,生成一个信息更全面的关系.,对于已选课程的学生而言,结果关系包含SC表原来的信息,并增加了该学生选修课程号(CNO)和成绩(GRADE)。,关系数据库语言SQL,数据库语言 以上讨论的关系操作,比较直观地说明了其对二维表运算的含意(数学上对关系操作的抽象描述是“关系代数”)。在此基础上,关系数据库管理系统必须配置与此相应的语言,使用户可以对数据库进行各式各样的操作,这就构成了用户和数据库的接口。由于DBMS所提供的语言一般局限于对数据库的操作,不同于计算机的程序设计语言,因而称它为数据库语言.,DB,数据库语言程序,用户,关系数据库语言SQL,关系数据库语言SQL特点 是一种“非过程语言”体现关系模型在结构,完整性和操作方面的特征 有命令和嵌入程序两种使用方式 功能齐全,简洁易学,使用方便 为主流DBMS产品所支持,用户只要指出“做什么”,而“如何做”的过程由DBMS完成.,命令式:直接用语句操作嵌入式:将语句嵌入程序,ORACLE,MS-SQL Server,Sybase DB2,(Access,VFP有接口),关系数据库语言SQL,关系数据库语言SQL 3级体系结构,用户看到的关系模式主要是视图,系统的全局关系模式是基本表,系统的存储结构是文件,关系数据库语言SQL,SQL数据定义语言DDL 作为建立数据库最重要的一步,根据关系模式定义所需的基本表,SQL语句表示为:其中:表示可含有该子句,也可为空.基本表名字.每个基本表可以由一个或多个列组成。定义基本表时要指明每个列的类型和长度,同时还可 以定义与该表有关的完整性约束条件,,CREATE TABLE(列名数据类型完整性约束条件,),关系数据库语言SQL,DDL例:按照关系模式S,定义学生基本表的SQL语句:,执行语句后,在数据库建立一个学生表S的结构,CREATE TABLE S(SNO CHAR(4),(类型为定长字符串)SNAME VARCHAR(8)(类型为变长字符串,串长为8)DEPART VARCHAR(12),SEX CHAR(2)BDATE DATE,(类型为日期型)HEIGHT DEC(5,2),(类型为5位十进制数,小数点后2位)PRIMARY KEY(SNO);(指明SNO为S的主键),关系数据库语言SQL,SQL的数据查询 查询是数据库的核心操作。SQL提供SELECT语句,具有灵活的使用方式和极强查询的功能。关系操作中最常用的是“投影、选择和连接”,都体现在SELECT语句中:SELECT A1,A2,An FROM R1,R2,Rm WHERE F SELECT语句语义为:将FROM子句所指出的R(基本表或视图)进行连接,从中选取满足WHERE子句中条件F的行(元组),最后根据SELECT子句给出的A(列名)将查询结果表输出。,指出目标表的列名,相应于“投影”,指出基本表或视图,相应于“连接”,F为“选择”操作的条件,关系数据库语言SQL,单表查询 从指定的一个表中找出符合条件的元组.例如,查询所有男学生名的情况.,SELECT*FROM S WHERE SEX男;,关系数据库语言SQL,连接查询 一个查询同时涉及两个以上的表,称连接查询。是关系数据库中最主要的查询。例如,查询每个男学生及其选修课程的情况。要求列出学生名,系别,选修课程名及成绩。SELECT SNANE,DEPART,CNAME,GRADE FROM S,C,SC WHERE S.SNOSC.SNO AND SC.CNOC.CNO AND S.SEX男;,查询涉及S、C和SC三个表,S和SC表通过SNO作连接,C和SC表通过CNO来实现连接,关系数据库语言SQL,SQL的数据更新SQL提供了插入数据、更改数据和删除数据的3类语句。(1)插入语句 插入语句INSERT可将一个记录插入到指定的表中:例如,将一个新的课程记录插入到课程开设表C中:,INSERT INTO(,)VALUES(,),INSERT INTO S(CNO,CNAME,LHOUR,SEMESTER)VALUES(CW101,论文写作,30,春),关系数据库语言SQL,(2)更改语句 对指定表中已有数据进行修改。语句格式如下:其功能是修改指定表中满足WHERE子句条件的记录,其中SET子句给出的值用于取代相应列的值.例如:将ME234课程的课时改为30,并改成春季开设:,UPDATE SET.WHERE,UPDATE C SET LHOUR=30,SEMESTER春 WHERE CNOME234;,关系数据库语言SQL,(3)删除数据 SQL删除语句的格式为:其功能是从指定表中删除满足WHERE子句条件的记录。如果省略WHERE子句,则删除表中所有记录.例如,从C表中删除课程号为CC112的记录:,DELETE FROM WHERE,DELETE FROM C WHERE CNO=CC112;,关系数据库语言SQL,SQL的视图 视图是DBMS所提供的一种由用户观察数据库中数据的重要机制。视图可由基本表或其他视图导出。它与基本表不同,视图只是一个虚表,在数据字典中保留其逻辑定义,而不作为一个表实际存储数据。SQL用CREATE VIEW语句建立视图,其格式为:CREATE VIEW 视图名列名,AS 子查询,关系数据库语言SQL,SQL视图的例:例如,若建立管理工程系学生的视图ME_S,语句为:视图定义后,用户就可以象对基本表操作一样对视图进行查询。例如,在管理工程系的学生视图中找出年龄大于25岁的学生,其SQL语句为:,CREATE VIEW ME_s AS(SELECT SNO,SNAME,SEX,BDATE,HEIGHT FROM S WHERE DEPART管理工程);,SELECT SNANE 2008-YEAR(BDATE)FROM ME_S WHERE 2008YEAR(BDATE)25;,数据库系统及应用新技术,数据库体系结构的发展 DBS运行在计算机系统之上,其体系结构与计算机体系结构密切相关。因此DBS的系统结构也随着它的硬件和软件支撑环境的变化而不断演变。集中式数据库系统。早期的DBMS以分时操作系统作为运行环境,采用集中式的数据库系统结构,把数据库建立在本单位的主计算机上,且不与其他计算机系统进行数据交互。在这种系统中,不但数据是集中的,数据的管理也是集中的。,.,终端,DB,数据库体系结构的发展,客户/服务器结构(C/S)是一种网络处理系统。有多台用作客户机的计算机和一至多台用作服务器的计算机。客户机直接面向用户,接收并处理任务,将需要DB操作的任务委托服务器执行;而服务器只接收这种委托,完成对DB的查询和更新,并把查询结果返回给客户机。C/S结构的DBS虽然处理上是分布的,但数据却是集中的,还是属于集中式数据库系统。,客户机,计算机网络,DB,数据库服务器,数据库体系结构的发展,浏览器/服务器结构(B/S)由浏览器,Web服务器,数据库服务器3个层次组成.客户端使用一个通用的浏览器代替了各种应用软件.用户操作通过浏览器执行.,客户机,计算机网络,DB,浏览器,数据库服务器,数据库体系结构的发展,分布式数据库系统 数据共享和数据集中管理是数据库的主要特征。但面对应用规模的扩大和用户地理位置分散的实际情况,如果一个单位的计算机仍用联网式的集中数据库系统,将会产生很多问题:各个用户结点计算机要通过网络存取数据,如何解决通信开销太大和延迟的问题?一旦数据库不能工作还将导致整个系统 的瘫痪,如何保证系统的可用性和可扩性?,?,数据库体系结构的发展,在分布式DBS中,把一个单位的数据按其来源和用途,合理分布在系统的多个地理位置不同的计算机结点上(局部数据库),使数据可以就近存取。数据在物理上分布后,由系统统一管理。系统中每个地理位置上的结点实际上是一个独立的DBS,它包括本地结点用户、本地DBMS和应用软件。每个结点上的用户都可以通过网络对其他结点数据库上的数据进行访问,就如同这些数据都存储在自己所在的结点数据库上一样。,计算机网络,DB,DB,DB,DDBMSn,DDBMS2,DDBMS1,DDBMS是分布式数据库管理系统,数据库体系结构的发展,并行数据库系统,随着应用领域DB规模的增长,其运行负荷日益加重,对DBS性能要求也越来越高.,需求:,计算机系统通过并行地使用多个 CPU和磁盘,可提高处理速度和IO速度。,技术:,并行数据库系统,并行处理技术很适宜与关系DBS技术相结合,在关系模型中,数据库二维表是元组的集合,DBS操作也是集合操作;在许多情况下对集合的操作可分解为一系列对子集的操作,这些子集操作存在很好的并行性,后面章节建议看书,