Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 24 25 26 [27]
 Re: недостатки иерархических баз  [new]
о ключах в СБД
Guest
_мод
onstat-

Ну давайте теперь поломаем копья на тему естественные vs сурагатные ключи.

А не надо ничего ломать, все просто: естественные ключи используются всегда, а суррогатные - только для эмуляция сетевой БД.

Хм? А какая разница для сетевой БД, как организован ключ (ссылка)? Ну пусть он он будет суррогатный или естественный, ведь ссылка остается ссылкой. Или я не прав?

Единственная разница в том, что для естественного ключа я сам должен указать значение, например, номер накладной. Но ведь значение ссылки (ключа) указывает во время создания соответствующей сущности, а вовсе не во время ее использования. Создали новую накладную. Задали для нее значение естественного ключа. А а далее забыли про него и работает с сущностью как будто там суррогатный ключ. Можно даже вообще не знать, какой там ключ: суррогатный или естественный. Правильно?

Например:

// Использование суррогатного ключа
Document doc = new Document(); // Создали суррогатный ключ
myObj.docRef = doc; // Сохранили суррогатный ключ

// Использование естественного ключа
Document doc = new Document("DOC123456"); // Создали естественный ключ
myObj.docRef = doc; // Сохранили естественный ключ

Заметьте, что вторая строка никак не зависит от формата ключа, т.е. работа с ключами (в идеале должны быть) отвязана от их формата. Формат ключае (естественный или суррогатный) определяется в описании сущности (в данном случае в определении таблицы Document).
11 авг 08, 14:34    [6052382]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
_мод
Guest
о ключах в СБД
Хм? А какая разница для сетевой БД, как организован ключ (ссылка)?

В ССУБД Номер накладной м.б. есст. ключом таблицы Накладные, но каждая строка этой таблицы автоматически получает неизменяемый номер, который используется как ссылка в связанных таблицах, например Сроки_накладных будут ссылаться по номеру строки таблицы Накладные, а не по номеру накладной.
11 авг 08, 15:48    [6052900]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
О ссылках в СБД
Guest
_мод
о ключах в СБД
Хм? А какая разница для сетевой БД, как организован ключ (ссылка)?

В ССУБД Номер накладной м.б. есст. ключом таблицы Накладные, но каждая строка этой таблицы автоматически получает неизменяемый номер, который используется как ссылка в связанных таблицах, например Сроки_накладных будут ссылаться по номеру строки таблицы Накладные, а не по номеру накладной.

В этом случае нет никакого основания называть номер накладной первичным ключем (в смысле сетевой модели) -- это просто поле. Реальным (суррогатным) ключем будет номер строки. Поэтому я могу только повторить вопрос: "Какие факторы мешают использовать естественный ключ в качестве ссылки в сетевой модели?"

Я уже привел свои соображения, что единственное отличие в том, что суррогатный ключ инициируется автоматически, а естественный вручную. Далее. после создания объекта мы просто не знаем (нам это не нужно для работы) является ли ссылка суррогатной или естественной, поскольку работа со ссылками это присваивание. Точно так же как в обычном программировании мы не знаем какой формат имеют ссылки и собственно не должны и не хотим знать. Но это могут быть естественные ссылки и тогда их надо инициировать вручную и, что важно, они должны сохраняться в качестве значений полей (колонок) и передаваться в стеке и т.д.
11 авг 08, 16:51    [6053325]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
1)Ключей может быть несколько. Из этогоследует, что для вторго случай Вашего пример ("использование естественног ключа") таки придется программерам реализовывать.
2) Если речь идеь о ключах РМД, то ключи задаются для отношений. Соответсвенно "а-ля ссылка" мы его использовать не можем, потому как ссылка подразумевает, что, по большому счету, ссылатся мы можем на любой объект. Я уж про случаи с наследованием совсем не говорю.
11 авг 08, 17:05    [6053410]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
_мод
Guest
О ссылках в СБД
"Какие факторы мешают использовать естественный ключ в качестве ссылки в сетевой модели?"

1. Может меняться
2. М.б. составным
3. Их м.б. несколько
4. Они м.б. не уникальны или содержать null
ну и.т.д.
11 авг 08, 17:55    [6053773]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
О ссылках в СБД
Guest
_мод
О ссылках в СБД
"Какие факторы мешают использовать естественный ключ в качестве ссылки в сетевой модели?"

1. Может меняться
2. М.б. составным
3. Их м.б. несколько
4. Они м.б. не уникальны или содержать null
ну и.т.д.

Все это можно легко запретить (кроме "ну и.т.д.") без большого ущерба для здоровья. Собственно пп. 1, 3 и 4 обычно никто не использует (будучи в здравом уме).

Остается п.2. Почему составной ключ это плохо для ссылки? Например, все документы в фирме могут кодироваться двумя полями: отдел и номер. Тогда при создании документа надо их инициализировать, а далее как обычно забыть про их существование:

Document doc = new Document("ОТК", "12345"); // Создали и инициализировали
myObj.doc = doc; // Забыли про ссылку и ее структуру (сохранили два поля в ссылке)
empObj.doc = myObj.doc; // Ссылка нигде не всплывает, но содержит два поля

В чем проблема?

Интересно, а чем ссылки в ООБД отличаются от ссылок в СБД? И вообще, чем эти две модели отличаются?
11 авг 08, 19:42    [6054128]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
_мод
Guest
О ссылках в СБД
Все это можно легко запретить

А зачем создвать проблемы там где их нет.
О ссылках в СБД
Интересно, а чем ссылки в ООБД отличаются от ссылок в СБД? И вообще, чем эти две модели отличаются?

К сожалению я не знаю что такое "ООБД"
12 авг 08, 10:08    [6055076]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
onstat-
Member

Откуда:
Сообщений: 6941
vadiminfo

у ИМД с этим типа хуже если не обращать внимание на свежевыявленные дифференцирование и интегрирование для оптимизаторов.


Баян, внимательно читаем
бородатых классиков .
12 мар 09, 23:29    [6920163]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
Изопропил
Member

Откуда:
Сообщений: 31636
onstat-,

Хорошая трава была у классиков, теперь такой нет...
13 мар 09, 00:16    [6920263]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
onstat-
vadiminfo

у ИМД с этим типа хуже если не обращать внимание на свежевыявленные дифференцирование и интегрирование для оптимизаторов.


Баян, внимательно читаем
бородатых классиков .

Другой баян: то ли сознание определяет бытие, то ли бытие определяет сознание, но фактом является то, что часто сознание одних определяет бытие других :(.
16 мар 09, 19:15    [6934728]     Ответить | Цитировать Сообщить модератору
 Re: недостатки иерархических баз  [new]
vanoman
Member

Откуда: Нижний Новгород
Сообщений: 845
Подкину дров в топку.

Пример Иерархической БД RAIMA
Мне нравилось с ней работать.

Всё есть и Клиент-Сервер (Сетевая модель поддерживается) и Файл-Сервер (иерархия поддерживается) и Транзакционность и Индексы хоть на все поля.
Кстати, базёнки получаются миллипизерными т.к. индексы для поддержки ссылок держать не надо.
27 мар 09, 10:59    [6982800]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 24 25 26 [27]
Все форумы / Сравнение СУБД Ответить