Строго говоря, разница между базой данных и схемами является inexisting в MySql.
Однако этого не происходит в других механизмах баз данных, таких как SQL Server. На сервере SQL :,
Каждая таблица принадлежит к группе объектов в базе данных, называемой схемой базы данных . Это контейнер или пространство имен ( запрос Microsoft SQL Server 2012 )
По умолчанию все таблицы в SQL Server принадлежат схеме по умолчанию, называемой dbo . Когда вы запрашиваете таблицу, которая не была выделена какой-либо конкретной схеме, вы можете сделать что-то вроде:
SELECT *
FROM your_table
что эквивалентно:
SELECT *
FROM dbo.your_table
Теперь SQL-сервер позволяет создавать разные схемы, что дает вам возможность группировать таблицы, имеющие схожую цель. Это помогает организовать базу данных.
Например, вы можете создать схему под названием продажи с таблицами, такими как счета-фактуры , кредиторы (и любые другие, связанные с продажами), и другую схему, называемую поиском , с такими таблицами, как страны , валюты , типы подписок (и любые другие таблицы, используемые в качестве внешнего вида). таблицу вверх).
Таблицы, выделенные определенному домену, отображаются в SQL Server Studio Manager с именем схемы, добавленным к имени таблицы (точно так же, как таблицы, принадлежащие схеме dbo по умолчанию ).
В SQL Server есть специальные схемы. Процитируем ту же книгу:
Есть несколько встроенных схем базы данных, и их нельзя удалить или изменить:
1) dbo , схема по умолчанию.
2) гость содержит объекты, доступные пользователю-гостю («пользователь-гость» - это особая роль на жаргоне SQL Server с некоторыми разрешениями по умолчанию и с очень ограниченными разрешениями). Редко используемый.
3) INFORMATION_SCHEMA , используемый представлениями информационной схемы
4) sys , зарезервировано исключительно для внутреннего использования SQL Server
Схемы предназначены не только для группировки. На самом деле можно предоставить разные разрешения для каждой схемы разным пользователям, как описано в MSDN .
Таким образом, упомянутый выше поиск схемы может быть доступен для любого стандартного пользователя в базе данных (например, SELECT
только с разрешениями), тогда как таблица с именем supplierbankaccountdetails может быть выделена в другой схеме, называемой финансовой , и предоставлять доступ только пользователям в группа accounts
(просто пример, вы поняли).
Наконец, снова процитирую ту же книгу:
Это не то же схема базы данных и схемы таблиц . Первое - это пространство имен таблицы, тогда как второе относится к определению таблицы.