Основные понятия теории баз данных.

Автор: Пользователь скрыл имя, 18 Ноября 2012 в 14:40, лекция

Описание работы

Лекции с глоссарием по базам данным

Работа содержит 1 файл

Лекции_БД_ВМЕСТЕ С ГЛОССАРИЕМ.doc

— 1.52 Мб (Скачать)

 

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

 

Первичный ключ - это атрибут или набор атрибутов, значение которых однозначно указывают на конкретный кортеж отношения. Первичный ключ должен быть минимальным набором атрибутов.

 

Число отношений в БД и конкретные атрибуты, приписываемые каждому отношению определяются в процессе проектирования БД, который может быть довольно продолжительным. После проектирования создание БД средствами СУБД может пойти достаточно быстро.

В таблице 6.6 описаны типы данных для атрибутов БД “Поставщики и детали”.

Таблица 6.6 Типы Атрибутов.

Название атрибута

Тип атрибута

Пном

Числовой (3)

Пназ

Символьный(16)

Гор

Символьный(15)

Дназ

Символьный(10)

Штук

Числовой (5)

Дном

Числовой (5)


 

Отношения с указанными первичными ключами для данной БД:

 

Поставщик

(Пном, Пназ, Гор)

Деталь

(Дном, Дназ)

Поставщик-Деталь

(Пном, Дном, Штук)


 

Результатом проектирования является концептуальная модель БД.

 

    1. Цели проектирования баз данных

 

Наиболее важными целями проектирования являются:

 

  • Хранение всех необходимых данных в БД, т.е. централизация данных;
  • Исключение избыточности данных;
  • Уменьшение количества отношений в БД;
  • Нормализация отношений для решения проблем, связанных с обновлением или удалением данных.

 

Первым шагом в процессе проектирования является определение перечня атрибутов (столбцов), которые должны храниться в БД.

 

На втором шаге принимается решение о том, сколько будет отношений и какие атрибуты будут храниться в каких отношениях.

Необходимо различать дублирование данных и дублирование с избыточностью:

 

 

 

 

 

 

 

 

Таблица 6.7 Пример дублирования данных.

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

Номер лаборатории

                                       В таблице 6.7 Числа 12 и 17               

                                       дублируются, но не избыточны.

287

12

314

17

07

12

354

17


 

 

Таблица 6.8 Пример избыточного дублирования данных.

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

Номер лаборатории

Телефон лаборатории

В таблице 6.8 телефон лаборатории, как видно, дублируется, и это  уже избыточное дублирование.

287

12

2-17

314

17

4-41

007

12

 

354

17

 

 

 

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

Лучший способ устранения – разбиение  отношения 

“Служащий – лаборатория – телефон” (таблица 6.8) на два:

“Лаборатория – телефон” (таблица 6.9)

“Служащий – лаборатория” (таблица 6.10)

 

Таблица 6.9 “Лаборатория-телефон”.

Таблица 6.10 “Служащий-лаборатория”.

Номер лаборатории

Телефон лаборатории

 

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

Номер лаборатории

12

2-17

287

12

17

4-41

314

17

 

007

12

354

17


 

 

 

Разбиение отношений на два или  несколько – рабочая процедура  проектирования.

 

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

Некоторые отношения порождают  серьезные проблемы по удалению и  обновлению информации. Проектировщик  БД должен уметь находить такие отношения  и “нормализовать” их. Нормализация осуществляется путем разбиения  отношения на два или более мелких отношения по определенным правилам.

 

    1. Универсальные отношения

 

Отношение, которое включает в себя все атрибуты и содержащее все  данные, предполагаемые хранить в  БД, называется универсальным отношением.

 

Для небольших БД универсальное отношение может использоваться в качестве основного пункта при проектировании БД.

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

 

Первый шаг проектирования – состоит в определении всех атрибутов, значения которых требуется хранить в БД. Эта информация берется у начальника отдела в процессе обсуждения будущей БД. В результате обсуждения выяснилось, что БД предназначена для подведения результатов работы каждого сотрудника отдела. Определился следующий набор атрибутов:

 

Сном

номер сотрудника (целое значение, уникальное),

Сфам

фамилия сотрудника (строковое значение),

Лном

номер лаборатории, в которой трудится данный сотрудник,

Тном

рабочий телефон сотрудника,

Проект

номер проекта, в разработке которого участвует сотрудник,

Квартал

период времени, в течение которого сотрудник участвовал в разработке проекта,

Вклад

численная характеристика, отражающая количество и качество работы с сотрудника в данном проекте и в данном квартале.


 

 

Второй шаг – составление таблицы по предварительно записанному набору атрибутов.

 

Таблица 6.11 Информация выбранная для  хранения в базе данных

Сном

Сфам

Тном

Лном

Проект

Квартал

Вклад

289

Иванов

5-17

25АП

РКТ14

1990.3

3

       

Зенит

1990.3

5

       

ВКТ14

1990.4

2

       

ВТА2

1990.4

4

315

Николаев

8-29

4КТ

ВКТ14

1990.3

6

       

ВТА8

1990.4

7

       

ВКТ14

1990.4

8

429

Андреев

5-17

25АМ

Зенит

1990.3

2

       

