Бази данни

© Христо Тужаров, 2007

ОСНОВНИ ФУНКЦИИ НА СУБД

 

[Home] [Съдържание] [Асеневци] [Инфопедия] [Начало на книгата]

СИСТЕМА ЗА УПРАВЛЕНИЕ НА БАЗИ ДАННИ

СЪЩНОСТ НА СУБД

ОСНОВНИ ФУНКЦИИ НА СУБД

ЯДРО НА СУБД

ИЗИСКВАНИЯ ЗА РЕЛАЦИОННА СУБД

 

 

ОСНОВНИ ФУНКЦИИ НА СУБД

 

Управление данните във външната памет от СУБД

Включва осигуряване на необходимите структури на външната памет:

  • За съхраняване на данните въведени в базата данни;

  • За съхраняване на служебни данни, например, за  ускоряване на достъпа към данните (обикновено за това се използват индекси).

В някои реализации на СУБД за целта активно се използват възможностите на съществуващите файлови системи, в други се стига до ниво на директно управление на външната памет.

 

В развитите СУБД потребителите във всички случаи не се интересуват от  конкретната реализация.

 

Управление буферите на оперативната памет от СУБД

СУБД обикновено работи с обемни БД, т.е в повечето случаи този размер е значително по-голям от достъпния обем на оперативната памет. Естествено е в при тези условия, при всяко обръщение към елемент от данните, да се извършва обмен с външната памет, като това значително намалява скоростта на обработките.

 

Практически единствен начин за увеличаване на скоростта се явява буферизация на оперативната памет. При това, даже ако операционната система извършва общо системна буферизация (както е в случая с ОС UNIX), това е недостатъчно за целите на СУБД, която разполага със значително по-голяма информация за полезността от буфериране на една или друга част от БД.

 

Поради това в развитите СУБД се поддържа собствен набор от буфери в оперативната памет със собствени правила за управлението им.

 

Съществува отделно направление в СУБД, което е ориентирано към постоянно присъствие на БД в оперативната памет. То се базира на предположението, че обемът на оперативната памет на компютъра ще бъде достатъчен и няма да е необходима буферизация.

 

Управление на транзакциите от СУБД

 

Транзакция

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


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

 

Поддържането на механизма на транзакции се явява задължително дори за едно потребителските СУБД. 

 

Това че всяка транзакция започва при състояние на цялостност на БД и я оставя в състояние на цялостност след завършването си, прави много удобно използването на понятието транзакция като единица за активност на потребителя по отношение на БД.

 

Дневник на СУБД

Едно от основните изисквания към СУБД се явява надеждността на съхраняване на данните във външната памет.

 

Надеждност на съхранение

СУБД трябва да е в състояние да възстанови последното съгласувано състояние на БД след всеки апаратен или програмен грешка дефект.

  • Апаратни дефекти

  • Лек дефект – внезапно спиране работата на компютъра (например, аварийно изключване на захранването);

  • Голям дефект – загуба на информация във външната памет.

  • Програмни дефекти

Примери за програмни дефекти могат да бъдат:

  • Аварийно завършване работата на СУБД (причина – грешка в програмата или в резултат на апаратен дефект);

  • Аварийно приключване на потребителската програма, в резултат на което остава незавършена някоя транзакция.

  • Дневник на измененията в БД

Поддържането на надеждност в съхранението на данните изисква съхранение на допълнителни данни (излишък), чрез които да бъде възстановено състоянието на данните при възникване на дефект. Естествено е тази част от данните да се съхранява особено надеждно. Най-разпространен метод за поддържане на такъв излишък се явява воденето на дневник на измененията.

 

Водене на дневник от СУБД

Особена част от БД, недостъпна за потребителите на  СУБД и поддържана с особено внимание (понякога се поддържат две копия на дневника, разположени на различни физически дискове), в която постъпват записите за всички изменения в основната част на БД.

 

В различните СУБД измененията на БД са записват на различни нива. Във всички случаи се използва стратегията за  "изпреварващ" запис в дневника (протокол Write Ahead Log - WAL). Най общо, тази стратегия се състои в това, че записът за изменение на всеки обект от БД трябва да попадне в дневника преди променения обект да попадне в основната част на БД.

 

Ако в СУБД коректно се съблюдава протокола WAL, то с помощта на дневника може да се реши всеки проблем по възстановяване на БД след всеки дефект.

 

Поддръжка от СУБД езиците на БД

За работа с БД се използват специални езици.

 

Ранни СУБД

Поддържат се няколко специализирани по своите функции езици. Най често се използват два езика:

  • Език за определяне на схемата на БД (SDL - Schema Definition Language) Служи основно за определяне логическата структура на БД, т.е. тази структура на БД, която се представя на потребителите.

  • Език за манипулиране на данните (DML - Data Manipulation Language)  Съдържа набор от оператори за манипулиране на данните, т.е. оператори, позволяващи да се записват, изтриват, модифицират или селектират данните в БД.

Съвременни СУБД

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

 

Стандартизиран език за най-разпространението релационни СУБД се явява езикът SQL (Structured Query Language).

 

Основни функции на SQL

Поддържат се на "езиково" ниво и се реализират в SQL интерфейса.

 

              Съчетаване възможностите на SDL и DML

Позволява да се определя схемата на релационната БД и да се манипулират данните. При това именоването на обекти на БД (таблици и техните колони) се поддържа на езиково ниво в смисъл, че компилатора на езика SQL извършва преобразуване на имената на обектите в техни вътрешни идентификатори на база специално поддържани служебни таблици-каталози.

 

Вътрешната част на СУБД (ядро) не работи с имената на таблиците  и техните колони.

 

                Ограничаване на целостта

Езикът SQL съдържа специални средства  за определяне ограниченията в целостта на  БД. Тези ограничения се съхраняват в специални таблици – каталози и осигуряват контрол за целостта на БД.

 

                 Авторизация на достъпа

Достъпа до обектите на БД се извършва на база специален набор от SQL оператори.  За изпълнение на SQL оператори от различен вид потребителят трябва да има различни пълномощия.

 

                              Пълномощия

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