• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

DBS

Started by xxx3, 16.02.2012, 15:10:05

« predchdzajce - alie »

veteran

Quote from: xxx3 on  04.03.2012, 22:34:47
preco ked napisem: insert into asz values('KE111-XX','22','23','2/1/2011');

mi napise: ORA-02291: integrity constraint (xy123ab.FK_ASZ_ASZ2_SLUZBA) violated - parent
key not found
Prečo si dával čísla 22 a 23 do apostrofov? Nie sú tie hodnoty náhodou typu number()?

Quote from: esperian on  04.03.2012, 23:41:27
;D ;D  zda sa mi ze na cviku nas upozornoval ze po tom ako tam tie svoje hodnoty nahadzes musis zadat prikaz commit; aby sa tie tvoje data realne zapisali a ostali tam..

Quote from: esperian on  04.03.2012, 23:51:54
jj no mozes xDD a ukoncuj aj SQLko korektne prikazom exit...
Doteraz som commit nikdy nedával a vždy mi všetko ostalo tak, ako som to vložil. Problém je presne v tom príkaze exit. Ak vypneš SQL+ červeným krížikom, nič sa neuloží.

xxx3

ja som si myslel, ze vsetky hodnoty treba davat do apostrofov :D

xxx3

ako sa da skontrolovat struktura tabulky?

3. skontrolujte štruktúru tabulky zam

veteran

Quote from: xxx3 on  05.03.2012, 12:10:00
ja som si myslel, ze vsetky hodnoty treba davat do apostrofov :D
Len reťazce (stringy - varchar, char a dátumy). Čísla idú bez úvodzoviek.

Quote from: xxx3 on  05.03.2012, 12:19:36
ako sa da skontrolovat struktura tabulky?

3. skontrolujte štruktúru tabulky zam
desc zam;

xxx3

ked mam tie vztahy ... M:N sa robi cez dalsiu tabulku
ale tie 1:1 a 1:N sa ako robia v SQL ?

iba dam to tej dabulky kde je ten vztah ku stlpcu, ze REFERENCES nazov_tabulky(stlpec) ? Ci nejak inac sa robi 1:N a 1:1 ?

veteran

Quote from: xxx3 on  05.03.2012, 20:20:49
ked mam tie vztahy ... M:N sa robi cez dalsiu tabulku
ale tie 1:1 a 1:N sa ako robia v SQL ?

iba dam to tej dabulky kde je ten vztah ku stlpcu, ze REFERENCES nazov_tabulky(stlpec) ? Ci nejak inac sa robi 1:N a 1:1 ?
Vzťah 1:n - jeden zamestnanec môže mať zapísaných viac vykonaných služieb v autoservise. Teda ináč povedané, evc zamestnanca v tabuľke asz nie je primary key. Ak by bolo, tak by mohol mať každý jeden zamestnanec zapísanú len jednu vykonanú službu (vzťah 1:1).

xxx3

hej chapem co to znamena, ale keby nieco take bolo, ze mas napriklad tabulku zamestnanec kd eje evc, meno, priezvisko a tabulku sluzba kde je cislo_sluzby, nazov_sluzby ... a vztah 1:N ... cize jeden zamestnanec moze vykonavat viac sluzieb ... tak ako sa to zapise v SQL ?

veteran

Quote from: xxx3 on  05.03.2012, 20:32:40
hej chapem co to znamena, ale keby nieco take bolo, ze mas napriklad tabulku zamestnanec kd eje evc, meno, priezvisko a tabulku sluzba kde je cislo_sluzby, nazov_sluzby ... a vztah 1:N ... cize jeden zamestnanec moze vykonavat viac sluzieb ... tak ako sa to zapise v SQL ?
Pri vzťahu 1:n platí, že primary key zo strany 1 musí byť pridaný na stranu n ako foreign key.

Odporúčam preštudovať toto: http://db.grussell.org/section006.html#_Toc67114425

maros67

mozete mi niekto pomoct?
ked napisem : insert into asz values('KE111-XX',1,1,'30-12-2010');
tak mi vyhodi chybu : ERROR na øádku 1:
ORA-02291: integrity constraint (MK405ZK.SYS_C00252427) violated - parent key
not found
co asi mam zle?

veteran

Quote from: maros67 on  08.03.2012, 16:46:57
mozete mi niekto pomoct?
ked napisem : insert into asz values('KE111-XX',1,1,'30-12-2010');
tak mi vyhodi chybu : ERROR na øádku 1:
ORA-02291: integrity constraint (MK405ZK.SYS_C00252427) violated - parent key
not found
co asi mam zle?
V tabuľke auto nemáš auto s ŠPZ KE111-XX.

http://ora-02291.ora-code.com/
Cause: A foreign key value has no matching primary key value.
Action: Delete the foreign key or add a matching primary key.

maros67

Quote from: veteran on  08.03.2012, 16:51:08
Quote from: maros67 on  08.03.2012, 16:46:57
mozete mi niekto pomoct?
ked napisem : insert into asz values('KE111-XX',1,1,'30-12-2010');
tak mi vyhodi chybu : ERROR na øádku 1:
ORA-02291: integrity constraint (MK405ZK.SYS_C00252427) violated - parent key
not found
co asi mam zle?
V tabuľke auto nemáš auto s ŠPZ KE111-XX.

