四级数据库重难点_第1页
四级数据库重难点_第2页
四级数据库重难点_第3页
四级数据库重难点_第4页
四级数据库重难点_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、四级数据库重难点第6章存储技术与数据库物理设计6.1物理设计是在具体的硬件环境、OS、DBMS约束下,基于逻辑设计,设计具体数据存储结构和存取方式。目的:占用空间少、访问效率高、维护代价低。主要步骤有数据库逻辑模式调整、文件组织与存取设计、数据分布设计、安全模式设计、确定系统配置、物理模式评估。6.2索引技术(Indexing)是一种快速文件访问技术,它将文件记录在某个或某些域(或称为属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。索引文件是一种利用索引技术支持快速文件访问的文件组织和存取方法。索引加快了查询记录却减慢了数据更新速度,本身还占用一

2、定的存储空间。6.3文件组织:如何将关系数据库中的关系映射为操作系统中的数据库文件,及管理文件。文件结构:如何将DB文件中的逻辑记录映射到物理文件的中磁盘块。文件存取:针对某种结构的DB文件,如何查、添删改其中的逻辑记录6.4数据字典:数据库各类对象的描述信息、数据库管理系统的控制信息。包括关系模式信息、与视图描述有关的信息、关系的存储结构和存取方法信息、完整性约束、安全性有关的信息、数据库运行统计信息。作用:DBA用来监视DBMS的使用情况并协助完成管理工作;一般用户可用于查阅部分数据库结构信息;DBS运行时各子系统频繁使用以完成相应的存储和查询处理功能。6.5DBMS的三种完整性控制机制:

3、CHECK子句、断言、触发器断言语句:Createassertion断言约束名check()6.6堆文件:数据量少且操作频繁;批量加载数据(先选为堆文件再调整文件结构)顺序文件:查询条件定义在查找码上;快速的二分查找散列文件:基于散列域值的等值匹配,特别是访问顺序是随机的。非精确查询;非散列域B树和B+树:大数据量基本表;聚焦文件:多表连接操作6.7有序索引技术利用索引文件实现查找码取值到记录物理地址间的映射关系。索引文件由索引记录组成,每个记录中的索引项记录了某个特定的查找码值和具有该值的数据文件记录的物理地址。当需要访问数据文件中某个数据记录时,先根据查找码值查阅索引文件,找到对应的索引项

4、,然后从索引项中找出数据记录在数据文件中的物理地址根据这个地址访问数据记录。6.8散列技术是一种快速文件访问技术,它利用散列函数实现文件记录域取值到记录物理地址间的直接映射关系。当需要访问数据文件中查找码值为si的某个或某些文件记录时,将si作为散列函数h的输入计算得出的散列函数输出值h(si)就是文件记录在数据文件中的物理地址。6.9权限:允许用户对一给定的数据库对象可执行的操作(查询、添删改、新建、备份等)。第7章数据库应用系统功能设计7.1软件体系结构:软件架构构件,连接件,约束7.2软件设计包括系统的总体结构设计、系统的过程设计、系统的数据设计三方面内容(+人机界面设计),从工程管理的

5、角度,分为概要设计、详细设计7.3应用软件分为数据库事务和应用程序。后者一方面可以与数据库事务协调合作,另一方面还可实现与数据库访问无关的功能,如通信、人机交互。7.4事务:具有逻辑独立功能的一系列操作的集合,实现了某些特定的业务规则。7.5事务概要设计的核心是辨识和设计事务自身的事务处理逻辑,采用面向数据流的程序设计方法设计事务内部的数据处理流程和结构。7.6C/S结构特点:数据管理和数据处理被分在客户端和服务器上;服务器可支持多个客户端;客户端也可访问多个服务器;客户端人机交互+数据处理B/S结构特点:表示层,WEB浏览器;功能层,WEB应用服务器;数据层,DBMS服务优点:实现人面交互、

6、应用业务逻辑处理、数据管理三层分离,提高了系统的可维护性;用WEB浏览器可访问多个异构应用平台,解决了跨平台数据管理问题。第9章事务高度与并发控制9.1调度:定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序;冲突操作:事务Ti的操作Ii与事务Tj的操作Ij是冲突的,当且仅当Ii和Ij访问数据库中同一个数据项Q,并且Ii和Ij中至少有一个是写操作write(Q);冲突可串行:一个并发调度冲突等价于某个串行调度(判断一个并行调度是否正确)死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。9.2

7、ACID:Atomicity原子性;Consistency一致性;Isolation隔离性;Durability持久性9.31级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁。事务结束包括正常结束(commit)和非正常结束(rollback)。但事务如果是只读Q而不对其进行修改,是不需要对Q加锁的。2级加锁协议是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁。3级加锁协议则是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,但是需要等到事务结束时才释放该S锁。9.42阶段锁协议将每个事务的执行过程分

8、为加锁阶段和解锁阶段。在加锁阶段,事务可以申请获得数据项上的任何类型的锁,但不允许释放任何锁。在解锁阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁。每个事务开始执行后就进入了加锁阶段。当第一次释放锁后,即转入解锁阶段。9.5解决死锁主要采用死锁预防和死锁检测与恢复两类方法。死锁预防利用死锁预防协议,通过破坏死锁产生的必要条件来避免系统进入死锁状态。一次性加锁法;顺序加锁法死锁检测与恢复则是允许系统进入死锁状态,并且定期检查系统是否发生死锁。当发现系统发生死锁后,采取相应的恢复机制使系统摆脱死锁状态。9.6活锁产生的原因是在系统非死锁状态下,某些事务由于始终无法获得对所需访问的

9、数据项的控制权而长期等待下去,无法继续执行。9.7锁粒度大:被加锁数据项少、事务并发执行度低、系统开销小;锁粒度小则反之9.8基于锁的并发控制技术的原理P166第10章数据库的实施、运行和维护10.1试运行:功能测试;性能测试10.2数据库维护:数据库的转储和恢复;数据库的安全性、完整性控制;数据库性能的检测和改善;数据库的重组和重构10.3数据库安全:行政手段制定规范;权限管理、口令等;维护多个数据副本;防及除毒10.4数据库重组:按照系统设计要求对数据库存储空间进行全面调整;数据库重构:业务小范围变化需对数据库逻辑结构作必要改变。10.5数据库监控分析:DBA借助相应工具监测数据库系统的运

10、行情况,对监测数据进行分析,评估整个系统的运行状态,为系统的安全运行和性能优化提供依据。10.6数据库空间管理:数据量增加和碎片使性能降低;空间溢出会带来灾难性停机故障。包括:创建修改删除数据库空间、新建移动关联数据文件等。10.7数据库参数调整:外部调整:CPU、网络;调整内存分配(改善程度大);调整磁盘I/O(I/O时间是响应时间的最大组成部分);调整竞争10.8数据库查询优化:合理使用索引;避免或简化排序(Orderby、Groupby,磁盘排序比内存排序开销大速度慢);避免相关子查询、外连接(左右连接比内连接消耗大);存储过程10.9属于Oracle但不属于SQLServer的逻辑和物

11、理空间结构:表空间、段、区第11章故障管理11.1故障种类:事务内部故障(事务回滚撤消修改)、系统故障(影响事务不坏数据)、介质故障(软件容错、硬件容错)、病毒11.2系统故障对策:重启,撤消(UNDO)未提交的事务,重做(REDO)已提交的事务11.3软件容错:备份、日志文件,利用恢复技术;硬件容错:双物理存储设备11.4恢复基本原理:冗余,即所有数据均可通过存储在别处的冗余数据来重建。11.5对于经常进行数据操作的数据库:完全转储+差异转储11.6以记录为单位的日志文件:开始标记(TiBEGINTRANSACTION)、结束标记(TiCOMMIT或者TiROLLBACK)、每个事务的所有操

12、作(Ti,A,50,80)11.7以数据块为单位的日志文件:存放更新前和更新后的整个数据块。只有事务标识和被更新的数据块,没有操作类型和操作对象。11.8日志的作用:用来进行业务故障和系统故障恢复;协助后备副本进行介质故障恢复(动态转储必用);记录操作监视行为分析问题登记原则:登记次序严格按并行事务执行次序;必须先写日志文件再写数据库11.9检查点:最大限度减少数据库完全恢复时所必须执行的日志部分(针对系统故障)。11.10数据库镜像:提高数据库可用性的解决方案(比如介质故障,两台服务器相互备份)优点:提供完整或几近完整的数据冗余,增强数据保护;发生介质故障时,数据不会丢失且服务不会中断,提高

13、数据库可用性;提高镜像数据库在升级期间的可用性。双机互备援模式(均为主);双机热备份模式(一主一备份机)。数据库镜像可用于并发操作。11.11RAID廉价冗余磁盘阵列:(镜像冗余、)校验冗余:对成员磁盘上的数据执行异或(XOR)操作得到其校验值并存放在另外的校验磁盘上。当某个磁盘发生故障时,只须计算其他磁盘上的校验数据和数据的异或便可重新得到该磁盘的值。第12章SQLServer2000数据库管理系统12.1四个服务:SQLServer核心服务;SQLServerAgent:代理服务,代理定期进行的管理工作;DTC:DistributedTransactionCoordinator,分布式事务

14、协调器,同一事务访问多个服务器MicrosoftSearch:全文检索服务12.2四个版本:企业版(全部功能、大型数据库)、标准版(小部门)、开发版(同企业版,作开发测试系统用,不作生产服务用)个人版(移动环境、本地数据)12.3服务帐户:使用本地系统帐户:自动取当前登录到Windows的用户,没有Windows的网络访问权限,适用于非网络服务器操作系统(如XP);使用域用户帐户:使用Windows身份验证设置连接到SQLServer,用户必是Windows系统管理员,适用于网络服务器OS12.4网络库:在SQLS客户端和服务器间传递网络数据包。服务器可一次监听多个网络库12.5SQLServ

15、er的两大类数据库:系统数据库:DBMS自动创建及维护,存放维护系统正常运行的信息,master(系统级信息)、msdb(支持自动执行任务)、model(所有用户数据库的公共信息)、tempdb(临时数据库),示例Pubs、Northwind;用户数据库12.6估算存储空间:SQLServer数据存储单位为页(Page),一个数据页是一块8KB的连续磁盘空间,行不能跨页存储,一行数据的大小不能超过一页的大小。一个表10000行数据,每行3000字节,则需要(10000/2)*8KB=40MB的空间。12.7主数据文件:扩展名为.mdf,包含数据库系统信息并可存放用户数据库数据,每个数据库只有一

16、个主数据文件。辅助数据文件:扩展名为.ndf,数据量很大时使用,可存放在不同的磁盘驱动器上,以便得利用多个磁盘上的存储空间并提高数据存取的并发性。12.8每个数据文件及日志文件(.ldf)初始大小均不得小于512KB,主数据文件大小不得小于model数据库主数据文件,日志文件最好不小于1MB12.9创建数据库:CREATDATABASEjessyminON表示数据库按下面参数创建(NAME=jessymin,逻辑文件名FILENAME=MSSQLDatajessymin_Data.mdf,OS下的物理文件名SIZE10,文件初始大小,单位默认为MB,下同MAXSIZE30,文件最大大小FILE

17、GROWTH5,文件增量,为0表示不自动增长,默认按当前10%增长)LOGON表示该数据库日志文件按下面参数创建(.同上,只是物理文件名为jessymin.LDF)12.10删除数据库:DROPDATABASEjessymin。删除六种数据库对象均用DROP12.11Transact-SQL:非过程化高级语言,全司变量,局部变量,局部变量可以是自定义类型但不能是text或image类型。12.12Transact-SQL示例:计算1+2+3+100的和:DECLAREiint,sumintSETi=1,sum=0-SET可换为SELECTWHILEi<=100BEGINSETsum=su

18、m+iSETi=i+1ENDPRINTsum12.13DTS(DataTransformationService)数据转换服务。注意区别DTC(分布式事务协调器)。导出数据时用户必须是要连接的数据库服务器的合法用户,且对要导出的表具有查询权限第13章数据库对象13.1存储过程的:SQL语句和控制流语句的预编译集合,应用程序可通过调用方法来执行优点:模块化程序设计;提高性能;减少网络流量;可作为安全机制使用13.2带有多个参数并有默认值及输出参数的存储过程示例:CREATEPROCEDUREp_Exampleareavarchar(20)=武汉大学,Pricemoney,Sumintoutput

19、ASSELECT/UPDATE/INSERT/DELETESETSum=.应用程序中执行的SQL语句:DeclareresintEXECUTEp_Example武汉大学信息学部,1000,resoutput或者EXECUTEp_ExamplePrice=1000,resoutput13.3用户自定义函数:标量函数(返回单值,非text、Image类型,任何允许出现表达式的地方)、内嵌表值函数(返回一个表,放在查询语句的From子句中)、多语句表值函数(返回一个可自定义的表,也放在查询语句的From子句中,视图和存储过程的结合)13.4标量函数救示例:根据指定的商品类别查询该类的商品个数。CRE

20、ATFUNCTIONdbo.f_GoodsCount(classvarchar(10)RETURNSintASBEGINDECLARExintSELECTx=count(*)FromT_GoodsClassaJIONT_GoodsbONa.GoodClassID=b.GoodClassIDWHEREGoodClassName=classRETURNxEND调用:SELECTdbo.f_GoodsCount(服装)或者SELECTGoodsNameAS商品名,dbo.f_GoodsCount(服装)AS种类数From.13.5内嵌表值函数的不同之处在于RETURNS后只能是table,RETUR

21、N后面只能是单个的SELECT语句,没有相关联的返回变量也没有函数体。调用时放在查询语句的FROM子句中。13.6触发器是一种不需要由用户来调用的存储过程,当用户对表进行UPDATE、INSERT或DELETE操作时自动触发执行。作用:保证业务规则和数据完整性。优点:用编程方法来实现复杂的处理逻辑和业务规则,增强数据完整性约束。13.7触发器适用场合:比CHECK语句更复杂的数据约束(可引用其他表中的列);为保证数据库性能而维护的非规范化数据(如增加统计总值的列);实现复杂的业务规则13.8AFTER/FOR:后触发型触发器,可在同一操作上建立多个;INSTEADOF:前触发型,在同一操作上只

22、能建立一个。所有的涉及对数据库对象操作的语句均不允许出现在触发器中。13.9DELETED表:存储UPDATE和DELETED操作语句所影响行的更新前的旧数据;INSERTED表:存储UPDATE和INSERT操作语句所影响行的更新后的新数据。13.10维护数据操作完整性的后触发器示例:销售量大于库存量则撤销当前销售,小于时则在插入销售单据明细时同时修改库存量。CreateTriggerOperatonConONT_SaleDetailFORINSERTASIFEXISTS(Select*FrominsertedaJionT_GoodsbONa.GoodsID=b.GoodsIDWHEREa.

23、Quanity>b.TotalCharge)BEGINROLLBACKPRINT此商品库存量小于此次销售数量ENDELSEUPDATET_GoodsSETTotalCharge=TotalCharge(SELECTQuanityFrominserted)13.11维护不同列之间取值完整性的后触发器示例:保证商品表中的单价与价格变动表中一致CREATETRIGGERPriceConstraintONT_PriceHistoryFORINSERT,UPDATEASDECLAREnewpricemoneySELECTnewprice=SalePriceFrominsertedUPDATET_G

24、oodsSETSaleUnitPrice=newpriceWHEREGoodsIDIN(SELECTGoodIDFrominserted)13.12前触发器指定执行触发器而不执行引发触发器的SQL语句,因此,如果数据操作满足完整性约束则在触发器中必须重新执行这些数据操作语句。前触发器示例:保证销售单据中的会员卡是有效日期内的会员卡:CREATETRIGGERCardValidONT_SaleDetailINSTEADOFINSERT,UPDATEASIFNOTEXISTS(SElETCT*FrominsertedaJOINT_CardbONa.CardID=b.CardIDWHEREa.Sal

25、DateNOTBETWEENb.StartDateANDb.EndDate)INSERTINTOT_SaleDetailSELECT*Frominserted(若满足条件此语句重新执行)13.13用SQL语句修改存储过程、用户自定义函数、触发器的语法与创建基本一致,只是将CREATE改为了ALTER。(查询分析器中实现)第14章安全管理14.1数据库的安全控制:在DBMS的不同层次提供对有意和无意损害行为的安全防范。有意的非法活动:加密存、取数据;有意的非法操作:用户身份验证、限制操作权;无意的损坏:提高系统的可靠性和数据备份14.2数据库权限的种类:对DBMS进行维护的权限;对数据库对象和数

26、据进行操作的权限SQLServer权限种类(与数据库用户分类对应):隐含权限(预定义的内置权限);语句权限(DDL语句权限,创建删除数据库对象);对象权限(DML语句权限,操作数据库对象)14.3数据库用户的分类:数据库系统管理员(SA,全部权限);数据库对象拥有者(创建数据库对象的用户,对所拥有的对象具有一切权限);普通用户:只具有对数据的编辑查询功能14.4三个认证过程:身份认证,只认证用户是否有连接到数据库服务器的“连接权”;合法用户,验证是否是数据库的合法用户;权限认证,验证用户是否具有要进行的操作的操作权限14.5系统内置的登录账户:BUILTINAdministrator;SA;域

27、名Administrator,均DBMS管理员14.6创建SQLServer身份认证的登录账户:EXECUTEsp_addloginuser3,123,jessyminUser3为登录账户,123为密码,jessymin为默认数据库;WINDOWS认证:sp_grantlogin14.7删除登录账户存储过程:EXECdroploginuser3(SQLServer身份验证);EXECrevokeloginServer1nt_user(WINDOWS身份验证)14.8登录账户可以连接到SQLServer服务器上但并不具有访问任何数据库的能力,必须再成为数据库的合法用户。一个登录账户可以映射为多个

28、数据库用户,管理数据库用户的过程实际上就是建立登录账户与数据库用户之间的映射关系的过程。新建的数据默认只有一个用户:dbo,它是数据库的拥有者。14.9创建数据库用户:EXECsp_adduserU2,U2,user_role,用户名与登录账户一致,并让其成为“user_role”角色的成员。删除:EXECsp_dropuserU214.10合法用户除了对所属数据库系统表具有一些查询权限外并不对数据库中的用户数据和对象具有任何权限,还得得到对数据库数据和对象的操作权限14.11收回权限:不允许用户或角色具有某种操作权,或者收回曾经授予的权限,置空标记;拒绝访问:拒绝某用户或角色具有某种操作权,

29、即使由于继承获得的权限也无效,叉叉标记14.12用Transact-SQL语句管理对象权限入管理语句权限:P24514.13角色:数据库中具有相同权限的一组用户。系统预定义的固定角色;自定义用户角色14.14固定的服务器角色:*amdin+dbcreator,权限最重要最高的是sysadmin,角色成员源均为系统的登录账户:EXECsp_addsrvrolememberServer1nt_user,sysadmin14.15固定的数据库角色:db_*+public,权限最高的是db_owner:EXECsp_addrolememberdb_owner,user3(注意用户和用色的顺序)14.1

30、6public角色:每个用户均自动为其成员,不具任何权限但可赋予权限。如果想让所有数据库用户均具有某个特定权限则可将该权限授予public14.17用户自定义的用户角色:EXECsp_addrolemyrole14.18只要权限没有被拒绝过,角色中成员权限是角色的权限加上成员自己的权限。第15章备份和恢复数据库15.1备份的两种方式:先创建备份设备(备份数据库的场所),再将数据库备份到备份设备上(永久备份设备);直接将数据库备份到物理文件上(临时备份设备)15.2创建磁盘备份设备:EXECsp_addumpdevicedisk,mydiskdump,.mydump.bak15.3常用备份策略:

31、完全备份加差异备份加日志备份,备份和恢复速度都比较快,而且当系统出现故障时丢失的数据较少。15.4Transact-SQL语句:BACKUPDATABASELOGjessyminTOmydiskdumpWITHINITWITHINIT表示覆盖掉原有内容,相当于“重写现有媒体”15.5恢复的一般顺序:先恢复最近的完全数据库备份;再恢复完全备份之后的最近的差异备份;最后按日志备份的先后顺序恢复自最近的完全备份或差异备份之后的所有日志备份。15.6Transact-SQL语句恢复过程示例:1)首先恢复完全备份RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=

32、1,NORECOVERY2)然后恢复差异备份(如果有的话)RESTOREDATABASEjessyminFROMmydiskdumpWITHFILE=2,NORECOVERY3)最后恢复日志文件RESTORELOGjessyminFROMmydiskdumpNorecovery表示对数据库的恢复操作尚未完成,相当于“使数据不再运行,但能还原其他事务的日志文件”。默认为RECOVERY。第16章VB开发环境与数据访问接口(鄙人此前未曾用过VB,疏漏浅薄之处敬请见谅)16.1标准数据绑定控件:TextBox、CheckBox、ListBox、ComboxBox等外部(ActiveX)数据绑定控件:

