Üheks strateegiaks on paluda genereerida keelemudelil väike interaktiivne näide, mis oleks üks html fail ja kus võib kasutada HTMLi, CSSi, jQueryt, JavaScripti ja Bootstrapi. Sellise lehe vaatamiseks piisab, kui see html fail kettale salvestada ja mõnes veebilehitsejas avada.

Siin on näiteid sellistest interaktiivsetest õpiobjektidest.
 
Kõik need on loodud kasutades Geminit ja kasutades Google AI stuudiot.

Võib vaja minna rohkem kui üks viip e prompt:
  1. Keelemudel genereerib koodi paremini, kui seda küsida väiksemate sammudega.
  2. Alati ei puudi genereeritud kood kohe töötada.
  3. Koodi genereerimise tulemuse vaatamisel tekivad uued ideed.

Siin on näited viipadest, mida kasutasin B+ puu õpiobjekti loomiseks.

Viip 1:

# Roll
Loominguline õppedisainer.
 
# Juhised
Koosta visuaalselt pilkupüüdev, kaasaegne, mugavalt kasutatav ja interaktiivne veebileht, mis võimaldab üliõpilastel konkreetse näite põhjal saada aru B+ puu indeksist.
Kasutaja peab aru saama, milline on selle ülesehitus ning millises olukorras ning kuidas seda kasutatakse.
Kasutaja peaks nägema, kuidas tema päringute peale loetakse andmebaasi füüsilisel tasemel indeksiplokke ja tabeliplokke.
Kasuta konteksti all olevat näidet.
 
Kasutada võib HTMLi, CSSi, Bootstrapi, JavaScripti ja jQueryt. 
Kasutajaliides peab olema eesti keeles.
Ära kasuta "Title Case" - eestikeelsel pealkirjal on esimese sõna esimene täht suurtäht, edasi tulevad väiketähed.
 
Tulemus peab töötama ühtemoodi kõigil põhilistel veebilehitsejatel (Chrome, Firefox, Opera, Edge, Safari).
Tulemus peab jälgima Euroopa digiligipääsetavuse standardi EN 301 549 nõudeid. 
Tulemus peab olema mobiilisõbralik.

# Kontekst
 
CREATE TABLE Tellimus (tellimus_id INTEGER GENERATED ALWAYS AS IDENTITY,
tellimuse_seisundi_liik_kood SMALLINT NOT NULL DEFAULT 1,
klient_kood INTEGER NOT NULL,
CONSTRAINT pk_tellimus PRIMARY KEY (tellimus_id));
 
CREATE TABLE Tellimuse_rida (tellimus_id INTEGER NOT NULL,
kaup_kood VARCHAR(10) NOT NULL,
kogus SMALLINT NOT NULL,
CONSTRAINT pk_tellimuse_rida PRIMARY KEY (tellimus_id, kaup_kood),
CONSTRAINT fk_tellimuse_rida_tellimus FOREIGN KEY (tellimus_id) REFERENCES Tellimus (tellimus_id) ON DELETE CASCADE);
 
Eeldame, et primaarvõtme kitsenduste alusel luuakse B+ puu indeks.
Kui indeksipuu sõlmede vahel on viited, siis too need visuaalselt välja.

Lisa tabelitesse näiteandmed - tellimus vähemalt 20 rida, tellimuse rida vähemalt 50 rida.

Tee nii, et tabeliplokkides ei oleks read tingimata tellimus_id järgi sorteeritud. 

Demonstreeri indeksi kasutamist või mittekasutamist järgmiste päringute korral:
 
* Ühe rea otsimine indeksi alusel (unique index scan)
SELECT tellimus_id, klient_kood, loomise_aeg FROM Tellimus WHERE tellimus_id=10;

Tee nii, et kasutaja saab ise sisestada päringutes kasutatavad väärtused (literaalid). 
Kasutaja võib saada sisestada mistahes sobivat tüüpi väärtuse.
Kui selliste väärtustega ridu ei ole, siis päring peab leidma null rida.

# Formaat
Esita tulemus ühe failina.
 
 
Viip 2:
 
# Juhised
Illustreeri lisaks järgmiste päringute täitmist. Päringute literaale peab saama ise sisestada.
 
* Ridade vahemiku otsimine indeksi alusel (index range scan)
SELECT tellimus_id, klient_kood, loomise_aeg FROM Tellimus WHERE tellimus_id BETWEEN 10 AND 15;
 
* Päringu tulemuses on enamik tabeli ridu - indeksit ei ole mõtet kasutada. Selle asemel võiks lugeda kõiki tabeli plokke.
SELECT tellimus_id, klient_kood, loomise_aeg FROM Tellimus WHERE tellimus_id<>10;
 
* Lisa hoiatus, et tegemist on põhimõtte illustratsiooniga ning kui tabelis ongi väga vähe andmeid (nt 20 või 50 rida),
siis praktikas võib andmebaasisüsteem alati kasutada tabeli täielikku läbiskaneerimist.
 
Ära midagi muud muuda

# Formaat
Tulemuse uus täisversioon.