Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отличие связи 1:1 и 1:М в физической модели данных / 24 сообщений из 24, страница 1 из 1
04.10.2006, 18:48
    #34032954
PD_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
Добрый вечер!

При генерации физ. модели получается тот же foreign key в дочерней таблице. Делал в PowerDesigner'e. Так и должно быть?

Спасибо.
...
Рейтинг: 0 / 0
04.10.2006, 18:57
    #34032979
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
PD_junior
При генерации физ. модели получается тот же foreign key в дочерней таблице. Делал в PowerDesigner'e. Так и должно быть?
Спасибо.

у вас вопрос по сути PowerDesigner? или по проектированию?

1:1 по идее у дочерней (на поля для fk) тоже необходимо 'соблюсти' уникальность ... а при 1:M нет.
...
Рейтинг: 0 / 0
05.10.2006, 10:56
    #34033792
PD_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
Смысл понятен, скорее вопрос по PowerDesigner'у и Oracle.
Как реализовать эту уникальность foreign key. PD генерит скрипт для связи 1:1 как обычный foreign key, и никакого соблюдения уникальности там не видно.
...
Рейтинг: 0 / 0
05.10.2006, 11:05
    #34033834
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
Физически 1:1 означает два уникальных ключа в той таблице, где присутствуют оба набора атрибутов (оба ID как правило) и один из них уникален.
...
Рейтинг: 0 / 0
05.10.2006, 11:14
    #34033866
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
Вообще 1:1 - экзотика.
Подумайте еще раз - почему не одна сущность?
Если все-таки надумаете делать именно связь, то определяйтесь:
1:[0..1] - все как у Вас, но добавьте ограничение целостности Unique not null на атрибуты, входящие в FK.

1:1 - тут будет повеселее. Ссылайте FK друг на друга (два PK, два "встречных" FK).
Вставить что-либо в такие таблицы будет непросто, но специально ради такого случая oracle предоставляет механизм отложенной проверки ограничений (deferrable)
...
Рейтинг: 0 / 0
05.10.2006, 12:22
    #34034169
PD_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
Мне не нужны два встречных ключа в обоих таблицах.
В связи [0,1]:[0,1] можно выставить Dominant role, чтобы внешний ключ создавался только на одной стороне. А потом добавить ограничение unique.
Тогда можно просто использовать отношение [0,1]:[1,М] ведь и потом навесить unique, получится ведь тоже самое.
Просто пока не нашел как в PowerDesigner'e это указать, чтоб автомат. в скрипте было.

Ok. Более менее понятно. Спасибо.
...
Рейтинг: 0 / 0
05.10.2006, 13:23
    #34034530
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
PD_juniorВ связи [0,1]:[0,1]
Хм... такая связь не требует ничего кроме первичных или уникальных ключей.
Т.е. FK вообще не нужен.
...
Рейтинг: 0 / 0
05.10.2006, 18:07
    #34035775
superbluesman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
To andrey_anonymous:

вовсе даже не экзотика:
1. Положим, Постащик своего ядра (базы) отвечает за свою таблицу, а со стороны заказчика ИТ-служба к этой таблице подвязывет таблицу с доп. полями.
2. В отдельную таблицу (что в отношении 1:1) выносятся редко запрашиваемые данные и/или тяжёлые поля
...
Рейтинг: 0 / 0
05.10.2006, 18:53
    #34035877
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous PD_juniorВ связи [0,1]:[0,1]
Хм... такая связь не требует ничего кроме первичных или уникальных ключей.
Т.е. FK вообще не нужен.

Это с каких таких грибов FK не нужен?
то есть
1. можно удалить запись, на которую ссылается из связанной таблицы
2. можно ссылается из связанной таблицы на не существующую запись
???
...
Рейтинг: 0 / 0
05.10.2006, 19:10
    #34035905
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGP andrey_anonymous PD_juniorВ связи [0,1]:[0,1]
Хм... такая связь не требует ничего кроме первичных или уникальных ключей.
Т.е. FK вообще не нужен.
1. можно удалить запись, на которую ссылается из связанной таблицы
2. можно ссылается из связанной таблицы на не существующую запись
Если в перерыве между приступами грибного хохота немножко задумаетесь, то обнаружите, что эти случаи соответствуют связи [0,1]:[0,1].
...
Рейтинг: 0 / 0
05.10.2006, 20:40
    #34036039
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymousВообще 1:1 - экзотика.
Подумайте еще раз - почему не одна сущность?
Если все-таки надумаете делать именно связь, то определяйтесь:
1:[0..1] - все как у Вас, но добавьте ограничение целостности Unique not null на атрибуты, входящие в FK.

1:1 - тут будет повеселее. Ссылайте FK друг на друга (два PK, два "встречных" FK).
Вставить что-либо в такие таблицы будет непросто, но специально ради такого случая oracle предоставляет механизм отложенной проверки ограничений (deferrable)
Э... два встречных ключа это уже два 1:1.
A
a_id b_id132132B
b_id a_id132132
...
Рейтинг: 0 / 0
05.10.2006, 20:59
    #34036062
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
ModelRЭ... два встречных ключа это уже два 1:1.
Мнээээ... Я был неверно интерпретирован.
Имелось ввиду
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
SQL> create table ane_a(id number primary key);

