|
Программирование >> Реализация целостности данных
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 - это очень мощное средство, однако пользоваться им не так просто, как кажется на первый взгляд. Я не буду
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |