Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 ROWID ???  [new]
SOMNAMBULA
Member

Откуда:
Сообщений: 158
Добрый день всем!

Господа, такой вопрос, в каких базах данных используется такое понятие, как ROWID (На примере оракла)? В каких ещё? (я так понимаю, что не во всех). Как называется то же самое в других СУБД?
Извините за несколько некорректный вопрос, но смысл, я думаю, понятен...
11 мар 04, 12:53    [572309]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Да не очень то понятен - а какой смысл вкладываете вы в него?

-- Tygra's --
11 мар 04, 13:54    [572528]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Я и ёжик
Member

Откуда: СПб
Сообщений: 1815
ROWID в Oracle внутренний идентификатор записи, что то типа "прямого адреса" в системе, - ( Id файла, Id блока, номер записи в блоке).
Как раз он является ссылкой на запись в листьях индекса.
В древние времена не мянялся за время жизни записи, с появлением Index Organized Tables и Partitioned Tables потерял своё постоянство для них ( в первом случае является функцией от ключа, во втором может измениться при миграции записи из секции в секцию), в 10G вроде появился еще вид таблиц где ROWID может меняться. Доступен в SQL-выражениях в виде псевдостолбца ROWID таблицы, требует осторожности при использовании.
11 мар 04, 14:09    [572576]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
SOMNAMBULA
Member

Откуда:
Сообщений: 158
Да-да, про назначение ROWID в оракле я представления имею. Меня интересует как обстоят дела с этим в других СУБД. MS SQL Server, Interbase, Sybase, MySQL, настольные СУБД типа Access. Там тоже такой псевдостолбец используется? И обращиться к нему также - ROWID?
11 мар 04, 14:56    [572736]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Roman Ignatiev
Member

Откуда: Москва
Сообщений: 680
В Interbase это называется rdb$db_key. Длина 8 байт для таблицы. Причем увидеть его нельзя, select не выдаст :) А вот использовать для поиска можно
11 мар 04, 15:36    [572858]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
2 SOMNAMBULA

Дык в каких целях тебе надо?

Если идентификатор строки, тогда:
В MS SQL - identity
В Interbase - нет вообще, надо руками присваивать, есть для этого спец. вещь - Последовательность

-- Tygra's --
11 мар 04, 15:49    [572906]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
В Interbase - нет вообще, надо руками присваивать, есть для этого спец. вещь - Последовательность
М.б. ты имел ввиду генераторы.

В Interbase это называется rdb$db_key.
Кстати, значение теперь тоже может менятся. Так что его использование потеряло смысл.
11 мар 04, 16:10    [572978]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
x
Guest
в Access и MS SQL такого нет
11 мар 04, 16:24    [573042]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
SOMNAMBULA
Member

Откуда:
Сообщений: 158
Для чего мне это надо? ... Меня недавно спросили о существовании механизма скрытой идентификации записи в таблицах базы данных, вот я и про ROWID рассказал (сам работаю с ораклом), и при этом не подумал, что в других СУБД может другой механизм применяться. Вот теперь заинтересовался этим, можно считать, что для общего развития...
Так что получается - если в словаре DDL конкретной СУБД есть что-то типа "create index...", то можно говорить о наличии механизма такой идентификации (типа ROWID в оракл)?
Ой, что-то меня торкнуло на эту тему. Может кто подскажет энциклопедический источник по этому поводу?
11 мар 04, 16:25    [573046]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
x
Guest
Тогда я чего-то не понял

Скрытая идентификация записи в таблице есть, конечно, везде.
А вот наружу она выставляется далеко не всегда
11 мар 04, 16:57    [573171]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
MSSQL - нет
PostrgeSQL - стобец OID
11 мар 04, 17:49    [573351]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32912
автор
В Interbase это называется rdb$db_key.
Кстати, значение теперь тоже может менятся. Так что его использование потеряло смысл.

Чушь.
rdb$db_key сменится только в случае рестора.
11 мар 04, 17:52    [573371]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Daugava
Member

