Нормализация отношений
Нормализация отношений – это процесс, позволяющий минимизировать избыточность данных.
Методику нормализации таблиц разработал американский ученый Э.Ф. Кодд в 1970 г. Ее суть сводится к приведению таблиц путем их декомпозиции к той или иной нормальной форме. Были выделены три нормальные формы – 1НФ, 2НФ, 3НФ. Позже стали выделять нормальную форму Бойса–Кодда (НФБК), а затем 4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в базе данные.
Реляционная база данных считается эффективной, если все ее таблицы находятся как минимум в 3НФ.
Определение 1НФ
Таблица находится в 1НФ, если все ее поля содержат только неделимые значения.
Изложение последующих нормальных форм базируется на понятии функциональной зависимости.
Функциональная зависимость – это семантическое понятие, отображающее определенную семантическую связь между атрибутами сущности.
Пусть сущность характеризуется множеством атрибутов Х. Некий атрибут или подмножество атрибутов данного множества – А является функционально зависимым от Х тогда и только тогда, когда каждой комбинации значений Х соответствует одно и только одно значение А. Это обозначается так:
Х ® А
Определение 2НФ
Таблица находится в 2НФ, если она удовлетворяет требованиям 1НФ и неключевые поля функционально полно зависят от первичного ключа.
Пусть {Х1, Х2,…,Хк} – множество полей, образующих первичный ключ. Неключевое поле А функционально полно зависит от первичного ключа, если:
· оно функционально зависит от первичного ключа, т.е. {Х1, Х2,…,Хк} ® А;
· не существует функциональной зависимости А ни от какого подмножества полей первичного ключа (в противном случае А находится в частичной функциональной зависимости от первичного ключа).
Определение 3НФ
Отношение находится в 3НФ, если оно удовлетворяет требованиям 2НФ и не содержит транзитивных зависимостей.
Транзитивной зависимостью называется функциональная зависимость между неключевыми атрибутами.
Процедуры проектирования реляционной базы данных
Процедуры концептуального проектирования:
1) определение сущностей и их документирование;
2) определение связей между сущностями и их документирование;
3) создание ER-модели предметной области;
4) определение атрибутов и их документирование;
5) определение доменов атрибутов и их документирование;
6) определение первичных ключей для сущностей и их документирование;
7) обсуждение концептуальной модели данных с конечными пользователями.
Процедуры логического проектирования:
1) выбор модели данных;
2) определение набора таблиц исходя из ER-модели и их документирование;
3) нормализация таблиц;
4) проверка логической модели данных на предмет возможности выполнения всех операций, предусмотренных пользователями;
5) определение требований поддержки целостности данных и их документирование;
6) создание окончательного варианта логической модели данных и обсуждение его с пользователями.
Процедуры физического проектирования:
1) проектирование таблиц БД средствами выбранной СУБД;
2) реализация бизнес-правил в среде выбранной СУБД;
3) проектирование физической организации БД;
4) разработка стратегии защиты БД;
5) организация мониторинга функционирования БД и ее настройка.
СОВРЕМЕННЫЕ СУБД
СУБД существуют практически для всех компьютерных платформ (от карманных компьютеров до суперкомпьютеров) и используются во всех АСУП и многих приложениях иного назначения.
Понятие СУБД
Система управления базами данными – это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Функции СУБД – это описание данных, манипулирование данными, использование данных.
Языковые средства СУБД включают: язык описания данных (ЯОД), язык манипулирования данными (ЯМД), язык запросов, язык программирования.
Программные средства СУБД обеспечивают работу с физической БД и выполнение всех ее функций.
Функциональные возможности СУБД
Основные функциональные возможности СУБД следующие:
· создание БД;
· обновление хранящихся в ней данных;
· быстрое извлечение из БД необходимых данных по запросам пользователей;
· выполнение вычислений над данными;
· создание форм для удобства работы с данными БД;
· создание отчетов на основе информации БД для ее анализа пользователями;
· разработка приложений;
· экспорт/импорт данных в БД из других приложений;
· публикация БД в Internet;
· управление БД, а именно:
§ поддержка целостности БД с помощью механизма транзакций. Транзакция – совокупность операций с БД, которые должны быть выполнены обязательно до конца, чтобы БД осталась в непротиворечивом состоянии;
§ защита данных от несанкционированного доступа, от сбоев в работе компьютерной системы;
§ восстановление БД в случае ее повреждения.
Архитектура СУБД
СУБД включает три компонента:
· подсистему средств проектирования БД и ее приложений;
· подсистему обработки компонентов приложений;
· ядро СУБД, которое:
§ является посредником между данными подсистемами и БД;
§ участвует в управлении транзакциями, блокировке, резервном копировании и восстановлении данных.
Классификация СУБД
Ее дадим по трем признакам:
1) по степени универсальности:
· СУБД общего назначения;
· СУБД специального назначения.
2)по типу поддерживаемой модели данных:
· иерархические. Первая иерархическая СУБД – IMSкомпании IBM (1968г.);
· сетевые. Первая сетевая СУБД – IDS компании General Electric;
· реляционные. Первые коммерческие реляционные СУБД – от компаний IBM, Oracle Corporation и др. (в нач.80-х);
· постреляционные. Например,
UniVers, Bubba, Dasdb
· объектно-ориентированные. Например,