Садржај
1 Релационе базе података
1.0 1 Релационе базе података
1.0 2 Релационе базе података - квиз
1.0 3 Веза један према више
1.0 4 Веза један према више - квиз
1.0 5 Веза више према више
1.0 6 Веза више према више - квиз
1.0 7 Алат за пројектовање
1.0 8 СУБП
1.0 9 Креирање базе на други начин
1.0 10 Још неке SQL команде
1.1 1 Упит SELECT
1.1 2 Упит SELECT - упит из једне табеле - задаци
1.1 3 Упит SELECT - упит из једне табеле - квиз
1.1 4 Упит SELECT - функције и подупити - задаци
1.1 5 Упит SELECT - функције и подупити - квиз
1.1 6 Упит SELECT - спајање - задаци
1.1 7 Упит SELECT - спајање - квиз
1.1 8 Упит SELECT - нерешени задаци
1.2 1 База података за библиотеку - креирање базе
1.2 2 БП Библиотека - Упит SELECT - упит из једне табеле - задаци
1.2 3 БП Библиотека - Упит SELECT - упит из једне табеле - нерешени задаци
1.2 4 БП Библиотека - Упит SELECT - спајање - задаци
1.2 5 БП Библиотека - Упит SELECT - спајање - нерешени задаци
1.2 6 БП Библиотека - Упит SELECT - функције и подупити - задаци
1.2 7 БП Библиотека - Упит SELECT - функције и подупити - нерешени задаци
1.3 1 База података за возачке дозволе - креирање базе
1.3 2 БП Возачке дозволе - Дијаграм и подаци - практичан рад
1.3 3 БП Возачке дозволе - Упит SELECT - задаци
1.3 4 БП Возачке дозволе - Упит SELECT - нерешени задаци
1.4 1 БП Филмови - Креирање базе - практични рад
1.4 2 БП Филмови - Дијаграм и подаци - практични рад
1.4 3 БП Филмови - Упит SELECT - задаци
1.4 4 БП Филмови - Упит SELECT - нерешени задаци
2 Писање програма унутар система за управљање базама података
2.0 1 Процедуре и команда INSERT
2.0 2 Процедуре и команде UPDATE и DELETE
2.0 3 Процедуре и команде INSERT, UPDATE, и DELETE - квиз
2.0 4 Процедуре и тестирање програма
2.0 5 Процедуре и упит SELECT
2.0 6 Процедуре и курсор за упит SELECT
2.1 1 Функције и упит SELECT
2.1 2 Процедуре и функције са упитом SELECT - квиз
2.1 3 Процедуре и функције са упитом SELECT из једне табеле - задаци
2.1 4 Процедуре и функције са упитом и групним функцијама - задаци
2.1 5 Процедуре и функције са упитом SELECT са спајањем табела - задаци
2.1 6 Процедуре и функције са упитом - нерешени задаци
2.1 7 Формат XML
2.2 1 База података за библиотеку - Процедуре, функције и поређење различитих решења
2.2 2 Процедуре, функције и поређење различитих решења
2.2 3 Процедуре и функције са упитом SELECT из једне табеле - вежбање
2.2 4 Процедуре и функције са упитом SELECT са спајањем табела - вежбање
2.2 5 Процедуре и функције са упитом и групним функцијама и подупитима - вежбање
2.2 6 Процедуре и функције са упитом SELECT - нерешени задаци
2.3 1 База података за возачке дозволе - процедуре и функције са упитом SELECT - вежбање
2.3 2 База података за возачке дозволе - процедуре и функције - нерешени задаци
2.4 1 База података за филмове - процедуре и функције са упитом SELECT - вежбање
2.4 2 База података за филмове - процедуре и функције - нерешени задаци
3 Писање програма у програмским језицима вишег нивоа
3.0 1 Писање програма у развојном окружењу Visual Studio
3.0 2 Писање програма у развојном окружењу Visual Studio - практичан рад
3.0 3 Писање програма у развојном окружењу Visual Studio - процедуре
3.0 4 Писање програма у развојном окружењу Visual Studio - квиз
3.1 1 Угнежђени упит SELECT унутар програма
3.1 2 Угнежђени упит SELECT унутар програма - задаци
3.1 3 Позив процедуре унутар програма
3.1 4 Позив креиране функције унутар програма
3.1 5 Програм са угнежђеним командама у развојном окружењу Visual Studio - квиз
3.1 6 Програм са угнежђеним упитом SELECT из једне табеле - вежбање
3.1 7 Програм са угњежђеним упитом и групним фунцкијама - вежбање
3.1 8 Програм са угнежђеним упитом SELECT са спајањем табела - вежбање
3.1 9 Програм са класом
3.1 10 Програм са угнежђеним упитом - нерешени задаци
3.1 11 Програм са угнежђеним командама INSERT, UPDATE, и DELETE
3.2 1 База података за библиотеку - програм са угнежђеним упитом SELECT из једне табеле - задаци
3.2 2 База података за библиотеку - програм са угнежђеним упитом SELECT - вежбање
3.2 3 База података за библиотеку - програм са угнежђеним упитом - нерешени задаци
3.3 1 База података за возачке дозволе - програм са угнежђеним упитом SELECT - вежбање
3.3 2 База података за возачке дозволе - програм са угнежђеним упитом - нерешени задаци
3.4 1 База података за филмове - програм са угнежђеним упитом SELECT - вежбање
3.4 2 База података за филмове - програм са угнежђеним упитом - нерешени задаци
4 Друга софтверска решења - СУБП Oracle
4.0 1 Oracle Apex и језик PL/SQL
4.0 2 Језик PL/SQL - задаци
4.0 3 Језик PL/SQL - квиз
4.0 4 Језик PL/SQL – нерешени задаци
4.0 5 Наредбе гранања
4.0 6 Наредбе гранања - нерешени задаци
4.0 7 Наредбе циклуса
4.0 8 Наредбе циклуса - нерешени задаци
4.1 1 База података за библиотеку - практичан рад
4.1 2 Наредба SELECT INTO
4.1 3 Наредба SELECT INTO - zadaci
4.1 4 Наредба SELECT INTO - квиз
4.1 5 Наредба SELECT INTO - вежбање
4.1 6 Наредба SELECT INTO - нерешени задаци
4.2 1 Курсори - Узимање података из више редова
4.2 2 Курсори - задаци
4.2 3 Различити начини да се реши проблем
4.2 4 Курсори - нерешени задаци
4.2 5 Курсор са параметром
4.2 6 Курсор са параметром - задаци
4.2 7 Курсор са параметром - нерешени задаци
4.2 8 Курсори - квиз
4.2 9 Курсори и гранање - задаци
4.2 10 Курсори - вежбање
4.2 11 Тренутне позајмице члана - пример
4.2 12 Спискови књига - пример
4.3 1 Процедуре и функције у СУБП-у Oracle Apex
4.3 2 Процедуре и функције - задаци
4.3 3 Процедуре и функције - нерешени задаци
4.3 4 Позајмице једне књиге - пример
4.3 5 Тренутне позајмице - пример
4.3 6 Процедуре и друге SQL команде
4.3 7 Тригери
4.3 8 Списак свих објеката у бази података
4.4 1 Креирање апликације помоћу алата App Builder
4.4 2 Додатне опције App Builder алата
4.4 3 Покретање апликације
4.4 4 Креирање нових страница у апликацији
4.4 5 Покретање раније креиране процедуре
4.4 6 Алат App Builder и XML
4.5 1 База података за салон аутомобила у СУБП-у Oracle Apex - 1. део
4.5 2 База података за салон аутомобила у СУБП-у Oracle Apex - 2. део
4.5 3 База података за салон аутомобила у СУБП-у Oracle Apex - 3. део
4.5 4 База података за продавницу - нерешени пројектни рад

Систем за управљање базама података

Постоји више програма који нуде могућности креирања база података и рада са њима. Набројаћемо овде укратко најважније и биће описано оно што им је заједничко. У једном од алата ћемо детаљно проћи практично процес креирања базе података за коју смо већ припремили пројекат, тј. логички модел.

Приказани пример базе података за библиотеку ћемо касније употребити тако што ћемо креирати програме у којима ћемо јој приступати.

Алат Microsoft SQL Server Management Studio може бесплатно да се преузме са следеће адресе:

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

Софтверски систем помоћу кога се формира и користи база података назива се систем за управљање базама података, скраћено СУБП (енгл. database management system, скраћено DBMS). Најпознатији системи за управљање базама података су:

  • Oracle Database,

  • MySql,

  • Microsoft SQL Server,

  • PostgreSQL,

  • IBM DB2,

  • Redis,

  • SQLite итд.

Иако видимо да постоје различити системи различитих произвођача, основни принципи рада у њима су веома слични и током овог курса ћемо се држати онога што је заједничко и са мањим изменама применљиво у свим системима.

Системи за управљање базама података својим корисницима пружају све услуге рада са подацима. Корисници су најчешће други програми, тј. апликације (на пример, пословне, мобилне или веб-апликације), али и појединци који приступају подацима у облику у коме су подаци записани у бази (на пример, стручњаци за анализу података који у неким случајевима непосредно прегледају и користе податке из базе). Могућ је и сценарио у којем неколико СУБП-ова међусобно комуницирају, тј. један СУБП приступа подацима из другог СУБП-а.

