text: 第12章数据库应用的开发环境(1)(课件)
  集中式结构:由主机和客户终端组成，数据库和应用程序在主机上。
  数据库操作:用户从客户终端键盘输入信息到主机，由主机返回字符到客户终端。
  优点:实现集中管理，安全性很好。
  缺点:主机价格昂贵，并且应用程序和数据库在主机上，无法 真正划分应用程序的逻辑。
  随着PC机和局域网的问世，诞生了文件服务器结构。
  文件服务器结构:应用程序在客户工作站(PC机)上，数据库在文件服务器上。
  数据库原理及应用数据库操作:设数据库中有一30000条记录的学生表student， 要求查询学号为0221116的学生信息。
  查询是在客户端上完成的，在执行查询语句之前，查询逻辑请求网络将30000行的数据库表传送到本地客户工作站上，在客户端进行处理从而完成 查询，文件服务器只是负责文件的集中管理，并根据客户端的请求向客户端发送文件，并不执行任何其他程序逻辑。
  优点:实现费用低廉，配置灵活，在局域网中可以方便地增减 客户端工作站。
  缺点:客户端必须要有足够的处理能力，以便执行需要的任何 程序或完成任何必要的任务，这可能经常需要客户端的计算机 升级，不断地要修改客户端应用程序。
  文件服务器的费用虽然低廉，但与集中式结构相比，缺乏足够 的计算和处理能力，为了解决费用和性能的矛盾，客户/服务器 结构就应运而生了。
  数据库原理及应用客户/服务器结构(二层结构):数据库在服务器上，应用程序 根据需要划分在客户端和服务器上。
  数据库操作:实际的查询功能将在服务器上完成，服务器发送给客户端的只是查询的结果。
  即客户端应用程序向服务器发出的请求是“传送数据库表student中学号为0221116的记录” ，服务器响应该请求后，在服务器上对表student进行查询， 并通过网络将查询到的1条(而不是30000)记录回送给客户端。
  优点:客户端(也称前台)的请求被传送到服务器(也称后台)， 后台处理后只将结果返回给用户，从而减少了数据传输量;前台面向客户，后台面向应用或操作;后台与前台的软、硬件平台无关，向前台提供了一个开放的使用环境，后台可以安装不同的DBMS，前台可以使用不同厂商的数据库应用开发工具。
  数据库原理及应用缺点: “胖客户”问题。
  即系统安装复杂，相同的应用程序要重复安装在每台客户机上，应用维护困难，难于保密，造成安全 性差，大大浪费了系统资源。
  由于二层结构中应用逻辑分担在客户端和服务器上，因而对这些逻辑规则不能封装、集中配置和管理，为此出现了三层结构 浏览器/服务器结构(三层结构):在客户层和数据库服务器层 之间又添加了一个中间层。
  客户层面向用户服务;数据库服务 器层面向数据服务;而中间层面向应用逻辑，这一层也称为应用服务器，它和数据库服务器可以安排在同一计算机上。
  三层结构的优点: 应用逻辑封装成组件后，可在不同应用程序中共享，可将大型 应用划分为更易管理的模块。
  组件的修改能随时适应商业规则的变化。
  客户端浏览器的界面统一。
  数据库原理及应用集中式结构 数据库原理及应用文件服务器结构 数据库原理及应用客户/服务器结构 10 数据库原理及应用 三层客户/服务器结构 11 数据库原理及应用 文件服务器结构中的数据库操作 查询表格 30000条记录的表格 12 数据库原理及应用 客户/服务器结构中的数据库操作 SQL请求 返回一条记录 13 数据库原理及应用 开放式客户体系结构:开放式客户体系结构使得客户端应用不再紧密地依赖于DBMS，用户有广泛的挑选余地来选择自己喜欢和熟悉的开发工具，甚至开发过程都可以不依赖于DBMS， 可以在客户端独立地进行开发，当真正联调时再连接到数据库 服务器。
  这也有利于团队方式的开发。
  从逻辑上看，ODBC由两部分组成: 连接客户端的标准客户端界面。
  从客户端角度 ODBC遵守共同的标准，使得不同的开发工具 连接和使用数据库的方式是一样的，也使得使用不同DBMS的方式也是一样的。
  连接专门的DBMS服务器端界面或驱动程序。
  14 数据库原理及应用 ODBC 的构成: 应用程序:通过调用ODBC函数可以完成对数据库的访问操作。
  驱动程序管理器:负责对ODBC的驱动程序和数据源进行管理。
  驱动程序:真正实现ODBC函数调用和访问数据库的动态链接函数库，对不同类型的数据库有不同的驱动程序。
  数据源:通过ODBC连接的数据库。
  15 数据库原理及应用 ODBC函数的功能: 请求对数据源的连接，获取连接句柄。
  指定事务控制方式。
  定义接收结果的数据区。
  向数据源发送SQL语句，接收SQL的查询结果。
  处理出错信息，并将出错信息返回给应用程序。
  终止对数据源的连接。
  驱动程序管理器的工作 安装指定的驱动程序。
  定义数据源，并把数据源映射到具体的ODBC驱动程序上。
  为每个驱动程序提供ODBC函数的入口点。
  为ODBC调用提供参数验证等。
  16 数据库原理及应用 ODBC驱动程序的工作 建立与数据源的连接。
  向数据源提交SQL请求。
  处理查询结果。
  将数据源错误转换为标准错误代码，并返回给应用程序。
  提交事务的开始请求、完成请求和撤消请求等。
  17 数据库原理及应用 12.3 PB 12.3 PB PB是美国PowerSoft公司于1991年推出的一个面向对象的数据库应用系统开发工具，利用它可以开发功能强大的、运行在 多个平台上的、能够操作多个数据库的应用系统，还可以开发 C/S、基于组件的分布式和Web分布式应用系统。
  PB连接数据库的方法 通过ODBC:PB的ODBC接口是在Microsoft的ODBC基础上 又附加了一层接口，通过ODBC接口层的DLL，PB把对 ODBC的API直接调用给隐藏了。
  下图示意了PB 与ODBC 关系，PB通过ODBC接口编写应用程序可以完全不理会DBMS的实现方式，只需要利用ODBC接口提供的功能就可以连接和 访问数据库。
  18 数据库原理及应用 通过JDBC(Java DataBase Connectivity):和ODBC一样，JDBC也是一种通用的数据库访问标准，ODBC主要应用于Windows环境，而JDBC则 主要应用于Java环境。
  JDBC是一种用于执行SQL语句的Java API，它由 一组用Java编写的类和接口组成，充分体现了Java的平台无关性。
  下图示意了PB通过ODBC接口连接和访问数据库的相关组件和关系，其中PB JDBC接口由PB提供，JDBC驱动程序由各数据库厂商提供。
  通过OLE(Object Linking Embedding,对象链接与嵌入)DB:OLE是 Microsoft制定的一个关于COM(Component Object Model,对象组件模型) 的标准，而OLE DB则是相应的数据库接口标准。
  实际应用中的数据不仅是 数据库中的数据，还包括邮件数据、Web上的文本或图像数据等，OLE DB就是为各种形式的存储数据提供一种统一的数据访问接口，使应用程序 不必考虑各种数据的格式、类型，可以使用同样的方法存取数据。
  下图示意了PB通过OLE DB接口连接数据库的方式和相关组件之间的关系。
  其中 PB OLE DB接口由PB提供，OLE DB驱动程序由各数据库厂商提供。
  19 数据库原理及应用 20 数据库原理及应用 21 数据库原理及应用 PB应用的构成:一个Windows应用程序由若干窗口构成，每个窗口上都有若干对象(如命令按钮、菜单等)，每个对象都有 若干事件(如命令按钮上的单击或双击等)，每个事件对应一段 程序。
  PB的应用程序也是这样构成的，下图示意了PB应用程序的构成。
  PB应用的开发方法:PB是一个面向对象的开发工具，区别于 传统开发工具。
  传统开发工具考虑的是程序流，开发思路是“ 流控制”;而PB考虑的是对象，开发思路是“事件驱动”，事件驱动程序，即使用PB进行开发的实质是: 定义对象及其属性。
  定义对象上某个事件发生时要执行的程序。
  下图示意了使用PB进行应用开发的流程。
  22 数据库原理及应用 23 数据库原理及应用 对象、属性与事件:是面向对象开发方法的三个要素。
  对象:组成应用程序的部件，PB的主要对象: 窗口(Windows) 数据窗口(DataWindow) 命令按钮(CommandButton) 选择框(CheckBox)、单选按钮(RadioButton) 图形按钮(PictureButton) 下拉列表框(DropDownListBox)、列表框(ListBox) 图形(Graph)、图片(Picture) 单行编辑器(SingleLineEdit)、多行编辑器(MultiLineEdit) 静态文本(StaticText) 菜单(Menu) 24 数据库原理及应用 属性:决定了对象的特征。
  如命令按钮的常用属性有: Default:在一组命令按钮中指定本按钮是否是默认选择的。
  Enabled:说明命令按钮当前是否起作用。
  Text:显示在命令按钮中的文字提示。
  Visible:说明命令按钮当前是否可见。
  事件:决定了当发生什么动作时要执行的程序。
  如: 单击命令按钮的Clicked事件。
  双击图片的DoubleClicked。
  窗口打开时的Open事件。
  数据窗口记录行改变RowFocusChanged事件。
  25 数据库原理及应用 PB的开发环境 工作空间和目标 工作空间:开发各种应用的空间或容器，可以根据需要在一个工作空间中 建立一个或多个目标(应用)，可以同时打开和编辑多个目标中的对象，可以 同时编译和部署多个目标。
  目标:可以是PowerScript目标(客户端可执行程序或服务器端组件)，也可以是Web目标(Web应用)。
  画板(Painter):建立工作空间和目标后，就可以使用画板来建立应用程序 的各个部件，PB为每一类对象提供了一个画板，主要画板有: 应用(Application)对象画板:是应用对象的设计窗口，该窗口中可以描述 应用的特性，为应用对象的事件编写程序等。
  窗口(Window)画板:用于设计窗口，应用程序的主界面在此设计。
  一个窗口可能包含命令按钮、滚动条、列表框、下拉列表框、单选按钮、选择框 、数据窗口、单行编辑器、多行编辑器等控件。
  26 数据库原理及应用 菜单(Menu)画板:用于设计菜单和工具条。
  数据窗口(DataWindow)画板:该画板用来生成数据窗口。
  数据窗口是操作数据库的对象，其中可以完成对数据库的查询和 更新，数据窗口的数据源可以是数据库的表或视图，也可以是 存储过程或外部数据，一个窗口中可以有多个数据窗口，不同 的数据窗口可以对应不同的数据源。
  数据库(Database)画板:提供了数据库操作环境，可以方便地对数据库进行维护，如创建表、进行插入、删除、修改等操作 对象库管理(Library)画板:提供了管理各种对象(如窗口、数据 窗口等)的手段。
  用户对象(User Object)画板:设置某些特定的对象组合、DLL 等为公共对象，建立后就像PB自身的对象一样。
  调试工具(Debug)画板:使应用在测试状态下运行(单、多步) ，以帮助排除错误。
  27 数据库原理及应用 数据库操作与事务对象:PB应用程序要访问数据库，首先要使用事务对象变量建立与数据库的合法连接。
  事务对象的概念:是PowerScript与数据库的通讯区，每个事务对象有15个属性，其中10个用于给出连接数据库的信息，5 个用于返回操作数据库的结果代码(错误或成功)。
  下表给出了事务对象的属性及其描述。
  事务对象的使用:PowerScript使用4条事务语句:连接数据 库CONNECT、断开和数据库的连接DISCONNECT 、事务提交COMMIT、事务撤消ROLLBACK。
  在使用CONNECT语句 之前，相应的事务对象必须存在，且所需属性均已赋值。
  一般 一个应用只和一个数据库打交道，所以PB提供了一个称作 SQLCA(SQL Communication Area)的默认全局事务对象变量。
  若一个应用需要同时访问多个数据库，则应通过多个附加 的事务变量连接各个数据库，附加的事务变量必须先说明和建立之后才能引用，这些附加事务变量不使用时应撤消。
  28 数据库原理及应用 事务对象的使用示例 //说明SQLServerTrans事务对象 transaction SQLServerTrans //置默认事务对象的属性值 SQLCA.DBMS "ODBC"SQLCA.Database "sample"SQLCA.Userid "admin"SQLCA.dbParm "dsn=sample,DataSource=´sample´,ConnectString=´DSN=sample´ //使用默认的SQLCA连接到指定数据库CONNECT; //建立SQLServerTrans事务对象 SQLServerTrans CREATETRANSACTION 29 数据库原理及应用 //置SQLServerTrans事务对象的属性值 SQLServerTrans.DBMS "Sybase"SQLServerTrans.database "personnel"SQLServerTrans.logid "JPL"SQLServerTrans.logPass "jplpass"SQLServerTrans.servername "SERVER2"//使用SQLServerTrans连接到Sybase数据库 CONNECT USING SQLServerTrans //插入一条记录到SQLCA对应的数据库INSERT CUSTOMERVALUES(´CUST789´,´BOSTON´) //插入一条记录到Sybase数据库INSERT EMPLOYEEVALUES(´Peter Smith´,´New York´) USING SQLServerTrans //断开与数据库的连接DISCONNECT; DISCONNECT USING SQLServerTrans //撤消SQLServerTrans事务对象DESTROY SQLServerTrans 30 数据库原理及应用 31数据库原理及应用 数据库应用的体系结构 ODBC的概念、构成与功能 PB数据库应用开发环境 32 数据库原理及应用 数据库应用的体系结构有哪几种
  何谓ODBC
  PB可以通过哪些方式访问数据库
  试述PB中事务对象的概念。