33、DataCombo、DataList、DataGrid、MSHFGrid等16.2DBMS支持的两种数据接口:专用接口(与特定的DBMS有关);通用接口(屏蔽掉每个DBMS底层接口的差异,提供一种标准的访问方法)16.3通用接口:ODBC、OLEDB、JDBC,让应用程序具有很好的适应性和可移植性;具备同时访问多种DBMS系统的能力。16.4ODBC(只访关系型DB):开放数据库互连OpenDataBaseConnectivity,ODBC应用系统大致工作流程从开始配置数据源到回收各种句柄为此。句柄是32位整数值,代表一个指针。16.5OLEDB:对象链接与嵌入的数据库ObjectLinked

34、andEmbedDataBase,是MicrosoftOLE对象标准的一个实现,是COM对象,是为数据访问而设计的一系列COM接口。16.6ADO:动态数据对象ActiveXDataObject,建在OLEDB之上的高层接口集,是介于OLEDB底层接口和应用程序之间的接口,它避免了开发人员直接使用OLEDB底层接口的麻烦。16.7ODBC与OLEDB的主要区别:1)ODBC只能访问关系型数据库,而OLEDB可以访问关系和非关系型甚至是无结构的数据。2)OLEDB克服了ODBC的一个主要缺点:一个ODBC驱动程序需要支持几乎所有的DBMS特征和功能,这需要大量的工作和初始投资,而OLEDB允许D

