I. Основи на субд 2


Въведение в системите за управление на бази от данни



страница2/14
Дата23.02.2017
Размер1.28 Mb.
#15584
1   2   3   4   5   6   7   8   9   ...   14

2.Въведение в системите за управление на бази от данни

2.1.Основни понятия

2.1.1.База данни


В най-общия смисъл една база данни (БД) е компютърна система за регистриране и поддържане на логически свързани помежду си структури от данни. Самата БД може да бъде разглеждана като място за съхраняване на данни.

Една база данни освен оперативните данни, които съдържа, съдържа и описание на собствената си структура. Това описание се среща под различни наименования: речник на данните, каталог на данните или метаданни, но всички те означават едно и също – данни за данните. Речникът за данни прави независимостта на приложенията от данните възможна. За да обясним по добре казаното можем да го сравним с библиотека. Библиотеката съдържа колекция от книги, но освен тях съдържа и каталог, в който се съдържа описание на книгите в библиотеката. По този начин речника на данните, който е част от базата данни (както каталога на книгите е част от библиотеката), съдържа описание на данните, съдържащи се в базата данни. Описаният дотук механизъм е важен, защото когато се наложи да се направи промяна в структурата на данните просто тази промяна се регистрира в речника на данните.

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

Потребителите на такива системи обикновено желаят да разполагат с набор от средства, които им дават възможност да извършват следните операции с данните:



  • добавяне на нови данни в БД;

  • променяне на съществуващи данни;

  • извличане на съществуващи данни;

  • отстраняване на ненужни данни.

2.1.2.Базата данни като модел на компания


Една база данни може да съдържа представяне на факти относно определена организация, които могат да бъдат манипулирани с цел извличане на информация. Във всеки един момент базата данни ще представя състоянието на организацията към момента – имената и адресите на служителите, наименования на артикули и техните количества в склада, доходите на компанията – всички тези факти представят модел на организацията.

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


2.1.3.Понятия (неформално)


  • Таблица - в системите за управление на БД (СУБД) файловете обикновено се наричат таблици;

  • Ред - отделните записи в таблиците се наричат редове. Често се използва и термина запис (става въпрос за логически запис - трябва да се прави разлика от физическия запис, който ще бъде разгледан в следващите лекции). В курса двете понятия ще се използват като синоними;

  • Колона - отделните полета в записа се наричат колони. Поле и колона ще се използват като синоними;

  • SELECT, INSERT, UPDATE и DELETE са оператори на езика за работа с БД SQL (Structured Query Language). SQL ще бъде разгледан в рамките на курса.

2.1.4.Система за управление на база данни


Една СУБД включва в себе си 5 основни компонента. Ще обсъдим всеки един от тях.

  1. Хардуер

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

  1. Софтуер

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

  1. Данни

Данните са това, което е базата данни всъщност. Споменахме, че базата данни съдържа данни, метаданни в речника на данните и допълнителни системни данни (overhead data).

  1. Процедури

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

  1. Потребители

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

Съществуващите СУБД работят върху машини от различни класове - от малки персонални компютри до големи мейнфреймове (mainframes). Възможностите, които предлага всяка отделна система са различни и се лимитират от използваната хардуерна конфигурация. БД за големи машини са предимно многопотребителски (multi-user), докато тези за персонални компютри са еднопотребителски (single-user).


2.1.4.1Режими на работа

  • Еднопотребителски - във всеки момент със системата може да работи само един потребител;

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

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

Най-общо данните в една БД могат да бъдат:



  • интегрирани;

  • разпределени.

Тези два аспекта са свойствени за големите БД, докато за малките бази от значение е предимно свойството цялостност.
2.1.4.2Свойства на СУБД

  1. Цялостност

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

  1. Разпределеност

Отделна единица информация в БД може да разпределена между различни потребители без тя да губи своята цялостност, т.е. всеки може да има достъп до едни и същи данни. Исканията за достъп на различните потребители могат да постъпят едновременно в системата (concurrent access). Например, името на клиента може едновременно да се изиска от базата данни от служител, обслужващ клиента, и от касиер, работещ със сметката на клиента.

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

За съхранение на данните се използва предимно вторичната памет. Това са обикновено дискови устройства със съответните драйвери, контролери, входно-изходни канали и т.н. Тази проблематика няма да се разглежда в рамките на настоящия курс.

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

Потребителите на БД се делят основно на три големи групи:



  1. Приложни програмисти - създават приложни програми за работа с БД, като използват различни езици за програмиране (напр. COBOL, PASCAL, C, Java).Такива програми оперират с данните по класически начин - търсене на информация, създаване на нови структури с данни, изтриване и актуализиране на съществуващи данни. Достъпът до физическата БД се регламентира от стандартизиран интерфейс. Допустими са два режима на работа: поточна обработка (batch mode) или интерактивна обработка (on-line mode);

  2. Крайни потребители - за достъп до БД тези потребители използват on-line терминал. За манипулации в БД те използват потребителски програми (създадени от първата група потребители) или потребителски интерфейси, които са интегрална част на много от предлаганите СУБД. Съществуват различни видове интерфейси:

  1. интерактивни процесори за езици за заявки (query language), наричат се още командно-ориентирани (напр. SQL);

  1. меню-ориентирани интерфейси;

  1. генератори за формуляри.

  1. Командно-ориентираните интерфейси са за потребители с повече опит и познания в обработката на данни. Те са по-гъвкави средства и предоставят определени функции, които не се поддържат от менютата и формулярите.

  1. Администратори на БД - техните функции ще бъдат разгледани по-късно.

2.2.Данни

2.2.1.Оперативни данни


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

Като примери за потребители и съответстващи им оперативни данни можем да изброим следните:



  • голяма индустриална компания - производствени данни;

  • банка - информация за различните сметки;

  • болница - данни за пациенти;

  • университет - данни за студентите;

  • държавни учреждения - данни за планиране.

2.2.2.Входни данни


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

2.2.3.Изходни данни


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

В следващия пример ще представим информационен модел на производствена фирма – фигура 2-1.





Фигура 2-1. Пример за оперативни данни

В БД трябва да се съхраняват данни за проектите, по които се произвеждат изделията, информация за детайлите, които се доставят от външни партньори, информация за наличностите в склада, данни за работниците и служителите във фирмата и т.н. На Фиг. 2-1 са показани базовите информационни единици, за които ще се съхранява информация в БД.

Важно е да се отбележи, че освен информацията, характеризираща отделните единици, е необходима информация и за обекти от друго естество - това са релациите (връзките) между базовите единици. В нашия случай релациите са двупосочни (bidirectional), т.е. те могат да бъдат интерпретирани и в двете посоки.
Нека дефинираме две заявки към БД:


  • за служителя X да се намери отдела, в който той работи;

  • за отдела Y да се намерят служителите, работещи в него.

Фигура 2-1 илюстрира още няколко аспекта:



  1. Тройна релация - въпреки, че болшинството от релациите са двоични (binary - бинарни), съществува и една релация, която включва три типа обекти - доставчици, детайли и проекти. Обичайната интерпретация е “определени доставчици доставят определени детайли за определени проекти”. Ако разгледаме по-внимателно тази релация ще се убедим, че тя в общия случай не е еквивалентна на комбинацията на трите двоични релации:

    • доставчици доставят детайли;

    • детайлите се използват в проекти;

    • проектите се обслужват от доставчици.

Например съждението “Иван доставя болтове за проекта 'CAR'” (1) говори повече от комбинацията:

  • Иван доставя болтове (2);

  • Болтове се използват в проекта 'CAR' (3);

  • Проектът 'CAR' се обслужва от Иван (4).

