Za potrebe organizacije i registrovanja rezultata golf mečeva tokom nadmetanja na međunarodnom turniru u ovom sportu potrebno je da se kreira baza podataka.  

Dijagram baze je dat na slici:

SLIKA dijagrama baze - golf kup - ali samo deo, kao u pravilniku za maturu

Rešavanje zadatka - kao na času (12.09.2005) - koristićemo MS SQL Server i SQL Server Management Studio:

(1) Kreiranje baze:

CREATE DATABASE Golferi;

(2) Da bi se radilo sa datom bazom koristimo:

USE Golferi;

(3) Kreiranje prve tabele - po izboru učenika to je Partija:

CREATE TABLE Partija
(
    PartijaID INT PRIMARY KEY IDENTITY,
    TerenID INT,
    Datum DATE,
    VremePocetka TIME,
    VremeZavrsetka TIME,
    PrviIgracID INT,
    DrugiIgracID INT
);

Dodatno objašnjenje:

IDENTITY - koristi se za automatsko unošenje brojeva prilikom unosa podataka u MS SQL SERVERU

 (u MySQL je to AUTO_INCREMENT, a u Access-u je to AUTOINCREMENT)

foreign key se ne postavlja jer još nismo kreirali tabele koje su nam za to potrebne (Teren i Igrac)


(4) Kreiranje sledeće tabele - Grad:

CREATE TABLE Grad
(
    GradID INT PRIMARY KEY IDENTITY,
    Grad nVARCHAR(100),
    PozivniBroj VARCHAR(10),
    PostanskiBroj INT,
    BrojStanovnika INT
);

Dodatno objašnjenje:

VARCHAR(100) - za unos slova, engleski alfabet, maksimalno 100, ali u memoriji zauzima samo onoliko slova koliko je uneto od strane korisnika

*Pozivni broj je ovog tipa jer počinje sa nulom, koja bi bila odsečena ako bi se koristio numerički tip podataka

*obično koriatimo za email, brojevi telefona i slično 

nVARCHAR(10) - za unos slova, unicode, ćitrilica, dijakritici č, ć, š, ..., maksimalno 100, ali u memoriji zauzima samo onoliko slova koliko je uneto od strane korisnika

CHAR(100) - za unos slova, engleski alfabet, u memoriji zauzima 100 slova bez obzira koliko je slova uneto od strane korisnika


(5) Kreiranje sledeće tabele - Teren:

CREATE TABLE Teren
(    
    TerenID INT PRIMARY KEY IDENTITY,
    Teren nVARCHAR(200),
    Adresa nVARCHAR(255),
    GradID INT,
    KontaktTelefon VARCHAR(200),
  CONSTRAINT fk_Teren_Grad FOREIGN KEY (GradID) REFERENCES Grad(GradID)
);

Dodatno objašnjenje:

CONSTRAINT - za unos ograničenja, standardni način bez obzira da li se koristi MS SQL Server, MySQL, Access, ...

    • mora da ima naziv koji je jedinstven na nivou kompletne baze
    • nakon toga se navodi koja je vrsta ograničenja - foreign key u ovom slučaju
    • nakon toga se u zagradama navodi naziv dela tabele koji je u pitanju i koji je pre toga definisan imenom i tipom - GradID u ovom slučaju
    • pošto je u pitanju strani ključ, navodi se na šta se odnosi - na koju tabelu i koji deo u njoj - naziv tabele i omah pored je u zagradi naziv kolone - Grad(GradID)

(6) Kreiranje sledeće tabele - Igrac:

CREATE TABLE Igrac
(    
    IgracID INT PRIMARY KEY,
    Ime nVARCHAR(200),
    Prezime nVARCHAR(200),
    Adresa  nVARCHAR(200),
    GradID INT,
    Email VARCHAR(100),
    Telefon VARCHAR(100),
    CONSTRAINT fk_Igrac_Grad FOREIGN KEY (GradID) references Grad(GradID)
);

Dijagram baze i tabela koje smo do sada kreirali:

- slika dijagrama baze - ali tabela *Partija* nije povezana sa ostalima jer nisu definisani strani ključevi u njoj

Ovde se vidi - slika dijagrama baze - ali tabela Partija nije povezana sa ostalima jer nisu definisani strani ključevi u njoj.


Sada ćemo da izmenimo tabelu Partija da bi definisali ključeve u njoj:

(7) Izmena tabele - Partija:

ALTER TABLE Partija
 ADD CONSTRAINT fk1 FOREIGN KEY (PrviIgracID) REFERENCES Igrac(IgracID);
 
 ALTER TABLE Partija
 ADD CONSTRAINT fk2 FOREIGN KEY (DrugiIgracID) REFERENCES Igrac(IgracID);
 
 ALTER TABLE Partija
 ADD CONSTRAINT fk3 FOREIGN KEY (TerenID) REFERENCES Teren(TerenID);

Napomena:

Server baze podataka ne radi automatsko osvežavanje postavki, već u nekim vremenskim intervalima.

Prilikom izmena tabela u bazi, postoji mogućnost da se treba malo sačekati ili uraditi refresh



Šta je radila Suprotna grupa (17.09) ?

ISTI ZADATAK KAO ZA PRETHODNU GRUPU - SAMO SE NAZIV BAZE RAZLIKUJE I POSTOJI MALA VARIJACIJA OKO TIPOVA PODATAKA U REŠENJU.

Za potrebe organizacije i registrovanja rezultata BILIJARSKIH mečeva tokom nadmetanja na međunarodnom turniru u ovom sportu potrebno je da se kreira baza podataka.  

- slika table kao na času -



Last modified: Wednesday, 1 October 2025, 2:43 PM