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


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.