Файл: Разработка и проектирование базы данных в Microsoft SQL Server.pdf
Добавлен: 22.05.2023
Просмотров: 2411
Скачиваний: 30
Вторым этапом является генерация физической модели с последующей генерацией скрипта для создания базы данных.
Последним этапом является выполнение созданного скрипта в SSMS и проверка созданной базы данных.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе было проведено исследование на тему «Базы данных»
В главе 1 был проведен обзор и анализ различных баз данных, проведена их классификация.
Отдельно в данной главе рассмотрены реляционные базы данных, которые, получили наибольшее распространение на современном этапе развития компьютерных технологий. Они представляют собой совокупность таблиц, в которых содержаться данные об, описывающие различные объекты нашего мира. Благодаря своей логичности и структурированности данные могут быть легко добавлены, удалены или изменены.
В главе также рассматривает язык запросов SQL, который по факту является стандартом при работе с реляционными базами данных.
В главе 2 рассмотрены основные характеристики, история развития и архитектура системы управления базами данных Microsoft SQL Server . Отдельно описана среда Microsoft SQL Server Management Studio, которая поставляется вместе с MS SQL Server и служит для разработки и управления базами данных.
Система управления базами данных Microsoft SQL Server является мощным средством для создания и управления современными базами данных. Наряду с продуктами от Oracle и IBM, он занимает лидирующие позиции на рынке систем управления базами данных. Он используется как в стационарных приложениях, так и в облачных и распределенных системах.
Вместе с Microsoft SQL Server поставляется среда разработки Microsoft SQL Server Management Studio, в которой создана база данных этого проекта. Она представляет собой удобное средство для создания и обслуживания баз данных. Она позволяет в интерактивном режиме создавать таблицы базы данных и определять связи между ними.
В главе 3 описана разработка базы данных информационной системы. База данных создана в несколько этапов с применением программных средства, таким как PowerDesigner и Microsoft SQL Server Measurement Studio. На первом этапе создана концептуальная модель, которая описывает сущности и их отношения в будущей информационной системе. База данных состоит из шести сущностей:
- Employer (Сотрудники)
- Post (Должности)
- TimeSheet (Учет рабочего времени)
- Order (Начисления)
- Penalty (Штрафы)
Вторым этапом является генерация физической модели с последующей генерацией скрипта для создания базы данных.
Последним этапом является выполнение созданного скрипта в SSMS и проверка созданной базы данных.
Таким образом, в ходе выполнения курсовой работы были изучены возможности MS SQL Server и создана базы данных на его основе.
СПИСОК ЛИТЕРАТУРЫ
- Александров, В.В.; Вишняков, Ю.С.; Горская, Л.М. и др. Информационное обеспечение интегрированных производственных комплексов - Л.: Машиностроение, 2012. - 511 c.
- Аткинсон, Леон MySQL. Библиотека профессионала - М.: Вильямс, 2012. - 624 c.
- Бек, Кент Шаблоны реализации корпоративных приложений - М.: Вильямс, 2012. - 369 c.
- Веймаер, Р.; Сотел, Р. Освой самостоятельно Microsoft SQL Server 2000 за 21 день (+ CD-ROM) - М.: Вильямс, 2013. - 549 c.
- Гандерлой, Майк; Харкинз, Сьюзан Сейлз Автоматизация Microsoft Access с помощью VBA - М.: Вильямс, 2013. - 416 c.
- Гетц, Кен; Джинберт, Майкл; Литвин, Пол Access 2000. Руководство разработчика. Том 1. Настольные приложения. том 1 - Киев: BHV, 2014. - 576 c.
- Голицына, О.Л. и др. Базы данных; Форум; Инфра-М, 2013. – 399 c.
- Гринченко, Н.Н. и др. Проектирование баз данных. СУБД Microsoft Access - Горячая Линия Телеком, 2012. - 613 c.
- Дейт, К.Дж. Введение в системы баз данных; К.: Диалектика - Издание 6-е, 2012. - 360 c.
- Дэвидсон, Луис проектирование баз данных на SQL Server 2000 -Бином, 2012. - 631 c.
- Дюваль, Поль М. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска - М.: Вильямс, 2014. - 497 c.
- Каратыгин, С.; Тихонов, А. Работа в Paradox для Windows 5.0 на примерах - М.: Бином, 2012. - 512 c.
- Каратыгин, Сергей Access 2000 на примерах. Руководство пользователя с примерами - М.: Лаборатория Базовых Знаний, 2012. - 376 c.
- Кауфельд, Джон Microsoft Office Access 2003 для "чайников" - М.: Диалектика, 2013. - 439 c.
- Каучмэн, Джейсон; Швинн, Ульрике Oracle 8i CertifiedProfessionaql DBA Подготовка администраторов баз данных - ЛОРИ, 2012. - 510 c.
- Луни, Кевин; Брила, Боб Oracle 10g. Настольная книга администратора баз данных - М.: Лори, 2014. - 365 c.
- Мак-Федрис, Пол Формы, отчеты и запросы в Microsoft Access 2003 - М.: Вильямс, 2012. - 416 c.
- Наумов, А.Н.; Вендров, А.М.; Иванов, В.К. и др. Системы управления базами данных и знаний - М.: Финансы и статистика, 2012. - 352 c.
- Нимик, Ричард Дж Oracle9i. Оптимизация производительности. Советы и методы - М.: Лори, 2012. - 648 c.
- Озкарахан, Э. Машины баз данных и управление базами данных - М.: Мир, 2013. - 551 c.
- Постолит, Анатолий Visual Studio .NET: разработка приложений баз данных - СПб: БХВ, 2013. - 544 c.
- Редько, В.Н.; Бассараб, И.А. Базы данных и информационные системы - Знание, 2012. - 602 c.
- Тимошок, Т.В. Microsoft Office Access 2007: самоучитель - Вильямс, 2013. - 464 c.
- Тоу, Дэн Настройка SQL - СПб: Питер, 2012. - 539 c.
- Туманов, В.Е. Основы проектирования реляционных баз данных - Бином, 2012. - 420 c.
- Уорден, К. Новые интеллектуальные материалы и конструкции. Свойства и применение - М.: Техносфера, 2012. - 456 c.
Приложение А
Скрипт создания базы данных
/*==============================================================*/
/* DBMS name: Microsoft SQL Server 2012 */
/* Created on: 31.05.2018 15:45:34 */
/*==============================================================*/
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Employer') and o.name = 'FK_EMPLOYER_EMPLOYER-_POST')
alter table Employer
drop constraint "FK_EMPLOYER_EMPLOYER-_POST"
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('"Order"') and o.name = 'FK_ORDER_EMPLOYER-_EMPLOYER')
alter table "Order"
drop constraint "FK_ORDER_EMPLOYER-_EMPLOYER"
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Penalty') and o.name = 'FK_PENALTY_EMPLOYER-_EMPLOYER')
alter table Penalty
drop constraint "FK_PENALTY_EMPLOYER-_EMPLOYER"
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TimeSheet') and o.name = 'FK_TIMESHEE_EMPLOYER-_EMPLOYER')
alter table TimeSheet
drop constraint "FK_TIMESHEE_EMPLOYER-_EMPLOYER"
go
if exists (select 1
from sysindexes
where id = object_id('Employer')
and name = 'Relationship_1_FK'
and indid > 0
and indid < 255)
drop index Employer.Relationship_1_FK
go
if exists (select 1
from sysobjects
where id = object_id('Employer')
and type = 'U')
drop table Employer
go
if exists (select 1
from sysindexes
where id = object_id('"Order"')
and name = 'Employer-Order_FK'
and indid > 0
and indid < 255)
drop index "Order"."Employer-Order_FK"
go
if exists (select 1
from sysobjects
where id = object_id('"Order"')
and type = 'U')
drop table "Order"
go
if exists (select 1
from sysindexes
where id = object_id('Penalty')
and name = 'Employer-Penalty_FK'
and indid > 0
and indid < 255)
drop index Penalty."Employer-Penalty_FK"
go
if exists (select 1
from sysobjects
where id = object_id('Penalty')
and type = 'U')
drop table Penalty
go
if exists (select 1
from sysobjects
where id = object_id('Post')
and type = 'U')
drop table Post
go
if exists (select 1
from sysindexes
where id = object_id('TimeSheet')
and name = 'Employer-TimeSheet_FK'
and indid > 0
and indid < 255)
drop index TimeSheet."Employer-TimeSheet_FK"
go
if exists (select 1
from sysobjects
where id = object_id('TimeSheet')
and type = 'U')
drop table TimeSheet
go
/*==============================================================*/
/* Table: Employer */
/*==============================================================*/
create table Employer (
id_Emp int not null,
id_Post int null,
emp_FirstName varchar(100) not null,
emp_LastName varchar(100) not null,
emp_MidName varchar(100) not null,
emp_ID varchar(20) not null,
emp_Account varchar(50) not null,
emp_Birthday datetime not null,
constraint PK_EMPLOYER primary key (id_Emp)
)
go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('Employer')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'id_Emp')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Employer', 'column', 'id_Emp'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'Идентификатор сотрудника',
'user', @CurrentUser, 'table', 'Employer', 'column', 'id_Emp'
go
/*==============================================================*/
/* Index: Relationship_1_FK */
/*==============================================================*/
create nonclustered index Relationship_1_FK on Employer (id_Post ASC)
go
/*==============================================================*/
/* Table: "Order" */
/*==============================================================*/
create table "Order" (
id_Order int not null,
id_Emp int null,
or_Year int not null,
or_Month smallint not null,
or_Money money null,
or_Duration decimal(1,1) null,
constraint PK_ORDER primary key (id_Order)
)
go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('"Order"')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'id_Emp')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Order', 'column', 'id_Emp'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'Идентификатор сотрудника',
'user', @CurrentUser, 'table', 'Order', 'column', 'id_Emp'
go
/*==============================================================*/
/* Index: "Employer-Order_FK" */
/*==============================================================*/
create nonclustered index "Employer-Order_FK" on "Order" (id_Emp ASC)
go
/*==============================================================*/
/* Table: Penalty */
/*==============================================================*/
create table Penalty (
id_Penalty int not null,
id_Emp int null,
pen_Year int not null,
pen_Month smallint not null,
pen_Money money not null,
constraint PK_PENALTY primary key (id_Penalty)
)
go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('Penalty')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'id_Emp')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Penalty', 'column', 'id_Emp'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'Идентификатор сотрудника',
'user', @CurrentUser, 'table', 'Penalty', 'column', 'id_Emp'
go
/*==============================================================*/
/* Index: "Employer-Penalty_FK" */
/*==============================================================*/
create nonclustered index "Employer-Penalty_FK" on Penalty (id_Emp ASC)
go
/*==============================================================*/
/* Table: Post */
/*==============================================================*/
create table Post (
id_Post int not null,
p_Name varchar(100) not null,
p_Salary money not null,
constraint PK_POST primary key (id_Post)
)
go
/*==============================================================*/
/* Table: TimeSheet */
/*==============================================================*/
create table TimeSheet (
id_TimeSheet int not null,
id_Emp int null,
ts_Data datetime not null,
ts_StartTime datetime not null,
ts_StopTime datetime not null,
ts_Duration decimal(1,1) null,
constraint PK_TIMESHEET primary key (id_TimeSheet)
)
go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('TimeSheet')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'id_Emp')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'TimeSheet', 'column', 'id_Emp'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',