第4章(2)北京建筑工程学院王文宇空间数据库—关系数据库第二节关系数据库一.概述二.关系模型三.SQL语言四.Arcviewtables五.应用实例(人事管理信息系统)一概述系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式一概述(续)典型实验系统SystemRUniversityINGRES典型商用系统ORACLESYBASEINFORMIXDB2INGRES二关系数据模型20世纪80年代以来,关系型数据库理论日益成熟并得到空前广泛的应用。关系数据模型成为主流数据模型单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。两个实体型间的联系实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系7RelationalModelNohierarchyofentities;recordsaresimplystoredasasetoftuplesAtupleisasetofpermanantlyrelatedfields.Alsocalledatable,orfile.One-to-oneormany-to-onerelationshipsareencoded关系数据模型的特点(1)能够以简单、灵活的方式表达现实世界中各种实体及其相互间关系。(2)关系模型具有严密的数学基础和操作代数基础—如关系代数、关系演算等。关系代数传统的集合运算并差交广义笛卡尔积专门的关系运算选择投影连接除1.并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S2.差(Difference)R-S仍为n目关系,由属于R而不属于S的所有元组组成R-S={t|tR∧tS}差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S3.交(Intersection)R∩S仍为n目关系,由既属于R又属于S的元组组成R∩S={t|tR∧tS}R∩S=R–(R-S)交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S4.广义笛卡尔积(ExtendedCartesianProduct)Rn目关系,k1个元组Sm目关系,k2个元组R×S列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={trts|trR∧tsS}广义笛卡尔积(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×SABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1三SQL语言——结构化查询语言是一种用于存取和查询数据,更新并管理关系数据库系统的数据库查询和编程语言。Transact-SQL是增强的SQL。SQL语言主要组成部分数据定义语言—定义和管理数据库包括CREATE、ALTER和DROP等语句数据操作语言—查询添加修改和删除数据库中数据包括SELECT、INSERT、UPDATE、DELETE等数据控制语言—设置或者更改数据库权限包括GRANT、DENY、REVOKE等语句查询数据库(SELECT子句)1、命令基本格式:SELECT选择列表FROM表的列表WHERE查询条件2、说明:①选择列表—可包括几个列名或表达式,用逗号隔开,指示返回哪些数据。②表的列表—包括提供数据的表或视图的名称。③每一个SELECT子句必须有一个FROM子句。Select实现集合运算使用union实现combinitionSelect*fromt1UnionSelect*fromt2a∪bcombinitionSelect实现集合运算(续)使用exists和noexists实现intersection和differenceSelect*fromt1Whereexists(select*fromt2)Select*fromt1Wherenotexists(select*fromt2)a∩bintersectiondifferencea-b条件连接例:查询学生信息和学生相应的班级USEXKGOSELECT*FROMClass,StudentWHEREClass.ClassNo=Student.ClassNoGO对多个表或视图进行查询Relationalmodel四ArcviewtablesAtableisanArcviewobjectthatallowstheusertoaccessandmodifyasourcedatafilesourcedatafilesmaybedbase(.dbf),info,ortext(.txt)filesyoumayalsoconnecttoanSQLdatabaselikeOracleforsourcedatatablesmaybereformatted,sorted,etc.withoutchangingthedataonthediskOpeningthefileforeditingallowsthesourcedatatobemodifiedArcviewtablesTwotypesofsourcetablesinArcviewAttributeTablesarelinkedtoathemeOthersarenotconnectedtoatheme--theyaresimplydataTablestatisticsFrommenuTableStatisticsUsesonlytheselectedsetCalculatingfieldsNumericorstringSummarizeatablewhat’stheaveragecountypopulationforeachstate?What’sthetotalpopulationofeachstatefromallcounties?JoiningtablesConnecttwotablesusingacommonfieldNowthenewdataareALSOlinkedtothemapDoesnotchangethesourcedataonthediskTypesofjoins-1UsetheArcviewJoinbuttonTypesofjoins-2Alsoknowsasalook-uptableAwaytosavespacewhenstoringthesameinfooverandoverLookuptablesLinkingUsetheArcviewlinkfeature四应用实例人事管理针对我国目前人事管理现状以及未来的发展趋势将人事管理思想融入其中,充分体现了现代人事管理新思想。主要功能是完成了对大量人事档案信息的系统化管理。包括新档案的录入,对存档数据的更新、删除、修改、综合查询;帮助等。通过计算机使人事档案管理步入了自动化,科学化管理的行列。本系统是在Windows2000的环境下,用VisualBasic6.0开发的信息管理系统。VB默认的数据库格式与Access格式相同,其默认的数据库文件(.mdb)称为内部数据库。除此之外,在VB中还可以访问:外部数据库,如dBASE、FoxPro、Paradox等ISAM(索引顺序访问方法)数据库,以及Lotus123和Excel等电子表格数据列表ODBC(开放式数据互接)数据库,如SQLServer等VB可访问的数据库1.VB数据库应用程序的组成:用户界面、数据库引擎和数据库(VB提供的是MicrosoftJet数据库引擎)2.应用程序与Jet数据库引擎的接口Data控件:提供无需编程就能访问数据库的能力。实际应用时,还需绑定其它控件,并编写简单的程序代码。数据访问对象(DAO):供了一个由一系列对象和集合组成的分层结构模型,可方便地访问和处理数据库。3.ActiveX数据对象(ADO)建立在被称为OLEDB的最新数据访问接口之上的高性能的、统一的数据访问对象。数据库访问技术应用实例该系统采用模块化设计,根据人事管理系统的实际情况,研究开发的一套管理系统。界面界面总结关系数据库组织简单,便于理解和交流关系数据库应用数学方法来处理数据库中的数据关系数据库系统成为最重要的数据库系统课堂练习使用SQL实现关系数据库的并、差、交、积使用SQL实现多表的关联(下图)