SaveText.Ru

Untitled
  1. 1. Связь М:М
  2.  
  3. По правилам преобразования обычной сущности, для каждой сущности создается отдельная таблица, содержащая все её атрибуты:
  4. Сущность1 (Ключ1, Атрибут1, Атрибут2)
  5. Сущность2 (Ключ2, Атрибут3, Атрибут4)
  6. Для связи создается отдельная таблица, содержащая ключевые поля каждой сущности, участвующей в связи, и собственные атрибуты связи, если таковые имеются. В названии обычно отражают, какие именно сущности связываются, или называют новую таблицу именем связи.
  7. Сущ1Сущ2 (Ключ1, Ключ2, Атрибут5)
  8.  2. Связь 1:М
  9.  
  10. 1 способ. Точно так же, как и в случае М:М, создаются отдельные таблицы для сущностей и отдельная таблица для связи, содержащая ключевые поля каждой сущности, участвующей в связи. Первичным ключом будет ключ второй сущности.
  11. Сущность1 (Ключ1,Атрибут1, Атрибут2)
  12. Сущность2 (Ключ2,Атрибут3, Атрибут4)
  13. Сущ1Сущ2 (Ключ1, Ключ2)
  14. Этот способ предпочтительнее использовать в том случае, если связь не является «ровно к одному», то есть не все экземпляры сущностей участвуют в связи.
  15. 2 способ. Новая таблица для связи не создается, а в таблицу дочерней сущности добавляют ключевые поля родительской сущности (в первичный ключ дочерней сущности они входить не будут!). Ключевые поля родительской сущности представляют собой внешний ключ для дочерней сущности.
  16. Сущность1 (Ключ1,Атрибут1, Атрибут2)
  17. Сущность2 (Ключ2, Атрибут3, Атрибут4, Ключ1)
  18. Этот способ предпочтительнее использовать в том случае, если связь является связью «ровно к одному» в сторону родительской сущности, то есть все экземпляры дочерней сущности участвуют в связи. В этом случае поле внешнего ключа никогда не будет пустым.
  19. 3. Связь 1:1
  20. 1 способ. Точно так же, как и в случае М:М, создаются отдельные таблицы для сущностей и отдельная таблица для связи, содержащая ключевые поля каждой сущности, участвующей в связи.
  21. Первичным ключом этой таблицы будет ключ любой сущности.
  22.  
  23. Сущность1 (Ключ1,Атрибут1, Атрибут2)
  24. Сущность2 (Ключ2,Атрибут3, Атрибут4)
  25. Сущ1Сущ2 (Ключ1, Ключ2)илиСущ1Сущ2 (Ключ1, Ключ2)
  26. Этот способ предпочтительнее использовать в том случае, если связь не является связью «ровно к одному», то есть не все экземпляры сущностей участвуют в связи.
  27. 2 способ. Точно так же, как и во 2 случае 1:М, новая таблица для связи не создается, а в таблицу одной из сущностей (будем считать ее дочерней) добавляют ключевые поля другой сущности (будем считать ее родительской).
  28. Сущность1 (Ключ1,Атрибут1, Атрибут2)
  29. Сущность2 (Ключ2, Атрибут3, Атрибут4, Ключ1)
  30. Если связь не является связью «ровно к одному» по отношению к родительской таблице, то есть не все экземпляры дочерней сущности участвуют в связи, поле внешнего ключа в некоторых записях может быть пустым.
  31. 3 способ. Две таблицы для сущностей, связанных соотношением 1:1, объединяются в одну. Ключом новой таблицы может быть комбинация ключей обеих таблиц. Если хотя бы в одном направлении связь «ровно к одному», то ключ этой сущности можно считать ключом объединенной таблицы.
  32. Сущ1Сущ2(Ключ1, Атрибут1, Ключ2, Атрибут2)
  33. или, возможно, Сущ1Сущ2(Ключ1, Атрибут1, Ключ2, Атрибут2),
  34. или Сущ1Сущ2(Ключ1, Атрибут1, Ключ2, Атрибут2).
  35. Примечание 1:
  36. Для связи сущности с самой собой применяются те же правила, но так как одна и та же сущность участвует в связи дважды, ключевые поля должны войти в одну и ту же таблицу два раза. Поэтому приходится переименовывать один из ключей.
  37.  
  38.  
  39.  

Share with your friends:

Распечатать