Московский государственный университет печати

Чертовской В.Д.


         

Базы и банки данных

Учебное пособие


Чертовской В.Д.
Базы и банки данных
Начало
Печатный оригинал
Об электронном издании
Оглавление

Введение

Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ

Раздел 1. Основные понятия

1.

Глава 1. Общие сведения

1.1.

Данные, информация, знания

1.2.

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

1.3.

Классификация БД и СУБД

1.4.

Состав СУБД и работа БД

2.

Глава 2. Концепция баз данных

2.1.

Требования, предъявляемые к базам данных

2.2.

Концепция построения БД

2.3.

Методология проектирования баз данных

2.4.

Методология использования баз данных

Раздел 2. Теория баз данных

3.

Глава 3. Общая теория

3.1.

Модели представления данных

3.2.

CASE-технология

3.3.

CASE-средства

4.

Глава 4. Теория реляционных баз данных

4.1.

Математические основы теории

4.2.

Построение БД

4.3.

Использование БД

4.3.1.

Запросы к данным

4.3.2.

Синхронизация процессов доступа

Часть 2. Централизованные базы данных

Раздел 3. Реализация бд (модели БД)

5.

Глава 5. Реляционные БД SQL

5.1.

Логическая структура

5.2.

Создание БД

5.3.

Использование БД

5.3.1.

Язык SQL

5.3.2.

Язык QBE

6.

Глава 6. Сетевые БД

6.1.

Логическая структура

6.2.

Программная реализация

6.2.1.

Создание БД (ЯОД)

6.2.2.

Использование БД (ЯМД)

7.

Глава 7. Иерархические БД

7.1.

Логическая структура

7.2.

Программная реализация

7.2.1.

Создание БД (ЯОД)

7.2.2.

Использование БД (ЯМД)

8.

Глава 8. Взаимосвязь МД

8.1.

Сравнительная характеристика моделей данных

8.2.

Преобразование моделей данных

8.3.

Выбор моделей данных

9.

Глава 9. Физическая БД

9.1.

Вопросы программной реализации БД

9.2.

Организация хранения и доступ

9.3.

Доступ к данным и их обновление

Раздел 4. Современные направления развития БД

10.

Глава 10. Автоматизация проектирования

10.1.

Классический подход к проектированию

10.1.1.

Однопользовательский режим

10.1.2.

Многопользовательский режим

10.2.

Современный подход к проектированию

10.3.

Автоматизация проектирования

11.

Глава 11. Объектно-ориентированные базы данных

11.1.

Недостатки реляционных баз данных

11.2.

Состояние развития ООБД

11.3.

Сущность ООБД

11.4.

Недостатки и перспективы развития ООБД

Часть 3. Распределенные базы данных (РБД)

Раздел 5. Основы теории РБД

12.

Глава 12. Общая характеристика РБД

12.1.

Новые требования, предъявляемые к БД

12.2.

Состав и работа РБД

12.3.

Система клиент/сервер

Раздел 6. Основы теории РБД

13.

Глава 13. Создание РБД

13.1.

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

13.2.

Фрагментация и локализация

13.3.

Процесс интеграции

13.4.

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

13.5.

Однородные и неоднородные РБД

14.

Глава 14. Использование РБД

14.1.

Одновременный доступ

14.2.

Защита

14.3.

Восстановление РБД

14.4.

Запросы

Заключение

Контрольные вопросы

Литература

Указатели
11  именной указатель
360  предметный указатель
163  указатель иллюстраций
25  указатель компаний

2.
Глава 2. Концепция баз данных

Концепция в общем смысле представляет некоторую систему взглядов на процесс или явление.

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

МетодологияМетодология - совокупность методов решения проблемы.

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

2.1.
Требования, предъявляемые к базам данных

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

  1. Высокое быстродействие (малое время отклика на запрос).

    Время откликаВремя отклика - промежуток времени от момента запроса к БД до фактического получения данных. Похожим является термин Время доступавремя доступа - промежуток времени между выдачей команды записи (считывания) и фактическим получением данных. Под Доступдоступом понимается операция поиска, чтения данных или записи их. Часто операции записи, удаления и модификации данных называют Операция обновленияоперацией обновления.

  2. Простота обновления данных.

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

  4. Совместное использование данных многими пользователями.

  5. Безопасность данных - защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения.

  6. Стандартизация построения и эксплуатации БД (фактически СУБД).

  7. Адекватность отображения данных соответствующей предметной области.

  8. Дружелюбный интерфейс пользователя.

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

Независимость данныхНезависимость данных - возможность изменения логической и физической структуры БД без изменения представлений пользователей.

Независимость данных предполагает инвариантность к характеру хранения данных, программному обеспечению и техническим средствам. Она обеспечивает минимальные изменения структуры БД при изменениях стратегии доступа к данным и структуры самих исходных данных. Это достигается, как будет показано далее, «смещением» всех изменений на этапы концептуального и логического проектирования с минимальными изменениями на этапе физического проектирования ссылка на источники литературы.

