ини в конкретний момент часу (по суті - це збережені кортежі відносини).
Властивості відносин
. Немає однакових кортежів. Це випливає з того, що тіло відносини визначено як математичне безліч кортежів, а безліч за визначенням не містить однакових елементів.
. Кортежі не впорядковані. Це випливає також з того, що тіло відносини визначено як математичне безліч кортежів. А математичне безліч за визначенням не впорядковано. Саме тому у відношенні не існує таких понять, як «наступний», «попередній», «другий кортеж» і т.п.
. Атрибути не впорядковані. Це випливає з того, що заголовок відносини визначений як математичне безліч атрибутів. А безліч не впорядковано за визначенням. Тобто знову немає понять «перший атрибут», «наступний атрибут» і т.п.
. Всі значення атрибутів неподільні. Це наслідок того, що кожен атрибут визначений на своєму домені, а домен - безліч неподільних скалярів.
Цілісність реляційних даних
У будь-який момент часу будь-яка БД містить деякі певні значення атрибутів, які висловлює конкретний стан об'єкта реального світу. Отже, БД потребує визначення правил цілісності, необхідних для того, щоб дані не вступили в протиріччя з реальним світом. Такі правила цілісності є специфічними для кожної БД. Це, по суті, інформування СУБД про обмеження реального світу, Наприклад, ім'я - тільки текстове значення, значення ваги, зросту - тільки позитивні і т.п.
Але таких правил цілісності недостатньо - не менш важливо, щоб дані всередині самої БД не суперечили один одному.
Для запобігання подібних ситуацій існують загальні правила цілісності реляційних даних. Ці правила пов'язані з первинними і зовнішніми ключамі.значенія
Ускладнення при забезпеченні цілісності даних можуть бути викликані невизначеними або відсутніми значеннями. Наприклад, в БД за творами мистецтва не відомий автор картини; в БД Школа деякі діти - сироти (немає батьків) і т.п.
Для вирішення проблем відсутності значень Код запропонував ввести спеціальні мітки, названі ним Null-значеннями, які визначив так: якщо даний кортеж має Null-значення даного атрибута, то це означає, що в ньому значення атрибута відсутня.
Це не те ж, що числовий 0 або пробіл, це взагалі не значення, а тільки мітка - позначення відсутності будь-якого значення.
Більшість сучасних реляційних СУБД підтримують Null-значення.
З Null-значеннями пов'язано друге правило цілісності.
Правило цілісності об'єктів:
Жоден елемент первинного ключа базового ставлення не може бути Null-значенням.
Це правило пояснюється наступним: кортежі відносин відповідають об'єктам реального світу; за визначенням ці об'єкти помітні, тобто деяким чином опознаваеми; первинні ключі виконують функцію унікальної ідентифікації об'єктів; якщо неможливо ідентифікувати об'єкт, то не можна сказати чи існує він взагалі.
Необхідно зробити деякі уточнення за цим правилом:
) це правило стосується тільки базових відносин (тобто не обчислюваних, чи не похідних);
) правило застосовується лише для первинних ключів, а для аль...