|
|
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 07:43 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНvadiminfo, я ж вам дал ссылку на доку, где англицким по белому написано, что любые агрегаты, написанные пользователем могут пользоваться как оконные. Пока не нашел как пользователь пишет собсно агрегаты. Но по аналит ф-ям в целом Оракл такой же мощный как ПГ, наверное, поскольку у оконных (аналог аналит в Оракле) ф-ий в ПГ в FRAME (аналог ораклового WINDOW) вроде нет возможности задавать выражения, а у Оракла есть: value_expr PRECEDING or value_expr FOLLOWING. Но пока есче посматриваю справку в целом. Не нашел еще пока Флэшбэка: можно ли с помощью запроса SQL посмотреть что было в БД 1 час, минуту назад назад, например? Имеет значение, если по ошибке удалили данные из таблы вернуть обратно. Типа: Код: plaintext 1. 2. 3. ОКТОГЕН Начальник в питере держит соединение и в нём слушает канал. Вот и всё. Из любого места в этот канал всё и приходит. Что ещё нужно? Нужно ессно чтобы и соединения не держал, т.е. не было бы сессии с сервером: их может быть много этих подписчиков, а события могут быть редко. Уточните, плиз, может этот начальник так поступить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 09:12 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfo Не нашел еще пока Флэшбэка: можно ли с помощью запроса SQL посмотреть что было в БД 1 час, минуту назад назад, например? Имеет значение, если по ошибке удалили данные из таблы вернуть обратно. Типа: Код: plaintext 1. 2. 3. Начальник в питере держит соединение и в нём слушает канал. Вот и всё. Из любого места в этот канал всё и приходит. Что ещё нужно? Нужно ессно чтобы и соединения не держал, т.е. не было бы сессии с сервером: их может быть много этих подписчиков, а события могут быть редко. Уточните, плиз, может этот начальник так поступить? Можно и не держаь его постоянно, а периодически подсоединяясь выполнять LISTEN channel; Ресурсов это не ест. Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется), то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip как вам угодно. PS Флэшбэка нет. Когда будет неизвестно.:-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:14 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Вру, соединение надо держать постоянно. Значит надо писать службу для вашего варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:23 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНМожно и не держаь его постоянно, а периодически подсоединяясь выполнять LISTEN channel; Ресурсов это не ест. Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется), то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip как вам угодно. PS Флэшбэка нет. Когда будет неизвестно.:-( Периодически? Данные критичны - может поздняк быть. С БД соединиться моно если событие произошло, на которое он подписался: тада уж его час то собсно и настал, чтобы смотреть на скока все плохо. Не нужно всем им цельный год зря коннекты держать. Кста, про справку: к Оракловой привык уже, не очень ПГ нравится. У оракла синтаксис разрисован, разжеван. Конечно, тоже нуно проверять на примерах. Но в ПГ как-то, мне кажется, нуно побольше поэкспементировать, чтобы проверить прально ли понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:31 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoОКТОГЕНМожно и не держаь его постоянно, а периодически подсоединяясь выполнять LISTEN channel; Ресурсов это не ест. Если именно с бд соединяться нельзя(почему? Ваша прога всё равно потом с ней соединяется), то пишите службу, которая слушает каналы от субд и передаёт вам инфу через tcp/ip как вам угодно. PS Флэшбэка нет. Когда будет неизвестно.:-( Периодически? Данные критичны - может поздняк быть. С БД соединиться моно если событие произошло, на которое он подписался: тада уж его час то собсно и настал, чтобы смотреть на скока все плохо. Не нужно всем им цельный год зря коннекты держать. А как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:38 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuperА как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?.. Там речь о критическом событии в плане появились данные превышающие допустимые значения. Не ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:54 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoНе ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД.Прдставил себе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 11:59 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoSergSuperА как можно узнать за какое-то критическое время о событии, не имея ни с чем конектов?.. Там речь о критическом событии в плане появились данные превышающие допустимые значения. Не ядерный взрыв: об этом должны узнать, я, надеюсь, не из БД.т.е. конект куда то должен быть? а какая принципиальная разница куда - к базе или еще куда-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 12:00 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Дико извиняюсь за оффтоп. Помогите переписать это Код: plaintext 1. 2. 3. 4. 5. 6. 7. с postgresql на oracle Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 12:56 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
On 13.08.2010 13:56, заблудился wrote: > Дико извиняюсь за оффтоп. > Помогите переписать это .... > с postgresql на oracle Код: plaintext 1. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 13:21 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuperт.е. конект куда то должен быть? Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 13:21 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoОни клиенты - не сервера в общем случае, к ним ни приконнектисся. Они слушают TCP порт, значит - они сервера и к ним можно приконнектиться. Причём сделать это может и не только сервера и послать им не только ту информацию на которую они подписались... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 13:36 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoSergSuperт.е. конект куда то должен быть? Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся.И как же это сервер сам разошлет событие незаконнекченным клиентам, не имеющим своего внешнего адреса? Конечно, никак. Или клиенты должны быть в вечном коннекте (не обязательно к БД, но к какому-то IP-серверу - по-любому) и тогда сервер сможет им что-то послать, или реконнектится/отваливаться с указанной периодичностью, проверяя по своей инициативе наличие событий. Клиент Оракл должен использовать один из этих вариантов. Вне СУБД такой сценарий пишется за пару дней на любом вменяемом ЯП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 13:42 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoSergSuperт.е. конект куда то должен быть? Нет. Прога клиентская запущена должна быть. Она зарегистрировалась на серовевере коннекта нет. На сенрвере есть инфа о зарегестрованных на те или иные события. Соытие происходит сервер рассылает извещения подписавшимся. Они клиенты - не сервера в общем случае, к ним ни приконнектисся.получается что они сервера должны быть обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 13:53 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuperполучается что они сервера должны быть обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет Но тем ни менее клиенты. У них есть ф-ии обратного вызова. Ну типа сообщение придет и они выполнят то, что надо. А обычному то человеку все равно. А не обычным нужно было, что бы конеекта не было у таких прог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 14:12 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoSergSuperполучается что они сервера должны быть обычному человеку как-то особо нет разницы имеет клиентская прога конект или нет Но тем ни менее клиенты. У них есть ф-ии обратного вызова. Ну типа сообщение придет и они выполнят то, что надо.Наверное я чего-то не понимаю. Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них можно сообщениями обмениваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 14:26 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuper Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них можно сообщениями обмениваться? "Доктор, меня все игнорируют..." Повторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который сервер при наступлении события и коннектится чтобы передать извещение. Естественно, работает это только в локалке или приравненной к ней VPN. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 14:30 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FavnИли клиенты должны быть в вечном коннекте (не обязательно к БД, но к какому-то IP-серверу - по-любому) и тогда сервер сможет им что-то послать, или реконнектится/отваливаться с указанной периодичностью, проверяя по своей инициативе наличие событий. Клиент Оракл должен использовать один из этих вариантов. Клиент запущен. Ну крутится. Ну назовите это слушает. Мало ли прог у начальника крутятся (слушают када он клаву на игре нжмет). Есть ф-ии обратного вызова. Ну про ея типа знает Оракл, она типа у него записана: прога один раз приконнектилась - зарегистрировалась (записала о себе инфу и че она хочет). Потом отсоеденилась. У Оракла есть процессы которые смотрят очереди. Произошло плохое событие, его записали в очередь. Процесс проверяющий очередь обнаружил его и разослал извещения тем клиентам, которые подписались на данное событие.. Если клиент подписавшийся отключен к моменту события, то есму все равно будет послано. Т.е. асинхронное взаисмодествие. Коннект к БД это серверный процесс, чем больше коннектов, тем больше процессов. Именно они лишние и не нужны (подписчиков много, а события редки). В БД данные, в том числе о подписчиках - кол-во данных для БД не критично. На компе у начальника игры, ворд и клиент шо-то слушает. И так у всех 100 начальников. Все хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 14:36 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov SergSuper Как может придти сообщение без конекта? Зачем вообще конекты тогда нужны, если без них можно сообщениями обмениваться? "Доктор, меня все игнорируют..." Повторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который сервер при наступлении события и коннектится чтобы передать извещение. Естественно, работает это только в локалке или приравненной к ней VPN. спасибо т.е. все-таки эти клиенты работают как серверы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 14:43 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
SergSuperКак может придти сообщение без конекта? Имелся в виду постоянный коннект между сервером БД и клиентом. Ни туда ни обратно непосредствнно между ними ниче нет. А так, конечна, любая запущенная прога в основном чет-то слушает (ожидает). Ну типа она "сервер" в широком смысле - обслуживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:01 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
И, кстати, извещение приходит отнюдь не мгновенно. Задержка может достигать нескольких секунд, что, вероятно, связано с периодом опроса очереди внутренним сервисом публикации. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:05 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vadiminfoКлиент запущен. Ну крутится. Ну назовите это слушает... Если клиент подписавшийся отключен к моменту события, то есму все равно будет послано. Т.е. асинхронное взаисмодествие.Т.е. все как обычно, никакой мистики с "доставкой без коннекта". Так же работает куча messaging серверов, JMS-совместимых, например. Да и свой такой написать для простого асинхронного оповещения - тривиальная задача. vadiminfoКоннект к БД это серверный процесс, чем больше коннектов, тем больше процессов. Именно они лишние и не нужны (подписчиков много, а события редки).Справедливо далеко не для всех СУБД, есть и тред-ориентированные. Но зачем тут коннект именно к БД? В отсутствие коннекта к БД достаточно почти не требующего ресурсов периодического сокетного коннекта к любому TCP-серверу с разруливанием подписки. Более того, такой сервер может кушать ресурсы не того сервера, на котором стоит СУБД. Dimitry SibiryakovПовторяю третий раз: клиент Oracle при подписке на событие открывает TCP порт, на который сервер при наступлении события и коннектится чтобы передать извещение. Естественно, работает это только в локалке или приравненной к ней VPN.Т.е. все еще хуже, чем могло бы быть. Куда логичнее выглядят периодические коннекты клиентов к простенькому демону, которым любые сети не помеха. А еще лучше - возможность обоих вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:15 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FavnТ.е. все как обычно, никакой мистики с "доставкой без коннекта". Так же работает куча messaging серверов, JMS-совместимых, например. Да и свой такой написать для простого асинхронного оповещения - тривиальная задача. . Ну есно ф-ии обратного вызова ни Оракл придумал. Речь о том что фича в плане усилий и знаний от базиста 0 практичеки. А свой то и сам СУБД народ пишет. Но тут как бы нуно почти ниче не писать, а шобы все по взрослому было. FavnСправедливо далеко не для всех СУБД, есть и тред-ориентированные. Но зачем тут коннект именно к БД? В отсутствие коннекта к БД достаточно почти не требующего ресурсов периодического сокетного коннекта к любому TCP-серверу с разруливанием подписки. Более того, такой сервер может кушать ресурсы не того сервера, на котором стоит СУБД. Ну для ПГ справедливо? Так тут и нет коннекта, а БД нужна: в табле раз в пол года появилась плохая цифра. С этим нуно что-то делать? Речь идет о данных БД такой-то СУБД, а не вообще о сетевых прогах, что мы для котнрольных по сетям лабали, када учились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:38 |
|
||
|
Я слышал, что Oracle такой же мощный продукт как и PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FavnТ.е. все еще хуже, чем могло бы быть. Куда логичнее выглядят периодические коннекты клиентов к простенькому демону, которым любые сети не помеха. А еще лучше - возможность обоих вариантов. изобретение и супорт своих мегоэффективных велосипедов выглядит логичным лишь в определенном возрасте ... 2ЯЕХХ >Принципиально то, что в постгресе понятия "схема" и "пользователь" ортогональны, схемы реально существуют, на них выдаются права. да, нюанс с правами действительно принципиален. спасибо, теперь мне стало ясно, как благодаря этому нюансу становиться легко и логично эмулировать пакеты оракла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2010, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36790837&tid=1552779]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 147ms |

| 0 / 0 |
