- •Часть 1
- •Глава 1. Управление базами данных.
- •1.1. Вводный пример
- •1.2. Что такое система баз данных
- •1.3. Что такое база данных
- •Свойства
- •1.4. Почему база данных
- •1.5.Независимость данных
- •1.6. Реляционные и другие системы
- •1.7. Резюме
- •1.5. А)
- •Глава 2.
- •2.1. Цель
- •2.2. Три уровня архитектуры
- •2.3. Внешний уровень
- •2.4. Концептуальный уровень
- •2.5. Внутренний уровень
- •2.6. Отображения
- •2.7. Администратор базы данных
- •2.8. Система управления базой данных
- •2.9. Система управления передачей данных
- •2.10. Архитектура клиент/сервер
- •2.11. Утилиты
- •2.12. Распределенная обработка
- •2.13. Резюме
- •Глава 3.
- •3.1. Введение
- •3.2. Реляционные системы
- •3.3. Замечание относительно терминологии
- •3.4. Реляционная модель
- •3.5. Оптимизация
- •3.6. Каталог
- •3.7. Базовые таблицы и представления
- •3.8. Язык sql
- •3.9. База данных поставщиков и деталей
- •3.10. Резюме
3.4. Реляционная модель
Так что же такое реляционная модель? Достаточно точно ее характеризует следующее определение: реляционная модель — это способ рассмотрения данных, т.е. предписание для способа представления данных (посредством таблиц) и для способа работы с таким представлением (посредством операторов, таких как JOIN). Или точнее, реляционная модель связана с тремя аспектами данных: структурой, целостностью и обработкой данных. Вопросы, связанные со структурой и обработкой данных, уже были проиллюстрированы. Чтобы рассмотреть целостность (заметьте, весьма поверхностно), мы еще раз воспользуемся базой данных отделов и сотрудников, приведенной на рис. 3.1. По всей вероятности, такая база данных могла бы быть примером для многих правил целостности. Существуют определенные правила, которые должны соблюдаться в базе данных, если она отвечает требованиям реляционной модели.
1. Каждая строка в таблице DEPT должна включать уникальное значение DEPT#; также и каждая строка в таблице ЕМР должна включать уникальное значение ЕМР #.
2. Каждое значение DEPT# в таблице ЕМР должно существовать как значение DEPT# в таблице DEPT (для отражения того факта, что каждый служащий должен быть приписан к существующему отделу).
Столбцы DEPT# в таблице DEPT и ЕМР# в таблице ЕМР являются первичными ключами для соответствующих таблиц. Столбец DEPT# в таблице ЕМР является внешним ключом, ссылающимся на первичный ключ таблицы DEPT.
Замечание. Читатель уже, возможно, заметил, что первичные ключи таблицы указаны на рисунках двойной линией, проведенной под наименованием ключа (см., например, рис. 3.1). Мы будем следовать этому соглашению на протяжении всей книги.
Сейчас уместно сделать предупреждение. Реляционная модель, как уже отмечалось, это теория. Обратите особое внимание, однако, что для системы нет необходимости поддерживать такую теорию полностью, чтобы квалифицировать эту систему как реляционную в соответствии с определением. В действительности, насколько известно, в настоящее время на рынке не существует продукта, который бы поддерживал все до единого требования этой теории. Это отнюдь не значит, что некоторые аспекты этой теории не важны; как раз наоборот, важна каждая деталь этой теории, причем по действительно практическим причинам. И в самом деле, нельзя делать акцент на том, что это просто "теория ради теории"; скорее, главное назначение этой теории— обеспечить базу для построения систем, которые на 100% практичны. Но, как это ни печально, поставщики еще реально не подошли к осуществлению этой теории во всей ее полноте. И как следствие, реляционные продукты на сегодняшний день в той или иной степени неполно реализуют возможности реляционной технологии.
Замечание. Отмечая, что каждая деталь теории важна, мы не имеем в виду, что они важны в равной степени. Дело в том, что некоторые аспекты теории не так широко признаны, как другие; в действительности существуют вопросы, такие как, например, обработка отсутствующей информации, которые до сих пор являются предметом разногласий. Подробное обсуждение таких вопросов выходит за рамки этой главы и приводится в следующих частях книги.