35、BMS提供商只实现他们产品的一部分功能。第17章VB数据库应用编程17.1CommandType属性:adCmdUnknown,表示RecordSource中的命令类型未知;adCmdTable表示RecordSource属性的内容来自一张表;adCmdText表示RecordSource属性的内容来自一个查询语句;adCmdStoredType表示RecordSource属性的内容来自一个存储过程17.2RecordSet的Move方法组中,MovePrevios和MoveNext没有自动检测记录的当前行指针是否移出了结果集边界的功能,需编码实现:EndIf17.3保存缓冲区中的记录:Upd

36、ate方法;对当前记录指针作一个移动操作17.4CancelUpdate方法:应在Update方法之前调用,调用了Update方法之后的修改是不能撤销的;如果没有添加新记录也没有对当前记录做任何修改,调用CancelUpdate会出错。17.5Find方法:用于在当前结果集中查找满足条件的记录myadodc.RecordSet.Find(“查找条件表达式”)与RecordSet对象名.Filter“选择表达式”相似(.Filter=adFilterNone还原)17.6更新记录:mydocdc.RecordSet.Fields(“CustomID”)=Trim(txtCID.Text)mydo

37、cdc.RecordSet.Fields(“Age”)=CInt(txtAge.Text)17.7删除记录提示窗口:DimresAsIntegerres=MsgBox(“确实要删除此行记录吗?”,vbExclamation+vbYesNo+vbDefaultButton2)Ifres=vbYesThenEndIf17.8在DataGrid中显示全部列:DimintColAsIntegerWithmydg1.Columns(intCol).Visible=TrueNextEndWith另一种For循环:ForEachparINadocm.Parameters.Nextpar17.9排序功能实现:

