Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

14.2. Реляционная модель данных

Система управления базами данных VFP поддерживает реляционную модель данных. Помимо реляционной при проектировании баз данных могут быть употреблены иерархическая [2, 3] и сетевая модели [4].

Реляционная модель представляет собой обычную таблицу, называемую также отношением [3]. Так, отношение "Сотрудник – Дата рождения" представляется в виде очевидной табл. 14.2.

Таблица 14.2

Отношение "Сотрудник – Дата рождения"

Сотрудник

Дата рождения

Нестеров

01.12.1980

Реутов

02.11.1982

Столбцы таблицы принято также называть атрибутами, а строки – кортежами, или выборками.

Другое название столбца таблицы – поле.

В реляционной модели база данных – это совокупность таблиц, или отношений, содержащих перекрестные ссылки.

База данных является моделью некоторой предметной области, позволяющей оперативно получать необходимые об этой области сведения. Инструменты, предоставляющие эти сведения, входят в состав системы управления базами данных – совокупности программных средств, предназначенных для создания и совместного ведения баз данных несколькими пользователями.

Проектирование базы данных сводится в конечном итоге к разработке таблиц и установлению между ними связей. Кроме того, решаются и иные задачи, такие, как формирование ключей (индексов), триггеров, внутренних процедур и др.

14.3. Функциональные зависимости и нормализация таблиц данных

Формирование образующих базу данных таблиц осуществляется в процессе выделения множества описывающих предметную область атрибутов, выявления функциональных зависимостей между ними и оптимизации табличных представлений этих зависимостей.

Цель оптимизации – снижение избыточности данных и устранение побочных эффектов, возникающих при корректировке данных. Эта цель достигается в процессе нормализации таблиц базы данных.

14.3.1. Представление функциональных зависимостей

Возьмем, к примеру, ранее упомянутую зависимость "Сотрудник – Дата рождения". Ее представление в виде табл. 14.2 является, что очевидно, неудовлетворительным. В самом деле, нередки случаи, когда на одном предприятии работают несколько сотрудников с одинаковой фамилией. В такой ситуации зависимость "Сотрудник – Дата рождения" не является функциональной: одной и той же фамилии будут соответствовать несколько дат рождения (рис. 14.1).

Рис. 14.1. Зависимость "Сотрудник – Дата рождения" не является функциональной

Поэтому необходимо уточнить исходную зависимость, выполнив ее декомпозицию на две зависимости: "Сотрудник – Табельный номер сотрудника" и "Табельный номер сотрудника – Дата рождения". Обе эти зависимости являются функциональными: каждому значению атрибута "Табельный номер сотрудника" отвечает одно значение второго атрибута ("Сотрудник" или "Дата рождения") зависимости.

Замечание. Утверждение о функциональности зависимостей справедливо, если сотрудник имеет один табельный номер независимо от числа занимаемых им должностей.

В данном случае эти функциональные зависимости можно отобразить как в одной, так и в двух таблицах (табл. 14.3 и 14.4).

Таблица 14.3

Уточненное однотабличное представление зависимости "Сотрудник – Дата рождения"

Табельный номер

Сотрудник

Дата рождения

К023

Иванов

03.10.1979

М425

Нестеров

01.12.1980

М427

Иванов

04.09.1983

М429

Реутов

02.11.1982

Таблица 14.4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]