26

データベース ドライバとデータベース ダイアレクトの違いは何ですか?

4

3 に答える 3

21

この質問は曖昧ではありません。正しく答える必要があると思います。

特定のアプリケーションを特定のデータベース管理システムに接続するために、Dialect と Drivers をよく使用します。

例: grails / Java

mysql に接続する Dialect プロパティを、このタイプのいずれかを持つものとして定義します。

MySQL5Dialect, MySQLInnoDBDialect, MySQLMyISAMDialect

方言は、言語のバリアントを意味する英語の単語です。たとえば、英語には複数の方言があります。たとえば、イギリス英語とアメリカ英語です。

データベースのコンテキストでは、人々は SQL の方言について話します。SQL は、英語と同様に主要な言語です。次に、データベース固有の構文を持つ方言があります。たとえば、Oracle には rownum キーワードがあります。参照

データベースの方言は、そのデータベースにアクセスするときに使用できる SQL 言語の特定の機能を定義する用語です。

Example of usage in application side

dataSource {
    pooled = true
    jmxExport = true
    driverClassName = "com.mysql.jdbc.Driver"
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
    username = "root"
    password = "root"
}

注意。データベースに接続するには方言が必須です。

データベース ドライバーは、ワークステーションまたはサーバーにインストールされ、そのシステム上のプログラムが DBMS とやり取りできるようにするプログラムです。[参照]

Java では、リレーショナル データベースに接続するための JDBC/ODBC ドライバー仕様と呼ばれるものがあります。

ドライバーは、実際のデータベースと消費アプリケーション (Mysql および Java アプリケーション) との間の通信を処理するために作成されたファイルまたはクラス ファイルのようなものです。

MySQLは、業界標準の ODBC および JDBC と互換性のあるアプリケーションおよびツールで MySQL を使用するための標準データベース ドライバー接続を提供します。 URL 、DATABASENAME 、PORT 、PASSWORD .. を指定してデータベースに接続します。

dataSource {

     //url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT
              =10000;DB_CLOSE_ON_EXIT=FALSE"
      databasename = "libdoc"
      url = "jdbc:mysql://localhost:3306/"+databasename
   }

アロハ、ハッピーラーニングデー!

于 2014-04-16T13:38:11.863 に答える
13

データベース ドライバは、データベースに接続するためのプロトコル (ODBC、JDBC) を実装するプログラムです。プリンタードライバーなどと同じように、汎用インターフェースを特定のベンダーの実装に接続するアダプターです。

データベースダイアレクトは、プラットフォームに依存しないソフトウェア (JPA、Hibernate など) の構成設定であり、そのようなソフトウェアが汎用 SQL ステートメントをベンダー固有の DDL、DML に変換できるようにします。

「データベースの方言」は、他の種類のデータベース プログラムで、私が今書いたものと少し異なるが、おおむね同様の意味で使用されているようです。つまり、「データベース ドライバー」は 1 つの具体的な意味を持つ広く認知されている業界用語ですが、「データベースの方言」は同様に認識されておらず、異なるコンテキストで異なる概念を指します。

于 2010-01-18T11:01:17.013 に答える
9

元の質問:

データベース ドライバとデータベースの方言の違いは何ですか?

質問があいまいです。これが私の見解です。

driverは、データベースにアクセスするためのソフトウェアです。

Adialectは、データベースへのアクセスに使用されるクエリ言語 (つまり、プロトコル) のバリアントです。データベース ソフトウェアによっては、複数の異なるdialects.

つまり、すべてsqlが同じように作られているわけではありません;-)

于 2010-01-18T10:42:28.480 に答える