Проектирование базы данных на языке SQL
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
°заны на рисунке 3.3.
SELECT FIO,TEAM_NAME FROM COACH C, TEAM T
">WHERE WHERE ((C.TEAM_NUMBER = T.TEAM_NUMBER) AND (COACH_DATE >01.01.1985, COACH_DATE <01.01. 1988);
Рисунок 3.3 - Работа хранимой процедуры СOACH
Триггер - специальный вид хранимой процедуры, используемый в реляционных БД. Триггер не может вызываться непосредственно пользователем, он привязывается к какой-либо базовой таблице и выполняется автоматически СУБД при вставке, удалении или модификации записей в таблице.
Пример создания триггера:
Создать триггер, который автоматически проставляет номер матча MATCH_NUMBER перед вставкой нового кортежа:
CREATE TRIGGER INS_MATCH_NUMBER FOR MATCHINSERT.MATCH_NUMBER = GEN_MATCH_NUMBER(GEN,1);
END
3.2 Стратегии безопасности базы данных
Под безопасностью подразумевается защита базы данных от несанкционированного доступа. В современных СУБД поддерживается избирательный и обязательный тип стратегий обеспечения безопасности базы данных.
Безопасность базы данных реализуется с помощью стратегии избирательного управления безопасность. Сущность данной стратегии заключается в том, что для каждого пользователя базы данных устанавливаются различные права и полномочиями при работе с различными объектами.
Было выделено 3 основных пользователя Администратор, Организатор, Участник (Листинг 3.2):
CREATE USER administrator SET PASSWORD administrator ;USER organizator SET PASSWORD organizator ;USER uchastnik SET PASSWORD uchastnik ;
Установим права для каждого из пользователей, разрешив участнику только делать выборку из таблиц Матч, Турнир, Команда, организатору будут доступны выборка, добавление, изменение информации всех таблиц, а администратору ? все действия над таблицами:
GRANT SELECT ON MATCH TO UCHASTNIK;SELECT ON TURNIR TO UCHASTNIK;SELECT ON TEAM TO UCHASTNIK;SELECT,UPDATE,INSERT ON TURNIR TO ORGANIZATOR;SELECT,UPDATE,INSERT ON MATCH TO ORGANIZATOR;SELECT,UPDATE,INSERT ON TEAM TO ORGANIZATOR;SELECT,UPDATE,INSERT ON COACH TO ORGANIZATOR;SELECT,UPDATE,INSERT ON PLAYER TO ORGANIZATOR;ALL ON TURNIR TO ADMINISTRATOR WITH GRANT OPTION;ALL ON MATCH TO ADMINISTRATOR WITH GRANT OPTION;ALL ON TEAM TO ADMINISTRATOR WITH GRANT OPTION;ALL ON COACH TO ADMINISTRATOR WITH GRANT OPTION;ALL ON PLAYER TO ADMINISTRATOR WITH GRANT OPTION;
Отменим право организатора модифицировать и заполнять таблицу ORGANIZATOR:
REVOKE INSERT,UPDATEORGANIZATORCOACH
Заключение
В ходе курсовой работы была спроектирована и реализована базы данных для обеспечения автоматизированного учета результатов футбольного турнира.
В результате проектирования базы данных была построена модель процессов предметной области, осуществлено логическое и физическое проектирование базы данных, написаны запросы на выборку и манипуляцию данными на языке SQL.
Ограничение целостности и безопасности базы данных было обеспечено за счет использования представлений, хранимых процедур, триггеров, ссылочной целостности, делегирования прав и полномочий.
Список использованных источников
.Когаловский М.Р. ЭНЦИКЛОПЕДИЯ ТЕХНОЛОГИЙ БАЗ ДАННЫХ; М.: Финансы и статистика, издание 2-е, 2002, 800 с.
2.Райордан Р. Основы реляционных баз данных/Пер, с англ. - М.: Издательско-торговый дом Русская Редакция, 2001. - 384 с.
.Майкл Дж. Хернандес, Джон Л. Вьескас SQL-запросы для простых смертных; К.: Диалектика; Издание 2-е, 1999. - 421 c.
.Резниченко В. Язык запросов SQL. Учебный курс; К.: Диалектика; Издание 1-е, 2004. - 298 с.
.Голицына, О.Л. Базы данных; Форум; Инфра-М, 2007. - 399 c.
.Ролланд Ф. Основные концепции баз данных. : Пер. с англ. - М.: Издательский дом "Вильяме", 2002. - 256 с.
7.Кренке, Д. Теория и практика построения баз данных [текст] М.: Питер, издание 1-е, 2001, 800 с.
Приложение
Структура базы данных
CREATE TABLE PLAYER
(_NUMBER INTEGER NOT NULL,DATE DATE NOT NULL,INTEGER NOT NULL,DEIMAL(18,4) NOT NULL,VARCHAR(255) NOT NULL,VARCHAR(255) NOT NULL,
);TABLE PASSPORT_DATEPRIMARY KEY (PLAYER_NUMBER);FOREIGN KEY (TEAM_NUMBER_FK) REFERENCES ORGANIZATOR (TEAM_NUMBER);TABLE COACH
(_NUMBER INTEGER NOT NULLVarchar(255) NOT NULL,_DATE DATE NOT NULL,Varchar(255) NOT NULL,
);TABLE COACHPRIMARY KEY (COACH_NUMBER);FOREIGN KEY (TEAM_NUMBER_FK) REFERENCES ORGANIZATOR (TEAM_NUMBER);TABLE TEAM
(_NUMBER INTEGER NOT NULL,_NAME VARCHAR(255) NOT NULL,_COLOUR CHAR(18) NOT NULL,VARCHAR(255) NOT NULL,KEY (TEAM_NUMBER)
);TABLE MATCH
(_NUMBER INTEGER NOT NULL,_DATE DATE NOT NULL,_MATCH VARCHAR(255) NOT NULL,KEY (MATCH_NUMBER)
);TABLE COACHFOREIGN KEY (FIRST_TEAM_FK) REFERENCES ORGANIZATOR (FIRST_TEAM);FOREIGN KEY (TURNIR_NUMBER_FK) REFERENCES ORGANIZATOR (TURNIR_NUMBER);FOREIGN KEY (TEAM_NUMBER_FK) REFERENCES ORGANIZATOR (TEAM_NUMBER);TABLE TURNIR
(_NUMBER INTEGER NOT NULL,_FOND VARCHAR(18,4) NOT NULL,_DATE DATE NOT NULL,DATETIME NOT NULL,KEY (TURNIR_NUMBER)
);