Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра 303

Белобжеский Л.А.

БАЗЫ И БАНКИ ДАННЫХ

Конспект лекций

Специальность 200103 – Авиационные приборы и измерительно-вычислительные комплексы

МАИ – 200___г.

Содержание

ВВЕДЕНИЕ В БАЗЫ ДАННЫХ 5

Отношения между прикладными программами и СУБД 14

Системы обработки баз данных 17

История баз данных 21

Организационный контекст 21

Реляционная модель 22

Коммерческие СУБД для микрокомпьютеров 23

Клиент-серверные приложения баз данных 24

Базы данных с использованием Интернет-технологий 24

Распределенные базы данных 25

Объектно-ориентированные СУБД 26

БАНК ДАННЫХ 28

Основные понятия и определения 28

Пользователи банков данных 30

БАЗА ДАННЫХ 31

Архитектура базы данных. Физическая и логическая независимость 32

Схемы и отображения 34

Независимость от данных 36

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

Процесс прохождения пользовательского запроса 39

Введение в разработку баз данных 41

Метаданные 41

Индексы 43

Метаданные приложений 44

СУБД 45

Подсистема средств проектирования 45

Подсистема обработки 45

Ядро СУБД 46

Создание базы данных 46

Процесс разработки базы данных 47

Моделирование данных 49

Функции СУБД 51

Модели данных 54

Объектные или инфологические модели данных 56

Модели данных на основе записей или даталогические 57

Реляционная модель данных 57

ПРЕПОДАВАТЕЛИ 58

. Физические модели данных 60

Концептуальное моделирование 60

РЕЛЯЦИОННАЯ МОДЕЛЬ 61

Структура реляционных данных 61

Внешний ключ 64

Альтернативная терминология 65

Математические отношения 66

Отношения в базе данных 68

Реляционные ключи 70

Реляционная целостность 71

Целостность сущностей 72

Ссылочная целостность 73

РЕЛЯЦИОННЫЕ ЯЗЫКИ 74

РЕЛЯЦИОННАЯ АЛГЕБРА 75

Учебный проект DreamHome 76

Реляционная алгебра (продолжение) 80

Выборка (или ограничение) 84

Проекция 84

Декартово произведение 85

Объединение 86

Разность 87

Операции соединения 87

Tema-соединение (θ-join) 87

Естественное соединение 88

Внешнее соединение 89

Полусоединение 90

Пересечение 90

Деление 91

Другие языки 92

ПРИМЕРЫ ПРИМЕНЕНИЯ РЕЛЯЦИОННОЙ АЛГЕБРЫ 93

ОБЗОР ЖИЗНЕННОГО ЦИКЛА ИНФОРМАЦИОННЫХ СИСТЕМ 100

Жизненный цикл приложения баз данных 100

Проектирование базы данных 101

Резюме 104

ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ НА ОСНОВЕ ВОСХОДЯЩЕГО ПОДХОДА (Метод нормализации или декомпозиции) 107

Цель нормализации 107

Проблемы, вызываемые использованием единственного отношения (аномалии обновления) 109

Проблема вставки 110

Проблема обновления 110

Проблемы удаления 112

Функциональные зависимости 112

ПРОЦЕСС НОРМАЛИЗАЦИИ 115

Декомпозиция без потерь и функциональные зависимости 116

Первая нормальная форма (1 НФ) (из Коннолли) 118

Вторая нормальная форма (2НФ) 119

Третья нормальная форма (ЗНФ) 122

Нормальная форма Бойса-Кодда (НФБК) 123

4 и 5 нормальные формы (4НФ и 5НФ) 124

ПРИМЕР НОРМАЛИЗАЦИИ 124

. Другая декомпозиция отношения КОНСУЛЬТАНТ 129

Некоторые комментарии к декомпозиционному алгоритму проектирования 130

НЕКОТОРЫЕ МОДИФИКАЦИИ АЛГОРИТМА ПРОЕКТИРОВАНИЯ 132

Избыточные функциональные зависимости 132

Транзитивные зависимости 133

Добавление атрибутов в ФЗ 134

Правила вывода 135

Алгоритм проектирования БД методом декомпозиции (восходящий метод) 138

Проверка отношений на завершающей фазе их проектирования 138

Задачи к текущему материалу 139

Пример аномалий для 2НФ 141

Нормальная форма Бойса—Кодда (НФБК) с примером аномалий для 3 формы 142

ЯЗЫК SQL 144

Запрос одиночной таблицы 145

Проектирование в SQL 146

Выборка в SQL 147

Сортировка 149

Встроенные функции SQL 150

Встроенные функции и группировка 151

Запрос нескольких таблиц 153

Вложенные запросы 153

Соединение с помощью SQL 154

Сравнение вложенного запроса и соединения 156