Откуда: Riga-Kiev-Gurzuf
Сообщений: 718
В Informix-е скрытое поле rowid также есть во всех таблицах, правда если таблицы созданы с фрагментацией по умолчанию оно не создается, необходимо дополнительно просить сервер об этом (WITH ROWID).
11 мар 04, 19:02    [573695]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Nodir
Guest
SQLite: ROWID, _ROWID_, OID
12 мар 04, 09:40    [574267]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
rdb$db_key сменится только в случае рестора.
Я см. в http://www.ibase.ru/v6/ib6faq.htm#dbkey. Да наверное во время одного сеанса вполне можно использовать.
12 мар 04, 11:30    [574654]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Так что получается - если в словаре DDL конкретной СУБД есть что-то типа "create index...", то можно говорить о наличии механизма такой идентификации (типа ROWID в оракл)?


Это как это так ты связал две разные вещи???

-- Tygra's --
12 мар 04, 13:00    [575044]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Это как это так ты связал две разные вещи???
О сказал! Неиначе начал тяпницу отмечать:-)))
12 мар 04, 15:55    [575795]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Да. Еще со вторника

-- Tygra's --
12 мар 04, 16:53    [575967]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Leonid
Member [заблокирован]

Откуда: From nowhere
Сообщений: 743
автор
в Access и MS SQL такого нет


В MS SQL есть даже лучше, чем в oracle-овский ROWID.
поле типа uniqueidentifier.
Вот уж это значение точно не изменится.
А ROWID в последних версиях Oracle может "плавать".
25 мар 04, 20:27    [597957]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ROWID не поле !!! В таблице оно не хранится ! (За исключением некоторых технических моментов, не имеющих отношения к ЛОГИКЕ хранения)
26 мар 04, 07:43    [598201]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Если уж проводить аналогии, то это скорее номер записи в понятиях DBF
26 мар 04, 07:44    [598202]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Zaxx
Guest
Leonid
В MS SQL есть даже лучше, чем в oracle-овский ROWID.
поле типа uniqueidentifier.
Вот уж это значение точно не изменится.
А ROWID в последних версиях Oracle может "плавать".


Если не знаешь что такое ROWID, то не путай других незнающих...
ROWID мог плавать во всех версиях Oralce, и сравнение его c uniqueidentifier аналогично сравнению телевизора с холодильником. У них разное функциональное назначение.
26 мар 04, 08:26    [598239]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Leonid
Member [заблокирован]

Откуда: From nowhere
Сообщений: 743
Zaxx
Если не знаешь что такое ROWID, то не путай других незнающих...
ROWID мог плавать во всех версиях Oralce, и сравнение его c uniqueidentifier аналогично сравнению телевизора с холодильником. У них разное функциональное назначение.


Уважаемый Zaxx, я знаю, что такое ROWID и как он формируется. Могу даже точную документацию процетировать.
Я говорю о тех задачах, которые на него можно было бы "повесить". А именно уникальный идентификатор записи.

uniqueidentifier - это не ROWID, но задачу уникальной идентификации он решает куда лучше. Можно даже сказать, что это уникальный идентификатор в рамках планеты. Вероятность его повторения мала.
26 мар 04, 11:56    [598692]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Gt.
Guest
тогда надеюсь вы заметили что в той самой документации как оракл настойчиво предупреждает о невозможности использовать rowid как уникальный идентификатор записи ...
26 мар 04, 12:54    [598887]     Ответить | Цитировать Сообщить модератору
 Re: ROWID ???  [new]
Zaxx
Guest
Leonid
Уважаемый Zaxx, я знаю, что такое ROWID и как он формируется.

Не похоже, иначе не было-бы фразы про то-что "ROWID в последних версиях Oracle может "плавать"".

Leonid
uniqueidentifier - это не ROWID, но задачу уникальной идентификации он решает куда лучше.


Я повторюсь: вы сравниваете телевизор с холодильником. ROWID вообще не решает задачу уникальной идентификации.

Leonid
Я говорю о тех задачах, которые на него можно было бы "повесить". А именно уникальный идентификатор записи.


Вы пытаетесь повесить на него задачи, которые он не может выполнять.
Задачу уникальной идентификации в Oracle выполняют sequens-ы (причём более гибко и удобно чем identity в M$SQL).

Если вам так нравиться uniqueidentifier, и вы так сожалеете что этого типа данных нет в Oracle, то заведите поле Char(32) и генерите в него GUID функцией sys_guid(), хоть на сервере (что будет вам привычнее), хоть на клиенте (что будет всем удобнее).
26 мар 04, 14:21    [599250]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить