You are on page 1of 19

ЈУ СШЦ „Михајло Пупин“

Дервента

МАТУРСКИ РАД
Тема: MYSQL

Предметни наставник: Ученик:


Душко Живанић, проф. Тијана
Живковић
Дервента, 2024. год.

2
САДРЖАЈ

1. УВОД.....................................................................................................3

2. ПОЈАВА И ФУНКЦИОНИСАЊЕ MYSQL-А.............................................4

3. ГЛАВНЕ КАРАКТЕРИСТИКЕ MYSQL-А...................................................5

3. ОСНОВНИ КОНЦЕПТИ ДИЗАЈНА БАЗЕ ПОДАТАКА..............................7

4. ПРЕДНОСТИ И МАНЕ MYSQL-A............................................................9

4.1. Предности.....................................................................................9

4.2. Недостаци...................................................................................12

5. ЗАКЉУЧАК..........................................................................................15

6. ЛИТЕРАТУРА.......................................................................................16
1. УВОД

MYSQL је систем за управљање SQL базама података. База података


је структурно повезан скуп података. База података може бити било шта,
од једноставне листе за куповину преко листе слика умјетничке галерије
до огромне количине података у корпоративним мрежама. Додавање,
приступ и обрада података у БП захтијева систем за управљање базом
података као што је MYSQL. Пошто су рачунари изврсни у обради великих
количина података, системи за управљање базама података играју
централну улогу у рачунарству, било као самостални алати или као дио
других апликација.
MYSQL такође добро ради са релационим базама података.
Релациона база података је база података која чува податке у засебним
табелама уместо у једној табели. Ово омогућава бржи и флексибилнији
рад са базама података. Табеле су повезане дефинисаним релацијама,
што омогућава комбиновање података из више табела у случају да постоји
захтјев за тим. Ријеч SQL у MYSQL-у је скраћеница за "Structured Query
Language" - најчешћи стандардизовани језик за приступ базама података.
MYSQL је производ отвореног кода, што значи да је свакоме
дозвољено да га користи и прилагођава за своје потребе. Свако може
преузети MYSQL са Интернета и користити га без плаћања. MYSQL потпада
под GPL (General Public Licence). Постоји и MYSQL Enterprise верзија
програма која није бесплатна и нуди додатне опције за напредне
кориснике.
Веома је брз, поуздан и једноставан за употребу. Такође има веома
практичне додатне опције развијене у блиској сарадњи са корисницима.
MYSQL је првобитно развијен за манипулацију веома великим базама
података, много је бржи од постојећих рјешења и успјешно се користи у
веома захтјевним окружењима. Приступачност, брзина и безбиједност
чине MYSQL веома погодним за приступ базама података преко
Интернета.
Ако је потребна брза, поуздана и флексибилна база података, рад са
MYSQL-ом биће остварење сна без обзира на апликацију.

4
2. ПОЈАВА И ФУНКЦИОНИСАЊЕ MYSQL-А

Људи који су основали данашњи MYSQL-АB првобитно су жељели да


користе mSQL уз помоћ својих бржих (ISAM) рутина за повезивање табела
у својој бази података. Међутим, након опсежног тестирања, дошли су до
закључка да mSQL једноставно није довољно брз или довољно
флексибилан за њихове потребе. Ово је резултирало појавом новог SQL
интерфејса за БП са скоро идентичним АПИ (апликационим програмским
интерфејсом) као mSQL.
Како је MYSQL добио име није сасвим јасно. Све корјенске фасцикле
и велика количина библиотека и алата имали су префикс „\my“ више од
десет година. С друге стране, ћерка Мајкла "Монти" Виденијуса се зове
"My". Тако да ни запослени у компанији не знају која је прича истинита.
MYSQL софтвер се састоји од MYSQL сервера, неколико додатних
услужних програма који служе за олакшавање администрације БП-а, као и
додатних програма који су потребни за рад сервера. Срце система је
наравно MYSQL сервер, он је заправо "менаџер" БП система. Сва
корисничка упутства која управљају базом података пролазе кроз њу. На
примjер, ако корисник жели да креира нови БП, он ће послати сљедећу
поруку MYSQL серверу: "креирај нову базу података и назови је newdata".
MYSQL сервер ће тада креирати потфасциклу у својој фасцикли под
називом " newdata ". Ако желимо даље да проширимо ту нову базу
података, вођени претходним примјером, послаћемо нову поруку или
команду на MYSQL сервер са тачним одредиштима гдје желимо да се
подаци додају. Али прије него што будемо могли да комуницирамо са
сервером, морамо га покренути и провјерити да ли је подешен да очекује
захтјеве. У већини случајева, MYSQL сервер се покреће заједно са
рачунаром и ради непрекидно. Овај начин рада је типичан за веб
локације. Наравно, није обавезно да се сервер покреће када се рачунар
укључи, увијек постоји могућност да га укључимо ручно када желимо да
приступимо својој бази података. Када се MYSQL сервер покрене, он
стално чека на поруке које му се шаљу.

