Программирование >>  Реализация целостности данных 

1 ... 30 31 32 [ 33 ] 34 35 36 ... 124


Server создание осиротевших записей, отменяя опе-

вставки, если такой записи не соответствует ни одна запись в ссылочной таблице.

Значения jVw допускаются в столбцах внешних ключей, хотя могут быть запрещены, если столбец входит в первичный ключ таблицы. SQL Server также запрещает удалять записи в ссылочной таблице, если им соответствуют значения внешнего ключа.

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

Лрошс всего создать объект Relation, используя пользовательский интерфейс базы данных Access (с помощью команды Relationships в меню Tools), но это можно сделать и программным способом. Свойства Table и toirignTable объекта Relation библиотеки Data Access Object (DAO) определяют две таблицы, участвующие ои. в то время как набор объектов Fields определяет для каждой из таблиц поля,

по которым устанавливается связь.

Способ, которым Microsoft Jet будет поддерживать ссылочную целостность для отношения, определяется через свойство Attributes отношения:

опUnique - связь один к одному ;

ontEnforce - связь не установлена (не поддерживается

ссылочная целостность);

- связь существует в другой базе данных, которая содержит две связанные таблицы;

- поддерживается каскадное обновление;

- поддерживается каскадное удаление.

Обратите внимание на флаги dbRelationUpdateCascade и dhRela-tionDelete Cascade. Если определен флаг для обновления и ссылочное поле изменяется, Microsoft Jet автоматически обновит поля в связанной таблице.

Точно так же, определение флага удаления приведет к автоматическому удалению записей из связанной таблицы в случае удаления соответствующей записи из ссылочной таблицы. У SQI. Server аналогичные флаги отсутствуют, но каскадные операции легко организовать с помошью триггеров.



ЧАСТЬ >ляци<жных баз данных

Другие виды целостности

в модели данных мы определяем три дополнительных вида целостности: базы данных, преобразования и транзакции. Некоторые ограничения шреобразования достаточно просто объявить с помощью правил проверки. Большинство их, тем не менее, как и все ограничения базы данных и транзакции, реализуют процедурно. Для баз данных SQL Server это означает применение триггеров. Microsoft Jet не поддерживает триггеры, эти ограничения нужно реализовать в клиентском приложении.

Итоги

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

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

В главе 5 мы рассмотрим шонную алгебру и операции, которые можно выполнять над отношениями в базе данных.

.У-

.:



Реляционная алгебра

ГЛАВА

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

На схеме базы данных базовое еНие представлено таблицей. Производные отношения существуют в виде представлений (views) в Microsoft SQL Server и запросов (queries) в механизме СУБД Microsoft Jet. Я буду использовать термин представления для обозначения обоих этих понятий, поскольку это мии широко применяется в реляционной теории, атакже термин набор записей* (в основном, когда речь пойдет о запросах или представлениях).

Представления определяются в терминах реляционных операций, которым посвяшена эта глава. Microsoft Access и SQL Server Enterprise Manager предоставляют графический интерфейс для создания представлений. Однако представления можно также создавать при помощи операторов SQL SELECT.

SQL (читается ка вел ) - это язык структурированных запросов (Structured Query Language), стандартизированный-язык для описания реляционных операций. Microsoft Jet и SQL Server поддерживают специфичные, несколько отличающиеся Друг от друга, диалекты SQL. Впрочем во всем, что касается реляционной алгебры, различия минимальны. В этой главе мы обсудим вопросы алгебры, и там, где синтаксис версий SQL будет отличаться, я приведу примеры для обоих вариантов.

Оператор SELECT - это очень мощное средство, однако пользоваться им не так просто, как кажется на первый взгляд. Я не буду



1 ... 30 31 32 [ 33 ] 34 35 36 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика