- •А.И. Костюк
- •Введение
- •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
5.3. Графическое представление
Каждый студент университета слушает несколько курсов. В свою очередь каждый курс лекций посещает ряд студентов. Сведений только о курсах и студентах явно недостаточно, поскольку неясно, какая оценка получена конкретным студентом по данному курсу. С другой стороны, сведений только о курсах и об оценках также недостаточно. Необходимо знать, какие оценки получены каждым из студентов по каждому прослушанному им курсу (рис. 5.7).
Рис. 5.7
Взаимосвязи между СТУДЕНТОМ, КУРСОМ и ОЦЕНКОЙ. Данный студент может изучать несколько курсов. Данный курс могут изучать несколько студентов. Оценка показывает степень усвоения курса студентом.
На рис. 5.8 представлена концептуальная модель предметной области, взаимосвязи между объектами которой изображены на рис. 5.7 и могут интерпретироваться следующим образом: каждый студент может посещать несколько курсов;
• по каждому курсу могут заниматься несколько студентов;
• каждая конкретная оценка может и должна быть выставлена только одному студенту и только по одному курсу;
• двойная стрелка, связывающая студентов и оценки, отражает тот факт, что студент может иметь нуль, одну или несколько оценок в зависимости от числа курсов, которые он прослушал. Двойная стрелка обозначает взаимосвязь типа «ко многим». Мы воспользуемся здесь схематическим представлением концептуальной модели. Рассмотрим, как выявляются объекты, взаимосвязи между элементами данных, отражающими свойства объектов и взаимосвязи между самими объектами.
Рис. 5.8
Концептуальные требования основаны на следующих предположениях:
Студенту соответствует один идентификационный номер.
Идентификационный номер студента однозначно определяет его имя и статус, главный и второстепенный предметы и куратора.
Курс с одним и тем же номером может быть прочитан в течение различных семестров и в различных университетских городках. При чтении курса его название может меняться. Преподаватели, ведущие курс, от семестра к семестру могут меняться. Точно так же могут меняться университетский городок, аудитория и период, в течение которого читается данный курс.
В данный семестр определенный курс читает конкретный преподаватель. Занятия проводятся в конкретных университетском городке и аудитории. Зафиксирована также продолжительность курса и число зачетов, которые будут приняты по этому курсу.
Студент вправе определить, сколько он собирается сдавать зачетов по данному курсу в данном семестре. Слушатели, т. е. студенты, не сдающие экзамены по данному курсу, сдают по нему и меньше зачетов.
Все эти предположения должны быть отражены в нашей концептуальной модели.
Эти отношения после нормализации могут быть представлены следующим образом:
СЕМЕСТР – ДНАЧСЕМ, ДКОНСЕМ.
НОМ-СТУДЕНТА – ИМЯ-СТУДЕНТА, СТАТУС, ГЛАВНЫЙ, ВТОРОСТЕПЕННЫЙ, КУРАТОР.
СЕМЕСТР*НОМ-КУРСА – НАЗВ-КУРСА, ИМЯ-ПРЕП, ГОРОДОК, ДЕНЬ-ВРЕМЯ, ЗДАНИЕ-НОМ-АУДИТОРИИ.
СЕМЕСТР*НОМ-КУРСА*НОМ-СТУДЕНТА – ЗАЧЕТЫ.
Тогда имеем следующее:
1. Каждое отношение, первичный ключ которого содержит один элемент данных, представляет объект. Отношения 1 и 2 представляют объекты СЕМЕСТР и СТУДЕНТ. Объекты .такого типа размещаются на первом уровне (рис. 5.9). Внутри прямоугольников перечисляются имена элементов данных. Первичные ключи объектов подчеркиваются. Если прямоугольник не содержит всех элементов данных, представляющих свойства объекта, то пропуски обозначаются тремя дефисами (---).
2. Отношения, в первичные ключи которых входят два элемента, являющиеся первичными ключами отношений, представляют взаимосвязи между этими объектами. Если же один из ключевых элементов не является ключом одного из отношений, то генерируется новое отношение, представляющее объект. Например, составной ключ отношения 3 представляет взаимосвязь между объектами СЕМЕСТР и КУРС. Элемент НОМ-КУРСА не является первичным ключом ни одного из отношений. Образуется новое отношение КУРС, представляющее соответствующий объект; оно изображается прямоугольником на уровне 1. Взаимосвязь между двумя объектами выражается с помощью объекта СЕМЕСТР+КУРС, изображаемого прямоугольником, находящимся на втором уровне. Вновь образованный объект выделяется пунктирной линией.
Одинарная и двойная стрелки, соединяющие объекты, представленные отношениями 1 и 3, и объект КУРС, выделенный пунктиром, отражают тот факт, что в течение семестра читается несколько курсов и что курс может читаться в течение нескольких семестров.
3. Процедура, выполненная для второго уровня, выполняется на третьем уровне, где имеются отношения, ключ которых состоит из трех элементов данных, и т. д.
Полученная в результате диаграмма для отношений 1, 2, 3 и 4 приведена на рис. 5.9, что и будет являться графическим представлением концептуальной модели данных.
Рис. 5.9
Разработав концептуальную модель, АБД может приступить к созданию логической модели (реляционной, иерархической или сетевой).