5
6
3. ГЛАВНЕ КАРАКТЕРИСТИКЕ MYSQL-А

Слиједећа листа описује неке од важијих карактеристика MySQL-а:


 Програм је оспособљен за потпуно искориштење
вишејезгарних процесора;
 C, C++, Ei_el, Java, Perl, PHP, Python i Tcl APIs.
 Ради на много различитих платформи;
 Могућ је избор куцања од: потписаних или непотписаних
интеџтписаних или непотписаних интеџера дужине 1,2,3,4 и 8
Бајтова FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE,
TIME, DATETIME, TIMESTAMP, YEAR, SET и ENUM типова;
 Веома брзо придруживање кориштењем оптимизованог
вишеструког повезника;
 Потпуна операциона и функцијска подршка у дијеловима
SELECT и WHERE упитника;
 SQL функције су имплементиране кроз високо оптимизовану
класу библиозеке и морају бити брзе колико год могу;
 Потпуна подршка за SQL GROUP BY и ORDER BY клаузуле;
 Подршка за LEFT OUTER JOIN и RIGHT OUTER JOIN са ANSI SQL и
ODBC синтаксама;
 Могућност мијешања табела из различитих база података у
истом упитнику;
 Привилегије и лозинком заштићен систем, јер је лозинка
осигурана и тек када се конектујемо на сервер, он врши
енкрипцију.
 ODBC (Open-DataBase-Connectivity) подржава Win32;
 Веома брзе B-tree диск табеле са индексом компресије;
 До 32 индекса по табели је дозвољено. Свако индекс може да
се састоји од 1 до 16 колона или дијелова колона. Максимална
дужина индекса је 500 Бајтова;
 Записи фиксиране и промјенљиве дужине;
 Рукује са већим базама података;

7
 Све колоне имају дифолтне вриједности;
 Користи GNU Automake, Autoconf и libtool за портабилност;
 Пише у С и С++; тестиран је са широким спектром различитих
компајлера;
 Веома брз систем за проналажење локације;
 Нема цурења меморије; тестирано са комерцијалним
детектором за цурење меморије;
 Користи myisamchk веома брз програм за провјеравање
табела, оптимизацију и поправке;
 Потпуна подршка за неколико различитих карактера;
 Сви подаци су сачувани у датом карактеру;
 Сва сортирања се врше према датом карактеру који се
употребљава. Могуће је мијењање карактера тек када се
стартује MySQL сервер;
 DELETE, INSERT, REPLACE, UPDATE враћају колико год је
потребно колона уназад;
 Имена функција не поклапају се са именима колона и табела;
 У свим MySQL програмима, могуће је дозвати помоћ и остале
асистент програме, као и онлајн помоћ;
 Сервер може пружити својим клијентима упозорења о
грешкама на мноштву језика.

8
3. ОСНОВНИ КОНЦЕПТИ ДИЗАЈНА БАЗЕ ПОДАТАКА

Прије почетка рада са било којим ДБМС системом, укључујући


