Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Несколько начальных понятий  [new]
Akivis
Member

Откуда:
Сообщений: 59
1. Что такое схема?? зачем нужна..??
2. Что значит в схеме пользователя 10 объектов??Работать в схеме??
3. Не могу понять в чем отличия операторов UNIQUE и PRIMARY KEY???
Как бы такие простенькие понятия..если можно своими словами))А то книжные термины эти))
25 фев 09, 10:38    [6857389]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
1- совокупность объектов, принадлежащих одному польователю. Название совпадает с именем пользователя.
2 - Пользователь сам создал 10 объектов, или же ему в этом помогли (к примеру, привелегия create any table позволяет создавать таблицы в любой схеме.) Ну и соответственно работа с объектами определенного пользователя и подразумевает "Работать в схеме"
3 - первичный ключ (PRIMARY KEY) может быть только один для таблицы и не может содержать null значения. Уникальных ключей может быть много и он позвоялет наличие null в соответсвующ(их|ем) столбц(ах|е)
25 фев 09, 10:49    [6857455]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
1) Схема - это совокупность объектов, принадлежащих некоторому пользователю. Если у пользователя нет объектов, то можно сказать, что его схема пуста
2) То значит - у пользователя есть всего лишь 20 объектов. Где объектами выступают: таблицы, индексы, представления, триггеры, функции, процедуры, пакеты и т.д. и т.п. (посмотреть объекты пользователя и их типы можно в представлении USER_OBJECTS). Работать в схеме, значит: установить некую схему по умолчанию. В этом случае изначальный поиск объектов будет осуществляться в установленной схеме. Причем рабочая схема может не совпадать со схемой пользователя
3) UNIQUE - обеспецивает уникальность значений своего ключа, но допускает пустые значения.
PRIMARY KEY - по сути, это более строго заданное ограничение UNIQUE. Кроме уникальности оно ещё подразумевает NOT NULL значений своего ключа.
25 фев 09, 10:50    [6857463]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
Щукина Анна

2) То значит - у пользователя есть всего лишь 20 объектов.

Читать как 10 :)
25 фев 09, 10:54    [6857482]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Ога, они автоматом на два делятся
25 фев 09, 10:57    [6857493]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
Щукина Анна
Щукина Анна

2) То значит - у пользователя есть всего лишь 20 объектов.

Читать как 10 :)


Кризис... инфляция...
25 фев 09, 11:01    [6857518]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Akivis
Member

Откуда:
Сообщений: 59
pravednik, Щукина Анна

1. Другими словами, схема это некий workspace(выделенное место в памяти сервера СУБД для работы) для обычного юзера, DBA, plsql кодера. Если имеем SCOTT.SALESREPS.SALES то это значит в схеме(workspace-e) пользователя SCOTT(это же имя и схемы т.к. они одинаковы) имеем таблицу SALESREPS со столбцом SALES...верно??
1.1 Почему существует разделение схем, чтобы друг другу пользователи оракля не мешали и небыло путаницы в самой БД???
1.2 Создавая объект(таблицу например) тот кто создал является ее хозяином(owner)??какие это накладывает ограничения на других пользователей или может даже DBA
1.3 Почему у пользователя может быть схема пуста??в следствии чего или когда заводим нового пользователя то у него по умолчанию все пусто??

2. На сколько понимаю когда DBA создал юзера то у него нет вообще никакх почти привилегий..ему нужно их выдавать(обязанность DBA) в зависимости от задач для пользователя. Привелегия create any table наверно достаточно мощная привилегия если с ее помощью можно создавать таблицы с любой схеме. Зачем для обычного пользователя нужна?? можно коротенький пример))

"Причем рабочая схема может не совпадать со схемой пользователя"
Тоесть у пользователя может быть не одна схема???зачем ему много??))

3. Ну примерно понял....тоесть в таблице не может быть например 2 или 3 PRIMARY KEY??? только один(в основном первый столбец и восновном тип INTEGER)???
А UNIQUE столбцов в таблице может быть сколько угодно....
25 фев 09, 12:13    [6857994]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
Akivis
pravednik, Щукина Анна

1. Другими словами, схема это некий workspace(выделенное место в памяти сервера СУБД для работы) для обычного юзера, DBA, plsql кодера. Если имеем SCOTT.SALESREPS.SALES то это значит в схеме(workspace-e) пользователя SCOTT(это же имя и схемы т.к. они одинаковы) имеем таблицу SALESREPS со столбцом SALES...верно??
1.1 Почему существует разделение схем, чтобы друг другу пользователи оракля не мешали и небыло путаницы в самой БД???
1.2 Создавая объект(таблицу например) тот кто создал является ее хозяином(owner)??какие это накладывает ограничения на других пользователей или может даже DBA
1.3 Почему у пользователя может быть схема пуста??в следствии чего или когда заводим нового пользователя то у него по умолчанию все пусто??

2. На сколько понимаю когда DBA создал юзера то у него нет вообще никакх почти привилегий..ему нужно их выдавать(обязанность DBA) в зависимости от задач для пользователя. Привелегия create any table наверно достаточно мощная привилегия если с ее помощью можно создавать таблицы с любой схеме. Зачем для обычного пользователя нужна?? можно коротенький пример))

"Причем рабочая схема может не совпадать со схемой пользователя"
Тоесть у пользователя может быть не одна схема???зачем ему много??))

3. Ну примерно понял....тоесть в таблице не может быть например 2 или 3 PRIMARY KEY??? только один(в основном первый столбец и восновном тип INTEGER)???
А UNIQUE столбцов в таблице может быть сколько угодно....


1 - это типа воркспейс, но не выделенное пространство (смотрите понятие quota)..а так верно.
1.1 - как минимум, чтоб не мешали... у меня свои объекты, у васи свои.. хочу, дам грант на селект васе, хочу не дам.... )).. ну и у васи и у меня может быть табличка Т, так на уровне БД они будут отличаться ya.t и vasya.t ))))))
1.2 зависит от привелегий, которые есть у "других пользователей". Если под DBA вы подразумеваете роль, то он может
select * from dba_sys_privs where grantee='DBA'
а так разные бывают DBA ;)
1.3 потому что в ней не может и не быть объектов. При создании юзера никакие объекты ему не создаются (а зачем, если вся инфа о нем хранится в словаре..по аналогии с .profile и прочее для ОС)

2 - смотря как создал. если так
create user test identified by test
default tablespace users
temporary tablespace temp;
то юзер не сможет даже законектится... К примеру, для возможности коннекта нужно минимум create session.
По поводу create any table - да, мощная. Позволяет создавать таблицы в любой схеме. Но для юзера test, созданного ранее, даже SYS не сможет создать не одной таблицы, так как у этого пользователя нет квоты(места, которое этот пользователь может использовать в определенном ТП под свои нужды) на какое либо табличное пространство. При чем если сделать
alter user test quota 5M on not_users;
то команда
create table test.x(x number)
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'USERS'
также не прокатит, так как будет пытаться создать табличку в ТП users.
поэтому
create table test.x(x number) tablespace not_users;

Table created.
 
25 фев 09, 12:39    [6858168]     Ответить | Цитировать Сообщить модератору
 Re: Несколько начальных понятий  [new]
Akivis
Member

Откуда:
Сообщений: 59
pravednik,

Спс...немного проведняется))
25 фев 09, 13:51    [6858634]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить