You are on page 1of 44

Бази на податоци

База на податоци
• Базите на податоци и системите за управување со бази на податоци се присутни
во сите сегменти од современото општество – сите ние секојдневно се среќаваме
со некакви активности кои вклучуваат одредена интеракција со базата на
податоци.
• Примери за интеракција со база на податоци:
• Ако одиме во банка да депонираме или повлечеме средства,
• Ако направиме хотелска или резервација со авиокомпанија,
• Ако имаме пристап до компјутеризиран каталог на библиотека, за да бараме
библиографска област
• Ако набавиме нешто преку Интернет - како што е книга, играчка или компјутер
• При купување на предмети во супермаркет често автоматски
• Овие активности ја ажурираат соодветната база на податоци. Ова се примери за
традиционални бази на податоци.
База на податоци
Видови на бази на податоци:
- Мултимедиски: слики, аудио и видео
- Географски информациони системи:
географски мапи, метеоролошки
податоци, сателитски слики
- Data warehouse, online analytical
processing (OLAP): за анализа на бизнис
податоци и донесување одлуки
- Активни БП и БП во реално време: се
користат во индустриски процеси.

https://penmypaper.com/blog/latest-database-trends-for-2020/
База на податоци
• База на податоци е колекција на податоци кај кои постои
меѓусебна поврзаност.
• Базите на податоци денес се присутни во сите сфери на животот
каде што се користат компјутерите: бизнис, електронска трговија
инженерство, медицина, генетика, право, безбедност,
едукација...
База на податоци: карактеристики
• Базата на податоци претставува одреден аспект на реалниот свет,
понекогаш наречен мини свет. Промени во мини-светот се
рефлектираат во базата на податоци.
• Базата на податоци е логична и кохерентна колекција на
податоци со одредено значење. Случаен асортиман на податоци
не може правилно да се нарече база на податоци.
• Базата на податоци е дизајнирана, изградена и пополнета со
податоци за одредена намена. Секоја база на податоци има
наменета група на корисници како и одредени апликации кои се
од интерес на овие корисници.
База на податоци
• Базата на податоци има одреден извор од кој произлегуваат
податоците, одреден степен на интеракција со настани во реалниот
свет и публика која е активно заинтересирана за содржините на
базата на податоци.
• Крајните корисници на базата може да вршат деловни трансакции
(на пример, клиент купува камера) или може да се случат настани
(на пример, вработен има бебе) кои предизвикуваат промена на
информациите во базата на податоци. Со цел базата на податоци да
биде точна и сигурна во секое време, таа мора да биде вистински
одраз на мини светот што го претставува; затоа, промените мора да
се рефлектираат во базата на податоци што е можно поскоро.
Систем за управување со бази на податоци
• Систем за управување со базата на податоци (СУБП) е збирка програми што им
овозможуваат на корисниците да креираат и одржуваат база на податоци. СУБП е
софтверски систем со општа намена што ги олеснува процесите на дефинирање,
конструирање, манипулирање и споделување бази на податоци меѓу различни корисници и
апликации.
• Дефинирање на база на податоци вклучува прецизирање на типовите податоци, као и
структурите и ограничувањата на податоците што треба да се чуваат во базата на податоци.
• Конструирање на базата на податоци е процес на зачување на податоците на некој медиум
за складирање што е контролиран од страна на СУБП.
• Манипулрање на базата на податоци вклучува функции како што се пребарување на базата
на податоци за преземање на специфични податоци, ажурирање на базата на податоци со
цел да ги одрази промените во мини-светот, и генерирање извештаи од податоците.
• Разменување на базата на податоци овозможува повеќе корисници и програми да можат
истовремено да пристапуваат до базата на податоци.
Моделирање на бази на податоци
• При креирање на база на податоци потребно е претходно да се направи модел на
податоци.
• Моделите на податоци ги претставуваат – нештата (ентитети или објекти) што се
значајни за некој систем, бизнис и сл. Тие илустрираат како нештата кои се
релевантни за дадениот систем или мини-свет, кој е предмет на интерес, се
поврзани меѓусебно.
• Моделите на податоци се креираат постепено во неколку фази, се модификуваат во
тек на процесот се додека не се постигне соодветна претстава на реалниот систем.
• Моделите се користат за да се креираат апликации и да се имплементираат бази на
податоци.
• Концептуално моделирање е процес кој му претходи на процесот на креирање на
база на податоци.
Концептуално моделирање
• Моделите ги предодредуваат начините според кои податоците ќе
се организираат, чуваат и пребаруваат. Перформансите на овие
операции многу зависат од правилно креираниот концептуален
модел на податоци.
• Постојат повеќе видови на модели на бази на податоци
• Ние ќе го изучиме релациониот модел на бази на податоци, каде
што податоците се сместени во табели, како и ентитет-релација
(ЕР) концептуалниот модел.
Главни елементи кај ентитет-релација
концептуален модел на БП
• Главни елементи на ЕР модел:
• Ентитети
• Атрибути
• Клучеви
• Релации
• Референцијален интегритет
• Бидејќи во фокусот се ентитетите и релациите помеѓу нив, овој
модел е познат под името ентитет-релација (ЕР).
• Прв чекор кон креирање на модел е собирање и анализа на
корисничките барања.
Ентитет
• Ентитетите одговараат на нешта, објекти од интерес.
• Пример Ентитет

