一般是用作计算机术语,存取是一个动作合成词,存指代计算机的写入,取指代计算机的读取(阅读或复制取出)。
分类随机存取
网络存取
循序存取
数据存取
随机存取在计算机科学中,随机存取(有时亦称直接访问)代表同一时间访问一组序列中的一个随意组件。反之则称顺序访问,即是需要更多时间去访问一个远程组件。介分两者的传统图解就似比较一轴古代画卷(循序︰所有在组件之前的物料必须事先卷开)及一本图书(随机︰可以随时翻至任何一页)。而更近现代的例子就如比较卡式磁带(循序︰我们必须快速跳过早前的歌曲才可聆听后期的歌曲)及一张CD(随机︰我们可以随意跳至我们想要之处)。不过,RAM一词却被用以作为电脑中的半导体芯片内存电路。
于数据结构中,随机存取暗指可由一堆数字之中,能够持续访问N值的能力,而且除了数组(及相关结构,例如动态数组)以外,绝少数据结构能够作出类似程序。另外,随机存取对不少算法,如快速排序及二元搜索而言不可或缺。其他数据结构,如合并排序,则凭随机存取作出有效率的输入、删除抑或搜索功能。1
网络存取互联网存取(英语:Internet access),又译为互联网接入,俗称上网、连网、连线,将个人电脑终端机、个人电脑、行动装置与电脑网络,透过各种连结技术与管道,连结到互联网(Internet)上,让使用者能够使用互联网上提供的各种服务(例如电子邮件、World Wide Web)。为公众提供互联网存取服务的公司或组织,称为互联网服务供应者(Internet service provider,ISP)。2
循序存取在计算机科学中,循序存取意指一组序列(例如存于记忆数组、磁盘软件或是磁带中的资料)是以预先安排,有秩序的方式被人存取。循序存取有时只是唯一的存取数据方式,磁带即属一例。循序存取亦有可能成为有选择性的方式,就如我们纯粹有意顺序处理一组资料元件。
于数据结构当中,如果某人只能开启一组包含特一排列的数值,该组数据结构即属循序存取,而正准的例子就如连结串列。另外,含有循序存取的索引需要大O符号(k值)的若干时间,而k值则为变址。结果,不少算法如快速排序及二元搜寻会将算法变坏,令其比起原本算法变得较底效率。因此,这类算法之后会成一组缺乏随机存取的无用算法。相反,通常不会作出索引的部分算法只需循序存取方式,例如合并排序,它们就无需遭受处置。3
数据存取数据访问(Data Access),是应用程序链接到数据源 (Data Source) 访问数据的一种行为 (Behavior),在大多数的应用程序中,经常会需要使用到数据,而这些数据可能来自很多不同类型的来源,像是数据库(Database),网络数据源,本机文件,或是异质性的来源 (例如在 Mainframe 上的IBM DB2数据库),经由一层 (或多层) 中介代码或中间件(Middleware) 进入数据源中,并且取出数据后送回应用程序中来处理。
原理大多数数据访问的接口规格都是由连接 (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 等。3
本词条内容贡献者为:
于仁业 - 高级工程师 - 中航工业哈尔滨飞机工业集团有限责任公司