- •В.И. Швецов, А.Н. Визгунов, И.Б. Мееров
- •БАЗЫ ДАННЫХ
- •ОГЛАВЛЕНИЕ
- •ПРЕДИСЛОВИЕ
- •1.1. Развитие основных понятий представления данных
- •1.2. Системы управления базами данных
- •3. Обеспечение логической и физической независимости данных.
- •4. Защита логической целостности базы данных.
- •5. Защита физической целостности.
- •7. Синхронизация работы нескольких пользователей.
- •8. Управление ресурсами среды хранения.
- •9. Поддержка деятельности системного персонала.
- •1.4. Краткий обзор литературы и других доступных источников
- •1.5. Различные представления о данных в базах данных
- •1.6.1. Модель с централизованной архитектурой
- •1.6.2. Модель с автономным персональными ЭВМ
- •1.7. Краткий обзор СУБД
- •1.7.1. Настольные СУБД
- •1.7.2. Серверные СУБД
- •1.8. Основные этапы проектирования базы данных
- •ГЛАВА 2. КОНЦЕПТУАЛЬНОЕ МОДЕЛИРОВАНИЕ БАЗЫ ДАННЫХ
- •2.1. Сложный пример предметной области
- •2.2. Способы описания предметной области
- •2.4. Описание информационных потребностей пользователя
- •2.5. Построение ER-диаграмм
- •2.7. Построение концептуальной модели
- •2.7.1. Моделирование локальных представлений
- •2.7.2. Объединение локальных моделей
- •Слияние идентичных элементов
- •Установление связей между наборами сущностей разных моделей
- •Введение агрегированных элементов
- •Обобщение подобных типов сущностей
- •2.9. Ограничения целостности
- •3.1. Общие представления о модели данных
- •3.2. Сетевая модель данных
- •3.3. Иерархическая модель данных
- •3.4. Реляционная модель данных
- •3.5. Многомерная модель данных
- •ГЛАВА 4. ФОРМАЛИЗАЦИЯ РЕЛЯЦИОННОЙ МОДЕЛИ
- •4.2. Манипулирование данными в реляционной модели
- •4.3. Операции реляционной алгебры
- •4.4.1. Проблема выбора рациональных схем отношений
- •Полное множество функциональных зависимостей
- •4.4.3. Декомпозиция схемы отношения
- •Вторая нормальная форма (2НФ)
- •Третья нормальная форма (3НФ)
- •Мотивировка третьей нормальной формы
- •Нормальная форма Бойса-Кодда (НФБК)
- •Мотивировка нормальной формы Бойса-Кодда
- •4.4.5. Пример нормализации до 3НФ
- •ГЛАВА 5. ФИЗИЧЕСКИЕ МОДЕЛИ ДАННЫХ (СТРУКТУРЫ ХРАНЕНИЯ)
- •5.1. Структура памяти ЭВМ
- •5.2. Представление экземпляра логической записи
- •5.4. Структуры хранения данных во внешней памяти ЭВМ
- •5.4.1. Последовательное размещение физических записей
- •Поиск записи с заданным значением ключа
- •Чтение записи с заданным значением ключа
- •Корректировка записи
- •Удаление записи
- •Добавление записи
- •Поиск записи с заданным значением ключа
- •Чтение записи
- •Корректировка и удаление записи
- •Добавление записи
- •Поиск записи с заданным значением ключа
- •Чтение записи
- •Корректировка записи
- •Удаление записи
- •Добавление записи
- •5.4.4. Использование индексов (индексирование)
- •Поиск записи с заданным значением ключа
- •Чтение записи
- •Корректировка записи
- •Удаление записи
- •Добавление записи
- •5.4.5. Бинарное дерево (В-дерево)
- •Поиск и чтение записи с заданным значением ключа
- •Модификация (корректировка) записи
- •Удаление записи
- •Добавление записи
- •5.4.6. Размещение записей с использованием хэширования
- •Поиск записи с заданным значением ключа и чтение
- •Модификации записи
- •Удаление записи
- •Добавление записи
- •5.4.7. Комбинированные структуры хранения
- •6.1.1. Архитектура базы данных
- •Логический уровень
- •Физический уровень
- •Файлы и группы файлов
- •Страницы и группы страниц
- •6.2.1. Проблемы доступа и обработки данных
- •6.2.2. Навигационный подход
- •6.3. Понятие языка SQL и его основные части
- •6.3.1. История возникновения и стандарты языка SQL
- •6.3.2. Достоинства языка SQL
- •6.3.3. Разновидности SQL
- •6.4.1. Использование SQL для выбора информации из таблицы
- •Простейший запрос
- •Использование агрегатных функций. Простые запросы
- •Форматирование вывода. Выражения в запросе. Упорядочение
- •6.4.4. Язык SQL и операции реляционной алгебры
- •6.5. Программный (встроенный) SQL
- •6.5.1. Статический SQL
- •6.6.1. Библиотека DB-Library
- •6.6.2. Протокол ODBC
- •6.6.3. Протокол OCI
- •6.6.4. Протокол JDBC
- •ГЛАВА 7. ТЕНДЕНЦИИ РАЗВИТИЯ БАЗ ДАННЫХ
- •Объектно-ориентированное программирование
- •Объектно-ориентированные базы данных
- •Объектно-реляционные базы данных
- •7.2. Распределенные базы данных
- •СПИСОК ЛИТЕРАТУРЫ
- •УЧЕБНАЯ ПРОГРАММА КУРСА
- •Цели и задачи курса
- •Дисциплины, изучение которых необходимо для данного курса
- •Программа курса (36 ч. лекций, 18 ч. лабораторных работ)
- •2. Концептуальное моделирование базы данных (6 часов)
- •4. Формализация реляционной модели (6 часов)
- •5. Физические модели данных (структуры хранения) (4 часа)
- •7. Тенденции развития баз данных
- •Список литературы
- •УЧЕБНЫЕ ПОСОБИЯ
- •ОСНОВНЫЕ РЕКОМЕНДУЕМЫЕ МОНОГРАФИИ
- •ЛИТЕРАТУРА ПО ПРОГРАММНЫМ СРЕДСТВАМ
- •ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА
- •ЛАБОРАТОРНЫЙ ПРАКТИКУМ
- •ОПИСАНИЕ ЛАБОРАТОРНЫХ РАБОТ
- •Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •ВИДЫ ПРЕДМЕТНЫХ ОБЛАСТЕЙ
- •1. Страховая компания
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •2. Гостиница
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •3. Ломбард
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи.
- •4. Реализация готовой продукции
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •5. Ведение заказов
- •Описание предметной области
- •Таблицы
- •6. Бюро по трудоустройству
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи.
- •7. Нотариальная контора
- •Описание предметной области
- •Таблицы
- •8. Фирма по продаже запчастей
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •9. Курсы по повышению квалификации
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •10. Определение факультативов для студентов
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •11. Распределение учебной нагрузки
- •Описание предметной области
- •Таблицы
- •12. Распределение дополнительных обязанностей
- •Описание предметной области
- •Таблицы
- •13. Техническое обслуживание станков
- •Описание предметной области
- •Таблицы
- •14. Туристическая фирма
- •Описание предметной области
- •Таблицы
- •15. Грузовые перевозки
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •16. Учет телефонных переговоров
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •17. Учет внутриофисных расходов
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •18. Библиотека
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •19. Прокат автомобилей
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •20. Выдача банком кредитов
- •Описание предметной области
- •Таблицы
- •21. Инвестирование свободных средств
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •22. Занятость актеров театра
- •Описание предметной области
- •Таблицы
- •23. Платная поликлиника
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •25. Учет телекомпанией стоимости прошедшей в эфире рекламы
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •26. Интернет-магазин
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •27. Ювелирная мастерская
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •28. Парикмахерская
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •29. Химчистка
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •30. Сдача в аренду торговых площадей
- •Описание предметной области
- •Таблицы
- •Развитие постановки задачи
- •ПРИМЕР ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ
- •Лабораторная работа №1
- •Краткое задание
- •Пример выполнения
- •Вариант 2.
- •Вариант 3.
- •Сетевая модель
- •Иерархическая модель
- •Реляционная модель
- •Лабораторная работа №2
- •Краткое задание
- •Пример выполнения
- •Таблица Абитуриенты
- •Таблица Экзамены
- •Таблица Оценки
- •Схема данных
- •Абитуриенты-Оценки
- •Экзамены-Оценки
- •Импорт данных
- •Таблица «Абитуриенты»
- •Таблица «Экзамены»
- •Таблица «Оценки»
- •Лабораторная работа №3
- •Краткое задание
- •Пример выполнения
- •Лабораторная работа №4
- •Краткое задание
- •Пример выполнения
- •Лабораторная работа №5
- •Краткое задание
- •Пример выполнения
- •Описание расширенной предметной области
- •Состав хранимой информации
- •Диаграммы «Сущность-Связь»
- •Таблицы в 3НФ
- •Скрипты для создания объектов базы данных в СУБД Oracle
- •Лабораторная работа №6
- •Краткое задание
- •Пример выполнения
ных, таблицы которых выполнены в формате DBase или Paradox. Совершенно понятно, что изначально эти СУБД были рассчитаны на работу в среде MSDos, однако современные средства доступа к данным позволяют с успехом использовать их под Windows, не особенно различая, какой конкретно из форматов представления таблиц используется. В частности, разработанный фирмой Borland механизм BDE (Borland Database Engine) предоставляет средства для работы с таблицами DBase, FoxPro, Paradox, Access, которые инкапсулируют внутри себя всю информацию о структуре таблиц, делая прикладного программиста «прозрачной» работу с данными. Так, текст программы, обрабатывающей базу данных, выполненную в формате одной из этих систем, вряд ли будет зависеть от того, с какой из систем действительно ведется работа.
1.7.2. Серверные СУБД
Однако, для крупных организаций ситуация принципиально меняется. Там использование файл-серверных технологий является неудовлетворительным по описанным выше причинам. Поэтому, на передний край борьбы за автоматизацию выходят так называемые серверные СУБД, разработкой которых активно занимаются компании IBM, INFORMIX, INPRISE, MICROSOFT, ORACLE, SYBASE (в алфавит-
ном порядке). Так, в настоящий момент на рынке серверных СУБД видное место занимают DB2, Informix, MS SQL Server, Oracle, Sybase, Interbase. Вот некоторые выдержки из рекламных проспектов, взятые с сайтов www.interface.ru и www.ibm.com.ru:
«Microsoft SQL Server 2000 – это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В сервер SQL Server 2000 включена поддержка языка XML и протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бесперебойную работу, функции для улучшения управления и настройки, снижающие совокупную стоимость владения. Кроме того, SQL Server 2000 полностью использует все возможности операционной системы Windows, включая поддержку до 32 процессоров и 64 ГБ ОЗУ.
47
Пример пользовательского интерфейса СУБД, SQL Server приводится на рис. 13.
Рис. 13. Пользовательский интерфейс СУБД Microsoft SQL Server
Достоинства MS SQL Server:
Широкая поддержка языка XML и стандартов Интернета. Удобный доступ к данным через веб.
Эффективные средства анализа данных на базе веб. Платформа для безопасного размещения приложений. Масштабируемость для электронной коммерции. Масштабируемость для бизнес-приложений. Масштабируемость для хранилищ данных.
Значительно увеличенные продолжительность бесперебойной работы и надежность.
Интегрированные и расширяемые службы анализа. Упрощенное управление и настройка.
Быстрые преобразование данных, разработка и отладка» [47]
«Oracle9i Database нацелена на недавно сложившийся рынок Ин- тернет-приложений и отвечает самым строгим требованиям к качеству обслуживания. Она обладает возможностями кластеризации, мощными и экономичными средствами безопасности, исключает потери данных
48
и позволяет интерактивно обмениваться информацией. Oracle9i Database удовлетворит все потребности вашего электронного бизнеса в Интернете.
Основные качества:
Масштабируемость (модуль Oracle Real Application Clusters обес-
печивает масштабируемость, не зависит от используемых компонентов и позволяет масштабировать вашу систему своими силами).
Высокая доступность (Oracle9i позволяет организовать непрерывный доступ к данным, практически исключая запланированные и аварийные задержки).
Управление системами (встроенные в Oracle9i средства управления системами позволяют контролировать все жизненно важные компоненты, занятые в процессах электронного бизнеса).
Безопасность в Oracle9i (Oracle9i – одна из самых безопасных платформ Интернета для защиты информационного актива вашей компании).
Новые возможности:
Обмен деловой информацией и хранилища данных
Oracle9i Dynamic Services Java и XML в Oracle9i
Любой масштаб СУБД Любые компьютерные платформы и архитектуры Любые типы приложений Любые типы данных
Переносимость приложений на платформе Oracle» [44].
«IBM DB2 Universal Database:
Поддерживает новейшие стандарты Java™, а также другие технологии Web.
Предоставляет интегрированные инструменты для интеллектуального управления бизнесом.
Расширяет объектно-реляционные возможности.
Сохраняет лидерство в области систем управления данными с высокой доступностью и большой производительностью. Обеспечивает централизованное управление гетерогенными системами.
Позволяет выполнять более глубокую обработку данных.
49
Поддерживает широкий диапазон операционных систем, в том числе Linux®» [46]
«SQL-сервер баз данных Borland InterBase 6 объединяет простоту использования, низкие затраты на сопровождение и мощность систем корпоративного уровня. Borland гарантирует, что InterBase 6 совмещает силу мощной, апробированной архитектуры с развитыми технологиями, необходимыми для успеха прикладных систем.
Основные качества:
Повышенная производительность за счет развитой архитектуры. Многопотоковая архитектура.
Поддержка Java.
Высокая надежность всех ваших приложений. Мощная поддержка различных типов данных. Сигнализаторы событий.
Самонастройка и простота инсталляции.
Реальная идентичность функциональных возможностей. Независимость от клиента и инструментария. Эффективность использования ресурсов.
Строгое соблюдение индустриальных стандартов. Поддержка интернациональных требований бизнеса. InterBase: Embed.Deploy.Relax.
Репликация в InterBase» [47].
Мы привели краткий обзор незначительной части существующих СУБД. При огромном разнообразии СУБД вполне естественны споры (которые возникали с момента появления СУБД и, по-видимому, не утихнут никогда) о том, какая СУБД лучше. Нам представляется, что однозначного ответа на этот вопрос не существует. Каждая СУБД имеет свои области применимости, у каждой из них существуют свои достоинства и недостатки. Каждый из читателей может иметь личные пристрастия, которые уменьшают недостатки и увеличивают достоинства в его глазах некоторой конкретной СУБД. Мы считаем, что это нормально. Общих рекомендаций о том, какой из СУБД воспользоваться в каком-то конкретном случае, придумать сложно. Рекомендация может быть только одна: внимательно изучайте обзоры, читайте пресс-релизы, знакомьтесь с отзывами пользователей, сопоставляйте их наблюдения о плюсах и минусах систем с вашими потребностями и возможностями.
50