第9章 数据库技术的发展
9.1 面向对象的概念建模
9.1.1 面向对象的数据类型系统
在面向对象技术中,数据类型系统由基本类型、符合类型和引用类型三部分组成。
1.基本类型
基本数据类型是指整型、浮点型、字符、字符串、布尔型和枚举型。
2.复合类型
复合类型有下列五种:
(1)行类型。不同类型元素的有序集合称为行类型(Row Type),也称为元祖类型、结构类型或对象类型。
(2)数组类型。相同类型元素的有序结合称为数组类型(Array Type)。
(3)列表类型。相同类型元素的有序结合,并且允许有重复的元素,称为列表类型(List Type)。
(4)包类型。相同类型元素的无序集合,并且允许有重复的元素,称为包类型(Bag Type)。也称为多集类型(Multiset Type)。
(5)集合类型。相同类型元素的无序集合,并且所有的元素必须是不同的,称为集合类型(Set Type),有时也称为关系类型。
复合类型中的后四种类型——数组、列表、包、集合——统称为汇集(collection)类型或批量(bulk)类型。
3.引用类型(Reference Type)
引用类型相当于程序设计中指针的概念,引用类型这个概念可以把类型定义中的实例映射扩充到类型值域中的实例映射,提供有关实现细节的抽象。引用类型可以避免数据结构的无穷嵌套问题。
9.1.2 对象联系图
对象联系图中有下列七个基本成分:
(1)椭圆代表对象类型(相当于实体类型);
(2)小圆圈表示属性是基本数据类型(整型、实型、字符串型等);
(3)椭圆之间的边表示对象之间的“引用”;
(4)单箭头(→)表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型);
(5)双箭头(→→)表示属性值是多值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型);
(6)双线箭头表示对象类型之间的超类与子类联系(从子类指向超类);
(7)双向箭头表示两个属性之间的联系为逆联系。
9.1.3 UML类图
1.统一建模语言(UML)概述
“统一建模语言”(Unified Modeling Language,简写为UML)
2.用类图表达类和关联
类图中的基本成分是类和关联
(1)类被表示为由三个部分组成的方框
(2)关联是对类的实例之间联系的命名,相当于ER模型中的联系类型。与关联有关的内容有:
① 关联元素(Degree):与关联有关的类的个数,称为关联元数或度数。
② 关联角色(Role):关联的端部,也就是与关联相连的类,称为关联角色。角色名可以命名也可以不命名,就以类的名字作为角色名。
③ 重复度(Multiplicity):重复度是指在一个给定的联系中有多少对象参与。及时关联角色的重复度。
3.用类图表达关联类
4.用类图表达概化/特化
下面介绍类图中与概化/特化有关的内容
(1)鉴别器
可以在紧靠路径处设置一个鉴别器(Discriminator)指出概化的基础。
(2)概化表示了继承性联系
(3)抽象类和具体类
(4)子类的语义约束
子类之间的语言约束主要有4种:
① Overlapping(重叠):子类的对象集可以相交。
② Disjoint(不相交):子类的对象不可以相交。
③ Complete(完备):超类中的对象必须在子类中出现。
④ Imcomplete(非完备):超类中的对象可以不再子类中出现。
5.用类图表达聚合
聚合(Aggregation)表达了成分对象和聚合对象之间的“is part of”(一部分)的联系。聚合实际上是一种较强形式的关联关系(附加“is part of”语义)
9.2 开放数据库互连(ODBC)
9.2.1 ODBC概念
9.2.2 ODBC的体系结构
ODBC技术为应用程序提供了一套CLI函数库和基于DLL的运行支持环境。这里两个缩写是:
CLI:Call-Level Interface ,调用层接口
DLL:Dynamic Link Library,动态链接库
1.应用程序
2.驱动程序管理器
3.DB驱动程序
4.ODBC的数据源管理
数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。
9.2.3 SQL/CLI
API是微软公司ODBC技术的术语,是非SQL名称。在SQL标准中,称为“调用层接口”(Call Level Interface,简记为CLI)。SQL/CLI 是ODBC技术的延续。CLI定义了一套可以从宿主语言调用的公共函数,每一个函数具有一个名称和一个要求的算法(当使用这个函数调用时,DBMS应该做什么)。
使用SQL/CLI时,函数调用中SQL语句将作为字符串参数动态地创建和传递,由于数据库命令要在运行时处理,因此有必要将宿主程序与数据库交互的有关信息记录在运行时数据结果中,此信息保存在以下四种类型的记录中,表示为C数据类型中的复合结构(Struct):
(1)环境记录(Environment Record):用作为一个容器,设置环境信息,以保存一个或多个数据库连接。一个应用程序只用一个环境记录,并且必须在连接数据库之前申请环境记录。
(2)连接记录(Connection Record):保存一个特定数据库连接所需的信息。表示应用系统与数据源之间的连接。每一个连接记录包含在环境记录中,而一个环境记录可包含多个连接记录。
(3)语句记录(Statement Record):保存一个SQL语句所需的信息。应用程序在提交SQL语句前必须先申请一个语句记录。每一个语句记录包含在连接记录中,而一个连接记录可包含多个语句记录。
(4)描述记录(Description Recod):保存元组或参数的有关信息,如元组中的属性个数及类型,或某个函数调用中的参数个数及类型。
9.2.4 典型的数据库应用系统开发工具