38、(mydg.DataSource=adodc)Withadodc.RecordSetIfoptAsc.Value=TrueThen.Sort=.Field(intCol).Name&“ASC”Else.Sort=.Field(intCol).Name&“DESC”EndIfEndWithmydg.Refresh17.10ADO对象模型Connection对象-ErrorS集合-Error对象Command对象-Parameters集合-Parameter对象RecordSet对象-Fields集合-Field对象17.11Connection对象可以完成的操作:连接数据源打开数

39、据库;执行一个数据库操作命令;利用Error对象检查数据源返回的出错信息。17.12销毁内存中的对象:Set对象名=Nothing17.13Command对象的CommandText属性相当于ADO数据控件的RecordSource属性;Command对象的CommandType属性相当于ADO数据控件的CommandType属性17.14RecordSet对象的主要功能是建立记录集,并支持对记录集中各数据的各种操作。允许用户直接获取数据,因此RecordSet对象与ADO的访问过程无关。17.15CursorType属性:adOpenDynamic动态游标:反映所有用户对数据的修改,支持向前

40、及向后移动;adOpenStatic静态游标:不能反映其他用户的修改,支持向前及向后,当打开客户端RecordSet对象时,adOpenStatic为唯一允许的游标类型。当打印报表和其他不需要即时完成更新数据的应用程序来说很有用。adOpenFowardOnly仅向前游标:默认值。仅支持向前移动,其他与adOpenStatic一致。adOpenKeyset键集游标:介于动态和静态游标。只看到其他用户更改的看不到添加删除的17.16CursorLocation属性:adUseClient:本地客户端游标。将整个结果集传给客户端,网络流量大但下载后浏览速度快adUseServer:默认值,仅传送客

