Садржај
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 База података за продавницу - нерешени пројектни рад

Процедуре и тестирање програма

Док програмирамо, могуће су разне грешке. Важно је да наш програм проради и да ради тачно оно што је у плану. Да бисмо били сигурни, потребно је да тестирамо сваки програм који напишемо и да отклонимо све грешке и недостатке уколико видимо да их има.

Сви приказани примери су у вези са табелом autori која је део базе података за библиотеку. Програмски код, као и команде језика SQL, пише се и покреће када се кликне New Query након што се покрене систем SQL Server и кликне на креирану базу Biblioteka_knjige у прозору Object Explorer. Фајл са упитима SQLQuery1.sql може, а и не мора да се сачува.

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

../_images/slika_510a.jpg

Вратимо се на пример процедуре за унос података о аутору. Док пишемо процедуру, може да се догоди да нешто изоставимо или погрешно напишемо. На пример, у следећем блоку програмског кода недостаје тип податка код другог параметра.

CREATE PROCEDURE unos_autora2
@id_autora INT, @ime_autora, @prezime_autora varchar(15)
AS
INSERT INTO autori
VALUES (@id_autora, @prezime_autora, @ime_autora)

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

../_images/slika_514b.jpg

Није ретко, посебно када пишемо програме који су дугачки, да грешимо приликом писања. У следећем коду на једном месту пише @prezime, а на другом @prezime_autora, а сигурно смо мислили на исту ствар.

CREATE PROCEDURE unos_autora2
@id_autora int, @ime_autora varchar(15), @prezime varchar(15)
AS
INSERT INTO autori
VALUES (@id_autora, @ime_autora, @prezime_autora)

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

../_images/slika_514c.jpg

Када програмирамо, неке грешке које направимо нису одмах видљиве. Узмимо, на пример, следећи програмски код.

CREATE PROCEDURE unos_autora2
@id_autora INT, @ime_autora INT, @prezime_autora varchar(15)
AS
INSERT INTO autori
VALUES (@id_autora, @prezime_autora, @ime_autora)

Креирање процедуре ће бити успешно.

../_images/slika_514d.jpg

Тек када покушамо да позовемо процедуру и унесемо податке о новом аутору, приказује се порука да постоји грешка.

EXEC unos_autora2 @id_autora=50, @ime_autora='Vanja', @prezime_autora='Bulic'

Приликом креирања процедуре је написано да је тип података INT за @ime_autora, и наравно да променљива не може да садржи име Вања.

../_images/slika_514e.jpg

Програмски код процедуре може да се измени и да се исправи грешка када изаберемо ставку Modify са менија који се појави када кликнемо десни тастер миша над процедуром у прозору Object Explorer. Након што се унесу измене, важно је да се поново кликне на дугме Execute да би измене остале сачуване у систему. Измењену процедуру, наравно, треба поново тестирати.

../_images/slika_514f.jpg

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

CREATE PROCEDURE unos_autora3
    @id_autora int, @ime_autora varchar(15), @prezime_autora varchar(15)
    AS
    INSERT INTO autori
    VALUES (@id_autora, @prezime_autora, @ime_autora)

Команда која позива процедуру се такође успешно извршава и не добијамо никакву поруку о грешци.

EXEC unos_autora3 @id_autora=50, @ime_autora='Vanja', @prezime_autora='Bulic'

Тек када проверимо податке који су унети, можемо да видимо да је презиме унето у колону ime, а име у колону prezime.

SELECT * FROM autori WHERE id_autora=50
../_images/slika_514g.jpg

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

DELETE FROM autori WHERE id_autora=50

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

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