Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алиакберов Михаил БД отчет.doc
Скачиваний:
18
Добавлен:
07.03.2015
Размер:
4.33 Mб
Скачать

Список основных функций

1. Ведение списка автовладельцев автопарак;

2. Ведение списка машин автопарка;

3. Хранение информации о машинах, автовладельцах;

Потенциальные пользователи системы

Сотрудники ГИБДД

  1. Разработка модели базы данных

    1. Диаграмма классов базы данных

Концептуальная модель – это представление понятий в терминах предметной области.

На языке UML концептуальная модель представлена в виде статической структурной диаграммы классов, на которых не определены никакие операции. Диаграмма классов определяет типы объектов системы и различного рода статические связи между ними (рис. 1.1).

    1. Концептуальная модель базы данных на idef1x

Концептуальная модель базы данных (рис. 1.2) описывает объекты предметной области, их атрибуты и взаимосвязи между ними в том объеме, в котором они подлежат непосредственному хранению в базе данных системы.

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

    1. Физическая модель базы данных

Физическая модель базы данных строится на основе логической модели данных. Физическая модель содержит все детали, необходимые конкретной СУБД для создания эффективного определения данных (наименования столбцов, их типы данных, определения первичных и внешних ключей и т.п.).

  1. Создание базы данных

    1. Таблицы базы данных

    1. Ограничения целостности базы данных

Приведу пример ограничения домена и ссылочной целостности:

    1. Скрипт базы данных

USE [GIBDD]

GO

/****** Объект: Table [dbo].[Marka] Дата сценария: 01/15/2012 16:59:01 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Marka](

[Marka_ID] [int] IDENTITY(1,1) NOT NULL,

[Marka] [nchar](20) NOT NULL,

CONSTRAINT [PK_Marka] PRIMARY KEY CLUSTERED

(

[Marka_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[FormCus] Дата сценария: 01/15/2012 16:59:01 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[FormCus](

[FormCus_ID] [int] IDENTITY(1,1) NOT NULL,

[FormCus] [nchar](20) NOT NULL,

CONSTRAINT [PK_FormCus] PRIMARY KEY CLUSTERED

(

[FormCus_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Color] Дата сценария: 01/15/2012 16:59:00 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Color](

[Color_ID] [int] IDENTITY(1,1) NOT NULL,

[Color] [nchar](20) NOT NULL,

CONSTRAINT [PK_Color] PRIMARY KEY CLUSTERED

(

[Color_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Servis] Дата сценария: 01/15/2012 16:59:07 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Servis](

[Servis_ID] [int] IDENTITY(1,1) NOT NULL,

[Sname] [nvarchar](20) NOT NULL,

[Stel] [nvarchar](50) NOT NULL,

[Splace] [nvarchar](50) NOT NULL,

CONSTRAINT [PK_Servis] PRIMARY KEY CLUSTERED

(

[Servis_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[AutoVladelez] Дата сценария: 01/15/2012 16:58:55 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[AutoVladelez](

[AutoVladelez_ID] [int] IDENTITY(1,1) NOT NULL,

[F] [nchar](20) NOT NULL,

[I] [nchar](20) NOT NULL,

[O] [nchar](20) NOT NULL,

[Adress] [nvarchar](50) NOT NULL,

[Telephon] [nvarchar](50) NOT NULL,

[DriverPravaNomer] [int] NOT NULL,

[Pasport] [nvarchar](50) NOT NULL,

CONSTRAINT [PK_AutoVladelez] PRIMARY KEY CLUSTERED

(

[AutoVladelez_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[YearVip] Дата сценария: 01/15/2012 16:59:09 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[YearVip](

[YearVip_ID] [int] IDENTITY(1,1) NOT NULL,

[YearVip] [int] NULL,

CONSTRAINT [PK_YearVip] PRIMARY KEY CLUSTERED

(

[YearVip_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Pidr] Дата сценария: 01/15/2012 16:59:04 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Pidr](

[Pidr_ID] [int] IDENTITY(1,1) NOT NULL,

[PFIO] [nvarchar](50) NOT NULL,

[Dolzn] [nvarchar](50) NOT NULL,

[Zvan] [nvarchar](50) NOT NULL,

[NNZ] [nchar](6) NOT NULL,

[Padress] [nvarchar](50) NOT NULL,

[PPhone] [nvarchar](50) NOT NULL,

CONSTRAINT [PK_Pidr] PRIMARY KEY CLUSTERED

(

[Pidr_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[TechView] Дата сценария: 01/15/2012 16:59:09 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[TechView](

[TechView_ID] [int] IDENTITY(1,1) NOT NULL,

[DateView] [datetime] NULL,

[Status] [tinyint] NULL,

[Servis_ID] [int] NOT NULL,

[Car_ID] [int] NOT NULL,

CONSTRAINT [PK_TechView] PRIMARY KEY CLUSTERED

(

[TechView_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Pravonar] Дата сценария: 01/15/2012 16:59:06 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Pravonar](

[Pravonar_ID] [int] IDENTITY(1,1) NOT NULL,

[Pravonardate] [datetime] NOT NULL,

[Statya] [nvarchar](50) NOT NULL,

[SummShtraf] [money] NULL,

[Srok] [tinyint] NULL,

[Pidr_ID] [int] NOT NULL,

[AutoVladelez_ID] [int] NOT NULL,

CONSTRAINT [PK_Pravonar] PRIMARY KEY CLUSTERED

(

[Pravonar_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Car] Дата сценария: 01/15/2012 16:58:59 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Car](

[Car_ID] [int] IDENTITY(1,1) NOT NULL,

[GosRegNum] [nchar](6) NOT NULL,

[Vdvigatel] [float] NOT NULL,

[Power] [smallint] NOT NULL,

[Probeg] [int] NOT NULL,

[DataReg] [datetime] NOT NULL,

[Color_ID] [int] NOT NULL,

[Marka_ID] [int] NOT NULL,

[YearVip_ID] [int] NOT NULL,

[AutoVladelez_ID] [int] NOT NULL,

[Model_ID] [int] NOT NULL,

[FormCus_ID] [int] NULL,

[Vmestim] [int] NULL,

[Grusopod] [int] NULL,

CONSTRAINT [PK_Car] PRIMARY KEY CLUSTERED

(

[Car_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Table [dbo].[Model] Дата сценария: 01/15/2012 16:59:02 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Model](

[Model_ID] [int] IDENTITY(1,1) NOT NULL,

[Model] [nchar](20) NOT NULL,

[Marka_ID] [int] NOT NULL,

CONSTRAINT [PK_Model] PRIMARY KEY CLUSTERED

(

[Model_ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

/****** Объект: Check [CK_AutoVladelez] Дата сценария: 01/15/2012 16:58:55 ******/

