| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > System scheme, Scheme scheme что это? |
| Автор: Berliner 23.5.2006, 15:57 |
| здраствуйте подскажите пожалуста что такое System scheme, Object Scheme. А то читал в хелпе по Oracle и не понял что это, может роли? |
| Автор: Sqlninja 23.5.2006, 16:04 |
| Вообще, это набор логических структур данных. Каждый обьектв Oracle хранится в определенной условной схеме. Схема может быть системной типа SYS или SYSTEM, или пользовательской типа SCOTT. Каждый юзер имеет свою схему, которая имеет такое же имя как и он. В схему могут входить самые различные объекты - таблицы, индексы, кластеры, Java классы и.т.д. Манипуляции со схемами осуществляются с помощью SQL. |
| Автор: batigoal 23.5.2006, 16:06 |
| Насколько я понимаю, это практически то же самое, что пользователь (под которым ты коннектишься). Т.е., грубо говоря, 1 юзер соответствует 1 схеме и наоборот. Поправьте, если не так. |
| Автор: Sqlninja 23.5.2006, 16:15 |
| Один юзер - одна схема. Но строго говоря, это не тоже самое, если по определению. Обьекты схемы - это логические структуры хранимых данных. Однако, это чистая абстракция. Схема никак не привязана к физическим структурам данных, например, к табличным пространствам или файлам. |
| Автор: LSD 23.5.2006, 20:24 |
| Схема это что-то вроде пакетов в Java, просто способ логически сгруппировать данные. В Oracle схема жестко привязанна к пользователю, но например в SQL Server - нет, схема существует независимо от пользователя. |
| Автор: Berliner 24.5.2006, 11:09 |
| Интересно, когда ставил сервер у меня спросили пароль system ввел пароль(я так понимаю это пароль админа), есть тестовый юзер HR с базой про сотрудников. Пытаюсь сделать выборку из этой быза про сотрудников, при помощи пользователя system- пишет(что типа недоступная схема или что то такое), интересно пароль администратора и недоступная схема. Хотя насколько я понял из Help что в Oracle есть несколько типов администраторов. |
| Автор: LSD 25.5.2006, 10:01 | ||
Вероятнее всего там речь шла о DBA, а не учетных записях. Действительно в Oracle выделяют 12 разных типов DBA, по специализции, но это уже изыски. Из учетных записей можно выделить SYS, это пользователь в схеме которого хранятся все словари, системные данные и т.п. Любой пользователь соединившийся как SYSDBA, автоматически начинает работать от имени SYS. |
| Автор: BIZ0N 27.5.2006, 18:18 | ||
| Вопрос: а обьекты тоже обязательно принадлежат какойнибудь схеме? а системные представления (например dba_users)? Я просто читаю статью с www.firststeps.ru (он здесь упоминался как один из хороших источников), не могу проглотить вот эту фразу:
Про что здесь разговор? О том, где может храниться код (на клиенте или на сервере), или про то что обьекты не принадлежат отдельной схеме, а принадлежат базе в целом? |
| Автор: batigoal 27.5.2006, 20:16 | ||
| Видимо, тут идет речь об именованных и анонимных процедурах. Именованные сохранятся в БД для последующего использования, анонимные существуют только во время выполнения. Судя по коду, они принадлежат схеме SYS:
|
| Автор: Sqlninja 28.5.2006, 11:58 | ||||
Здесь просто нужно понять отличие хранимых обьектов от локальных. Хранимый объект, например, процедура, пакет или функция, хранится в базе в скомпилированном виде, в так называемом P-Code. При наличии соответствующих привилегий хранимые обьекты могут быть доступны из внешних программ и быть видимыми для всех пользователей. Локальные обьекты видимы только в контексте той программы, в декларативной части которой они были обьявлены, и при вызове каждый раз компилируются и запускаются заново. Естественно, хранимая процедура выполняется быстрее. Так вот, Вы не можете создавать локальные пакеты в программных блоках, ни в анонимных, ни в именованых, то есть подобное делать нельзя:
|
| Автор: BIZ0N 28.5.2006, 18:15 |
| to Sqlninja: Спасибо именно то, что хотел услышать! (очень хороший пример) |