Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 1.doc
Скачиваний:
9
Добавлен:
20.11.2018
Размер:
105.47 Кб
Скачать
  1. III нормальная форма.

Таблица находится в III Н.Ф., если она находится во II Н.Ф. и ни одно неключевое поле не зависит от другого неключевого поля. Т.е. все неключевые поля зависят только от первичного ключа.

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

Таблица названий отделов

отдела

Название отдела

1

Сбыта

2

Закупок

3

Рекламный

Таблица количества сотрудников отделов

отдела

Кол-во сотрудников

1

2

2

1

3

1

Таблица сотрудников

отдела

Фамилия

Паспортные данные

Дата начала работы

1

Иванов

40 00 25369

12.12.1962

1

Петров

40 01 25369

12.12.1982

2

Сидоров

40 02 25369

12.12.1972

3

Николаев

40 03 25369

12.12.2001

  1. Нормальная форма Бойса-Кодда (нфбк).

Таблица находится в НФБК, если она находится в III Н.Ф. и ни первичный ключ, ни какая-либо его часть не должны зависеть от неключевого поля.

(3.5 НФ)

После нормализации получен набор из множества взаимосвязанных таблиц. Рассмотрим типы связей между таблицами.

    1. Типы связей между таблицами.

Зависимая таблица – таблица, содержащая внешний ключ; т.е. ссылающаяся на строки другой, главной таблицы.

Опишем возможные типы связей между главной и зависимой таблицами.

1:1. Каждой строке главной таблицы соответствует <=1 строка зависимой таблицы. С другой стороны, любая строка зависимой таблицы должна быть связана только с 1 строкой главной таблицы

1:n. Любой строке главной таблицы соответствует любое количество (0,1, больше) строк зависимой таблицы. С другой стороны, любая строка зависимой таблицы должна быть связана только с 1 строкой главной таблицы.

Замечание

Связь 1:1 частный случай связи 1:n.

m:n. Любой строке главной таблицы соответствует любое количество (0,1, больше) строк зависимой таблицы. При этом любая строка зависимой таблицы может быть связана с >=1 строкой главной таблицы.

Пример.

  1. если сотрудник работает в разных отделах сразу.

  2. ученые и научные общества.

§1. Понятие о субд (dbms).

Система управления базами данных - СУБД (Database Management System - DBMS)– это программный комплекс, обеспечивающий функционирование базы данных. СУБД хранит данные, отвечает за их сохранность, безопасность, целостность, взаимное соответствие, а также обеспечивает доступ пользователей к данным.

CУБД должна удовлетворять определенным требованиям.

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

СУБД должна предоставлять пользователю лишь те данные, на которые он имеет право.

Требование обеспечения целостности данных.

Целостность (integrity) – взаимная согласованность отдельных фрагментов данных и их корректность.

Способы обеспечения целостности:

  • блокировка постороннего доступа к данным в процессе их обработки;

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

Понятие транзакции.

Под транзакцией понимается воздействие на БД, переводящее ее из одного целостного состояния в другое. Воздействие выражается в изменении данных в таблицах базы. Транзакция представляет собой набор из одной или более команд, обрабатываемых как одно целое. То есть будет выполняться либо весь набор команд, либо не выполнена ни одна из них.

Попытка выполнить транзакцию может привести к одному из двух исходов:

  • Успешное выполнение – свершившаяся, принятая, зафиксированная транзакция (committed transaction);

  • Неуспешное выполнение. В таком случае БД будет возвращена в исходное состояние (т.е. состояние до начала выполнения транзакции)– отвергнутая, аннулированная транзакция (rolled back transaction).

Требования ACID.

Имеются определенные требования к выполнению транзакций СУБД. Эти требования называются требованиями ACID (аббревиатура, образованная заглавными буквами каждого требования).

Атомарность (Atomicity).

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

Согласованность (Consistency).

После того, как транзакция будет успешно завершена, целостность данных не должна быть нарушена.

Существует 2 способа контроля целостности данных при выполнении транзакции:

  1. проверка целостности после каждой команды транзакции;

  2. проверка целостности при фиксировании транзакции.

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

Изолированность (Isolation).

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

Пример: необходимо 3 раза сканировать данные, чтобы получить 3 различных значения, зависящих от всего набора данных (e.g., min, max, avg). Пусть после 2-го сканирования данные изменяются, следовательно, 3-е значение может не соответствовать первым двум!

Чтобы исключить подобные ситуации и обеспечить преемственность данных СУБД должна обеспечивать доступ к данным с помощью механизма сериализации (serialization). Проще говоря, СУБД должна организовывать выполнение транзакций, адресованных одному фрагменту данных так, чтобы изменения, предусмотренные каждой транзакцией, выполнялись последовательно (как будто это последовательные операции изменения некоторого файла).

Устойчивость или долговечность (Durability).

После того, как транзакция выполнит все необходимые изменения и завершится, система выполняет фиксирование транзакции (commit transaction).

Замечание

Выполнение требований ACID полностью ложится на СУБД. Т.е. пользователь не должен прилагать дополнительные усилия для соблюдения этих требований.

Для обеспечения отката транзакций для восстановления базы данных в исходном состоянии СУБД ведет журнал транзакций (transaction log), в котором фиксируются все производимые с БД операции.