(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "ERwin"

Обсуждение вопросов, связанных с компанией Computer Associates, ее продуктами ERwin Data Modeler, ERwin Web Portal, ARCserve и др.

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

Тема: Функциональные зависимости в ERwin

Автор:  Артем Дата: 22.05.2002 15:19
>...но все-таки хочется разобраться :)

Мне уже тоже :)

>Дело в том, что паре х1, х2 соответствует не одно значение х12, а вот значению х12 может соответствовать лишь одно значение пары х1,х2, которая по сути представляет собой начало и конец диапазона цифр, в который могут входить несколько цифровых значений х12. При этом в отношении R1 важен атрибут x3, определяемый отношением R2. Как быть теперь? :)


А, т.е. зависимость множественная: {x1, x2} ->> x12
Тогда декомпозицию наверное надо проводить так:

R1: ([x1, x2], x4)
R2: ([x1, x2, x12]) - определяет все связки (многие-ко-многим), например: (1, 5, 2), (1, 5, 3), (1, 5, 4)
R3: ([x12], x3)

Можно также ввести новый аттрибут x0, как идентификатор диапазона:

R1: ([x0], [x1, x2], x4) - [x1,x2] стал альтернативным ключем, а [x0] - первичным
R2: ([x0, x12])
R3: ([x12], x3)

С аттрибутом x3 ничего не понял... зачем он важен в отношении R1? Это же хар-ка значения x12.
Особое внимание придется обратить на обновления, они будут далеко не тривиальными. Скажем,
при модификации x1(x2) в R1, надо удалить/добавить соотвествующие записи в/из R2.
Ответить на сообщение »
 
Автор:  Настя Дата: 22.05.2002 06:41
Извините, я, наверное, запутала и Вас и себя, но все-таки хочется разобраться :)

>ФЗ "не знает" смысл, который вкладывают в нее. Вы просто сказали: x12 зависит (любым способом, арифметика - частный случай) от x1 и x2, причем паре x1 и x2 соотвествует строго одно значение x12. Этого достаточно для ФЗ. Если бы паре x1 и x2 соотвествовало множество значений, причем оно не зависело бы от других аттрибутов - это была бы Множественная ФЗ, но все равно ФЗ :)

Дело в том, что паре х1, х2 соответствует не одно значение х12, а вот значению х12 может соответствовать лишь одно значение пары х1,х2, которая по сути представляет собой начало и конец диапазона цифр, в который могут входить несколько цифровых значений х12. При этом в отношении R1 важен атрибут x3, определяемый отношением R2. Как быть теперь? :)
Ответить на сообщение »
 
Автор:  Артем Неганов Дата: 21.05.2002 17:33
>По-моему, в R1 добавлять атрибут x12 нельзя - тогда нарушится 1НФ - атомарность атрибутов,

Атомарность лишь подразумевает, что элементы доменов неделимы, т.е. все зависит от того, что выбирать в качестве домена. Если x1, x2 и x12 определены на домене, который есть "множество всех строк символов стандартного набора", то никакой неделимости нет...

> ведь х1,х2 и х12 по сути есть одно и тоже.

ФЗ "не знает" смысл, который вкладывают в нее. Вы просто сказали: x12 зависит (любым способом, арифметика - частный случай) от x1 и x2, причем паре x1 и x2 соотвествует строго одно значение x12. Этого достаточно для ФЗ. Если бы паре x1 и x2 соотвествовало множество значений, причем оно не зависело бы от других аттрибутов - это была бы Множественная ФЗ, но все равно ФЗ :)

>Поэтому появилась новая идея - убрать отношение R2 целиком и полностью, заменив его просто функцией или хранимой процедурой на уровне СУБД, так как из всего отношения R2 интересует только атрибут x3. Как Вы считаете, верно ли будет такое действие?

Можно, получится отношение, как минимум в 3НФ (даже в 4НФ):
R1: ([x1, x2], x3, x4) с такими ФЗ
1) {x1, x2} -> x3
2) {x1, x2} -> x4

Только ведь не просто так был введен x12, верно? Представьте, что x12 = (x1+x2) mod 10, и что кол-во кортежей R1 составляет 10^6, а размер x3 = 10 байт. Таким образом вы теряете на этом выкидывании: ~ 10^6*10 ~ 10Mb. Ну я понимаю, диски сейчас большие делают, чего место жалеть :) Только производительность все равно упадет - больше физический чтений диска.
И второй момент, если 10^6 раз вычислить достаточно сложную ф-ю, каковой могла бы являться f(x1,x2), это также отрицательно сказалось бы на производительности...

Так что смотрите, что вам дороже :)
Ответить на сообщение »
 
