Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  18:38[Войти] | [Зарегистрироваться]
Обсуждение темы:
Синтетические и естественные ключи.

Добрый день.

Может кто поможет мне определиться в том, какие ключи лучше использовать в качестве первичных - синтетические или естественные. Я прочитал несколько статей на эту тему, но не уверен, что пришел к определенным выводам. С одной стороны преимущество синтетического ключа кажется неоспоримым исходя из того постулата, что любой объект реального мира подвержен изменениям, иногда кардинальным. Очень многое из того, что кажется незыблемым, может меняться и довольно быстро. Трудно придумать действительно уникальный естественный ключ, например, возьмем таблицу рабочих предприятия. Что взять в качестве первичного ключа? Не буду говорить банальности о смене ФИО, пола, паспорта и т.п. Взять за основу псевдо естественное поле - табельный номер (ведь для того его и придумали)? А теперь представьте ситуацию - предприятие работает долго, имеет обширные архивы на CD-ROM, база эксплуатируется практически непрерывно (вполне реальные параметры для серьезных баз данных). Руководство отделов кадров решило, что теперь табельный номер должен быть не числовой, а текстовой и нести в себе некую доп. информацию (причем это с точки зрения программиста ситуация весьма нестандартная, а с точки зрения отдела кадров проста и менять свои взгляды на формат табельного номера оно может раз в неделю, кстати, на период становления нового стандарта так оно и будет). Что делать? Ну, в общем-то "что" понятно, но, боюсь, что будет плохо и базе и программисту.

С другой стороны в примере с тем же табельным номером абсолютно ясно, что он должен оставаться уникальным на протяжении всей жизни базы и появление искусственного ключа мало того, что нарушает правило нормализации, так еще и противоречит фундаментальному философскому принципу Оккама - "сущности не следует умножать без необходимости" ("Entities should not be multiplied unnecessarily", William of Ockham). Я уж не говорю, что в справочниках, как правило, тоже есть естественные натуральные ключи, а их значения вставляются практически во все таблицы. В таких случаях кажется неестественным организовывать сложнейшие соединения таблиц по 10-20. Кроме того, чем больше синтетических ключей в таблице, тем меньше она несет информации сама по себе и тем больше чувствительна к потерям и ошибкам в связанных таблицах.

Я постарался объяснить, почему ответ - "используй синтетические ключи там, где нельзя использовать естественные", не кажется мне разумным. Т.е. это тот случай, когда желательно все же не действовать по принципу "и ты прав и ты тоже прав".

Sergey

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 290 сообщений

Добавить свое сообщение

Отслеживать это обсуждение
<<<... | 260—251 | 250—241 | 240—231 | ...>>>
Всего сообщений в теме: 290; страниц: 29; текущая страница: 5


№ 250   02-10-2009 02:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 248« (Geo)
___________________________
>>> сетевые БД сейчас бурно развиваются

Не в смысле работающие в сети (антилокальные), а с сетевой парадигмой.
http://ru.wikipedia.org/wiki/Сетевая_СУБД


№ 249   02-10-2009 00:47 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 238« (Как слышно? Приём!)
___________________________
Как говорилось в анекдоте про три стакана водки на заводе: "так ведь работаю же!" Замечательно. Ну так давайте говорить не о достоинствах естесственных ключей, а о том, что да, мы раздолбаи организовать единую систему учета не можем и не хотим, по сему пусть каждый лепит как хочет, а мы тут в центральном офисе как-нибудь всё сведем, куда-нибудь Был у меня опыт работы в подобных организациях. Иных уж нет, а те далече.
 Cep


№ 248   02-10-2009 00:11 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 247« (Как слышно? Приём!)
___________________________
>>> Кто-то недавно на БП сморозил, что путь развития систем - упрощение
Почему "сморозил", если это так. Для точности формулировки, правда, надо добавить, что упрощение на соответствующем качественном уровне.