Безопасность данных включает их целостность и защиту.

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

Она предполагает:

    1) отсутствие неточно введенных данных или двух одинаковых записей об одном и том же факте;

    2) защиту от ошибок при обновлении БД;

    3) невозможность удаления (или каскадное удаление) связанных данных разных таблиц;

    4) неискажение данных при работе в многопользовательском режиме и в распределенных базах данных;

    5) сохранность данных при сбоях техники (восстановление данных).

Целостность обеспечивается Триггеры целостноститриггерами целостности - специальными приложениями-программами, работающими при определенных условиях. Защита данных от несанкционированного доступа предполагает ограничение доступа к конфиденциальным данным и может достигаться:

    1) введением системы паролей;

    2) получением разрешений от администратора базы данных (АБД);

    3) запретом от АБД на доступ к данным;

    4) формирование видов - таблиц, производных от исходных и предназначенных конкретным пользователям.

Три последние процедуры легко выполняются в рамках языка структуризованных запросов Structured Query Language - SQL, часто называемого SQL2.

Стандартизация обеспечивает преемственность поколений Система управления базы данныхСУБД, упрощает взаимодействие БД одного поколения СУБД с одинаковыми и различными моделями данных. Стандартизация (ANSI/SPARC) осуществлена в значительной степени в части интерфейса пользователя СУБД и языка SQL. Это позволило успешно решить задачу взаимодействия различных реляционных СУБД как с помощью языка SQL, так и с применением приложения Open DataBase Connection (ODBC). При этом может быть осуществлен как локальный, так и удаленный доступ к данным (технология клиент/сервер или сетевой вариант).

2.2.
Концепция построения БД

Представляет интерес эволюция концепции База данныхбаз данных ссылка на источники литературы.

Первоначально (начало 60-х годов) использовалась файловая система хранения. Для решения преимущественно инженерных задач, характеризующихся небольшим количеством данных и значительным объемом вычислений, данные хранились непосредственно в программе. Применялся последовательный способ организации данных, имелась их высокая избыточность, идентичность логической и физической структур и полная зависимость данных. С появлением экономико-управленческих задач (информационная система руководства - MIS), отличающихся большими объемами данных и малой долей вычислений, указанная организация данных оказалась неэффективной. Требовалось упорядочение данных, которое, как выяснилось, возможно было проводить по двум критериям: использование (информационные массивы); хранение (базы данных). Первоначально применяли информационные массивы, но вскоре стало ясно превосходство баз данных. Использование файлов для хранения только данных (рис. 2.1, а)Рис. 02.01. а) Файловая система было предложено Мак ГриМак Гри в 1959 году. Были разработаны методы доступа (в том числе произвольного) к таким файлам, при этом физическая и логическая структуры уже различались, а физическое расположение данных можно было менять без изменения логического представления.

В 1963 году Бахман С.С. Бахманом была построена первая промышленная база данных IDS с сетевой моделью данных, которая все еще характеризовалась избыточностью данных и их использованием только для одного приложения. Доступ к данным осуществлялся с помощью соответствующего программного обеспечения. В 1969 году сформировалась группа, создавшая набор стандартов КОДАСИЛ (CODASYL)CODASYL для сетевой модели данных.

Фактически начала использоваться (рис. 2.1, б)Рис. 02.01. б) СУБД для хранения данных современная архитектура базы данных. Под архитектурой понимается разновидность (обобщение) структуры, в которой какой-либо элемент может быть заменен на другой элемент, характеристики входов и выходов которого идентичны первому элементу. Существенный скачок в развитии технологии баз данных дала предложенная Кодд М.М. Коддом в 1970 году парадигма реляционной модели данных. Под Парадигмапарадигмой понимается научная теория, воплощенная в систему понятий, отражающих существенные черты действительности. Теперь логические структуры могли быть получены из одних и тех же физических данных, т.е. доступ к одним и тем же физическим данным мог осуществляться различными приложениями по разным путям. Стало возможным обеспечение целостности и независимости данных.

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

Прежде чем рассматривать процедуры работы с базой данных, дадим набор характеристик База данныхБД (рис. 2.2)Рис. 02.02. Характеристики БД и пояснения к нему.

Существует два подхода к построению БД, базирующихся на двух подходах к созданию Автоматизированная система управленияавтоматизированной системы управления (АСУ).

Первый из них, широко использовавшийся в 80-е годы и потому получивший название классического (традиционного), связан с автоматизацией документооборота (совокупность документов, движущихся в процессе работы предприятия). Исходными и выходными координатами являлись документы, как это видно из примера 2.1.

Пример 2.1. Задача ставится следующим образом. Имеется система ручных документов, форма одного из которых показана в табл. 2.1.