ALTER TABLE [dbo].[AutoVladelez] WITH CHECK ADD CONSTRAINT [CK_AutoVladelez] CHECK (([DriverPravaNomer]<=(999999)))

GO

ALTER TABLE [dbo].[AutoVladelez] CHECK CONSTRAINT [CK_AutoVladelez]

GO

/****** Объект: Check [CK_Car] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [CK_Car] CHECK (([Power]<(1000)))

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [CK_Car]

GO

/****** Объект: Check [CK_Car_1] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [CK_Car_1] CHECK (([Probeg]>=(0)))

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [CK_Car_1]

GO

/****** Объект: Check [CK_Pravonar] Дата сценария: 01/15/2012 16:59:06 ******/

ALTER TABLE [dbo].[Pravonar] WITH CHECK ADD CONSTRAINT [CK_Pravonar] CHECK (([Srok]<=(36)))

GO

ALTER TABLE [dbo].[Pravonar] CHECK CONSTRAINT [CK_Pravonar]

GO

/****** Объект: ForeignKey [FK_Car_AutoVladelez] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_AutoVladelez] FOREIGN KEY([AutoVladelez_ID])

REFERENCES [dbo].[AutoVladelez] ([AutoVladelez_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_AutoVladelez]

GO

/****** Объект: ForeignKey [FK_Car_Color] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_Color] FOREIGN KEY([Color_ID])

REFERENCES [dbo].[Color] ([Color_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_Color]

GO

/****** Объект: ForeignKey [FK_Car_FormCus] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_FormCus] FOREIGN KEY([FormCus_ID])

REFERENCES [dbo].[FormCus] ([FormCus_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_FormCus]

GO

/****** Объект: ForeignKey [FK_Car_Marka] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_Marka] FOREIGN KEY([Marka_ID])

REFERENCES [dbo].[Marka] ([Marka_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_Marka]

GO

/****** Объект: ForeignKey [FK_Car_Model] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_Model] FOREIGN KEY([Model_ID])

REFERENCES [dbo].[Model] ([Model_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_Model]

GO

/****** Объект: ForeignKey [FK_Car_YearVip] Дата сценария: 01/15/2012 16:58:59 ******/

