План выполнения практической работы

1. Сначала следует изучить схему базы данных (т.е. структуру таблицы) и ознакомиться с данными в этой таблице.

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

a. Анализ схемы на основе знаний о предметной области

b. Анализ актуальных данных в таблице

Например, рассмотрим некую таблицу Т(А,В, …). Мы предполагаем, что между атрибутами А и В есть функциональная зависимость. В этом случае рекомендуется выполнить следующие запросы

select distinct A, B from T

select distinct B from T

и посчитать количество записей в каждой выборке. Если второй запрос возвращает количество записей меньше, чем первый, это означает, что функциональный зависимости A-B нет.

По окончанию этапа 2 должен получаться список функциональных зависимостей.

3. На третьем шаге необходимо проанализировать полученный список зависимостей и определить, какие зависимости следует устранить из «главной» таблице путем ее декомпозиции. Не всегда следует удалять все зависимости. В частности, если атрибуты А и В – ключевые, то эту зависимость лучше не удалять.

4. Для каждой удаляемой зависимости необходимо составить следующие два команды

1. create table AB as select distinct A, B from T

— это будет таблица в вынесенными данными атрибутов А и В из главной таблицы.

2. create table T1 as select A, C, …. From T

— это будет главная таблица после декомпозиции

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

5. После окончания декомпозиции необходимо составить select-запрос, выполняющий соединений всех полученных таблиц с целью «восстановления» данных в том виде до начала декомпозиций. Соединение следует выполнять по атрибутам их левых частей зависимостей. Например, для декомпозиции из предыдущего пункта запрос будет иметь приблизительно следующий вид:

select * from T1 join TAB on T1.A = TAB.A

Следует проверить, что количество записей в исходной таблице и выборке этого запроса одинаковы.

Далее следует составить представление на базе этого запроса.

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

Составление календарного плана по технологии строительства


Читать еще…

Понравилась статья? Поделиться с друзьями: