powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
25 сообщений из 186, страница 7 из 8
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36789830
ЯЕХХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!web_fox,
ну так что там у нас с принципиальными отличиями в схемах ?

Принципиально то, что в постгресе понятия "схема" и "пользователь" ортогональны, схемы реально существуют, на них выдаются права.
А в оракле "схема" это абстракция. Не случайно ALL_USERS есть, а ALL_SCHEMAS нет и права на "схему" нельзя выдать.

На всякий случай...

В постгресе:
* Объектами владеют роли.
* Пользователь это частный случай роли, который может подключаться к базе.
* Схема это логическое объединение объектов, схема как сущность имеет своего владельца.
* Объект принадлежит к одной схеме и имеет одного владельца.
* Одна роль может владеть несколькими схемами.
* Одна роль может владеть объектами в разных схемах.
* В одной схеме могут быть объекты с разными владельцами.
* Суперюзер может всё.
* Суперюзер создает пользователей и роли, даёт права на создание объектов (без разделения по типу).
* Владелец базы даёт права на создание схем.
* Владелец схемы даёт права на использование схемы и на создание объектов в схеме.
* Владелец объекта даёт права на использование объекта.
* Пользователь может менять/удалять только свои объекты, даже если он владелец схемы или базы.
* Порядок поиска объекта без явного имени схемы: из переменной search_path, которая может содержать несколько любых схем (по умолчанию $user,public).
* Схема public это обычная схема.

В оракле:
* Объектами владеют пользователи.
* Пользователи и роли разные сущности, ибо если пользователю нет прав на create session - он не перестаёт быть пользователем.
* Пользователь может обладать только одной "схемой".
* Объект принадлежит к одной "схеме" и имеет одного владельца - владельца "схемы".
* На любой объект могут иметься синонимы принадлежащие другим пользователям.
* В "схеме" всё принадлежит только её владельцу, включая синонимы на чужие объекты.
* SYSDBA может всё
* SYSDBA создает пользователей и роли, даёт права на создание объектов определённого типа.
* Владелец "схемы" даёт права на использование объекта, но не может дать доступ к своей схеме в целом, только пообъектно.
* Владелец "схемы" может создать всё, что позволит DBA, но удалять может все объекты без исключения.
* Порядок поиска объекта без явного имени схемы: переменная current_schema (одно имя), затем public.
* Псевдосхема public создаётся автоматически и может содержать только синонимы.


Некоторые вещи делаются проще в постгресе.

пример 1: организация совместной работы - несколько разработчиков создают свои непересекающиеся объекты в общей схеме. В оракле надо либо дать всем create any ..., либо раздать пароль схемовладельца, либо кто-то должен создавать синонимы. В постгресе достаточно grant usage on schema + grant create on schema.

пример 2: несколько приложений в одной базе, каждое держит данные в своей схеме app1,app2,... и одна схема common - общие справочники. Пользователь должен сразу входить в определённое приложение. В оракле надо создать синонимы из common в каждую схему app и выполнять alter session в триггере при входе. В постгресе один раз выполнить ALTER USER someuser SET search_path=app2,common
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36789895
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНvadiminfo,
я ж вам дал ссылку на доку, где англицким по белому написано, что
любые агрегаты, написанные пользователем могут пользоваться как оконные.

Пока не нашел как пользователь пишет собсно агрегаты. Но по аналит ф-ям в целом Оракл такой же мощный как ПГ, наверное, поскольку у оконных (аналог аналит в Оракле) ф-ий в ПГ в FRAME (аналог ораклового WINDOW) вроде нет возможности задавать выражения, а у Оракла есть: value_expr PRECEDING or value_expr FOLLOWING. Но пока есче посматриваю справку в целом.

Не нашел еще пока Флэшбэка: можно ли с помощью запроса SQL посмотреть что было в БД 1 час, минуту назад назад, например? Имеет значение, если по ошибке удалили данные из таблы вернуть обратно.
Типа:
Код: plaintext
1.
2.
3.
SELECT salary FROM employees
   AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)
   WHERE last_name = 'Chung';


ОКТОГЕН
Начальник в питере держит соединение и в нём слушает канал. Вот и всё.
Из любого места в этот канал всё и приходит.
Что ещё нужно?

Нужно ессно чтобы и соединения не держал, т.е. не было бы сессии с сервером: их может быть много этих подписчиков, а события могут быть редко. Уточните, плиз, может этот начальник так поступить?
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790187
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
Не нашел еще пока Флэшбэка: можно ли с помощью запроса SQL посмотреть что было в БД 1 час, минуту назад назад, например? Имеет значение, если по ошибке удалили данные из таблы вернуть обратно.
Типа:
Код: plaintext
1.
2.
3.
SELECT salary FROM employees
   AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)
   WHERE last_name = 'Chung';
ОКТОГЕН
Начальник в питере держит соединение и в нём слушает канал. Вот и всё.
Из любого места в этот канал всё и приходит.
Что ещё нужно?

Нужно ессно чтобы и соединения не держал, т.е. не было бы сессии с сервером: их может быть много этих подписчиков, а события могут быть редко. Уточните, плиз, может этот начальник так поступить?
Можно и не держаь его постоянно, а периодически подсоединяясь выполнять
LISTEN channel;
Ресурсов это не ест.
Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется),
то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip
как вам угодно.
PS
Флэшбэка нет. Когда будет неизвестно.:-(
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790213
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вру, соединение надо держать постоянно.
Значит надо писать службу для вашего варианта.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790231
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНМожно и не держаь его постоянно, а периодически подсоединяясь выполнять
LISTEN channel;
Ресурсов это не ест.
Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется),
то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip
как вам угодно.
PS
Флэшбэка нет. Когда будет неизвестно.:-(

Периодически? Данные критичны - может поздняк быть.

С БД соединиться моно если событие произошло, на которое он подписался: тада уж его час то собсно и настал, чтобы смотреть на скока все плохо. Не нужно всем им цельный год зря коннекты держать.

Кста, про справку: к Оракловой привык уже, не очень ПГ нравится. У оракла синтаксис разрисован, разжеван. Конечно, тоже нуно проверять на примерах. Но в ПГ как-то, мне кажется, нуно побольше поэкспементировать, чтобы проверить прально ли понял.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790250
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoОКТОГЕНМожно и не держаь его постоянно, а периодически подсоединяясь выполнять
LISTEN channel;
Ресурсов это не ест.
Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется),
то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip
как вам угодно.
PS
Флэшбэка нет. Когда будет неизвестно.:-(

Периодически? Данные критичны - может поздняк быть.

С БД соединиться моно если событие произошло, на которое он подписался: тада уж его час то собсно и настал, чтобы смотреть на скока все плохо. Не нужно всем им цельный год зря коннекты держать.
А как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?..
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790315
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperА как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?..
Там речь о критическом событии в плане появились данные превышающие допустимые значения.
Не ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790341
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНе ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД.Прдставил себе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE status_log (
  log_id bigserial NOT NULL PRIMARY KEY,
  log_level integer NOT NULL DEFAULT  1 ,
  log_message text NOT NULL,
 CHECK log_level BETWEEN  0  AND  9 
);

INSERT INTO status_log(DEFAULT,  9 , 'Washington D.C. was successfully nuked by 4ebyr@shk@ in ' || now()::timestamp( 0 ));
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790344
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoSergSuperА как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?..
Там речь о критическом событии в плане появились данные превышающие допустимые значения.
Не ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД.т.е. конект куда то должен быть?
а какая принципиальная разница куда - к базе или еще куда-нибудь?
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790528
Дико извиняюсь за оффтоп.
Помогите переписать это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with recursive t(rn) 
as(select  1  
   union all
   select rn+ 1  
   from t where rn <  100  )
   select rn 
   from t

с postgresql на oracle
Спасибо.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790613
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 13.08.2010 13:56, заблудился wrote:

> Дико извиняюсь за оффтоп.
> Помогите переписать это
....
> с postgresql на oracle

Код: plaintext
1.
select rownum rn from DUAL connect by level <  100 ;

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790615
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperт.е. конект куда то должен быть?

Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790674
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoОни клиенты - не сервера в общем случае, к ним ни приконнектисся.

Они слушают TCP порт, значит - они сервера и к ним можно приконнектиться. Причём сделать
это может и не только сервера и послать им не только ту информацию на которую они
подписались...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790687
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoSergSuperт.е. конект куда то должен быть?
Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся.И как же это сервер сам разошлет событие незаконнекченным клиентам, не имеющим своего внешнего адреса?
Конечно, никак. Или клиенты должны быть в вечном коннекте (не обязательно к БД, но к какому-то IP-серверу - по-любому) и тогда сервер сможет им что-то послать, или реконнектится/отваливаться с указанной периодичностью, проверяя по своей инициативе наличие событий.
Клиент Оракл должен использовать один из этих вариантов. Вне СУБД такой сценарий пишется за пару дней на любом вменяемом ЯП.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790722
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoSergSuperт.е. конект куда то должен быть?

Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся.получается что они сервера должны быть
обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790792
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperполучается что они сервера должны быть
обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет
Но тем ни менее клиенты. У них есть ф-ии обратного вызова. Ну типа сообщение придет и они выполнят то, что надо. А обычному то человеку все равно. А не обычным нужно было, что бы конеекта не было у таких прог.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790837
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoSergSuperполучается что они сервера должны быть
обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет
Но тем ни менее клиенты. У них есть ф-ии обратного вызова. Ну типа сообщение придет и они выполнят то, что надо.Наверное я чего-то не понимаю. Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них можно сообщениями обмениваться?
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790853
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper
Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них
можно сообщениями обмениваться?

"Доктор, меня все игнорируют..."

Повторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который
сервер при наступлении события и коннектится чтобы передать извещение. Естественно,
работает это только в локалке или приравненной к ней VPN.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790876
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FavnИли клиенты должны быть в вечном коннекте (не обязательно к БД, но к какому-то IP-серверу - по-любому) и тогда сервер сможет им что-то послать, или реконнектится/отваливаться с указанной периодичностью, проверяя по своей инициативе наличие событий.
Клиент Оракл должен использовать один из этих вариантов.
Клиент запущен. Ну крутится. Ну назовите это слушает. Мало ли прог у начальника крутятся (слушают када он клаву на игре нжмет). Есть ф-ии обратного вызова. Ну про ея типа знает Оракл, она типа у него записана: прога один раз приконнектилась - зарегистрировалась (записала о себе инфу и че она хочет). Потом отсоеденилась. У Оракла есть процессы которые смотрят очереди. Произошло плохое событие, его записали в очередь. Процесс проверяющий очередь обнаружил его и разослал извещения тем клиентам, которые подписались на данное событие.. Если клиент подписавшийся отключен к моменту события, то есму все равно будет послано. Т.е. асинхронное взаисмодествие.
Коннект к БД это серверный процесс, чем больше коннектов, тем больше процессов. Именно они лишние и не нужны (подписчиков много, а события редки). В БД данные, в том числе о подписчиках - кол-во данных для БД не критично. На компе у начальника игры, ворд и клиент шо-то слушает. И так у всех 100 начальников. Все хорошо.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790899
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
SergSuper
Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них
можно сообщениями обмениваться?

"Доктор, меня все игнорируют..."

Повторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который
сервер при наступлении события и коннектится чтобы передать извещение. Естественно,
работает это только в локалке или приравненной к ней VPN.
спасибо
т.е. все-таки эти клиенты работают как серверы
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790942
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperКак может придти сообщение без конекта?
Имелся в виду постоянный коннект между сервером БД и клиентом. Ни туда ни обратно непосредствнно между ними ниче нет. А так, конечна, любая запущенная прога в основном чет-то слушает (ожидает). Ну типа она "сервер" в широком смысле - обслуживает.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790949
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, кстати, извещение приходит отнюдь не мгновенно. Задержка может достигать нескольких
секунд, что, вероятно, связано с периодом опроса очереди внутренним сервисом публикации.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36790979
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoКлиент запущен. Ну крутится. Ну назовите это слушает... Если клиент подписавшийся отключен к моменту события, то есму все равно будет послано. Т.е. асинхронное взаисмодествие.Т.е. все как обычно, никакой мистики с "доставкой без коннекта". Так же работает куча messaging серверов, JMS-совместимых, например. Да и свой такой написать для простого асинхронного оповещения - тривиальная задача.
vadiminfoКоннект к БД это серверный процесс, чем больше коннектов, тем больше процессов. Именно они лишние и не нужны (подписчиков много, а события редки).Справедливо далеко не для всех СУБД, есть и тред-ориентированные. Но зачем тут коннект именно к БД? В отсутствие коннекта к БД достаточно почти не требующего ресурсов периодического сокетного коннекта к любому TCP-серверу с разруливанием подписки. Более того, такой сервер может кушать ресурсы не того сервера, на котором стоит СУБД.
Dimitry SibiryakovПовторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который сервер при наступлении события и коннектится чтобы передать извещение. Естественно, работает это только в локалке или приравненной к ней VPN.Т.е. все еще хуже, чем могло бы быть. Куда логичнее выглядят периодические коннекты клиентов к простенькому демону, которым любые сети не помеха. А еще лучше - возможность обоих вариантов.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36791047
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FavnТ.е. все как обычно, никакой мистики с "доставкой без коннекта". Так же работает куча messaging серверов, JMS-совместимых, например. Да и свой такой написать для простого асинхронного оповещения - тривиальная задача. .
Ну есно ф-ии обратного вызова ни Оракл придумал. Речь о том что фича в плане усилий и знаний от базиста 0 практичеки. А свой то и сам СУБД народ пишет. Но тут как бы нуно почти ниче не писать, а шобы все по взрослому было.

FavnСправедливо далеко не для всех СУБД, есть и тред-ориентированные. Но зачем тут коннект именно к БД? В отсутствие коннекта к БД достаточно почти не требующего ресурсов периодического сокетного коннекта к любому TCP-серверу с разруливанием подписки. Более того, такой сервер может кушать ресурсы не того сервера, на котором стоит СУБД.

Ну для ПГ справедливо? Так тут и нет коннекта, а БД нужна: в табле раз в пол года появилась плохая цифра. С этим нуно что-то делать? Речь идет о данных БД такой-то СУБД, а не вообще о сетевых прогах, что мы для котнрольных по сетям лабали, када учились.
...
Рейтинг: 0 / 0
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
    #36791074
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnТ.е. все еще хуже, чем могло бы быть. Куда логичнее выглядят периодические коннекты клиентов к простенькому демону, которым любые сети не помеха. А еще лучше - возможность обоих вариантов.
изобретение и супорт своих мегоэффективных велосипедов выглядит логичным лишь в определенном возрасте ...

2ЯЕХХ

>Принципиально то, что в постгресе понятия "схема" и "пользователь" ортогональны, схемы реально существуют, на них выдаются права.

да, нюанс с правами действительно принципиален. спасибо, теперь мне стало ясно, как благодаря этому нюансу становиться легко и логично эмулировать пакеты оракла
...
Рейтинг: 0 / 0
25 сообщений из 186, страница 7 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]