Внешнее соединение 157

Операторы EXISTS и NOT EXISTS 158

Изменение данных 159

Удаление данных 160

Модификация данных 161

Запрос на SQL с EXIST и NOT EXIST (реализация реляционной операции Деления) 161

ОПЕРАЦИЯ ВНЕШНЕГО СОЕДИНЕНИЯ ТАБЛИЦ В ACCESS 162

ПСЕВДОНИМЫ СТОЛБЦОВ И ТАБЛИЦ 163

Уточнения запроса 165

ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ОПЕРАЦИИ 166

Декартово произведение наборов записей 166

Объединение наборов записей (UNION) 168

Пересечение наборов записей (INTERSECT) 170

Вычитание наборов записей (EXCEPT) 171

Операции соединения 171

Естественное соединение (NATURAL JOIN) 172

Условное соединение (JOIN... ON) 173

Соединение по именам столбцов (JOIN... USING) 174

Внешние соединения 175

Левое соединение {LEFT OUTER JOIN) 175

Правое соединение {RIGHT OUTER JOIN) 177

Внешнее соединение Преподаватель-Изучение-Предмет. Создание в ACCESS. ПРИМЕР 177

Операторы EXISTS и NOT EXISTS 178

НИЗХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ БД НА ОСНОВЕ ER-МОДЕЛИ 180

Модель «сущность—связь» и ее варианты 180

РЕАЛИЗАЦИЯ НИЗХОДЯЩЕГО ПРОЕКТИРОВАНИЯ БД НА ОСНОВЕ ER-МОДЕЛИ 181

Типы сущностей 183

Способы представления сущностей на диаграмме 184

Атрибуты 184

Ключи 186

Типы связей 187

Представление связей на диаграммах 188

Атрибуты связей 191

. Структурные ограничения 192

Показатель кардинальности 192

Степень участия 194

ПРИМЕРЫ ER-ПРОЕКТИРОВАНИЯ 213

Модель «сущность—связь» в другом рассмотрении 216

Элементы модели «сущность—связь» 216

Сущности 216

Атрибуты 217

Идентификаторы 217

Связи 218

Три типа бинарных связей 218

Диаграммы «сущность—связь» 220

Изображение атрибутов в диаграммах «сущность—связь» 221

Слабые сущности 222

Представление многозначных атрибутов при помощи слабых сущностей 224

Подтипы сущностей 225

Пример ER-диаграммы 227

Документирование делового регламента 228

Модель «сущность—связь» и CASE-средства 228

Диаграммы «сущность—связь» в стиле UML 229

Сущности и связи в UML 229

Представление слабых сущностей 230

Представление подтипов 231

Конструкции ООП, введенные языком UML 232

Роль UML в базах данных на сегодняшний день 233

Примеры 234

Резюме 243

Вопросы группы I 244

Вопросы группы II 245

ЛИТЕРАТУРА ПО КУРСУ «БАЗЫ И БАНКИ ДАННЫХ» 246

Введение в базы данных

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

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

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

Четыре примера применения баз данных

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

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

Малярная фирма Мэри Ричардс

Мэри Ричардс — профессиональный маляр, владеет и управляет небольшой ком­панией, состоящей из нее самой, еще одного профессионального маляра и, когда это необходимо, наемных работников. Мэри занимается этим бизнесом уже 10 лет и приобрела за это время репутацию высококвалифицированного маляра, рабо­тающего за умеренную плату. Большую часть заказов она получает от постоян­ных клиентов, нанимающих ее для покраски домов, а также от их знакомых. Кроме того, некоторое количество заказов Мэри получает от строительных под­рядчиков и профессиональных дизайнеров интерьера.

Клиенты помнят Мэри намного лучше, чем она их. Порою она бывает смущена, когда клиент звонит ей и говорит что-нибудь такое: «Здравствуйте, Мэри, это Джон Мэплз. Вы красили мой дом три года назад». При этом звонящий подразумевает, что Мэри вспомнит его и работу, которую она для него сделала; но если учесть, что Мэри красит более 50 домов в год, для нее это будет затруднительно. Ситуация становится еще хуже, когда клиент заявляет: «Моей соседке понравилось, как вы покрасили наш дом, и она хочет, чтобы вы и у нее сделали что-нибудь вроде этого».

Чтобы несколько разгрузить свою память и лучше организовать учет деятель­ности фирмы, Мэри наняла консультанта для разработки базы данных, которую она могла бы хранить на своем персональном компьютере. В базе данных долж­ны храниться записи о клиентах, заказах и поставщиках клиентов, представлен­ные в форме таблиц (рис. 1.1).

Записью и получением данных из этих таблиц занимается специальная про­грамма, называемая системой управления базой данных (database management system), или СУБД (DBMS). К сожалению, эти данные, будучи представлены в форме таблиц, не слишком полезны для Мэри. Ей скорее хотелось бы знать, как клиенты и заказы связаны друг с другом, — например, какие работы были выполнены ею для конкретного клиента или какие клиенты были направлены к ней конкретным человеком.

Чтобы предоставить Мэри такую возможность, консультант создал приклад­ную программу (application program), которая обрабатывает формы (forms) для ввода данных и формирует отчеты (reports). Рассмотрим пример, представлен­ный на рис. 1.2. В изображенную здесь форму Мэри вводит личные данные кли­ента — имя, телефон и адрес. Далее она вводит сведения о работах, выполненных для клиента, и указывает, кто направил этого клиента к ней. Эти данные мо­гут быть затем отражены в отчете, пример которого показан на рис. 1.3. Другие функции этой базы данных включают оценку стоимости заказа, учет поставщи­ков клиентов и создание наклеек с адресом для рекламных буклетов, которые Мэри время от времени рассылает.

Рис. 1.1. Таблицы данных для малярной фирмы Мэри Ричардс

Рис. 1.2. Пример формы для ввода данных для малярной фирмы Мэри Ричардс

Рис. 1.3. Пример отчета для малярной фирмы Мэри Ричардс

Прикладная программа и СУБД обрабатывают заполненную форму и пере­писывают данные из нее в таблицы, подобные изображенным на рис. 1.1. Анало­гичным образом прикладная программа и СУБД извлекают данные из этих таб­лиц для создания отчетов, таких как представленные на рис. 1.3.

Еще раз вернувшись к рис. 1.1, обратите внимание, что строки таблицы со­держат перекрестные ссылки и поэтому оказываются связанными друг с дру­гом. Для каждой работы (JOB) указан номер клиента (CUSTOMER_ID), заказавшего эту работу, и для каждого клиента (CUSTOMER) указан номер поставщика клиента (SOURCE_.ID), то есть человека, направившего этого клиента к Мэри. Эти ссылки используются для объединения данных в формы и отчеты.

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

Бюро проката музыкальных инструментов Treble Clef Music

База данных Мэри Ричардс называется однопользовательской (single-user), по-;кольку в каждый конкретный момент времени к ней обращается только один пользователь. В некоторых случаях такое ограничение неприемлемо: иногда тре­буется, чтобы одновременно к базе данных могли обращаться несколько человек с различных компьютеров. Такие многопользовательские (multi-user) базы дан­ных являются более сложными, поскольку СУБД и прикладные программы должны заботиться о том, чтобы действия одного пользователя не противоречи­ли действиям другого.

Бюро проката Treble Clef Music использует базу данных для учета сдаваемых в аренду музыкальных инструментов. Для этого требуется многопользователь­ская база данных, поскольку в периоды наплыва клиентов выдачей музыкаль­ных инструментов могут одновременно заниматься несколько служащих. Кроме того, менеджер также должен иметь доступ к базе данных, чтобы определить момент, когда необходимо будет заказать большее количество определенных инструментов. При этом менеджер не хочет мешать процессу выдачи инстру­ментов.

Бюро Treble Clef Music имеет локальную сеть, соединяющую несколько персо­нальных компьютеров с сервером, на котором находится база данных (рис. 1.4). У каждого из служащих есть доступ к прикладной программе, позволяющей работать с тремя видами форм. Форма CUSTOMER (рис. 1.5, а) содержит инфор­мацию о клиенте, форма RENTAL AGREEMENT (рис. 1.5, б) представляет договор аренды и используется для учета выдачи и возврата инструментов, а форма INSTRUMENT (рис. 1.5, в) содержит сведения об инструменте и историю его аренды.

Рис. 1.4. Локальная сеть бюро проката Treble Clef Music

Рис. 1.5. Формы, используемые бюро Treble Clef: a — информация о покупателе; б — договор аренды; в — сведения об инструменте

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

Бюро лицензирования и регистрации

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

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

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

Большие организационные базы данных, подобные только что рассмотренной нами, были первыми приложениями технологии баз данных. Подобные системы находятся в эксплуатации уже в течение 20 или 30 лет и за этот период неодно­кратно модифицировались в соответствии с менявшимися требованиями времени. Существуют организационные базы данных, предназначенные для ведения счетов в банках и других финансовых институтах, учета готовой продукции и комплек­тующих на складах больших предприятий, обработки медицинской документа­ции в госпиталях и страховых компаниях, а также для правительственных нужд.

Сегодня многие организации модифицируют прикладные программы своих баз данных, чтобы дать клиентам возможность обращаться к этим данным и да­же вносить в них изменения через Интернет. Если вы работаете на большую ор­ганизацию, то вас вполне могут подключить к подобному проекту.

