- •А.И. Костюк
- •Введение
- •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
4.2.7. Обзор моделей данных
Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных. Эти три модели различаются в основном способами представления взаимосвязей между объектами.
В реляционной модели данных, как показано на табл. 4.1, объекты и взаимосвязи между ними представляются с помощью таблиц. Взаимосвязи также рассматриваются в качестве объектов. Каждая таблица представляет один объект и состоит из строк и столбцов.
Иерархическая модель данных строится по принципу иерархии типов объектов, т. е. один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, – подчиненными. Между главным и подчиненными типами объекта устанавливается взаимосвязь «один ко многим». Иными словами, для данного главного типа объекта существует несколько подчиненных типов объекта. В то же время для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Таким образом, взаимосвязи между объектами напоминают взаимосвязи в генеалогическом древе за единственным исключением: для каждого порожденного (подчиненного) типа объекта может быть только один исходный (главный) тип объекта.
В сетевой модели данных понятия главного и подчиненных объектов несколько расширены. Любой объект может быть и главным, и подчиненным (в сетевой модели главный объект обозначается термином «владелец набора», а подчиненный – термином «член набора»). Один и тот же объект может одновременно выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей.
4.3. Реляционная модель данных
При обсуждении различных взаимосвязей объектов предметной области воспользуемся вновь примерами из системы госпиталя. Обработка данных в такой системе используется с целью регистрации и страхования клиентов, при ретроспективном анализе и в исследованиях последствий медикаментозного лечения. Обрабатываются сведения о пациентах, врачах, процедурах, медикаментах и т. д.На этих примерах мы также проиллюстрируем различные подходы к построению модели данных.
Рассмотрим пример базы данных, показанной на табл. 4.1. Данные в реляционной модели представляются в виде таблицы. В терминологии реляционной модели таблица, подобная представленной на табл. 4.1, называется отношением.Чтобы не смешивать отношения с взаимосвязями между объектами, иногда мы будем называть отношение таблицей. Каждый столбец в таблице являетсяатрибутом.Значения в столбце выделяются издомена,т. е. домен суть множество значений, которые может принимать некоторый атрибут. Так, домен для номера пациента составляют все четырехзначные целые положительные числа (0000, 0001,...., 9999), однако в настоящий момент таблица ПАЦИЕНТЫ содержит только значения 1111, 1234, 2345, 4876, 5123 и 6845. Строки таблицы называютсякортежами.0
Таблица 4.1
ПАЦИЕНТЫ
|
Пациенты |
Атрибут |
Номер |
Имя |
Адрес |
1111 |
Джон Уайт |
15 Нью стрит, Нью-Йорк, Н-Й |
1234 |
Мэри Джонс |
10 Мэйн стрит, Рай, Н-Й |
2345
|
Чарльз Браун
|
Догвуд лэйн, Харрисон, Н-Й
|
4876
|
Хол Кейн
|
55 Бостон построуд, Честер, Н-Й
|
5123
|
Пол Кошер
|
Конн Брук, Мэмаронек, Н–Й
|
6845 |
Энн Худ |
Хилтон роуд, Ларчмонт, Н–Й |
Первичным ключом является номер пациента, т е. номер пациента должен быть уникальным. Таблица имеет три атрибута и (в данный момент времени) шесть кортежей. Мы рассматриваем адрес пациента как единый атрибут, так как не предполагаем в дальнейшем рассматривать его компоненты (номер дома, улицу, город и т.д.) в отдельности.
В соответствии с традиционной терминологией можно сказать, что столбцы таблицы представляют элементы данных, а строки – записи.
Таблица 4.2
ХИРУРГИ
Номер патента хирурга |
Имя |
145 189 243 311 467 |
Бет Литл Дэвид Розен Чарльз Филд Майкл Даймонд Патриция Голд |
Первичным ключом является номер патента хирурга
Таблица 4.3
ПАЦИЕНТ -И - ХИРУРГ
Номер пациента |
Номер патента хирурга |
Дата операции |
Операция |
Препарат, назначенный после операции |
1111 |
145 |
1.01.77 |
Удаление камней из желчного пузыря |
Пенициллин |
1111 |
311 |
12.06.77 |
Удаление камней из почек |
– |
1234 |
243 |
05.04.76 |
Удаление катаракты |
Тетрациклин |
1234 |
467 |
10.05.77 |
Удаление тромба |
– |
2345 |
189 |
08.01.78 |
Операция на открытом сердце |
Цефалоспорин |
4876 |
145 |
05.11.77 |
Удаление желчного пузыря |
Демициллин |
5123 |
145 |
10.05.77 |
Удаление камней из желчного пузыря |
– |
6845 |
243 |
05.04.76 |
Замещение роговицы глаза |
Тетрациклин |
Первичным ключом является номер пациента +номер патента хирурга + дата операции. Здесь предполагается, что после каждой операции пациенту назначается не более одного препарата.
Таблица 4.4 представляет объект ПРЕПАРАТ и побочный эффект от его применения.
Таблица 4.4
ПРЕПАРАТ
Препарат, назначенный после операции |
Побочный эффект от применения препарата |
Пенициллин Тетрациклин Цефалоспорин Демициллин |
Сыпь Лихорадка – – |
Первичным ключом является препарат, назначенный после операции Здесь сделаны два допущения о том, что, во-первых, применение каждого препарата может вызывать не более одного побочного эффекта и, во-вторых, побочный эффект определяется только самим препаратом.
Столбец или ряд столбцов называются возможным ключом (часто сокращенно – ключом) отношения, если его (их) значения однозначно идентифицируют строки таблицы. Основные термины реляционной модели приведены на табл. 4.5. Вполне вероятно, что отношение имеет более одного ключа. В этом случае удобно рассматривать один из ключей в качестве первичного. В отношении ПАЦИЕНТЫ, например, если задан номер пациента 1234, который является значением ключа, то и имя пациента — Мэри Джонс, и его адрес — 10, Мэйн стрит, Рай, Н.-Й. будут однозначно определены.
Если столбцам присвоены уникальные имена, то порядок их следования не имеет значения. В таблице не может существовать одинаковых строк. Способ упорядочения таблицы также несуществен.
Таблица 4.5
ОСНОВНЫЕ ТЕРМИНЫ РЕЛЯЦИОННОЙ МОДЕЛИ
Термин |
Альтернативный термин |
Приблизительный эквивалент |
Отношение Атрибут Первичный ключ Кортеж Домен |
Таблица Столбец – Строка – |
Файл (один тип записи, фиксированное число типов полей) Поле (тип, а не экземпляр) Ключ записи, идентификатор записи Запись (экземпляр, а не тип) |
Любому отношению присущи следующие свойства:
Отсутствуют одинаковые строки.
Порядок строк не существен (обычный файл упорядочен в определенной последовательности прежде всего для достижения необходимой производительности).
Порядок столбцов не существен (предполагается, что каждый столбец имеет уникальное имя).
Все значения имеют атомарный характер, т е. их нельзя разбить на компоненты (без потери информации).
Отношение представляет собой множество элементов — кортежей, а по определению множество не допускает наличия одинаковых элементов Однако в обычном файле таких ограничений не существует.
Процесс выявления объектов и их взаимосвязей с помощью концепций реляционной модели и табличной формы представления называется процессом нормализации.Теория нормализации основана на том, что определенные наборы отношений в процессе выполнения обновлений обнаруживают лучшие свойства по сравнению с любыми другими наборами отношений, содержащими те же данные. Далее будет рассмотрен процесс нормализации при построении концептуальной модели. Концептуальная модель применяется для разработки логической модели, которая затем может быть отображена на реляционную, иерархическую или сетевую модель, или на инвертированные по нескольким ключам файлы.
Рис 4.З
Одним из главных достоинств реляционного подхода является его простота, а отсюда – и доступность для понимания конечным пользователем. Конечные пользователи не имеют дела с физической структурой памяти. Вместо этого они могут сосредоточиться на содержательной стороне проблемы (рис. 4.3). Возможность эксплуатации базы данных без знания деталей ее построения называется независимостью данных. Преимущества независимости данных были рассмотрены ранее.
Для обеспечения связи между таблицами некоторые из них должны содержать общие атрибуты. Например, в таблицах ПАЦИЕНТЫ и ПАЦИЕНТ -И-ХИРУРГ имеется избыточный атрибут «номер пациента». В результате между некоторыми таблицами возникает избыточность по ключу. Однако это не обязательно приводит к физической избыточности, поскольку таблицы отражают логическое представление пользователя.