ОТР6

1990.4

7

       

ВКТ14

1990.4

4

559

Зайцев

4-85

14ММ

ОВ77

1990.3

6


 

Хотя данные связаны в таблицу 6.11, она не может быть использована в реляционных базах данных, т.к. строки её содержат вектора значений атрибутов, что недопустимо для отношений. Такую таблицу, однако, очень легко преобразовать в отношение путем декомпозиции.

 

Таблица 6.12 Универсальное отношение  базы данных “Начальник отдела”

Сном

Сфам

Тном

Лном

Проект

Квартал

Вклад

289

Иванов

5-17

25АП

РКТ14

1990.3

3

289

Иванов

5-17

25АП

Зенит

1990.3

5

289

Иванов

5-17

25АП

ВКТ14

1990.4

2

289

Иванов

5-17

25АП

ВТА2

1990.4

4

315

Николаев

8-29

4КТ

ВКТ14

1990.3

6

315

Николаев

8-29

4КТ

ВТА8

1990.4

7

315

Николаев

8-29

4КТ

ВКТ14

1990.4

8

429

Андреев

5-17

25АП

Зенит

1990.3

2

429

Андреев

5-17

25АП

ОТР6

1990.4

7

429

Андреев

5-17

25АП

ВКТ14

1990.4

4

559

Зайцев

4-85

14ММ

ОВ77

1990.3

6


 

В таблице 6.12 первичным ключом является значение трех полей Сном-Проект-Квартал. Полученная таблица – экземпляр правильного отношения.

 

    1. Проблемы, связанные с использованием единственного отношения

 

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

 

  • проблема вставки;
  • проблема обновления;
  • проблема удаления.

Проблема вставки.

 

Если в отделе появляется новый  сотрудник, то информацию о нем необходимо внести в БД. При этом значение атрибутов  Проект, Квартал будут пустыми, а  Вклад фактически равен нулю.

 

684

Сорокин

5-17

25AP

-

-

0


 

Как отмечалось ранее, пустых значений следует всячески избегать. Предположим, что в отношение включена новая запись о сотруднике Сорокине с пустыми полями и делается следующий запрос: “Напечатать список номеров и фамилий сотрудников, вклад которых не более 2”. В результате мы получим так называемый «черный список», в который попал и только что принятый на работу Сорокин.

 

289

Иванов

429

Андреев

687

Сорокин


 

В данном случае на простой вопрос мы получаем неверный ответ. Следовательно  в нашей базе данных есть аномалии.

Проблема обновления.

 

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

 

Явная избыточность: фамилия сотрудника, телефон лаборатории, номер лаборатории могут появляться в отношении многократно. Если какой-либо сотрудник, на пример Иванов, перейдет на работу в другую лабораторию, соответствующие изменения необходимо сделать во всех записях, где хранится информация о данном сотруднике.

 

Неявная избыточность это (для нашего примера) когда один номер телефона имеют несколько сотрудников лаборатории. Например, номер 5-17 появляется в записях с фамилиями Иванов и Андреев.

 

Предположим возникает следующая ситуация: Начальник отдела встречает Иванова и спрашивает его – “Вы были вчера на вашем рабочем месте? Я весь день вам звонил и никто не брал трубку”. А Иванов ему отвечает “Отдел связи сменил вчера номер на 9-17”. Начальник отдела приходит к себе в кабинет и меняет во всех записях телефон Иванова на 9-17. Через некоторое время ему необходимо позвонить в лабораторию 25-AP, а телефон он не помнит, он составляет запрос вывести все не повторяющиеся записи со значением поля Лном равным 25-AP.

Ответ: 9-17 и 5-17. По какому телефону звонить если заранее известно, что в каждой лаборатории только один телефон.

Проблема удаления.

 

Предположим, что финансирование проекта 0В77 прекратилось и начальник удаляет  все соответствующие записи. Так  как в рассматриваемом отношении имеется только один кортеж с номером сотрудника 559 (это сотрудник Зайцев), который выполнял работу только по проекту 0В77, то произойдет удаление записи о сотруднике Зайцеве. Фактически мы теряем всю информацию о данном сотруднике. Рассмотренная проблема также является аномалией.

 

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

    1. Функциональные зависимости

 

Пусть А и В набор атрибутов. Говорят, что В функционально  зависит от А, если для каждого  значения А существует только одно связанное с ним значение В.


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

 

  • Номер сотрудника является уникальным. С номером в отношении может появиться только определенная фамилия. Отсюда получаем функциональную зависимость: Сном®Сфам
  • Если в каждой лаборатории только один телефон то получим зависимость Тном®Лном.
  • Так как каждый телефон обслуживает только одну лабораторию Лном®Тном.
  • Каждый сотрудник является работником только одной лаборатории. Тогда если в отношении появляется комбинация 315-4КТ, то вместе с 315 никакого другого значения Лном появиться не может следовательно получаем зависимость Сном®Лном. А так как в каждой лаборатории только один телефон можно также утверждать что, Сном®Тном.
  • Поскольку значение атрибута Вклад однозначно может быть определено, если заданы атрибуты Сном, Проект и Квартал, то получаем зависимость:

Информация о работе Основные понятия теории баз данных.