Table created

SQL> create table ane_b(id number primary key);

Table created

SQL> alter table ane_a add constraint ane_a_fk foreign key(id) references ane_b(id) deferrable initially deferred;

Table altered

SQL> alter table ane_b add constraint ane_b_fk foreign key(id) references ane_a(id) deferrable initially deferred;

Table altered

SQL> insert into ane_a values( 1 );

 1  row inserted

SQL> commit;

commit

ORA- 02091 : transaction rolled back
ORA- 02291 : integrity constraint (CBOSS30.ANE_A_FK) violated - parent key not found

SQL> insert into ane_b values( 1 );

 1  row inserted

SQL> commit;

commit

ORA- 02091 : transaction rolled back
ORA- 02291 : integrity constraint (CBOSS30.ANE_B_FK) violated - parent key not found

SQL> insert into ane_a values( 1 );

 1  row inserted

SQL> insert into ane_b values( 1 );

 1  row inserted

SQL> commit;

Commit complete

...
Рейтинг: 0 / 0
06.10.2006, 09:25
    #34036567
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous ModelRЭ... два встречных ключа это уже два 1:1.
Мнээээ... Я был неверно интерпретирован.
Сорри, действительно слегка не в тему. Я про то, что каждой бабе по собственному мужику, а мужику по собственной бабе, а тема похоже про каждому мужику по собственному пиву, жене и любовнице, но в отдельных таблицах.
...
Рейтинг: 0 / 0
06.10.2006, 10:35
    #34036772
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous
Если в перерыве между приступами грибного хохота немножко задумаетесь, то обнаружите, что эти случаи соответствуют связи [0,1]:[0,1].

Уподобляться вам фразой 'сам дурак' не буду.
Структуру со связью [0,1]:[0,1] без fk в студию.

ps: а то, что-то в примере наблюдается ...
Код: plaintext
ane_a_fk foreign key(id) references 
...
Рейтинг: 0 / 0
06.10.2006, 13:09
    #34037429
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGPСтруктуру со связью [0,1]:[0,1] без fk в студию.
ps: а то, что-то в примере наблюдается ...
Код: plaintext
ane_a_fk foreign key(id) references 

Пример - суть честный 1:1, обязательный с двух сторон.
Связь [0,1]:[0,1] - необязательная с обоих сторон.
Разницу ощущаем?
...
Рейтинг: 0 / 0
06.10.2006, 15:21
    #34038085
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous
Разницу ощущаем?
Хм ... по факту совпадения? хотя в верности всё равно сомнения. слишком условна связь.
...
Рейтинг: 0 / 0
06.10.2006, 15:30
    #34038125
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGPслишком условна связь.
Именно. Симметричная необязательная связь - весьма условная штука :)
...
Рейтинг: 0 / 0
09.10.2006, 10:53
    #34040889
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous KGPслишком условна связь.
Именно. Симметричная необязательная связь - весьма условная штука :)

0:M не превращаете в такой же принцип?
...
Рейтинг: 0 / 0
09.10.2006, 13:38
    #34041537
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGP andrey_anonymous KGPслишком условна связь.
Именно. Симметричная необязательная связь - весьма условная штука :)
0:M не превращаете в такой же принцип?
Что Вы имели ввиду под:
- 0:М
- превращением в принцип
...
Рейтинг: 0 / 0
09.10.2006, 13:44
    #34041566
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous
0:M не превращаете в такой же принцип?
Что Вы имели ввиду под:
- 0:М
- превращением в принцип[/quot]

T1 {Id (PK), Name}
T2 {Id (PK), T1Id, Name}

если T2.[T1Id] есть такой же, как в T1.[Id], то ...
...
Рейтинг: 0 / 0
09.10.2006, 14:03
    #34041641
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGP andrey_anonymous
0:M не превращаете в такой же принцип?
Что Вы имели ввиду под:
- 0:М
T1 {Id (PK), Name}
T2 {Id (PK), T1Id, Name}

? и где тут 0 ?
...
Рейтинг: 0 / 0
09.10.2006, 14:22
    #34041716
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous KGP andrey_anonymous
0:M не превращаете в такой же принцип?
Что Вы имели ввиду под:
- 0:М
T1 {Id (PK), Name}
T2 {Id (PK), T1Id, Name}

? и где тут 0 ?

В том, что не будет из T2.[T1Id] равных некоему T1.[Id]
...
Рейтинг: 0 / 0
09.10.2006, 14:24
    #34041722
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
KGP andrey_anonymous? и где тут 0 ?
В том, что не будет из T2.[T1Id] равных некоему T1.[Id]
А если будет - это нарушение ограничения целостности?
...
Рейтинг: 0 / 0
09.10.2006, 15:12
    #34041912
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие связи 1:1 и 1:М в физической модели данных
andrey_anonymous KGP andrey_anonymous? и где тут 0 ?
В том, что не будет из T2.[T1Id] равных некоему T1.[Id]
А если будет - это нарушение ограничения целостности?

без fk ... по аналогии с 0:1 - 0:1 ... 0:M - 0:M вообщем та же условная связь.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отличие связи 1:1 и 1:М в физической модели данных / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]