书签 分享 收藏 举报 版权申诉 / 41
上传文档赚钱

类型第9章-数据库访问与系统建模要点课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4514535
  • 上传时间:2022-12-16
  • 格式:PPT
  • 页数:41
  • 大小:340.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第9章-数据库访问与系统建模要点课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库 访问 系统 建模 要点 课件
    资源描述:

    1、9.1 9.1 数据库访问概述数据库访问概述9.2 9.2 嵌入式嵌入式SQLSQL第第9章章 数据库数据库访问与系统建模访问与系统建模9.3 9.3 数据库接口数据库接口技术技术9.4 9.4 数据库数据库系统建系统建模方法模方法n应用程序与应用程序与SQLSQL数据库联系的基本方式有:数据库联系的基本方式有:n(1 1)嵌入式)嵌入式SQLSQL或者动态或者动态SQLSQLn(2 2)数据库接口)数据库接口n(3 3)SQLSQL模块模块借助高级语言的功能实现过借助高级语言的功能实现过程化控制与高级计算。程化控制与高级计算。通过应用程序编程接口(通过应用程序编程接口(APIAPI)函数中)

    2、函数中的参数的参数-SQL-SQL语句,来使用数据库。语句,来使用数据库。利用利用SQLSQL扩展过程包的功能编程,调用程序模块,扩展过程包的功能编程,调用程序模块,来操作数据库。来操作数据库。SQLSQL模块是对模块是对SQLSQL语句的过程化扩语句的过程化扩展,常用于数据库服务器的编程。展,常用于数据库服务器的编程。9.2 嵌入式嵌入式 SQL一、概述一、概述SQLSQL分分:交互式交互式嵌入式嵌入式为何引入嵌入式为何引入嵌入式:过程化应用过程化应用复杂数据处理复杂数据处理主语言作用:主语言作用:负责控制流程及处理操负责控制流程及处理操纵结果。纵结果。嵌入式嵌入式 SQLSQL作用:作用:

    3、负责操纵负责操纵DBDB。两种实现方法:两种实现方法:预编译预编译 扩充、修改主语言编译扩充、修改主语言编译程序使之能处理程序使之能处理SQLSQL 预编译方法:预编译方法:预处理程序预处理程序 宿主语言语句宿主语言语句+函数调用函数调用宿主语言编译程序宿主语言编译程序目标程序目标程序连接程序连接程序 可执行程序可执行程序 OS OS 运行结果运行结果宿主语言语句宿主语言语句+嵌入式嵌入式SQLSQL语句语句9.2 嵌入式嵌入式 SQL二、嵌入式二、嵌入式SQLSQL的工作原理的工作原理 1.1.嵌入式嵌入式SQLSQL与主语言的接口与主语言的接口 nSQLSQL语句:面向集合语句:面向集合

    4、主语言语句主语言语句:过程性、记录式过程性、记录式(1)(1)状态变量状态变量SQLSTATE SQLSTATE 描述系统当前状态和运行情况描述系统当前状态和运行情况 0 一般类别一般类别特殊子类特殊子类SQLSTATE SQLSTATE 的格式的格式 在每一个在每一个SQLSQL语句执行之后,语句执行之后,DBMSDBMS将描述当前工作状态和运将描述当前工作状态和运行环境的一个状态值放入行环境的一个状态值放入SQLSTATESQLSTATE中。中。(2)(2)主变量主变量 SQLSQL语句中使用的主语言语句中使用的主语言程序变量称为主变量。程序变量称为主变量。输入主变量输入主变量 由应用程序

    5、对其赋值,由应用程序对其赋值,SQLSQL语句引用。语句引用。输出主变量输出主变量 由由SQLSQL语句对其赋值或置语句对其赋值或置状态,返应用程序。状态,返应用程序。9.2 嵌入式嵌入式 SQL(3)(3)游标游标(Cursor)(Cursor)游标游标是系统开设的一个数据缓冲区,存放是系统开设的一个数据缓冲区,存放SQLSQL语语句的执行结果。句的执行结果。作用:作用:用户可以通过游标获取纪录,并赋给主变用户可以通过游标获取纪录,并赋给主变量,交主语言处理。量,交主语言处理。游标名游标名.一条纪录一条纪录主变量主变量游标游标指针指针SQLSQL查查询结果询结果 9.2 嵌入式嵌入式 SQL

    6、n2 2、嵌入式、嵌入式SQLSQL需解决的问题:需解决的问题:n(1)(1)如何区分如何区分SQLSQL与主语言语句与主语言语句?v前缀加前缀加EXEC SQLEXEC SQL,结束处用,结束处用ENDENDEXEC(EXEC(或用分号或用分号)v例:嵌入到例:嵌入到C C程序中:程序中:EXEC SQLEXEC SQL SQL ;嵌入到嵌入到JavaJava程序中:程序中:#SQL#SQL SQL ;n(2)(2)如何区分主变量与如何区分主变量与SQLSQL的列变量的列变量?v主变量前加冒号。如主变量前加冒号。如::CnameCnamen(3)(3)主变量与主变量与SQLSQL的列变量如何

    7、交互、转换?的列变量如何交互、转换?v需要有一种机制:能将需要有一种机制:能将SQLSQL中的集合量逐个送入主变中的集合量逐个送入主变量内,供主程序使用。量内,供主程序使用。v方法方法:用一组游标语句。用一组游标语句。9.2 嵌入式嵌入式 SQL 3 3、SQLSQL语句与主语言间的通信语句与主语言间的通信 :1)1)主语言向主语言向SQLSQL语句提供参数;语句提供参数;2)2)向主语言传递向主语言传递SQLSQL的执行状态;的执行状态;3)3)将将SQLSQL操作结果交主语言进一步处理操作结果交主语言进一步处理n嵌入式嵌入式SQLSQL工作原理:工作原理:主语言程序主语言程序SQLSQL语

    8、句语句游标游标主变量主变量SQLSQL状态状态执行参数执行参数执行状态执行状态结果状态结果状态9.2 嵌入式嵌入式 SQL三、嵌入式三、嵌入式SQLSQL的程序组成的程序组成 嵌入式嵌入式 SQLSQL语句可分为:语句可分为:可执行语句可执行语句(数据定义、控制、操纵)(数据定义、控制、操纵)说明性语句说明性语句 (说明变量、游标(说明变量、游标)n程序的主要部分程序的主要部分 (1)DECLARE(1)DECLARE段段(用于定义主变量用于定义主变量 )格式:格式:EXEC SQL BEGIN DECLARE SECTIONEXEC SQL BEGIN DECLARE SECTION;/主变

    9、量说明主变量说明 EXEC SQL END DECLARE SECTIONEXEC SQL END DECLARE SECTION;(2)CONNECT(2)CONNECT 语句(语句(建立建立SQLSQL连接连接)格式:格式:EXEC SQL CONNECT TO SQLEXEC SQL CONNECT TO USER USER ;9.2 嵌入式嵌入式 SQL(3)WHENEVER(3)WHENEVER语句语句 使用使用WHENEVERWHENEVER语句可以简化每条嵌入式语句可以简化每条嵌入式SQLSQL语句语句后编写检查后编写检查SQLSTATESQLSTATE值的程序。值的程序。WHE

    10、NEVERWHENEVER语句通知预编译程序如何处理三种异常:语句通知预编译程序如何处理三种异常:n WHENEVER SQLERRORWHENEVER SQLERROR:通知预编译程序产生处理通知预编译程序产生处理错误的代码错误的代码(SQLSTATE0).(SQLSTATE0).n WHENEVER SQLWARNINGWHENEVER SQLWARNING:通知预编译程序产生处通知预编译程序产生处理警报的代码理警报的代码(SQLSTATE=1).(SQLSTATE=1).n WHENEVER NOT FOUNDWHENEVER NOT FOUND:通知预编译程序产生没有通知预编译程序产生

    11、没有查到内容的代码查到内容的代码(SQLSTATE=100).(SQLSTATE=100).9.2 嵌入式嵌入式 SQL用户可指定预编译程序采取以下行为:用户可指定预编译程序采取以下行为:nWHENEVERWHENEVERGOTOGOTO:通知预编译程序产生一条转移通知预编译程序产生一条转移语句。语句。nWHENEVERWHENEVERCONTINUECONTINUE:通知预编译程序让程序控通知预编译程序让程序控制流转入到下一个主语言语句。制流转入到下一个主语言语句。nWHENEVERWHENEVERCALLCALL:通知预编译程序调用函数。通知预编译程序调用函数。其完整语法如下:其完整语法如

    12、下:WHENEVER SQLWARNING|SQLERROR|NOT FOUNDWHENEVER SQLWARNING|SQLERROR|NOT FOUND CONTINUE|GOTO stmt_label|CALL CONTINUE|GOTO stmt_label|CALL function()function()(4)(4)应用程序体应用程序体 若干可执行若干可执行SQLSQL语句及主语言语句。语句及主语言语句。提交和退出数据库:提交和退出数据库:COMMIT WORK RELEASECOMMIT WORK RELEASE;9.2 嵌入式嵌入式 SQL四、嵌入式四、嵌入式SQLSQL的使用

    13、技术的使用技术1.1.无游标的操作无游标的操作 n说明性语句说明性语句 n数据定义数据定义语句语句n数据控制语句数据控制语句 n数据插入语句数据插入语句n非当前形式的非当前形式的UPDATEUPDATE、DELETEDELETE语句语句n语句查询结果为单记录的语句查询结果为单记录的SELECTSELECT2.2.带游标的查询操作带游标的查询操作 n查询结果为多记录。查询结果为多记录。n当前形式的当前形式的UPDATEUPDATE、DELETEDELETE语句语句9.2 嵌入式嵌入式 SQLn游标语句作用:游标语句作用:把对集合的操作转换为对单个记录的处理。把对集合的操作转换为对单个记录的处理。

    14、n使用游标的步骤为:使用游标的步骤为:(1)(1)定义游标定义游标 分配缓冲区并对应查询语句。分配缓冲区并对应查询语句。格式:格式:EXEC SQL DECLARE EXEC SQL DECLARE CURSOR FOR CURSOR FOR SELECT ;9.2 嵌入式嵌入式 SQL(2)(2)打开游标打开游标 执行相应的语句,把查询结果取执行相应的语句,把查询结果取到缓冲区中。到缓冲区中。格式:格式:EXEC SQL OPEN EXEC SQL OPEN ;(3)(3)推进游标推进游标 推进游标指针并取当前记录。推进游标指针并取当前记录。格式:格式:EXEC SQL FETCH EXEC

    15、 SQL FETCH INTO:INTO:1,:2,(4)(4)关闭游标关闭游标 释放缓冲区及其他资源。释放缓冲区及其他资源。格式:格式:EXEC SQL CLOSE EXEC SQL CLOSE ;查询查询语句语句游标名游标名SELECTSELECT结果结果1 12 2n n主变量主变量9.2 嵌入式嵌入式 SQL 例例9.69.6使用游标的示例。使用游标的示例。#include stdio.h#include EXEC SQL BEGIN DECLARE SECTIONEXEC SQL BEGIN DECLARE SECTION VARCHAR uid20;VARCHAR uid20;IN

    16、T st_no INT st_no;CHAR c_no4;CHAR c_no4;FLOAT sc_grade FLOAT sc_grade;EXEC SQL END DECLARE SECTION;EXEC SQL END DECLARE SECTION;/*SQL SQL中使用的主变量说明中使用的主变量说明 */void main()void main()strcpy(uid,”YINstrcpy(uid,”YIN”);”);EXEC SQL WHENEVER SQLEXCEPTION GOTO error_abort EXEC SQL WHENEVER SQLEXCEPTION GOTO

    17、error_abort;EXEC SQL CONNECT TO student_db USER:uid EXEC SQL CONNECT TO student_db USER:uid;/*建立与建立与DBDB的连接的连接 */printf(“connected to student_db by User%sn”,uid printf(“connected to student_db by User%sn”,uid););EXEC SQL DECLARE cu1 CURSOR FOR EXEC SQL DECLARE cu1 CURSOR FOR /*定义游标定义游标 */SELECT sno,

    18、cno,grade SELECT sno,cno,grade FROM sc FROM sc WHERE sno WHERE sno=:st_no:st_no;scanf(“please enter the student no:%d”,st_no scanf(“please enter the student no:%d”,st_no););EXEC SQL OPEN cu1;EXEC SQL OPEN cu1;/*打开游标打开游标 */9.2 嵌入式嵌入式 SQL EXEC SQL WHENEVER NOT FOUND DO BREAK;EXEC SQL WHENEVER NOT FOUN

    19、D DO BREAK;printf(“sno course_noprintf(“sno course_no graden”);graden”);for(;)for(;)EXEC SQL FETCH cu1 INTO:st_no,:c_no,:sc_grade EXEC SQL FETCH cu1 INTO:st_no,:c_no,:sc_grade;/*推进游标推进游标 */printf(“%-10d,%-4s,%-8.2fn”,st_no,c_no,sc_grade);printf(“%-10d,%-4s,%-8.2fn”,st_no,c_no,sc_grade);EXEC SQL CLOS

    20、E cu1;EXEC SQL CLOSE cu1;/*关闭游标关闭游标 */EXEC SQL WHENEVER SQLEXCEPTION CONTINUE;EXEC SQL WHENEVER SQLEXCEPTION CONTINUE;EXEC SQL COMMIT WORK RELEASE;EXEC SQL COMMIT WORK RELEASE;/*提交并退出提交并退出DB DB*/EXEC SQL DISCONNECT CURRENT;EXEC SQL DISCONNECT CURRENT;/*撤消当前连接撤消当前连接 */exit(0);exit(0);五、五、动态动态 SQLSQLn

    21、动态动态SQLSQL:程序运行时动态指定程序运行时动态指定SQLSQL语句。语句。n有有3 3种基本形式:种基本形式:(1)(1)条件可变条件可变 (2)(2)数据库对象、查询条件均可变数据库对象、查询条件均可变 (3)(3)语句可变语句可变n实现方式:实现方式:1 1直接执行的动态直接执行的动态SQLSQLn方法方法:定义一个串主变量,程序在执行时提示输入定义一个串主变量,程序在执行时提示输入SQLSQL语句。语句。2 2带动态参数的动态带动态参数的动态SQLSQLn方法方法:在在SQLSQL语句中含有临时占位变量,在此语句执行前,程序语句中含有临时占位变量,在此语句执行前,程序提示输入相应

    22、参数以取代这些变量。提示输入相应参数以取代这些变量。3.3.查询类查询类的动态的动态SQLSQL(用于查询结果为集合且需返回的情况)(用于查询结果为集合且需返回的情况)n方法方法:定义一个串主变量,程序在执行时动态设置或提示输入定义一个串主变量,程序在执行时动态设置或提示输入SQLSQL语句。一般需用游标。语句。一般需用游标。五、五、动态动态 SQLSQLn动态动态SQLSQL执行过程:执行过程:(1 1)执行)执行PREPAREPREPARE语句要求语句要求DBMSDBMS分析、确认和优化语句,并为其生分析、确认和优化语句,并为其生成执行计划。成执行计划。语句格式:语句格式:PREPARE

    23、PREPARE FROM:FROM:功能:功能:接收含有接收含有SQLSQL语句的主变量,并把该语句送到语句的主变量,并把该语句送到DBMSDBMS。DBMSDBMS编编译该语句并生成执行计划。译该语句并生成执行计划。(2 2)用)用EXECUTEEXECUTE语句执行语句执行”执行计划执行计划”。P.269 P.269 例例 9.79.7注意以下几句:注意以下几句:strcpy(select_st,”SELECT sno,sname,agestrcpy(select_st,”SELECT sno,sname,age FROM student WHERE”);FROM student WHER

    24、E”);scanf(“please enter the query condition:%sn”,query_fscanf(“please enter the query condition:%sn”,query_f););strcat(select_st,query_fstrcat(select_st,query_f);/);/*将将SQLSQL查询语句保存在变量查询语句保存在变量select_stselect_st中中 */EXEC SQL EXEC SQL PREPAREPREPARE sql_stsql_st FROM FROM:select_st:select_st /*生成执行计划

    25、生成执行计划 */EXEC SQL DECLARE st_cursorEXEC SQL DECLARE st_cursor CURSOR FOR CURSOR FOR sql_stsql_st 五、五、动态动态 SQLSQL补充例:补充例:在在scsc表中插入一条记录,记录的值由程序决定。表中插入一条记录,记录的值由程序决定。#include string.h#include#include stdio.h#include main()main()EXEC SQL BEGIN DECLARE SECTION;EXEC SQL BEGIN DECLARE SECTION;char perp ch

    26、ar perp=“INSERT INTO sc VALUES(=“INSERT INTO sc VALUES(?,?,?)”;)”;char sno6;char sno6;char cno4;char cno4;int int grade;grade;EXEC SQL END DECLARE SECTION;EXEC SQL END DECLARE SECTION;EXEC SQL CONNECT TO student USER sa EXEC SQL CONNECT TO student USER sa.;.;参数标志参数标志五、五、动态动态 SQLSQLEXEC SQL EXEC SQL

    27、PREPARE prep_statPREPARE prep_stat FROM:prep;FROM:prep;if(SQLSTATE=0)/if(SQLSTATE=0)/*SQL SQL语句执行成功语句执行成功 */strcpy(sno,”995201”);strcpy(sno,”995201”);strcpy(cno,”c601”);strcpy(cno,”c601”);grade=76;grade=76;EXEC SQL EXEC SQL EXECUTE prep_statEXECUTE prep_stat USING:sno,:cno,:grade USING:sno,:cno,:gra

    28、de;代替准备语句中代替准备语句中的参数标志的参数标志“?”9.3 数据库接口数据库接口技术技术n指为支持指为支持DBDB应用开发而提供的各种标准应用程序编程接口应用开发而提供的各种标准应用程序编程接口。n1.1.典型的数据库应用接口典型的数据库应用接口n(1)ODBC(1)ODBC(开放式数据库互联)提供了一组对数据库访问的标准(开放式数据库互联)提供了一组对数据库访问的标准应用程序编程接口应用程序编程接口,使用户通过使用户通过SQLSQL可访问不同的关系数据库。可访问不同的关系数据库。n(2)OLE(2)OLE(对象连接与嵌入数据库对象连接与嵌入数据库)建立于建立于 ODBC ODBC 之

    29、上,并将此之上,并将此技术扩展为提供更高级数据访问接口的组件结构。技术扩展为提供更高级数据访问接口的组件结构。n(3)SQL/CLI(3)SQL/CLI(SQLSQL调用级接口)是调用级接口)是SQLSQL的应用编程接口,它等于的应用编程接口,它等于核心核心ODBC APIODBC API。它定义了一套公共函数,从一个主语言应用程序。它定义了一套公共函数,从一个主语言应用程序可以调用这些函数,连接到数据库。可以调用这些函数,连接到数据库。n(4)JDBC(Java(4)JDBC(Java数据库连接数据库连接)是基于是基于JavaJava语言的数据访问接口,具语言的数据访问接口,具有平台无关性。

    30、适合于有平台无关性。适合于InternetInternet上异构环境的数据库应用。上异构环境的数据库应用。n(5)ADO.NET(5)ADO.NET 是在微软是在微软.NET.NET编程环境中优先使用的数据访问接口。编程环境中优先使用的数据访问接口。提供了平台互用性和可伸缩的数据访问,功能强、易用、高效。提供了平台互用性和可伸缩的数据访问,功能强、易用、高效。n(6)OTL(6)OTL 是一个是一个C+C+编译中操控关系数据库的模板库。编译中操控关系数据库的模板库。2.2.开放式接口开放式接口-ODBCODBCODBC APIODBC APISQL ServerSQL Server数据源数据源

    31、OracleOracle数据源数据源DB2DB2数据源数据源DBDBDBDBDBDBSQL ServerSQL Server驱动程序驱动程序OracleOracle驱动程序驱动程序DB2DB2驱动程序驱动程序驱动程序管理器驱动程序管理器应用程序应用程序1 1应用程序应用程序2 2应用程序应用程序n nODBCODBC应用程序层接口应用程序层接口:供供DBDB应应用程序开发人员使用。用程序开发人员使用。由各个由各个DBDB厂商提供。厂商提供。它提供对具体它提供对具体DBDB操作接口,操作接口,是应用程序对各数据源发是应用程序对各数据源发出操作的实际执行者出操作的实际执行者(1)ODBC(1)OD

    32、BC应用系统的体系结构:应用系统的体系结构:2.2.开放式接口开放式接口-ODBCODBCn(2)(2)连接过程:连接过程:n常用常用:nMFC的的ODBC类类nODBC 3.0 C C B B B BC CB BDB 特定的特定的 ODBCODBC驱动驱动A特定的特定的DBMSDBMSA客户应用程序客户应用程序驱动管理器驱动管理器A A要求与数据源连接要求与数据源连接确定合适的确定合适的ODBC驱动驱动服务器处理请服务器处理请求求,查询提交查询提交查询查询操作操作网络3.3.调用级接口调用级接口-JDBCJDBC应用程序应用程序1 1应用程序应用程序2 2应用程序应用程序n nJDBC AP

    33、IJDBC APIJDBCJDBC驱动程序驱动程序APIAPI JDBC JDBC驱动程序管理器驱动程序管理器JDBC-JDBC-Middle Middle ware ware Pure JDBC Pure JDBC Driver Driver JDBC-Native JDBC-Native API BridgeAPI Bridge JDBC-ODBC JDBC-ODBC BridgeBridgeODBC DriverODBC Driver类型类型1 1类型类型2 2类型类型3 3类型类型4 4数据源数据源DBDB数据源数据源DBDB数据源数据源DBDB数据源数据源DBDB3.3.调用级接口调

    34、用级接口-JDBCJDBCnJDBCJDBC的特点:的特点:n具有硬件平台、具有硬件平台、OSOS异构性支持异构性支持nJDBCJDBC驱动程序可通过驱动程序可通过WebWeb浏览器自动下载,无须安装、浏览器自动下载,无须安装、配置配置。nJDBC编程主要步骤:编程主要步骤:n登记并加载登记并加载JDBCJDBC驱动器。驱动器。n建立与建立与SQLSQL数据库的连接;数据库的连接;n传送一个传送一个SQLSQL操作;操作;n获得数据结果获得数据结果;3.3.调用级接口调用级接口-JDBCJDBCnJDBC编程要点编程要点-Java应用为例:应用为例:(1)Import java.Sql.*;(

    35、2)加载相应的加载相应的JDBC驱动程序。驱动程序。若以加载若以加载jdbc-odbc 桥为例:桥为例:nClass.forName(”sun.jdbc.odbc.JdbcOdbcDriver);(3)定义定义JDBC的的URL对象。对象。例如:例如:n String conURL=”jdbc:odbc:TestDB”;/设置的要创建的设置的要创建的数据源数据源(4)连接数据库。连接数据库。nConnection s=DriverManager,getConnection(conURL);(5)使用使用SQL语句对数据库进行操作。语句对数据库进行操作。(6)解除连接并关闭数据库。解除连接并关闭

    36、数据库。n例如:例如:S.close();例:【图例:【图9-6】P.273 n是在微软是在微软.NET.NET编程环境中优先使用的数据访问接口。编程环境中优先使用的数据访问接口。n是一组用于和数据源进行交互的面向对象类库,允许和不是一组用于和数据源进行交互的面向对象类库,允许和不同类型的数据源交互,功能强、易用、高效。同类型的数据源交互,功能强、易用、高效。n该类库中的类提供了众多对象,分别完成与数据库的连接、该类库中的类提供了众多对象,分别完成与数据库的连接、查询、插、删和更新记录等操作。查询、插、删和更新记录等操作。n1.ADO.NET查询数据库的步骤查询数据库的步骤:1)创建一个数据库

    37、链路;创建一个数据库链路;2)请求一个记录集合;请求一个记录集合;3)把记录集合暂存到数据集把记录集合暂存到数据集 (可放多个数据集可放多个数据集);4)关闭数据库链路;关闭数据库链路;5)在数据集上查询。在数据集上查询。nADO.NETADO.NET提供了两种读取数据库的方式:提供了两种读取数据库的方式:1 1)通过)通过DataReaderDataReader对象读取数据。只能读取对象读取数据。只能读取DBDB,效率高。,效率高。2 2)通过数据集)通过数据集DataSetDataSet和和DataAdapterDataAdapter对象访问和操作数据。对象访问和操作数据。方式灵活,可对方

    38、式灵活,可对DBDB进行各种操作。进行各种操作。nADO.NETADO.NET访问数据库的步骤(访问数据库的步骤(方式方式2 2为例为例):):n1 1)使用)使用ConnectionConnection对象创建一个数据库链路。对象创建一个数据库链路。n2 2)使用)使用CommandCommand或或DataAdapterDataAdapter对象请求一个记录集合。对象请求一个记录集合。n3 3)把记录集合暂存到)把记录集合暂存到DataSetDataSet中中(可容纳多个数据集合)(可容纳多个数据集合)如果需要,返回第如果需要,返回第2 2步。步。n4 4)关闭数据库链路。)关闭数据库链路

    39、。n5 5)在)在DataSetDataSet上进行所需要的操作。上进行所需要的操作。n重要概念重要概念:DataSet:DataSet-是不依赖于数据库的独立数据集合,是不依赖于数据库的独立数据集合,即使断开数据链路或者关闭数据库,其依然可用。即使断开数据链路或者关闭数据库,其依然可用。9.4 数据库数据库系统建系统建模方法模方法一一.UML.UML 简介简介n统一建模语言(统一建模语言(Unified Modeling LanguageUnified Modeling Language,UMLUML)是进行系)是进行系统分析和设计的重要工具,数据库系统设计中,常应用统分析和设计的重要工具,

    40、数据库系统设计中,常应用UMLUML表表示中的类图来建立信息模型。示中的类图来建立信息模型。n用来对软件进行可视化建模。用来对软件进行可视化建模。是用于对面向对象的产品进是用于对面向对象的产品进行说明、可视化和编制文档一种标准语言。行说明、可视化和编制文档一种标准语言。n适于数据适于数据/对象对象/业务建模。业务建模。使开发者专注于建立产品的模使开发者专注于建立产品的模型和结构,模型可被型和结构,模型可被UMLUML工具转化成指定的程序代码。工具转化成指定的程序代码。n是是DBSDBS设计的一种新方法。设计的一种新方法。UMLUML概括了软件工程、建模和管概括了软件工程、建模和管理、数据库设计

    41、等许多方法学,在众多设计领域获得流行。理、数据库设计等许多方法学,在众多设计领域获得流行。n二、二、UMLUML的特点的特点n(1)(1)面向对象、表示能力强面向对象、表示能力强 n(2)(2)独立于过程、独立于语言独立于过程、独立于语言 n(3)(3)易于使用、方便集成易于使用、方便集成三、三、UMLUML的表示法的表示法n是标准的一组符号的图形表示法。是标准的一组符号的图形表示法。n标准建模语言标准建模语言UMLUML的主要表示可由下列五类图组成:的主要表示可由下列五类图组成:n第一类是用例图。用例图从用户角度描述系统功能,并指第一类是用例图。用例图从用户角度描述系统功能,并指出各功能的操

    42、作者。出各功能的操作者。n第二类是静态图。静态图包括类图、对象图和包图。其中第二类是静态图。静态图包括类图、对象图和包图。其中类图描述系统中类的静态结构。类图描述系统中类的静态结构。n第三类是行为图。行为图描述系统的动态模型和组成对象第三类是行为图。行为图描述系统的动态模型和组成对象间的交互关系。间的交互关系。n第四类是交互图。交互图描述对象间的交互关系。第四类是交互图。交互图描述对象间的交互关系。n第五类是实现图。实现图中的配置图定义系统中软硬件的第五类是实现图。实现图中的配置图定义系统中软硬件的物理体系结构。物理体系结构。nUMLUML是进行系统分析和设计的重要工具,是进行系统分析和设计的

    43、重要工具,DBSDBS设计中,设计中,常用常用UMLUML中的类图来进行中的类图来进行E-RE-R建模建模(概念建模概念建模)。n仅描述仅描述 UML UML 如何处理如何处理 E-R E-R 建模的核心元素。建模的核心元素。n1.UML1.UML中的实体类型中的实体类型PERSON IDName:Address:Hobbies0.:INT CHAR(20)CHAR(50)CHAR(10)ChangeAddr(NewAddr:CHAR(50)AddHobby(Hobby:CHAR(10)STUDENT IDNameAddress:GPA:StartDate:INTCHAR(20)CHAR(50

    44、)DEC(3,1)DATEChangeAddr(NewAddr:CHAR(50)SetStartDate(Date:DATE)self.GPA 80.0n2.2.在在UMLUML中表示联系中表示联系n在在UMLUML中,类之间的联系被称为关联,而联系类型被称为关联类中,类之间的联系被称为关联,而联系类型被称为关联类型。型。UMLUML图为关联类型附加了比在图为关联类型附加了比在E-RE-R图中更丰富的语义。图中更丰富的语义。n(1 1)不带属性的关联)不带属性的关联EMPLOYEESubordinateREPORTSTOSupervisorPROFESSORDEPARTMENTWORKSINP

    45、ROJECTPARTSUPPLIERSOLDCustomerProduct(b)(c)UML类的关联示例类的关联示例(a)关联关联n(2 2)带属性的关联)带属性的关联-关联类关联类n关联类也用矩形表示,且含该联系上的属性,但用一条虚线将它关联类也用矩形表示,且含该联系上的属性,但用一条虚线将它连到相关的联系上。关联类和联系的名称必须相关。连到相关的联系上。关联类和联系的名称必须相关。EMPLOYEE SubordinateREPORTSTO SupervisorPROFESSORDEPARTMENTWORKSIN(b)WORKSINSince:DATE(c)PROJECTPARTSUPPLI

    46、ERSOLDCustomerProductSOLDDate:DATEPrice:DEC(7,2)(a)关联类关联类n3.UML3.UML中的简单约束中的简单约束n(1 1)关联中的码约束)关联中的码约束主码约束、外码约束主码约束、外码约束允许允许:用用,帮助理解帮助理解UMLUML中约束。中约束。n(2 2)重复度约束()重复度约束(multiplicity constraintmultiplicity constraint)nUML UML 中类之间的联系双方线上的数字指定了参与该联系的中类之间的联系双方线上的数字指定了参与该联系的可能实体可能实体(对象对象)的数量,称为的数量,称为“重复度

    47、约束重复度约束”。n关联到类关联到类A A和类和类B B的角色的角色R R上的一个重复度约束,是附加到上的一个重复度约束,是附加到R R上的形如上的形如n.mn.m的范围定义,它给出了类的范围定义,它给出了类A A可关联到类可关联到类B B实体实体数目的下限和上限。数目的下限和上限。n简写范围简写范围*的意思是:的意思是:0.0.*,范围,范围1 1的意思是:的意思是:1.11.1。n注意:注意:UMLUML图中重复度约束与图中重复度约束与E-RE-R图中基数表示形式相似,图中基数表示形式相似,但位置相反。但位置相反。WORKSIN0.1 1SOLDCustomerProductPROFESS

    48、OR ProfId:INTDEPARTMENT DeptId:INTWORKSIN ProfId:INTSince:DATESince:DATEPROJECTProjId:INTPARTPartId:INTSOLD ProjId:INT PartId:INTDate:DATEDate:DATEPrice:DEC(7,2)Price:DEC(7,2)SUPPLIERSuppId:INT(a)(b)Key:Customer,product;Date重复度约束重复度约束注释注释:说明约束说明约束n1 1类层次类层次n在在UMLUML中,父类与子类联系中,父类与子类联系(Is A(Is A联系联系)被

    49、称为一般联系,用被称为一般联系,用一个子类指向一个父类的实心箭头表示。一个子类指向一个父类的实心箭头表示。PERSON ID:INTName:CHAR(20)Address:CHAR(50)STUDENTGPA:DEC(3,1)StartDate:DATESTUDENTGPA:DEC(3,1)StartDate:DATEfreshmanSophomoreMajor:CHAR(3)JUNIORMajor:CHAR(3)SENIORMajor:CHAR(3)Advisor:CHAR(20)complete,disjoint(a)(b)覆盖覆盖,不相交约束不相交约束2依赖关系-Part-of联系nP

    50、art-ofPart-of联系是需要依赖的两个实体类型之间的一种依赖联系是需要依赖的两个实体类型之间的一种依赖关系。关系。UML UML 分为两种形式的实体类型间的依赖关系。分为两种形式的实体类型间的依赖关系。n在在UMLUML中,非独占中,非独占part-ofpart-of联系(其部分可以独立存在)被联系(其部分可以独立存在)被称为称为聚合聚合。如:教室与座椅。如:教室与座椅。nUMLUML聚合用特殊的符号聚合用特殊的符号-一条带有中空菱形的线表示,一条带有中空菱形的线表示,UMLUML中聚合是在聚合方用中空菱形表示。与中聚合是在聚合方用中空菱形表示。与UMLUML中的聚合相中的聚合相伴随的

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第9章-数据库访问与系统建模要点课件.ppt
    链接地址:https://www.163wenku.com/p-4514535.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库