Разработка механизмов защиты — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Разработка механизмов защиты

2020-02-15 192
Разработка механизмов защиты 0.00 из 5.00 0 оценок
Заказать работу

Защита БД должна охватывать следующие моменты:

- используемое оборудование

- ПО

- персонал

- сами данные.

В многопользовательских вычислительных системах компьютерные средства контроля включают следующие моменты:

1. Авторизация пользователей.

2. Использование представлений.

3. Средства копирования и восстановления.

4. Шифрование.

5. Вспомогательные процедуры.

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

Аутентификация – механизм определений того, является ли пользователь тем, за кого се6я выдает.

Представление – это динамический результат выполнения одной или нескольких реляционных операций над базами отношения.

Резервное копирование – процесс периодического создания копий БД из файла журнала БД.

Средство поддержания целостности средства данных предназначены для исключения перехода данных в несогласованное состояние.

Шифрование данных – кодирование данных с помощью специальных алгоритмов, которые делают данные непригодными для чтения, если не известен ключ шифрования.

Некомпьютерные средства контроля включают мероприятия:

1. Разработка мер обеспечения безопасности.

2. планирование защиты от непредвиденных обстоятельств.

3. Контроль за физическим доступом.

4. Контроль за персоналом.

5. Заключение гарантированных договоров на сопровождение.

 

Управление транзакциями

Транзакция – это серия действий, которые выполняются одним пользователем или прикладной программой, и осуществляет изменения содержимого БД или доступ к данным.

Транзакция может быть представлена отдельной программой, частью какого либо алгоритма, либо отдельной программой (Insert, Update).

Чтобы разобраться с механизмом управления транзакций, рассмотрим пример:

Staff – сотрудник

Property for Rent – объекты недвижимости

Staff (sno, fname, lname, Adr, tel №, Position, Dop, Sex, salary. Nin, Pn)

Property for Rent (pno, Street, Area, City, Pcode, Type, Rooms, Ono, Sno, bno).

 

Необходимо сотруднику увеличить заработную плату.

Вариант А:

Read (sno=x, Salary)

Salary = Salary*1.1

Write (sno=x, view_ Salary)

Вариант В: (удаляется информация о сотруднике с заданным номером)

Delete (sno=x)

For all Property for Rent

Begin

Read (Pno=Pno, sno)

If (sno = x) then

Begin

Sno=new_sno

Write (pno=pno, sno)

End

End.

Если для транзакции для варианта А при выполнении изменений не все будут выполнены до конца БД по прежнему будут находиться в согласованном состоянии.

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

1. В случае успешного завершения транзакции результаты фиксируются в БД, и БД переходит в новое согласованное состояние;

2. Если транзакция не завершена либо произошло аварийное завершение, она отменяется и БД переходит в прежнее состояние. Этот процесс называется откат.

Зафиксированную транзакцию не возможно отменить, тогда надо выполнить другую транзакцию, которая отменит действие предыдущей. Этот процесс называется компенсирующей транзакцией.

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

 - BEGIN TRANSACTION

 - COMMIT

 - ROLL BACK

Если эти операторы не использовались, то вся выполняемая программа расценивается как единая транзакция и СУБД автоматически выполняет команду COMMIT – при успешном завершении, ROLL BACK – при аварийном завершении транзакции.

Любая транзакция должна обладать следующими свойствами:

1. Атомарность – это неделимая единица, которая может быть либо выполнена полностью, либо не выполнена совсем.

2. Согласованность, каждая транзакция должна переводить БД из одного согласованного состояния в другое согласованное состояние.

3. Изолированность, все транзакции выполняются независимо друг от друга и результаты независимой транзакции не должны быть доступны другим пользователям.

4. Продолжительность, результаты успешного завершения транзакции должны быть постоянны и не должны быть утеряны в процессе сбоя.

Рассмотрим подсистему обработки транзакции типичной СУБД.

Менеджер транзакций осуществляет координацию работы. Он взаимодействует с планировщиком, который отвечает за реализацию выбранной стратегии управления параллельностью, которая отвечает за реализацию выбранной стратегии. Его называют еще менеджер блокировок, если для управления параллельностью выбрана система блокировок.

Цель работы планировщика заключается в достижении максимальности управления параллельностью.

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

Менеджер буфера отвечает за период данных между основной памятью компьютера и вторичной дисковой памятью.

 

 

 


 

 

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

При параллельном выполнении транзакций могут возникнуть следющие проблемы:

1. Проблема потерянного обновления

2. Проблема обработки

3. Проблема зависимости от нефиксированных результатов.

Пример первой проблемы

время Транзакция 1 Транзакция 2 Поле bals
T1   Begin transaction 100
T2 Begin transaction Read (bals) 100
T3 Read (bals) Bals=bals+100 100
T4 Bals=bals+100 Write bals 200
T5 Write bals commit 90
T6 Commit   90

Пример второй проблемы

время Транзакция 1 Транзакция 2 Поле bals Bals y Bals z sum
T1   Begin transaction 100 50 25  
T2 Begin transaction Sum=0 100 50 25  
T3 Read (bal x) Read (bals) 100 50 25 0
T4 Bals=bal x-10 Sum=sum+ bal x 100 50 25 0
T5 Write bal x Read (bal y) 100 50 25 0
T6 Read (bal x) Sum=sum+ bal y 90 50 25 100
T7 Write bal y   90 50 25 150
T8 Balz=balz+10   90 50 25 150
T9 Write Balz Read (bal z) 90 50 25 150
T10 Commit Sum=sum+balz 90 50 25 185
T11   Commit 90 50 25 185

Пример третьей проблемы

время Транзакция 1 Транзакция 2 Поле bal x
T1   Begin transaction 100
T2   Read bal x 100
T3   Bal x=bap x+100 100
T4 Begin transaction Write bal x 200
T5 Read bal x    
T6 bal x= bal x-10 Rall back 100
T7 Write bal x   190
T8 commit   190

 

 


Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.