41、户端需要的数据,网络流量小但服务器资源消耗大。不支持BookMark属性(书签,快速再定位)和AbsolutePosition属性adUseNone:没有使用游标服务。17.17RecordSet.Open方法:myRs.OpenSource,ActiveConnection,CursorType,LockType,Options1)Source支持的类别:5)Options的可选项一个返回记录的Command对象/adCmdFileSQL语句adCmdText表名adCmdTable存储过程名adComdStoredProc2)ActiveConnection:已打开的Connection对

42、象;一个连接字符串示例:DimmyCnnAsNewADODB.ConnectionDimmyRsAsNewADODB.RecordSetmyCnn.Connection=“Provider=SQLOLEDB.1;UserID=sa;”_&“InitialCatalog=商品经营管理数据库;DataSource=(local)”myCnn.Open别忘了“打开”myRs.Source=“select*fromT_Customer”myRs.ActiveConnection=myCnnmyRs.CursorType=adOpenDynamicmyRs.CursorLocation=adUs

43、eClientmyRs.Open,adCmdTalbe17.18创建RecordSet对象的三种方法:1)使用Connection对象:SetmyRs=myConn.Execute(“select*fromT_customer”);2)使用Command对象:SetmyRs=myComm.Execute;3)直接使用Open方法:myRs.Open,17.19Error对象:如果最后一次的操作成功则这个集合为空。只有在OLEDB层产生错误才会将每个错误被翻译成Error对象,如果指向一个不存在的提供者则Errors集合不会得到任何信息,因为ADO不能发现这个指定的驱动程序,因此会将错误传递到V