Туристический информационный центр

Калверт-Айленд — это прекрасный, но малоизвестный остров на западном побе­режье Канады. Для продвижения острова на мировой туристический рынок Со­вет по коммерции Калверт-Айленда разработал сайт, преследующий три цели:

4- рекламу природных условий Калверт-Айленда, а также мест отдыха и раз­влечений;

+ запись имен и адресов посетителей сайта для последующей рассылки им рекламной информации;

4- прием запросов на бронирование мест в гостиницах, аренду коттеджей и туристическое обслуживание, а также направление этих запросов соот­ветствующим фирмам.

Рис. 1.6. Web-страница туристического информационного центра Калверт-Айленда

Для поддержки этого сайта используются две базы данных. Первая из них — рекламная — содержит данные, фотографии, видеоклипы и звуковые фрагменты, дающие представление о природе Калверт-Айленда, возможностях острова в сфе­ре отдыха и развлечений и происходящих событиях. У этой базы данных есть два типа пользователей. Обычные пользователи имеют доступ к ней только для чтения. Пользуясь стандартными браузерами, эти пользователи могут исследо­вать сайт в поисках интересующих их сведений об острове. В этом им помогает прикладная программа, извлекающая данные и мультимедийные элементы из рекламной базы данных (рис. 1.6).

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

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

Есть три основных аспекта, отличающих базу данных острова Калверт-Айленд от рассмотренных нами ранее приложений. Во-первых, рекламная база данных в значительной своей части содержит не только структурированные данные, такие как имена и адреса фирм, но также неструктурированные потоки битов в муль­тимедийных файлах. Во-вторых, прикладная программа доставляет информацию пользователю посредством стандартного браузера. Вид форм, которые использу­ются в малярной фирме Мэри Ричардс, бюро проката музыкальных инструментов и бюро лицензирования и регистрации, определяется проектировщиком и изме­няется только при модификации приложения. То, в каком виде формы предста­ют перед пользователями базы данных Калверт-Айленда, определяется не толь­ко приложением, но и маркой, версией и локальными настройками их браузеров.

Третья характеристика, отличающая базу данных Калверт-Айленда, — это при­менение стандартной web-ориентированной технологии для передачи данных меж­ду браузером, приложением и базой данных. При этом используются протокол передачи гипертекста (HTTP), динамический язык разметки гипертекстовых до­кументов (DHTML) и расширяемый язык разметки (XML). Использование этих стандартов означает, что доступ к этому приложению может получить любой поль­зователь, имеющий браузер. Предварительной установки какого-либо программ­ного обеспечения не требуется. Следовательно, возможности для использования этого приложения практически не ограничены. В главах 14-16 мы обсудим роль, которую играют HTTP, DHTML и XML в работе с базами данных, в которых:

+ присутствуют как структурированные, так и мультимедийные данные;

+ формы и отчеты отображаются с помощью стандартного браузера;

+ для передачи данных применяются стандарты Интернета — HTTP, DHTML и XML.

Сравнение четырех типов баз данных

Приведенные примеры демонстрируют возможные варианты использования технологии баз данных. Есть сотни тысяч баз данных, похожих на ту, что имеется в малярной фирме Мэри Ричардс, — однопользовательские базы данных с относи-

тельно небольшим количеством данных, скажем, менее 10 Мбайт, Формы и отче­ты для этих баз данных имеют обычно довольно простой вид.

У других баз данных, подобных той, что используется в бюро проката Treble Clef Music, несколько пользователей, но общее их количество обычно не превы­шает 20-30 человек. Они содержат умеренное количество данных — например, 50 или 100 Мбайт. Формы и отчеты должны быть достаточно сложными, чтобы поддерживать несколько различных деловых функций.

Самые большие размеры у баз данных, подобных той, что мы рассматривали для случая бюро регистрации автомобилей, — у них сотни пользователей и трил­лионы байтов данных. Для работы с этими базами данных используется мно­жество различных приложений, у каждого из которых свои собственные формы и отчеты. Наконец, некоторые базы данных применяют Интернет-технологии и обрабатывают как символьные, так и мультимедийные данные — изображения, звуки, анимацию, видео и т. п. Сравнительные характеристики перечисленных типов баз данных приведены в табл. 1.1.

Прочтя книгу, вы сможете проектировать и реализовывать базы данных напо­добие тех, что используются в малярной фирме Мэри Ричардс и в бюро проката Treble Clef Music. Возможно, вы будете еще не в состоянии создавать такие боль­шие и сложные базы данных, как та, что используется в бюро регистрации транс­портных средств, но, тем не менее, сможете быть полезным членом команды по разработке и созданию такой базы данных. Вы также сможете создавать неболь­шие или средних размеров базы данных, использующие Интернет-технологии.