Реализация базы данных и серверной части информационной системы "ГАИ" средствами СУБД Microsoft SQL Server

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ли нескольких таблиц выполняются с помощью предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица.

В курсовой работе разработаны следующие запросы:

1.Показать коды всех белых автомобилей

.Показать все немецкие марки автомобилей

3.Показать всех водителей с фамилией Гришин (GRISHIN)

4.Показать информацию по белым автомобилям, владельцами которых являются водители категории В

5.Показать все угнанные автомобили, выпущенные после 10.10.1991

6.Показать все угнанные после 01.01.2003 автомобили

.Показать все угнанные после 01.01.2003 белые автомобили

.Показать все угнанные у водителей категории В после 01.01.2003 автомобили

.Показать всех водителей AUDI

.Показать всех водителей белых AUDI

Подробный текст запросов и результаты их выполнения приведены в приложении Г.

 

1.9 Представления

 

В данной работе были разработаны следующие представления, основанные на нескольких таблицах:

. Создаем представление, включающее в себя ФИО водителя, марку его автомобиля и его цвет.

CREATE VIEW VIEW1 ("BODuTEJIb", "MAPKA", "LI,BET")SELECT DRIVERS.DRIVER_FIO, AM_MARK.MARK_NAME, AM.AM_COLORDRIVERS, AM_MARK, AMAM.AM_DRIVER_CODE=DRIVERS.DRIVER_CODE AND AM.AM_MARK_CODE=AM_MARK.MARK_CODE

 

Рис. 7

. Создадим агрегирующие представление, включающее в себя дату выпуска, цвет и номер автомобиля.

CREATE VIEW VIEW2 ("DATA BbIIIYCKA", "LI,BET", "HOMEP")SELECT MAX(AM.AM_BIRTHDATE), AM.AM_COLOR, AM.AM_REG_NUMBERAMBY AM.AM_BIRTHDATE,AM.AM_COLOR, AM.AM_REG_NUMBER

 

Рис. 8

 

 

. Создадим представление, которое можно использовать для быстрого анализа владельца и его автомобиля.

CREATE VIEW VIEW3 ("BODuTEJIb", "IIACIIOPT", "ADPEC", "HOMEP", "LI,BET", "MAPKA")SELECT DRIVERS.DRIVER_FIO, DRIVERS.DRIVER_PASSPORT, DRIVERS.DRIVER_ADRESS,AM.AM_REG_NUMBER, AM.AM_COLOR, AM_MARK.MARK_NAMEDRIVERS, AM, AM_MARKAM.AM_DRIVER_CODE=DRIVERS.DRIVER_CODE AND AM.AM_MARK_CODE=AM_MARK.MARK_CODE

 

Рис. 9

 

Заключение

 

В ходе курсового проектирования разработана и реализована база данных и серверная части информационной системы ГАИ.

Разработана структура базы данных, состоящая из 6 таблиц.

Разработаны ограничения целостности для сохранения логической непротиворечивости данных в системе.

Разработаны наиболее часто употребляемые в данной предметной области запросы.

Разработаны и отлажены хранимые процедуры, упрощающие работу с БД.

Разработаны и отлажены триггеры, осуществляющие проверку сложных логических условий и синхронизацию таблиц между собой при их изменении.

Разработаны представления, повышающие комфорт и безопасность работы с системой.

Таким образом, были успешно реализованы все особенности предметной области и требования, выработанные на этапе проектирования.

Список использованных источников

 

1.М. Грабер ПониманиеSQL.

2.И. Казакова. Основы языка TransactSQL - ПГУ, 2010г.

.Электронный справочник по Transact SQL

 

Приложение А

 

ПРОГРАММА СОЗДАНИЯ БАЗЫ ДАННЫХ

CREATE DATABASE GAI

-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 GAITABLE FIRM

(_CODE INT PRIMARY KEY CHECK (FIRM_CODE 0000),_NAME CHAR(30) NOT NULL,

)TABLE COUNTRY

(_CODE INT PRIMARY KEY CHECK (COUNTRY_CODE 0000),_NAME CHAR(30) NOT NULL,

)TABLE AM_MARK

(_CODE INT PRIMARY KEY CHECK ( MARK_CODE > 0000 AND MARK_CODE 0000 AND COUNTRY_CODE < 9999),KEY (FIRM_CODE) REFERENCES FIRM (FIRM_CODE),KEY (COUNTRY_CODE) REFERENCES COUNTRY (COUNTRY_CODE),

)TABLE DRIVERS