44、isualBasicErrors中。17.20三对象结合使用的典型示例:DimmyCnnAsNewADODB.ConnectionDimmyCmmAsNewADODB.CommandDimmyRsAsNewADODB.RecordSetmyCnn.ConnectionString=“Provider=SQLOLEDB.1;UserID=loginID;”_&“InitialCatalog=jessymin;DataSource=(local)”myCnn.Open别忘了“打开”SetmyCmm.ActiveConnection=myCnnmyCmm.CommandText=“selec

45、t*fromT_Customer”SetmyRs=myCmm.Execute17.21VB自定义函数示例:将字段空值转化为空字符串PrivateFunctionconvertNull(valAsVariant)AsVariantIfIsNull(val)=TrueThenconvertNull=“”ElseconvertNull=valEndIfEndFunction第18章统一建模语言18.1UML视图分类:用例视图:用例图;结构视图:类图、对象图;行为视图:顺序图、交互图、状态图、活动图;实现视图:组件图;环境视图:部署图18.2类与类之间有关联(聚集,共享聚集+组成)、通用化(继承)(带

46、空心三角形的实线)、依赖(单向实线)、精化(带空心三角形的虚线)18.3包(子系统)的四种可见性还包括实现可见性,与私有可见性类似。A指向B的单向虚线表示子系统B被子系统A引用。18.4顺序图强调时间,协作图强调空间,状态图强调一个实体在不同时刻的状态变化,活动图强调程序对象逻辑流程的串行执行顺序和并行次序第19章分布式数据库、对象数据库和并行数据库19.1分布式数据库(物理分散逻辑集中)最基本特征:本地自治、非集中式管理、高可用性;分片透明性(最高级)、位置透明性、局部数据模型透明性构成了分布式数据库的分布透明性。19.2分片是对关系(表)的操作,分配是对分片结果的操作。19.3分布式数据库

