Разница между базой данных и пользователем против схемы

79

Я действительно запутался с базой данных терминов, пользователем и схемой. Может кто-нибудь объяснить, чем они отличаются друг от друга (если они есть)?

Если они одинаковы, то в чем сходство между ними? Как мы их используем? И как мы их создаем?

Ravi
источник
Надеюсь, что это даст основную идею: answers.com/Q/Difference_between_user_and_schema_oracle
Мадола

Ответы:

78

В Oracle пользователи и схемы - это одно и то же. Вы можете считать, что пользователь - это учетная запись, которую вы используете для подключения к базе данных, а схема - это набор объектов (таблиц, представлений и т. Д.), Принадлежащих этой учетной записи.

Смотрите этот пост о переполнении стека: разница между пользователем и схемой в Oracle? для более подробной информации и дополнительных ссылок.

Вы создаете пользователей с create userзаявлением. Это также «создает» схему (изначально пустую) - вы не можете создать схему как таковую, она привязана к пользователю. После того как пользователь создан, администратор может предоставить пользователю привилегии, которые позволят ему создавать таблицы, выполнять selectзапросы insertи все остальное.

База данных - это то, что содержит всех пользователей, которых вы создали, и их данные (и группу предопределенных системных пользователей, таблиц, представлений и т. Д., Которые заставляют все это работать). Вы должны взглянуть на документацию Oracle Database Architecture в Руководстве по концепциям (на самом деле, вся эта страница заслуживает прочтения - там есть раздел о пользователях и схемах выше на этой странице), чтобы получить представление о том, что такое база данных и что такое Экземпляр базы данных - это два важных понятия.

Вы можете создать базу данных с помощью create databaseоператора, как только вы установили программный стек Oracle. Но с помощью dbca(помощник по созданию базы данных) легче начать.

Мат
источник
2

В зависимости от того, как иногда используется терминология , a USERи a SCHEMAнесколько похожи. Но есть и большая разница. A USERможно назвать a, SCHEMAесли " USER" принадлежит какой-либо объект, иначе он останется только " USER". Если у вас USERесть хотя бы один объект, то в силу всех приведенных выше определений ... USERтеперь его можно назвать a SCHEMA.

JOHNNIE
источник
Я думаю, что вы указываете на то, что термин «SCHEMA» является многогранным. С одной стороны, это пространство имен для объектов базы данных. Кроме того, в Oracle (и других?), Но не в PostgreSQL, это пространство имен объектов базы данных, содержащее именно объекты, созданные пользователем, совместно использующим имя схемы. С другой стороны, это отношения и структура объектов в базе данных, часто игнорирующие как владение, так и пространство имен.
Эндрю Вульф
2

Чтобы начать понимать разницу, я думаю, мы должны начать говорить, что эта номенклатура была ошибкой Oracle.

Я предполагаю, что если у вас есть ERP под названием TRITON, вы хотите, чтобы ваша база данных называлась TRITON, или если моя компания называется JENNY EXPORT, я мог бы решить, что моя база данных будет называться JENNYEXP или что-то в этом роде, не нужно никакого пользователя с таким именем ,

В Oracle вам нужно создать пользователя USER перед созданием таблиц, и достаточно странно, что эта коллекция таблиц называется SCHEMA.

Затем вы можете создать реальных пользователей и предоставить соответствующие разрешения для работы с такой базой данных, как TRITON, в соответствии с этим примером, кстати, если вы подключаетесь через РАЗРАБОТЧИК SQL, вы должны НАЗВАТЬ СОЕДИНЕНИЕ.

Я знаю, что это звучит немного разочарованно, но для меня больше смысла в соглашении об именах MS SQL SERVER, и я могу добавить, что я работал с Oracle раньше, чем с SQL SERVER.

Глауко Герреро
источник
1

База данных.

База данных представляет собой набор данных, где фактически хранятся данные. Это физический компонент памяти, подключенный к компьютеру, установленному с программным обеспечением СУБД. Для манипулирования данными в этом компоненте памяти компьютер, установленный с программным обеспечением dbms, называется сервером или сервером базы данных. Сервер (компьютер) и база данных (компонент памяти) различны, но В большинстве случаев упоминается как то же самое в зависимости от ситуации.

ПОЛЬЗОВАТЕЛЬ и СХЕМА

Оба слова, пользователь и схема, являются взаимозаменяемыми, поэтому большинство людей путаются в этих словах.

пользователь

Пользователь - это учетная запись для подключения базы данных (Сервер). мы можем создать пользователя с помощью CREATE USER IDENTIFIED BY.

схема

На самом деле Oracle Database содержит логическую и физическую структуру для обработки данных. Схема также логическая структура для обработки данных в базе данных (компонент памяти). Он создается автоматически Oracle при создании пользователя. Он содержит все объекты, созданные пользователем, связанным с этой схемой. Например, если я создал пользователя с именем, santhoshа oracle создает схему с именем santhosh, Oracle сохраняет все объекты, созданные пользователем santhoshв santhoshсхеме.

Мы можем создать схему с помощью CREATE SCHEMAоператора, но Oracle автоматически создает пользователя для этой схемы.

Мы можем удалить схему, используя DROP SCHEMA <name> RESTRICTинструкцию, но она не может удалить объекты, содержащиеся в схеме, поэтому для удаления схемы она должна быть пустой. здесь ограничительное слово заставляет вас указывать эту схему без объектов.

Если мы пытаемся удалить пользователя, содержащего объекты в его схеме, мы должны указать CASCADEслово, потому что Oracle не позволяет вам удалять пользователя, содержащего объекты.

DROP USER <name> CASCADE

поэтому Oracle удаляет объекты в схеме, а затем автоматически удаляет пользователя. Объекты, ссылающиеся на эти объекты схемы, из других схем, таких как представления и частные синонимы, переходят в недопустимое состояние.

SanthoshReddy
источник
-2

Я хотел бы добавить, что приведенные выше утверждения применимы к реализации Oracle, но другие базы данных, в том числе SQL Server и PostgreSQL, используют схему как просто пространство имен, то есть способ группировки объектов. Например, промежуточная схема может группировать все объекты, используемые в промежуточных данных, схема учета может группировать все объекты, связанные с учетом.

user3869678
источник
Не уверен, что вы имеете в виду, когда говорите «операторы выше», но схема в SQL и в Oracle является группировкой разрешений. Другими словами, это не просто способ группировки похожих объектов, но и способ группировки объектов, который упростит управление разрешениями, поскольку вы можете предоставлять разрешения для схемы и, следовательно, избегать необходимости предоставлять разрешения каждому объекту в схеме.
Тронк
-4

Пользователь! = Схема, Пользователь и Схема не совпадают, но они взаимозаменяемы

user24990
источник
2
Пожалуйста, добавьте детали относительно того, как они отличаются.
Эрик
-4

Я говорю вам в соответствии с концепциями, не основанными на какой-либо системе управления базами данных, которую вы используете.

Концептуально: База данных: это просто куча данных, в основном неуправляемых или не связанных данных.

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

Теперь, если вы хотите узнать больше о, обратитесь по этой ссылке .

Пользователь использует формальный язык, указанный схемой для доступа к базе данных

Аджай Бходжак
источник