数据访问

✍ dations ◷ 2025-08-15 14:00:07 #数据访问

资料访问 (Data Access),是应用程序链接到数据源 (Data Source) 访问资料的一种行为 (Behavior),在大多数的应用程序中,经常会需要使用到资料,而这些资料可能来自很多不同类型的来源,像是数据库 (Database),网络数据源,本机文件,或是异质性的来源 (例如在 Mainframe 上的 IBM DB2 数据库),经由一层 (或多层) 中介代码或中间件 (Middleware) 进入数据源中,并且取出资料后送回应用程序中来处理。

资料访问通常会依数据源的不同,而会出现不同的访问方法,例如早期 SQL Server 的 DB-Library,这些接口通常只能由 C/C++ 编程语言来调用,而且各个数据库都有各自独立的 API。但开发工具与软件厂商开始相继的提供一致的接口标准,由数据库厂商开发出基于接口标准的 API,以方便应用程序开发人员发展数据库应用程序 (Database Application)。

ODBC (Open Database Connectivity) 是由 SQL Access Group,X/Open (目前为 The Open Group 的一部分) 以及 ISO/EIC 所提出的 Call Level Interface (CLI) (调用层次接口) 接口规格,由微软开发出第一份 ODBC 的实现,每一个数据库都可以实现出链接自家数据源的 ODBC 驱动程序 (Driver),而应用程序开发人员能够利用 ODBC 所开放的 API 调用,经由 ODBC Driver 来进入数据库进行访问以及处理工作。

ODBC 现在已经是大多数平台上的共同资料访问标准,并且后续由各软件厂商提出的资料访问规格,多数都和 ODBC 有类似的规格。

与 ODBC 类似,由昇阳在 JDK 1.1 中创建的专属 Java 编程语言的资料访问规范,各家数据库可以实现 JDBC Driver 接口提供数据源的功能,而应用程序开发人员可利用 Java 所提供的 JDBC API (java.sql 与 javax.sql 封装) 来调用 JDBC 类别对象,再由 JDBC 类别对象来调用 JDBC Driver 连到数据库中。

目前最新版本为 JDBC 4.0 (于 Java SE 6.0 中)

由Microsoft提出的类似 ODBC 的数据库访问规格,但它是使用 COM 以及 Provider-Based 模型来建构,OLE DB 规格中定义了许多的接口,由数据库提供者 (database provider) 来实现这些接口,应用程序开发人员则直接利用 COM 调用这些 OLE DB 接口来连接与访问资料。但 Microsoft 也实现了可以桥接 ODBC Driver 的提供者:OLE DB Provider for ODBC,在微软 Windows 应用平台中被大量使用于资料访问中。与 JDBC 不同的是 JDBC 是属于 Java 编程语言的专属规格,但 OLE DB 可以被能够调用 COM 接口的任何编程语言使用。

OLE DB 也是 ADO 以及 ADO.NET 的核心基础,而这些 API 目前也被广为用在微软 Windows 应用平台中。

大多数资料访问的接口规格都是由连线 (Connection),命令 (Command),以及资料集 (Resultset)三个部分构成。

连线是由应用程序透过调用资料访问提供接口提供的函数,以连线的必要信息为主,与数据库之间所创建的一条实体资料链接,链接的方式要视数据库以及数据库所在位置而定,这些连线所需要的必要信息,通常都会定义在一组字符串中,此字符串即称为连线字符串 (Connection String),连线字符串在 JDBC 与 OLE DB 的应用程序中随处可见。

一个典型的连线字符串如下:

