Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
239.62 Кб
Скачать

38. Обеспечение целостности бд

Обеспечение целостности БД означает выполнение ряда ограничений, соблюдение которых необходимо для поддержания непротиворечивости хранимых данных. Среди ограничений целостности можно выделить ограничения диапазонов значений атрибутов отношений и структурные ограничения на кортежи отношений.

Первый тип ограничений целостности предполагает контроль значений атрибутов значений. Например, значения атрибута Дата_рождения не могут превышать значения атрибута Дата_приема в записях отношений о кадрах. структурные ограничения фиксируют два требования целостности, которые должны придерживаться реляционными СУБД: требование целостности сущностей и целост-лылок. Каждому экземпляру сущности, представленному в отношении, соответ-

-олько один его кортеж. Первое требование состоит в том, что любой кортеж от-я должен быть отличим от любого другого кортежа этого отношения, иными

-з, любое отношение должно обладать первичным ключом.

:мулировка второго требования тесно связана с понятием внешнего ключа. Напом-

э внешние ключи служат для связи отношений (таблиц БД) между собой. При этом

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

отношения (таблицы). Говорят, что отношение, в котором определен внешний ключ,

- ся на отношение, в котором этот же атрибут является первичным ключом.

-ование целостности по ссылкам состоит в том, что для каждого значения внеш-

-оча родительской таблицы должна найтись строка в дочерней таблице с таким «нием первичного ключа. Например, если в отношении R1 (рис. 19.11) содержат-

-гсельская таблица Дочерняя таблица

R2

Должн

Оклад

преп

500

ст.преп

800

Ключ


ю

Должн

Каф

Стаж

нов И.М.

преп

25

5

зов М.И.

ст.преп

25

1

оров Н.Г.

преп

25

10

зов В. В.

преп

24

5

Внешний ключ

Рис. 19.11. Связь отношений с помощью внешнего ключа

=ния о сотрудниках кафедры, а атрибут этого отношения Должн является первич-

•очом отношения R2, то в этом отношении для каждой должности из R1 должна 3>ока с соответствующим ей окладом.

19.6. Языки запросов qbe и sql

яимые в базе данные можно обрабатывать (просматривать и редактировать) «вруч-

- с помощью имеющихся в каждой СУБД средств просмотра и редактирования в таблицах. Для повышения эффективности множественной обработки данных

зфования и выбора данных из таблиц) создаются и выполняются запросы.

эос представляет собой специальным образом описанное требование, определяющее

сроизводимых над БД операций по выборке или модификации хранимых данных, подготовки запросов с помощью различных СУБД, как правило, используются

овных языка описания запросов:

245

19. Основы построения баз данных

• язык QBE (Query By Example) — язык запросов по образцу;

SQL (Structured Query Language) — структурированный язык запросов.

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Главное отличие между ними, по-видимому, заключается в спо­собе формирования запросов: язык ОБЕ предполагает ручное или визуальное формирова­ние запроса, в то время как использование SQL означает программирование запроса.

Язык запросов по образцу

Язык QBE позволяет задавать сложные запросы к БД путем заполнения предлагае­мой СУБД запросной формы. Такой способ задания запросов обеспечивает высокую на­глядность и не требует указания алгоритма выполнения операции — достаточно описать образец ожидаемого результата. В каждой из современных реляционных СУБД имеется свой вариант языка QBE.

С помощью языка ОБЕ можно задавать запросы однотабличные и многотабличные (выбирающие или обрабатывающие данные из нескольких связанных таблиц).

При задании запросов с помощью языка ОБЕ допустимы следующие операции: вы­борка, вычисление и модификация данных; вставка и удаление записей. Результатом вы­полнения запроса может быть новая таблица или обновленная исходная таблица.

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

Во многих современных СУБД, например, в Access и Visual FoxPro, многие действия по подготовке запросов с помощью языка ОБЕ выполняются визуально с помощью мыши. В частности, визуальное связывание таблиц при подготовке запроса выполняется не элемента­ми примеров, а просто «протаскиванием» мышью поля одной таблицы к полю другой.

Структурированный язык запросов

Структурированный язык запросов SQL основан на реляционном исчислении с пере­менными кортежами. Язык имеет несколько стандартов, наиболее распространенными из которых являются SOL-89 и SQL-92.

SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и уда­ ление), а также некоторых сопутствующих операций. SOL является непроцедурным языком и не содержит имеющихся в обычных языках программирования операторов управления, организации подпрограмм, ввода-вывода и т. п. В связи с этим SOL авто­ номно не используется, а обычно погружен в в среду встроенного языка программиро­ вания СУБД (например, языка FoxPro СУБД Visual FoxPfo) или даже процедурного язы­ ка типа C++ или Pascal. *

В современных СУБД с интерактивным интерфейсом можно создавать запросы, не применяя SOL. Однако его применение в некоторых случаях позволяет расширить воз­можности использования СУБД. К примеру, при подготовке запроса в среде /Access мож­но перейти из окна конструктора запросов (задания запроса по образцу) в окно с эквива-