none
Cidzi klic do vice tabulek

    Dotaz

  • Dorby den chtel bych se zeptat zda je mozne ohlidat konzistenci dat cidzim klicem v tomto csenari. Mam tabulku OSOB a tabulku SPOLECNOSTI. Pak existuje tabula ADRES. Vlastnikom adresy muze byt jak osoba tak spolecnost.  Predem dekuji
    Developer
    sobota 13. února 2010 15:29

Odpovědi

  • Bezne se to (AKA ISA hieararchie) dela tak ze mas tabulku ADRESA a tabulku SUBJEKT (coz je osoba nebo spolecnost nebo martan). Dale tabulky OSOBA a SPOLECNOSTI a Martani ktere nesou NEspolecne atributy SUBJEKTu (RC, ISO, pocet tykadel...)

    MP
    sobota 13. února 2010 17:22
  • Dobrý den,

    pro uvedené modelování objektů v databázi se většinou používá termín generalizace/specializace - v zásadě jde o to, že pokud má více entit společnou skupinu atributů, vytvoří se pro ně jedna generalizovaná entita (tabulka - ve Vašem případě Subjekt). Ostatní atributy specifické pro jednotlivé entity se umístí do separátních specializovaných entit (pro každou entitu jedna tabulka - Společnost, Osoba...), které mají s generalizovanou tabulkou vazbu s kardinalitou 1:1 zajištěnou referenční integritou (cizím klíčem). Na generalizovanou entitu je pak možné navázat jiné entity (např. Adresa) bez ohledu na to, o jakou specializovanou entitu se jedná. Konzistence dat je zajištěna přímo na úrovni relační databáze pomocí referenční integrity.

    S pozdravem

    Miloslav Peterka
    neděle 14. února 2010 21:58

Všechny reakce

  • Bezne se to (AKA ISA hieararchie) dela tak ze mas tabulku ADRESA a tabulku SUBJEKT (coz je osoba nebo spolecnost nebo martan). Dale tabulky OSOBA a SPOLECNOSTI a Martani ktere nesou NEspolecne atributy SUBJEKTu (RC, ISO, pocet tykadel...)

    MP
    sobota 13. února 2010 17:22
  • A nevznika stejny problem pri kontrole tabulek osoba spolecnost nebo martan voci tabulke subjekt. Jakym spusobem se hlida konzistence dat v tevo strukture. Pokud existuje nejaka reference na reseni mebo problemu budu vdecny. Predem dekuju.

    Developer
    neděle 14. února 2010 9:39
  • Dobrý den,

    pro uvedené modelování objektů v databázi se většinou používá termín generalizace/specializace - v zásadě jde o to, že pokud má více entit společnou skupinu atributů, vytvoří se pro ně jedna generalizovaná entita (tabulka - ve Vašem případě Subjekt). Ostatní atributy specifické pro jednotlivé entity se umístí do separátních specializovaných entit (pro každou entitu jedna tabulka - Společnost, Osoba...), které mají s generalizovanou tabulkou vazbu s kardinalitou 1:1 zajištěnou referenční integritou (cizím klíčem). Na generalizovanou entitu je pak možné navázat jiné entity (např. Adresa) bez ohledu na to, o jakou specializovanou entitu se jedná. Konzistence dat je zajištěna přímo na úrovni relační databáze pomocí referenční integrity.

    S pozdravem

    Miloslav Peterka
    neděle 14. února 2010 21:58
  • Dekuji za uzitecne informace. 
    Developer
    pondělí 15. února 2010 7:09