Автор:  Настя Дата: 21.05.2002 16:03
Артем Неганов пишет 20.05:
>В таком случае либо придется "забыть" о связи x1,x2 и x12 - декомпозиция произведена неправильно, либо переделать-таки таблицы.
>Еще раз говорю: надо добавить в R1 аттрибут x12, и убрать из R1 x3 (если x3 в R1 эквивалентен x3 в R2). Т.е. x12 в R1 станет FK.
По-моему, в R1 добавлять атрибут x12 нельзя - тогда нарушится 1НФ - атомарность атрибутов, ведь х1,х2 и х12 по сути есть одно и тоже. Поэтому появилась новая идея - убрать отношение R2 целиком и полностью, заменив его просто функцией или хранимой процедурой на уровне СУБД, так как из всего отношения R2 интересует только атрибут x3. Как Вы считаете, верно ли будет такое действие?
Ответить на сообщение »
 
Автор:  Артем Неганов Дата: 20.05.2002 16:13
>Но как быть с такой систуацией: есть два отношения
>R1={(x1,x2),x3,x4}, где (x1, x2) - первичный ключ
>R2={(x12),x3,x5}, где (x12) - первичный ключ - по сути дела равен объединению x1 и x2 (ab=aUb)

В таком случае либо придется "забыть" о связи x1,x2 и x12 - декомпозиция произведена неправильно, либо переделать-таки таблицы.
Еще раз говорю: надо добавить в R1 аттрибут x12, и убрать из R1 x3 (если x3 в R1 эквивалентен x3 в R2). Т.е. x12 в R1 станет FK.
Ответить на сообщение »
 
Автор:  Настя Дата: 18.05.2002 10:43
Спасибо за консультацию.
Но как быть с такой систуацией: есть два отношения
R1={(x1,x2),x3,x4}, где (x1, x2) - первичный ключ
R2={(x12),x3,x5}, где (x12) - первичный ключ - по сути дела равен объединению x1 и x2 (ab=aUb)
Как в данном случае избавиться от избыточности, учитывая, что в обоих отношениях есть атрибут x3?
Ответить на сообщение »
 
Автор:  Артем Неганов Дата: 17.05.2002 15:47
А, понятно.. Ну тогда допустим есть исходное отношение
R0: ([x1, x2], x12 , x3, x4), где определены ФЗ:

1) {x1, x2}->x12 т.е. x12 = f(x1, x2), скажем x12 = x1 + x2
2) {x1, x2}->x3
3) {x12}->x4

Поскольку налицо транзитивная зависимость 1-3, надо
разбивать R0. Декомпозиции R0 даст:

R1: ([x1, x2], x12, x3)
R2: ([x12], x4)

Вот и всё. Если под x1, x2, x3 и x4 понимать множества аттрибутов, то как раз получается Ваша задача.
Ответить на сообщение »
 
Автор:  Настя Дата: 17.05.2002 07:01
Спасибо за ответ, но я имела в виду зависимость, когда при связи двух таблиц первичный ключ первой таблицы (одно поле) представляет собой результат вычисления функции (sin, cos или что-то более сложное :)) от первичного ключа второй таблицы (несколько полей), при этом не очевиден способ избавления от подобной ситуации.
Ответить на сообщение »
 
Автор:  Артем Неганов Дата: 16.05.2002 20:26
Настя пишет 15.05:
>Подскажите, пожалуйста, как в ERwin можно отразить функциональную зависимость между таблицами (первичный ключ одной таблицы функционально зависит от первичного ключа другой).

Под функциональной зависимостью (ФЗ), понимается зависимость "один-ко-многим" между подмножестванми аттрибутов ОДНОГО отношения.

Что-то Вы мудрите, сударыня ;)
Ответить на сообщение »
 
Автор:  Настя Дата: 15.05.2002 08:47
Подскажите, пожалуйста, как в ERwin можно отразить функциональную зависимость между таблицами (первичный ключ одной таблицы функционально зависит от первичного ключа другой). Понимаю, что это нарушение правила нормализации (кстати, какого?), но ведь бывают ситуации, когда скорость доступа к данным дороже, а схему сделать надо.
Ответить на сообщение »
 

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

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
erwin Data Modeler Workgroup Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
erwin Data Modeler Standard Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
erwin Data Modeler Navigator Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
Bamboo
SAP® Crystal Presentation Design 2016 WIN INTL NUL
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
Программирование на Microsoft Access
eManual - электронные книги и техническая документация
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Русификация рамки IDEF0 BPWin4 (41)
Возможно ли русифицировать рамку диаграмм в BPWin4?
 
Проектирование курсовой работы в BPWin (32)
Здравствуйте.Подскажите пожалуйста где можно найти примерное проектирование курсовой работы...
 
Русификация ERWin (29)
Здравствуйте! Используем версию ERwin 4.1 в сети,но при создании логической модели вместо...
 
применение CA Process Modeller (BPWin) и связь моделей BPWin и ErWin (1)
Не очень понятна связь прогр продуктов CA Process Modeller (BPWin) и CA Data Modeller...
 
Erwin 3.5.2 (6)
Где скачать или кто может поделиться прогой Erwin 3.5.2? И как открыть файл из 3.5.2 в Erwin...
 
 
 



    
rambler's top100 Rambler's Top100