关系数据库包及其相关衍生产品是 SQL IDE SDK 的,还是只是集合结构的实现?



这个问题纯粹是出于好奇。

像Oracle和SQL server这样的DBMS坐在"编程语言"的层次结构上吗?

我想这将是可能的编程应用程序使用(例如)c#集合类,将类似于DBMS的行为。

但是这是DBMS的工作方式,还是它们直接以与高级编程语言相同的方式访问系统资源?

编辑或者更简单地说,甲骨文更等同于。net或微软office吗?

典型的客户机-服务器DBMS不仅仅是一种语言,而是几种语言和技术的组合,它们一起工作,包括(但不限于):

  • 服务器:
    • 物理存储-通常是操作系统文件,甚至是原始分区,上面是DBMS进程和线程。
    • 数据模型-表、索引、约束等
    • 用于描述数据模型的语言-通常是数据定义语言(DDL) SQL。
    • 查询语言-典型的数据操作语言(DML) SQL。
    • 用于写入触发器和存储过程的过程SQL扩展,例如Oracle中的PL/SQL或MS SQL Server中的Transact-SQL。
  • 管理语言,如Java或c#,在DBMS内执行,也可用于实现触发器和存储过程。
  • 客户:
    • 各种管理工具,通常包括命令行和GUI。支持从通用语言访问数据库的驱动程序和api。这包括独立于dbms的api,如ODBC、OLEDB、ADO。. NET, JDBC, BDE等…以及特定于dbms的api,如Oracle的OCI。
    • 最重要的是,用这些通用语言编写的客户端应用程序实际实现了一些有用的功能。有各种各样的客户端,从"经典"到多层,但这是另一个话题…
  • 还有更简单的"嵌入式"dbms,用于作为特定应用程序的本地"私有"存储,而不是在客户机-服务器环境中。

    大多数dbms是"关系型"的,但也有"面向对象"one_answers"无SQL"/"键值存储"系统以及它们的各种混合系统。

    那么,你能用"正常"语言(如Java或c#)实现DBMS吗?

    从理论上说,是的。实际上,不!

    使客户端能够并发、安全、快速地访问数据是dbms要解决的难题。将数据库视为一组表看起来很简单——有大量的复杂性使得DBMS能够保持这种(相对)简单的错觉。

    正如在大多数情况下您不会使用汇编程序,因为更高级别的语言实现了允许您提高生产力的概念一样,正如如果已经有合适的库,您不会实现自己的数据结构和算法一样,如果有一个可用的DBMS可以满足您的需求,您也不会尝试管理您的数据。

    SQL—结构化查询语言实际上是一种在关系数据库管理系统中用于管理数据的语言。SQL Server, Oracle和Access是关系数据库管理系统,它们使用结构化查询语言作为一种编程访问和更新/插入数据的方式。

    所以要回答你的问题"像Oracle和SQL server这样的DBMS在‘编程语言’的谱系中处于什么位置?",DBMS不是编程语言,它们是关系数据库管理系统,但是SQL是一种语言。这些DBMS系统可能会以高度优化和专有的方式存储和管理数据,但它们都提供一个公共的"接口"——在这种情况下,sql作为一种访问方法。

    DBMS是软件,SQL是语言。我想你可能把这两个搞混了

    最新更新