Припрема за пројектни задатак¶
Кроз рад на пројектном задатку треба да се покаже да су стечена основна знања о техникама пројектовања, програмирања и коришћења база података као одговора на пословну потребу за информационим системима.
Сваки пут када треба да напишемо програм који ради са подацима, морамо процес решавања да започнемо пажљивим пројектовањем, а затим и креирањем базе података.
Најбољи начин да се разуме процес пројектовања и креирања база података јесте упознавање са што већим бројем примера. До сада је у материјалима приказано више примера база података различитих тежина. Неки примери су до краја решени и објашњени, а неки су остављени за самосталан рад. Кроз практичан рад на разноврсним примерима може да се прође све од пословног захтева до креирања конкретне базе података и да се стекну неопходне вештине за израду првог дела пројектног задатка.
У материјалима смо до сада видели дијаграме ентитета и веза, као и комплетно креиране следеће базе:
део базе података за библиотеку у којем се чувају подаци о свим књигама са 5 табела,
комплетну базу података за библиотеку са 10 табела,
базу података за евиденцију издатих возачких дозвола,
базу података за продајни салон аутомобила,
базу података за колекцију филмова (део базе неке онлајн платформе за пуштање филмова),
Као основа за задатке за самосталан рад приказани су креирани дијаграми ентитета и веза за још три базе података:
базу података за продавницу (део о производима, произвођачима, категоријама и ценама),
базу података за компанију за продају дигиталних композиција,
базу података за домаће задатке.
Након што креирамо базу података, следи писање програма, а то је процес који раздвајамо на два дела:
анализа података писањем упита SELECT или формирање неке друге команде језика SQL,
креирање програма који користи креирану базу у који је укључен претходно формиран упит SELECT или више команди језика SQL.
Узмимо пример са базом података за библиотеку. Библиотека размишља о набавци још књига неких аутора. Да би донели одлуку о новим набавкама, прво је потребно да провере стање са примерцима књига које већ имају од тих писца. Написати програм који приказује број примерака сваке књиге аутора чије се име и презиме унесе.
Како треба да се употреби команда упитног језика SQL унутар програмског кода писаног другим програмским језиком, први корак је да се конструише упит. Упит може да се напише и тестира за конкретног аутора.
SELECT COUNT(inventarski_broj), naziv
FROM primerci JOIN knjige ON (primerci.id_knjige=knjige.id_knjige)
JOIN autori_knjige ON (autori_knjige.id_knjige=knjige.id_knjige)
JOIN autori ON (autori_knjige.id_autora=autori.id_autora)
WHERE ime = 'Marko' AND prezime = 'Vidojkovic'
GROUP BY naziv
Када је упит тестиран, може да се укључи у програм, на пример процедуру која остаје сачувана у систему Microsoft SQL Server Management Studio.
CREATE PROCEDURE knjige_autora @ime_autora VARCHAR(15), @prezime_autora VARCHAR(15)
AS
SELECT COUNT(inventarski_broj), naziv
FROM primerci JOIN knjige ON (primerci.id_knjige=knjige.id_knjige)
JOIN autori_knjige ON (autori_knjige.id_knjige=knjige.id_knjige)
JOIN autori ON (autori_knjige.id_autora=autori.id_autora)
WHERE ime = @ime_autora AND prezime = @prezime_autora
GROUP BY naziv
Процедура може да се позове по потреби за различите ауторе.
EXEC knjige_autora @ime_autora = 'Marko', @prezime_autora = 'Vidojkovic'
EXEC knjige_autora @ime_autora = 'Dusa', @prezime_autora = 'Vukovic'
На исту тему могу да се разраде и сложенији програми. За библиотеку може, на пример, да буде значајан извештај којим ће за сваког аутора чије књиге има у понуди видети колико има примерака ког наслова. Овај програм може још да се надогради тако што ће списак аутора да се сортира по броју примерака које имамо у библиотеци, па да се разматра набавка још наслова оних аутора чијих књига има највише или најмање. Одлука може да се доноси и по броју позајмица, а не по броју постојећих примерака.
Као припрема за рад на пројектном задатку, може да се узме једна база података и да се прати кроз неколико поглавља. На пример, узети део базе података у којем се чувају подаци о свим књигама у библиотеци који има пет табела. Када се заврши анализа саме базе и прођу сви примери упита над њом у оквиру првог поглавља „Релационе базе података“, могу да се прескоче примери осталих база и да се пређе на примере са истом базом у другом поглављу „Писање програма унутар СУБП-а“, а затим одмах и на примере са истом базом у трећем поглављу „Писање програма у програмском језику вишег нивоа“.