第六章 关系数据库应用

上传人:ning****hua 文档编号:243145523 上传时间:2024-09-16 格式:PPT 页数:40 大小:1.42MB
返回 下载 相关 举报
第六章 关系数据库应用_第1页
第1页 / 共40页
第六章 关系数据库应用_第2页
第2页 / 共40页
第六章 关系数据库应用_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北航可靠性工程研究所,2005,软件技术基础,关系数据库应用,软件技术基础,创建,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,移动和遍历操作操作,操 作,类型,说明,MoveFirst,方法,移动到记录集首,MoveLast,方法,移动到记录集尾,MoveNext,方法,移动到下一条记录,MovePrevious,方法,移动到上一条记录,Move,方法,往前或往后移动数条记录,Bookmark,属性,返回标识当前记录的书签或设置到指定的书签位置,BOF,属性,若当前位置在首条记录之前,则返回,True,否则为,False,EOF,属性,若当前位置在最后记录之后,则返回,True,否则为,False,移动和遍历操作:,Recordset,提供了各种方向的移动操作,利用这些操作可以对记录集进行遍历处理。各种移动操作如下表所示。利用这些属性和方法,可以很灵活地访问记录集,结束语,随着信息化时代的不断深入,信息处理和信息共享变得越来越重要,数据访问技术对于信息系统也就显得尤为重要,本文介绍了,Microsoft,提供的一致数据访问,(UDA),技术,从基本的结构模型到深入介绍,ADO,对象模型,并从应用的角度分析了,ADO,的一些特性,最后通过例程序展示了,ADO,的基本用法。,本节课旨在对,ADO,技术作一个基本介绍,由于计算机技术发展很快,有些最新的技术在本文中没有涉及到,有兴趣的同学可以查阅有关资料,也可以与我共同探讨。,作业讲评,书号,书名,定价,出版社,作者,ISN001,B1,10,C1,A1,ISN002,B2,20,C2,A1,ISN001,B1,30,C1,A3,作业讲评,书号,书名,ISN001,B1,书号,定价,ISN001,10,书名,出版社,B1,C1,书名,作者,B1,A1,作业讲评,书号,书名,定价,ISN001,B1,10,ISN002,B2,20,ISN001,B1,30,书号,出版社,作者,ISN001,C1,A1,ISN002,C2,A1,ISN001,C1,A3,作业讲评,书号,书名,定价,ISN001,B1,10,书号,出版社,ISN001,C1,书号,作者,ISN001,A1,一个数据库应用系统的设计与实现,应用背景与需求说明,在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到,C/S,结构中,只涉及教学管理中的对学生、课程和教师的管理部分:,项目的具体要求是:,.,运行环境是,Windows 95/98,操作系统,数据库的前端开发环境是,VB 5.0,。,一门课程可由多名教师来讲授。,一个教师可讲授多门课程。,一个学生可以选修多门课程。,需产生的报表有,.,每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。,.,每学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。,生成教师授课服务表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。,安全性要求,本门课程的主讲教师才具有对其所讲授课程的成绩的修改权,教学秘书和系主任才有修改教师授课服务表中的内容的权力。其它人只有查询有关信息的权力。,数据库设计,概念设计,核心活动,:,是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动,确定系统的核心活动:对现实系统分析的关键,该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教师与课程之间是通过教师授课发生联系的。系统所包含的实体:,课程:,元素为由一个主讲教师负责且教学内容相同的教学活动,单位,用课程号来标识此实体。,学生:,元素为一个学生,由学号来标识。,教师:,元素为一个教师,由教师号来标识。,课程号、课程名、讲授学期、学时数,学号、姓名、系、专业、班级,教师号、教师名、系、教研室,数据库设计,设计关系模式,设计基本关系模式主要就是从,E,R,图出发,将其直接转换为关系模式。转换的规则为:,1.,将每个实体都转换为一个关系模式。实体的属性就是关系的属性,实体的主码就是关系的主码。,2.,将每个联系也转换为一个关系模式,该关系模式的属性由与该联系相连的各个实体的主码及该联系的属性组成,该联系的主码分三种情况:,.,若联系是,1:1,的,则每个实体的主码即是该联系的候选码。,.,若联系是,1:n,的,则此联系的主码是,n,端实体的主码。,.,若联系是,m:n,的,则此联系的主码是各个实体的主码的并。,此,E,R,图的关系模式为:,(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,控件的,Database,Name,和,RecordSource,属性。,用于绑定某个数据库,用于绑定数据库中的某个表,文本框、标签、校验框、图片框、图像等,创建数据库应用程序,创建一个简单的应用程序,例:创建一个课程表应用程序:,建立窗体:,打开,VB,添,加D,ata,控件,设置控件的属性,添,加,依,附,控,件,设置,依,附,控,件,属,性。,Name:Course,Caption:,课程,DatabaseName,:,JXGL.mdb,RecordSource,:,课程,数据访问窗体设置的,DataField,和,Caption,VB,设置屏幕,浏览数据库中数据:,单击运行按钮,,结果如下,:,创建数据库应用程序,创建一个简单的应用程序,第一个记录,最后一个记录,下一条记录,上一条记录,数据控件的其它功能:添加记录、删除记录等,创建数据库应用程序,创建一个简单的应用程序,Private Sub,cmdAdd_Click,(),Data1.Recordset.AddNew,End Sub,Private Sub,cmdDelete_Click,(),Data1.Recordset.Delete,If Not Data1.Recordset.EOF Then,Data1.Recordset.MoveNext,Else,Data1.Recordset.MoveLast,End If,End Sub,使用数据窗体模板,(,Data Form WizardDFW,),创建数据窗,,DFW,是与,VB,一同发行的一个插件,用此插件用户只需选择一个数据库和数据表,,DFW,即自动为用户生成具有对此数据表进行增、删、改、浏览功能的窗体。用户可在此基础上进行修改,使之符合自己的需要。即:,DFW,是一种快速原型开发或简单应用程序的很好的工具。,使用,DFW,创建数据窗体的大致步骤为,:,VB,窗口,外,接,程序,数据,库窗,体,向,导,A,ccess,数据,库,名(,JXGL,.mdb,),根据,提示(,下,一,步),完成,此,操作,,,显示,结果,如下:,创建数据库应用程序,创建数据窗体,DFW,生成的课程数据窗体,创建数据库应用程序,ADO,数据控件,ADO,数据控件,(,Adodc,),控件表格,(,DataGrid,),与数据源连接,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!