close

Вход

Забыли?

вход по аккаунту

?

Охуенная курсовая

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ИНСТИТУТ ГЕОЛОГИИ И ГЕОИНФОРМАТИКИ
КАФЕДРА ГЕОИНФОРМАТИКИ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту по курсу «Управление Данными» на тему:
«Разработка базы данных»
Вариант 1
«Торговец автомобилями»
Выполнил:
Проверил:
Тюмень, 2012
Содержание
Введение.............................................................................................................................................. 3
Проектирование базы данных.......................................................................................................... 5
Проектирование базы данных методом сущность-связь ...................................................... 5
Построение диаграммы ER-типа ............................................................................................ 6
Генерация предварительных отношений по правилам генерации....................................... 7
Выявление функциональных зависимостей и проверка на Нормальную форму Бойса-Кодда9
Проверка отношений на избыточность ................................................................................ 12
Проектирование БД с помощью CASE пакета ERWin ................................................................. 13
Нотация IDEFlx ...................................................................................................................... 13
Типы связей между сущностями. Идентифицирующие и неидентифицирующие связи.14
Преимущества IDEF1X .......................................................................................................... 14
Построение логической модели ............................................................................................ 15
Построение физической модели ........................................................................................... 16
Генерация SQL-скрипта ......................................................................................................... 17
Тестирование Информационной модели ....................................................................................... 18
Описание пакета тестировании ............................................................................................. 18
Базовый протокол тестирования ........................................................................................... 19
Исправление ошибок ............................................................................................................. 20
Создание БД в СУБД SQL Server .................................................................................................... 21
Кратко о СУБД ........................................................................................................................ 21
Язык SQL ........................................................................................................................21
Операторы ......................................................................................................................21
Хранимые и присоединенные процедуры ...................................................................22
Ссылочная целостность реляционных БД ..................................................................23
Согласованность чтения................................................................................................24
Заключение ....................................................................................................................................... 25
Список использованной литературы: ............................................................................................. 26
Приложение А .................................................................................................................................. 27
Введение
Целью данной курсовой работы является получение навыков по разработке и
проектированию базы данных в архитектуре клиент-сервер.
2
Проектирование базы данных осуществляется двумя способами:
1) С использованием метода сущность связь
2) С использованием CASE пакета Erwin
Также была построена логическая и физическая модель базы данных. Было
проведено тестирование модели на ошибки, а также последующее их
устранение и проведено генерирование SQL скрипта в СУБД Interbase.
Данная курсовая работа была выполнена в следующие этапы:
• Проектирование БД методом «сущность-связь».
• Проектирование БД с помощью CASE пакета ER Win.
• Тестирование Информационной модели.
3
Проектирование базы данных
Проектирование базы данных методом сущность-связь
Задание:
Спроектировать БД для фирмы, занимающейся торговлей подержанными
автомобилями, а также их предпродажным ремонтом. На фирме работают
служащие: административный персонал, агенты по продажам, механики. О
служащих хранится информация: ФИО, ИНН, серия и номер паспорта, адрес,
телефон. Все служащие, кроме механиков, получают оклад. Агенты кроме
оклада получают процент с продажи автомобиля, при чем, если стаж работы
агента менее трех лет, то он получает 5% от продажи, а если стаж работы 3-и
года и более, то агент получает 8% от продажи. Агенты совершают сделки
купли-продажи.
При
поступлении
нового
автомобиля
проводится
его
предварительная оценка, и фиксируются следующие параметры: номер кузова,
номер двигателя, цвет кузова, марка, модель, год выпуска, пробег, дата покупки,
цена покупки.
Кроме этого автомобиль оценивают механики и составляют
список работ (если они требуются). Механики имеют разную специализацию:
специалист по электрике, специалист по ремонту двигателя и т.д. Каждый вид
работы по автомобилю выполняется механиком определенной специализации.
Механики получают почасовую оплату. После проведения ремонтных работ,
оценивается время их проведения и вычисляется стоимость. Дополнительно на
каждый автомобиль фирма устанавливает фиксированную наценку 15%, таким
образом, формируется цена продажи автомобиля. При проектировании БД
можно добавить любые, уместные на ваш взгляд, атрибуты.
4
Построение диаграммы ER-типа
При построении базы данных методом сущность-связь была построена ERдиаграмма:
5
Генерация предварительных отношений по правилам генерации
При проектировании базы данных методом сущность-связь выделено
шестнадцать сущностей:
Регион (№ региона), Страна (№ страны), Город (№ города), Офис (№ здания),
Персонал (ИНН), Агенты по продажам (№ агента), Администрация (№ админ.),
Инженеры (№ инж.), Машины (№ кузова), Производитель (Название
производителя), Модель (Название модели), Клиент (ИНН клиента), Заказ (№
заказа), Специальность (Название специальности), Работы (Название работ),
Запчасти (№ запчасти).
Сущности Регион и Страна соединены связью степенью один ко многим.
Сущности Страна и Город соединены связью степенью один ко многим.
Сущности Город и Офис соединены связью степенью один ко многим.
Сущности Офис и Персонал соединены связью степенью один ко многим.
Сущности Персонал и Агенты по продажам соединены связью степенью один к
одному.
Сущности Персонал и Администрация соединены связью степенью один к
одному.
Сущности Персонал и Инженеры соединены связью степенью один к одному.
Сущности Инженеры и Специальность соединены связью степенью много ко
многим.
Сущности Специальность и Работы соединены связью степенью много ко
многим.
Сущности Агенты по продажам и Машины соединены связью степенью один ко
многим.
Сущности Производитель и Модель соединены связью степенью один ко
многим.
Сущности Клиент и Заказ соединены связью степенью один ко многим.
6
Сущности Заказ и Модель соединены связью степенью один ко многим.
Сущности Модель и Машины соединены связью степенью один ко многим.
Ассоциация сущностей Машины и Инженеры и сущность Запчасти соединены
связью степенью много ко многим.
Ассоциация сущностей Машины и Инженеры и сущность Работы соединены
связью степенью много ко многим.
Исходя из этой схемы, были созданы таблицы:
Регион (№ региона, Название региона)
Страна (№ страны, № региона, Название страны)
Город (№ города, № страны, Название города)
Офис (№ здания, № города, Адрес, Телефон офиса)
Персонал (ИНН, № здания, № агента, № админ., № инж., Имя, фамилия, Адрес,
Дата рождения, Телефон, Дата приёма на работу)
Администрация (№ админ., Оклад админ.)
Агенты (№ агента, Оклад агента, Процент с продаж)
Инженеры (№ инж., Почасовая оплата)
Машины (№ кузова, № агента, Имя модели, Цена, Пробег)
Производитель (Название производителя)
Модель (Название модели, Название производителя, Категория, Лошадиные
силы, Грузоподъёмность, Год выпуска)
Клиент (ИНН клиента, Имя клиента, Фамилия клиента, Телефон клиента)
Заказ (№ заказа, ИНН клиента, Дата заказа, Сумма заказа)
Модель в заказе (№ заказа, Название модели)
Специальность (Название специальности)
Специальности инженеров (Название специальности, № инж.)
Работы (Название работ)
Работы в ремонте (№ кузова, № инженера, Название работ)
Задействованные специальности (Название работ, Название специальностей)
Запчасти (№ запчасти, Название запчасти, Цена запчасти)
7
Использованные запчасти (№ детали, № кузова, № инженера)
Выявление функциональных зависимостей и проверка на Нормальную форму
Бойса-Кодда
В сущности Регион выявлены следующие функциональные зависимости:
№ региона → Название региона
В данной сущности № региона является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Страна выявлены следующие функциональные зависимости:
№ страны → Название страны
№ страны → № региона
В данной сущности № страны является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Город выявлены следующие функциональные зависимости:
№ города → Название города
№ города → № страны
В данной сущности № города является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Офис выявлены следующие функциональные зависимости:
№ здания → Адрес офиса
№ здания → Телефон офиса
В данной сущности № офиса является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Персонал выявлены следующие функциональные
зависимости:
ИНН → № здания
ИНН → № агента
ИНН → № админ.
ИНН → № инж.
8
ИНН → Имя
ИНН → Фамилия
ИНН → Адрес
ИНН → Телефон
ИНН → Дата рождения
ИНН → Дата приёма на работу
В данной сущности ИНН является детерминантом и потенциальным ключом,
следовательно отношение находится в НФБК.
В сущности Администрация выявлены следующие функциональные
зависимости:
№ админ. → Оклад админ.
В данной сущности № админ. является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Агенты по продажам выявлены следующие функциональные
зависимости:
№ агента → Оклад агента
В данной сущности № агента является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Инженеры выявлены следующие функциональные
зависимости:
№ инж. → Почасовая оплата
В данной сущности № инж. является детерминантом и потенциальным ключом,
следовательно отношение находится в НФБК.
В сущности Машины выявлены следующие функциональные
зависимости:
№ кузова → № агента
№ кузова → Название модели
№ кузова → Цена
№ кузова → Пробег
9
В данной сущности № кузова является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Модель выявлены следующие функциональные зависимости:
Название модели → Название производителя
Название модели → Категория
Название модели → Лошадиные силы
Название модели → Грузоподъёмность
Название модели → Год выпуска
В данной сущности Название модели является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Клиент выявлены следующие функциональные зависимости:
ИНН клиента → Имя клиента
ИНН клиента → Фамилия клиента
ИНН клиента → Телефон клиента
В данной сущности ИНН клиента является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Заказ выявлены следующие функциональные зависимости:
№ заказа → ИНН клиента
№ заказа → Дата заказа
№ заказа → Сумма заказа
В данной сущности № клиента является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
В сущности Запчасти выявлены следующие функциональные
зависимости:
№ запчасти → Имя запчасти
№ запчасти → Цена запчасти
В данной сущности № запчасти является детерминантом и потенциальным
ключом, следовательно отношение находится в НФБК.
10
Проверка отношений на избыточность
Зависимость, не заключающая в себе такой информации, которая не могла бы
быть получена на основе других зависимостей из числа использованных при
проектировании БД. называется избыточной
В ходе проектирования Базы Данных избыточных функциональных
зависимостей не было выявлено.
11
Проектирование БД с помощью CASE пакета ERWin
Нотация IDEFlx
DEF1X является методом для разработки реляционных баз данных и использует
условный синтаксис, специально разработанный для удобного построения
концептуальной схемы. Концептуальной схемой мы называем универсальное
представление структуры данных в рамках коммерческое предприятия,
независимое от конечной реализации базы данных и аппаратной платформы.
Будучи статическим методом разработки, IDEF1 изначально не предназначен
для динамического анализа по принципу "А IS", тем не менее, он иногда
применяется в этом качестве, как альтернатива методу IDEF1. Использование
метода IDEF1X наиболее целесообразно для построения логической структуры
базы данных после того, как все информационные ресурсы исследованы
(скажем, с помощью метода IDE и решение о внедрении реляционной базы
данных, как части корпоративной информационной системы, было принято.
Однако не стоит забывать, что средства моделирования IDEF1X специально
разработаны для построен реляционных информационных систем, и если
существует необходимое проектирования другой системы, скажем, объектноориентированной, так что лучше избрать другие методы моделирования.
12
Типы связей между сущностями. Идентифицирующие и
неидентифицирующие связи.
В IDEF1X концепция зависимых и независимых сущностей усиливается типом
взаимосвязей между двумя сущностями. Если вы хотите, чтобы внешний ключ
передавался в дочернюю сущность (и, в результате, создавал зависимую
сущность), то можете создать идентифицирующую связь между родительской и
дочерней сущность.
Неидентифицирующие связи, являющиеся уникальными для IDEF1X, также
связывают родительскую сущность с дочерней. Неидентифицирующие связи
используются для отображения другого типа передачи атрибутов внешних
ключей - передача в область данных дочерней сущности.
Так как переданные ключи в неидентифицирующей связи не являются
составной частью первичного ключа дочерней сущности, то этот вид связи не
проявляется ни в одной идентифицирующей зависимости.
Преимущества IDEF1X
Основным преимуществом IDEF1X, по сравнению с другими многочисленными
методами разработки реляционных баз данных, такими как ER и ENALIM
является жесткая и строгая стандартизация моделирования. Установленные
стандарты позволяют избежать различной трактовки построенной модели,
которая несомненно является значительным недостатком ER.
13
Построение логической модели
Для построения логической и физической модели был использован пакет
программного обеспечения СА Erwin Data Modeler 7.3.0.1666
Чтобы реализовать поставленную задачу при помощи данного Программного
Обеспечения, на логическую схему вместо ассоциации Ремонт была добавлена
новая сущность Ремонт.
Для предотвращения путаницы с названиями таблиц и атрибутов логической
схемы, было применено использование английского языка в названиях таблиц и
атрибутов.
В итоге логическая схема приобрела следующий вид:
14
Построение физической модели
Для удобства выполнения запросов было применено использование английского
языка в названиях таблиц и атрибутов.
Изображение физической модели:
15
Генерация SQL-скрипта
Генерация основного SQL скрипта была выполнена в том же программном
продукте СА Erwin Data Modeler на физической схеме при помощи команды:
Tools → Forward Engineer → Schema Generation
Данный скрипт можно просмотреть в Приложении А.
16
Тестирование Информационной модели
Описание пакета тестировании
Тестирование построенной ранее модели осуществлялось в программном
продукте СЛ Erwin Data Model Validator 7.3.1.5719
CA ERwin Data Model Validator — инструмент для проверки структуры баз
данных и моделей, создаваемых в СА ERwin Data Modeler, позволяющий
выявлять недочеты и ошибки проектирования. Гибкость СА ERwin Data Model
Validator заключается в том, что можно проводить выборочные тесты, а также
анализировать отдельные таблицы. 11 роду кг дополняет функциональность CA
ERwin Data Modeler, автоматизируя трудоемкую задачу поиска и исправления
ошибок, одновременно повышая квалификацию проектировщиков баз данных,
благодаря встроенной системе обучения.
Встроенные функциональные возможности обеспечения качества и проверки
моделей позволяют осуществлять контроль семантики моделей на каждой
стадии разработки и вносить необходимые исправления, что помогает
разработчикам создавать модели высокого качества.
CA ERwin Data Model Validator позволяет анализировать структуры данных,
ключи, индексы, столбцы и отношения. Кроме того, решение поможет
отобразить в графическим виде структуру всей базы данных, включая столбцы
с перекрестными ссылками и списки отношений.
СА ERwin Data Model Validator используется всем компаниям,
разрабатывающим и использующим базы данных:
Администраторам баз данных, системным аналитикам, проектировщикам БД,
разработчикам, руководителям проектов.
17
В программе СА ERwin Data Model Validator был создан новый проект с
использованием типа Data Model from Erwin.
Затем была импортирована созданная модель формата .erwin
Базовый протокол тестирования
Первоначальное тестирование модели выявило следующие ошибки:
Missing Indexes –
Отсутствие индексов,
например, на внешнем
ключе.
Tables with No
Clustered Index —
Таблица
должна иметь
кластеризованный
индекс.
Tables with No
Relationships —
Таблица
не имеет связей.
Tables with
Multiple
с
множественными
путями.
18
Paths — Таблица
Исправление ошибок
Missing Indexes и Tables with No Clustered Index не являются серьёзными
ошибками и не оказывают большого влияния на работу БД, поэтому
исправлены не были.
Tables with No Relationships — не были созданы промежуточные таблицы для
осуществления связи «Много ко многим». Ошибка исправлена.
Tables with Multiple Paths означает, что таблицы связаны более чем одной
связью. Не является серьёзной ошибкой и не оказывает большого влияния на
работу БД, поэтому исправлено не было, поскольку для этого необходимо
менять структуру БД.
19
Создание БД в СУБД SQL Server
Кратко о СУБД
Microsoft SQL Server — система управления реляционными базами данных
(СУБД), разработанная корпорацией Microsoft. Основной используемый язык
запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL
является реализацией стандарта ANSI/ISO по структурированному языку
запросов (SQL) с расширениями. Используется для работы с базами данных
размером от персональных до крупных баз данных масштаба предприятия;
конкурирует с другими СУБД в этом сегменте рынка.
Язык SQL
Язык SQL (Structured Query Language — язык структурированных запросов)
используется, так как он удобен для описания логических подмножеств БД.
Назначение SQL:
- создание БД и таблицы с полным описанием их структуры;
- выполнение основных операций манипулирования данными (такие как
вставка, модификация и удаление данных из таблиц);
- выполнение простых и сложных запросов.
Одна из ключевых особенностей языка SQL заключается в том, что с его
помощью формируются запросы, описывающие какую информацию из базы
данных необходимо получить, а пути решения этой задачи программа
определяет сама.
Операторы
Согласно общепринятому стилю программирования, операторы (и другие
зарезервированные слова) в SQL всегда следует писать прописными буквами.[6]
Операторы SQL делятся на:
 операторы определения данных (Data Definition Language, DDL)
20
CREATE - создает объект БД (саму базу, таблицу, представление, пользователя и
т. д.)
ALTER - изменяет объект
DROP - удаляет объект
 операторы манипуляции данными (Data Manipulation Language, DML)
SELECT - считывает данные, удовлетворяющие заданным условиям
INSERT - добавляет новые данные
UPDATE - изменяет существующие данные
DELETE - удаляет данные
 операторы определения доступа к данным (Data Control Language, DCL)
GRANT - предоставляет пользователю (группе) разрешения на определенные
операции с объектом
REVOKE - отзывает ранее выданные разрешения
DENY - задает запрет, имеющий приоритет над разрешением
 операторы управления транзакциями (Transaction Control Language, TCL)
COMMIT - применяет транзакцию.
ROLLBACK - откатывает все изменения, сделанные в контексте текущей
транзакции.
SAVEPOINT - делит транзакцию на более мелкие участки.
Хранимые и присоединенные процедуры
Существуют расширенные версии языка SQL, которые поддерживают такие
расширения, как хранимые и расширенные процедуры, а также управление
ходом программы через ветвления и организацию циклов.
Хранимые процедуры — это предварительно откомпилированные предложения
языка SQL, которые сохраняются на сервере базы данных, использующей язык
SQL. Клиент запускает хранимую процедуру с помощью команды
EXECUTE<имя процедуры>. Таким образом, по сети передаются только два
слова. Поскольку эта процедура уже откомпилирована и оптимизирована,
21
серверу не нужно тратить время на компиляцию и оптимизацию.
В качестве хранимых процедур обычно используются часто выполняемые
запросы.
Присоединенные процедуры (триггеры) подобны хранимым процедурам и
исполняются в ответ на события, происходящие в БД. Когда с некоторыми
приложениями языка SQL связана присоединенная процедура, выполнение
этого предложения всегда запускает целую серию команд, входящих в эту
процедуру. Присоединенная процедура автоматически выполняет одно или
более предложений языка SQL, всякий раз, когда выполняет предложения
INSERT, UPDATE или DELETE.
Самое важное применение присоединенных процедур заключается в
обеспечении ссылочной целостности.
Ссылочная целостность реляционных БД
Большинство SQL-серверов поддерживают ссылочную целостность
реляционных БД, состоящих из отдельных таблиц, которые могут быть
объединены на основе общей информации Рассмотрим на следующем примере:
база данных содержит таблицу клиентов и таблицу заказов, которые связаны
полем номера клиента, содержащимся в обеих таблицах. Поскольку может быть
более одного заказа от одного клиента, соотношение таблиц — «один-комногим». Когда таблицы соединены, то таблица клиентов является
родительской, а таблица заказов — дочерней. Если запись-родитель стирается, а
соответствующие ей дочерние записи — нет, то говорят, что дочерние записи
«осиротели». Ссылочная целостность означает, что ни в одной таблице не
допустимы записи-«сироты». Запись может осиротеть тремя способами:
1) родительская запись удалена;
2) родительская запись изменена таким образом, что связь между «родителем»
и «потомками» потеряна;
3) введена дочерняя запись без соответствующей родительской.
22
Поддержание ссылочной целостности возможно несколькими способами:
1) Через ключи, хранящиеся в таблицах БД (родительские таблицы содержат
первичные ключи, представляющие собой комбинации внешних ключей,
которые могут быть найдены внутри каждой из дочерних таблиц).
2) Использование присоединенных процедур — процедурная ссылочная
целостность. Присоединенные программы обеспечивают ссылочную
целостность за счет автоматического выполнения предложений SQL всякий раз,
когда встречается одно из предложений UPDATE/INSERT или DELETE (либо
запрещается удаление родительской записи, либо стираются все дочерние
записи).
Согласованность чтения
Характерна для многопользовательских СУБД. Для её реализации серверы
обладают средствами автоматической блокировки.
Уровни, на которых блокируется таблица во время обновлений:
- вся таблица;
- страница (физический блок размером от 1 до 4 Кбайт, содержащий несколько
записей).
23
Заключение
В данной курсовой работе, мы осветили проблему разработки реляционной
базы данных для контроля деятельности фирмы, занимающейся ремонтом и
последующей продажей поддержанных автомобилей.
В ходе разработки было решено множество проблем, начиная от построения
изначальной ER-диаграммы, заканчивая генераций скрипта для СУБД SQL
Server 2005.
Много времени было уделено исключению избыточности данных, проработке
быстрого и независимого доступа к требуемой информации.
24
Список использованной литературы:
1. http://www.in4business.ru/articles/subject 324/article 139.html — описание
нотации IDEF1X.
2. http://ru.wikipedia.org/wiki/SQL — универсальная интернет энциклопедия
3. http://www.erwin.ru—сайт посвященный программному пакету ERwin
25
Приложение А
CREATE TABLE Administration
(
№_of_Admin integer NOT NULL ,
Admin_pay integer NULL
)
go
CREATE TABLE Agents
(
№_of_Agent integer NOT NULL ,
Agent_pay integer NULL
)
go
CREATE TABLE Cars
(
№_of_body char(18) NOT NULL ,
№_of_Agent integer NOT NULL ,
Name_of_Model char(18) NOT NULL ,
Price integer NULL ,
Mileage varchar(20) NULL
)
go
CREATE TABLE City
(
№_of_city integer NOT NULL ,
26
№_of_country integer NOT NULL ,
Name_of_city varchar(20) NULL
)
go
CREATE TABLE Clients
(
ID_of_Clients char(18) NOT NULL ,
Client_first_name varchar(20) NULL ,
Client_last_name varchar(20) NULL ,
Client_phone integer NULL
)
go
CREATE TABLE Country
(
№_of_country integer NOT NULL ,
№_of_region integer NOT NULL ,
Name_of_country varchar(20) NULL
)
go
CREATE TABLE Ingeneer
(
№_of_ingeneer integer NOT NULL ,
Pay_in_hour integer NULL
)
go
27
CREATE TABLE Ingeneer_Specialisations
(
№_of_ingeneer integer NOT NULL ,
Name_of_Skill char(18) NOT NULL
)
go
CREATE TABLE Model
(
Name_of_Model char(18) NOT NULL ,
Name_of_produce char(18) NOT NULL ,
Category varchar(20) NULL ,
Release_date datetime NULL ,
Horsepower integer NULL ,
Carrying integer NULL
)
go
CREATE TABLE Model_in_order
(
Name_of_Model char(18) NOT NULL ,
№_of_order integer NOT NULL
)
go
CREATE TABLE Office
(
№_of_building integer NOT NULL ,
№_of_city integer NOT NULL ,
28
Building_addres varchar(20) NULL ,
Building_phone integer NULL
)
go
CREATE TABLE Order
(
№_of_order integer NOT NULL ,
ID_of_Clients char(18) NOT NULL ,
Date_of_order datetime NULL ,
Price_of_order integer NULL
)
go
CREATE TABLE Parts
(
№_of_parts integer NOT NULL ,
Name_of_part varchar(20) NULL ,
Price_of_part integer NULL
)
go
CREATE TABLE Parts_in_repair
(
№_of_parts integer NOT NULL ,
№_of_body char(18) NOT NULL ,
№_of_ingeneer integer NOT NULL
)
go
29
CREATE TABLE Personal
(
ID char(18) NOT NULL ,
First_name varchar(20) NULL ,
Last_name varchar(20) NULL ,
Addres varchar(20) NULL ,
Birth_date varchar(20) NULL ,
Phone integer NULL ,
№_of_building integer NOT NULL ,
№_of_Admin integer NOT NULL ,
№_of_ingeneer integer NOT NULL ,
№_of_Agent integer NOT NULL ,
Hire_date datetime NULL
)
go
CREATE TABLE Produce
(
Name_of_produce char(18) NOT NULL
)
go
CREATE TABLE Region
(
№_of_region integer NOT NULL ,
Name_of_region varchar(20) NULL
)
go
30
CREATE TABLE Repair
(
№_of_body char(18) NOT NULL ,
№_of_ingeneer integer NOT NULL ,
Name_of_work varchar(20) NULL
)
go
CREATE TABLE Specialisations
(
Name_of_Skill char(18) NOT NULL
)
go
CREATE TABLE Specialisations_in_work
(
Name_of_Skill char(18) NOT NULL ,
Name_of_Works char(18) NOT NULL
)
go
CREATE TABLE Works
(
Name_of_Works char(18) NOT NULL
)
go
CREATE TABLE Works_in_repair
31
(
№_of_body char(18) NOT NULL ,
№_of_ingeneer integer NOT NULL ,
Name_of_Works char(18) NOT NULL
)
go
ALTER TABLE Cars
ADD CONSTRAINT R_10 FOREIGN KEY (№_of_Agent) REFERENCES
Agents(№_of_Agent)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Cars
ADD CONSTRAINT R_19 FOREIGN KEY (Name_of_Model)
REFERENCES Model(Name_of_Model)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE City
ADD CONSTRAINT R_2 FOREIGN KEY (№_of_country) REFERENCES
Country(№_of_country)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Country
32
ADD CONSTRAINT R_1 FOREIGN KEY (№_of_region) REFERENCES
Region(№_of_region)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Ingeneer_Specialisations
ADD CONSTRAINT R_13 FOREIGN KEY (№_of_ingeneer)
REFERENCES Ingeneer(№_of_ingeneer)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Ingeneer_Specialisations
ADD CONSTRAINT R_23 FOREIGN KEY (Name_of_Skill) REFERENCES
Specialisations(Name_of_Skill)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Model
ADD CONSTRAINT R_18 FOREIGN KEY (Name_of_produce)
REFERENCES Produce(Name_of_produce)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Model_in_order
ADD CONSTRAINT R_31 FOREIGN KEY (Name_of_Model)
33
REFERENCES Model(Name_of_Model)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Model_in_order
ADD CONSTRAINT R_33 FOREIGN KEY (№_of_order) REFERENCES
Order(№_of_order)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Office
ADD CONSTRAINT R_3 FOREIGN KEY (№_of_city) REFERENCES
City(№_of_city)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Order
ADD CONSTRAINT R_6 FOREIGN KEY (ID_of_Clients) REFERENCES
Clients(ID_of_Clients)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Parts_in_repair
ADD CONSTRAINT R_24 FOREIGN KEY (№_of_parts) REFERENCES
Parts(№_of_parts)
34
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Parts_in_repair
ADD CONSTRAINT R_30 FOREIGN KEY (№_of_body,№_of_ingeneer)
REFERENCES Repair(№_of_body,№_of_ingeneer)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Personal
ADD CONSTRAINT R_34 FOREIGN KEY (№_of_building) REFERENCES
Office(№_of_building)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Personal
ADD CONSTRAINT R_35 FOREIGN KEY (№_of_Admin) REFERENCES
Administration(№_of_Admin)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Personal
ADD CONSTRAINT R_36 FOREIGN KEY (№_of_ingeneer)
REFERENCES Ingeneer(№_of_ingeneer)
ON DELETE NO ACTION
35
ON UPDATE NO ACTION
go
ALTER TABLE Personal
ADD CONSTRAINT R_37 FOREIGN KEY (№_of_Agent) REFERENCES
Agents(№_of_Agent)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Repair
ADD CONSTRAINT R_7 FOREIGN KEY (№_of_body) REFERENCES
Cars(№_of_body)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Repair
ADD CONSTRAINT R_9 FOREIGN KEY (№_of_ingeneer) REFERENCES
Ingeneer(№_of_ingeneer)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Specialisations_in_work
ADD CONSTRAINT R_20 FOREIGN KEY (Name_of_Skill) REFERENCES
Specialisations(Name_of_Skill)
ON DELETE NO ACTION
ON UPDATE NO ACTION
36
go
ALTER TABLE Specialisations_in_work
ADD CONSTRAINT R_26 FOREIGN KEY (Name_of_Works)
REFERENCES Works(Name_of_Works)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Works_in_repair
ADD CONSTRAINT R_15 FOREIGN KEY (№_of_body,№_of_ingeneer)
REFERENCES Repair(№_of_body,№_of_ingeneer)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Works_in_repair
ADD CONSTRAINT R_28 FOREIGN KEY (Name_of_Works)
REFERENCES Works(Name_of_Works)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
37
Документ
Категория
Программирование, Базы данных
Просмотров
89
Размер файла
680 Кб
Теги
охуенная, курсовая
1/--страниц
Пожаловаться на содержимое документа