- •Часть I. Теория баз данных
- •Глава I. Системы файлов и базы данных
- •Оценка системы файлов
- •1.2. Понятие базы данных и системы управления базами данных.
- •1.3 Архитектура бд
- •Концептуальная модель
- •Внутренняя модель
- •Физическая модель
- •1.4 Модели баз данных
- •1.4.1 Иерархическая модель данных
- •1.4.2 Сетевая модель данных
- •1.4.3 Реляционная модель данных
- •Нормализация отношений
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Методы реализации денормализации
- •1.4.4. Объектно-ориентированная модель данных
- •1.4.4.1. Атрибуты
- •1.4.4.2. Состояние объекта. Сообщения и методы
- •1.4.4.3. Классы
- •1.4.4.4. Протокол
- •1.4.4.5. Суперклассы, подклассы, наследование
- •1.4.4.6. Единичное наследование. Множественное наследование.
- •1.4.4.7. Переопределение методов и полиморфизм
- •1.4.4.8. Абстрактные типы данных
- •1.4.4.9. Классификация объектов
- •1.4.4.10. Свойства объектно-ориентированных моделей данных
- •1.5.1 Сущности
- •1.5.2 Атрибуты
- •1.5.3. Связи
- •1.5.4. Сравнение обозначений в er-моделировании
- •1.5.5. Разработка er-диаграмм
1.4.3 Реляционная модель данных
По мере роста объема обрабатываемой информации и повышения требований к БД и приложениям, проектирования, управления и использования БД становилось более трудоемким. Отсутствовала возможность написания нерегламентированных запросов.
Существующие БД обеспечивали ограниченную целостность по данным, но любые структурные изменения в БД заставляли полностью переделывать все прикладные программы.
Реляционная модель была предложена Э.Коддом в 1970 году. Внешняя концептуальная простота достигается за счет ресурсов компьютера, а компьютеры в то время не обладали достаточной мощностью для реализации реляционной модели. Поэтому на машинах третьего поколения реляционные СУБД практически не использовались.
Реляционная модель БД реализуется с помощью сложнейшей системы управления реляционной базой данных (РСУБД, RDBMS – Relational Database Management System). РСУБД выполняют те же функции, что и иерархические и сетевые СУБД, но в ее состав входят и дополнительные функции, делающие ее модель простой для понимания и внедрения.
Одним из важных преимуществ является то, что РСУБД предоставляет возможность оперировать обычными понятиями человеческой логики. Она берет на себя управление всеми сложными деталями физической реализации БД. Поэтому пользователю она представляется в виде набора таблиц.
Таблицы также называют отношениями или математическими множествами. Каждая таблица содержит набор пересекающихся строк и столбцов (row – columns). Строки называются картежи. Еще одно важное понятие – домен. Домен – это пул, из которого взяты значения из столбца (или столбцов) для связи между картежами. Домен может иметь имя, по которому к нему можно обращаться. Он может состоять из одного или нескольких столбцов.
Реляционная модель обеспечивает минимальный уровень избыточности данных.
В реляционной таблице хранятся наборы связанных логических объектов (сущностей, entities). В этом отношении таблица имеет сходство с файлом. Важное отличие таблицы от файла заключается в том, что таблица обеспечивает полную независимость по данным, а также структурную независимость, поскольку является исключительно логической структурой. Пользователя и проектировщика абсолютно не касается, каким образом данные физически хранятся в БД.
Преимущества реляционной модели.
Структурная независимость. Поскольку реляционная модель БД не использует навигационную схему доступа к данным, маршрут доступа к данным не имеет значения для проектировщиков, программистов и конечных пользователей. Изменения в структуре БД не влияют на доступ к данным со стороны СУБД. Поэтому в реляционной модели данных достигается структурная независимость;
Концептуальная простота. Реляционная модель на концептуальном уровне еще более проста для понимания, т.к. таблицы похожи на формы документов, с которыми пользователь привык работать;
Простота проектирования, реализации, управления и использования. Поскольку в реляционной модели достигается и независимость по данным и структурная независимость, становится проще проектировать БД и управлять ею;
Нерегламентированные запросы. Не последнюю роль в широком распространении реляционных моделей сыграла возможность создавать нерегламентированные запросы. Стандартным языком запросов является язык SQL (Structured Query Language). Язык SQL относится к языкам четвертого поколения (4GL), который позволяет определить ‘Что надо сделать?’ без указания того ‘Как это сделать?’ Запросы на SQL требуют меньшего программирования.
Любое SQL – предложение состоит из трех частей: интерфейс пользователя, набор таблиц внутри БД и SQL – машина.
Интерфейс включает в себя систему меню, операции запросов и генераторы отчетов.
В основном такой интерфейс дает возможность конечному пользователю взаимодействовать с данными. Любой интерфейс – это реализация представлений поставщика программного обеспечения об удобном способе манипулирования данными.
Можно спроектировать свой интерфейс с собственными настройками с помощью генераторов приложений, которые являются стандартными средствами в РСУБД.
Скрытая от конечного пользователя SQL-машина создает структуру таблиц, обслуживает словари данных и системный каталог, обеспечивая доступ к БД, а также транслирует запросы пользователей в формат, пригодный для обработки.
Мощная система управления базой данных. Развитые РСУБД являются более сложными, чем иерархические и сетевые СУБД, т.к. они выполняют гораздо больше задач, часто значительно более сложных, скрывает физический уровень, как от проектировщика, так и от пользователя.
Недостатки реляционной модели.
Существенные требования к оборудованию и системному программному обеспечению, т.к. требует значительных системных и аппаратных ресурсов;
Возможность «скоростных» проектов и реализаций. Удобная и простая среда разработки позволяет малоподготовленному пользователю создавать БД и отчеты;
Из-за простоты многие пользователи считают необходимым создавать свои пользовательские БД. Т.о. из одной БД может получиться некоторое количество подмножеств БД, что, в свою очередь, может вызвать информационную проблему.