Возьмите любую систему (не обязательно информационную). При переходе на качестенно новый уровень система становится очень сложной. В длальнейшем она совершенствуется путем упрощения. И это не следствие игнорирование исследования предметной области, а как раз наоборот: обобщение результатов исследования предметных областей. Практика показала, что очень (очень!) велик процент ситуаций, когда "предметные" атрибуты сущностей со временем изменяются. Даже, если изначально казалось, что они меняться не могут. Результатом осмысления стало использование дополнительных атрибутов сущностей, предназанченное для идентификации сущности.

Кстати, так было и в докомпьютерную эпоху. Тот же самый табельный номер, по сути, представляет собой искусственный первичный ключ докомпьютерных времен. Ну, нет у человека простого уникального идентификатора, который не мсог бы со временем измениться.

>>> Соответственно, разработке сетевых БД пришёл кирдык
А вот этот вывод я не понял. Тем более, что он противорречит реальности: сетевые БД сейчас бурно развиваются.
 Geo


№ 247   01-10-2009 23:20 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 244« (Geo)
___________________________
>>> Я не силен в азербайджанском
А зачем тогда придумали Unicode?

ИК завоевали признание и установили монополизм,
что привело к ещё большему их фактическому преимуществу.
Теперь к генетическим преимуществам ИК добавилось преимущество разработанности.
Хотя по большому счёту - это упрощенчество.
Кто-то недавно на БП сморозил, что путь развития систем - упрощение.
Тотальное торжество ИК - тому пример.

Признаться, ЕК действительно воспринимаются как нечто рудиментарное.
Соответственно, разработке сетевых БД пришёл кирдык.


№ 246   01-10-2009 23:11 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 244« (Geo)
___________________________
>>> Вы уверены, что каждый заказчик согласиться купить систему, в которой нельзя будет вводить маленькие буквы?
Вы путаете интерфейс и внутреннюю обработку.
UpperCase перед проверкой а не для ввода.


№ 245   01-10-2009 17:01 Ответить на это сообщение Ответить на это сообщение с цитированием
Бурная дискуссия в лучших традициях БП. Но хоть убей не пойму, какое она имеет отношение к преимуществу того или иного типа ключей :D
 Geo


№ 244   01-10-2009 16:59 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 242« (Как слышно? Приём!)
___________________________
>>> Повторюсь: смотри паспорт
Я не силен в азербайджанском и не могу воспроизвести, что будет написано в паспорте. Вы уверены, что Вам это сильно поможет?

>>> CapsLock не проблема с UpperCase
Это вариант, который как раз часто используется. Но только это организационные меры, а не технические. Вы уверены, что каждый заказчик согласиться купить систему, в которой нельзя будет вводить маленькие буквы?

>>> Автоматизация идеального порядка ещё более бессмысленна
А посему... "Господи, дай мне сил изменить то, что могу изменить, смирения принять то, что изменить не могу, и мудрости -- отличить одно от другого"
 Geo


№ 243   01-10-2009 14:45 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 241« (Fisher)
___________________________
>>> Напротив, оно позволит тратить время впустую гораздо эффективнее.

Не только эффективнее, но и прибыльнее.
Да и комфортабельнее, чем таскать кирпичи, например.


№ 242   01-10-2009 14:43 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 239« (Geo)
___________________________
>>> Рамиз Мамед Наби Оглы

Повторюсь: смотри паспорт.
CapsLock не проблема с UpperCase.

>>> Автоматизация хаоса может привести только к возникновению автоматизированного хаоса.

Автоматизация идеального порядка ещё более бессмысленна.

Я вообще-то думаю, что автоматизация имеет целью уменьшение хаоса - это называется оптимизация.


№ 241   01-10-2009 13:16 Ответить на это сообщение Ответить на это сообщение с цитированием
>>> Автоматизация хаоса может привести только к возникновению автоматизированного хаоса.

Но это вовсе не означает, что данное мероприятие невозможно. Напротив, оно позволит тратить время впустую гораздо эффективнее.


<<<... | 260—251 | 250—241 | 240—231 | ...>>>
Всего сообщений в теме: 290; страниц: 29; текущая страница: 5


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования