- •Реляционные базы данных
- •Табличное представление
- •Реляционные базы данных
- •Первые разработки
- •Повторяющиеся группы
- •Древовидные структуры
- •Добавления в нормализованной схеме
- •Размещение (номер-здания, номер-отдела)
- •Сетевые структуры
- •Процедура конструирования
- •Пути использования данных
- •Каноническая структура записей (сегментов)
- •Комбинированные овал-диаграммы
- •Устранение избыточности
- •Ключи и атрибуты
- •Вторичные ключи
- •Транзитивные зависимости
- •Отношения между ключами
- •Последовательность записей
- •Три уровня автоматизации
- •Недостатки
- •Заключение. Преимущества реляционной базы
Реляционные базы данных
Гениальные идеи всегда просты - этот принцип хорошо иллюстрируется историей открытий. Идеи, которые слишком трудно реализовать, в конце концов заменяются новыми, более простыми идеями. Поэтому, когда блок-схема программы начинает напоминать хитросплетения паутины, программисту пора переделать ее заново. Базам данных постоянно грозит опасность стать громоздкими, застывшими и слишком сложными системами. Новые приложения порождают новые виды запросов пользователей к базе, что увеличивает набор логических связей между ее элементами. В итоге многие системы баз данных оказываются очень сложными в построении. Если разработчики не придумают ясные и простые схемы их организации, эти системы будут подобны паутине.
Избежать растущей сложности древовидных и сетевых структур можно с помощью метода, называемого нормализацией. Этот метод был разработан и активно применялся Коддом [1-71.. Существует много способов отображения базы данных Кодда на физические носители.
С помощью программ управления данными представление данных для пользователя может храниться отдельно от их физического представления; при этом физическое представление и аппаратура могут быть при необходимости изменены без изменения логического описания данных. Наряду с такой независимостью еще одно важное соображение говорит в пользу логического описания данных: удобство применения для большинства пользователей и прикладных программистов. Мы должны найти такой способ описания данных, который: 1) понятен пользователю, не имеющему особых навыков в программировании; 2) позволяет подсоединять новые элементы данных, записи, связи без изменения существующих подсхем и, следовательно, прикладных программ; 3) допускает максимальную гибкость при обработке непредсказуемых или случайных запросов с терминалов. Следует заметить, что представление данных в виде деревьев, сетевых и, списковых структур в общем случае препятствует многим изменениям данных, необходимым при росте базы; рост базы может привести к нарушению логического представления данных и, как следствие, к изменениям в прикладных программах.
Табличное представление
Один из самых естественных способов представления данных для. Пользователя - непрограммиста - это двумерная таблица (рис. 5.3). Она привычна для пользователя, понятна и обозрима; ее легко запомнить. Поскольку любая сетевая структура может быть с некоторой избыточностью разложена в совокупность древовидных структур (рис. 9.14), то и любое представление данных может быть сведено к двумерным плоским файлам (тоже с некоторой избыточностью). Связи между данными, рассмотренные в двух предыдущих главах, могут быть представлены в форме двумерных таблиц. Этот процесс, выполняемый шаг за шагом для каждой связи между данными в базе, называется нормализацией. Таблицы могут быть построены таким образом, что не будет утеряна информация о связях между элементами данных.
Рассматриваемые таблицы - это прямоугольные массивы, которые можно описать математически. Таблица обладает следующими свойствами (рис. 5.3):
-
Каждый элемент таблицы представляет собой один элемент данных; повторяющиеся группы отсутствуют.
-
Все столбцы в таблице однородные; это означает, что элементы столбца имеют одинаковую природу.
-
Столбцам однозначно присвоены имена.
-
В таблице нет двух одинаковых строк.
-
В операциях с такой таблицей ее строки и столбцы могут просматриваться в любом порядке и в любой последовательности безотносительно к, их информационному содержанию и смыслу.