Доклад: Введение в проектирование реляционных баз данных
6. Для того чтобы исключить в проекте непреднамеренные нарушения каких-либо принципов нормализации, выполнить описанную в п. 4.6 процедуру нормализации.
7. Если в процессе нормализации было произведено разделение каких-либо таблиц, то следует модифицировать инфологическую модель базы данных и повторить перечисленные шаги.
8. Указать ограничения целостности проектируемой базы данных и дать (если это необходимо) краткое описание полученных таблиц и их полей.
На рис. 4.6 показан синтаксис предложения, предлагаемого для регистрации принимаемых проектных решений.
Рис. 4.6. Синтаксис описания проектных решений
Для примера приведем описания таблиц "Блюда" и "Состав":
??????? ??????? ????? *( ?????????? ???????? ) ????????? ???? ( ?? ) ???? ( ?? ?????, ????? ????? 60, ??? ????? 7 ) ??????????? ( 1. ???????? ???? ????? ?????? ???? ???????????; ??? ????????? ????? ????????? "????? ????? ??? ????". 2. ???????? ???? ??? ?????? ???????????? ??????: ???????, ???, ???????, ??????, ???????; ??? ????????? ????? ????????? "????? ???? ???????, ???, ???????, ??????, ???????");??????? ??????? ?????? *( ????????? ????? ? ???????? ) ????????? ???? ( ??, ?? ) ??????? ???? ( ?? ?? ????? NULL-???????? ?? ????????? ???????? ?? ????? ????????????? ?????????? ?????.?? ?????????????) ??????? ???? ( ?? ?? ???????? NULL-???????? ?? ????????? ???????? ?? ???????? ?????????????? ?????????? ????????.?? ?????????????) ???? ( ?? ?????, ?? ?????, ??? ????? ) ??????????? ( 1. ???????? ????? ?? ? ?? ?????? ???????????? ?????? ???????? ?? ??????????????? ????? ?????? ????? ? ????????; ??? ????????? ????? ????????? "?????? ????? ???" ??? "?????? ???????? ???". 2. ???????? ???? ??? ?????? ?????? ? ???????? ?? 0.1 ?? 500 ?. );Рассмотренный язык описания данных, основанный на языке SQL [5], позволяет дать удобное и полное описание любой сущности и, следовательно, всей базы данных. Однако такое описание, как и любое подробное описание, не отличается наглядностью. Для достижения большей иллюстративности целесообразно дополнять проект инфологической моделью, но менее громоздкой, чем рассмотренная в главе 2.
Для наиболее распространенных реляционных баз данных можно предложить язык инфологического моделирования "Таблица-связь", пример использования которого приведен на рис. 4.7. В нем все сущности изображаются одностолбцовыми таблицами с заголовками, состоящими из имени и типа сущности. Строки таблицы – это перечень атрибутов сущности, а те из них, которые составляют первичный ключ, распологаются рядом и обводятся рамкой. Связи между сущностями указываются стрелками, направленными от первичных ключей или их составляющих.
Рис. 4.7. Инфологическая модель базы данных "Питание", построенная с помощью языка "Таблицы-связи"
Различные советы и рекомендации
Векторы . Представляйте векторы по столбцам, а не по строкам. Например, диаграмму продаж товаров x, y, ... за последние годы лучше представить в виде:
????? ????? ???-??-???? ??????? ?????? x ?????? 100 x ??????? 50 ... ... ... x ??????? 360 y ?????? 75 y ??????? 144 ... ... ... y ??????? 35 ... ... ...а не так, как показано ниже:
????? ???-?? ???-?? ???-?? ?????? ??????? ... ??????? ????? ??????? ??????? ??????? x 100 50 ... 360 y 75 144 ... 35 ... ... ... ... ...Одна из причин такой рекомендации заключается в том, что при этом значительно проще записываются обобщенные (параметризованные) запросы. Рассмотрите, например, как выглядит сравнение сведений из диаграммы продаж товара i в месяце с номером m со сведениями для товара j в месяце с номером n, где i, j, m и n – параметры.
Неопределенные значения . Будьте очень внимательны с неопределенными (NULL) значениями. В поведении неопределенных значений проявляется много произвола и противоречивости. В разных СУБД при выполнении различных операций (сравнение, объединение, сортировка, группирование и другие) два неопределенных значения могут быть или не быть равными друг другу. Они могут по разному влиять на результат выполнения операций по определению средних значений и нахождения количества значений. Для исключения ошибок в ряде СУБД существует возможность замены NULL-значения нулем при выполнении расчетов, объявление всех NULL-значений равными друг другу и т.п.
ЛИТЕРАТУРА
- Атре Ш. Структурный подход к организации баз данных. – М.: Финансы и статистика, 1983. – 320 с.
- Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.
- Дейт К. Руководство по реляционной СУБД DB2. – М.: Финансы и статистика, 1988. – 320 с.
- Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. – 252 с.
- Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.
- Мартин Дж. Планирование развития автоматизированных систем. – М.: Финансы и статистика, 1984. – 196 с.
- Мейер М. Теория реляционных баз данных. – М.: Мир, 1987. – 608 с.
- Тиори Т., Фрай Дж. Проектирование структур баз данных. В 2 кн., – М.: Мир, 1985. Кн. 1. – 287 с.: Кн. 2. – 320 с.
- Ульман Дж. Базы данных на Паскале. – М.: Машиностроение, 1990. – 386 с.
- Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294 с.
- Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и статистика, 1985. – 344 с.