SeQueL


O projekte o Motivácia o Dátový model o Zbierka úloh o Didaktický test o Autori

O projekte

lsalalalalalaalal

Motivácia

Predstavte si, že máte spraviť program na evidovanie študentov, učiteľov a predmetov, ktoré študujú , učia. Mohli by sme použiť viaceré prístupy k tomuto problému. Napríklad mohli by sme si spraviť program v Pascale alebo v niektorom inom vyššom programovacom jazyku. Ale pri takejto aplikácii potrebujeme pracovať s veľkým objemom dát(tisíckami údajov). Mohli by sme to ukladať do súborov v nejakej pevne danej štruktúre ale zase by sme narazili na problém managovania týchto dát. Museli by sme vyriešiť problém ukladania, triedenia, vyhľadávania, mazania údajov.

Jedným z efektívnych prístupov, je použiť v takomto prípade nejaký Databázový stroj a jazyk SQL. Klasická databáza nám už výššie spomínané problémy umožňuje jednoducho riešiť. Po zvládnutí nasledujúcich príkladov by ste mali túto úlohu vedieť vyriešiť pod ľubovoľným databázovým strojom.

Dátový model

V nasledujúcich príkladoch budeme používať dátový model, ktorý vidíte na nasledujúcom obrázku.

Zbierka úloh

Úloha číslo 1
Vytvorte tabuľku osoba podľa dátového modelu a zvoľte vhodné dátové typy pri jednotlivých stĺpcoch.
CREATE TABLE Osoba (
  id                INTEGER       NOT NULL,
  meno              VARCHAR(20)   NOT NULL,
  priezvisko        VARCHAR(20)   NOT NULL,
  rodcis            VARCHAR(11)   NOT NULL,	
  adresa            VARCHAR(20)   NOT NULL
  PRIMARY KEY(id)
);

Úloha číslo 2
Naplňte tabuľku týmto záznamami
idmenopriezviskorodcisadresa
1BrunoBruňo801231/6541Medicka 132
3RadoBruňo991231/6321Medicka 158
5PeterMokry991221/6329Hlavna 158
6PeterSuchy991231/7721Trebisovska 15
7JanoPolosuchy451128/8888Trapna 23
INSERT INTO OSOBA (id,meno,priezvisko,rodcis,adresa) 
       VALUES(1,'Bruno','Bruňo','801231/6541','Medicka 132');
...
Úloha číslo 3
Vypíšte údaje z tabuľky osoba:
a) všetky
b) všetkých Petrov
c) všetky utriedené podľa priezviska
a) SELECT * FROM OSOBA
b) SELECT * FROM OSOBA WHERE meno='Peter'
c) SELECT * FROM OSOBA ORDER BY priezvisko
Úloha číslo 4
V zázname s id 6 upravte pole adresa na hodnotu 'Cintorínska 3' .
UPDATE OSOBA SET adresa = 'Cintorínska 3' WHERE id=6;
Úloha číslo 5
Z tabuľky OSOBA vymažte všetky záznamy kde pole priezvisko má hodnotu 'Bruňo'.
DELETE FROM OSOBA  WHERE priezvisko='Bruňo'
Úloha číslo 6
Vytvorte tabuľky Ucitel a Student a vytvorte aj referenciu na tabuľku Osoba.
CREATE TABLE Student (
  id                INTEGER       NOT NULL,
  datod             DATE          NOT NULL,
  datdo             DATE          
  PRIMARY KEY(id)
);

ALTER TABLE Student ADD 
  CONSTRAINT stud_osoba FOREIGN KEY (id)
  REFERENCES Osoba ON DELETE CASCADE;


CREATE TABLE Ucitel (
  id                INTEGER       NOT NULL,
  plat              LONG                  ,
  titul             VARCHAR(10)           ,
  idKatedra         INTEGER 
  PRIMARY KEY(id)
);

ALTER TABLE Ucitel ADD 
  CONSTRAINT ucit_osoba FOREIGN KEY (id)
  REFERENCES Osoba ON DELETE CASCADE;

Úloha číslo 7
Vytvorte tabuľku Katedra a vymažte ju a opäť vytvorte aby sme s ňou mohli pracovať
CREATE TABLE Katedra (
  id                INTEGER       NOT NULL,
  popis             VARCHAR(50)           ,
  skratka           VARCHAR(4)
  PRIMARY KEY(id)
);
DROP TABLE Katedra
Úloha číslo 8
Vytvorte všetky ostatné tabuľky z dátoveho modelu
CREATE TABLE SkolskyRok (
  id                INTEGER       NOT NULL,
  popis             VARCHAR(20)   NOT NULL,
  skratka           VARCHAR(5)    NOT NULL
  PRIMARY KEY(id)
);

CREATE TABLE Predmet (
  id                INTEGER       NOT NULL,
  nazov             VARCHAR(20)   NOT NULL,
  kredit            INTEGER       NOT NULL,
  skratka           VARCHAR(5)    NOT NULL,	
  idSkRok           INTEGER       NOT NULL,
  idUcitel          INTEGER       NOT NULL
  PRIMARY KEY(id)
);
ALTER TABLE Predmet ADD 
  CONSTRAINT predmet_skrok FOREIGN KEY (idSkRok)
  REFERENCES SkolskyRok ON DELETE CASCADE;

ALTER TABLE Predmet ADD 
  CONSTRAINT predmet_uc FOREIGN KEY (idUcitel)
  REFERENCES Ucitel ON DELETE CASCADE;

CREATE TABLE StudentPredmet (
  idStudent         INTEGER       NOT NULL,
  idPredmet         INTEGER       NOT NULL
);
ALTER TABLE StudentPredmet ADD 
  CONSTRAINT sp_st FOREIGN KEY (idStudent)
  REFERENCES Student ON DELETE CASCADE;