OLE DB for ODBC:Driver={mySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;OLE DB for SQL Native Client:Provider=SQLNCLI;Server=myServerNametheInstanceName;Database=myDataBase;Trusted_Connection=yes;

当连线开启到关闭之间,应用程序可以利用命令来调用或访问数据源中的资料,但不同的应用程序类型,控制数据库连线生命期的方式也不同,例如在网站类型的应用程序 (Web Application) 中,为了不让数据库的资源在多人环境下被锁定太久,因此连线通常只会在实际执行资料访问前才会打开,在访问完成后立刻关闭。

命令是由应用程序经由连线送入数据源的指令或资料,通常是 SQL 指令(或存储程序)以及其参数,或者是由数据源所支持的其他控制码等,命令送入数据库执行后,视命令类型来决定会不会传回资料集,像是 SQL 的 SELECT 指令会传回结果集,而 INSERT, UPDATE, DELETE 会回传受影响的列数 (可以由数据库控制不传回)。

资料集是由命令送入数据源后所传回,带有结果资料录的集合,资料集可视为一个小型的资料表格,资料访问接口也提供资料集浏览的 API 来让应用程序访问并使用资料集中的资料,大多数资料集的浏览接口都是由高阶的 API 来提供,例如 ADO 是由 Recordset 来封装,JDBC 由 Resultset 来封装,而 ADO.NET 则是用 DataReader 来封装。

部分资料集接口也提供在不与数据库连线下访问的暂存资料集服务,例如 ADO.NET 中的 DataTable,DataSet 等。

相关

  • 弗里蒙特-维纳玛坐标:42°36′N 121°12′W / 42.600°N 121.200°W / 42.600; -121.200弗里蒙特-维纳玛国家森林(英语:Fremont–Winema National Forest)是一座美国国家森林,2002年由弗里蒙特国
  • 构相异构构象异构(英语:Conformational isomerism,又译结构异构或构形异构,指由于原子环绕于化学键四周,而导致结构式相同,却具有化学构象或构象异构体之差异的分子现象。有三种效应,会使某
  • 休·比佛休·艾尔·坎贝尔·比佛爵士(英语:Sir Hugh Eyre Campbell Beaver,1890年5月4日-1967年1月),大英帝国勋章拥有者,英国工程师,同时也是吉尼斯世界纪录大全的创办人。
  • 波罗的海行动波罗的海行动(俄语:Прибалтийская стратегическая оборонительная операция),又名立陶宛-拉脱维亚防御行动(俄语:Oборон
  • 北回归线 (小说)《北回归线》(Tropic of Cancer)是亨利·米勒的小说作品,曾入选20世纪百大英文小说。《北回归线》是亨利.米勒自传性三部曲之首,描写了米勒同几位作家、艺术家朋友旅居巴黎的生
  • AFI终身成就奖美国电影学会终身成就奖,简称AFI终身成就奖(英语:AFI Life Achievement Award)是由美国电影学会理事会颁发的奖项,用以表彰通过电影或电视,终身致力于美国文化发展的个人。该奖项
  • 陈浩 (配音演员)陈浩(1979年2月14日-),中国演员、配音演员。参与多次配音和话剧演出,如《我不是李白》(2007年)和电影《叶问》系列等。以及多部影视作品配音,例如《宫锁珠帘》雍正、《宫锁心玉》雍
  • 2013年俄罗斯杯2013年俄罗斯杯于俄罗斯的奔萨举行,日期为2013年8月17-21日。https://web.archive.org/web/20130906062221/http://sportgymrus.ru/contest/10077/default.aspx
  • 默瑟县 (新泽西州)默瑟县(英语:Mercer County)是位于美国新泽西州中部的一个县。面积593平方公里,根据美国2000年人口普查数字,共有人口350,761人。县治特伦顿也是州的首府。从2000年开始默瑟县被看作是纽约都市地区的一部分。默瑟县成立于1838年,它是以1777年在普林斯顿战役中阵亡的美军将军休·默瑟(英语:Hugh Mercer)命名的。它是美国人均收入第79高的县,人均年收入为27,914美元。根据美国人口调查局的数据默瑟县的总面积为593平方公里,其中585平方公里为陆地面积,8平方公里为水域面
  • 摩诃祇利摩诃祇利(缅甸语:မင်းမဟာဂီရိ)是波巴山的缅甸神灵,摩诃祇利意为“大山”。本名牙低提(Nga Tin De),是太公国(英语:Tagaung Kingdom)知名铁匠牙低忉(Nga Tin Daw)之子。牙低提是知名的力士,据说曾经拔出雄象的牙齿。太公国(英语:Tagaung Kingdom)国王听说了这件传闻,害怕力士牙低提会危及他的王位,命令手下去捉拿牙低提,牙低提因此躲进了密林之中。国王依然感到恐惧,他娶了牙低提的妹妹为王后,不久,他以想要赐与牙低提高级官职为借口,让牙低提的妹妹召回其兄。