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