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

Предлог за практичан рад

Сигурно користиш неку веб-платформу за слушање музике или продају песама. Да ли ти је некада „искочила“ препорука за нову песму, a да je то било баш оно што се и теби потом допало? Није у питању случајност. Сваки од ових система проучава велике количине података – прати навике корисника и анализира, на пример, које је још песме слушао неко ко је слушао све што и ти пратиш, и онда ти препоручи баш оно што ће ти се свидети.

Најбољи начин да се упознају друге актуелне технологије је кроз практичан рад. Можеш да покушаш да креираш програм у којем се за једног корисника платформе за продају песама приказује списак свих песама које су купили други чланови платформе који су купили бар једну исту песму као и он.

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

Сваки пут када треба да креирамо програм који ради са подацима, процес решавања морамо да разбијемо на два дела:

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

  • креирање програма који користи креирану базу у који је укључена претходно урађена анализа података употребом различитих могућности упита SELECT.

У оквиру курса Базе података за четврти разред гимназија за ученике са посебним способностима за рачунарство и информатику је детаљно описано како се добија дијаграм ентитета и веза за базу података компаније за продају музичких композиција (углавном песама).

На следећој слици може да се види комплетан дијаграм ентитета и веза који је основа за креирање базе података која ће имати 11 табела.

../_images/slika_12_2a.jpg

У поглављу „Продаја дигиталних композиција – база“ у оквиру истог курса постоји много задатака који се решавају писањем упита SELECT, који могу да се уграде у веб-странице веб-апликације.

Детаљно објашњење како се креирају веб-апликације употребом библиотеке Flask може да се нађе у оквиру курса Базе података, рачунарске мреже и серверско веб-програмирање за четврти разред гимназије природног смера.

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

Свака иоле сложенија веб-апликација укључује неколико различитих фајлова, па је логична конвенција да се све оне чувају унутар једног фолдера намењеног тој веб-апликацији. За први пример веб-апликације која се повезује на базу података направићемо фолдер под именом 01_database и у њему ћемо креирати фајл app.py са програмским кодом.

У исти фолдер треба да ставимо и базу података. У овом примеру користимо базу података компаније за продају музичких композиција, коју можете да преузмете овде:

music.db

Веб-апликација је заправо HTML страница па је неопходно да креирамо шаблон templates/artists.html који ће служити да се у HTML листи прикажу подаци из низа artists који формира наш Flask програм.

<!DOCTYPE html>
<html>
    <head>
        <title>Artists</title>
    </head>
    <body>
        <h1>Artists</h1>
        <ol>
        {% for artist in artists %}
            <li>{{ artist[0] }}</li>
        {% endfor %}
        </ol>
    </body>
</html>

Следи комплетан програмски код app.py који се повезује на базу и извршава упит SELECT којим се приказују називи првих 10 извођача.

import sqlite3
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/artists')
def artists():
con = sqlite3.connect('music.db')

cur = con.cursor()
cur.execute("SELECT Name FROM artist LIMIT 10")

artists = cur.fetchall()
return render_template("artists.html", artists = artists)

Фајлове са програмским кодом попут овог можете да креирате у било ком едитору текста као што је Notepad. Када чувате фајл, потребно је да:

  • изаберете All Files под Save as type,

  • наведете назив фајла са екстензијом .py, тачније app.py.

../_images/slika_12_2b.jpg

Следећа слика илуструје фолдер у којем се налази наша веб-апликација.

../_images/slika_12_2c.jpg

Да бисмо имали тачну путању до фајла која нам је неопходна да покренемо програм, можемо да употребимо опцију Copy adress када урадимо десни клик мишем у прозору File Explorer.

../_images/slika_12_2d.jpg

Након тога у командној линији се постављамо у директоријум у коме смо креирали датотеку app.py тако што напишемо:

cd naziv_fajla_sa_putanjom

Након покретања Flask апликације командом flask run, апликацији можемо приступити из прегледача веба.

../_images/slika_12_2z.jpg

У адресну линију прегледача, на пример прегледача Chrome, унети адресу http://127.0.0.1:5000/artists, како је приказано на следећој слици.

../_images/slika_12_2e.jpg

На следећој слици је приказан изглед апликације.

../_images/slika_12_2g.jpg
(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+