当前位置: 首页 > news >正文

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

目录

  • 背景
  • 数据库引擎
    • Jet数据库:
    • ISAM:
    • ODBC(Open Database Connectivity):
  • 数据访问接口
    • ADO(ActiveX Data Objects)
    • DAO(Data Access Objects)
    • RDO(Remote Data Objects):
  • 数据库引擎与数据访问接口的关系
  • 图示关系
  • 代码理解
  • 总结:

背景

    数据库技术在现代信息系统中扮演着重要的角色,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 ObjectDim cmd As ObjectDim 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.EOFMsgBox rs.Fields("字段名").Valuers.MoveNextLoop' 关闭连接rs.Closeconn.Close
End Sub

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

总结:

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

相关文章:

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

目录 背景数据库引擎Jet数据库:ISAM:ODBC(Open Database Connectivity): 数据访问接口ADO(ActiveX Data Objects)DAO(Data Access Objects)RDO(Remote Data O…...

【BASH】回顾与知识点梳理(三十三)

【BASH】回顾与知识点梳理 三十三 三十三. 认识系统服务 (daemons)33.1 什么是 daemon 与服务 (service)早期 System V 的 init 管理行为中 daemon 的主要分类 (Optional)systemd 使用的 unit 分类systemd 的配置文件放置目录systemd 的 unit 类型分类说明 33.2 透过 systemctl…...

同步请求和异步请求

同步请求和异步请求是在网络编程中常用的两种通信模式,它们有以下区别: 同步请求: 在发送一个请求后,程序会一直等待服务器返回响应,期间无法进行其他操作。请求发出后,程序会阻塞在请求处,直…...

Transformer是什么,Transformer应用

目录 Transformer应用 Transformer是什么 Transformer应用:循环神经网络 语言翻译:注重语句前后顺序 RNN看中单个特征; CNN:看中特征之间时序性 模型关注不同位置的能力 Transformer是什么 Transformer是一个利用注意力机制来提高模型训练速度的模型。关于注意力机…...

故障011:dmap服务缺失libnsl.so修复

故障011:dmap服务缺失libnsl.so修复 1. 问题描述2. 解决方法2.1 初步分析2.2 动手实操2.2.1 模糊搜索大法2.2.2 僵桃代李大法 DM技术交流QQ群:940124259 1. 问题描述 今天遇二期XC环境,达梦DM 7.6的DmAPService备份辅助进程服务无法启动&a…...

第十三章 SpringBoot项目(总)

1.创建SpringBoot项目 1.1.设置编码 1.4.导入已有的spring boot项目 2.快速搭建Restfull风格的项目 2.1.返回字符串 RestController public class IndexController {RequestMapping("/demo1")public Object demo1() {System.out.println("demo1 ran...."…...

利用Python隧道爬虫ip轻松构建全局爬虫网络

嘿,爬虫程序员们!你们有没有碰到过需要大规模数据爬取的情况?也许你们之前遇到过网站的反爬措施,卡住你们的进度。别担心,今天我来分享一个利用Python隧道爬虫ip实现的方法,帮助你们轻松搭建全局爬虫ip网络…...

Spring Clould 网关 - Gateway

视频地址:微服务(SpringCloudRabbitMQDockerRedis搜索分布式) Gateway网关-网关作用介绍(P35) Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2…...

PHP使用phpmailer及SMTP服务实现邮件发送

博客升级中,把之前没有想到的功能一点点的完善。 这篇日志记录一下,使用phpmailer实现邮件发送的这样一个操作。 博客偶尔会有留言和评论,我也会及时回复,但是有一个问题,我回复了,给我留言的人如果不再次…...

交换实验一

题目 交换机上接口配置 SW1 interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 port hybrid untagged vlan 3 to 6 interface Ethernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 2 to 6 interface Ethernet0/0/3 port link-type access port d…...

计算机中丢失MSVCR120.dll,找不到MSVCR120.dll是什么意思?

当计算机中缺少MSVCR120.dll文件时,意味着缺少了Microsoft Visual C Redistributable文件的一个组件。MSVCR120.dll是Visual C Redistributable 2013的动态链接库文件,它是应用程序依赖的重要文件之一。缺少MSVCR120.dll文件可能会导致一些应用程序无法正…...

avue多选列表根据后端返回的某个值去判断是否选中;avue-curd多选回显

效果如上: getSiteList().then(res > {//列表数据this.siteData res.data.datathis.$nextTick(()>{this.siteData.forEach(item>{//业务条件if(item.configid&&item.configid!0&&item.configid>0){//符合条件时调用选中的方法this.$…...

Vue2中根据权限添加动态路由

Vue2中根据权限添加动态路由 大概记录一下主要代码 1.根据后端返回的路由列表生成左侧菜单(后端返回的数据结构中用id和pid来区别包含关系) 大概结构如下: 2.前端需要处理成包含children的树形结构 //动态生成菜单 export const gener…...

搭建 Python 环境 | Python、PyCharm

计算机 计算机能完成的工作: 算术运算逻辑判断数据存储网络通信…更多的更复杂的任务 以下这些都可以称为 “计算机”: 一台计算机主要由以下这几个重要的组件构成 CPU 中央处理器:大脑,算术运算,逻辑判断 存储器&…...

NPOI 读取和写入Excel

在C#中使用NPOI库读取和写入Excel文件,你需要先下载并安装NPOI库。你可以在NuGet管理器中搜索NPOI并进行安装。 以下是一个使用NPOI库进行Excel文件读取和写入的示例: 读取Excel文件: using NPOI.SS.UserModel; using NPOI.XSSF.UserModel…...

Linux工具【2】(调试器gdb、项目自动化构建工具make/Makefile)

gdb、make/Makefile 引言调试器gdb介绍常用指令 自动化构建工具make/Makefile介绍使用依赖关系与依赖方法编辑Makefile伪目标 总结 引言 在上一篇文章中介绍了Linux中的编辑器vim与编译器gcc与g: 戳我看vim与gcc详解哦 在本篇文章中将继续来介绍Linux中的工具&…...

C++ 网络编程项目fastDFS分布式文件系统(三)-Nginx部分

目录 1. 一些基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 4 课外知识导读 1. URL和URI ​编辑 2. DNS解析过程 1. 一些基本概念 1.1 Nginx初步认…...

Apache-DBUtils

目录 封装方法 引出dbutils 案例 当关闭connection后,resultset结果集就无法使用了,这就使得resultset不利于数据的管理 封装方法 我们可以将结果集先存储在一个集合中,当connection关闭后,我们可以通过访问集合来访问结果集 …...

LangChain手记 Agent 智能体

整理并翻译自DeepLearning.AILangChain的官方课程:Agent(源代码可见) “人们有时会将LLM看作是知识库,因为它被训练所以记住了来自互联网或其他地方的海量信息,因而当你向它提问时,它可以回答你的问题。有一…...

87-基于stm32单片机粮仓仓库环境温湿度烟雾监测报警系统Proteus仿真+源码

资料编号:087 一:功能介绍: 1、采用stm32单片机OLED显示屏烟雾浓度检测DHT11温湿度电机按键蜂鸣器,制作一个温湿度采集、烟雾浓度采集,OLED显示相关数据, 2、通过按键设置温度上限、烟雾浓度上限&#xff0…...

ChatGPT 调教日记(二):程序员转量化的背景知识

程序员如何学习量化金融 作为一个程序员学习量化金融(quant)是一个不错的选择。以下是一些建议: 学习金融基础知识:了解金融市场、投资策略和金融产品。这将帮助你理解量化金融的背景和应用场景。 学习统计学和数学:…...

什么是网络地址转换 (NAT)

网络地址转换(NAT)是更改源和目标 IP 地址和端口的过程,地址转换减少了对 IPv4 公共地址的需求,并隐藏了专用网络地址范围,该过程通常由路由器或防火墙完成。 NAT是如何工作的 NAT 允许单个设备(如路由器…...

系统架构设计师---事务管理、并发控制、数据库的备份与恢复

目录 事务管理 定义 事务的四个特性(ACID) 相关SQL语句 并发控制...

如何更好的维护自己的电脑?

我的笔记本电脑 我使用的华硕天选3是一款游戏本,搭载了英特尔酷睿i7-12700H处理器,16GB内存,512GB固态硬盘和NVIDIA GeForce RTX 3050显卡。屏幕尺寸为15.6英寸,分辨率为2560x1440。对于日常使用和工作学习娱乐都能满足要求。 日常…...

element+vue 表格行拖拽功能

解决方案 使用 sortable.js 步骤一&#xff1a; 安装 npm install vuedraggable步骤二&#xff1a;引入 import Sortable from sortablejs;步骤三&#xff1a; el-table 添加row-key属性&#xff0c;外层包一层 sortableDiv <div class"sortableDiv"> 拖…...

Python学习笔记_基础篇(三)_数据类型之列表

一.基本数据类型 整数&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一个tab键) 布尔值&#xff1a; bool 列表&#xff1a;list &#xff08;元素的集合&#xff09; 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&a…...

目标检测YOLO实战应用案例100讲-交通目标检测中传感器数据采集容错控制方法

目录 前言 交通传感器数据采集相关理论基础 2.1交通目标检测系统数据采集简介...

ElasticSearch 8.9.0 开发模式安装

ElasticSearch 8.9.0 开发模式安装 MacOS&#xff08;Apple芯片&#xff09;&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz Linux&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasti…...

docker部署redis

这里写目录标题 1.安装Redis2.新建挂载文件夹3.配置redis4.创建redis容器&#xff0c;挂载启动命令连接测试 Docker停止、删除、重启、启动容器 1.安装Redis 通过docker search redis和docker pull redis下载redis镜像 2.新建挂载文件夹 新建data和conf两个文件夹&#xff0…...

ZooKeeper的应用场景(分布式锁、分布式队列)

7 分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要通过一些互斥手段来防止彼此之间的干扰&#xff0c;以保证一致性&#xff0c;…...