(_CODE INT PRIMARY KEY CHECK (DRIVER_CODE > 0000 AND DRIVER_CODE < 9999),_FIO CHAR (30) NOT NULL,_BIRTHDATE DATE NOT NULL,_ADRESS CHAR (30) NOT NULL,_PASSPORT INT NOT NULL,_RULES CHAR (12) NOT NULL,_RULES_DATE DATE NOT NULL,_CATEGORY CHAR (1) NOT NULL,

)TABLE AM

(_CODE INT PRIMARY KEY CHECK (AM_CODE 0000),_DRIVER_CODE INT NOT NULL,_MARK_CODE INT NOT NULL,KEY (AM_DRIVER_CODE) REFERENCES DRIVERS (DRIVER_CODE),KEY (AM_MARK_CODE) REFERENCES AM_MARK (MARK_CODE),_REG_NUMBER CHAR (8) NOT NULL,_BODY_NUMBER INT NOT NULL,_ENGINE_NUMBER INT NOT NULL,_TECHPASSPORT_NUMBER INT NOT NULL,_BIRTHDATE DATE NOT NULL,_REGISTRATION_DATE DATE NOT NULL,_COLOR CHAR (7) NOT NULL,

)TABLE JACKED_CARS

(_CODE INT PRIMARY KEY CHECK (JC_CODE > 0 AND JC_CODE < 9999),_JACKDATE DATE NOT NULL,_REPORT_DATE DATE NOT NULL,_AM_CODE INT NOT NULL,KEY (JC_AM_CODE) REFERENCES AM (AM_CODE),_DRIVER_CODE INT NOT NULL,KEY (JC_DRIVER_CODE) REFERENCES DRIVERS (DRIVER_CODE),_ADDITIONAL CHAR (100),_FOUND BIT,_FOUND_DATE DATE,

)

Приложение Б

 

ДИАГРАММА БАЗЫ ДАННЫХ

 

Рис.10.Диаграмма БД

 

Приложение В

 

ПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ

INSERT INTO AM_MARK VALUES (1, LADA, 1, 1);

INSERT INTO AM_MARK VALUES (2, VW, 2, 2);INTO AM_MARK VALUES (3, AUDI, 3, 3);INTO AM_MARK VALUES (4, NISSAN, 4, 4);INTO AM_MARK VALUES (5, HONDA, 5, 5);INTO COUNTRY VALUES (1, RUSSIA);INTO COUNTRY VALUES (2, GERMANY);INTO COUNTRY VALUES (3, JAPAN);INTO COUNTRY VALUES (4, FRANCE);INTO COUNTRY VALUES (5, UK);INTO FIRM VALUES (1, LADA);INTO FIRM VALUES (2, VW);INTO FIRM VALUES (3, AUDI);INTO FIRM VALUES (4, NISSAN);INTO FIRM VALUES (5, HONDA);INTO DRIVERS VALUES (1, IGNATOVA POLINA OLEGOVNA, 01.01.1992, AVTONOMNAYA 1-2, 1234567890, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (2, BORMOTOVA VIKTORIYA PAVLOVNA, 02.02.1991, AKSAKOVA 2-3, 1234567891, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (3, MISKO KSENIA ANATOLIEVNA, 03.03.1990, AKTIVNAYA 3-4, 1234567892, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (4, SERIKOVA ULIYA DMITRIEVNA, 04.04.1989, ANTONOVA 4-5, 1234567893, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (5, ASHAKINA GALINA SERGEEVNA, 05.05.1988, AUSTRINA 5-6, 1234567894, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (6, BONDAREVA TATYANA MIHAILOVNA, 06.06.1987, BAIDUKOVA 6-7, 1234567895, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (7, GRISHIN DMITRY ANDREEVICH, 07.07.1986, BAKUNINA 7-8, 1234567896, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (8, MARCHENDO ELENA ANDREEVNA, 08.08.1985, BATAISKAYA 8-9, 1234567897, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (9, MILKOVSKY EVGENY DENISOVICH, 09.09.1984, BELINSKOGO 9-10, 1234567898, 123AP1234567, 01.01.2010, B);INTO DRIVERS VALUES (10, KUZNETSOV DENIS SERGEEVICH