Author Topic: DBS  (Read 49902 times)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #75 on: 05.03.2012, 07:43:06 »
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()?

;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..

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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #76 on: 05.03.2012, 11:10:00 »
ja som si myslel, ze vsetky hodnoty treba davat do apostrofov :D

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #77 on: 05.03.2012, 11:19:36 »
ako sa da skontrolovat struktura tabulky?

3. skontrolujte štruktúru tabulky zam

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #78 on: 05.03.2012, 11:23:11 »
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.

ako sa da skontrolovat struktura tabulky?

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

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #79 on: 05.03.2012, 19: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 ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #80 on: 05.03.2012, 19:24:21 »
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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #81 on: 05.03.2012, 19: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 ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #82 on: 05.03.2012, 20:41:45 »
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

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: DBS
« Reply #83 on: 08.03.2012, 15: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?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #84 on: 08.03.2012, 15:51:08 »
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

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: DBS
« Reply #85 on: 08.03.2012, 15:59:22 »
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

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #86 on: 08.03.2012, 16: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.

maros67

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: DBS
« Reply #87 on: 08.03.2012, 16:09:51 »
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

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #88 on: 08.03.2012, 16:25:34 »
Fúha. Nechápem potom, prečo vypisuje takú chybu...

Quote
For 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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #89 on: 08.03.2012, 17:59:19 »
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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #90 on: 12.03.2012, 19:43:48 »
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

  • Jr. Member
  • **
  • Posts: 77
    • View Profile
Re: DBS
« Reply #91 on: 19.03.2012, 17:07:08 »
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)
« Last Edit: 19.03.2012, 17:17:09 by elvolcanoik »

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #92 on: 19.03.2012, 21:35:57 »
ako spravim toto? zotrieďte podľa oddelenia a v rámci oddelenia podľa priezviska. Pre kontrolu vypíšte aj oddelenie.

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #93 on: 19.03.2012, 21:43:38 »
hlavne to ma zaujima, ze ako roztriedit dvakrat .. ze najprv podla department_id a potom podla priezviska

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #94 on: 19.03.2012, 21:43:46 »
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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #95 on: 19.03.2012, 21:52:24 »
dik .. a do toho zapisu relacnej algebry sa nezapisuje to order by nijak ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #96 on: 19.03.2012, 21:57:19 »
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

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #97 on: 19.03.2012, 22: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 ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #98 on: 19.03.2012, 22:23:19 »
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).
« Last Edit: 19.03.2012, 22:25:25 by veteran »

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #99 on: 19.03.2012, 22:39:31 »
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 ?
« Last Edit: 19.03.2012, 22:42:14 by xxx3 »