Материал: Проектирование и реализация базы данных учебного атласа мира

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

/*** Площадь суши и земли *****/TRIGGER plosh_sushSushainsert, update@S_plosh int, @Z_plosh int@S_plosh=S.Ploshad_sushi_mln_km2, @Z_plosh=Z.Ploshad_mln_km2SUSHA SZEMLYA ZS.Zemlya=Z.Zemlya(@S_plosh>=@Z_plosh)

begintran('Площадь суши не может быть больше площади земли', 16, 10)

end;SUSHAploshad_sushi_mln_km2=511

where rakurss=N'Суша'

/****Площадь воды и земли ******/

CREATE TRIGGER plosh_VodaVodainsert, update@V_plosh int, @Z_plosh int@V_plosh=V.ploshad_vody_mln_km2, @Z_plosh=Z.Ploshad_mln_km2Voda VZEMLYA ZV.Zemlya=Z.Zemlya(@V_plosh>=@Z_plosh)

begin tran('Площадь воды не может быть больше площади земли', 16, 10)

end;VODAploshad_vody_mln_km2=511

where rakurs=N'Вода'

/**** Площадь океана не может быть больше площади ракурса воды*****/

CREATE TRIGGER Plosh_OkeanOkeanyinsert, update@O_plosh int, @V_plosh int@O_plosh=O.Ploshad_mln_km2, @V_plosh=V.ploshad_vody_mln_km2Okeany O Voda VO.Zemlya=V.Zemlya(@O_plosh>=@V_plosh)

begin tran('Площадь океана не может быть больше ракурса воды', 16, 10)

end;OkeanyPloshad_mln_km2=362

/**** Площадь континента не может быть больше площади суши ******/

CREATE TRIGGER Plosh_KontKontinentyinsert, update@K_plosh int, @S_plosh int@K_plosh=K.Ploshad_mln_km2, @S_plosh=S.ploshad_sushi_mln_km2Kontinenty KSUSHA SK.Rakurss=S.Rakurss(@K_plosh>=@S_plosh)

begintran('Площадь континента не может быть больше площади суша', 16, 10)

end;KontinentyPloshad_mln_km2=149

/****Площадб страны не может быть больше площади континента *****/

CREATE TRIGGER Str_KontStranyupdate@S_Plosh int, @K_Plosh int@S_Plosh=S.Ploshad_km2, @K_Plosh=K.Ploshad_mln_km2*1000000    Strany SKontinenty KS.Kontinent_ID=K.Kontinent_ID(@K_Plosh>=@S_Plosh)

begintran('Площадь страны не может быть больше площади континента!', 16, 10)

end;StranyPloshad_km2=9976139strana_ID=73StranyPloshad_km2=44000000

where strana_ID=79

/***** Таблица для журналирования (Имена)******/

CREATE TABLE jour

(_operats varchar(30),datetime,varchar(30),_table varchar(30),_NAME nvarchar(30),_NAME nvarchar(30)

);

/**** Okean_NAME ****/TRIGGER jour1Okeanyupdate@new_n nvarchar(30), @old_n nvarchar(30)@new_n=I.Okean_NAME, @old_n=O.Okean_NAMEOkeany O, inserted iO.Okean_ID=I.Okean_IDINTO jour('Obnovlena', current_TIMESTAMP, current_USER, 'Okeany', @new_n, @old_n);OkeanyOkean_NAME=N'Твва'Okean_ID=1* from jour

/*** Pustynya_NAME ****/TRIGGER jour2Pustyniupdate@new_n nvarchar(30), @old_n nvarchar(30)@new_n=I.Pustinya_NAME, @old_n=P.Pustinya_NAMEPustyni P, inserted iP.Pustinya_NAME=I.Pustinya_NAMEINTO jour('Obnovlena', current_TIMESTAMP, current_USER, 'Pustyni', @new_n, @old_n);PustyniPustinya_NAME=N'Аравийские'Pustinya_ID=1* from Jour TRIGGER jour2

