Різниця між базою даних від користувача проти схеми


78

Мені справді плутають базу даних термінів, користувач та схему. Хтось може пояснити, чим вони відрізняються один від одного (якщо вони є)?

Якщо вони тоді однакові, то які подібності між ними? Як ми їх використовуємо? І як ми їх створюємо?


Сподіваюся, що це дасть основну думку: answer.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

Відповіді:


77

В Oracle користувачі та схеми - це по суті одне і те ж. Ви можете вважати, що користувач - це той обліковий запис, який ви використовуєте для підключення до бази даних, а схема - це набір об'єктів (таблиць, представлень тощо), які належать до цього облікового запису.

Дивіться цю публікацію про переповнення стека: різниця між користувачем та схемою в Oracle? для отримання детальної інформації та додаткових посилань.

Ви створюєте користувачів із create userзаявою. Це також "створює" схему (спочатку порожню) - ви не можете створити схему як таку, вона прив’язана до користувача. Після створення користувача адміністратор може надати привілею користувачеві, що дозволить йому створювати таблиці, виконувати selectзапити insertта все інше.

База даних - це те, що містить усіх створених вами користувачів та їхні дані (і купу заздалегідь визначених системних користувачів, таблиці, представлення даних тощо, які змушують роботу всієї справи). Подивіться на документацію архітектури бази даних Oracle у Посібнику з концепцій (насправді ця сторінка варта прочитати - на цій сторінці є розділ про користувачів та схеми вище), щоб дізнатися, що таке база даних, а що таке Екземпляр бази даних - два важливі поняття.

create databaseПісля встановлення пакета програм Oracle ви можете створити базу даних із заявою. Але використовувати dbca(помічник створення бази даних) простіше розпочати.


2

За тим, як іноді використовується термінологія , a USERі a SCHEMAдещо схожі. Але є і основна різниця. A USERможна назвати a, SCHEMAякщо " USER" володіє будь-яким об'єктом, інакше він залишиться лише " USER". Колись USERволодіє принаймні одним об’єктом, то в силу всіх ваших визначень вище ... USERтепер це можна назвати a SCHEMA.


Я думаю, що ви тут вказуєте, що термін "СХЕМА" є багатогранним. Це простір імен для об'єктів бази даних з одного боку. Крім того, в Oracle (та інших?), Але не в PostgreSQL, це простір імен об'єктів бази даних, що містить саме ті об’єкти, створені користувачем, який поділяє ім'я схеми. З іншого боку, це відносини та структура об'єктів у базі даних, часто ігноруючи як власність, так і простір імен.
Ендрю Вулф

2

Щоб почати розуміти різницю, я думаю, ми повинні почати говорити, що ця номенклатура була помилкою від Oracle.

Я припускаю, що якщо у вас є ERP під назвою TRITON, ви хочете, щоб ваша база даних була названа TRITON, або якщо моя компанія називається JENNY EXPORT, я можу вирішити, що моя база даних буде називатися JENNYEXP або щось подібне, не потрібно жодному користувачеві з тим же ім'ям .

В Oracle вам потрібно створити USER перед створенням таблиць, і це досить дивно, що ця колекція ТАБЛИЦІВ називається SCHEMA.

Тоді ви можете створити фактичних користувачів і надати належні дозволи для роботи з такою базою даних, як TRITON, як показано в цьому прикладі, до речі, якщо ви підключите через SQL DEVELOPER, ви повинні ІМЕНЮВАТИ З'ЄДНАННЯ.

Я знаю, що мені здається розчарованим, але має більше сенсу для мене умова іменування MS SQL SERVER, і я можу додати, що я працював з Oracle раніше, ніж SQL SERVER.


1

База даних

База даних - це сукупність даних, де фактично зберігаються дані. Його фізичний компонент пам'яті, підключений до комп'ютера, встановленого за допомогою програмного забезпечення СУБД, для маніпулювання даними в цьому компоненті пам'яті, комп'ютер, встановлений програмним забезпеченням dbms, називається сервером або сервером баз даних. Сервер (комп'ютер) і база даних (компонент пам'яті) відрізняються, але Більшість випадків посилаються на "Те саме" на основі ситуації.

КОРИСТУВАЧ і SCHEMA

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

Користувач

Користувач - це обліковий запис для підключення бази даних (Сервер). ми можемо створити користувача, використовуючи CREATE USER IDENTIFIED BY.

Схема

Насправді база даних Oracle містить логічну та фізичну структуру для обробки даних. Схема також логічна структура для обробки даних у базі даних (компонент пам'яті). Він створюється автоматично Oracle при створенні користувача. Він містить усі об'єкти, створені користувачем, пов'язані з цією схемою. Для прикладу, якщо я створив користувача з ім'ям, santhoshто Oracle створює схему під назвою santhosh, Oracle зберігає всі об’єкти, створені користувачем santhoshу santhoshсхемі.

Ми можемо створити схему за допомогою CREATE SCHEMAоператора, але Oracle автоматично створює користувача для цієї схеми.

Ми можемо скинути схему за допомогою DROP SCHEMA <name> RESTRICTоператора, але вона не може видалити об'єкти, що містять схему, тому, щоб скинути схему, вона повинна бути порожньою. тут обмежувальне слово змушує вас вказати цю схему з об'єктами.

Якщо ми спробуємо скинути користувача, що містить об’єкти, у його схемі ми повинні вказати CASCADEслово, оскільки Oracle не дозволяє видалити користувача, що містить об'єкти.

DROP USER <name> CASCADE

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


-2

Я додам, що наведені вище твердження стосуються реалізації Oracle, але інші бази даних, включаючи SQL Server і PostgreSQL, використовують схему лише як простір імен, тобто спосіб групування об'єктів. Наприклад, схема Постановка може групувати всі об'єкти, що використовуються в даних про постановку даних, Схема обліку може групувати всі об'єкти, пов'язані з Обліком.


Не впевнений, на що ви посилаєтесь, коли ви говорите "заяви вище", але схема в SQL і Oracle - це групування дозволів. Іншими словами, це не просто спосіб згрупувати подібні об'єкти разом, а спосіб об’єднати об’єкти, що полегшить управління дозволами, оскільки ви можете надати дозволи до схеми і, отже, уникнути необхідності надання дозволів кожному об’єкту в схемі.
Thronk

-4

Користувач! = Схема, Користувач і Схема не однакові, але вони використовуються взаємозамінно


2
Будь ласка, додайте деталі щодо того, чим вони відрізняються.
Ерік

-4

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

Концептуально: База даних: це лише купа даних, здебільшого пов'язаних або не пов'язаних між собою даних.

Схема: Схема стосується формальної структуризації некерованих пов'язаних / непов'язаних даних, щоб ними можна керувати деяка система управління, яка розуміє формальне визначення, яке надає схема. Схема - це в основному схема надання огляду. Наприклад, у вас є XSD, який визначає схему створення XML. У вас є RDBMS, який визначає власні схеми, засновані на Правилах Codd, які в основному визначають схеми створення RDBMS.

Тепер, якщо ви хочете дізнатися більше про це, перейдіть за цим посиланням .

Користувач використовує формальну мову, визначену схемою, для доступу до Бази даних

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