47、的模式结构:全局外模式、全局概念模式、分片模式、分配模式、局部概念模式、局部内模式;系统组成结构:GDBMS全局、GDD、LDBMS局部、CM通信管理19.4分布式事务管理:恢复控制(基于两阶段的提交协议)和并发控制(基于封锁协议)19.5分布查询数据传输量大的主要原因:连接操作和并操作19.6单继承:一颗树;多继承:带根的有向无回路图19.7面向对象数据库(面向对象语言中引入数据库):实现方法主要是扩充面向对象程序设计语言,使之能处理持久数据。所谓持久数据,指创建这些数据的程序运行终止后,数据仍然存在于系统之中。数据库中的关系就是持久数据。ObjectStore、Ontos、O2等19.8对

48、象关系数据库(关系数据库中引入面向对象):扩展的数据类型定义;继承性;扩充的SQL语言.InformixUniversalServer、DB2UDB、AdaptiveServer、Oracle8i、SQLServer19.9并行数据库体系结构:共享内存;共享磁盘(中小型);无共享(最好的,银行出纳、民航售票等OLTP类,缺点:通信代价和非本地磁盘访问代价);层次结构(综合)19.10一维数据划分方法:轮转法:最适合于扫描整个关系;散列划分法:比转转法更适合点查询,也适合顺序扫描关系;范围划分法:明显利于范围查询和点查询。缺点:均不能有效支持非划分属性上具有选择谓词的查询。第20章数据他仓库与数

