Автотехцентр: база данных
Автор: Пользователь скрыл имя, 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
Файлы: 1 файл
Avtotekhtsentr.doc
— 450.00 Кб (Скачать)В таблице «Ремонт» существует поле Стоимость_ремонта. Введем ограничение стоимости ремонта 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. Текст запросов выглядит следующим образом:
- CREATE LOGIN Admin
WITH PASSWORD = 'Adm';
GO
CREATE USER Admin FOR LOGIN Admin;
GO
- CREATE LOGIN Specialist
WITH PASSWORD = 'Spec';
GO
CREATE USER Specialist FOR LOGIN Specialist;
GO
- CREATE LOGIN Director
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 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 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
GRANT SELECT,UPDATE,DELETE,INSERT ON Договор TO Director
Заключение
В процессе курсового проектирования мы научились применять на практике знания, полученные в процессе изучения курса "Базы данных" и получили практические навыки проектирования и реализации баз данных, для последующего создания информационных систем.
Результатом явилось создание реляционной базы данных «Автотехцентр». При создании этой базы данных было освоено:
- Создание базы данных посредством запроса, создание таблиц и наполнение их содержанием, а также построение диаграммы базы данных;
- Создание представлений, реализующих различные запросы;
- Работы с запросами на модификацию данных (INSERT, DELETE, UPDATE);
- Наложение ограничений посредством создания триггеров;
- Создание пользователей и назначение им привилегий.
Разработанная база данных позволит облегчить процесс технического обслуживания автомобилей путем ведения учета выполняемых технических работ
Базу данных
можно применять в любом
Список использованной литературы
- http://support.microsoft.com
- http://pyramidin.narod.ru/
rusql/index.htm - http://msdn.microsoft.com
- http://www.sql.ru
Приложение 1. Пример инфологической модели