Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2002.doc
Скачиваний:
44
Добавлен:
15.06.2014
Размер:
335.36 Кб
Скачать

Критерий оценки качества логической модели данных.

  1. Адекватность БД предметной области, т.е.

  • Состояние БД в каждый момент времени должно соответствовать состоянию предметной области

  • Изменение состояния предметной области должно приводить к соответствующему изменению состояния БД.

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

  1. Легкость разработки и сопровождения БД (есть программный код, триггеры).

  2. Скорость выполнения операции обновления данных.

Хранимая процедура — это процедура, хранящаяся непосредственно в БД в откомпилированном виде и может запускаться пользователями и приложениями (например, код в С++ со вставками SCL (?)).

Триггер — это хранимая процедура, связанная с определенным событием (запускается по определенному событию).

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

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

Операции обновления и удаления

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

Следствие: чем больше атрибутов имеет отношение, тем больше вероятность того, что на каждый атрибут будет построен индекс (индекс представляет собой сбалансированное дерево).

Пример:

Предметную область опишем в следующем неформальном описании:

  1. сотрудники организации выполняют проекты;

  2. проекты состоят из нескольких заданий;

  3. каждый сотрудник может участвовать в одном или нескольких проектах, или временно не участвовать;

  4. над каждым проектом могут участвовать несколько сотрудников или временно проект может быть приостановлен, т.е. над ним не работает ни один сотрудник;

  5. над каждым заданием в проекте работает ровно один сотрудник;

  6. каждый сотрудник числится в одном отделе;

  7. каждый сотрудник имеет телефон, находящийся в отделе.

Дополнительное уточнение, связанное с уникальностью:

  • о каждом сотруднике нужно хранить номер (уникальный) и фамилию;

  • каждый отдел имеет уникальный номер;

  • каждый проект имеет номер (уникальный) и наименование;

  • каждая работа имеет номер, уникальный в рамках проекта.

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

Не ключевой атрибут — это атрибут, не входящий в состав никакого потенциального ключа.

Лекция №9 (4.04.02.)

Нормализация таблиц

Рассмотрим четыре нормальные формы. Каждая нормальная форма определяет уровень абстракции.

Первая нормальная форма (1 НФ).

Таблица находится в 1 НФ, если в каждой ячейке таблицы находится только одно значение, а не множество значений. Таблица в 1 НФ не обязательно удовлетворяет 2 НФ и высшим.

PART (primary key)

WAREHOUSE

P0010

Warehouse A, Warehouse B, Warehouse C.

P0020

Warehouse B, Warehouse D.

Эта таблица не является таблицей в 1 НФ. Чтобы эту таблицу нормализовать, необходимо разбить ее так, чтобы каждая строка была бы уникальной. Т.е. получится такая таблица:

PART (primary key)

WAREHOUSE

P0010

Warehouse A

P0010

Warehouse B

P0010

Warehouse C

P0020

Warehouse B

P0020

Warehouse D

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

Вторая нормальная форма (2 НФ).

Таблица находится во 2 НФ, если каждая колонка, которая не является частью ключа, зависит от существующего ключа. 2 НФ нарушается, если не ключевая колонка зависит от части составного ключа.

PART

(primary key)

WAREHOUSE

(primary key)

Quantity

WAREHOUSE-

ADDRESS

P0010

Warehouse A

400

New Field Road

P0010

Warehouse B

543

Greenway

Эта таблица не удовлетворяет 2 НФ, так как колонка WAREHOUSE ADDRESS зависит только от части составного ключа, а именно от колонки WAREHOUSE.

Для нормализации необходимо разбить эту таблицу на 2 таблички:

WAREHOUSE–TABLE

WAREHOUSE

(primary key)

WAREHOUSE-

ADDRESS

Warehouse A

New Field Road

Warehouse B

Greenway

PART–TABLE–WAREHOUSE примет вид:

PART

(primary key)

WAREHOUSE

(foreign key)

Quantity

P0010

Warehouse A

400

P0010

Warehouse B

543

P0010

Warehouse C

329

P0020

Warehouse A

200

2 НФ помогает избавиться от избыточности и несогласованности.

Проблемы, возникающие при работе с исходной (ненормализованной) таблицей:

  1. Адрес хранилища повторяется в каждой записи для каждой части, которая хранится в этом хранилище (Избыточность).

  2. Если адрес хранилища изменяется, каждая строка, содержащая часть, которая хранится в этом хранилище, должна быть изменена.

  3. Если одному хранилищу соответствует несколько адресов, то возникает несогласованность данных.

  4. Если в какой-то момент в некотором хранилище не будет сохраняться ни одной части, то возможна потеря этого хранилища и его адреса.

Третья нормальная форма (3 НФ).

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

EMPNO

(primary key)

FIRSTNAME

LASTNAME

WORKDEPT

DEPTNAME

00029

John

Parker

E11

Operations

000320

Ramlal

Mehta

E21

Software Support

000310

Maude

Set

E11

Operations

Не ключевые столбцы

(но они зависимы)

Если один из сотрудников перейдет в другой отдел, то надо изменить и идентификатор отдела, и его название. А если будут еще зависимые от этих колонки, то надо будет изменять и их.

Для нормализации необходимо разбить таблицу на две таблицы: первая с описанием сотрудников, вторая — с описанием отделов.

Единственная проблема заключается в том, что для SQL-оператора SELECT необходимо будет использовать сложный оператор JOIN.

Четвертая нормальная форма (4 НФ).

Таблица находится в 4 НФ, если нет строк, содержащих 2 или более многозначных независимых фактов об одной сущности. Рассматриваются такие сущности, как сотрудник, его профессиональная подготовка и языки, которыми он владеет. Каждый сотрудник обладает профессиональными навыками в нескольких областях и знает несколько языков.

Рассматриваются два отношения: первое — между сотрудником и его профессиональными знаниями, второе — между сотрудником и языками, которыми он владеет.

EMPNO

(primary key)

SKILLS

LANGUAGE

000130

Data modeling

English

000130

Database design

English

000230

Application design

Spanish

000230

Database design

Spanish

Результатом приведения к 4 НФ будут две таблицы, нормализованные до 4 НФ.

Каждая последующая НФ включает в себя все предыдущие, т.е. если таблица удовлетворяет 3 НФ, то она удовлетворяет так же 2 НФ и 1 НФ.

Если факты о сущности являются взаимозависимы, то такая таблица не может быть разбита на две таблицы.

Лекция №10 (11.04.02)