首页 > 数据库 >数据库技术--数据库引擎,数据访问接口及其关系详解(附赠形象的比喻)

数据库技术--数据库引擎,数据访问接口及其关系详解(附赠形象的比喻)

时间:2023-08-12 21:32:17浏览次数:51  
标签:-- 数据库 接口 应用程序 访问 引擎 附赠 ADO

背景

    数据库技术在现代信息系统中扮演着重要的角色,vb书中有一章讲数据库技术的,里面涉及很多概念,针对这些概念进行一下学习。

数据库引擎

    数据库引擎是指负责管理和处理数据库的核心组件。它提供了对数据库的访问、查询、更新和维护等功能,就好比汽车的发动机。数据库引擎负责处理SQL语句,执行查询操作,并将结果返回给应用程序。常见的数据库引擎有MySQL、Oracle、SQL Server等。这里介绍几个书中提到的数据库引擎

Jet数据库:

    Jet数据库是一种轻量级数据库引擎,最初由微软开发用于Access数据库。Jet数据库提供了一种基于文件的数据库系统,支持多用户访问和事务处理。Microsoft Access和Visual Basic使用相同的Jet数据库引擎。Jet数据库类似于一个小型的数据库管理系统,适用于个人电脑和小型应用程序,提供了较好的性能和可靠性。

ISAM:

    ISAM(Indexed Sequential Access Method)是一种数据库管理系统,它使用索引和顺序访问方法来组织和管理数据。ISAM将数据存储在平面文件中,通过索引来加速数据的访问。ISAM适用于读取和写入频率相当的应用程序。ISAM数据库是一种早期的数据库引擎,类似于一个大型的文件柜,将数据按照索引顺序存储,但对于复杂的查询和并发处理支持较弱。

ODBC(Open Database Connectivity):

    ODBC是一种标准的数据库访问接口,它允许应用程序通过统一的方式访问各种数据库。ODBC提供了对数据库的连接、查询和更新等操作的API接口。通过ODBC,应用程序可以在不改变代码的情况下切换数据库。ODBC是跨平台的,支持多种编程语言。ODBC数据库类似于一个通用的翻译器,可以让不同的数据库引擎之间进行数据交流和共享。

数据访问接口

ADO(ActiveX Data Objects)

    ADO是一种高级的数据访问接口,采用了面向对象的编程模型,它提供了更强大和灵活的功能,支持多种数据源和编程语言。

DAO(Data Access Objects)

    DAO是一种较旧的数据访问接口,主要用于访问Access数据库。采用了传统的过程化编程模型,功能较为简单。

    ADO和DAO都提供了对数据库的连接、查询和更新等操作的方法和属性。都是是微软提供的数据访问接口。

RDO(Remote Data Objects):

    RDO是一种用于访问远程数据库的数据访问接口。它提供了对远程数据库的连接、查询和更新等操作的方法和属性。RDO可以通过网络连接到远程数据库服务器,并执行SQL语句。RDO适用于需要访问位于远程服务器上的数据库的应用程序。

    为什么在Visual Basic中有三种数据访问接口呢?因为数据访问技术总是在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它是比RDO和DAO更加简单而且更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。

关系

    数据库引擎,数据访问接口,数据库,应用程序它们之间有什么关系呢?     当应用程序需要访问数据库时,需要通过数据库引擎来实际执行数据库操作,比如存储、检索和管理数据。数据库引擎负责处理底层的数据库操作。     然而,应用程序和数据库引擎之间的交互需要一种统一的方式,这就是数据访问接口。数据访问接口充当了应用程序和数据库引擎之间的桥梁,它定义了一套规范和方法,使得应用程序可以方便地与不同的数据库引擎进行通信。     以一个比喻来解释,数据库引擎就像是一辆汽车的发动机,负责提供动力和执行动作。而数据访问接口就像是汽车的方向盘和控制台,它提供了一种统一的方式,让驾驶员(应用程序)可以方便地操控汽车(数据库引擎)。     在具体的数据库引擎中,比如ISAM、Jet和ODBC,它们都提供了自己的数据访问接口,用于连接应用程序和数据库引擎。     总结起来,数据库引擎是实际执行数据库操作的软件组件,数据访问接口是应用程序与数据库引擎之间的桥梁,而ADO和DAO是两种具体的数据访问接口,用于在应用程序中访问和操作数据库。

图示

image.png

代码

    给大家一段熟悉的代码,来进一步理解上面的内容,这里使用ADO连接数据库、执行查询操作并遍历结果集。