49、据挖掘20.1数据仓库解决的问题是如何更合理和理有效的组织企业的数据体系,目的在于根据决策需求对数据采取适当的手段进行集成,形成一个综合的面向分析的数据环境;数据挖掘解决的问题是如何针对具体的分析对象和分需求,尝试智能和自动化的手段把数据转换为新的有用的信息和知识。20.2数据分类:操作型数据(操作型处理,以业务处理为主的联机事务处理OLTP);分析型数据(分析型处理,以分析为主的决策支持系统DDS)20.3数据仓库是一个面向主题的、集成的(最重要,抽取、转换、清理、装载)、非易失的、且随时间变化的(时变性)数据集合,用来支持管理人员的决策。20.4数据仓库的体系结构:操作型数据、操作型数据存

50、储、数据仓库、数据集市;功能层次:数据管理、数据处理、数据应用20.5粒度涉及数据仓库的数据量和支持的查询类型。粒度小,细节度高,数据量大,查询多20.6ODS(OperationalDataStore,操作型数据存储):一方面,类似于操作型环境,可进行企业全局性联机操作型处理;另外一方面,是一个面向主题的、集成的数据环境,但数据量小,适合于辅助企业完成日常决策的数据处理分析。(秒级、小时级、天级、含反馈信息)20.7数据仓库设计以数据仓库的主题数据模型设计和实现为核心。20.8OLAP(联机分析处理,On-LineAnalyticalProcessing):支持复杂的分析操作,侧重对决策人员

51、和高层管理人员的决策支持。20.9多维分析的基本活动:钻取Drill-Down与卷起Roll-Up;切片Slice与切块Dice;旋转20.10OLAP的实现方式:基于多维数据库的;基于关系数据库的;混合型的20.11数据挖掘:数据库知识发现KDD,从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程。三阶段:数据准备、数据挖掘、结果的解释评估20.12数据仓库维护策略一般分为:实时维护、延时维护、快照维护20.13建立ODS的目的一般是为支持即时OLAP和全局OLTP两类应用SQL精华语句一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子

52、句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECTnickname,emailFROMtesttableWHEREname='张三'(一)选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。1、选择所有列例如,下面语句显示testtable表中所有列的数据:SELECT*FROMtesttable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺

53、序相同。例如:SELECTnickname,emailFROMtesttable3、更改列标题在选择列表中,可重新指定列标题。定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT昵称=nickname,电子邮件=emailFROMtesttable4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。5、限制返回的行数使用TOPnPERCENT选项

54、限制返回的数据行数,TOPn说明返回n行,而TOPnPERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如:SELECTTOP2*FROMtesttableSELECTTOP20PERCENT*FROMtesttable(二)FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使

55、用下面语句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名as别名表名别名(二)FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,

56、在查询两个表中的cityid时应使用下面语句格式加以限定:SELECTusername,citytable.cityidFROMusertable,citytableWHEREusertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名as别名表名别名例如上面语句可用表的别名格式表示为:SELECTusername,b.cityidFROMusertablea,citytablebWHEREa.cityid=b.cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如:SELECTa.au_fname+a.au_lnameFROMauthorsa,titleauthorta(SELECTtitle_id,titleFROMtitlesWHEREytd_sales>10000)AStWHEREa.au_id=ta.au_idANDta.title_id=t.title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。(三)使用WHERE子句设置查询条件WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:S

温馨提示

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

评论

0/150

提交评论