Автор: Пользователь скрыл имя, 15 Сентября 2013 в 10:21, курсовая работа
Целью курсового проектирования является применение на практике знаний, полученных в процессе изучения курса "Базы данных" и получение практических навыков проектирования и реализации баз данных, для последующего создания информационных систем.
В курсовой работе будет разработана базы данных по теме «Автотехцентр», которая занимается ремонтом автомобилей и реализована в виде программного продукта, также будут получены навыки по моделированию структуры баз и созданию средствами языка SQL.
Введение…………………………………………………………………………4
1 Проектирование базы данных……………………………………………..5
1.1 Описание предметной области………………………………………...5
1.2 Инфологическая модель базы данных………………………………...6
1.3 Даталогическая модель базы данных………………………………….7
1.4 Стратегия резервного копирования и восстановления……………….9
2 Реализация базы данных…………………………………………………12
2.1 Характеристика используемой СУБД………………………………...12
2.2 Создание структуры базы данных……………………………………15
2.2.1 База данных и таблицы…………………………………………..15
2.2.2 Создание индексов……………………………………………….19
2.3 Создание представлений……………………………………………....21
2.3.1 Однотабличный запрос на выборку по условиям……………...21
2.3.2 Многотабличный запрос………………………………………....22
2.3.3 Запрос с использованием подзапроса.............................................22
2.3.4 Итоговый запрос……………………………………………….....23
2.4 Примеры запросов на модификацию данных………………………..24
2.4.1 Простые запросы…………………………………………………24
2.4.2 Запросы с использованием подзапросов………………………..26
2.5 Описание триггеров…………………………………………………....28
2.6 Создание пользователей и назначение привилегий………………….32
Заключение………………………………………………………………….37
Список использованной литературы……………………………………...38
Приложение 1. Пример инфологической модели………………………...39
В таблице «Ремонт» существует поле Стоимость_ремонта. Введем ограничение стоимости ремонта 6000. Иными словами, пользователь не сможет ввести стоимость ремонта больше 6000.
Текст создания триггера на вставку будет выглядеть следующим образом:
CREATE TRIGGER Триггер_ins
ON Ремонт FOR INSERT
AS
IF @@ROWCOUNT=1
BEGIN
IF NOT EXISTS(SELECT *
FROM inserted
WHERE inserted.Стоимость_ремонта <'6000')
BEGIN
ROLLBACK TRAN
'Предупреждение: Стоимость ремонта не должна превышать 6000'
END
END
Исходя из текста, видно, что в случае возникновения ошибки появится сообщение, в котором будет сообщено пользователю, что стоимость ремонта не должна превышать 6000'. Данное окно можно посмотреть на рисунке 1.1.
Попытке добивать новые данные в таблицу ремонт:
Результат запроса показан на рисунке 1.1
Рисунок 1.1 – запрос добавления новых данных в таблицу ремонт
Появляется сообщение с предупреждением (рисунок 1.2):
Рисунок 1.2 – сообщение об ошибке при вставке записи
В базе данных «Автотехцентр» были созданы группы пользователей и соответствующие привилегия. Создание пользователя базы данных, сопоставленного с именем входа, с помощью среды SQL ServerManagementStudio или Transact-SQL.
Пользователь базы данных — это идентификатор имени входа при подключении к базе данных. Имя пользователя базы данных может совпадать с именем входа, но это не является обязательным требованием. Пользователь является субъектом безопасности уровня базы данных. Для соединения с базой данных имя входа должно быть сопоставлено с пользователем базы данных. Имя входа может быть сопоставлено с различными базами данных в качестве разных пользователей, но в каждой базе данных ему может быть сопоставлен только один пользователь. В частично автономной базе данных можно создать пользователя, не имеющего имени входа. Если в базе данных включена учетная запись гостя, то под именем входа, не сопоставленным с пользователем базы данных, можно войти от пользователя guest.
Администраторы баз данных, сами создают пользователей и дают им привилегии. С другой стороны пользователи, которые создают таблицы, сами имеют права на управление этими таблицами. Каждый пользователь в SQL базе данных имеет набор привилегий. Это то что пользователю разрешается делать. Эти привилегии могут изменяться со временем - новые добавляться, старые удаляться. Привилегии даются, отменяются двумя командами SQL: - GRANT (ДОПУСК) и REVOKE (ОТМЕНА).
Рассматривается система безопасности, принятая в языке SQL. Излагаются общие правила разграничения доступа. Описываются режимы аутентификации и компоненты структуры безопасности (пользователи, роли баз данных), администрирование системы безопасности (создание учетных записей и управление ими, управление пользователями и ролями). Дается определение прав пользователя на доступ к объектам базы данных. Рассматриваются неявные права, вопросы запрета доступа и неявного отклонения доступа, а также конфликты доступа.
Стабильная система управления пользователями – обязательное условие безопасности данных, хранящихся в любой реляционной СУБД. В языке SQL не существует единственной стандартной команды, предназначенной для создания пользователей базы данных – каждая реализация делает это по-своему. В одних реализациях эти специальные команды имеют определенное сходство, в то время как в других их синтаксис имеет существенные отличия. Однако независимо от конкретной реализации все основные принципы одинаковы.
После проектирования логической структуры базы данных, связей между таблицами, ограничений целостности и других структур необходимо определить круг пользователей, которые будут иметь доступ к базе данных.
В системе SQL-сервер организована двухуровневая настройка ограничения доступа к данным. На первом уровне необходимо создать так называемую учетную запись пользователя (login), что позволяет ему подключиться к самому серверу, но не дает автоматического доступа к базам данных. На втором уровне для каждой базы данных SQL-сервера на основании учетной записи необходимо создать запись пользователя. На основе прав, выданных пользователю как пользователю базы данных (user), его регистрационное имя (login) получает доступ к соответствующей базе данных. В разных базах данных login одного и того же пользователя может иметь одинаковые или разные имена user с разными правами доступа. Иначе говоря, с помощью учетной записи пользователя осуществляется подключение к SQL-серверу, после чего определяются его уровни доступа для каждой базы данных в отдельности.
В системе SQL-сервер существуют дополнительные объекты – роли, которые определяют уровень доступа к объектам SQL-сервера. Они разделены на две группы: назначаемые для учетных записей пользователя сервера и используемые для ограничения доступа к объектам базы данных.
Итак, на уровне сервера система безопасности оперирует следующими понятиями:
•аутентификация;
•учетная запись;
•встроенные роли сервера.
На уровне базы данных применяются следующие понятия:
•пользователь базы данных;
•фиксированная роль базы данных;
•пользовательская роль базы данных.
Группы пользователей и назначенные им привилегии на работу с представлениями и таблицами базы данных приводятся в табличном виде (таблица 1).
Таблица 1
Таблица |
Группа пользователей | ||
Admin |
Specialist |
Director | |
Клиенты |
ALL |
SELECT, UPDATE, DELETE, INSERT |
SELECT, INSERT, UPDATE, DELETE |
Специалисты |
ALL |
SELECT, UPDATE, DELETE, INSERT |
SELECT, INSERT, UPDATE, DELETE |
Ремонт |
ALL |
SELECT, UPDATE, DELETE, INSERT |
SELECT, INSERT, UPDATE, DELETE |
Продолжение Таблицы 1
Таблица |
Группа пользователей | ||
Admin |
Specialist |
Director | |
Договор |
ALL |
SELECT, UPDATE, DELETE, INSERT |
SELECT, INSERT, UPDATE, DELETE |
Сценарии, выполняющие создание необходимых объектов по реализации стратегии разграничения прав доступа пользователей к базе данных.
Создание в базе данных учетной записи пользователя, указав для него пароль.
Было создано три учетных записи – это Admin, Specialist и Director. Текст запросов выглядит следующим образом:
WITH PASSWORD = 'Adm';
GO
CREATE USER Admin FOR LOGIN Admin;
GO
WITH PASSWORD = 'Spec';
GO
CREATE USER Specialist FOR LOGIN Specialist;
GO
WITH PASSWORD = 'Dir';
GO
CREATE USER Director FOR LOGIN Director;
GO
А затем были назначены привилегии для каждой группы пользователей:
GRANT ALL ON Специалисты TO Admin
GRANT ALL ON Ремонт TO Admin
GRANT ALL ON Договор TO Admin
GRANT SELECT,UPDATE,DELETE,INSERT ON Специалисты TO Specialist
GRANT SELECT,UPDATE,DELETE,INSERT ON Ремонт TO Specialist
GRANT SELECT,UPDATE,DELETE,INSERT ON Договор TO Specialist
GRANT SELECT,UPDATE,DELETE,INSERT ON Специалисты TO Director
GRANT SELECT,UPDATE,DELETE,INSERT ON Ремонт TO Director
GRANT SELECT,UPDATE,DELETE,INSERT ON Договор TO Director
Заключение
В процессе курсового проектирования мы научились применять на практике знания, полученные в процессе изучения курса "Базы данных" и получили практические навыки проектирования и реализации баз данных, для последующего создания информационных систем.
Результатом явилось создание реляционной базы данных «Автотехцентр». При создании этой базы данных было освоено:
Разработанная база данных позволит облегчить процесс технического обслуживания автомобилей путем ведения учета выполняемых технических работ
Базу данных
можно применять в любом
Список использованной литературы
Приложение 1. Пример инфологической модели