Разница между схемой/базой данных в MySQL

Есть ли разница между схемой и базой данных в MySQL? В SQL Server база данных представляет собой контейнер более высокого уровня по отношению к схеме.

Я читал, что Create Schema и Create Database делают по существу то же самое в MySQL, что заставляет меня думать, что схемы и базы данных - разные слова для одних и тех же объектов.

Ответ 1

Как определено в MySQL Glossary:

В MySQL физически схема является синонимом базы данных . Вы можете заменить ключевое слово SCHEMA вместо DATABASE синтаксисом SQL SQL, например, используя CREATE SCHEMA вместо CREATE DATABASE.

Некоторые другие продукты баз данных проводят различие. Например, в продукте Oracle Database схема представляет собой только часть базы данных: таблицы и другие объекты, принадлежащие одному пользователю.

Ответ 2

Зависит от сервера базы данных. MySQL не волнует, его в основном одно и то же.

Oracle, DB2 и другие решения баз данных на уровне предприятия делают различие. Обычно схема представляет собой набор таблиц, а База данных - это набор схем.

Ответ 3

Обращаясь к документации MySql,

CREATE DATABASE создает базу данных с заданным именем. Чтобы использовать это, вам нужна привилегия CREATE для базы данных. СОЗДАЙТЕ SCHEMA является синонимом CREATE DATABASE по версии MySQL 5.0.2.

Ответ 4

PostgreSQL поддерживает схемы, которые являются подмножеством базы данных: https://www.postgresql.org/docs/current/static/ddl-schemas.html

База данных содержит одну или несколько именованных схем, которые, в свою очередь, содержат столы. Схемы также содержат другие типы именованных объектов, включая типы данных, функции и операторы. Можно использовать одно и то же имя объекта в разных схемах без конфликтов; например, как схемы 1, так и myschema может содержать таблицы с именем mytable. В отличие от баз данных, схем не жестко разделены: пользователь может получить доступ к объектам в любом из схемы в базе данных, к которой они подключены, если у них есть привилегии для этого.

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

По моему скромному мнению, MySQL не является базой данных. Вы не должны приводить MySQL к объяснению. MySQL реализует нестандартные SQL и иногда утверждает, что функции, которые он не поддерживает. Например, в MySQL схема CREATE создаст только базу данных. Это действительно вводит в заблуждение пользователей.

Этот вид словаря называется "MySQLism" администраторами баз данных.

Ответ 5

Да, люди используют эти термины взаимозаменяемо в отношении MySQL. Хотя часто вы будете слышать, как люди ненадлежащим образом ссылаются на весь сервер базы данных в качестве базы данных.

Ответ 6

Microsoft SQL Server, например, схемы относятся к одному пользователю и представляют собой другой уровень контейнера в порядке указания сервера, базы данных, схемы, таблиц и объектов.

Например, когда вы планируете обновлять dbo.table_a, а синтаксис не является полным, например, UPDATE. СУБД не может решить использовать целевую таблицу. По существу, по умолчанию СУБД будет использовать myuser.table_a