Мені справді плутають базу даних термінів, користувач та схему. Хтось може пояснити, чим вони відрізняються один від одного (якщо вони є)?
Якщо вони тоді однакові, то які подібності між ними? Як ми їх використовуємо? І як ми їх створюємо?
Мені справді плутають базу даних термінів, користувач та схему. Хтось може пояснити, чим вони відрізняються один від одного (якщо вони є)?
Якщо вони тоді однакові, то які подібності між ними? Як ми їх використовуємо? І як ми їх створюємо?
Відповіді:
В Oracle користувачі та схеми - це по суті одне і те ж. Ви можете вважати, що користувач - це той обліковий запис, який ви використовуєте для підключення до бази даних, а схема - це набір об'єктів (таблиць, представлень тощо), які належать до цього облікового запису.
Дивіться цю публікацію про переповнення стека: різниця між користувачем та схемою в Oracle? для отримання детальної інформації та додаткових посилань.
Ви створюєте користувачів із create user
заявою. Це також "створює" схему (спочатку порожню) - ви не можете створити схему як таку, вона прив’язана до користувача. Після створення користувача адміністратор може надати привілею користувачеві, що дозволить йому створювати таблиці, виконувати select
запити insert
та все інше.
База даних - це те, що містить усіх створених вами користувачів та їхні дані (і купу заздалегідь визначених системних користувачів, таблиці, представлення даних тощо, які змушують роботу всієї справи). Подивіться на документацію архітектури бази даних Oracle у Посібнику з концепцій (насправді ця сторінка варта прочитати - на цій сторінці є розділ про користувачів та схеми вище), щоб дізнатися, що таке база даних, а що таке Екземпляр бази даних - два важливі поняття.
create database
Після встановлення пакета програм Oracle ви можете створити базу даних із заявою. Але використовувати dbca
(помічник створення бази даних) простіше розпочати.
За тим, як іноді використовується термінологія , a USER
і a SCHEMA
дещо схожі. Але є і основна різниця. A USER
можна назвати a, SCHEMA
якщо " USER
" володіє будь-яким об'єктом, інакше він залишиться лише " USER
". Колись USER
володіє принаймні одним об’єктом, то в силу всіх ваших визначень вище ... USER
тепер це можна назвати a SCHEMA
.
Щоб почати розуміти різницю, я думаю, ми повинні почати говорити, що ця номенклатура була помилкою від Oracle.
Я припускаю, що якщо у вас є ERP під назвою TRITON, ви хочете, щоб ваша база даних була названа TRITON, або якщо моя компанія називається JENNY EXPORT, я можу вирішити, що моя база даних буде називатися JENNYEXP або щось подібне, не потрібно жодному користувачеві з тим же ім'ям .
В Oracle вам потрібно створити USER перед створенням таблиць, і це досить дивно, що ця колекція ТАБЛИЦІВ називається SCHEMA.
Тоді ви можете створити фактичних користувачів і надати належні дозволи для роботи з такою базою даних, як TRITON, як показано в цьому прикладі, до речі, якщо ви підключите через SQL DEVELOPER, ви повинні ІМЕНЮВАТИ З'ЄДНАННЯ.
Я знаю, що мені здається розчарованим, але має більше сенсу для мене умова іменування MS SQL SERVER, і я можу додати, що я працював з Oracle раніше, ніж SQL SERVER.
База даних - це сукупність даних, де фактично зберігаються дані. Його фізичний компонент пам'яті, підключений до комп'ютера, встановленого за допомогою програмного забезпечення СУБД, для маніпулювання даними в цьому компоненті пам'яті, комп'ютер, встановлений програмним забезпеченням dbms, називається сервером або сервером баз даних. Сервер (комп'ютер) і база даних (компонент пам'яті) відрізняються, але Більшість випадків посилаються на "Те саме" на основі ситуації.
Обидва слова, користувач і схема, взаємозамінні, тому більшість людей плутаються в цих словах.
Користувач - це обліковий запис для підключення бази даних (Сервер). ми можемо створити користувача, використовуючи 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 видаляє об'єкти в схемі, а потім автоматично відкидає користувача. Об'єкти, що посилаються на ці об'єкти схеми, з інших схем, як-от вида та приватні синоніми, переходять у недійсний стан.
Я додам, що наведені вище твердження стосуються реалізації Oracle, але інші бази даних, включаючи SQL Server і PostgreSQL, використовують схему лише як простір імен, тобто спосіб групування об'єктів. Наприклад, схема Постановка може групувати всі об'єкти, що використовуються в даних про постановку даних, Схема обліку може групувати всі об'єкти, пов'язані з Обліком.
Я кажу вам, згідно з концепціями, що не ґрунтуються на будь-якому типі системи управління базами даних, яку ви використовуєте.
Концептуально: База даних: це лише купа даних, здебільшого пов'язаних або не пов'язаних між собою даних.
Схема: Схема стосується формальної структуризації некерованих пов'язаних / непов'язаних даних, щоб ними можна керувати деяка система управління, яка розуміє формальне визначення, яке надає схема. Схема - це в основному схема надання огляду. Наприклад, у вас є XSD, який визначає схему створення XML. У вас є RDBMS, який визначає власні схеми, засновані на Правилах Codd, які в основному визначають схеми створення RDBMS.
Тепер, якщо ви хочете дізнатися більше про це, перейдіть за цим посиланням .
Користувач використовує формальну мову, визначену схемою, для доступу до Бази даних