В данной таблице отметим те «аномалии», которые наблюдаются для такого представления данных.
1. Дублируется информация о сотрудниках, поскольку сотрудник может участвовать в нескольких проектах;
2. В таблицу нельзя вписать тех сотрудников, которые не заняты в проектах именно сейчас, а также тех сотрудников, которые вообще не работают над проектами;
3. Если сотрудник увольняется, запись о нем удаляется из таблицы, а вместе с ней – и проект, хотя работа над ним должна продолжаться.
Чтобы исключить «аномалии», необходимо преобразовать таблицу – разбить ее на две. Разобьем ее на две: ПРОЕКТЫ и СОТРУДНИКИ.
СОТРУДНИКИ
Номер
Сотруд.
Фам.
Должн.
Оклад
Отдел
Тел.
Петров
Инженер
6-15
Петров
Инженер
6-15
Васильев
Инженер
6-15
Куликов
Техник
5-46
Зорин
Администратор
6-88
Зорин
Администратор
6-88
ПРОЕКТЫ
Номер
Сотруд.
Номер
проекта
Номер
задания
AB-115
1.1
KN-20
1.3
ZT-14
5.2
ZT-14
5.4
AK-177
1.2
BC-18
3.6
Рассмотрим табл. Сотрудники. Заметны следующие особенности:
1. Дублируется информация о телефонах для сотрудников одного отдела;
2. Если изменяется телефон отдела, необходимо изменять его у всех сотрудников отдела. То же самое с изменением размера окладов.
3. Нельзя включить данные о новом отделе, пока не будут набраны его сотрудники;
4. При увольнении всех сотрудников не сохраняются данные о самом отделе.
Поэтому, следуя правилам нормализации, необходимо выполнить декомпозицию таблицы СОТРУДНИКИ и разбить ее на три таблицы: СОТРУДНИКИ, ДОЛЖНОСТИ, ОТДЕЛЫ
СОТРУДНИКИ
Номер
Сотруд.
Фам.
Должн.
Отдел
Петров
Инженер
Васильев
Инженер
Куликов
Техник
Зорин
Администратор
ДОЛЖНОСТИ
Должн.
Оклад
Инженер
Техник
Администратор
ОТДЕЛЫ
Отдел
Тел.
6-15
5-46
6-88
- Говорят, что отношение находится в первой нормальной форме, если все его атрибуты являются простыми. - Говорят, что отношение находится во второй нормальной форме, если оно удовлетворяет требованиям первой нормальной формы и каждый не ключевой атрибут функционально полно зависит от ключа (однозначно определяется им). - Говорят, что отношение находится в третьей нормальной форме, если оно удовлетворяет требованиям второй нормальной формы и при этом любой не ключевой атрибут зависит от ключа нетранзитивно. Транзитивной называется такая зависимость, при которой какой-либо не ключевой атрибут зависит от другого не ключевого атрибута, а тот, в свою очередь, уже зависит от ключа. Основным достоинством реляционной модели является ее простота.
2. Виды логической связи.
Связь устанавливается между двумя общими полями (столбцами) двух таблиц. Существуют связи с отношением «один-к-одному», «один-ко-многим» и «многие-ко-многим». Отношения, которые могут существовать между записями двух таблиц:
· один – к - одному, каждой записи из одной таблицы соответствует одна запись в другой таблице;
· один – ко - многим, каждой записи из одной таблицы соответствует несколько записей другой таблице;
· многие – к - одному, множеству записей из одной таблице соответствует одна запись в другой таблице;
· многие – ко - многим, множеству записей из одной таблицы соответствует несколько записей в другой таблице.
3. Ключи. Ключ – это столбец (может быть несколько столбцов), добавляемый к таблице и позволяющий установить связь с записями в другой таблице. Существуют ключи двух типов: первичные и вторичные или внешние. Первичный ключ – это одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице. Первичный ключ не допускает значений ноль и всегда должен иметь уникальный индекс. Первичный ключ используется для связывания таблицы с внешними ключами в
других таблицах. Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц. Из двух логически связанных таблиц одну называют таблицей первичного ключа или главной таблицей, а другую таблицей вторичного (внешнего) ключа или подчиненной таблицей. СУБД позволяют сопоставить родственные записи из обеих таблиц и совместно вывести их в форме, отчете или запросе. Существует три типа первичных ключей: ключевые поля счетчика (счетчик), простой ключ и составной ключ.
Поле счетчика (Тип данных «Счетчик»). Тип данных поля в базе данных, в котором для каждой добавляемой в таблицу записи в поле автоматически заносится уникальное числовое значение. Простой ключ. Если поле содержит уникальные значения, такие как коды или инвентарные номера, то это поле можно определить как первичный ключ. В качестве ключа можно определить любое поле, содержащее данные, если это поле не содержит повторяющиеся значения или значения Null. Составной ключ. В случаях, когда невозможно гарантировать уникальность значений каждого поля, существует возможность создать ключ, состоящий из нескольких полей. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц многие - ко - многим. В поле первичного ключа должны быть только уникальные значения в каждой строке таблицы, т.е. совпадение не допускается, а в поле вторичного или внешнего ключа совпадение значений в строках таблицы допускается. Построение структуры данных происходит в следующем порядке:
• определяются объекты описания;
• определяются структуры этих объектов;
• выбирается тип структуры, отображающий отношения между объектами (табличная, иерархическая, сети);
• строится конкретная информационная структура.
Характеритстики БД:
• полнота - чем полнее БД, тем вероятнее, что она содержит нужную информацию;
• правильная организация - чем лучше структурирована БД,тем легче вней найти необходимые сведения;
• актуальность - любая БД может быть точной и полной, если она
постоянно обновляется;
• удобство для использования - БД должна быть проста и удобна в
использовании и иметь развитые методы доступа к любой части информации.
Иерархические и сетевые БД являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных СУБД.
БД предполагает наличие комплекса программных средств, обслуживающих ее и позволяющих использовать содержащуюся в ней информацию. Такие комплексы программ называют СУБД. СУБД - это программная система, поддерживающая наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. СУБД является интерфейсом между базой данных и прикладными задачами.