• Nem Talált Eredményt

Ez az átírás azért is jó, mert egy kapcsolatot majd úgyis valahogy így tudunk kezelni a fizikai megvalósításban:a kapcsolat egy eleme egy három mutatóból álló tömb lesz, ahol ez egyes mutatók a kapcsolatot alkotó egyedekre (film, színész, stúdió) mutatnak.

Az átírásnál persze veszíthetünk infót:az el ˝obbi példánál elveszett az, hogy a többes kapcsolat „egy” volt a Stúdió fele. Ez nem baj, ezt majd a végén a relációs modellben úgyis finomabban le tudjuk írni.

Mivel minden többágú kapcsolatot át lehet írni binárissá, azért elég volna csak ilyen bináris kapcsolatokat használni.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 57 / 507

Megjegyzések az átíráshoz

Ez az átírás azért is jó, mert egy kapcsolatot majd úgyis valahogy így tudunk kezelni a fizikai megvalósításban:a kapcsolat egy eleme egy három mutatóból álló tömb lesz, ahol ez egyes mutatók a kapcsolatot alkotó egyedekre (film, színész, stúdió) mutatnak.

Az átírásnál persze veszíthetünk infót:az el ˝obbi példánál elveszett az, hogy a többes kapcsolat „egy” volt a Stúdió fele. Ez nem baj, ezt majd a végén a relációs modellben úgyis finomabban le tudjuk írni.

Mivel minden többágú kapcsolatot át lehet írni binárissá, azért elég volna csak ilyen bináris kapcsolatokat használni.

Megjegyzések az átíráshoz

Ez az átírás azért is jó, mert egy kapcsolatot majd úgyis valahogy így tudunk kezelni a fizikai megvalósításban:a kapcsolat egy eleme egy három mutatóból álló tömb lesz, ahol ez egyes mutatók a kapcsolatot alkotó egyedekre (film, színész, stúdió) mutatnak.

Az átírásnál persze veszíthetünk infót:az el ˝obbi példánál elveszett az, hogy a többes kapcsolat „egy” volt a Stúdió fele. Ez nem baj, ezt majd a végén a relációs modellben úgyis finomabban le tudjuk írni.

Mivel minden többágú kapcsolatot át lehet írni binárissá, azért elég volna csak ilyen bináris kapcsolatokat használni.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 57 / 507

Megjegyzések az átíráshoz

Ez az átírás azért is jó, mert egy kapcsolatot majd úgyis valahogy így tudunk kezelni a fizikai megvalósításban:a kapcsolat egy eleme egy három mutatóból álló tömb lesz, ahol ez egyes mutatók a kapcsolatot alkotó egyedekre (film, színész, stúdió) mutatnak.

Az átírásnál persze veszíthetünk infót:az el ˝obbi példánál elveszett az, hogy a többes kapcsolat „egy” volt a Stúdió fele. Ez nem baj, ezt majd a végén a relációs modellben úgyis finomabban le tudjuk írni.

Mivel minden többágú kapcsolatot át lehet írni binárissá, azért elég volna csak ilyen bináris kapcsolatokat használni.

Megjegyzések az átíráshoz

Amúgy az ODL-ben lényegében ez történik,ha ott akarnánk ábrázolni azt a hármas kapcsolatot, ami a filmeket, színészeket és stúdiókat összeköti, akkor ehhez fel kellene vennünk egy negyedik osztályt így (és ez lényegében ugyanaz a helyzet, amit az E/K modellben kaptunk az átíráskor):

interfaceSzerz ˝odés {

relationshipStúdió gyártja;

inverseStúdió::StúdióSzerz ˝odése;

relationshipFilm filmje;

inverseFilm::FilmSzerz ˝odése;

relationshipSzínész szerepl ˝oje;

inverseSzínész::SzínészSzerz ˝odése;

};

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 58 / 507

Feladat

Javasoljon ODL-sémát egy olyan banki adatbázishoz, amely tartalmazza az ügyfeleket és azok számláit.