Не можем коректно да изведем заключението (1) знаейки само (2), (3) и (4), т.е. ние можем да заключим, че:



  • Иван доставя болтове за някой проект Px (от 2);

  • Някой доставчик DOx доставя болтове за проекта 'CAR';

  • Иван доставя някакъв детайл DEx за проекта 'CAR'.

Това което, обаче, не можем (коректно) да заключим е, че Px = 'CAR', DOx = Иван и DEx = болтове. Грешни изводи като този често се наричат “connection trap”.

  1. Унарна релация - съществува релация, която включва само един обект. Това означава, че два детайла се комбинират, за да се получи нов детайл.

2.3.Каква БД?


Кой използва дадена БД? Какви са предимствата? В този раздел ще дадем отговор на тези въпроси.

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

Ще разгледаме първо еднопотребителските БД. Техните предимства са:


  • компактност - отпада необходимостта от килограми хартия;

  • скорост - системата може да търси необходимата информация, да актуализира съществуващите данни и с това да отговаря на различни заявки много бързо и “в движение”;

  • автоматизиране на механичната работа - редуцира се досадната механична работа;

  • валидност - във всеки момент информацията е актуална, защото се променя само от един потребител.

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

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



Някои предимствата, произхождащи от централизирания контрол:

  • излишеството от информация може да бъде редуцирано - отпада необходимостта всяко приложение да създава собствени файлове. Не трябва да се мисли, че излишеството може да се елиминира напълно. При необходимост обаче, създаваните копия могат да бъдат внимателно контролирани;

  • могат да се избягнат несъвместимости - това е естествена последица от предишната точка - нека да допуснем, че даден факт от реалния свят е представен чрез два обекта в БД. Да допуснем също, че СУБД не забелязва тези дубликати (т.е. излишеството не се контролира). При определени обстоятелства двата обекта могат да не хармонират - актуализиран е само единият от тях. В такъв момент БД е “несъвместима” и могат да се получат конфликти при работата на потребителите. Една възможност да се избегне несъвместимост е ако всеки реален факт се представя само с един обект в БД (забранява се излишество). Друга възможност - допуска се контролирано излишество (т.е. СУБД гарантира, че БД ще бъде винаги съвместима). В този случай при промяна всички копия се актуализират автоматично. Този процес е познат под името 'propagating updates';

  • данните могат да се разпределят - съществуващите данни могат да се използват от нови приложения, без да е необходимо да се създават отново;

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

  • могат да се прилагат ограничения с цел сигурност - имайки пълномощия над оперативните данни администраторите на БД са в състояние да подсигурят регламентиран достъп до БД. Също така те могат да дефинират контроли за сигурност, които се прилагат при заявки за достъп до “чувствителни” данни;

  • подпомага се поддържането на целостността;

  • могат да се балансират противоречащи си изисквания на потребителите - познавайки всички изисквания на потребителя администраторите могат да структурират системата така, че тя да бъде най-приемлива за съответната фирма.

Много от разгледаните предимства са очевидни. Друго важно предимство (по-скоро изискване) обаче не е толкова явно. То ще бъде разгледано отделно в следващата точка.

2.4.Независимост от данните


Качеството “независимост” може да бъде най-лесно разбрано ако разгледаме зависимост на данните. Много от днешните приложения са зависими от данните. С други думи начина, по който данните са организирани върху вторичната памет и начина, по който се осъществява достъп до тях се налага от изискванията на конкретното приложение. Така значителна информация за организацията на данните и за техниките за достъп се вгражда в логиката на приложенията и в кода на програмите.

В една БД обаче е нежелателно да се разрешава приложенията да бъдат зависими от данните, най-малко по следните две причини:



  • различните приложения ще се нуждаят от различни гледни точки (views) върху едни и същи данни;

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

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

2.5.Видове бази данни


Разграничават се основно два вида от гледна точка на управлението на базите от данни:

  • Операционни бази данни;

  • Аналитични бази данни.

В днешно време операционните бази данни са основата на много компании, организации и институции навсякъде по света. Този вид бази данни се използват при обработка на транзакции в реално време – OLTP – On-Line Transaction Processing, т.е. в ситуации, където е налице ежедневно събиране, променяне и поддържане на данни. Типът данни, който се съхранява в такава база данни е динамичен, което означава, че той се променя постоянно и винаги отразява най-новата информация. Такъв тип бази данни използват магазини и складове за продажба на стоки, банки, телекомуникационни компании и др.

За разлика от тях аналитичните бази данни се използват главно при аналитична обработка в реално време – OLAP – On-Line Analytical Processing, където има нужда да се съхраняват и проследяват минали и зависещи от времето данни. Една такава база данни е ценно предимство, когато има нужда да се следят тенденциите, да се извлича статистическа информация за определен период и да се правят тактически и стратегически бизнес прогнози. Този вид бази данни съхраняват статични данни, което означава, че данните не се променят или се променят много рядко. Такива бази данни намират приложение в компаниите за маркетингови анализи, изследователски лаборатории, състезателни отбори от Формула 1 и др.

Аналитичните бази данни често използват операционните бази данни като основен източник на данни, затова често съществува връзка между двата типа бази данни на дадена компания. Но въпреки това тези два типа бази данни са предназначени да задоволяват съвсем различни нужди и създаването на техните структури изисква коренно различни дизайнерски методологии.

По време на курса ще спрем вниманието си на операционните бази данни, защото те са най-широко използвания вид в световен мащаб към момента.


2.6.Релационни системи


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

Какво означава една система да е релационна? Тук ще дадем неформален и първоначален отговор на този въпрос. Накратко, една релационна система е такава система, в която:



  • данните се съхраняват в двумерни таблици, наречени в теорията релации;

  • операторите, с които потребителят разполага, генерират нови таблици от старите.

Системите за релационни бази данни използват математическата теория на множествата, за да организират ефективно данните.

Освен релационните системи съществуват още:



  • йерархични - данните се представят като множества от дървовидни структури, а предоставените оператори могат да манипулират такива структури;

  • инвертирани списъци - в отделни таблици се съхранява информация, подпомагаща достъпа до оперативните данни;

  • мрежови структури - данните се представят в мрежови структури;

  • дедуктивни - комбинация между релационна БД и логически компонент;

  • обектно-ориентирани - поддържат обектно-ориентирани структури и механизми;

  • обектно-релационни – релационна база данни, поддържаща и обектно-ориентирани структури и механизми.

Релационните бази данни имат доста предимства пред изброените по-горе други типове бази данни. Някои от тях са:

  • вградена цялост на много нива – на ниво поле, за да се осигури точността на данните; на ниво таблица, за да се гарантира, че няма да има дублиращи се записи; на ниво релация; на бизнес ниво, за да се осигури, че данните са точни от гледна точка на самия бизнес;

  • логическа и физическа независимост на данните от приложенията за бази данни;

  • гарантирана съгласуваност и точност на данните – следствие от различните нива на цялост;

  • лесно извличане на данни.

Каталог: sites -> default -> files
files -> Образец №3 справка-декларация
files -> Р е п у б л и к а б ъ л г а р и я
files -> Отчет за разкопките на праисторическото селище в района на вуз до Стара Загора. Аор през 1981 г. ХХVІІ нац конф по археология в Михайловград, 1982
files -> Медии и преход възникване и развитие на централните всекидневници в българия след 1989 година
files -> Окръжен съд – смолян помагало на съдебния заседател
files -> Семинар на тема „Техники за управление на делата" 18 19 юни 2010 г. Хисар, Хотел „Аугуста спа" Приложение
files -> Чинция Бруно Елица Ненчева Директор Изпълнителен директор иче софия бкдмп приложения: програма
files -> 1. По пътя към паметник „1300 години България


Сподели с приятели:
1   2   3   4   5   6   7   8   9   ...   14




©obuch.info 2024
отнасят до администрацията

    Начална страница