Ноу Інти, лекція, створення відносин

Анотація: При проектуванні інформаційних систем предметна область відображається моделями даних декількох рівнів. У будь-якому випадку повинні бути присутніми логічний і фізичний рівні. На логічному рівні об'єкти в просторі станів є сутностями і пов'язані між собою через відносини. На фізичному рівні сутності представляються у вигляді таблиць, а відносини - у вигляді обмежень зовнішнього ключа. На занятті присутній великий теоретичний матеріал, що дозволяє більш глибоко зрозуміти принципи побудови відносин, розібратися в їх типах і визначити, який тип відносин найбільш підходить для вирішення практичних завдань.

Ви навчитеся:

  • створювати відношення;
  • змінювати ставлення;
  • перейменовувати відношення;
  • видаляти відношення.

Поняття про відносини

Більшість баз даних призначені для моделювання певної частини реального світу, яку називають простором станів (problem space). На логічному рівні об'єкти в просторі станів є сутностями (entities) і пов'язані між собою через відносини (relationships). На фізичному рівні Microsoft SQL Server являє суті у вигляді таблиць, а відносини - у вигляді обмежень зовнішнього ключа. які визначають зовнішні ключі.

Багато хто думає, що реляційні бази даних називаються "реляційними" ( "relational"), оскільки між таблицями встановлюються відносини (relationships). Насправді ця назва походить від англійського терміна "relation", що означає "відношення", який був введений доктором Е.Ф.Коддом для опису об'єкта, який в SQL Server реалізований у вигляді таблиці.

Існує три типи відносин: один-до-одного. при якому кожен рядок таблиці пов'язана з нулем або одним рядком іншої таблиці; один-ко-многим. при якому кожен рядок таблиці пов'язана з нулем, однією або кількома рядками іншої таблиці; і багато-до-багатьох, при якому кожен рядок першої таблиці пов'язана з нулем, однією або кількома рядками другої таблиці, а кожен рядок другої таблиці може бути пов'язана з нулем, однією або кількома рядками першої таблиці.

Відносини один-до-одного зустрічаються досить рідко. Як правило, вони використовуються в разі, коли набір атрибутів застосовується до невеликої кількості примірників сутності. Наприклад, лише мала частина колективу співробітників компанії може бути учасниками команди з софтболу. Проектувальник бази даних може помістити всі атрибути софтбольного команди в окрему таблицю, а потім створити відношення один-до-одного між нею і таблицею співробітників.

З іншого боку, відносини один-ко-многим досить широко поширені. У нашому прикладі бази даних відношення один-ко-многим існує між таблицею PlantParts і таблицею Oils - будь-який рядок в таблиці PlantParts може бути пов'язана з нулем, однією або кількома рядками таблиці Oils.

Відносини багато-до-багатьох також зустрічаються досить часто. У нашому прикладі ставлення багато-до-багатьох існує між таблицею Properties і таблицею Oils - будь-який вид масла може мати кілька властивостей, а будь-яку властивість може ставитися до декількох видів масла.

SQL Server. подібно до інших систем керування базами даних, оформляє відносини один-до-одного і один-до-багатьох безпосередньо, а для реалізації відносин багато-до-багатьох використовує вузлову таблицю. Вузлова таблиця складається з первинних ключів таблиць з кожної зі сторін відносини. Ставлення один-ко-многим встановлюється між вузловий таблицею і кожної з оригінальних таблиць. Відносини багато-до-багатьох вирішуються з використанням вузлової таблиці.

зворотні відносини

Більшість відносин в базі даних встановлюють між двома різними таблицями. Однак буває, коли таблиця зв'язується сама з собою або через ставлення один-до-одного, або через ставлення один-ко-многим. Подібні відносини називаються зворотними відносинами.

Зворотні відносини найчастіше застосовуються для реалізації ієрархій. Типовий приклад - ієрархія співробітників в організації. Співробітник може бути підпорядкований менеджеру, а менеджер, в свою чергу, може як співробітник мати вищого менеджера. Це відношення оформляється шляхом включення первинного ключа таблиці співробітників в якості шпальти таблиці і установки поворотного відносини один-ко-многим.

Ноу Інти, лекція, створення відносин

На рівні таблиці відношення оформляється шляхом включення унікального ідентифікатора, зазвичай первинного ключа, з таблиці на стороні одного (головну таблицю, або таблицю первинного ключа) в таблицю на стороні багатьох (залежну таблицю, або таблицю зовнішнього ключа). Цей ідентифікатор називається зовнішнім ключем.

Примітка. Унікальний ідентифікатор, який використовується в якості зовнішнього ключа, зазвичай є первинним ключем головною таблиці, проте він також може бути будь-яким стовпцем або групою стовпців, які були оголошені унікальними.

SQL Server може контролювати відносини, які ви встановили в базі даних, здійснюючи обслуговування цілісності відносин. За замовчуванням SQL Server буде відкидати будь-які зміни в первинному ключі рядки з головної таблиці, яка має пов'язані рядки в залежною таблиці.

Увага. Деякі схеми баз даних можуть бути досить складними. Використання каскадних вилучень і змін може полегшити супровід складних структур даних, але SQL Server вимагає, щоб каскадирование не було круговим. Наприклад, видалення рядка в таблиці А може привести до видалення рядка в таблиці В, що, в свою чергу, викличе видалення рядка в таблиці С. Однак не допускається встановлювати такий режим каскадування, при якому видалення рядка в таблиці З призведе до видалення рядка в таблиці А.

Схожі статті