MySQL, потребно је дизајнирати одговарајући изглед базе података,
односно креирати шему базе података, која се касније преводи у
одређени број табела које се користе за складиштење података. Основни
елемент који се чува у бази података назива се ентитет, ентитет може бити
било шта: особа, објекат, догађај, услуга у организацији итд. тако ствари из
стварног живота о којима желимо да чувамо информације. Други важан
термин у теорији база података је релација. Као што у стварном животу
постоје одређени међусобни односи између двије или више особа,
догађаја и сл., тако се у базама података могу појавити одређени односи
или односи између различитих ентитета, који су на одговарајући начин
представљени унутар саме базе података.
Према врсти, релације се могу подијелити на релације један-према-
један, један-према-више или више-према-један и више-према-више. На
примјер, хајде да моделирамо базу података која садржи двије табеле,
једну за складиштење информација о запосленима, а другу информације
о услугама које постоје у тој одређеној организацији, шема базе података
може изгледати овако:

zaposleni ( ID zaposlenika PK , ID usluge , ime, prezime, adresa)


usluge ( ID usluge PK , ime, broj telefona)

Ставке којима претходи ПК представљају тзв примарни кључеви или


јединствени идентификатори који се могу појавити само једном у
одређеној табели, на примјер ЈМБГ број запосленог се може користити
као примарни кључ табеле, подебљане ставке представљају тзв. стране
кључеве за примарни кључ друге табеле. Овом основном шемом добили
смо однос један према више, другим ријечима, један запослени може да
ради искључиво у једном одјељењу, једно одјељење може имати нула
или више запослених.

9
Ако желимо да створимо такав однос у којем ће једна служба моћи
да запошљава само једно лице, а један службеник може да припада више
служби, основна шема у том случају би могла да изгледа овако:

zaposleni ( osoba PK radnika , ime, prezime, adresa)


usluge ( ID usluge PK , ID zaposlenog , ime, broj telefona)

Шта ако желимо да моделујемо ситуацију у којој један запослени


може да припада само једној служби, док са друге стране, један сервис
може да садржи само једног запосленог, што би представљало однос
један на један. У том случају, морали бисмо да уведемо додатну табелу,
која би садржала двије вредности као јединствене идентификаторе, са
једне стране ID запосленог (тј. ЈМБГ) и ID услуге, и евентуално додатне
информације као што је датум запослења. Могли бисмо назвати ту
додатну табелу employee_in_service да разумијемо сврху односа, а шема
би тада изгледала овако:

zaposleni ( osoba PK radnika , ime, prezime, adresa)


usluge ( ID usluge PK , ime, broj telefona)
zaposleni_u_sluzbi( PK IDemployee, PK IDsluzbe, datum_zaposlenja)

Као што видимо, могуће је комбиновати два или, по потреби, више


примарних кључева. За однос више-према-више, унутар односа
employee_in_service, можемо уметнути додатни примарни кључ, као што
је auto_increment, тако да више запослених може да ради у више услуга, а
свака услуга може да садржи више запослених, шема би изгледала овако:

zaposlenici(PK IDzaposlenika,ime,prezime,adresa)
sluzbe(PK IDsluzbe,naziv,broj_telefona)
zaposlenik_u_sluzbi(PK IDrelacije,PK IDzaposlenika, PK IDsluzbe,
datum_zaposlenja)

10
4. ПРЕДНОСТИ И МАНЕ MYSQL-A

Предности MySQL-а су:


1. Брзина;
2. Поузданост;
3. Мала потражња за системским ресурсима;
4. Флексибилно побољшање перформанси;
5. Рад на различитим платформама;
6. Подршка великом броју програмских језика;
7. Снажна корисничка подршка;

Недостаци MySQL-а су:


1. Недостатак неких SQL могућности;
2. Недостатавак озбиљнијег тестирања на одређеним
платформама;
3. Компликовано руковање изворним кодом;

4.1. Предности

Брзина
Срце MySQL кода је написано потпуно од нуле, а главни циљ је био
постизање што бољег учинка. Оно што је заправо довело до стварања
MySQL -а била је чињеница да је Монти Виденијус био толико фрустриран
спорошћу других програма на тржишту да је одлучио да напише MySQL.
Велики број нових корисника био је скептичан и није вјеровао да је MySQL
толико бржи од конкуренције, чак су се питали да ли је MySQL способан да
задовољи њихове основне потребе.
Људи из MySQL -а су предложили да се направи референтни
програм који ће тестирати могућности MySQL -а и показати шта он заправо
може да уради. Резултати теста су били толико невјероватни да су се нови
корисници без сумње одлучили за MySQL.

