Разница между драйверами базы данных и диалектами базы данных - PullRequest
17 голосов
/ 18 января 2010

В чем разница между драйверами базы данных и диалектами базы данных?

Ответы [ 3 ]

9 голосов
/ 18 января 2010

Драйвер базы данных - это программа, для которой реализуется протокол (ODBC, JDBC) для подключения к базе данных. Это адаптер, который подключает общий интерфейс к реализации конкретного поставщика, так же как драйверы принтера и т. Д.

Диалект базы данных - это параметр конфигурации для независимого от платформы программного обеспечения (JPA, Hibernate и т. Д.), Который позволяет такому программному обеспечению преобразовывать свои общие операторы SQL в специфичные для поставщика DDL, DML.

Похоже, что "диалект базы данных" может использоваться другими типами программ баз данных для обозначения чего-то немного другого, но в целом похожего на то, что я только что написал. То есть «драйвер базы данных» является общепризнанным отраслевым термином с одним конкретным значением, тогда как «диалект базы данных» не распознается одинаково и поэтому относится к различным концепциям в разных контекстах.

7 голосов
/ 16 апреля 2014

Этот вопрос не является двусмысленным, я думаю, что на него нужно ответить правильно.

Мы часто используем диалект и драйверы для подключения определенного приложения к определенной системе управления базами данных.

Например: в Grails / Java

Мы определяем свойство Dialect для подключения к mysql как имеющее один из этих типов

MySQL5Dialect, MySQLInnoDBDialect, MySQLMyISAMDialect

Диалект - это английское слово, которое означает вариант языка. Например, есть несколько диалектов английского языка. Например, британский английский и американский английский.

В контексте баз данных люди говорят о диалектах SQL. SQL является основным языком так же, как английский. Тогда есть диалекты с конкретным синтаксисом базы данных. Например, у Oracle есть ключевое слово rownum. Refe

И, диалект базы данных - это просто термин, который определяет специфические особенности языка 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"
}

N.B. Диалект является обязательным для подключения к базе данных.

Другой рукой, драйвер базы данных - это программа, установленная на рабочей станции или сервере, позволяющая программам в этой системе взаимодействовать с СУБД. [См.]

В Java у нас есть нечто, называемое спецификацией драйвера JDBC / ODBC, для подключения к реляционной базе данных.

Драйвер - это что-то вроде файла или файла класса, написанного для обработки связи между реальной базой данных и потребляющим приложением (Mysql и Java-приложение).

MySQL предлагает стандартное подключение драйвера базы данных для использования MySQL с приложениями и инструментами, совместимыми с отраслевыми стандартами ODBC и JDBC. После того, как у вас есть файл драйвера, вы помещаете его в папку lib, а затем вам нужно вызвать или связать его следующим образом. То есть вам нужно указать 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
   }

Аллоха, счастливого учебного дня!

7 голосов
/ 18 января 2010

Оригинальный вопрос:

В чем разница между драйверами базы данных и диалектами базы данных?

Вопрос неоднозначен; вот мое взятие.

A driver - это программное обеспечение для доступа к базе данных.

A dialect - это вариант языка запросов (т.е. протокола), используемого для доступа к базе данных. В зависимости от программного обеспечения базы данных, оно может поддерживать несколько различных dialects.

т.е. не все sql созданы равными; -)

...