русс | укр

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

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

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

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


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

Аномалии схемы отношения


Дата добавления: 2015-01-08; просмотров: 675; Нарушение авторских прав


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

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

Другой недостаток такой схемы: если какой-то поставщик временно прекратил поставки товаров для нашего магазина и база данных не содержит кортежей с именем этого поставщика, то его адрес теряется. Аналогично, мы не сможем хранить адрес нового поставщика, пока он не доставит хотя бы единицу какого-либо товара.

Такая же ситуация характерна для информации о складе и его объеме: если склад опустошается, то теряются данные о его объеме.

Эти проблемы называются аномалиями обновления.

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

Решением этих проблем было бы разделение отношения Поставка на несколько других отношений: Склад(Номер, Объем), Поставщик(Название, Адрес), Товар(Наименование, Поставщик, Цена, Склад). В отношении Товар атрибут Поставщик будет внешним ключом, ссылающимся на отношение Поставщик, а атрибут Склад будет внешним ключом, ссылающимся на отношение Склад.



Эти действия по разделению одного отношения на несколько отношений называются декомпозицией.

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

1. По каким правилам проводить декомпозицию?

2. Как оценить, хорошая получилась схема или плохая?



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


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


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

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

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


 


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

 
 

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

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