Вработен Име Презиме Дата на Адреса Место Оддел


Вработен ИД раѓање

ВработенИД 100 Марко Марковски 20.07.98 Трета Скопје Продажба


Име Мак.
В Бригада
Презиме 23
Дата на раѓ.
Адреса
Место
Оддел
Атрибути
Атрибутите се својства придружени на ентитетите. Најчесто се
претставени со именки (квантитет, боја...)

Вработен Атрибути Атрибутите можат да бидат


• Eдинечни (содржат единствена
ВработенИД вредност)
Име • Композитни (содржат повеќе
В
Презиме единечни атрибути)
Дата на раѓ.
Адреса
Место
Оддел
Атрибути
Атрибутите се својства придружени на ентитетите. Најчесто се
претставени со именки (квантитет, боја...)

Вработен Атрибути Атрибутите можат да бидат


• Eдинечни (содржат единствена
ВработенИД вредност)
Име • Композитни (содржат повеќе
В
Презиме единечни атрибути)
Дата на раѓ.
Адреса Атрибутите може да имаат:
Место • Дефинирана вредност
Оддел • NULL вредност
Клучеви
• Клуч во контекстот на бази на податоци се состои од еден или
повеќе атрибути кои служат за еднозначно идентификување на
запис (ред во табела).
Клуч

Вработен Име Презиме Дата на Адреса Место Оддел


ИД раѓање
100 Марко Марковски 20.07.98 Трета Скопје Продажба
Мак.
Бригада
23
Релации
• Релациите ги означуваат врските помеѓу ентитетите.
• Дијаграм за претставување ЕР: Ентитетите се означуваат со
правоаголници, релациите со линии кои ги поврзуваат
• Кардиналност е очекуваниот број на појавувања на соодветниот
ентитет во релацијата.
• Видови на кардиналност 1-1 (one-to-one), 1-N (one-to-many), N-N
(many-to-many)
1 N
Задача 1
• За дадените ентитети одредете ги релациите кои постојат помеѓу
нив и одредете ја нивната кардиналност
• Наставен предмет
• Тема
• Професор
• Училница
• Зграда
• Студент
• Книга
Задача 2
• Одредете го ентитетите, релациите и атрибутите за модел на
податоци кој ќе биде искористен за креирање на база на
податоци за водење библиотека.
Пример за ЕР дијаграм: библиотека
КнигаЧлен Член
Книга
1-N КнигаИД N-1 ЧленИД
КнигаИД
ЧленИД Име
Наслов
Тема Презиме
ДатаПоч Дата на
АвторИД
ДатаЗаврш раѓање
N-N
1-N
N-N
Автор Издание Издавач Библиотека
1-N Издание N-1
АвторИД ИД ИздавачИД БиблиотекаИД
Име Назив Адреса
Презиме Адреса Контакт
Клучеви
• Клучот се состои од еден или повеќе атрибути. Тие атрибути
заедно во комбинација еднозначно го идентификуваат секој
запис од табелата.
• Пример ако имаме табела со 100 000 вработени и ако нема
посебно поле означено како ВработенИД, кое друго поле би
можеле да го користиме како клуч?
• Име и презиме: истото може да се јавува повеќе пати
• Дата на раѓање: иста дата може да се јавува повеќе пати
• Адреса: иста адреса може да се јави повеќе пати
• Емаил: може да се менува
Најдобро е за клуч да се користи број автоматски генериран за таа намена.
Клучеви
• Во некои случаи примарниот клуч од еден ентитет е атрибут на
друг ентитет.

Клуч

Вработен Оддел

Вработен ИД Оддел ИД
Име 1 N Назив
Презиме
Адреса
Оддел ИД
Клучеви
• Секогаш кога додаваме нов вработен, Оддел ИД мора да има
валиден број на постоечки Оддел!

Клуч

Вработен Оддел

Вработен ИД Оддел ИД
Име 1 N Назив
Презиме
Адреса
Оддел ИД
Надворешни клучеви (композитни)
• Пример за авиокомпанија и резервација на авио-билети

Клуч

Лет Седиште
Надворешен
Лет ИД Седиште ИД клуч, во овој
Дата 1 N Лет ЛетИД случај мора
ВремеПолетување ОписСедиште да биде дел
ВремеПристигање СтатусСедиште од клучот.
Надворешни клучеви (N-N)
• Пример за компанија за изнајмување автомобили

Клуч

Автомобил Возач

Автомобил ИД Возач ИД
МаркаАвтомобил N N ИмеПрезиме
БројДозвола
Надворешни клучеви (N-N)
• Пример за компанија за изнајмување автомобили

Клуч

Автомобил Возач
ВозачАвтомобил
Автомобил ИД Возач ИД
МаркаАвтомобил 1-N 1-N ИмеПрезиме
БројДозвола
Надворешни клучеви (N-N)
• Пример за компанија за изнајмување автомобили

Клуч

Автомобил Возач
ВозачАвтомобил
Автомобил ИД Возач ИД
МаркаАвтомобил 1-N 1-N ИмеПрезиме
АвтомобилИД БројДозвола
ВозачИД
Надворешни клучеви (N-N)
• Пример за компанија за изнајмување автомобили

Клуч

Автомобил Возач
ВозачАвтомобил
Автомобил ИД Возач ИД
МоделАвтомобил 1-N АвтомобилИД 1-N ИмеПрезиме
ВозачИД БројДозвола

ДатумПоч
ДатумЗаврш.
Пример за креирање на табели

АвтомобилИД МаркаАвтомобил ВозачИД ИмеПрезиме БројДозвола


12101 Мерцедес 100 Ана Петрова 76700

23005 Ауди 101 Ива Стојанова 89800


35007 BMW 105 Мартин Јанев 54500

АвтомобилИД ВозачИД Датум Поч. Датум Зав.


12101 100 01-04-2021 05-04-2021
23005 100 02-04-2021 10-04-2021
35007 101 03-04-2021 07-04-2021
Нормализација
• Нормализацијата е постапка која се применува на веќе
креираните иницијални табели од една база на податоци, со цел
да се доведат во форма која спречува проблеми при
ажурирањето на податоците.
Нормализација (пет нормални форми)
• 1: All occurrences of an entity must contain the same number of attributes. – No
lists, no repeated attributes. (Сите записи во ентитет мора да имаат ист број на
атрибути.)
• 2: All non-key fields must be a function of the key. (Сите полиња што не се
клучеви, мора да бидат функција од клучот).
• 3: All non-key fields must not be a function of other non-key fields. (Сите полиња
што не се клучеви, не треба да бидат функција од други не-клучни полиња)
• 4: A row must not contain two or more independent multi-valued facts about an
entity. (Записот не смее да содржи два или повеќе повеќе-вредносни факти)
• 5: A record cannot be reconstructed from several smaller record types. (Записот
не треба да може да се конструира од повеќе помали записи.)
Прва нормална форма
• Сите редови мора да се со фиксна должина
– Рестриктивна претпоставка.
– Не се дозволени листи со варијации во должината.
– Не се дозволени повторувани полиња, e.g., vehicle1, vehicle2,
vehicle3…
Втора нормална форма
• Сите полиња што не се клучеви мора да бидат функции (зависни)
од целиот клуч.
Дел Прозводител Количина Адреса
21 Мерцедес 120 24 Street
34 Ауди 230 56 Street
99 BMW 500 17 Street

Клучот се состои од полињата (Дел,Производител).


• Полето Количина зависи од целосниот клуч Дел и Производител
• Полето Адреса меѓутоа зависи само од Производител, поради тоа е потребно креирање на нова табела
која ќе ги содржи полињата (Производител, Адреса).
Втора нормална форма
Решение
Производител Адреса
Мерцедес 24 Street
Ауди 56 Street
BMW 17 Street

Дел Прозводител Количина


21 Мерцедес 120
34 Ауди 230
99 BMW 500
Трета нормална форма
• Не-клучните полиња не може да бидат зависни од други не-
клучни полиња.
ВработенИД Оддел ОдделЛокација
234 Финансии Аеродором
239 Продажба Центар

Клуч претставува полето ВработенИД


• Полето ОдделЛокација зависи само од полето Оддел кое што не е клуч!
Трета нормална форма
Решение
ВработенИД Оддел
234 Финансии
239 Продажба

Оддел Локација
Финансии Аеродром
Продажба Центар
SQL (Structured Query Language)
• Програмски јазик наменет за зачувување, ажурирање и
манипулации со податоци.
• Овозможува креирање на база на податоци директно од ентитет-
релација ЕР дијаграмот.
• Овозможува ажурирање на податоци како бришење, додавање,
промена или пребарување: корисникот или програмот може да
изврши DELETE, INSERT, UPDATE или пребарување (SELECT) на
податоци.
• Пребарување може да се врши според зададени услови и можно
е да се пребаруваат податоци од повеќе табели.
SQL наредба SELECT
SELECT се состои од повеќе инструкции што овозможува да се селектираат
податоци од повеќе колони и редови. Мора да се почитува следниов
редослед:
– SELECT columns/attributes
– INTO new table
– FROM table or view
– WHERE specific rows or a join is created
– GROUP BY grouping conditions (columns)
– HAVING group-property (specific rows)
– ORDER BY ordering criterion ASC | DESC
Пример SELECT
• SELECT Name, Sales, Quota FROM SalesTable

ID Name Department Quota Sales


1 Bill Smith Dep1 500000 2500
3 Peter Jones Dep2 750000 3500

Во овој пример со наредбата SELECT ги селектираме сите податоци од колоните Name, Sales,
Quota од табелата наречена SalesTable.

Наредбата SELECT се задава на следниов начин:

SELECT column1, column2, column3…FROM Table_Name


Пример SELECT
• SELECT Name, Sales, Quota FROM SalesTable

ID Name Department Quota Sales


1 Bill Smith Dep1 500000 2500
3 Peter Jones Dep2 750000 3500

Резултат од оваа наредба ќе биде следниов:

Bill Smith, 2500, 500000


Peter Jones, 3500, 750000
Пример SELECT
• SELECT Name, Sales, Quota FROM SalesTable WHERE Quota>600000

ID Name Department Quota Sales


1 Bill Smith Dep1 500000 2500
3 Peter Jones Dep2 750000 3500
Пример SELECT со услов
• SELECT Name, Sales, Quota FROM SalesTable WHERE Quota>600000

ID Name Department Quota Sales


1 Bill Smith Dep1 500000 2500
3 Peter Jones Dep2 750000 3500

Наредбата SELECT се задава на следниов начин:

SELECT column1, column2, column3…FROM Table_Name WHERE condition

Solution:
Peter Jones, 3500, 750000 Само овој запис го задоволува условот Quota>600000!
Пример креирање на база на податоци и
креирање на табела
Најпрвин се креира базата на податоци која ќе содржи повеќе табели.

Креирање на база на податоци :


CREATE DATABASE databasename;

Потоа се креираат табелите една по една.

Креирање на табела:
CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);
Пример INSERT
• INSERT INTO SalesTable(ID, Name, Department, Quota,Sales) VALUES
(‘5’, ‘Dashiel Brown’,‘Dept1’,, 200000, 0);

Со наредбата INSERT се додаваат податоци во веќе креирана на


база на податоци и веќе креирана табела.
Пример INSERT
• INSERT INTO SalesTable(ID, Name, Department, Quota,Sales) VALUES
(‘5’, ‘Dashiel Brown’,‘Dept1’, 200000, 0);

ID Name Department Quota Sales


1 Bill Smith Dep1 500000 2500
3 Peter Jones Dep2 750000 3500
5 Dashiel Brown Dept1 200000 0
Литература
• Ramez Elamsri, Shamkant Navathe: Fundamentals of Database
Systems, 7th Edition.
• A. Silbershatz, H. Korth, S. Sudarshan: Database System Concepts, 6th
Edition.

You might also like