ALTER TABLE [dbo].[Car] WITH CHECK ADD CONSTRAINT [FK_Car_YearVip] FOREIGN KEY([YearVip_ID])

REFERENCES [dbo].[YearVip] ([YearVip_ID])

GO

ALTER TABLE [dbo].[Car] CHECK CONSTRAINT [FK_Car_YearVip]

GO

/****** Объект: ForeignKey [FK_Model_Marka] Дата сценария: 01/15/2012 16:59:02 ******/

ALTER TABLE [dbo].[Model] WITH CHECK ADD CONSTRAINT [FK_Model_Marka] FOREIGN KEY([Marka_ID])

REFERENCES [dbo].[Marka] ([Marka_ID])

GO

ALTER TABLE [dbo].[Model] CHECK CONSTRAINT [FK_Model_Marka]

GO

/****** Объект: ForeignKey [FK_Pravonar_AutoVladelez] Дата сценария: 01/15/2012 16:59:06 ******/

ALTER TABLE [dbo].[Pravonar] WITH CHECK ADD CONSTRAINT [FK_Pravonar_AutoVladelez] FOREIGN KEY([AutoVladelez_ID])

REFERENCES [dbo].[AutoVladelez] ([AutoVladelez_ID])

GO

ALTER TABLE [dbo].[Pravonar] CHECK CONSTRAINT [FK_Pravonar_AutoVladelez]

GO

/****** Объект: ForeignKey [FK_Pravonar_Pidr] Дата сценария: 01/15/2012 16:59:06 ******/

ALTER TABLE [dbo].[Pravonar] WITH CHECK ADD CONSTRAINT [FK_Pravonar_Pidr] FOREIGN KEY([Pidr_ID])

REFERENCES [dbo].[Pidr] ([Pidr_ID])

GO

ALTER TABLE [dbo].[Pravonar] CHECK CONSTRAINT [FK_Pravonar_Pidr]

GO

/****** Объект: ForeignKey [FK_TechView_Car] Дата сценария: 01/15/2012 16:59:09 ******/

ALTER TABLE [dbo].[TechView] WITH CHECK ADD CONSTRAINT [FK_TechView_Car] FOREIGN KEY([Car_ID])

REFERENCES [dbo].[Car] ([Car_ID])

GO

ALTER TABLE [dbo].[TechView] CHECK CONSTRAINT [FK_TechView_Car]

GO

/****** Объект: ForeignKey [FK_TechView_Servis] Дата сценария: 01/15/2012 16:59:09 ******/

ALTER TABLE [dbo].[TechView] WITH CHECK ADD CONSTRAINT [FK_TechView_Servis] FOREIGN KEY([Servis_ID])

REFERENCES [dbo].[Servis] ([Servis_ID])

GO

ALTER TABLE [dbo].[TechView] CHECK CONSTRAINT [FK_TechView_Servis]

GO

  1. Ведение базы данных средствами SQL

    1. Запросы на вставку данных

    1. Запросы на модификацию данных

    1. Запросы на удаление данных

  1. Манипулирование данными

    1. Примеры реальзации запросов SELECT

Вывести те регистрационные номера тех автомобилей, которые были зарегистрированы до 2010 года.

Упорядочить всех автовладельцев по имени.

Подсчитать количество автовладельцев не прошедших техосмотр в 2011 году

Получить ФИО тех автовладельцев у которых есть нарушения, и сортировать их пофамилии.

Вывести модели машин соответсвующие кадому регистрационному номеру

5. Организация бизнес-логики приложения в теле сервера

5.1. Хранимые процедуры

1. Хранимая процедура, возвращающая сведения о студентах, учащихся на определенном курсе

5.2. Триггер

CREATE TRIGGER Trig1

ON Color

FOR INSERT

AS

UPDATE Car

SET Color_ID = i.Color_ID

FROM Car c JOIN INSERTED i ON c.Color_ID = i.Color_ID

WHERE c.Color_ID = 2

GO

6. Прикладной программый интерфейс СУБД

6.1. Разработка клиентского приложения

17