- •Основные определения и требования к базам данных
- •Определения
- •Категории баз данных
- •Требования к базе данных
- •Неизбыточность и непротиворечивость данных
- •Защита данных от программных и аппаратных сбоев
- •Мобильность прикладного программного обеспечения
- •Секретность данных
- •Представление и описание информации
- •Плоские (двойные) файлы
- •Ключи
- •Системы управления базами данных (СУБД)
- •Языковые средства для работы с базами данных
- •Глобальное логическое описание
- •Компоненты описания схемы данных
- •Классификация моделей данных
- •Иерархические модели данных
- •Сетевые модели данных
- •Классификация структурированных моделей данных
- •Реляционные модели данных
- •Преобразование структурированных моделей к реляционному виду
- •Ключи
- •Операции реляционной алгебры
- •Декомпозиция отношений
- •Функциональные зависимости
- •Правила логического следования
- •Аксиомы функциональных зависимостей
- •Ключи
- •Вторая нормальная форма
- •Правило построение второй нормальной формы:
- •Преимущества второй нормальной формы перед первой
- •Третья нормальная форма
- •Правило построения
- •Преимущества третьей нормальной формы
- •Построение канонической модели общего вида
- •Построение канонической модели реляционного типа
- •Построение замыканий
- •Построение минимального покрытия множества функциональных зависимостей
- •Декомпозиция схем отношений
- •Многозначные зависимости
- •Построение канонической модели
- •Физическая организация базы данных. Алгоритмы работы СУБД
- •Введение
- •Архитектуры современных ЭВМ
- •Факторы, влияющие на выбор физической организации БД (технология, представление, алгоритмы и прочее)
- •Схема временных затрат при реализации запросов
- •Классификация методов доступа
- •Последовательный метод доступа
- •Индексно-произвольный метод доступа
- •Прямой метод доступа
- •Методы хеширования
- •Списки и инвертированные файлы
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).
