- •А.И. Костюк
- •Введение
- •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.4. База данных
1.4.1. Определение базы данных
База данныхпредставляет собой совокупность связанных данных конкретной предметной области. Определения данных и отношения между данными в базе данных отделены от процедурных предложений программы. Основное различие между базой данных и файлом состоит в том, что база данных может иметь несколько назначений, соответствующих различным представлениям о хранимых данных. Несколько назначений может иметь и файл, но соответствует при этом он только одному представлению. Несколько представлений файла можно получить лишь сортировкой данных. Множество назначений базы данных возникает вследствие ее эксплуатации многими пользователями. Например, при выполнении банковских операций информация о клиентах может потребоваться при рассмотрении расходов, приходов, взносов и ссуд по закладным. Таким образом, разделение данных определяет основное назначение системы с базами данных конкретной предметной области.
Для ведения баз данных раздельно от прикладных программ требуется некоторое расширение обобщенных методов доступа. Это расширение называют «системой управления базами данных» [4] [5].
1.4.2. Система управления базами данных
Для интеграции файлов в базу данных и обеспечения различным пользователям различных представлений о данных необходима система. Программное обеспечение, аппаратные средства, программируемая логика и процедуры, осуществляющие управление базой данных, образуют систему управления базами данных(СУБД). СУБД создает возможность доступа к интегрированным данным, которые пересекают операционные, функциональные и организационные границы в предметной области (см. рис. 1.4).
Рис 1.4
1.4.3. Недостатки интеграции данных
Интеграция данных какой-либо предметной области может иметь и ряд недостатков. Из-за интеграции данных отдельных файлов в базе данных пользователи теряют право единоличного владения ими, что может привести к снижению ответственности и, как следствие, к уменьшению достоверности данных за счет увеличения числа пропущенных неточных сведений. Если не предусмотреть специальных мер повышения непротиворечивости и достоверности данных, могут возникнуть серьезные проблемы. Без соответствующего аппарата разграничения доступа к базе данных повышается вероятность нарушений защиты данных. Более того, незащищенная база данных может создать на предприятии неблагоприятную атмосферу, поскольку обслуживаемые ею пользователи могут иметь разные интересы и потребности. Интегрированная база данных ставит также под угрозу секретность хранимой информации. Традиционно под секретностью понимают право человека на «неразглашение тайны». В интегрированной базе данных легче накапливать сведения о людях и организациях и затем выдавать их лицу или организации, доступ которых к ней не разрешен. Поэтому, если СУБД не гарантирует соответствующий уровень непротиворечивости, защиты и секретности, а база данных не сконструирована надлежащим образом, ее применение может породить новые проблемы.
В этой связи мы можем сформулировать ряд требований, которым должна удовлетворять СУБД. К ним, в частности, относятся:
• эффективное выполнение одной и той же СУБД различных функций предметной области;
• минимизация избыточности хранимых данных;
• предоставление для процессов принятия решений непротиворечивой информации;
• обеспечение управления безопасностью;
• отсутствие повышенных требований к персоналу, связанному с разработкой, поддержанием и совершенствованием прикладных программ при большей производительности и меньших затратах;
• простая физическая реорганизация базы данных;
• возможность централизованного управления базой данных;
• упрощение процедуры эксплуатации ЭВМ.
Как организовать информацию об объектах предметной области и какие взаимосвязи необходимо установить для объединения информации о различных объектах? Как уменьшить чувствительность базы данных предметной области к расширению и реорганизации фирмы? Как разработать и реализовать управление мерами по обеспечению защиты, непротиворечивости и достоверности? Как обеспечить процедуры восстановления и повторного запуска? Иными словами, как эффективно спроектировать, реализовать и поддерживать базу данных? Для ответа на все эти вопросы требуется хорошо представлять себе предметную область и иметь соответствующие технические знания. Необходимо ввести центральную функцию, которая сможет обеспечить эффективную структуру данных, объектов и их взаимосвязей по отношению к пользовательскому коллективу. Такая структура должна быть эффективна именно по отношению к пользовательскому коллективу, а не к одному определенному пользователю. Эта центральная функция называется функцией администрирования базы данных.