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