Системи за управљање се брину о смештању података тако да обезбеде:

  • могућност што ефикаснијег приступа тим подацима у циљу њихове анализе, обраде и ажурирања,

  • интегритет тих података (спречавају настанак грешака, попут смештања неконзистентних и некоректних података),

  • могућност истовременог коришћења података од стране већег броја корисника,

  • могућност заштите приступа подацима и слично.

Корисници база комуницирају са СУБП-ом коришћењем специјализованих језика у којима формулишу захтеве (тзв. упите) на које СУБП одговара. Такви језици се називају упитним језицима, а најпознатији и најраспрострањенији упитни језик је SQL (енгл. structured query language).

СУБП уводи поделу посла између програмера који праве сам СУБП и програмера који праве апликације (апликативни програмери). То значи да апликативни програмер упите формулише на апстрактном нивоу и не мора да зна све детаље о томе како СУБП те податке држи у меморији и датотекама. Апликативни програмер не мора да се бави детаљима ефикасног смештања података и алгоритмима приступа подацима, јер је СУБП тај који на основу упита одређује најефикаснији начин да се одређен упит изврши и да апликација добије податке које је захтевала.

Упитни језици су декларативни, што значи да се само описује који су подаци потребни, а СУБП је тај који аутоматски одређује како је најбоље доћи до тих података.

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

Употребом алата SQL Server Management Studio креираћемо базу података која може да се посматра као део базе података за библиотеку у којој се складиште подаци о свим примерцима књига које се налазе у библиотеци.

Кликнути десни тастер миша над Databases у прозору Object Explorer и изабрати New Database…

../_images/slika_108a.jpg

Унети назив нове базе података и кликнути дугме OK.

Уколико си у трећем разреду креирао базу података за библиотеку вероватно је већ имаш на рачунару и важно је да се назив ове нове, мање базе, разликује. Као што смо већ рекли, кроз овај мањи пример обнављамо најважније о релационим базама података.

../_images/slika_108b.jpg

Новокреирана база података се појавила на списку у прозору Object Explorer.

../_images/slika_108c.jpg

Кликнути дугме New Query испод главног падајућег менија. Обратити пажњу на назив базе података доле лево у односу на дугме New Query. Уколико већ постоји више база података у овом алату зато што је раније коришћен, потребно је изабрати новокреирану.

../_images/slika_108d.jpg

Прво извршити све CREATE TABLE команде, једну по једну.

Редослед је битан! Пре креирања табеле која има страни кључ, неопходно је креирати табелу на коју она показује.

Све команде могу да се истовремено прекопирају, али се свака појединачно прво означи мишем и за сваку означену команду се кликне Execute, као што је приказано на следећој слици.

../_images/slika_108e.jpg

Након сваке успешно извршене команде појави се одговарајућа порука.

../_images/slika_108f.jpg

Након што се свака команда изврши, све табеле ће остати сачуване у бази података за даљу употребу. Фајл SQLQuery1.sql може, а и не мора да се сачува.

Следе све CREATE TABLE команде за табеле базе података за библиотеку.

CREATE TABLE autori
( id_autora INT PRIMARY KEY,
ime VARCHAR(15) NOT NULL,
prezime VARCHAR(15) NOT NULL )

CREATE TABLE izdavaci
( id INT PRIMARY KEY,
naziv VARCHAR(40) NOT NULL UNIQUE,
adresa VARCHAR(50),
veb_sajt VARCHAR(50) UNIQUE)

CREATE TABLE knjige
( id_knjige INT PRIMARY KEY,
naziv VARCHAR(50) NOT NULL,
id_izdavaca INT NOT NULL REFERENCES izdavaci(id) )

CREATE TABLE primerci
( inventarski_broj INT PRIMARY KEY,
id_knjige INT NOT NULL REFERENCES knjige(id_knjige) )

CREATE TABLE autori_knjige
(id_autora INT REFERENCES autori(id_autora),
id_knjige INT REFERENCES knjige(id_knjige),
PRIMARY KEY (id_autora, id_knjige) )

Након што су све табеле креиране, појављују се на списку у прозору Object Explorer. Уколико се не виде, потребно је кликнути Refresh.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+