11
Многи програми за управљање базама података могу да обрађују
између 1000 и 2000 упита у секунди на типичном k86 хардверу. MySQL је
способан да обрађује 13000 упита у секунди на quad Pentium III 700MHz
тако што преузима запис примарног кључа из табеле са милион записа.
Дакле, на питање „Да ли је MySQL довољно брз за моје потребе?“ одговор
би био „Да, и вјероватно много бржи него што вам је потребно.“ Наравно,
као и сваки други програм, MySQL може бити спор у одређеним
ситуацијама, све док се не може се десити на примјер ако при слању упита
не пазимо на исправност команде. Ово се може избјећи разумијевањем
како сервер функционише.

Поузданост
MySQL је стекао репутацију по томе што може да ради данима, па
чак и мјесецима без интервенције корисника - након основног
подешавања. Наравно, повремено се јављају проблеми или се откривају
грешке унутар програма, али то је обично случај за било који други сервер
базе података. Ријетко се дешава да се MySQL сервер „сруши“, али када се
то догоди, врло је лако вратити се. Ова репутација коју је MySQL стекао
привукла је пажњу неколицине озбиљних корисника који су одлучнији да
пређу са комерцијалних програма на MySQL. Неки од њих су Yahoo!
Finance, Cisco, Texas Instruments, the United States Census Bureau, NASA,
Novell, Blue World Communications, Motorola и многи други. Развојни тим
је веома фокусиран на поузданост и стабилност. Било је случајева када су
нове верзије MySQL -а биле одложене због мањих грешака у програму
које су откривене, али нису исправљене. У случају откривања веће грешке,
развој тренутне верзије би био обустављен и кренуо би од нуле, а
развојни тим би упутио јавно извињење свим корисницима.

Мала потражња за системским ресурсима


MySQL ће максимално искористити ресурсе које му дате. Наравно,
са више ресурса, перформансе ће бити боље, али минимални ресурси
неће учинити MySQL неупотребљивим, као што се дешава са неким
другим серверима база података. MySQL ради сасвим коректно на Pentium
166Mhz и 32 mb PAM конфигурацијама, али је било искустава са
конфигурацијама које су имале слабије спецификације од горе наведених.
12
Минимална количина PAM-а која је довољна за покретање MySQL -а
је између 2 и 3 mb, тако да је теоретски могуће покренути MySQL на
системима са 4 mb PAM-а.

Флексибилно побољшање перформанси


У пракси је потврђено да MySQL веома добро скалира перформансе
на системима са до 4 процесора и до 4 gb РАМ-а и у потпуности користи
системске ресурсе. Такође је утврђено да добро ради са табелама које
имају неколико милијарди записа. MySQL може лако да рукује до 1500
корисника у исто вријеме без значајног пада перформанси. Врло је
вјероватно да крајње границе скалирања MySQL перформанси нису ни
одређене. Ако икада захтјеви превазиђу могућности сервера, увијек
постоји могућност повезивања више сервера у један систем и на тај начин
подјеле оптерећења.

Рад на различитим платформама


MySQL има могућност рада на различитим архитектурама и
оперативним системима. Оперативни системи који се фреквентно користе
су Linux, Windows, Solaris, FreeBSD. MySQL такође ради и на Irix, HP-UX, AIX,
SCO, Tru64, OpenBSD, NetBSD, Mac OS X.

Подршка великом броју програмских језика


Када развијамо апликације за управљање базом података, једна од
највећих брига је да ли ћемо моћи да повежемо своју апликацију са
сервером базе података користећи одређени програмски језик. И у овој
области MySQL се издиже изнад конкуренције јер програмери могу да
комуницирају са MySQL-ом користећи С/С++, PHP, Perl, java, Phyton, TCL,
Rubi и Eiffel.

Снажна корисничка подршка


MySQL је више од базе података, оснивачи MySQL-а су увијек
покушавали да дају што је више могуће заједници својих корисника.
Корисници су одговорили са лојалношћу и посвећеношћу.