ALTER TABLE StudentPredmet ADD 
  CONSTRAINT sp_pr FOREIGN KEY (idPredmet)
  REFERENCES Predmet ON DELETE CASCADE;
Úloha číslo 9
Uložte do našej databázy tieto dáta: V školskom roku 2000/2001 učí Jožko Mrkvička predmet Pedagogický software študentov Petra Mokreho a Laca Maca. Učiteľ Jožka Mrkvička pôsobí na katedre KA/Katedra analýzy a má plat 120 000 Sk.
INSERT INTO Skolskyrok VALUES (10,'2000/2001','2000');
INSERT INTO Katedra VALUES(10,'KA','Katedra analýzy');
INSERT INTO Student VALUES(5,'5.9.2000',NULL);
INSERT INTO Osoba   VALUES(10,'Laco','Maco','740212/9874','Tepla 4');
INSERT INTO Student VALUES(10,'5.9.2000',NULL);
INSERT INTO Osoba   VALUES(123,'Jozko','Mrkvička','340212/9874','Studena 1');
INSERT INTO Ucitel  VALUES(123,120000,'Prof',10);
INSERT INTO Predmet VALUES(569,'Pedagogický software','PS',1,10,123);
INSERT INTO StudentPredmet  VALUES(10,569);
INSERT INTO StudentPredmet  VALUES(5,569);
Úloha číslo 10
Napíšte príkaz, ktorý z našej databázy vyberie mená všetkých študentov, ktorých v školskom roku 2000/2001 učí nejaký predmet učiteľ z Katedry Analýzy. Zoznam študentov utriedte podľa priezviska a mena.
SELECT 
      s.meno, 
      s.priezvisko 
FROM  Student s, 
      StudentPredmet sp, 
      Predmet p, 
      Ucitel u
WHERE sp.idPredmet=p.id
      AND   sp.idStudent=s.id
      AND   p.idUcitel=u.id
      AND   p.idSkRok=10
      AND   u.idKatedra=10
ORDER BY 2,1



Didaktický test


Zadanie úlohy
Riešenie úlohyRozborBodyCelkom
Úloha číslo 1
Vysvetlite pojmy primárny a cudzí kľúč.
Primárny kľúč je stĺpec alebo skupina stĺpcov minimálnej dĺžky, ktoré jednoznačne určujú záznam tabuľky.
Cudzí kľúč je stĺpec, ktorý je kľúčom do inej tabuľky.
Def. 1
Def. 2
1b
1b
2b
Úloha číslo 2
Popíšte príkaz SELECT, klauzuly FROM , ORDER BY, GROUP BY, WHERE .
Príkaz select slúži na dolovanie dát z databázy.
Klauzula FROM určuje z akej tabuľky sa získavajú dáta
Klauzula WHERE slúži na špecifikovanie podmienok výberu alebo väzbových podmienok
Klauzula ORDER BY slúži na určenie triedenia získaných dát
Klauzula GROUP BY slúži na zoskupenie získaných dát
Popis príkazu SELECT
Popis FROM
Popis WHERE
Popis ORDER BY
Popis GROUP BY
1b
1b
1b
1b
1b
5b
Úloha číslo 3
Vytvorte tabuľku osoba podľa priloženého dátového modelu
CREATE TABLE Osoba (
  id                INTEGER       NOT NULL,
  meno              VARCHAR(20)   NOT NULL,
  priezvisko        VARCHAR(20)   NOT NULL,
  rodcis            VARCHAR(11)   NOT NULL,	
  adresa            VARCHAR(20)   NOT NULL
  PRIMARY KEY(id)
);
Správna syntax
Deklarácia primárneho kľúča
Deklarovanie stĺpcov
1b
1b
1b
3b
Úloha číslo 4
Napíšte príkaz, ktorý vloží do tabuľky Osoba záznam, ktorý popisuje Vašu osobu. Popíšte príkaz INSERT (aj syntax).
INSERT INTO (id,meno,priezvisko, rodcis,adresa) 
VALUES(45,'Bruno','Hugo','451231/8956','Iskierková 237')
Príkaz INSERT slúži na vkladanie dát do databázy.
Syntax: INSERT INTO table (zoznam stlpcov) VALUES (zoznam hodnot)
table - určje do akej tabuľky vkladáme dáta
zoznam stlpcov - čiarkami oddelený zoznam polí tabuľky
zoznam hodnôt - čiarkami oddelený zoznam vkládaných dát
príkaz pre vloženie dát


popis príkazu INSERT
syntax + popis
1b


1b
3b
5b
Úloha číslo 5
Napíšte príkaz, ktorý opraví záznam (pod Vaším ID) tabuľky Osoba, ktorý zmení Vašu adresu. Popíšte príkaz UPDATE (aj syntax).
UPDATE Osoba SET adresa='nova adresa' WHERE id=45
Syntax: UPDATE tabulka SET stĺpec1=hodnota1,stĺpec2=hodnota2 ... WHERE (podmienka)
tabulka - v ktorej tabulke bude zmenený záznam
stlpcex - stĺpec z danej tabuľky
hodnotax - nová hodnota pre daný stĺpec
podmienka - výberová podmienka
príkaz pre opravenie dát


popis príkazu UPDATE
syntax + popis
1b


1b
4b
6b
Úloha číslo 6
Napíšte čo robí príkaz DROP a čo príkaz DELETE.
Príkaz DROP slúži na zmaznie tabuľky, indexov, databázy...
Príkaz DELETE slúži na zmazanie údajov tabuľky.
príkaz DROP
príkaz DELETE
1b
1b
2b
Spolu bodov: 23b

Autori

lalalala