資料存取

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

标准

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

ODBC

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 有类似的规格。

JDBC

与 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 中)

OLE DB

由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=myServerName\theInstanceName;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 等。