13
Какав ефекат ово има на пословне кориснике? Најочигледнији
ефекат је да поред стандардне подршке коју пружа MySQL, додатна
подршка се може добити од других корисника. Ако бисмо поставили
питање везано за MySQL на форуму или ИРЦ каналу у вези са базама
података, врло је вхероватно да ћемо добити одговоре за врло кратко
вријеме. Осим класичне подршке, MySQL АВ не гарантује тачност ових
одговора, али у корисничким заједницама можемо пронаћи и одличне
стручњаке који дају одличне савјете. Ову врсту подршке можемо
упоредити са пецањем, ако знамо да пецате можемо добити рибу
бесплатно из језера, ако не знамо да пецамо или нам се једноставно не
иде на језеро, увијек можемо ићи у продавницу и купити рибу. Још једна
добра страна корисничких заједница је чињеница да лако можемо
пронаћи стручњаке који би били вољни да раде за нас. Још један добар
аспект је „сигурност за опстанак“. Велика брига корисника софтвера
мањих компанија је будућност тог производа и саме компаније. Чак и када
би MySQL АВ престао да ради, корисници би одржавали програм у животу
уз помоћ изворног кода.

4.2. Недостаци

Недостатак неких SQL могућности


Ово представља више проблема у повезивању постојећих
апликација са MySQL -ом. Ако наша апликација користи било коју од
функција које MySQL нема, мораћемо да репрограмирамо те дијелове
апликације прије него што можемо да је повежемо са MySQL -ом. У неким
случајевима ово може бити исцрпљујући задатак. Многи стручњаци
вјерују да се хитно морају додати неке опције које MySQL тренутно нема.
Многи програмери су навикли да користе ове опције и оне представљају
суштински дио њиховог програмског репертоара. Овај недостатак MySQL -
а понекад може одвратити потенцијалне кориснике.
С друге стране, искуснији корисници MySQL -а навикли су да живе са
овим недостацима и чак уживају у изазову рада око њих. Због
неопходности ситуације, програмери често откривају много елегантнија
рјешења од оних које су користили до сада.

14
Они су пронашли начине да искористе могућности MySQL-а у свом
пуном потенцијалу, и без обзира на недостатке, посвећени су MySQL
дистрибуцији.
У стварности, MySQL је више него добар за изградњу базе података у
комбинацији са вјештим и креативним програмерима. Проблем настаје
када су програмери чврсто везани за неки други програм. Њихов труд у
раду са MySQL -ом не би био ни близу труду који би имали да раде са било
којим другим програмом. Ако је то случај у радној организацији из чисто
економских разлога, не би имало смисла присиљавати раднике да користе
MySQL. С друге стране, радници би могли бити срећни да раде са другим
програмом и нађу начин да превазиђу ове недостатке у веома кратком
временском периоду.

Недостатавак озбиљнијег тестирања на одређеним платформама


