КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Ограничения целостностиНеотъемлемой частью реляционной модели является требования целостности базы данных. Важной функцией любой СУБД является обеспечение под- держки базы данных в согласованном состоянии. Каждое обновление информации должно удовлетворять структурным и семантическим ограничениям схемы базы данных. Обеспечение согласованности данных является особенно важным при многопользовательском режиме доступа к базе данных. Рассмотрим два базовых требования целостности реляционных базданных: требование целостности сущностей; требование целостности по ссылкам. Требование целостности сущностей. В реляционной модели каждому типу объектов предметной области соответствует одно или несколько отношений. Экземплярам объектов соответствуют кортежи отношений. Каждый экземпляр объекта должен быть отличим от любого другого. Следовательно каждый кортеж отношения должен быть уникальным, т.е. в любом отношении должен существовать атрибут (или совокупность атрибутов), значения которого для каждого кортежа различны. Это требование выполняется автоматически при выполнении базовых свойств отношений. Поскольку отношение - это множество, а множества по определению не содержат совпадающих элементов, то никакие два кортежа в произвольный момент времени не могут совпадать. Таким обра- зом полный набор значений всех атрибутов однозначно идентифицирует запись в таблице. Минимальный набор атрибутов отношения, обладающих тем же свойством называется первичным ключом. Все значения атрибутов, участвующих в первичном ключе должны быть полностью определены. Требование целостности по ссылкам. Экземпляры сложных сущностей реального мира могут представляться в реляционной модели базы данных не- сколькими кортежами нескольких отношений. Если отношение R2 связано сотношением R1 (базовое отношение, для которого определен первичный ключ), то отношение R2 обязано иметь внешний ключ, представляющий собой атрибут (или комбинацию атрибутов), значения которых обязательно должны совпадать со значениями первичного ключа R1, причем внешний ключ и соответствующий ему первичный ключ должны быть определены на одних и тех же доменах. Правило целостности по ссылкам гласит: если базовое отношение R2 имеет внешний ключ F, соответствующий первичному ключу K отношения R1, то каждое значение F должно быть: либо равным какому-либо значению K; либо быть полностью неопределенным. Значения атрибутов внешнего ключа либо совпадают с соответствующим первичным ключом, либо полностью не определены, причем возмож- ность последнего определяется конкретной предметной областью, оперирующей данными сущностями. При проектировании базы в зависимости от предметной задачи необходимо определить: Может ли внешний ключ принимать неопределенные значения. Что должно происходить при попытке удаления кортежа отношения, на который есть ссылки другого отношения (операция отверга- ется, обе сущности удаляются). Как обновляются внешние ключи (внешний ключ принимает неопределенное значение). Если ядро СУБД не поддерживает целостность реляционной модели, эта поддержка осуществляется на прикладном уровне программированием соответствующих процедур, реализуемых либо непосредственно в программном коде, либо через механизм хранимых процедур и триггеров. 9. Реляційна модель. Потенційні ключі. Вы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку. Обычно, этот столбец содержит номер — например, номер, назначаемый каждому из телефонной книги. Конечно, вы могли бы использовать имя, но возможно что имеется несколько Celia Brock; и в этом случае, вы не будете иметь другого способа чтобы отличить этих людей друг от друга. Вот почему номера так необходимы. Такой уникальный столбец (или уникальная группа столбцов), используемый чтобы идентифицировать каждую строку и хранить все строки отдельно, называются — первичными ключами таблицы. Первичные ключи таблицы важный элемент в структуре базы данных. Они — основа вашей системы записи в файл; и когда вы хотите найти определенную строку в таблице, вы ссылаетесь к этому первичному ключу. Кроме того, первичные ключи гарантируют, что ваши данные имеют определенную целостность. Если первичный ключ правильно используется и поддерживается, вы будете знать что нет пустых строк таблицы и что каждая строка отличается от любой другой строки. 10. Реляційна модель. Зовнішні ключі. 11. Реляційна алгебра. Традиційні реляційні оператори. Реляционный оператор — математический символ который указывает на определенный тип сравнения между двумя значениями. Реляционные операторы которыми располагает SQL: = Равный к > Больше чем < Меньше чем >= Больше чем или равно <= Меньше чем или равно <> Не равно 12. Реляційна алгебра. Спеціальні реляційні оператори. 13. Реляційні операції над мультимножинами. (самостійно) 14. Реляційне числення. Числення кортежів. (самостійно) В зависимости от того, что является областью определения переменной, различаются исчисление кортежей и исчисление доменов. В исчислении кортежей областями определения переменных являются отношения базы данных, т.е. допустимым значением каждой переменной является кортеж некоторого отношения. В исчислении доменов областями определения переменных являются домены, на которых определены атрибуты отношений базы данных, т.е. допустимым значением каждой переменной является значение некоторого домена. Мы рассмотрим более подробно исчисление кортежей, а в конце лекции коротко опишем особенности исчисления доменов. В отличие от раздела, посвященного реляционной алгебре, в этом разделе нам не удастся избежать использования некоторого конкретного синтаксиса, который мы, тем не менее, формально определять не будем. Необходимые синтаксические конструкции будут вводиться по мере необходимости. В совокупности, используемый синтаксис близок, но не полностью совпадает с синтаксисом языка баз данных QUEL, который долгое время являлся основным языком СУБД Ingres. Для определения кортежной переменной используется оператор RANGE. Например, для того, чтобы определить переменную СОТРУДНИК, областью определения которой является отношение СОТРУДНИКИ, нужно употребить конструкцию 15. Реляційне числення. Числення доменів. (самостійно)
|