КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проектирование базы данных
В соответствие с процедурой проектирования (п. 4.4) каждая из полученных сущностей должна быть представлена базовой таблицей. Первый вариант этих таблиц описывается так: СОЗДАТЬ ТАБЛИЦУ Создатели *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_создат) ПОЛЯ (Код_создат Целое, Фам_ИО Текст 30); СОЗДАТЬ ТАБЛИЦУ Издательства *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_издательства) ПОЛЯ (Код_издательства Целое, Название Текст 40, Город Текст 25); СОЗДАТЬ ТАБЛИЦУ Заглавия *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_заглавия) ПОЛЯ (Код_заглавия Целое, Заглавие Запись); СОЗДАТЬ ТАБЛИЦУ Вид_издания *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Вид_издания) ПОЛЯ (Вид_издания Целое, Название_вида Текст 16); СОЗДАТЬ ТАБЛИЦУ Характеры *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_характера) ПОЛЯ (Код_характера Целое, Характер_переиздания Текст 16); СОЗДАТЬ ТАБЛИЦУ Языки *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_языка) ПОЛЯ (Код_языка Целое, Язык Текст 16, Сокращение Текст 6); СОЗДАТЬ ТАБЛИЦУ Места *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Код_места) ПОЛЯ (Код_места Целое, Номер_комнаты Целое, Номер_стелажа Целое, Номер_полки Целое); СОЗДАТЬ ТАБЛИЦУ Читатели *(Стержневая сущность) ПЕРВИЧНЫЙ КЛЮЧ (Ном_билета) ПОЛЯ (Ном_билета Целое, Фамилия Текст 20, Имя Текст 16, Отчество Текст 20, Адрес Текст 60, Телефон Текст 9); СОЗДАТЬ ТАБЛИЦУ Издание *(Обозначение) ПЕРВИЧНЫЙ КЛЮЧ (Код_издания) ВНЕШНИЙ КЛЮЧ (Код_заглавия ИЗ Заглавия NULL-значения НЕ ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Заглавия ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Заглавия.Код_заглавия ОГРАНИЧИВАЕТСЯ) ВНЕШНИЙ КЛЮЧ (Вид_издания ИЗ Вид_издания NULL-значения ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Вид_издания ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Вид_издания.Вид_издания КАСКАДИРУЕТСЯ) ВНЕШНИЙ КЛЮЧ (Код_издательства ИЗ Издательства NULL-значения НЕ ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Издательства ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Издательства.Код_издательства КАСКАДИРУЕТСЯ) ПОЛЯ (Код_издания Целое, Код_заглавия Целое, Вид_издания Текст 16, Номер_тома Целое, Авторский_знак Текст 3, Библиотечн_шифр Текст 12, Повторность Целое, Код_издательст- ва Целое, Год_издания Целое) ОГРАНИЧЕНИЯ (1. Значения полей Код_заглавия, Вид_издания и Код_издательства должны принадлежать набору значений соответствующих полей таблиц Заглавия, Вид_издания и Издательства; при нарушении вывод сообщения "Такого заглавия нет", "Такого вида издания нет" или "Такого издательства нет".); СОЗДАТЬ ТАБЛИЦУ Переплеты *(Обозначение) ПЕРВИЧНЫЙ КЛЮЧ (Номер_переплета) ВНЕШНИЙ КЛЮЧ (Код_издания ИЗ Издания NULL-значения НЕ ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ) ПОЛЯ (Номер_переплета Целое, Код_издания Целое, Цена Деньги, Дата_приобретения Дата) ОГРАНИЧЕНИЯ (Значения поля Код_издания должны принадлежать набору значений соответствующего поля таблицы Издания; при нарушении вывод сообщения "Такого издания нет"); СОЗДАТЬ ТАБЛИЦУ Аннотации *(Характеризует Издания) ПЕРВИЧНЫЙ КЛЮЧ (Код_издания) ВНЕШНИЙ КЛЮЧ (Код_издания ИЗ Издания NULL-значения ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ) ПОЛЯ (Код_издания Целое, Аннотация Запись) ОГРАНИЧЕНИЯ (Значения поля Код_издания должны принадлежать набору значений соответствующего поля таблицы Издания; при нарушении вывод сообщения "Такого издания нет"); СОЗДАТЬ ТАБЛИЦУ Авторы *(Связывает Создатели и Издания) ПЕРВИЧНЫЙ КЛЮЧ (Код_создателя, Код_издания) ВНЕШНИЙ КЛЮЧ (Код_создателя ИЗ Создатели NULL-значения НЕ ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Создатели ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Создатели.Код_создателя КАСКАДИРУЕТСЯ) ВНЕШНИЙ КЛЮЧ (Код_издания ИЗ Издания NULL-значения НЕ ДОПУСТИМЫ УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ) ПОЛЯ (Код_создателя Целое, Код_издания Целое) ОГРАНИЧЕНИЯ (Значения полей Код_создателя и Код_издания должны принадлежать набору значений соответствующих полей таблиц Создатели и Издание; при нарушении вывод сообщения "Такого автора нет" или "Такого издания нет");Аналогичное содержание имеют описания таблиц Составители, Редакторы, Художники и Переиздания. Остальные же таблицы проектируемой базы данных описываются так: Теперь следует проверить, не нарушены ли в данном проекте какие-либо принципы нормализации (п. 4.6), т.е. что любое неключевое поле каждой таблицы:
Анализ сущностей Переводчики, Размещение и Выдача, состоящих из составного ключа и неключевых полей, показал, что в них нет функциональных связей между неключевыми полями. Последние же не зависят функционально от какой-либо части составного ключа. Наконец, анализ сущностей Издания, Переплеты, Места, Читатели и Языки, показал, что единственной "подозрительной" сущностью является стержень Языки, имеющий два функционально связанных неключевых поля: Язык и Сокращение. Поле Язык стало неключевым из-за ввода цифрового первичного ключа Код_языка, заменяющего текстовый возможный ключ Язык. Это позволило уменьшить объем хранимых данных в таблице Переводчики, затраты труда на ввод множества текстовых значений и возможной противоречивости, которая часто возникает из-за ввода в разные поля ошибочных дубликатов (например, "Английский", "Англиский", "Анлийский", "Англйский" и т.п.). Если мы вспомним рекомендации п. 4.5 о замене на время нормализации цифровых заменителей первичных ключей (Код_языка) на исходный ключ (Язык) или воспользуемся формулировкой НФБК, то окажется, что таблица Языки – нормализована. Для завершения проекта необходимо было бы ввести в описания таблиц дополнительные сведения об ограничениях целостности (выше указан лишь минимальный их набор) и дать описание некоторых таблиц, но ограниченный объем публикации не позволяет включать эти подробности, не являющиеся принципиальными для иллюстрации процедуры проектирования.
ЛИТЕРАТУРА
Дата добавления: 2014-11-29; Просмотров: 310; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |