25621-1 (751113), страница 4
Текст из файла (страница 4)
ПЕРВИЧНЫЙ КЛЮЧ ( БЛ )
ПОЛЯ ( БЛ Целое, Блюдо Текст 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 с.