Реализация базы данных и серверной части информационной системы «ГАИ» средствами СУБД Microsoft SQL Server
В отношении DRIVERS порядковые номера водителей могут начинаться с 1 и не должны превышать число 9999, водитель не может не иметь ФИО, даты рождения, адреса проживания, паспорта (соответственно, его номера), водительского удостоверения (соответственно, его номера, даты выдачи и категории). В отношении JACKED_CARS порядковые номера угнанных автомобилей могут начинаться с 1 и не должны превышать… Читать ещё >
Реализация базы данных и серверной части информационной системы «ГАИ» средствами СУБД Microsoft SQL Server (реферат, курсовая, диплом, контрольная)
1. Реализация базы данных и серверной части информационной системы «ГАИ» средствами СУБД Microsoft SQL Server
1.1 Анализ предметной области
1.2 Анализ информационных задач и круга пользователей системы
1.3 Выработка требований и ограничений
1.4. Разработка проекта базы данных
1.5 Программная реализация проекта базы данных
1.6 Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных
1.7 Разработка триггеров для поддержки сложных ограничений целостности в базе данных
1.8 Запросы
1.9 Представления Заключение Список использованных источников Приложение, А ПРОГРАММА СОЗДАНИЯ БАЗЫ ДАННЫХ Приложение Б ДИАГРАММА БАЗЫ ДАННЫХ Приложение В ПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ Приложение Г РЕАЛИЗАЦИЯ ЗАПРОСОВ НА ЯЗЫКЕ SQL
Работа с информацией в наши дни один из краеугольных камней практически в любой области деятельности человека. Зачастую требуется провести сбор, хранение, изменение, выборку информации по различным критериям. Системы управления базами данных (СУБД) является очень удобным механизмом для систематизации всех процессов, связанных с обработкой информации.
База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей Реляционные базы данных — базы данных, основанные на прикладной логической модели данных, описывающей структурный аспект, аспект целостности и аспект обработки данных.
Система управления базами данных — это комплекс программных и языковых средств, необходимых для создания, обработки баз данных и поддержания их в актуальном состоянии.
Задачей курсовой работы является разработка и реализация базы данных и серверной части информационной системы оптовый склад средствами СУБД Microsoft SQL Server 2008. Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL — является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL)с расширениями.
1. Реализация базы данных и серверной части информационной системы «ГАИ» средствами СУБД Microsoft SQL Server
1.1 Анализ предметной области
База данных создаётся для информационного обслуживания зарегистрированных водителей и автомобилей. БД должна содержать данные о зарегистрированных автомобилях, в том числе угнанные машины, а так же данные о владельцах.
В соответствии с предметной областью система строится с учётом следующих особенностей:
1) Каждый автомобиль имеет свой уникальный номер;
2) Каждый автомобиль должен иметь дату регистрации;
3) На каждого водителя создается запись с его данными;
Выделим базовые сущности этой предметной области:
1) Автомобили — это связь между водителями и кодами марки.
Атрибуты: код автомобиля, код владельца, код марки, госномер, номер кузова, номер двигателя, номер техпаспорта, дата выпуска, дата регистрации, цвет.
2) Угнанные автомобили. Атрибуты: код заявки, дата угона, дата подачи заявления, код автомобиля, код владельца, обстоятельства угона, отметка о нахождении, дата нахождения.
3) Владельцы. Атрибуты: код владельца, ФИО, дата рождения, адрес, номер паспорта, номер прав, дата выдачи прав, категория.
4) Марки. Атрибуты: код марки, название, код фирмы, код страны.
5) Фирмы. Атрибуты: код фирмы, название.
6) Страны. Атрибуты: код страны, название.
1.2 Анализ информационных задач и круга пользователей системы Система создаётся для обслуживания следующих групп пользователей:
1) Сотрудники ГАИ.
2) Владельцы автомобилей.
Функциональные возможности:
1) ведение базы данных (запись, чтение, модификация, удаление);
2) реализация хранимых процедур и триггеров для поддержания сложных ограничений целостности в базе данных;
3) реализация наиболее часто встречающихся запросов и представлений для пользователей в готовом виде;
1.3 Выработка требований и ограничений
база данное пользователь информационный
Основные ограничения целостности:
1. Текстовые поля могут содержать только символы русского алфавита, цифры и знаки препинания.
2. В отношении FIRM порядковые номера фирм могут начинаться с 1 и не должны превышать число 9999, фирма не может не иметь названия.
3. В отношении COUNTRY порядковые номера стран могут начинаться с 1 и не должны превышать число 9999, страна не может не иметь названия.
4. В отношении AM_MARK порядковые номера марок автомобилей могут начинаться с 1 и не должны превышать число 9999, марка автомобиля не может не иметь названия.
5. В отношении DRIVERS порядковые номера водителей могут начинаться с 1 и не должны превышать число 9999, водитель не может не иметь ФИО, даты рождения, адреса проживания, паспорта (соответственно, его номера), водительского удостоверения (соответственно, его номера, даты выдачи и категории).
6. В отношении AM порядковые номера автомобилей могут начинаться с 1 и не должны превышать число 9999, поставленный на учет автомобиль не может не иметь владельца (его кода), марки (ее кода), государственного регистрационного номера, номера кузова, номера двигателя, техпаспорта (его номера), даты выпуска, даты регистрации и цвета.
7. В отношении JACKED_CARS порядковые номера угнанных автомобилей могут начинаться с 1 и не должны превышать число 9999, угнанный автомобиль не может быть незарегистрированным, ввиду чего все требования для отношения зарегистрированных автомобилей справедливы для данного отношения.
1.4. Разработка проекта базы данных Разработанная структура базы данных может быть представлена в следующем виде:
Рис. 1. Структура БД Таблица 1. Автомобили
Имя столбца | Содержательное описание | Тип данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
AM_CODE | Код автомобиля | Целый | 0001−9999 | Нет | PK | |||
AM_DRIVER_CODE | Код водителя | Целый | 0001−9999 | Нет | FK | |||
AM_MARK_CODE | Код марки | Целый | 0001−9999 | Нет | FK | |||
AM_REG_NUMBER | Госномер | Символьный | «А-Я», «0−9» | Нет | А001АА01 | |||
AM_BODY_NUMBER | Номер кузова | Целый | 1−999 999 999 | Нет | ||||
AM_ENGINE_NUMBER | Номер двигателя | Целый | 1−999 999 999 | Нет | ||||
AM_TECHPASSPORT_NUMBER | Номер техпаспорта | Целый | 1−999 999 999 | Нет | ||||
AM_BIRTHDATE | Дата выпуска | Дата | Нет | 01.01.2000 | ||||
AM_REGISTRATION_DATE | Дата регистрации | Дата | Нет | 01.01.2000 | ||||
AM_COLOR | цвет | Символьный | «А-Я», «0−9» | Нет | Белый | |||
Таблица 2. Автомобили в угоне
Имя столбца | Содержательное описание | Тип данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
JC_CODE | Код угона | Целый | 0001−9999 | Нет | PK | |||
JC_JACKDATE | Дата угона | Целый | Нет | 01.01.2000 | ||||
JC_REPORT_DATE | Дата подачи заявки | Дата | Нет | 01.01.2000 | ||||
JC_AM_CODE | Код угнанного а/м | Целый | 0001−9999 | Нет | FK | |||
JC_DRIVER_CODE | Код владельца | Целый | 0001−9999 | Нет | FK | |||
JC_ADDITIONAL | Доп. Сведения | Символьный | «А-Я», «0−9» | Да | Ночью | |||
JC_FOUND | Отметка о нахождении | Логический | 0−1 | Да | ||||
JC_FOUND_DATE | Дата нахождения | Дата | Да | 01.01.2000 | ||||
Таблица 3. Водители (владельцы а/м)
Имя столбца | Содержательное описание | Тип Данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
DRIVER_CODE | Код водителя | Целый | 0001−9999 | Нет | PK | |||
DRIVER_FIO | ФИО | Символьный | «А-Я», «0−9» | Нет | Банников Денис Павлович | |||
DRIVER_BIRTHDATE | Дата рождения | Дата | Нет | 06.11.1991 | ||||
DRIVER_ADRESS | Адрес | Символьный | «А-Я», «0−9» | Нет | Отцовский пер. 1−1 | |||
DRIVER_PASSPORT | Номер паспорта | Целый | 1 111 111 111−9 999 999 999 | Нет | ||||
DRIVER_RULES | Номер вод. удостовер. | Символьный | Нет | 123А4569Р1 | ||||
DRIVER_RULES_DATE | Дата выдачи прав | Дата | Нет | 06.11.2009 | ||||
DRIVER_CATEGORY | Категория прав | Символьный | «А-Я» | Нет | В | |||
Таблица 4. Марки автомобилей
Имя столбца | Содержательное описание | Тип Данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
MARK_CODE | Код марки | Целый | 0001−9999 | Нет | PK | |||
MARK_NAME | Название марки | Символьный | «А-Я» | Нет | Лада | |||
FIRM_CODE | Код фирмы | Целый | 0001−9999 | Нет | FK | |||
COUNTRY_CODE | Код страны | Целый | 0001−9999 | Нет | FK | |||
Таблица 5. Фирмы
Имя столбца | Содержательное описание | Тип Данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
FIRM_CODE | Код фирмы | Целый | 0001−9999 | Нет | PK | |||
FIRM_NAME | Название фирмы | Символьный | «А-Я» | Нет | Audi | |||
Таблица 6. Страны
Имя столбца | Содержательное описание | Тип Данных | Раз-мер; ность | Область допустимых значений | Возможность значения Null | Роль | Пример | |
COUNTRY_CODE | Код страны | Целый | 0001−9999 | Нет | PK | |||
COUNTRY_NAME | Название страны | Символьный | «А-Я» | Нет | Россия | |||
1.5 Программная реализация проекта базы данных
Программная реализация проекта базы данных выполнена с помощью операторов языка SQL CREATE, DROP, UPDATE, INSERT
Текст программы создания базы данных приведен в приложении А.
Для спроектированной базы данных средствами СУБД Microsoft SQL Server 2008 R2 построена диаграмма, которая приведена в приложении Б.
Текст программы ввода тестовых данных приведен в приложении В.
1.6 Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных Для облегчения работы с БД и реализации сложных ограничений были разработаны следующие процедуры:
1.Процедура просмотра кодов белых автомобилей.
Данная процедура выводит коды всех белых автомобилей.
CREATE PROC PROC1
AS
SELECT AM. AM_CODE AS «KOD»
FROM AM
WHERE AM. AM_COLOR='WHITE'
Выполнение и результат:
Имеем:
SELECT * FROM AM
Рис. 2
EXEC PROC1
Получим:
Рис. 3
2. Процедура поиска автомобиля по номеру Данная процедура выводит цвет и дату выпуска автомобиля с указанным номером
CREATE PROC PROC2
@NOMER char (40)
AS
SELECT AM. AM_REG_NUMBER AS «HOMEP», AM. AM_BIRTHDATE AS 'DATA BbIIIYSKA', AM. AM_COLOR AS 'LI, BET'
FROM AM
WHERE AM. AM_REG_NUMBER=@NOMER
Выполнение и результат:
EXEC PROC2 'A001AA01'
Получим:
Рис. 4
3.Процедура удаления строки автомобиля по коду.
Данная процедура удаляет автомобиль по его коду.
CREATE PROC PROC3
@CODE_AM INT
AS
DELETE AM
WHERE AM. AM_CODE=@CODE_AM
Выполнение и результат:
Рис. 5
EXEC PROC3 7;
SELECT * FROM AM;
Получим:
Рис. 6
1.7 Разработка триггеров для поддержки сложных ограничений целостности в базе данных
Для поддержания логической целостности базы данных и реализации сложных ограничений был разработан следующие триггеры:
1)Данный триггер производит удаление всех связей из таблиц автомобилей и угнанных автомобилей при удалении владельца.
Событие: в базе данных производится удаление строки владельца.
Предусмотренные действия: строка будет удалена из таблицы владельцев, будут удалены соответствующие строки из таблиц угона и автомобилей.
CREATE TRIGGER TRIGGERINSERT
ON DRIVERS FOR DELETE
AS
SELECT @id = DRIVER_CODE FROM DELETED
DELETE FROM JACKED_CARS WHERE JC_DRIVER_CODE = @id
DELETE FROM AM WHERE AM_DRIVER_CODE = @id
PRINT 'DRIVER AND DATA DELETED'
2)Данный триггер не позволяет внести в таблицу владельцев повторяющуюся запись.
Событие: в базу данных добавляется запись о водителе с ФИО, которые уже имеются в таблице БД.
Предусмотренные действия: SQL выдаёт сообщение, что такая запись уже есть.
CREATE TRIGGER TRIGGERINSERT
ON DRIVERS FOR INSERT
AS
DECLARE @FIO CHAR (33), @FIO1 CHAR (33)
SELECT @FIO=DRIVER_FIO FROM INSERTED
SELECT @FIO1=DRIVER_FIO FROM DRIVERS WHERE DRIVER_FIO=@FIO
IF @FIO=@FIO1
BEGIN
ROLLBACK TRANSACTION
PRINT 'THIS DRIVER ALREADY EXISTS'
END
ELSE
PRINT 'DRIVER ADDED'
1.8 Запросы
Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица.
В курсовой работе разработаны следующие запросы:
1. Показать коды всех белых автомобилей
2. Показать все немецкие марки автомобилей
3. Показать всех водителей с фамилией Гришин (GRISHIN)
4. Показать информацию по белым автомобилям, владельцами которых являются водители категории В
5. Показать все угнанные автомобили, выпущенные после 10.10.1991
6. Показать все угнанные после 01.01.2003 автомобили
7. Показать все угнанные после 01.01.2003 белые автомобили
8. Показать все угнанные у водителей категории В после 01.01.2003 автомобили
9. Показать всех водителей AUDI
10. Показать всех водителей белых AUDI
Подробный текст запросов и результаты их выполнения приведены в приложении Г.
1.9 Представления В данной работе были разработаны следующие представления, основанные на нескольких таблицах:
1. Создаем представление, включающее в себя ФИО водителя, марку его автомобиля и его цвет.
CREATE VIEW VIEW1 («BODuTEJIb», «MAPKA», «LI, BET»)
AS SELECT DRIVERS. DRIVER_FIO, AM_MARK.MARK_NAME, AM. AM_COLOR
FROM DRIVERS, AM_MARK, AM
WHERE AM. AM_DRIVER_CODE=DRIVERS.DRIVER_CODE AND AM. AM_MARK_CODE=AM_MARK.MARK_CODE
Рис. 7
2. Создадим агрегирующие представление, включающее в себя дату выпуска, цвет и номер автомобиля.
CREATE VIEW VIEW2 («DATA BbIIIYCKA», «LI, BET», «HOMEP»)
AS SELECT MAX (AM.AM_BIRTHDATE), AM. AM_COLOR, AM. AM_REG_NUMBER
FROM AM
GROUP BY AM. AM_BIRTHDATE, AM. AM_COLOR, AM. AM_REG_NUMBER
Рис. 8
3. Создадим представление, которое можно использовать для быстрого анализа владельца и его автомобиля.
CREATE VIEW VIEW3 («BODuTEJIb», «IIACIIOPT», «ADPEC», «HOMEP», «LI, BET», «MAPKA»)
AS SELECT DRIVERS. DRIVER_FIO, DRIVERS. DRIVER_PASSPORT, DRIVERS. DRIVER_ADRESS, AM. AM_REG_NUMBER, AM. AM_COLOR, AM_MARK.MARK_NAME
FROM DRIVERS, AM, AM_MARK
WHERE AM. AM_DRIVER_CODE=DRIVERS.DRIVER_CODE AND AM. AM_MARK_CODE=AM_MARK.MARK_CODE
Рис. 9
Заключение
В ходе курсового проектирования разработана и реализована база данных и серверная части информационной системы ГАИ.
Разработана структура базы данных, состоящая из 6 таблиц.
Разработаны ограничения целостности для сохранения логической непротиворечивости данных в системе.
Разработаны наиболее часто употребляемые в данной предметной области запросы.
Разработаны и отлажены хранимые процедуры, упрощающие работу с БД.
Разработаны и отлажены триггеры, осуществляющие проверку сложных логических условий и синхронизацию таблиц между собой при их изменении.
Разработаны представления, повышающие комфорт и безопасность работы с системой.
Таким образом, были успешно реализованы все особенности предметной области и требования, выработанные на этапе проектирования.
Список использованных источников
1. М. Грабер «ПониманиеSQL».
2. И. Казакова. «Основы языка TransactSQL» — ПГУ, 2010 г.
3. Электронный справочник по Transact SQL
http://www.sql.ru/docs/mssql/tsql_ref/
Приложение, А ПРОГРАММА СОЗДАНИЯ БАЗЫ ДАННЫХ
CREATE DATABASE GAI
GO
—ON PRIMARY
—(NAME = GAI, FILENAME = 'C:GAI.MDF', SIZE = 100MB, MAXSIZE = 150, FILEGROWTH = 20)
—LOG ON
—(NAME = GAI_LOG, FILENAME = 'C:GAI.LDF', SIZE = 100MB, MAXSIZE = 150, FILEGROWTH = 20)
—USE GAI
CREATE TABLE FIRM
(
FIRM_CODE INT PRIMARY KEY CHECK (FIRM_CODE < 9999 AND FIRM_CODE > 0000),
FIRM_NAME CHAR (30) NOT NULL,
)
CREATE TABLE COUNTRY
(
COUNTRY_CODE INT PRIMARY KEY CHECK (COUNTRY_CODE < 9999 AND COUNTRY_CODE > 0000),
COUNTRY_NAME CHAR (30) NOT NULL,
)
CREATE TABLE AM_MARK
(
MARK_CODE INT PRIMARY KEY CHECK (MARK_CODE > 0000 AND MARK_CODE < 9999),
MARK_NAME CHAR (30) NOT NULL,
FIRM_CODE INT NOT NULL CHECK (FIRM_CODE < 9999 AND FIRM_CODE > 0000),
COUNTRY_CODE INT NOT NULL CHECK (COUNTRY_CODE > 0000 AND COUNTRY_CODE < 9999),
FOREIGN KEY (FIRM_CODE) REFERENCES FIRM (FIRM_CODE),
FOREIGN KEY (COUNTRY_CODE) REFERENCES COUNTRY (COUNTRY_CODE),
)
CREATE TABLE DRIVERS
(
DRIVER_CODE INT PRIMARY KEY CHECK (DRIVER_CODE > 0000 AND DRIVER_CODE < 9999),
DRIVER_FIO CHAR (30) NOT NULL,
DRIVER_BIRTHDATE DATE NOT NULL,
DRIVER_ADRESS CHAR (30) NOT NULL,
DRIVER_PASSPORT INT NOT NULL,
DRIVER_RULES CHAR (12) NOT NULL,
DRIVER_RULES_DATE DATE NOT NULL,
DRIVER_CATEGORY CHAR (1) NOT NULL,
)
CREATE TABLE AM
(
AM_CODE INT PRIMARY KEY CHECK (AM_CODE < 9999 AND AM_CODE > 0000),
AM_DRIVER_CODE INT NOT NULL,
AM_MARK_CODE INT NOT NULL,
FOREIGN KEY (AM_DRIVER_CODE) REFERENCES DRIVERS (DRIVER_CODE),
FOREIGN KEY (AM_MARK_CODE) REFERENCES AM_MARK (MARK_CODE),
AM_REG_NUMBER CHAR (8) NOT NULL,
AM_BODY_NUMBER INT NOT NULL,
AM_ENGINE_NUMBER INT NOT NULL,
AM_TECHPASSPORT_NUMBER INT NOT NULL,
AM_BIRTHDATE DATE NOT NULL,
AM_REGISTRATION_DATE DATE NOT NULL,
AM_COLOR CHAR (7) NOT NULL,
)
CREATE TABLE JACKED_CARS
(
JC_CODE INT PRIMARY KEY CHECK (JC_CODE > 0 AND JC_CODE < 9999),
JC_JACKDATE DATE NOT NULL,
JC_REPORT_DATE DATE NOT NULL,
JC_AM_CODE INT NOT NULL,
FOREIGN KEY (JC_AM_CODE) REFERENCES AM (AM_CODE),
JC_DRIVER_CODE INT NOT NULL,
FOREIGN KEY (JC_DRIVER_CODE) REFERENCES DRIVERS (DRIVER_CODE),
JC_ADDITIONAL CHAR (100),
JC_FOUND BIT,
JC_FOUND_DATE DATE,
)
Приложение Б ДИАГРАММА БАЗЫ ДАННЫХ Рис. 10.Диаграмма БД
Приложение В ПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ
INSERT INTO AM_MARK VALUES (1, 'LADA', 1, 1);
INSERT INTO AM_MARK VALUES (2, 'VW', 2, 2);
INSERT INTO AM_MARK VALUES (3, 'AUDI', 3, 3);
INSERT INTO AM_MARK VALUES (4, 'NISSAN', 4, 4);
INSERT INTO AM_MARK VALUES (5, 'HONDA', 5, 5);
INSERT INTO COUNTRY VALUES (1, 'RUSSIA');
INSERT INTO COUNTRY VALUES (2, 'GERMANY');
INSERT INTO COUNTRY VALUES (3, 'JAPAN');
INSERT INTO COUNTRY VALUES (4, 'FRANCE');
INSERT INTO COUNTRY VALUES (5, 'UK');
INSERT INTO FIRM VALUES (1, 'LADA');
INSERT INTO FIRM VALUES (2, 'VW');
INSERT INTO FIRM VALUES (3, 'AUDI');
INSERT INTO FIRM VALUES (4, 'NISSAN');
INSERT INTO FIRM VALUES (5, 'HONDA');
INSERT INTO DRIVERS VALUES (1, 'IGNATOVA POLINA OLEGOVNA', '01.01.1992', 'AVTONOMNAYA 1−2', 1 234 567 890, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (2, 'BORMOTOVA VIKTORIYA PAVLOVNA', '02.02.1991', 'AKSAKOVA 2−3', 1 234 567 891, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (3, 'MISKO KSENIA ANATOLIEVNA', '03.03.1990', 'AKTIVNAYA 3−4', 1 234 567 892, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (4, 'SERIKOVA ULIYA DMITRIEVNA', '04.04.1989', 'ANTONOVA 4−5', 1 234 567 893, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (5, 'ASHAKINA GALINA SERGEEVNA', '05.05.1988', 'AUSTRINA 5−6', 1 234 567 894, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (6, 'BONDAREVA TATYANA MIHAILOVNA', '06.06.1987', 'BAIDUKOVA 6−7', 1 234 567 895, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (7, 'GRISHIN DMITRY ANDREEVICH', '07.07.1986', 'BAKUNINA 7−8', 1 234 567 896, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (8, 'MARCHENDO ELENA ANDREEVNA', '08.08.1985', 'BATAISKAYA 8−9', 1 234 567 897, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (9, 'MILKOVSKY EVGENY DENISOVICH', '09.09.1984', 'BELINSKOGO 9−10', 1 234 567 898, '123AP1234567', '01.01.2010', 'B');
INSERT INTO DRIVERS VALUES (10, 'KUZNETSOV DENIS SERGEEVICH', '10.10.1983', 'BAUMANA 10−11', 1 234 567 899, '123AP1234567', '01.01.2010', 'B');
INSERT INTO JACKED_CARS VALUES (1, '01.01.2001', '02.01.2001', 1, 1, 'V NOCH NA 29E', 0, NULL);
INSERT INTO JACKED_CARS VALUES (2, '02.02.2002', '03.02.2002', 2, 2, 'SO STOYANKI', 0, NULL);
INSERT INTO JACKED_CARS VALUES (3, '03.03.2003', '04.03.2003', 3, 3, 'SIGNALIZACIYA NE SRABOTALA', 0, NULL);
INSERT INTO JACKED_CARS VALUES (4, '04.04.2004', '05.04.2004', 4, 4, 'UGNANA DVUMYA NEIZVESTNYMI', 0, NULL);
INSERT INTO JACKED_CARS VALUES (5, '05.05.2005', '06.05.2005', 5, 5, 'S POMOSCHYU EVAKUATORA', 0, NULL);
INSERT INTO AM VALUES (1, 1, 1, 'A001AA01', 123 456 789, 987 654 321, 789 456 321, '01.10.1990', '03.10.1990','WHITE');
INSERT INTO AM VALUES (2, 2, 1, 'A002AA01', 123 456 788, 987 654 322, 789 456 322, '02.09.1991', '04.09.1991','BLACK');
INSERT INTO AM VALUES (3, 3, 1, 'A003AA01', 123 456 787, 987 654 323, 789 456 323, '03.08.1992', '05.08.1992','WHITE');
INSERT INTO AM VALUES (4, 4, 2, 'A004AA01', 123 456 786, 987 654 324, 789 456 324, '04.07.1993', '06.07.1993','RED');
INSERT INTO AM VALUES (5, 5, 2, 'A005AA01', 123 456 785, 987 654 325, 789 456 325, '05.06.1994', '07.06.1994','GREEN');
INSERT INTO AM VALUES (6, 6, 2, 'A006AA01', 123 456 784, 987 654 326, 789 456 326, '06.05.1995', '08.05.1995','BLUE');
INSERT INTO AM VALUES (7, 7, 3, 'A007AA01', 123 456 783, 987 654 327, 789 456 327, '07.04.1996', '09.04.1996','GRAY');
INSERT INTO AM VALUES (8, 8, 3, 'A008AA01', 123 456 782, 987 654 328, 789 456 328, '08.03.1997', '10.03.1997','WHITE');
INSERT INTO AM VALUES (9, 9, 3, 'A009AA01', 123 456 781, 987 654 329, 789 456 329, '09.02.1998', '11.02.1998','BLUE');
INSERT INTO AM VALUES (10, 10, 4, 'A010AA01', 123 456 780, 987 654 320, 789 456 320, '10.01.1999', '12.01.1999','GRAY');
Приложение Г РЕАЛИЗАЦИЯ ЗАПРОСОВ НА ЯЗЫКЕ SQL
1. Показать коды всех белых автомобилей
SELECT AM. AM_CODE «KOD»
FROM AM
WHERE AM. AM_COLOR='WHITE'
Рис. 11
2. Показать все немецкие марки автомобилей
SELECT AM_MARK.MARK_NAME 'MAPKA'
FROM AM_MARK
WHERE AM_MARK.COUNTRY_CODE LIKE 2
Рис. 12
3. Показать всех водителей с фамилией Гришин (GRISHIN)
SELECT DRIVERS. DRIVER_FIO «FIO»
FROM DRIVERS
WHERE DRIVERS. DRIVER_FIO LIKE 'GRISHIN%'
Рис. 13
4. Показать информацию по белым автомобилям, владельцами которых являются водители категории В
SELECT S.*
FROM AM S, DRIVERS I
WHERE S. AM_DRIVER_CODE=I.DRIVER_CODE AND I. DRIVER_CATEGORY='B' AND S. AM_COLOR='WHITE'
Рис. 14
5. Показать все угнанные автомобили, выпущенные после 10.10.1991
SELECT S.*, I. AM_BIRTHDATE «BbIIIYCK»
FROM JACKED_CARS S, AM I
WHERE S. JC_CODE=I.AM_CODE AND I. AM_REGISTRATION_DATE>'10.10.1991'
Рис. 15
6. Показать все угнанные после 01.01.2003 автомобили
SELECT S.*
FROM JACKED_CARS S, AM I
WHERE S. JC_CODE=I.AM_CODE AND S. JC_JACKDATE>'01.01.2003'
Рис. 16
7. Показать все угнанные после 01.01.2003 белые автомобили
SELECT S.*
FROM JACKED_CARS S, AM I
WHERE S. JC_CODE=I.AM_CODE AND S. JC_JACKDATE>'01.01.2003' AND I. AM_COLOR='WHITE'
Рис. 17
8. Показать все угнанные у водителей категории В после 01.01.2003 автомобили
SELECT S.*
FROM JACKED_CARS S, AM I, DRIVERS O
WHERE S. JC_AM_CODE=I.AM_CODE AND S. JC_JACKDATE>'01.01.2003' AND I. AM_DRIVER_CODE=O.DRIVER_CODE AND O. DRIVER_CATEGORY='B'
Рис. 18
9. Показать всех водителей AUDI
SELECT D.*
FROM DRIVERS D, AM A
WHERE D. DRIVER_CODE=A.AM_DRIVER_CODE AND A. AM_MARK_CODE=3
Рис. 19
10. Показать всех водителей белых AUDI
SELECT D.*
FROM DRIVERS D, AM A
WHERE D. DRIVER_CODE=A.AM_DRIVER_CODE AND A. AM_MARK_CODE=3 AND A. AM_COLOR = 'WHITE'
Рис. 20