Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен / database.pdf
Скачиваний:
51
Добавлен:
06.02.2018
Размер:
583.8 Кб
Скачать

http://slava.fateback.com

11

1.4.2Ключи

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

В первом примере любой атрибут является поисковым ключом.

Определение 1.8 Для выбранного класса объектов атрибут является первичным ключом, если одно его значение служит для идентификации одного объекта данного класса.

В первом примере первичным ключом является номер студенческого билета.

Определение 1.9 Поисковый ключ в выбранном классе объектов зовется сцепленным, если состоит более чем из одного атрибута. Сцепленные ключи обозначаются конкатенацией

(+).

В первом примере сцепленным ключом может быть «ФИО студента» + «Факультет».

Замечание. Для реализации поисковых и первичных ключей на физическом уровне используются индексные файлы. Ключевые атрибуты (первичный и поисковый) — основа для установления целостности в БД.

1.5Системы управления базами данных (СУБД)

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

1.обмен управляющими воздействиями с ОС и прикладным ПО в процессе функционирования (прежде всего — генерация событий и прерываний);

2.преобразование данных в процессе передачи из БД в прикладную область и обратно;

3.обеспечение многопользовательского режима доступа к БД (механизм транзакций);

4.обеспечение секретности доступа к данным (авторизация).

Прикладные

программы

Д Б

р о т а р т с и н и м д А

Системные

программы

 

Прикладная

 

Внешние

 

программа

 

схемы

 

 

 

 

Глобальное

 

 

 

 

логическое

 

 

СУБД

описание

Системный

(схема)

 

буфер

 

 

ОС

БД БД

Физическое

описание

 

http://slava.fateback.com

12

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

При чтении данных из БД, СУБД выполняет следующую последовательность действий:

1.Прикладная программа формирует запрос и совместно с паролем пользователя передает его СУБД.

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

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

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

5.СУБД, в соответствии со схемой реализации запросов, формирует последовательность команд ввода-вывода и передает их ОС.

6.Операционная система перемещает запрошенные блоки данных в системные буфера.

7.СУБД выполняет преобразование данных в системных буферах в соответствии с описанием внешней схемы.

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

9.СУБД информирует о завершении реализации запроса прикладную программу (здесь генерируется прерывание, которое перехватывает ОС и передает управление прикладной программе).

Замечание. Шаги 5-7 выполняются циклически, так как за одно обращение практически ничего нельзя получить. Другими словами, процесс итерационный.

Замечание. Последовательность действий при записи в БД аналогична, только поток данных идет в обратном направлении.

1.6Языковые средства для работы с базами данных

Более подробное изложение см. [2].

Для разработки прикладного ПО и формулирования запросов БД могут быть использованы традиционные языки программирования: C, Pascal (Delphi), Кобол, Фортран, ассемблер. Однако таких языков недостаточно для разработки приложений, работающих с БД: невозможно реализовать принцип независимости данных, поскольку внешние схемы формулируются в конструкциях языка, и изменение этих схем пагубно скажется на написанном программном обеспечении. По этой причине в БД используются специализированные языки.

http://slava.fateback.com

13

1.Язык описания данных (ЯОД) предназначен для формирования внешних схем, глобального логического и физического описаний. Существуют непромышленные языки, позволяющие формировать физическое описание данных (PostGress); такие же возможности имеются у администратора БД Oracle. В других языках эта область закрыта, так как на основе физического описания происходит фактическая оптимизация запроса.

2.Язык манипулирования данными (ЯМД) предназначен для формирования запросов к БД. В нем реализуются основные функции:

(a)поиск (чтение);

(b)дополнение;

(c)удаление;

(d)модификация.

Модификация выделяется отдельно от дополнения и удаления, так как иначе невозможно реализовать ограничения целостности на данные.

Реализуются ЯОД и ЯМД следующим образом:

1.Дополнение к традиционному языку программирования.

(a)Реализация ЯОД и ЯМД в виде подпрограмм (или библиотеки подпрограмм), callинтерфейс. Так сделан ЯМД в СУБД VISTA.

(b)ЯОД и ЯМД реализуются в виде расширения традиционного языка программирования: традиционный язык дополняется синтаксически правильными конструкциями ЯОД и ЯМД. Так сделана СУБД ADABAS для IBM 370 (по-нашему, ЕС-1066) со встроенным PL/1 (в этом-то и ошибка разработчиков — транслятор такого мощного языка, как PL/1, дорог в разработке, и неизбежно приходится экономить, в частности, на специалистах в области БД).

(c)Разработка независимых спецификаций, вставляемых в текст прикладной программы. Эти независимые вставки предварительно обрабатываются претранслятором и переводятся в правильные конструкции традиционного языка программирования. Подход стал традиционным, особенно для языков спецификации. Синтаксис меняется с СУБД, но перекомпиляция лучше переписывания. Так сделан ЯОД СУБД VISTA.

2.СУБД снабжается встроенным языком программирования. В этом случае язык дополняется традиционными операторами. Так устроены, например, dBase 2-3-4, Clipper, Clarion, Fox Pro. На будущее (для тех, кто встретится с Fox Pro): описание схемы БД со всеми индексами необходимо выделить в отдельный модуль, который вызывают все приложения — и заставить им пользоваться. В таких языках реализуются средства SQL, к использованию которых нужно также склонить программистов.

3.Разработка независимого от СУБД и традиционных языков программирования ЯОД и ЯМД. Сейчас это главное направление развития средств доступа к данным. Стандарты здесь очень жесткие. Лидируют SQL, QBE (Query-By-Example).

Соседние файлы в папке экзамен