- •А.И. Костюк
- •Введение
- •1. Данные
- •1.1. Источники данных
- •1.1.1. Предметная область
- •1.1.2. Объект
- •1.1.3. Атрибуты (элементы данных)
- •1.2. Значение данных
- •1.2.1. Ключевой элемент данных
- •1.2.2. Запись данных
- •1.2.3. Файл данных
- •1.3. Недостатки традиционной организации файлов данных
- •1.4. База данных
- •1.4.1. Определение базы данных
- •1.4.2. Система управления базами данных
- •1.4.3. Недостатки интеграции данных
- •1.5. Администратор базы данных
- •1.6. Независимость данных
- •1.6.1. Два уровня независимости данных
- •1.6.2. Способы достижения независимости данных
- •1.7. Словарь данных
- •1.8.Принципы проектирования базы данных и достижения требуемых эксплуатационных характеристик
- •2. Администрирование базы данных
- •2.1. Функция администрирования базы данных
- •2.1.1. Обязанности абд
- •2.1.2. Абд и администрация предприятия
- •2.1.3. Абд и пользователи
- •2.1.4. Абд и разработчики прикладных программ
- •2.1.5. Абд и системная группа
- •2.1.6. Абд и эксплуатационная группа
- •2.1.7. Абд и поставщики программного обеспечения
- •2.1.8. Абд и поставщики аппаратных средств
- •2.2. Жизненный цикл системы с базой данных
- •2.2.1. Проектирование базы данных (этап 1)
- •2.2.2. Материализация базы данных (этап 2)
- •2.2.3. Конвертирование существующих наборов данных и прикладных программ во вновь созданную базу данных (этап 3)
- •2.2.4. Интеграция конвертированных и новых прикладных программ для работы в среде вновь созданной базы данных (этап 4)
- •2.2.5. Эксплуатация (этап 5)
- •2.2.6. Развитие, совершенствование и сопровождение (этап 6)
- •2.3. Абд, группа абд и ее обязанности
- •3. Словарь данных
- •3.1. Что такое словарь данных
- •3.1.1. Назначение
- •3.1.2. Словарь данных и система управления базами данных
- •3.1.3. Интерфейсы
- •3.1.4. Идеальный словарь данных. Требования и организация
- •3.2. Стратегия реализации словаря данных
- •3.2.1. Экономическая целесообразность
- •3.2.2. Условия применения
- •3.2.3. Рекомендации по определению данных
- •4. Модели данных
- •4.1. Что такое модель данных
- •4.2. Взаимосвязи в модели данных
- •4.2.1. Взаимосвязь «один к одному» (между двумя типами объектов)
- •4.2.2. Взаимосвязь «один ко многим» (между двумя типами объектов)
- •4.2.3. Взаимосвязь «многие ко многим» (между двумя типами объектов)
- •4.2.4. Взаимосвязь «один к одному» (между двумя атрибутами)
- •4.2.5. Взаимосвязь «один ко многим» (между двумя атрибутами)
- •4.2.6. Взаимосвязь «многие ко многим» (между двумя атрибутами)
- •4.2.7. Обзор моделей данных
- •4.3. Реляционная модель данных
- •4.3.1. Достоинства модели
- •4.3.2. Недостатки модели
- •4.4. Иерархическая модель данных
- •4.4.1. Иерархическая древовидная структура
- •4.4.2. Включение и удаление данных
- •4.4.3. Достоинства модели
- •4.4.4. Недостатки модели
- •4.5. Сетевая модель данных
- •4.5.1. Представление взаимосвязи «один ко многим»
- •4.5.2. Дополнительные классы наборов
- •4.5.3. Операции включения и удаления в сетевой модели данных
- •4.5.4. Достоинства модели
- •4.5.5. Недостатки модели
- •5. Проектирование концептуальной модели данных
- •5.1. Анализ данных
- •5.1.1. Сбор информации о данных, используемых в существующих прикладных программах
- •5.1.2. Сбор информации о данных для перспективных приложений
- •5.2. Нормализация отношений
- •5.3. Графическое представление
- •6. Проектирование логической модели данных
- •6.1. Отображение на реляционную модель данных
- •6.2. Отображение на иерархическую модель данных
- •6.3. Отображение на сетевую модель данных
- •7. Физическая модель данных
- •7.1. Интерфейсы между пользователем и базой данных
- •7.2. Методы доступа внутренней модели (физической)
- •7.2.1. Физический последовательный метод доступа
- •7.2.2. Индексно-последовательный метод доступа
- •7.2.3. Индексно-произвольный метод доступа
- •7.2.4. Инвертированный метод доступа
- •7.2.5. Прямой метод доступа
- •7.2.6. Метод доступа посредством хеширования
- •7.3. Методы доступа внешней модели (представления пользователя)
- •8. Языкsql
- •8.1. Состав языка sql
- •8.2. Реляционные операции. Команды языка манипулирования данными
- •Команда select Простейшие конструкции команды select
- •Список полей
- •Все поля
- •Все поля в произвольном порядке
- •Вычисления
- •Литералы
- •Конкатенация
- •Использование квалификатора as
- •Работа с датами
- •Агрегатные функции
- •Предложение from команды select
- •Ограничения на число выводимых строк
- •Is null
- •Операции сравнения
- •Between
- •Containing
- •Is null
- •Логические операторы
- •Преобразование типов (cast)
- •Изменение порядка выводимых строк (order by)
- •Упорядочивание с использованием имен столбцов
- •Упорядочивание с использованием номеров столбцов
- •Устранение дублирования (модификатор distinct)
- •Соединение (join)
- •Внутренние соединения
- •Самосоединения
- •Внешние соединения
- •9. Общая характеристика баз знаний и экспертных систем
- •9.1. Терминология
- •9.2. Принципы, структура и функции систем баз знаний (сбз)
- •9.3. Классификация инструментальных средств построения сбз
- •Литература
- •Содержание
- •1. Данные 6
- •2. Администрирование базы данных 21
- •3. Словарь данных 43
- •4. Модели данных 57
- •5. Проектирование концептуальной модели данных 82
1.2.1. Ключевой элемент данных
Некоторые элементы данных обладают интересным свойством. Зная значение, которое принимает такой элемент данных объекта, мы можем идентифицировать значения, которые принимают другие элементы данных этого же объекта. Например, зная идентификационный номер клиента «123456789», мы можем определить, что это «проф. Хиггинс» и что профессор Хиггинс имеет «открытый» счет в банке. Элементы данных, по которым можно определить другие элементы данных, называются ключевыми. Иногда их называют также идентификаторами объекта.
Однозначно идентифицировать объект могут два и более элемента данных. В этом случае их называют «кандидатами» в ключевые элементы данных. Вопрос о том, какой из кандидатов использовать для доступа к объекту, решается пользователем или проектировщиком. Выбирать ключевые элементы данных следует тщательно, поскольку правильный выбор способствует созданию достоверной модели данных.
1.2.2. Запись данных
Совокупность значений связанных элементов данных образует запись данных.На рис. 1.2 такими элементами данных являются фамилия и идентификационный номер клиента, тип счета и т.д. Записи хранятся на некотором носителе, в качестве которого может выступать человеческий мозг, лист бумаги, память ЭВМ, внешнее запоминающее устройство ЭВМ и т. д.
1.2.3. Файл данных
Записи данных образуют файл данных:файл представляет собой упорядоченную совокупность записей. На рис. 1.2 показан пример файла в отпечатанном виде — отчет управляющего отделением (выдержка) с записями одного типа. Файл такого типа — с похожими записями (т. е. содержащими одинаковое число элементов)»—называется «плоским». Файл также может содержать записи различного типа. Иногда файл называют набором данных.
Рис. 1.2
Методы доступа, или универсальные подпрограммы доступа, гарантируют разную степень независимости от физического хранения лепных, при которой некоторые изменения физического хранения могут отражаться в методах доступа и не требовать внесения изменений в прикладные программы. В дальнейшем мы рассмотрим способы создания прикладных программ, не зависящих от физических характеристик устройств хранения данных. Однако прежде обсудим некоторые недостатки традиционной среды файлов данных.
1.3. Недостатки традиционной организации файлов данных
Рассмотрим задачи, связанные с банковскими операциями (рис. 1.1). Ниже перечисляются проблемы, с которыми приходится сталкиваться в процессе обработки данных при использовании нескольких файлов.
Избыточность данных.Некоторые элементы данных, такие, как имя, адрес и идентификационный номер клиента, неизбежно используются во многих прикладных программах. Поскольку данные требуются нескольким прикладным программам, они часто записываются в несколько файлов, т. е. одни и те же данные хранятся в разных местах. Такое положение называют «избыточностью данных». Оно делает проблематичным обеспечение непротиворечивости данных. Избыточность данных требует наличия нескольких процедур ввода, обновления и формирований отчетов.
Проблемы непротиворечивости данных.Одной из причин нарушения непротиворечивости данных является их избыточность, что связано с хранением одной и той же информации в нескольких местах. Как показано на рис. 1.3., адрес одного и того же клиента хранится в четырех различных наборах данных: в файле данных расходных счетов, в файле данных приходных счетов, в файле данных взносов по закладной и в файле данных ссуд по закладной. При смене местожительства клиента необходимо изменить его адрес в четырех местах. Зачастую по разным причинам выполнить это не удается. В результате об одном и том же объекте предметной области в разных местах хранится различная информация.
Рис. 1.3
Нарушение непротиворечивости данных может также явиться следствием недостаточного контроля их достоверности в случае внесения изменений. При попытках объединить данные до появления технологии баз данных пришлось столкнуться с целым рядом трудностей, в частности, из-за:
• недостаточности средств защиты хранимых данных;
• неадекватности процедур восстановления после возникновения отказов;
• трудностей по обеспечению ведения длинных записей;
• негибкости к изменениям;
• высокой стоимости программирования и сопровождения;
• сложности процедур управления эксплуатацией ЭВМ (небрежность и ошибки)
Ограниченное разделение данных.Поскольку в нашей задаче, связанной с банковскими операциями, прикладные программы расхода, прихода, взносов по закладной и ссуд по закладной обеспечивают обработку данных одной организации, между элементами данных различных файлов существует некоторая взаимосвязь. Однако, когда файлы реализованы в виде отдельных единиц, установление связей между элементами данных посредством прикладных программ затруднительно или вообще невозможно. Если предметная область соответствует организации, функционирующей как единое целое, необходимо разделить данные между различными файлами.
Ограничения по доступности данных.В современных условиях, когда обстановка быстро изменяется, лицо с соответствующими правами доступа необходимо иметь возможность получить данные за приемлемый отрезок времени. Если же данные разбросаны по нескольким файлам, доступность данных, комбинируемых из этих файлов, ограничена.
Сложности в управлении.Из-за избыточности данных в файлах трудно реализовать новые директивы по всей предметной области. Например, если номер социального страхования нельзя будет использовать в качестве идентификационного номера, то там, где номер социального страхования уже используется, потребуются определенные временные затраты для внесения изменений во все файлы.
Для решения вышеуказанных проблем были разработаны системы баз данных.