MySQL АВ има веома строге стандарде и увијек своје производе
провлачи кроз неколико захтјевних тестова, али ту се тестирање завршава.
Сљедећа серија тестова се дешава када се нова верзија програма преузме
са Интернета и инсталира од 20.000 корисника дневно на различитим
системима и прилагођена за рад са њиховим базама података. Током овог
процеса могу се открити разне грешке и системски проблеми који се
једноставно не могу установити унутар компаније.
Као резултат свега овога, можемо видјети да стабилност и
перформансе MySQL -а не зависе од броја корисника на одређеној
платформи. Што је већи број корисника, мање су шансе да неке критичне
грешке остану неоткривене.
Иако MySQL АВ покушава да свој производ учини што више
платформским и не фаворизује једну платформу у односу на друге,
разлика у броју корисника на одређеним платформама значи да MySQL
ради боље на неким платформама. Наравно, не треба мислити да MySQL
не ради како треба на одређеним платформама. Чак и према
информацијама добијеним од корисника, установљено је да MySQL и на
тим платформама ради прилично добро, што је заправо посљедица добро
написаног изворног кода. Добро написани изворни код има далеко веће
шансе да ради без проблема чак и на платформама које нису званично
тестиране.
15
Компликовано руковање изворним кодом
Раније је поменуто колико је важно имати приступ изворном коду
програма. Посједовање изворног кода дефинитивно омогућава велику
флексибилност у раду корисника. Али када радимо са кодом који је неко
други написао, прво морамо да га разумијемо да би нам био значајан.
MySQL сервер је релативно тежак за разумијевање, чак и искуснији С/С++
програмери имају проблема да разумију овај код. Ријетко ко се усуђује да
промијени шифру уопште. Два су разлога зашто је овај код тако сложен.
Прво, то је код сервера базе података, што значи да је код оптимизован да
боље организује податке на диску, минимизира употребу диска, убрза
приступ меморији и анализира упите.
Овакав код, без обзира колико добро написан, био би веома
сложен. Други разлог је такозвани "ефекат генијалног кода". Саму основу
изворног кода написао је Монти Виденијус, који је у програмерским
круговима добио надимак „Моцарт компјутерског програмирања“. Добар
програмер би уживао у гледању свог кода колико би особа са добрим
слухом уживала у Моцартовим дјелима. Да бисмо у потпуности разумјели
овај код, морамо имати исту инспирацију коју је Монти имао у том
тренутку и разумјети како и зашто је код написан на тај начин. Чак је и
најбољим програмерима ово било веома изазовно. Наравно, овај изазов
се може превазићи, тако да је MySQL развојни тим успио да савлада ову
виртуозност.

16
5. ЗАКЉУЧАК

MySQL је веома способан релациони систем базе података


клијент/сервер. Веома је сигуран и компатибилан са великим бројем
апликација. Такође, однос цијена/квалитет је феноменалан, не само зато
што је MySQL бесплатан, већ зато што су његови хардверски захтјеви
веома скромни. Али прије свега, треба напоменути да у свијету Linux
оперативних система MySQL све више користе друге апликације за
управљање својим интерним базама података, било да се ради о
побољшању евидентирања података, управљању колекцијама датотека, е-
маилова, адреса или нешто друго. MySQL у Linux апликацијама игра улогу
Jet Engine-a у Microsoft оперативним системима, али у већини случајева
MySQL пружа боље перформансе од Jet Engine-a.
Захваљујући ОДБЦ интерфејсу, MySQL се сада такође користи у
свијету Windows оперативних система као директна замjена за Jet Engine.
Поред техничке стране, MySQL има предност у односу на друге системе
база података отвореног кода јер је распрострањенији од осталих. Треба
додати да је MySQL много темељније тестиран и тестиран на различитим
платформама и много је лакше наћи програмера који има искуства са
MySQL него са било којим другим системом база података отвореног кода.
Међутим, MySQL још увијек не може да прати „велике момке“ свијета
комерцијалних база података. Мало је вјероватно да ће неко изабрати
MySQL, ако нема неке од функција које су му потребне.

17
6. ЛИТЕРАТУРА

1. Alexander Pachev, MySQL Enterprise Solutions, 2003


2. Janet Valade, PHP & MySQL For Dummies 3rd edition,
Computer/Tech, 2006
3. John Horn; Michael Grey, MySQL: Essential Skills, LLC Interstate
Software, 2004
4. Michael Kofler, The Definitive Guide to MySQL 5, Third Edition
(Definitive Guide), 2005
5. MySQL Administrator's Guide and Language Reference (2nd
Edition), MySQL AB, 2006
6. https://vidabytes.com/bs/
(https://vidabytes.com/bs/MySQL-karakteristike/)
7. www.wikipedia.org (https://sr.wikipedia.org/sr-el/MySQL)

18
ОЦЈЕНА МАТУРСКОГ РАДА : _________________ (____)
УСМЕНА ОДБРАНА МАТУРСКОГ РАДА : _________________ (____ )
СРЕДЊА ВРИЈЕДНОСТ ОЦЈЕНА МАТУРСКОГ РАДА: ________________ (____ )

ИСПИТНА КОМИСИЈА:
1. ПРЕДСЈЕДНИК КОМИСИЈЕ : __________________
2. ИСПИТИВАЧ : __________________
3. СТАЛНИ ЧЛАН : __________________

НАПОМЕНА:

You might also like