Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pis_lect.docx
Скачиваний:
24
Добавлен:
28.10.2018
Размер:
2.55 Mб
Скачать

2.2.2. Целостная составляющая. (вопрос 8)

Ограничения целостности реляционной модели можно разделить на две группы – требование целостности сущности и требование целостности ссылок (ссылочная целостность).

Целостность сущностей. Требование целостности сущностей в общем, плане заключается в требовании уникальности экземпляров объектов инфологической схемы, отображаемых средствами реляционной модели.

Экземплярам объектов инфологической схемы в реляционной модели соответствуют записи таблиц-отношений.

Требование целостности сущностей состоит в требовании уникальности каждой строки. Отсюда вытекают следующие ограничения:

  • отсутствие строк дубликатов; это требование не подразумевает отсутствия совпадений по всем полям, а лишь по полям первичных ключей;

  • отсутствие полей с множественным характером значений атрибута; это ограничение обеспечивается нормализацией таблиц-отношений, то есть разбиением исходной таблицы на две или более связанные таблицы с единичным атомарным характером значений полей атрибутов.

Ссылочная целостность. Выше уже говорилось, что первичный ключ любой таблицы должен содержать уникальные непустые значения для данной таблицы. Это утверждение является одним из правил ссылочной целостности (referential integrity). Если СУБД контролирует уникальность первичных ключей (далеко не все СУБД это делают), то при попытке присвоить первичному ключу значение уже имеющееся в другой записи, СУБД генерирует диагностическое сообщение, содержащее словосочетание primary key violation (нарушение первичного ключа). Это сообщение может быть передано в приложение, с помощью которого конечный пользователь манипулирует данными.

Если две таблицы связаны соотношением master-detail, внешний ключ detail-таблицы должен содержать только те значения, которые уже имеются среди значений первичного ключа master-таблицы. Если корректность значений внешних ключей не контролируется СУБД можно говорить о нарушении ссылочной целостности. В этом случае, если мы удалим из таблицы «Клиенты» запись, имеющую хотя бы одну связанную с ней detail-запись в таблице «Заказы», в таблице «Заказы» окажутся записи о заказах, размещенных неизвестно кем.

Если СУБД контролирует корректность значений внешних ключей, то при попытке присвоить внешнему ключу значение, отсутствующее среди значений первичных ключей master-таблицы, либо при удалении или модификации записей master-таблицы, приводящих к нарушению ссылочной целостности, СУБД сгенерирует диагностическое сообщение, обычно содержащее словосочетание foreign key violation, которое может быть передано в пользовательское приложение.

Большинство современных СУБД Microsoft Access 97, 2000 и Microsoft SQL Server 7.0, способны контролировать соблюдение правил ссылочной целостности, если таковые описаны в базе данных.

2.2.3. Манипуляционная составляющая реляционной модели (операции над данными). (вопрос 8)

Все операции над данными в реляционной модели можно разделить на две группы:

  • операции обновления таблиц-отношений;

  • операции обработки таблиц-отношений.

К операциям обновления относятся:

  • ВКЛЮЧИТЬ – добавляет новую строку-запись в таблицу-отношение. Эта операция требует задания имени таблицы и обязательного значения ключей. Выполняется при условии уникальности значения ключа. Добавить запись со значением ключа, которое уже есть в таблице, невозможно;

  • УДАЛИТЬ – удаляет одну или группу строк-записей. Требует задания имени таблицы, имени поля (группы полей) и параметры полей, записи с которыми должны быть удалены;

  • ОБНОВИТЬ – изменяет значение не ключевых полей у одной или группы строк. Требует задания имени таблицы, имен полей и их значений для выбора строк и имен, изменяемых полей.

Особенностью операции манипулирования в реляционной модели является тот факт, что в качестве элемента обновления, предиката, выступает таблица в целом, то есть множество строк (а, например, не отдельная запись). Поэтому все операции обновления являются операциями над множествами, и результатом является также множество, то есть новая таблица-отношение.

К операциям обработки таблиц относятся следующие операции:

  • ОБЪЕДИНЕНИЕ – выполняется над двумя односхемными таблицами (с одинаковой схемой). Результатом объединения является таблица, построенная по той же схеме, содержащая записи первой и второй таблицы. При этом записи дубликаты в итоговой таблице устраняются.

  • ПЕРЕСЕЧЕНИЕ – выполняется над двумя таблицами с одинаковой схемой. Результатом является таблица, построенная по той же схеме и содержащая те строки первой таблицы, которые входят в состав строк второй таблицы (общие строки двух таблиц).

  • ВЫЧИТАНИЕ – выполняется над двумя односхемными таблицами. Результатом является таблица, построенная по той же схеме и содержащая те строки первой таблицы, которых нет в составе строк второй таблицы.

  • ДЕКАРТОВО ПРОИЗВЕДЕНИЕ – выполняется над таблицами с разными схемами. Результатом является таблица, схема которой включает все поля первой и все поля второй таблицы. Строки результирующей таблицы образуются путем последовательного сцепления каждой строки первой таблицы с каждой строкой второй таблицы.

  • Количество строк результирующей таблицы равно произведению количества строк первой таблицы на количество строк второй таблицы.

  • ВЫБОРКА (селекция горизонтального подмножества) – выполняется над одной таблицей. Результатом является таблица той же схемы, содержащая подмножество строк исходной таблицы-отношения, удовлетворяющих условию выборки;

  • ПРОЕКЦИЯ (вертикальное подмножество) – выполняется над одной таблицей. Результатом является новая таблица, схема которой содержит только некоторое подмножество полей исходной таблицы. Каждой строке исходной таблицы соответствует строка итоговой таблицы, образованная соответствующими значениями по полям, вошедшим в итоговую таблицу. При этом в итоговой таблице строки дубликаты устраняются и поэтому мощность итоговой таблицы (количество строк) может быть равна или меньше исходной.

  • СОЕДИНЕНИЕ – выполняется над таблицами с разными схемами. В таблицах выделяется поле с одинаковым именем, по которому будет осуществляться соединение. Схема итоговой таблицы включает все поля первой таблицы и все поля второй таблицы. Строки итоговой таблицы образуются путем сцепления каждой строки из первой таблицы с теми строками второй таблицы, значение которых по полю сцепления одинаковы.

  • ДЕЛЕНИЕ – выполняется над двумя таблицами, первая из которых называется делимым, а вторая делителем. При этом схема таблицы делителя должна состоять из подмножества полей таблицы-делимого. Схема итоговой таблицы содержит только те поля таблицы-делимого, которых нет во второй таблице-делителе. Строки итоговой таблицы образуются на основе строк первой таблицы (делимого) по значениям полей, вошедших в итоговую таблицу при условии, что если взять произведение (декартово) итоговой таблицы и таблицы делителя, то образуются соответствующие строки первой таблицы (делимого).

Реляционная модель организации данных сыграла неоценимую роль в развитии программного обеспечения АИС. С начала 90-х годов реляционные СУБД стали фактическим стандартом для создания разнообразных информационных систем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]