русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 1036; Нарушение авторских прав


Существует несколько подходов к проектированию структуры БД, ранее рассматривался способ проектирования схемы БД с использованием модели «сущность - связь». Основную идею этого способа можно выразить следующим образом:

1) выяснить объекты, существующие в предметной области и построить сущности;

2) выяснить характеристики объектов и построить атрибуты, выделив первичный ключ;

3) выяснить взаимодействие между объектами и построить связи;

Такой подход характеризуется неформальностью построения и возможностью избыточности схемы БД.

Второй подход к разработке структуры БД состоит в выявлении минимальных элементов данных (атрибутов) и рассмотрении смысловых зависимостей между ними. То есть изначально всю БД можно рассмотреть как состоящую из одного отношения со всеми выявленными в предметной области атрибутами. Затем это отношение разбивают в соответствии с зависимостями согласно определенным правилам.

Достоинство подхода – наличие формальных процедур преобразования схемы БД при проектировании.

Произвольное задание схемы БД может привести к серьезным проблемам, называемым аномалиями в базе данных.

Имя Адрес Товар Цена
Иванов Б. Победы, 10 Кефир
Иванов Б. Победы, 10 Молоко
Петров Науг. Ш. 3 Сметана

Данные о поставщиках.

В этой таблице есть ряд аномалий:

- аномалия избыточности информации, например, адрес поставщика повторяется несколько раз для каждого поставляемого товара.

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

- аномалия занесения данных – возникает в случае, если мы захотим внести информацию о поставщике, который пока ничего не поставляет, то есть неизвестны товар и цена. Можно оставить поля «товар» и «цена» пустыми, тогда, как только поставщик начнет поставлять товар, надо будет не забыть или удалить эту строку, или обновить пустые поля. Кроме того, имя поставщика и товара образуют ключ к данной таблице, а ключ не может содержать null-значения.



- аномалия удаления – если придется удалить из базы данных все товары, поставляемые каким-либо поставщиком, то автоматически исчезнет информация о нем (например, о его адресе).

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

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

Рис 1

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

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

Если факт, который нужно вывести, хранится в базе данных, то такая база данных будет избыточна. Например, вернемся к таблице 1. В ней действует зависимость, что каждый поставщик имеет единственный адрес, то есть для любых двух кортежей с одинаковыми атрибутами «Имя» следует равенство атрибутов «Адрес». Таким образом, второе указание адреса для одного и того же поставщика избыточно. Исходя из условий уникальности, можно занести значения в поле адреса, если он уже один раз упоминался.

В данном случае мы столкнулись с самым распространенным видом зависимости - с функциональной зависимостью.



<== предыдущая лекция | следующая лекция ==>
Физическая организация данных. | Функциональные зависимости.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.