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

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

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

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

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

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

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

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

Это с каких таких грибов FK не нужен?
то есть
1. можно удалить запись, на которую ссылается из связанной таблицы
2. можно ссылается из связанной таблицы на не существующую запись
???
...
Рейтинг: 0 / 0
Отличие связи 1:1 и 1:М в физической модели данных
    #34035905
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KGP andrey_anonymous PD_juniorВ связи [0,1]:[0,1]
Хм... такая связь не требует ничего кроме первичных или уникальных ключей.
Т.е. FK вообще не нужен.
1. можно удалить запись, на которую ссылается из связанной таблицы
2. можно ссылается из связанной таблицы на не существующую запись
Если в перерыве между приступами грибного хохота немножко задумаетесь, то обнаружите, что эти случаи соответствуют связи [0,1]:[0,1].
...
Рейтинг: 0 / 0
Отличие связи 1:1 и 1:М в физической модели данных
    #34036039
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Отличие связи 1:1 и 1:М в физической модели данных
    #34036062
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Отличие связи 1:1 и 1:М в физической модели данных
    #34036567
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous ModelRЭ... два встречных ключа это уже два 1:1.
Мнээээ... Я был неверно интерпретирован.
Сорри, действительно слегка не в тему. Я про то, что каждой бабе по собственному мужику, а мужику по собственной бабе, а тема похоже про каждому мужику по собственному пиву, жене и любовнице, но в отдельных таблицах.
...
Рейтинг: 0 / 0
Отличие связи 1:1 и 1:М в физической модели данных
    #34036772
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Если в перерыве между приступами грибного хохота немножко задумаетесь, то обнаружите, что эти случаи соответствуют связи [0,1]:[0,1].

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

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

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

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

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

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

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

? и где тут 0 ?

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

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


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