Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование бизнес-процессов / Моделирование бизнес-процессов / ER-диаграмы / Проектирование реляционных БД с помощью ER-диаграмм_ver1.6.doc
Скачиваний:
184
Добавлен:
30.04.2013
Размер:
7.8 Mб
Скачать

Примеры 1нф, 2нф и 3нф

Пример 1НФ (неправильно/правильно)

Здесь, повторяющаяся группа помещена в новую таблицу, но со старым ключом.

Неправильная 1НФ:

разложение на таблицы, 1НФ без повторяющихся групп:

Таблицы 1НФ:

В таблице СЛУЩАЩИЙ «Name» - определено, как ключ, так как оно однозначно идентифицирует строку. В таблице ПОДЧИНЕННЫЙ ключом является совокупность: «DependentName» и «EmployeeName». Ни «DependentName», ни «EmployeeName» не являются уникальными в таблице ПОДЧИНЕННЫЙ и, следовательно, для однозначной идентификации строки таблицы, требуются оба атрибута. «EmployeeName» в таблице ПОДЧИНЕННЫЙ названвнешнимключом, поскольку, он ссылается на первичный ключ «Name» таблицы СЛУЖАЩИЙ. Отметим, что исходная таблица может быть восстановлена объединением этих двух таблиц, путем записи всех строк таблицы СЛУЖАЩИЙ и объединением их с соответствующими строками таблицы ПОДЧИННЕНЫЙ, в которых такие же имена (операцияEQUI-JOIN). Отметим, что в производных таблицах нет аномалий или избыточности.

Пример 2НФ (неправильно/правильно)

В этой таблице устранена частичная зависимость:

Неправильная 2НФ:

2НФ:

Таблица «Name + Job»

Таблица «Name и Address» (информация о Служащем (Employee)):

Снова, отметим избавление от избыточности и возможных аномалий.

Пример 3НФ (неправильно/правильно)

В новой таблице мы избавились от транзитивных зависимостей:

Не-3НФ:

3НФ:

Таблица СЛУЖАЩИЙ:

Таблица ПРОЕКТ:

Отметим удаление транзитивной зависимости и проблемы аномалии.

Существуют и более эзотерические нормальные формы, но большинство баз данных легко разрабатываются, если они приведены к 3НФ. Цель, преследуемая здесь – показать основной процесс и достоинства нормализации.

Контрольные вопросы 1.4

1. Дайте определения 1НФ, 2НФ, и 3НФ.

2. Почему базы данных должны быть нормализованы?

3. Почему следует избегать составных атрибутов с несколькими значениями или повторяющихся групп?

Итоги главы

Эта глава была приведена в качестве введения. В ней кратко описывается процесс программного проектирования и его связь с разработкой ER диаграммы. Затем в главе дан краткий обзор других моделей данных, функциональной зависимости, и нормализации базы данных. Следующие главы описывают проектную методологию ER шаг за шагом.

Упражнения Главы 1

Упражнение 1.1

Если X→Y, можно ли сказать, чтоY→X? Объясните ответ.

Упражнение 1.2

Разложите следующие данные на таблицы 1НФ:

Упражнение 1.3

Должны ли быть разложены на составные части следующие данные?

Список литературы

Armstrong, W. "Dependency Structures of Data Base Relationships,"

Proceedings of the IFIP Congress, 1974.

Chen, P.P. "The Entity Relationship Model — Toward a Unified View of

Data," ACM TODS 1, No. 1, March 1976.

Codd, E. "A Relational Model for Large Shared Data Banks," CACM, 13,

6, June 1970.

Codd, E. Further Normalization of the Data Base Relational Model, in

Rustin (1972).

Codd, E. "Recent Investigations in Relational Database System,"

Proceedings of the IFIP Congress, 1974.

Date, C. An Introduction to Database Systems, 6th ed., Addison-Wesley,

Reading, MA, 1995.

Elmasri, R. and Navathe, S.B. Fundamentals of Database Systems, 3rd

ed., Addison-Wesley, Reading, MA, 2000.

Maier, D. The Theory of Relational Databases, Computer Science Press,

Rockville, MD, 1983.

Norman, R.J. Object-Oriented Systems Analysis and Design, Prentice

Hall, Upper Saddle River, NJ, 1996.

Schach, S.R. Classical and Object Oriented Software Engineering, 4th

ed., McGraw-Hill, New York, 1999.