http://ora-02291.ora-code.com/
Cause: A foreign key value has no matching primary key value.
Action: Delete the foreign key or add a matching primary key.
nechapem, ved insertoval som tam tu spz,
tu je select * from auto:

SPZ      T ROK_VYRO
-------- - --------
KE111-XX o 01.02.90
KE222-XX O 11.12.99
KE111-YY o 01.05.89
PO111-XX N 01.02.91
PO333-XX o 01.05.90
NR111-XX p 12.06.98
ZA111-XX O 22.11.99
KE111-ZZ n 01.02.90
NR111-YY o 01.02.91
KE100-XX P 01.02.92

veteran

Aha, no chyba môže byť aj v tom, že ti chýba služba s kódom 1 alebo zamestnanec s kódom 1.

maros67

Quote from: veteran on  08.03.2012, 17:04:16
Aha, no chyba môže byť aj v tom, že ti chýba služba s kódom 1 alebo zamestnanec s kódom 1.
no v tom tiez nie je chyba

SQL> select * from sluzba;

KOD_SLUZBY NAZOV_SLUZBY         CENA_SLUZBY
---------- -------------------- -----------
         1 vymena oleja                  55


SQL> select * from zam;

       EVC MENO       PRIEZVISKO
---------- ---------- -------------
         1 Janko      Hrasko

veteran

Fúha. Nechápem potom, prečo vypisuje takú chybu...

QuoteFor an insert statement, this ORA-02291 error is common when you are trying to insert a child without a matching parent, as defined by a foreign key constraint.  In that case, you need to add the parent row to the table and then re-insert your child table row.

Ešte by som skúsil zadať insert takto (vrátane vymenovania stĺpcov):
insert into asz (spz,kod_sluzby,evc,datum_sluzby) values ('KE111-XX',1,1,'30/12/10');

xxx3

mne to tiez robilo a nevedel som co s tym mam robit ... potom som zmazal vsetky tabulky a sekvencie a nahodil ich znova a uz to islo

xxx3

Vie mi niekto vysvetlit aky je to:
slaby vztah
supertyp, subtyp

?
Aj na priklade, napr. v scheme autoservis, s ktorou robime ktory vztah tam je slaby a ktory supertyp ak tam su take ?

elvolcanoik

#91
pri zadaniach si dajte pozor na intregitu databazy (referencna, domenova, entitna integrita atd) ... vela ludi na to zabuda a sposobuje to problemy pri aktualizovani udajov v databaze (insert, update, delete)

xxx3

ako spravim toto? zotrieďte podľa oddelenia a v rámci oddelenia podľa priezviska. Pre kontrolu vypíšte aj oddelenie.

xxx3

hlavne to ma zaujima, ze ako roztriedit dvakrat .. ze najprv podla department_id a potom podla priezviska

veteran

Quote from: xxx3 on  19.03.2012, 22:35:57
ako spravim toto? zotrieďte podľa oddelenia a v rámci oddelenia podľa priezviska. Pre kontrolu vypíšte aj oddelenie.
select last_name, department_id from hr.employees order by 2,1;

xxx3

dik .. a do toho zapisu relacnej algebry sa nezapisuje to order by nijak ?

veteran

Quote from: xxx3 on  19.03.2012, 22:52:24
dik .. a do toho zapisu relacnej algebry sa nezapisuje to order by nijak ?
Zapisuje sa, ale na prednáške to nebolo, takže som to nepísal.  ;)

xxx3

6. uloha: Zistite first_name, last_name zamestnancov, ktorí nie sú v žiadnom oddelení. Pre kontrolu vypíšte aj id oddelenia.

som dal:  select first_name, last_name, department_id from hr.employees where department_id is null;

a mi dalo len jeden riadok ... vo vysledkoch je, ze ma byt 72 raidkov .... co mam zle ?

veteran

#98
Quote from: xxx3 on  19.03.2012, 23:14:27
6. uloha: Zistite first_name, last_name zamestnancov, ktorí nie sú v žiadnom oddelení. Pre kontrolu vypíšte aj id oddelenia.

som dal:  select first_name, last_name, department_id from hr.employees where department_id is null;

a mi dalo len jeden riadok ... vo vysledkoch je, ze ma byt 72 raidkov .... co mam zle ?
Mám pocit, že chyba bude vo výsledkoch. Keď si dám vypísať všetkých zamestnancov (select first_name, last_name, department_id from hr.employees), tak NULL pri department_id má len jeden (Grant Kimbereley).

// EDIT: Inak, IMO je chyba aj pri 6. cvičení v 12. úlohe (má byť 11 výsledkov, v skutočnosti je ich ale až 16).

xxx3

#99
a este s tymto by som potreboval pomoct: 11. Vypíšte spz áut, ktorým boli poskytnuté služby. Duplicity vylúčte.

Ako vylucim duplicity ? ... iba tam dam DISTINCT ?