/**** Таблица журналирования (Объем)*****/

CREATE TABLE jour_plosh

(_operats varchar(30),datetime,varchar(30),_table varchar(30),_Plosh int,_Plosh int

);TRIGGER jour_plosh2Okeanyupdate@new_p float, @old_p float@new_p=I.Obyem_mln_km3, @old_p=O.Obyem_mln_km3Okeany O, inserted iINTO jour_plosh('Obnovlena', current_TIMESTAMP, current_USER, 'Okeany', @new_p, @old_p);okeanyObyem_mln_km3=20.32Okean_ID=4* from jour_plosh

6. Стратегии безопасности базы данных

Под безопасностью подразумевается защита базы данных от несанкционированного доступа. В современных СУБД поддерживается избирательный и обязательный тип стратегий обеспечения безопасности базы данных.

Безопасность базы данных реализуется с помощью стратегии избирательного управления безопасность. Сущность данной стратегии заключается в том, что для каждого пользователя базы данных устанавливаются различные права и полномочиями при работе с различными объектами.

Было выделено 4 основных пользователя «Meru», «Inka», «Tima», «Nura»:

CREATE LOGIN Meru with password='mmm',_DATABASE=kurs_LAURA;LOGIN Inka with password='iii',_DATABASE=kurs_LAURA;LOGIN Tima with password='ttt',_DATABASE=kurs_LAURA;LOGIN Nura with password='nnn',_DATABASE=kurs_LAURA;user Meru1 for login Meru;user Inka1 for login Inka;user Tima1 for login Tima;user Nura1 for login Nura;ROLE AAA;ROLE BBB;ROLE ccc;_addrolemember 'AAA', 'Meru1';_addrolemember 'AAA', 'Inka1';_addrolemember 'BBB', 'Tima1';

sp_addrolemember 'CCC', 'Nura1';

Установим права для каждой роли:

GRANT EXECUTE on St_Kont to AAAEXECUTE on Mor_Okean to AAAEXECUTE on St_More to AAAEXECUTE on Pr_okean to AAAEXECUTE on St_Proliv to AAAEXECUTE on Rer_Ok to AAAEXECUTE on Rek_Str to AAAEXECUTE on Ozer_Str to AAAEXECUTE on Kont_Vodopad to AAACREATE TABLE on database:: kurs_laura to AAAupdate on database:: kurs_laura to AAAinsert on database:: kurs_laura to AAAselect on database:: kurs_LAURA to BBBupdate on database:: kurs_laura to BBBcreate table on database:: kurs_laura to BBB

Заключение

В ходе курсовой работы была спроектирована и реализована базы данных учебный атлас мира.

В результате проектирования базы данных была построена модель процессов предметной области, осуществлено логическое и физическое проектирование базы данных, написаны запросы на выборку и манипуляцию данными на языке SQL.

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

Список литературы

1. Хансен Г., Хансен Д. Базы данных: разработка и управление. - М.: ЗАО «Издательство БИНОМ», 1999.

2.      Питер Роб, Карлос Коронел Системы баз данных: проектирование, реализация и управление, 5-е издание, - BHV Санкт-Петербург, 2004. -1040 с.,

.        Кренке Д. Теория и практика построения баз данных. Изд.9 - Питер, 2005.

4. MICROSOFT SQL SERVER 2005. Реализация и обслуживание. Учебный курс Microsoft/ Пер. с английского - М. «Русская редакция», Спб.: «Питер», 2007. - 768 стр. ил.

.   Мамаев Е. MS SQL Server 2000. Проектирование и реализация баз данных. Сертификационный экзамен. - BHV, СПб. 2004г., 416с

6.      Плю Р., Стефенс Р., Райан К. Освой самостоятельно SQL за 24 часа. - М.: Издательский дом «Вильямс», 2000.

.        Кандзюба С.П., Громов В.Н. Delphi 6/7. Базы данных и приложения. - СПб: ООО «ДиаСофт», 2002.

.        Географическая энциклопедия