Sub ConnectToDatabase()
    Dim conn As Object
    Dim cmd As Object
    Dim rs As Object
    
    ' 创建ADO连接对象
    Set conn = CreateObject("ADODB.Connection")
    
    ' 连接数据库
    conn.Open "Provider=SQLOLEDB;Data Source=服务器地址;Initial Catalog=数据库名;User ID=用户名;Password=密码"
    
    ' 创建ADO命令对象
    Set cmd = CreateObject("ADODB.Command")
    Set cmd.ActiveConnection = conn
    
    ' 执行查询操作
    cmd.CommandText = "SELECT * FROM 表名"
    Set rs = cmd.Execute
    
    ' 遍历结果集
    Do Until rs.EOF
        MsgBox rs.Fields("字段名").Value
        rs.MoveNext
    Loop
    
    ' 关闭连接
    rs.Close
    conn.Close
End Sub

    以上示例演示了使用ADO连接数据库、执行查询操作并遍历结果集的过程。

总结:

    数据库引擎以及数据访问接口是数据库技术中的重要概念。它们分别提供了不同级别和功能的数据库访问和管理方式。了解它们的概念和相互关系有助于选择合适的数据库技术和开发工具,并提高开发效率和应用程序的性能。希望我的文章对你有所帮助~

标签:--,数据库,接口,应用程序,访问,引擎,附赠,ADO
From: https://blog.51cto.com/u_15843729/7062102

相关文章

  • 更多头部文件和语法的简单使用
    如以下代码#include<stdio.h>#include<string.h>#include<windows.h>#include<stdlib.h>intmain(void){ chararr1[]="HelloWorld!"; chararr2[]="############"; intleft=0; intright=strlen(arr1......
  • LeetCode 377.组和总和IV
    1.题目:给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合32位整数范围。 https://leetcode.cn/problems/combination-sum-iv/description/示例1:输入:nums=[1,2,3],targ......
  • 2023年8月10日
       今天早上起来背了10个单词,然后出去打了两个小时的羽毛球,然后看了一小时的电视剧,再就是练了一个小时的字,然后学习了一个小时的java,最后看了一会儿构建之法,编程了一个小时的C语言。  明天打算早上起来看一小时的英语课本,然后出去玩一个小时,再看一小时的java课本,然后练......
  • 2023年8月12日 天气:晴
       今天早上起来背了10个单词,然后出去打了两个小时的羽毛球,然后看了一小时的电视剧,再就是练了一个小时的字,然后学习了一个小时的java,最后看了一会儿构建之法,编程了一个小时的C语言。  明天打算早上起来看一小时的英语课本,然后出去玩一个小时,再看一小时的java课本,然后练......
  • DAY001_二进制运算
    左移和右移无符号左移?Java没有无符号左移无符号右移左边补0有符号右移左边用原符号位补位即正数补0效果同无符号右移、负数补1有符号左移右边补0importorg.junit.Test;publicclassTestAaaBinary{ @Test publicvoidtest01(){ //调用JDK的......
  • 树上前缀和
    树上前缀和模板传送门#include<algorithm>#include<cstring>#include<iostream>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;inlineintread(){intx=0,f=1;chars=getchar();while(s<�......
  • 解码Transformer:自注意力机制与编解码器机制详述与代码实现
    本文全面探讨了Transformer及其衍生模型,深入分析了自注意力机制、编码器和解码器结构,并列举了其编码实现加深理解,最后列出基于Transformer的各类模型如BERT、GPT等。文章旨在深入解释Transformer的工作原理,并展示其在人工智能领域的广泛影响。作者TechLead,拥有10+年互联网服......
  • 某公司笔试题 - 求int型正整数在内存中存储时1的个数(附python代码)
    #输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。#数据范围:保证在32位整型数字范围内num=int(input("请输入一个正整数:"))#将输入的正整数转化成二进制num_bin=bin(num)print(num_bin)#将二进制字符串转化成数组nbl=list(num_bin)iflen(nbl)>0and......
  • 周末打卡
    8.06周日这天要回家了,叫了同学出来先吃了KFC,然后去打台球,下午又吃了凉皮,之后送走同学,我也坐车回家。8.07周一新的一周开始,要完成PTA的任务,从早到晚加急写,晚上放松玩玩游戏。8.08周二继续写PTA落了好多,下午凉快之后骑车出门兜风。8.09周三这天早早起床,上午下雨,我先是把家里......
  • mybatis plus所需配置
    yml配置mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl#日志mapper-locations:classpath:mapper/*.xml#映射type-enums-package:com.dxc.zeno.enums#枚举类配置类@Configuration@MapperScan("com.dxc.z......