Разница между базой данных и пользователем против схемы
79
Я действительно запутался с базой данных терминов, пользователем и схемой. Может кто-нибудь объяснить, чем они отличаются друг от друга (если они есть)?
Если они одинаковы, то в чем сходство между ними? Как мы их используем? И как мы их создаем?
В Oracle пользователи и схемы - это одно и то же. Вы можете считать, что пользователь - это учетная запись, которую вы используете для подключения к базе данных, а схема - это набор объектов (таблиц, представлений и т. Д.), Принадлежащих этой учетной записи.
Вы создаете пользователей с create userзаявлением. Это также «создает» схему (изначально пустую) - вы не можете создать схему как таковую, она привязана к пользователю. После того как пользователь создан, администратор может предоставить пользователю привилегии, которые позволят ему создавать таблицы, выполнять selectзапросы insertи все остальное.
База данных - это то, что содержит всех пользователей, которых вы создали, и их данные (и группу предопределенных системных пользователей, таблиц, представлений и т. Д., Которые заставляют все это работать). Вы должны взглянуть на документацию Oracle Database Architecture в Руководстве по концепциям (на самом деле, вся эта страница заслуживает прочтения - там есть раздел о пользователях и схемах выше на этой странице), чтобы получить представление о том, что такое база данных и что такое Экземпляр базы данных - это два важных понятия.
Вы можете создать базу данных с помощью create databaseоператора, как только вы установили программный стек Oracle. Но с помощью dbca(помощник по созданию базы данных) легче начать.
В зависимости от того, как иногда используется терминология , a USERи a SCHEMAнесколько похожи. Но есть и большая разница. A USERможно назвать a, SCHEMAесли " USER" принадлежит какой-либо объект, иначе он останется только " USER". Если у вас USERесть хотя бы один объект, то в силу всех приведенных выше определений ... USERтеперь его можно назвать a SCHEMA.
Я думаю, что вы указываете на то, что термин «SCHEMA» является многогранным. С одной стороны, это пространство имен для объектов базы данных. Кроме того, в Oracle (и других?), Но не в PostgreSQL, это пространство имен объектов базы данных, содержащее именно объекты, созданные пользователем, совместно использующим имя схемы. С другой стороны, это отношения и структура объектов в базе данных, часто игнорирующие как владение, так и пространство имен.
Эндрю Вульф
2
Чтобы начать понимать разницу, я думаю, мы должны начать говорить, что эта номенклатура была ошибкой Oracle.
Я предполагаю, что если у вас есть ERP под названием TRITON, вы хотите, чтобы ваша база данных называлась TRITON, или если моя компания называется JENNY EXPORT, я мог бы решить, что моя база данных будет называться JENNYEXP или что-то в этом роде, не нужно никакого пользователя с таким именем ,
В Oracle вам нужно создать пользователя USER перед созданием таблиц, и достаточно странно, что эта коллекция таблиц называется SCHEMA.
Затем вы можете создать реальных пользователей и предоставить соответствующие разрешения для работы с такой базой данных, как TRITON, в соответствии с этим примером, кстати, если вы подключаетесь через РАЗРАБОТЧИК SQL, вы должны НАЗВАТЬ СОЕДИНЕНИЕ.
Я знаю, что это звучит немного разочарованно, но для меня больше смысла в соглашении об именах MS SQL SERVER, и я могу добавить, что я работал с Oracle раньше, чем с SQL SERVER.
База данных представляет собой набор данных, где фактически хранятся данные. Это физический компонент памяти, подключенный к компьютеру, установленному с программным обеспечением СУБД. Для манипулирования данными в этом компоненте памяти компьютер, установленный с программным обеспечением 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 удаляет объекты в схеме, а затем автоматически удаляет пользователя. Объекты, ссылающиеся на эти объекты схемы, из других схем, таких как представления и частные синонимы, переходят в недопустимое состояние.
Я хотел бы добавить, что приведенные выше утверждения применимы к реализации Oracle, но другие базы данных, в том числе SQL Server и PostgreSQL, используют схему как просто пространство имен, то есть способ группировки объектов. Например, промежуточная схема может группировать все объекты, используемые в промежуточных данных, схема учета может группировать все объекты, связанные с учетом.
Не уверен, что вы имеете в виду, когда говорите «операторы выше», но схема в SQL и в Oracle является группировкой разрешений. Другими словами, это не просто способ группировки похожих объектов, но и способ группировки объектов, который упростит управление разрешениями, поскольку вы можете предоставлять разрешения для схемы и, следовательно, избегать необходимости предоставлять разрешения каждому объекту в схеме.
Тронк
-4
Пользователь! = Схема, Пользователь и Схема не совпадают, но они взаимозаменяемы
Пожалуйста, добавьте детали относительно того, как они отличаются.
Эрик
-4
Я говорю вам в соответствии с концепциями, не основанными на какой-либо системе управления базами данных, которую вы используете.
Концептуально: База данных: это просто куча данных, в основном неуправляемых или не связанных данных.
Схема: Схема относится к формальному структурированию неуправляемых связанных / несвязанных данных, так что ими может управлять какая-то система управления, которая понимает формальное определение, предоставленное схемой. Схема в основном представляет собой схему для предоставления обзора. Например, у вас есть XSD, который определяет схему для создания XML. У вас есть RDBMS, которая определяет свои собственные схемы, основанные на правилах Codd, которые в основном определяют схемы для создания RDBMS.
Теперь, если вы хотите узнать больше о, обратитесь по этой ссылке .
Пользователь использует формальный язык, указанный схемой для доступа к базе данных
Ответы:
В Oracle пользователи и схемы - это одно и то же. Вы можете считать, что пользователь - это учетная запись, которую вы используете для подключения к базе данных, а схема - это набор объектов (таблиц, представлений и т. Д.), Принадлежащих этой учетной записи.
Смотрите этот пост о переполнении стека: разница между пользователем и схемой в Oracle? для более подробной информации и дополнительных ссылок.
Вы создаете пользователей с
create user
заявлением. Это также «создает» схему (изначально пустую) - вы не можете создать схему как таковую, она привязана к пользователю. После того как пользователь создан, администратор может предоставить пользователю привилегии, которые позволят ему создавать таблицы, выполнятьselect
запросыinsert
и все остальное.База данных - это то, что содержит всех пользователей, которых вы создали, и их данные (и группу предопределенных системных пользователей, таблиц, представлений и т. Д., Которые заставляют все это работать). Вы должны взглянуть на документацию Oracle Database Architecture в Руководстве по концепциям (на самом деле, вся эта страница заслуживает прочтения - там есть раздел о пользователях и схемах выше на этой странице), чтобы получить представление о том, что такое база данных и что такое Экземпляр базы данных - это два важных понятия.
Вы можете создать базу данных с помощью
create database
оператора, как только вы установили программный стек Oracle. Но с помощьюdbca
(помощник по созданию базы данных) легче начать.источник
В зависимости от того, как иногда используется терминология , a
USER
и aSCHEMA
несколько похожи. Но есть и большая разница. AUSER
можно назвать a,SCHEMA
если "USER
" принадлежит какой-либо объект, иначе он останется только "USER
". Если у васUSER
есть хотя бы один объект, то в силу всех приведенных выше определений ...USER
теперь его можно назвать aSCHEMA
.источник
Чтобы начать понимать разницу, я думаю, мы должны начать говорить, что эта номенклатура была ошибкой Oracle.
Я предполагаю, что если у вас есть ERP под названием TRITON, вы хотите, чтобы ваша база данных называлась TRITON, или если моя компания называется JENNY EXPORT, я мог бы решить, что моя база данных будет называться JENNYEXP или что-то в этом роде, не нужно никакого пользователя с таким именем ,
В Oracle вам нужно создать пользователя USER перед созданием таблиц, и достаточно странно, что эта коллекция таблиц называется SCHEMA.
Затем вы можете создать реальных пользователей и предоставить соответствующие разрешения для работы с такой базой данных, как TRITON, в соответствии с этим примером, кстати, если вы подключаетесь через РАЗРАБОТЧИК SQL, вы должны НАЗВАТЬ СОЕДИНЕНИЕ.
Я знаю, что это звучит немного разочарованно, но для меня больше смысла в соглашении об именах MS SQL SERVER, и я могу добавить, что я работал с Oracle раньше, чем с SQL SERVER.
источник
База данных.
База данных представляет собой набор данных, где фактически хранятся данные. Это физический компонент памяти, подключенный к компьютеру, установленному с программным обеспечением СУБД. Для манипулирования данными в этом компоненте памяти компьютер, установленный с программным обеспечением 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 удаляет объекты в схеме, а затем автоматически удаляет пользователя. Объекты, ссылающиеся на эти объекты схемы, из других схем, таких как представления и частные синонимы, переходят в недопустимое состояние.
источник
Я хотел бы добавить, что приведенные выше утверждения применимы к реализации Oracle, но другие базы данных, в том числе SQL Server и PostgreSQL, используют схему как просто пространство имен, то есть способ группировки объектов. Например, промежуточная схема может группировать все объекты, используемые в промежуточных данных, схема учета может группировать все объекты, связанные с учетом.
источник
Пользователь! = Схема, Пользователь и Схема не совпадают, но они взаимозаменяемы
источник
Я говорю вам в соответствии с концепциями, не основанными на какой-либо системе управления базами данных, которую вы используете.
Концептуально: База данных: это просто куча данных, в основном неуправляемых или не связанных данных.
Схема: Схема относится к формальному структурированию неуправляемых связанных / несвязанных данных, так что ими может управлять какая-то система управления, которая понимает формальное определение, предоставленное схемой. Схема в основном представляет собой схему для предоставления обзора. Например, у вас есть XSD, который определяет схему для создания XML. У вас есть RDBMS, которая определяет свои собственные схемы, основанные на правилах Codd, которые в основном определяют схемы для создания RDBMS.
Теперь, если вы хотите узнать больше о, обратитесь по этой ссылке .
Пользователь использует формальный язык, указанный схемой для доступа к базе данных
источник