Azügyfelekr ˝oltartsuk nyilván anevüket, címüket, telefonszámukat és személyi számukat. Aszámláknaklegyenszámlaszámuk, típusuk (takarékbetét számla, folyószámla pl.) és egyenlegük.

Feladat

Javasoljon ODL-sémát egy olyan banki adatbázishoz, amely tartalmazza az ügyfeleket és azok számláit.

Azügyfelekr ˝oltartsuk nyilván anevüket, címüket, telefonszámukat és személyi számukat. Aszámláknaklegyenszámlaszámuk, típusuk (takarékbetét számla, folyószámla pl.) és egyenlegük.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 59 / 507

Feladat

Javasoljon ODL-sémát egy olyan banki adatbázishoz, amely tartalmazza az ügyfeleket és azok számláit.

Azügyfelekr ˝oltartsuk nyilván anevüket, címüket, telefonszámukat és személyi számukat. Aszámláknaklegyenszámlaszámuk, típusuk (takarékbetét számla, folyószámla pl.) és egyenlegük.

Megoldás(néhány megoldás a sok lehetséges közül):

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 60 / 507

Megoldás(néhány megoldás a sok lehetséges közül):

Variációk

Lehetett volna struktúra a lakcím típusa:

interfaceÜgyfél { attributestring név;

attributeStruct Cím{string város, string utca, int házszám} lakcím;

attributeint telefonszám;

attributeint szemszám;

relationshipSet<Számla>számlái;

inverseSzámla::tulajdonosai;

};

Ha több címe is lehet egy embernek: interfaceÜgyfél {

attributestring név;

attributeSet<Struct Cím{string város, string utca, int házszám}>lakcím; attributeint telefonszám;

attributeint szemszám;

relationshipSet<Számla>számlái; inverseSzámla::tulajdonosai; };

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 61 / 507

Variációk

Lehetett volna struktúra a lakcím típusa:

interfaceÜgyfél { attributestring név;

attributeStruct Cím{string város, string utca, int házszám} lakcím;

attributeint telefonszám;

attributeint szemszám;

relationshipSet<Számla>számlái;

inverseSzámla::tulajdonosai;

};

Ha több címe is lehet egy embernek:

interfaceÜgyfél { attributestring név;

attributeSet<Struct Cím{string város, string utca, int házszám}>lakcím;

attributeint telefonszám;

attributeint szemszám;

Variációk

Lehetett volna felsorolástípus a számla típusa:

interfaceSzámla {

attributeint számlaszám;

attributeenum Típus{ betét, folyó } számlaTípus;

attributeint egyenleg;

relationshipSet<Ügyfél>tulajdonosai;

inverseÜgyfél::számlái;

};

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 62 / 507

Variációk

Ha egy embernek csak egy számlája lehet és egy számlának csak egy tulajdonosa:

Variációk

Ha egy embernek csak egy számlája lehet és egy számlának csak egy tulajdonosa:

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 63 / 507

Variációk

Ha egy embernek több lakhelye lehet és az egyes lakhelyekhez lehet több telefonszám is:

attributeSet<Struct Cím{ string lakcím, Set<int>telszámok }>lakcím; Struct-on belül nem lehet kollekciótípus illetve két kollekciótípus sem lehet egymásba ágyazva egy attribútum típusában.

Az se lenne jó, ha külön nyilvántartunk egy csomó lakcímet és ett ˝ol függetlenül az összes telefonszámot, mert akkor nem fogjuk tudni, hogy melyik címhez melyik szám tartozik.

Variációk

Ha egy embernek több lakhelye lehet és az egyes lakhelyekhez lehet több telefonszám is:

attributeSet<Struct Cím{ string lakcím, Set<int>telszámok }>lakcím;

Struct-on belül nem lehet kollekciótípus illetve két kollekciótípus sem lehet egymásba ágyazva egy attribútum típusában.

Az se lenne jó, ha külön nyilvántartunk egy csomó lakcímet és ett ˝ol függetlenül az összes telefonszámot, mert akkor nem fogjuk tudni, hogy melyik címhez melyik szám tartozik.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 64 / 507

Variációk

Ha egy embernek több lakhelye lehet és az egyes lakhelyekhez lehet több telefonszám is:

attributeSet<Struct Cím{ string lakcím, Set<int>telszámok }>lakcím;

Struct-on belül nem lehet kollekciótípus illetve két kollekciótípus sem lehet egymásba ágyazva egy attribútum típusában.

Az se lenne jó, ha külön nyilvántartunk egy csomó lakcímet és ett ˝ol függetlenül az összes telefonszámot, mert akkor nem fogjuk tudni, hogy melyik címhez melyik szám tartozik.

Variációk

Ha egy embernek több lakhelye lehet és az egyes lakhelyekhez lehet több telefonszám is:

attributeSet<Struct Cím{ string lakcím, Set<int>telszámok }>lakcím;

Struct-on belül nem lehet kollekciótípus illetve két kollekciótípus sem lehet egymásba ágyazva egy attribútum típusában.

Az se lenne jó, ha külön nyilvántartunk egy csomó lakcímet és ett ˝ol függetlenül az összes telefonszámot, mert akkor nem fogjuk tudni, hogy melyik címhez melyik szám tartozik.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 64 / 507

interfaceÜgyfél {

interfaceLakhely{ attributestring város;

attributestring utca;

attributeint házszám;

attributeSet<int>telefonszámok;

relationshipSet<Ügyfél>lakói;

inverseÜgyfél::ittLakik;

};

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 66 / 507

Feladat

TervezzenE/K diagrammotegy olyan banki adatbázishoz, amely tartalmazza az ügyfeleket és azok számláit.

Azügyfelekr ˝oltartsuk nyilván anevüket, címüket, telefonszámukat és személyi számukat. Aszámláknaklegyenszámlaszámuk, típusuk (takarékbetét számla, folyószámla pl.) és egyenlegük.

Megoldás(néhány megoldás a sok lehetséges közül):

TÍPUSA

Feladat

TervezzenE/K diagrammotegy olyan banki adatbázishoz, amely tartalmazza az ügyfeleket és azok számláit.

Azügyfelekr ˝oltartsuk nyilván anevüket, címüket, telefonszámukat és személyi számukat. Aszámláknaklegyenszámlaszámuk, típusuk (takarékbetét számla, folyószámla pl.) és egyenlegük.

Megoldás(néhány megoldás a sok lehetséges közül):

TÍPUSA

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 67 / 507

Variációk

Ha egy számlának csak egy tulajdonosa lehet:

TÍPUSA SZÁMA

SZÁMLÁK

EGYENLEG SZÁMLÁJA

TELSZÁM

ÜGYFELEK CÍM

NÉV

SZEMSZÁM

Variációk

Ha egy számlának csak egy tulajdonosa lehet és egy ügyfélnek csak egy számlája lehet:

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 69 / 507

Variációk

Ha egy embernek több címe és több telefonszáma is lehet, de azt nem kell nyilvántartani, hogy mik az összetartozó lakcím-telefonszám párok:

SZÁMA ORSZÁG

Azért nem lehetett az „ügyfelek” egyedhalmaz attribútuma a telefonszám, mert csak egyszer ˝u típusokat használhatunk, kollekciókat nem.

Variációk

Ha egy embernek több címe és több telefonszáma is lehet, de azt nem kell nyilvántartani, hogy mik az összetartozó lakcím-telefonszám párok:

SZEMSZÁM

Azért nem lehetett az „ügyfelek” egyedhalmaz attribútuma a telefonszám, mert csak egyszer ˝u típusokat használhatunk, kollekciókat nem.

Katona Gyula Y. (BME SZIT) Adatbázisok elmélete 3. el ˝oadás 70 / 507

Variációk

Ha azt is nyilván kell tartani, hogy mik az összetartozó lakcím- telefonszám párok:

VÁROS