Різниця між базою даних і схемою


166

Яка різниця між базою даних та схемою на SQL сервері? Обидва є контейнерами таблиць та даних.

Якщо схему видалено, то чи всі таблиці, що містяться в цій схемі, також видаляються автоматично або вони видаляються при видаленні бази даних?

Відповіді:


171

База даних є основним контейнером, вона містить файли даних і журналів, і всі схеми всередині неї. Ви завжди створюєте резервну копію бази даних, це окрема окрема частина.

Схеми - це як папки всередині бази даних, і в основному вони використовуються для групування логічних об'єктів разом, що призводить до полегшення налаштування дозволів за схемою.

EDIT для додаткового запитання

drop schema test1

Msg 3729, рівень 16, стан 1, рядок 1
Не вдається скинути схему 'test1', оскільки на неї посилається об'єкт 'copyme'.

Ви не можете скинути схему, коли вона використовується. Спершу потрібно видалити всі об’єкти зі схеми.

Пов'язане читання:

  1. Чим хороші схеми SQL Server?
  2. MSDN: Розділення схем користувача

5
у серверах sql 2005 та новіших версій за замовчуванням все йде всередині схеми DBO, якщо ми не згадуємо жодного імені схеми під час створення об’єктів бази даних?
sqlchild

@sqlchild так, це правильно. Потрібна схема, кожен об'єкт утримується в схемі, тому типовим є dbo
RichardTheKiwi

Чи вважаєте ви реплікацію таблиць в одній базі даних і групуєте їх за схемою відповідно до іншого клієнта, замість того, щоб створювати окрему базу даних для кожного клієнта хорошою практикою?
Євграф Андрійович Живаго

Чи однакова логіка для AWS Redshift? Хтось? Я переплутаний між цими двома з точки зору AWS.
Аакаш Басу

19

Схема - це спосіб категоризації об’єктів у базі даних. Це може бути корисно, якщо у вас є декілька додатків, які діляться однією базою даних, і хоча існує якийсь загальний набір даних, до якого доступ до всіх програм.


12

База даних схожа на контейнер даних із схемами, а схеми - це компонування таблиць там, типи даних, відносини та ін


1
Це не правильно для SQL Server; Таблиці мають схеми в загальних базах даних так, але схеми (хто знає, з якої причини) у SQL Server також є ефективно просторами імен, які містять таблиці (і ці таблиці також мають схеми в традиційному розумінні). Невдале ім’я, яке Microsoft вибрав для них, - namespaceкуди доречніше.
SacredSkull

7

Схема говорить про те, які таблиці знаходяться в базі даних, які стовпці у них є і як вони пов'язані. У кожної бази даних є своя схема.


але якщо я не створюю явно будь-яку схему і створюю таблиці, не згадуючи жодної назви схеми, тоді де створюються таблиці. за замовчуванням вони повинні переходити до схеми dbo. чи не так?
sqlchild

так, але зазвичай ви не працюєте зі схемою вручну, ви створюєте таблиці або з якогось інструменту управління, або використовуючи першу функцію коду якогось інструмента ORM
Роберт

Я використовую студію керування сервером sql, і я не згадую жодної назви схеми
sqlchild

4

Схема в SQL Server - це об'єкт, який концептуально містить визначення для інших об'єктів бази даних, таких як таблиці, представлення даних, збережені процедури тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.