Я действительно запутался с базой данных терминов, пользователем и схемой. Может кто-нибудь объяснить, чем они отличаются друг от друга (если они есть)?
Если они одинаковы, то в чем сходство между ними? Как мы их используем? И как мы их создаем?
Я действительно запутался с базой данных терминов, пользователем и схемой. Может кто-нибудь объяснить, чем они отличаются друг от друга (если они есть)?
Если они одинаковы, то в чем сходство между ними? Как мы их используем? И как мы их создаем?
Ответы:
В Oracle пользователи и схемы - это одно и то же. Вы можете считать, что пользователь - это учетная запись, которую вы используете для подключения к базе данных, а схема - это набор объектов (таблиц, представлений и т. Д.), Принадлежащих этой учетной записи.
Смотрите этот пост о переполнении стека: разница между пользователем и схемой в 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
.
Чтобы начать понимать разницу, я думаю, мы должны начать говорить, что эта номенклатура была ошибкой 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.
Теперь, если вы хотите узнать больше о, обратитесь по этой ссылке .
Пользователь использует формальный язык, указанный схемой для доступа к базе данных