|
|
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Есть вопрос, касающийся зависимых сущностей и идентицифирующих связей. Есть две таблицы, связанных идентифицирующей связью, например: "Организации" и "Телефоны организации". У "Организаций" простой первичный ключ (ID). У "Телефонов" кроме собственного ID в состав первичного ключа входит ID организации. Т.е. как обычно описывается в литературе: Если внешний ключ сущности используется в качестве ее первичного ключа (PK) или как часть составного первичного ключа , то сущность является зависимой от родительской сущности. Если внешний ключ не является первичным и не входит в составной первичный ключ, то сущность является независимой от родительской сущности. Появилась необходимость ввести такой атрибут "Организации" как "Основной телефон". Соответственно, для этого в таблицу "Организации" добавляется ссылка на запись дочерней таблицы "Телефоны". А поскольку первичный ключ у "Телефонов" составной, то получается нечто странное и некрасивое: "Организация" ссылается на "Телефон", который зависит от "Организации". И вот получается, что внешний ключ "Организации" так же как и первичный "Телефонов" тоже должен состоять из двух полей.... Но какой смысл в таблице "Организации" иметь свой собственный ID в составе внешнего ключа.... А если ссылаться только на ID "Телефона", то тогда и его первичный ключ должен состоять только из одного поля? Но тогда "Телефоны" по определению, данному в литературе, не будут являться зависимыми сущностями?... Вопрос собственно: как правильнее поступать в данном случае? 1. не включать ID организации в PK телефона? 2. включать ID организации в состав внешнего ключа самой же организации? (бред...) 3. или так связывать эти таблицы вообще нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:33 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Ivan ShkuropadskyПоявилась необходимость ввести такой атрибут "Организации" как "Основной телефон". Это не атрибут "Организации", это атрибут табл. "Телефоны" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 16:29 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Все нормально, только не надо было делать составной примарный ключ у дочерней таблицы. Нужен был просто внешний ключ. С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 17:28 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Naf, А всё ж таки действительно, как лучше (какие подводные камни м.б.): поле в главной - указатель на дочернюю (на основной телефон) или поле в дочерней с указанием "типа" телефона (основной/неосновной)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 17:43 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
tanglir, а что ты упёрся в поля телефонов и организаций. Можно завести таблицу связей между телефонами и организациями, так что телефон не будет содержать атрибутов организации (ID организации и признак "основной") и наоборот Организация ничего не будет знать о телефонах. Но вообще решение зависит от того, что ты моделируешь. Если речь идёт о "Карточке организации" (т.е. это не две сущности "Организация" и "Телефон", а на самом деле одна) без первичного учёта телефонов, то телефоны надо рассматривать как часть этой карточки (как запись детализации счёта есть неотъемлемая его часть и без него не существует) со всеми необходимыми атрибутами, например с признаком "основной". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 19:00 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Ivan ShkuropadskyПоявилась необходимость ввести такой атрибут "Организации" как "Основной телефон". Соответственно, для этого в таблицу "Организации" добавляется ссылка на запись дочерней таблицы "Телефоны". А поскольку первичный ключ у "Телефонов" составной, то получается нечто странное и некрасивое: "Организация" ссылается на "Телефон", который зависит от "Организации". И вот получается, что внешний ключ "Организации" так же как и первичный "Телефонов" тоже должен состоять из двух полей.... Но какой смысл в таблице "Организации" иметь свой собственный ID в составе внешнего ключа....А в чем трагедия-то ? Как раз это и является гарантией, что основной телефон будет принадлежать именно этой организации, а никакой другой. Так что нет повода к панике, все нормально. А вот если сделать телефоны независимой сущностью с собственным идентификатором, то организации можно будет привязать в качестве основного любой телефон, даже никак не относящийся к этой организации. Или придется контролировать корректность номера кодом в тригере или процедуре. P.S. IMO, предпочтительнее контролировать корректность данных стандартным механизмом СУБД с помощью внешних ключей. Не надо бояться составных ключей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 19:24 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
ChA, нехорошесть в том, что придётся сначала создать организацию, потом прописать к ней телефоны, а потом в организации указать основной телефон. Т.е. в транзакции как минимум лишний update нужен, а то ещё и запрос к телефонам за ID основного, или такая экзотика, как отложенная проверка ограничений целостности. Поиск по основному номеру будет очень неэффективным, поскольку для определения этого признака придётся заглядывать в "Организации" (или наоборот, перебирать все организации и смотреть какие у них основные телефоны). Видимо от таблиц нужно подняться на более высокий уровень абстракции и повторно выполнить нормализацию и поосторожнее обходиться с сурогатными ключами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 20:37 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
_модIvan ShkuropadskyПоявилась необходимость ввести такой атрибут "Организации" как "Основной телефон". Это не атрибут "Организации", это атрибут табл. "Телефоны" Вот за все случаи не скажу, но именно в своей БД пошел именно подобным путем. Признак "главности" прописывается в поле дочерней таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 20:42 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
mcureenabChA, нехорошесть в том, что придётся сначала создать организацию, потом прописать к ней телефоны, а потом в организации указать основной телефон. Т.е. в транзакции как минимум лишний update нужен, а то ещё и запрос к телефонам за ID основного, или такая экзотика, как отложенная проверка ограничений целостности.А зачем собственно ? Ссылка на телефон запросто может быть nullable, в постановке явно не указывается наличие основного телефона в организации. Посему необходимость в столь длинной транзакции или отложенной проверки не очевидна. Но если уж номер указан, то обязан принадлежать этой организации, что и будет контролировать составной внешний ключ. Хотя, честно скажу, пока писал предыдущий пост, также склонялся к варианту с дополнительной таблицей. Он, IMO, лучше всего соответствует озвученной постановке проблемы. mcureenabПоиск по основному номеру будет очень неэффективным, поскольку для определения этого признака придётся заглядывать в "Организации" (или наоборот, перебирать все организации и смотреть какие у них основные телефоны).Вы же не считаете все запросы в которых участвует больше одной таблицы неэффективными ? При нормальной нормализации, простите за тавтологию, таких запросов большинство. К тому, что не увидел сути проблемы, что куда-то надо будет "заглядывать", так как в большинстве случаев это приходиться делать всегда. mcureenabВидимо от таблиц нужно подняться на более высокий уровень абстракции и повторно выполнить нормализацию и поосторожнее обходиться с сурогатными ключами.При условии, если мы начнем расширять постановку задачи, например, в сторону ранжирования телефонов. Пока она не кажется очевидной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 21:44 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
ChA, авторНо если уж номер указан, то обязан принадлежать этой организации, что и будет контролировать составной внешний ключ. Если этот признак в таблице "Телефоны", то принадлежность телефона организации выполняется автоматически без каких либо вспомогательных FK и проверок. Код: plaintext В данном случае есть простое решение, которое позволяет не делать лишних движений. Довольно странно плодить "тяжёлые" запросы только потому что в системе таковые уже имеются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 22:03 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
mcureenabChAНо если уж номер указан, то обязан принадлежать этой организации, что и будет контролировать составной внешний ключ.Если этот признак в таблице "Телефоны", то принадлежность телефона организации выполняется автоматически без каких либо вспомогательных FK и проверок.Правильно, но тогда могут быть нарушены другие условия. От отсутствия основного номера, что по постановке не страшно, до того что все существующие могут стать основными, что явно некорректно. Декларативным механизмом стандартных ограничений СУБД уже сложно выразить наличие только одного(!) основного номера, посему контроль придется переложить на некий исполняемый код. Не то, чтобы это смертельно, но, IMO, где можно обойтись без него, лучше обойтись. В некоторых СУБД в CHECK можно использовать запросы, но всё равно вариант с полем "основной" в таблице телефонов мне кажется сомнительным. Бросается его явная избыточность, из множества телефонов только один является основным, но признак присутствует у всех. Таким образом вариант с отдельной таблицей "основной номер организации" считаю наиболее правильным. mcureenabChAК тому, что не увидел сути проблемы, что куда-то надо будет "заглядывать", так как в большинстве случаев это приходиться делать всегда.В данном случае есть простое решение, которое позволяет не делать лишних движений. Довольно странно плодить "тяжёлые" запросы только потому что в системе таковые уже имеются.Честно говоря уже перестал понимать, о каком множестве "тяжелых" запросов идет речь. Пользователю не нужны идентификаторы организации и телефонов, а то, что за ними стоит, т.е., наименование организации и номер телефона в его естественной форме. В таком случае, с учетом раздельности сущностей организации и телефонов, слияние между ними придется делать по любому. А вот если номер телефона ввести в основной ключ таблицы телефонов(ид_орг,номер), то, при обратной связи в таблицу организаций, номер в своём естественном виде и так будет представлен в таблице организаций, что как раз и удовлетворяет пожелание избегать любых мало-мальских осложнений при выполнении запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 22:42 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
> Т.е. как обычно описывается в литературе: Не читайте такую литературу. Примите как аксиому: независимая сущность - независимый идентификатор. В вашем случае проблема вот в чем: предприятие не является собственником телефонного номера, она арендует его у оператора. Т. е. фактически идентификатор телефонного номера выглядит как-то так [оператор][тип сети]...[характеристики сети, связанные с маршрутизацией, протоколами, способами соединения и пр.]...[способ идентификации абонентского устройства][публичный идентификатор абонентского устройства]. На самом деле в большинстве случаев поддерживать настолько глубокую идентификацию нет необходимости, используется только публичный идентификатор абонентского устройства. Но при этом важно понимать, что это ничто иное, как оправданное упрощение, подразумеваемые связи остались, несмотря на то, что не регистрируются. Т. о. в данном случае правильной будет структура данных отдельно для номерной емкости, отдельно для предприятий и отдельно - для связей. В таблице связей легко можете использовать дополнительные атрибуты (типа желаемого "основного" телефонного номера. На самом деле это тоже неправильная реализация, телефонный номер не может быть ни основным, ни вспомогательным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2009, 12:26 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Ivan Shkuropadsky пишет: > Появилась необходимость ввести такой атрибут "Организации" как "Основной > телефон". Соответственно, для этого в таблицу "Организации" добавляется > ссылка на запись дочерней таблицы "Телефоны". А поскольку первичный ключ > у "Телефонов" составной, то получается нечто странное и некрасивое: > > "Организация" ссылается на "Телефон", который зависит от "Организации". Ну и что ж некрасивого ? Только то, что ты не сможешь сразу создать организаию с телефоном, сначала нужно будет создать организацию без телефона, создать телефон, и потом прописать его в организацию. > > И вот получается, что внешний ключ "Организации" так же как и первичный > "Телефонов" тоже должен состоять из двух полей.... Смысла иметь одно и то же поле с двумя значениями нет. Но какой смысл в > таблице "Организации" иметь свой собственный ID в составе внешнего ключа.... У тебя будет два поля -- ссылки на телефон в организации. "IDОрганизации" -- первичный ключ, NOT NULL, и одновременно первое поле ссылки на телефон. "IDТелефона" -- второе поле ссылки на телефон, NULL. > А если ссылаться только на ID "Телефона", то тогда и его первичный ключ > должен состоять только из одного поля? Можно делать телефоны как с одним полем в ПК -- как независимую сущность, так и с двумя полями -- как зависимую. Но тогда "Телефоны" по > определению, данному в литературе, не будут являться зависимыми > сущностями?... Зависимые сущности и зависимые данные -- это не совсем одно и то же. Даже если телефон будет независимой сущностью, а это значит только, что в его ПК не входят ссылки на другие сущности, запись о телефоне может быть связана в БД с записью о организации. Отличие будет только в том, можно ли будет создать телефон без организации (при независимой сущности "Телефон") или нельзя (при зависимой). > Вопрос собственно: как правильнее поступать в данном случае? Можно и так, и так. Тебе только надо посмотреть с точки зрения предметной области, что будет правильнее. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2009, 02:03 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за ответы! Со многими согласен, все точки зрения поняты ;) Подведу промежуточный итог... (варианты с дополнительными таблицами не рассматриваем) 1. Организация и Телефон - независимые сущности , т.е. телефонный номер выдается организации и может теоретически существовать без самой организации. Здесь все вроде просто: Организация: -------------------------- IDОгранизации (Identity) IDТелефонаОсновного -------------------------- PK(IDОгранизации ) FK(IDТелефонаОсновного) _______________________ Телефон организации: -------------------------- IDТелефона (Identity) IDОгранизации -------------------------- PK(IDТелефона) FK(IDОгранизации) _______________________ Никаких вопросов здесь нет, все понятно. Действительно - это тот случай, когда суцщности независимые, а данные - зависимы. 2. Организация и Телефон - зависимые сущности , т.е. телефонный номер организации не может существовать без самой организации на уровне сущностей. Если создавать структуру с помощью CASE-средства (например, MySQL Workbench OSS), то добавление идентифицирующей связи приводит к следующему: Организация: -------------------------- IDОгранизации (Identity) IDОгранизации2 - поле автоматически добавлено при создании ссылки на Телефон IDТелефонаОсновного -------------------------- PK(IDОгранизации ) FK(IDОгранизации2, IDТелефонаОсновного) - внешний ключ включает в себя два поля _______________________ Телефон организации: -------------------------- IDТелефона (Identity) IDОгранизации -------------------------- PK(IDТелефона, IDОгранизации) - составной первичный ключ - зависимая сущность FK(IDОгранизации) _______________________ А вот тут возникает два вопрос: Если все-таки Организация ссылается на Телефон, то как видно выше - в таблице Организация появляется автоматически поле "IDОрганизации2", дублирующее (де-факто) IDОрганизации !!!! это ведь дополнительное место на диске! Была идея удалять это "лишнее" поле, но тогда возникали проблемы с программированием на LINQ (MS .NET Enitity Framework): насколько я понял - необходимо чтобы внешний и первичный ключ полностью соответствовали друг другу. Так вот - стоит ли терпеть это "лишнее" поле? Или нужно любыми способами избавляться от такой неприятной по своим последствиям идентифицирующей связи между этими двумя сущностями? Еще раз спасибо за отклики! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 15:03 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Ivan Shkuropadsky wrote: > Если все-таки Организация ссылается на Телефон, то как видно выше - в > таблице Организация появляется _автоматически_ поле "IDОрганизации2", > дублирующее (де-факто) IDОрганизации !!!! это ведь дополнительное место > на диске! Это -- проблема твоего CASE-средства. Например, ErWin бы так не сделал. Но решается это легко -- поставь у них одинаковые rolename-ы, т.е. у атрибута, генерирующего "IDОрганизации2" нужно поставить rolename "IDОрганизации". Будет одно поле. Если не понятно, что такое "rolename", то нужно просто поле переименовать в "IDОрганизации" CASE их должен слить в одно поле. Если не сольёт -- это баг. Если не даёт сливать, говорит, что уже такое поле есть -- ну, это уже не баг, это -- фича, брак функциональности. Ну, тогда либо руками его переименовывать в выходном скрипте, либо CASE менять. > Так вот - стоит ли терпеть это "лишнее" поле? Или нужно любыми способами > избавляться от такой неприятной по своим последствиям идентифицирующей > связи между этими двумя сущностями? НеТ, не стоит его терпеть. Не нужно оно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 15:19 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
> составной первичный ключ Просто забудьте, что они бывают. Типичный признак структуры данных, спроектированной баранами. Исключительно фактологических баз данных, для которых это можно было бы использовать, в природе не существует, это миф. И структуры данных, и данные темпоральны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 15:27 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
guest_20040621 wrote: > Просто забудьте, что они бывают. Типичный признак структуры данных, > спроектированной баранами. Вовсе нет. Как раз в рассматриваемом случае есть два пути (которые автор только что изложил). С независимой сущностью "Телефон" и -- с зависимой. Во втором случае, если делать правильно, без составного ключа не обойтись. В общем, мнение твоё, guest_20040621, очень экстремистское. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 15:31 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Я знаю два типа логики: Галилея и Аристотеля. Боюсь, MasterZiv, оба прошли мимо Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 16:12 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Ivan Shkuropadsky Организация: -------------------------- IDОгранизации (Identity) -------------------------- PK(IDОгранизации ) _______________________ Телефон организации: -------------------------- IDТелефона (Identity) IDОгранизации прочие атрибуты телефона -------------------------- PK(IDТелефона) FK(IDОгранизации) _______________________ и никаких проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 16:30 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
_мод, вопрос то он задает по тупому чеку хотся, щоб допустим в гриде был "Организация, телефон основной" и при этом хотелось бы этот телефон из лукапа менять по желанию из "Телефоны организации" и при этом НЕ вводить дополнительный признак "основности" в "Телефоны организации" и при этом обойтис только ДДЛ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 18:07 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
guest_20040621Я знаю два типа логики: Галилея и Аристотеля. Боюсь, MasterZiv, оба прошли мимо Вас.Судя по лёгкости перехода на личности, рядом с Вами они тоже не задерживались. Отсутствие логики и вменяемых аргументов всегда можно заменить оскорблениями. Непонятно, зачем временами прикрываетесь Дейтом, он ведь тоже типичный баран. И вместо железной уверенности, что основной ключ может быть только атомарным, блеет какую-то ерунду про фунциональные зависимости подмножеств атрибутов и выбор основного ключа из множества потенциальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 18:12 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
ChA, Дейт и вправду баран. БД НЕ есть модель предметной области. В БД НЕТ макрообъектов (множества типов) с указанием конечного числа отношений построенных на этом множестве, нет описания точки входа в макротип. Ключ в БД просто уникальный идентификатор на всякую непонятную фигню....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 18:24 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
> Судя по лёгкости перехода на личности Дружище, задолбало, когда одни и те же люди дают одни и те же идиотские советы. > зачем временами прикрываетесь Дейтом, он ведь тоже типичный баран Как раз Дейт не баран. Проблема в том, что он пишет для баранов, его работа так и называется "Введение...". Понимаете? Т. е. он очень доступно излагает примитивные вещи, чтобы бараны получили хотя бы поверхностное представление о проектировании. Соответственно, примеры из его работы носят исключительно теоретический характер. И если бы бараны внимательно читали Дейта, то безусловно обратили бы внимание на требование независимости ключа. Доступно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 19:36 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
Кстати, ChA, раз уж Вы взяли на себя смелось рассуждать о логике, вопрос: объясните, почему при проектировании баз данных следует использовать логику в интерпретации Галилея, а не Аристотеля. Опционально: в чем с точки зрения проектирования заключается принципиальная разница между логикой Аристотеля и логикой Галилея? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 20:24 |
|
||
|
Зависимые сущности и идентифицирующие связи: ссылки основной таблицы на записи дочерней
|
|||
|---|---|---|---|
|
#18+
guest_20040621Дружище, задолбало, когда одни и те же люди дают одни и те же идиотские советы.Меня тоже, дружище. Один и тот же участник нередко несёт откровенный вздор без всяких пояснений. Вероятно, считает категоричность достаточным критерием истины. Сдается, мне, что кто-то сильно его обманул. То ли Галилей, то ли Аристотель.guest_20040621Проблема в том, что он пишет для баранов, его работа так и называется "Введение...". Понимаете? Т. е. он очень доступно излагает примитивные вещи, чтобы бараны получили хотя бы поверхностное представление о проектировании. Соответственно, примеры из его работы носят исключительно теоретический характер. И если бы бараны внимательно читали Дейта, то безусловно обратили бы внимание на требование независимости ключа.Браво. В то время как Дейт рассуждает о подмножествах ключевых и неключевых атрибутов, нормализации и функциональных зависимостях, активно пользуясь примерами с составными ключами, некто из независимости ключа легко выводит его атомарность. Аристотель с Галилеем в этот момент явно были в другом месте.guest_20040621объясните, почему при проектировании баз данных следует использовать логику в интерпретации Галилея, а не Аристотеля. Опционально: в чем с точки зрения проектирования заключается принципиальная разница между логикой Аристотеля и логикой Галилея?Если этот вопрос Вас действительно сильно беспокоит, то настоятельно рекомендую погуглить, можете даже начать с Википедии. Доступно излагаю ? Сами справитесь ? Потом доложите. Ну, а если не одолеете, ничего страшного, просто не чешите, само пройдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 00:26 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36207974&tid=1543054]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 428ms |

| 0 / 0 |
