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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

Добрый день.

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

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

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

Sergey

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

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

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


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

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

Отслеживать это обсуждение
290—281 | 280—271 | ...>>>
Всего сообщений в теме: 290; страниц: 29; текущая страница: 1


№ 290   05-10-2009 14:50 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 289« (Как слышно? Приём!)
___________________________
Мой бедный, бедный монитор, пал первой жертвой вашего увлекательного схаластического спора, телевизор еще терпит :(
 Cep


№ 289   05-10-2009 12:32 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 287« (Geo)
___________________________
>>> У меня это один и тот же человек под ЕК <Эдгар Франк «Тед» Кодд>
>>> ... Точно так же, как если бы ... БАШМАК

Обращаю внимание почтенных членов клуба, что это не я запустил с криком БАШМАКом
в уважаемого основоположника реляционных баз данных :)

Стиль Мунтазира аль-Зайди пробил дорогу в массы :)


№ 288   05-10-2009 11:09 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 286« (Как слышно? Приём!)
___________________________
Сказано громко, только неверно.

"Графом называется такая пара множеств G={R,V}, где V есть подмножество любого счётного множества, а R — подмножество V?V."
Заметим, что подмножество декартова произведения двух или более множеств и есть, по определению, отношение.
В реляционном исчислении V не обязано быть счетным, могут существовать другие базовые множества, кроме V и отношения могут иметь более чем над парой множеств.
Возвращаясь к теории графов это должно означать, что и вершины и дуги могут относится к различным типам и иметь индивидуальные характеристики.

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


№ 287   05-10-2009 09:10 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 284« (Как слышно? Приём!)
___________________________
>>> У меня это один и тот же человек под ЕК <Эдгар Франк «Тед» Кодд>
Поэтому Вы и прокалываетесь. Точно так же, как если бы попытались надеть на ногу железнодорожный БАШМАК, протому что у Вас естественный ключ по наименованию, и Вы считаете его обувью :D
 Geo


№ 286   05-10-2009 08:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 281« (Сергей Перовский)
___________________________
>>> теория графов, позволяющая описывать, как иерархические, так и сетевые структуры, является ЧАСТНЫМ СЛУЧАЕМ реляционного исчисления.

"И не надо кричать!
Я и в первый раз прекрасно слышал!"
(С) Кролик.
Сказано громко, только неверно.


№ 285   05-10-2009 08:48 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 282« (Сергей Перовский)
___________________________
>>> Реляционная алгебра - строгая математическая дисциплина.

Которая украшает и поддерживает моду на РСУБД.
Но как уже говорилось, математика с программированием
живут в общежитии в соседних комнатах, но это далеко не одно и то же.


№ 284   05-10-2009 08:45 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 282« (Сергей Перовский)
___________________________
>>> Давайте не путать Кодда-математика с Коддом-теоретиком СУБД.

В Вашей БД это две разные записи под разными синтетическими ключами? :)
У меня это один и тот же человек под ЕК <Эдгар Франк «Тед» Кодд>


№ 283   05-10-2009 08:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Оставив, пока, за скобками вопрос отношения абстрактной (и реально неприменимой) теории и практики заметим, что
примером невыразимых запросов в реляционной алгебре является простая агрегация
и исчисление транзитивных замыканий, заданных по их бинарным краевым отношениям.
Реляционная модель, даже теоретически, относится к логике первого порядка,
она принципиально не способна выразить ряд типов логических запросов -
запросов включающих транзитивные замыкания.
С сетевыми графами иначе.


№ 282   05-10-2009 08:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 280« (Как слышно? Приём!)
___________________________
Так что реальные БД замараны грязными руками недоучек
по сравнению с сияющими вершинами математических принципов :)

Давайте не путать Кодда-математика с Коддом-теоретиком СУБД.
Реляционная алгебра - строгая математическая дисциплина.
12 (13, а в последних версиях около 300)  правил Кодда - всего лишь его личное мнение о программной реализации. Тут есть место для споров.
Не даром мы регулярно спорим о "запрещенном" GOTO.
Следовать ли советам профессионала - личное дело каждого. Важно, что поступая по своему, необходимо сознавать, откуда правило взялось и к каким последствиям может привести его нарушение.


№ 281   05-10-2009 08:18 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 279« (Как слышно? Приём!)
___________________________
И что?
Еще раз, медленно: теория графов, позволяющая описывать, как иерархические, так и сетевые структуры, является ЧАСТНЫМ СЛУЧАЕМ реляционного исчисления.
Противопоставлять реляционные модели сетевым бессмысленно. Все равно, что противопоставлять алгебру и арифметику.


290—281 | 280—271 | ...>>>
Всего сообщений в теме: 290; страниц: 29; текущая страница: 1


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

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

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

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

Перейти на конкретную страницу по номеру
  
Время на сайте: 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» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

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