Таблица 2.1.

Данные о поставках

Код поставщика Имя поставщика Вид товара Кол-во товара Дата поставки
         
Необходимо с помощью БД получить - по регламенту или по запросу - информацию в виде другой системы документов, форма одного из которых приведена в табл. 2.2.

Таблица 2.2.

Отчет о поставках за квартал

Код поставщика Имя поставщика Вид товара Кол-во товара Цена единицы Стоимость товара
           

Использовался следующий тезис. Данные менее подвижны, чем алгоритмы, поэтому следует создать универсальную БД, которую затем можно использовать для любого алгоритма. Однако вскоре выяснилось, что создание универсальной БД проблематично. Господствовавшая до недавнего времени концепция интеграции данных при резком увеличении их объема оказалась несостоятельной. Более того, стали появляться приложения (например, текстовые, графические редакторы), базирующиеся на широко используемых стандартных алгоритмах. Выявились стандартные алгоритмы и в управлении (бизнесе), как это следует из примера 2.2.

Пример 2.2. Рассмотрим стандартную процедуру использования банковской кредитной карточки. Покупатель-клиент выбирает товар в супермаркете и, подходя к кассе, предъявляет для оплаты кредитную карточку. Она опускается в специальный приемник, и данные с нее считываются и передаются в компьютер супермаркета. Этот компьютер связывается с компьютером банка, в котором хранятся деньги клиента. Данные из компьютера банка (относительно клиента) передаются в компьютер супермаркета. Если у клиента на счете в банке больше средств, чем стоимость отобранного им товара, то компьютер маркета разрешает отпустить товары. Одновременно он проводит пересчет средств на счете клиента, внося изменения в финансовые документы супермаркета, в счет клиента в банке и кредитную карточку. Кредитная карточка с измененными данными возвращается клиенту. Если средств у клиента недостаточно, кредитная карточка может быть возвращена клиенту и он не будет обслужен в супермаркете.

К 90-м годам сформировался второй, современный подход, связанный с автоматизацией управления. Он предполагает первоначальное выявление стандартных алгоритмов приложений (алгоритмов бизнеса в зарубежной терминологии), под которые определяются данные, а стало быть, и база данных. Объектно-ориентированное программирование только усилило значимость этого подхода. Состав БД для различных подходов представлен на рис. 2.3.Рис. 02.03. Схемы классического (а) и современного подходов при построении БД

В работе БД возможен одно- и многопользовательский (несколько пользователей подключаются к одному компьютеру через разные порты) режимы.

Используют База данных: Восходящее проектированиевосходящее и База данных: Нисходящее проектированиенисходящее проектирование БД. Первое применяют в распределенных БД при интеграции спроектированных локальных баз данных, которые могут быть выполнены с использованием различных моделей данных. Более характерным для централизованных БД является нисходящее проектирование.

В последующих разделах первоначально будет рассмотрен классический подход для централизованных БД, а затем - современный. Распределенным БД посвящена часть III настоящей работы.

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

2.3.
Методология проектирования баз данных

Существует много разновидностей методологии рассмотрения баз данных в классическом подходе ссылка на источники литературы, однако чаще всего придерживаются методологии ANSI/SPARCссылка на источники литературы, схема которой представлена на рис. 2.5.

На рис. 2.5Рис. 02.05. Схема этапов проектирования БД показана совокупность процедур проектирования База данных централизованнаяцентрализованной БД, которые можно объединить в четыре этапа.

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

Этап концептуального проектирования заключается в описании и синтезе информационных требований пользователей в первоначальный проект БД. Исходными данными могут быть совокупность документов пользователя (рис. 2.4)Рис. 02.04. Схема создания использования БД при классическом подходе или алгоритмы приложений (алгоритмы бизнеса) при современном подходе. Результатом этого этапа является высокоуровневое представление (в виде системы таблиц БД) информационных требований пользователей на основе различных подходов.

Сначала выбирается модель БД. Затем с помощью ЯОД создается структура БД, которая заполняется данными с помощью команд ЯМД, систем меню, экранных форм или в режиме просмотра таблиц БД. Здесь же обеспечивается защита и целостность (в том числе ссылочная) данных с помощью СУБД или путем построения триггеров.

В процессе логического проектирования высокоуровневое представление данных преобразуется в структуру используемой СУБД. Основной целью этапа является устранение избыточности данных с использованием специальных правил нормализации (рис. 2.4).Рис. 02.04. Схема создания использования БД Цель нормализации - минимизировать повторения данных и возможные структурные изменения БД при процедурах обновления. Это достигается разделением (декомпозицией) одной таблицы в две или несколько с последующим использованием при запросах операции навигации. Заметим, что навигационный поиск снижает быстродействие БД, т.е. увеличивает время отклика на запрос. Полученная логическая структура БД может быть оценена количественно с помощью различных характеристик (число обращений к логическим записям, объем данных в каждом приложении, общий объем данных). На основе этих оценок логическая структура может быть усовершенствована с целью достижения большей эффективности.

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

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

На этапе физического проектирования решаются вопросы, связанные с производительностью системы, определяются структуры хранения данных и методы доступа.

Взаимодействие между этапами проектирования и словарной системой необходимо рассматривать отдельно. Процедуры проектирования могут использоваться независимо в случае отсутствия словарной системы. Сама словарная система может рассматриваться как элемент автоматизации проекти-рования.

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

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

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

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

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

Основными причинами низкой эффективности проектируемых БД могут быть:

  • недостаточно глубокий анализ требований (начальные этапы проектирования), включая их семантику и взаимосвязь данных;

  • большая длительность процесса структурирования, делающая этот процесс утомительным и трудно выполняемым при ручной обработке.

В этих условиях важное значение приобретают вопросы автоматизации разработки.

2.4.
Методология использования баз данных

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

В БД имеется три уровня представления данных (рис. 2.4):Рис. 02.04. Схема создания использования БД концептуальная, логическая и физическая базы данных.

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

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

В логическом представлении применяются следующие виды моделей данных: иерархические, сетевые, реляционные, объектно-ориентированные (объектно-реляционные).

Модель данных иерархическаяИерархическая модель является разновидностью сетевой, являющейся совокупностью деревьев (лесом).

Модель данных сетеваяСетевая модель является моделью объектов-связей, допускающей только бинарные связи «многие к одному», и использует для описания модель ориентированных графов.

Модель данных реляционнаяРеляционная модель использует представление данных в виде таблиц (реляций, связей). В ее основе лежит математическое понятие теоретико-множественного отношения: она базируется на реляционной алгебре и теории отношений.

В Модель данных объектно-ориентированнаяобъектно-ориентированной модели используются понятия класса, объекта, метода.

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

В общем случае процесс запроса состоит из ряда этапов (И1 - И2 на рис. 2.4).Рис. 02.04. Схема создания использования БД Пользователь должен знать структуру БД или обратиться к Администратор базы данныхАБД.

На этапе И1 пользователь должен выяснить, какие формы документов ему нужны. Это могут быть не только логические модели пользователя, но и различные их модификации при разных сочетаниях полей. Поскольку логические (а тем более модифицированные логические) модели могут отличаться от логической модели БД, следует определить, какие сочетания полей необходимы для выводимых машинных документов.

Эти сочетания образуются с помощью элементарных правил (этап И2), изучаемых реляционной алгеброй и реляционным исчислением. Далее правила следует трансформировать в соответствующие варианты обращения к СУБД через ее интерфейс. Это могут быть меню, экранные формы, язык программирования (например, SQL), запрос по примеру, режим просмотра таблиц БД. Результат может быть представлен в виде таблиц или отчетов.

При эксплуатации БД используют и две специфические операции: навигацию и спецификацию.

НавигацияНавигация - операция, результат которой представлен единым объектом, полученным при прохождении пути по логической структуре (совокупности таблиц, связь между которыми осуществляется по ключам) БД.

СпецификацияСпецификация - операция, результатом которой является новая структура (таблица), построенная на основе структур таблиц базы данных. Эта таблица получила название «вид».

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

Существует два основных направления реализации СУБД: программное и аппаратное.

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

Система управления базы данных: Аппаратная реализацияАппаратная реализация предусматривает использование и так называемых машин баз данных (МБД). Их появление вызвано возросшими объемами информации и требованиями к скорости доступа.

Таким образом, в соответствии с рис. 2.4, 2.5Рис. 02.04. Схема создания использования БДРис. 02.05. Схема этапов проектирования БД теоретические вопросы можно скомпоновать в две группы (рис. 2.6).Рис. 02.06. Проблемы БД

  1. Общая теория баз данных. Сюда относятся вопросы, не зависящие от моделей данных:

    а) математический аппарат баз данных (глава 3);

    б) описание структуры БД, в том числе различных МД с их сравнительными характеристиками, выбор МД, структурные преобразования БД.

  2. Теория реляционных БД (глава 4). Для них наиболее продвинута прикладная математическая теория БД. Она включает три фактически автономных раздела (рис. 2.6):Рис. 02.06. Проблемы БД

    а) организация структур таблиц БД (прежде всего нормирование), их заполнение и обеспечение составляющих целостности - при проектировании БД;

    б) обеспечение целостности данных и их восстановление за счет соответствующих характеристик СУБД - в процессе работы СУБД;

    в) организация запросов и обновления данных - при эксплуатации БД.

В дальнейшем изложении материала будем руководствоваться рис. 2.6.Рис. 02.06. Проблемы БД

© Центр дистанционного образования МГУП