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

下载本文档

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

文档简介

关系数据库应用,软件技术基础,创建MS ACCESS数据库,操作演示 创建表 创建表关系 创建查询(视图) 数据的转化 EXCELACCESS,TEXTACCESS,创建SQL Server数据库,在SQLServer7中创建数据库 创建ODBC数据库连接 将ACCESS表转到SQLServer数据库中,一致数据访问 (UDA),UDA (Universal Data Access,一致数据访问)技术包括OLE DB 和ADO 两层标准接口。 OLE DB 是系统级的编程接口,它定义了一组COM 接口,这组接口封装了各种数据系统的访问操作,这组接口为数据使用方和数据提供方建立了标准,OLE DB 还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此,数据提供方只需实现一些简单的数据操作,在使用方就可以获得全部的数据控制能力。 ADO 是应用层的编程接口,它通过OLE DB 提供的COM 接口访问数据,它适合于各种客户机/ 服务器应用系统和基于Web 的应用,尤其在一些脚本语言中访问数据库操作是ADO 的主要优势。ADO 是一套用自动化技术建立起来的对象层次结构,它比其他的一些对象模型如DAO(Data Access Object)、RDO(Remote Data Object) 等具有更好的灵活性,使用更为方便,并且访问数据的效率更高。,UDA 的层次结构,OLE DB,一致的数据访问技术的核心是OLE DB,OLE DB 建立了数据访问的标准接口,它把所有的数据源经过抽象形成行集(rowset) 的概念。OLE DB 模型主要包括以下一些COM 对象: (1) 数据源(Data Source) 对象数据源对象对应于一个数据提供者,它负责管理用户权限、建立与数据源的连接等初始操作。 (2) 会话(Session) 对象在数据源连接的基础上建立会话对象,会话对象提供了事务控制机制。 (3) 命令(Command) 对象数据使用者利用命令对象执行各种数据操作,如查询命令、修改命令等。 (4) 行集(Rowset) 对象提供了数据的抽象表示,它可以是命令执行的结果,也可以直接由会话对象产生,它是应用程序主要的操作对象。 OLE DB 的对象模型非常简单,这种简单性也带来了灵活性,ADO 对象模型,在ADO 模型中,主体对象只有3 个:Connection、Command 和Recordset,其他4 个集合对象Errors、Properties、Parameters 和Fields 分别对应Error、Property、Parameter 和Field 对象。 一个典型的ADO 应用使用Connection 对象建立与数据源的连接,然后用一个Command 对象给出对数据库操作的命令,比如查询或者更新数据等,而Recordset 用于对结果集数据进行维护或者浏览等操作。Command 命令所使用的命令语言与底层所对应的OLE DB 数据源有关,不同的数据源可以使用不同的命令语言,对于关系型数据库,通常使用SQL 作为命令语言。 在Connection、Command 和Recordset 3 个对象中,Command 对象是个可选对象,它是否有效取决于OLE DB 数据提供者是否实现了ICommand 接口。由于OLE DB 可提供关系型数据源也可以提供非关系型数据源,所以在非关系型数据源上使用传统的SQL 命令查询数据有可能无效,甚至Command 命令对象也不能使用。,ADO 对象模型,Connection 对象,Connection 对象代表与数据源之间的一个连接,ADO 的Connection 对象封装了OLE DB 的数据源对象和会话对象。 a. 通过ConnectionString、ConnectionTimeOut 和Mode 属性设置连接串、超时信息、访问模式。 b. 还可以设置CursorLocation 属性以便指定使用客户端游标,以便在客户程序中使用批处理修改方式。 c. 设置连接的缺省数据库属性DefaultDatabase。 d. 设置OLE DB 提供者的属性Provider。,Connection 对象(续I),e. 通过Open 和Close 控制Connection 对象与物理数据源的连接。 f. 通过Execute 方法执行命令。 g. 提供事务机制,通过BeginTrans、CommitTrans 和RollbackTrans 方法实现事务控制。 h. 通过Errors 集合属性检查数据源的错误信息。 i. 通过OpenSchema 方法获取数据库的表信息。 Connection 对象是ADO 的基本对象之一。,Command 对象,Command 对象代表一个命令,可以通过其方法执行针对数据源的有关操作,比如查询、修改等。 a. 通过CommandText 属性设置命令串。 b. 通过Parameters 集合属性和Parameter 对象定义参数化查询或存储过程的参数。 c. 通过Execute 方法执行命令,可能的话,返回Recordset 对象。 d. 在执行命令之前,可通过设置CommandType 属性以便优化性能。,Command 对象(续I),e. 可以通过Prepared 属性指示底层的提供者为当前命令准备一个编译过的版本,以后再执行时,速度会大大加快。 f. 通过CommandTimeOut 属性设置命令执行的超时值( 以秒为单位)。 g. 可以设置ActiveConnection 属性,为命令指定连接串,Command 对象将在内部创建Connection 对象。 h. 可以设置Name 属性,这样以后可以在相应的Connection 对象上按Name 属性指定的方法名执行。,Recordset 对象,Recordset 对象代表一个表的记录集或者命令执行的结果,在记录集中,总是有一个当前的记录。记录集是ADO 管理数据的基本对象,所有的Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record),每一列对应一个域(Field)。Recordset 对象也通过游标对记录进行访问,在ADO 中,游标(Cursor)分为以下4 种: 静态游标(adOpenStatic)提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等等,但其他用户所做的操作反映不出来。 动态游标(OpenDynamic)允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作也可以直接反映出来。 前向游标(OpenForwardOnly)允许各种前向移动操作,不能向后移动,并且其他用户所做的操作也可以直接反映出来。 键集(OpenKeyset) 游标类似于动态游标,也能够看到其他用户所做的数据修改,但不能看到其他用户新加的记录,也不能访问其他用户删除的记录。,Recordset 对象I,Recordset 对象的用法如下: a. 利用CursorType 属性设置游标类型。 b. 通过Open 方法打开记录集数据,既可以在Open 之前对ActiveConnection 属性赋值,指定Recordset 对象使用连接对象,也可以直接在Open 方法中指定连接串参数,ADO 将创建一个内部连接,即使连接串与外部的连接对象相同,它也使用新的连接对象。 c. Recordset 对象刚打开时,当前记录被定位在首条记录,并且BOF 和EOF 标志属性为False,如果当前记录集为空记录集,则BOF 和EOF 标志属性为True。,Recordset 对象,d. 通过MoveFirst、MoveLast、MoveNext 和MovePrevious 方法可以对记录集的游标进行移动操作。如果OLE DB 提供者支持相关功能的话,可以使用AbsolutePosition、AbsolutePage 和Filter 属性对当前记录重新定位。 e. ADO 提供了两种记录修改方式:立即修改和批修改。在立即修改方式下,一旦调用Update 方法,则所有对数据的修改立即被写到底层的数据源。在批修改方式下,可以对多条记录进行修改,然后调用UpdateBatch 方法把所有的修改递交到底层数据源。递交之后,可以用Status 属性检查数据冲突。 Recordset 对象是ADO 数据操作的核心,它既可以作为Connection 对象或Command 对象执行特定方法的结果数据集,也可以独立于这两个对象而使用,由此可以看出ADO 对象在使用上的灵活性。,VB6中的数据访问接口,在 Visual Basic 中,可用的数据访问接口有三种:ActiveX 数据对象(ADO)、远程数据对象(RDO) 和数据访问对象(DAO)。 DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口 RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口 ADO (ActiveX Data Objects)是 DAO/RDO 的后继产物。ADO 2.0在功能上与 RDO 更相似,在Visual Basic 中使用ADO,利用ADO Control和DataGrid Control来访问数据库(例) 直接利用数据对象来访问数据库(例) 对记录集数据进行编辑操作 对记录集数据进行移动和遍历操作,编辑操作I,增加记录操作:AddNew 方法,再调用Update 方法,如: rs.AddNew rs!Author_id = strID rs!AuthorName = strName rs!Title = strTitle rs.Update,编辑操作,删除记录操作:调用Delete 方法可以删除当前记录或者满足条件的一组记录。在立即修改模式下,删除马上生效;在批修改模式下,Delete 操作只在当前缓冲区中的记录上作了标记,只有当调用了UpdateBatch 之后,记录才真正被删除。一个简单的例子如下: rs.Filter = “Title =Engineer“ rs.Delete adAffectGroup Delete the record. rs.UpdateBatch,编辑操作,修改记录操作:对当前记录的各个域信息进行重新赋值后,调用Update 方法,如果要取消修改,则调用CancelUpdate 方法。举例如下: rs!Author_id = strID rs!AuthorName = strName rs!Title = strTitle rs.Update,移动和遍历操作操作,移动和遍历操作:Recordset 提供了各种方向的移动操作,利用这些操作可以对记录集进行遍历处理。各种移动操作如下表所示。 利用这些属性和方法,可以很灵活地访问记录集,结束语,随着信息化时代的不断深入,信息处理和信息共享变得越来越重要,数据访问技术对于信息系统也就显得尤为重要,本文介绍了Microsoft 提供的一致数据访问(UDA) 技术,从基本的结构模型到深入介绍ADO 对象模型,并从应用的角度分析了ADO 的一些特性,最后通过例程序展示了ADO 的基本用法。 本节课旨在对ADO 技术作一个基本介绍,由于计算机技术发展很快,有些最新的技术在本文中没有涉及到,有兴趣的同学可以查阅有关资料,也可以与我共同探讨。,作业讲评,作业讲评,作业讲评,作业讲评,一个数据库应用系统的设计与实现,应用背景与需求说明 在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到C/S结构中,只涉及教学管理中的对学生、课程和教师的管理部分: 项目的具体要求是: .运行环境是Windows 95/98操作系统,数据库的前端开发环境是VB 5.0。 一门课程可由多名教师来讲授。 一个教师可讲授多门课程。 一个学生可以选修多门课程。,需产生的报表有 .每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。 .每学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。 生成教师授课服务表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。 安全性要求 本门课程的主讲教师才具有对其所讲授课程的成绩的修改权,教学秘书和系主任才有修改教师授课服务表中的内容的权力。其它人只有查询有关信息的权力。,数据库设计,概念设计 核心活动:是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动 确定系统的核心活动:对现实系统分析的关键 该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教师与课程之间是通过教师授课发生联系的。系统所包含的实体: 课程:元素为由一个主讲教师负责且教学内容相同的教学活动 单位,用课程号来标识此实体。 学生:元素为一个学生,由学号来标识。 教师:元素为一个教师,由教师号来标识。,课程号、课程名、讲授学期、学时数,学号、姓名、系、专业、班级,教师号、教师名、系、教研室,数据库设计,设计关系模式 设计基本关系模式主要就是从ER图出发,将其直接转换为关系模式。转换的规则为: 1.将每个实体都转换为一个关系模式。实体的属性就是关系的属性,实体的主码就是关系的主码。 2.将每个联系也转换为一个关系模式,该关系模式的属性由与该联系相连的各个实体的主码及该联系的属性组成,该联系的主码分三种情况: . 若联系是1:1的,则每个实体的主码即是该联系的候选码。 . 若联系是1:n的,则此联系的主码是n端实体的主码。 . 若联系是m:n的,则此联系的主码是各个实体的主码的并。 此ER图的关系模式为: (1)课程(课程号,课程名,讲授学期,学时数),主码为课程号。 (2)学生(学号、姓名、系、专业、班),主码为学号。 (3)教师(教师号、教师名、系、教研室),主码为教师号。 (4)修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为(学号,课程号)。 (5)授课(课程号,教师号,授课类别,班数),主码为(课程号,教师号)。,设计关系模式 确定表中各属性的详细信息,(1)课程表 课程号:字符串型,10字节,主码 课程名:字符串型,20字节,非空 讲授学期:字符串型,2字节,非空 学时数:整型,非空 (2) 学生表 学号:字符串型,10字节,主码 姓名:字符串型,20字节,非空 系:字符串型,20字节,非空 专业:字符串型,20字节,非空 班:字符串型,10字节,非空 (3) 教师表 教师号:字符串型,10字节,主码 教师名:字符串型,20字节,非空 系:字符串型,20字节 教研室:字符串型,10字节,(4) 修课表 学号:字符串型,10字节,主码,学生表的外码 课程号:字符串型,10字节,主码,课程表的外码 修课类别:字符串型,4字节,非空 平时成绩:浮点型,大于等于0,小于等于100 卷面成绩:浮点型,大于等于0,小于等于100 总评成绩:浮点型,大于等于0,小于等于100 (5) 授课表 课程号:字符串型,10字节,主码,课程表的外码 教师号:字符串型,10字节,主码,教师表的外码 授课类别:字符串型,10字节 班数:浮点型,大于0。假设选修课有半个班的情况,因此取浮点型。,确定数据库应用的功能,最常用的功能就是对数据的增、删、改、查及生成报表 1.数据录入(增加) 2.数据删除 3.数据修改 4.数据查询 5.生成报表,包括对张表的数据录入,有条件删除,有权限限制,有删除确认,有条件查询后修改,有权限限制,修改后保存,根据用户提出的条件查询,所有用户都有查询权限,用数据库开发工具生成报表,本例三张报表: (1) 学生修课表(学号,姓名,课程名,修课类别) (2) 学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩) (3) 教师授课服务表(教师号,教师名,课程名,授课类别,学时数,班数) 创建视图的SQL语句可描述为: CREATE VIEW 学生修课表(学号,姓名,课程名,修课类别)AS SELECT 学生.学号,学生.姓名,课程.课程名,修课.修课类别 FROM 学生,课程,修课 WHERE 学生.学号 = 修课.学号 AND 课程.课程号 = 修课.课程号,对“学生成绩表”和“教师授课服务表”的处理与此类似,数据库开发环境,在C/S环境下实现时应注意数据的分布 将数据全部放在服务器上-中央数据库 将数据全部集中管理,数据只有一份,比如实时采集的数据一般都应该放在服务器端。 将一部分数据放在服务器上,另一部分数据放在客户机上-地方数据库 将数据分散管理,只将重要的、所有部门共享的数据放在中央数据库中,将各个部门自己需要的数据放在地方数据库中。 便于全校统一管理,各部门共享,同时各部门有自己的地方数据库。 如“修课表”,中央和地方各有一个,且两者结构一致,当地方课程数据库修改时,能及时修改中央数据库,在保持数据的一致性。 将数据分为中央数据库和地方数据库的好处:减少对中央数据库的操作次数,先在地方数据库中录入数据有关数据(比如本系的修课情况表),当确认准确无误之后再送到中央数据库中。数据一旦被送到中央数据库就不能被随便地修改和删除,这也增加了中央数据库数据的安全性和可靠性。,数据过于庞杂,易于各部门开发自己专用的地方数据库,分类,创建数据库应用程序 数据控件(Data Control),数据控件是连接数据库中的信息和用户用来显示信息的依附控件,是简单数据库应用程序的核心。依附控件是为处理创建数据库应用程序的数据控件而建立的控件。数据控件用于绑定数据库和数据库中的某个表,依附控件用于绑定表中的某个列。数据控件是VB工具箱中的一个可用控件,设置数据控件的步骤: 打开VB选择Data控件在窗体中画出Data控件设定Data控件的DatabaseName和RecordSource属性。,用于绑定某个数据库,用于绑定数据库中的某个表,文本框、标签、校验框、图片

温馨提示

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

评论

0/150

提交评论