Keresés

Részletes keresés

Első Polgár Creative Commons License 2002.06.28 0 0 36
az adatbazison, amin dolgozunk, ez pontosan igy van megvalositva.
es meg van egy adatvedelmi tabla, ahol a szemely azonositok flag-ekkel vannak ellatva, pl level stop, cimzett ismeretlen, stb.
Előzmény: NevemTeve (32)
despil_hun1 Creative Commons License 2002.06.28 0 0 35
Rám számíthatsz ;)
Előzmény: NevemTeve (34)
NevemTeve Creative Commons License 2002.06.28 0 0 34
Igen, igen! Valami ilyesmit akartam mondani, orulok hogy nem maradok abszolut kisebbsegben :)
Előzmény: despil_hun1 (31)
despil_hun1 Creative Commons License 2002.06.28 0 0 33
Szerintem amúgy mindenki értette :)))))
Legalábbis nekem elsőre is így jött le amit mondtál :)))
Előzmény: NevemTeve (32)
NevemTeve Creative Commons License 2002.06.28 0 0 32
Szoval megint nem voltam eleg vilagos...
lenne egy 'emberek' tabla, benne az amit minden emberrol tarolunk (nev,cim,telefonszam).

Azutan lenne egy 'ugyfelek', akinek a kulcsa egyben idegen kulcs az 'emberek'-re, es tartalmazza az ugyfel-specifikus adatokat.

Azutan lenne egy 'dolgozok', amiben szinten hivatkozna az emberekre, de benne lenne a fizetes, telephely stb.

Azutan lenne meg az 'ugynokok' tabla (ez nem aktualpolitika, hanem a kulso cegek velunk kapcsolatot-tarto dolgozoi :), aki szinten az 'emberek'-en alapulna...

despil_hun1 Creative Commons License 2002.06.28 0 0 31
Na most ugye minő eretnek felvetés, hogy egy dolgozó kazettát kölcsönözzön.

ResetGomb: Nem jó az adatvéfelmi érved, mert amennyiben a dolgozó kölcsönö - tehát bekerül külön a kölcsönző táblába is - ugyanúgy ki lehet gyűjteni, tehát amennyiben akarod ugyanezt a statisztikát elkészítheted az adott munkaerőre.

Válogasd ki azokat az ügyfeleket, akiknek a következő adatai megegyeznek a valamely dolgozó azonos adataival ÉS x kazettákat kölcsönöztek.

Amúgy ez a probléma - mármint, hogy egy személy tábla plusz specializált táblák, ezek a logikai tervezéshez tartoznak, a két külön táblába való szétszedés - ami ugye technikai, jogi, egyéb átmeneti indokkal történik - tartozik a fizikai tervezéshez.

Úgyhogy véleményem szerint a Személy tábla + kölcsönzés tábla + alkalmazotti adatok tábla a jó megoldás ebben az esetben. Pláne ORACLE esetén - nested táblák, stb.

Előzmény: NevemTeve (28)
Törölt nick Creative Commons License 2002.06.28 0 0 30
Én is ellened szavaztam volna! :-(

Ez azonban nem elvi, inkább gyakorlati kérdés. Egy dolgozóról sokkal több adatot kell tárolni, mint egy ügyfélről. Ezért mindenképpen lenne egy tábla, amiben a dolgozók plussz adatait tárolnád.

Az ember + dolgozo-kieg táblából csinálnál egy dolgozo view-t, amivel aztán úgy dolgoznál, mintha önálló tábla lenne.

Illetve jut eszembe egy ellenérv is, habár az nem technikai jellegű.

Adatvédelmi, személyiségi jogi problémákat vetne fel, ha ki tudnád gyűjteni, hogy pl. mely dolgozó kölcsönöz ki x-jellegű videókat.

Halassy a kérdést a specializáció-generalizáció címszó alatt tárgyalja.

Előzmény: NevemTeve (28)
Első Polgár Creative Commons License 2002.06.28 0 0 29
kurva jo! :-)))
egyebkent amennyire en latom, a logikai es a fizikai data modelben ezt kulonvalasztjak. tehat a logikai data modelben van kulon alkalmazott es ugyfel tabla es csak a fizikaiban rakjak ossze "emberre".
de a te eseted egyertelmuen fizikai adatmodel.
Előzmény: NevemTeve (28)
NevemTeve Creative Commons License 2002.06.28 0 0 28
Mikor Oracle-tanfolyamon voltunk volt egy videokolcsonzesi ceg volt a pelda a Designer-hez, ott volt a cegnek egy ugyfel-tablaja, meg egy alkalmazott-tablaja... kerdeztem, mit szolnanak egy 'ember' tablahoz, ami mindkettonek az 'alaptablaja' lenne, de a tobbiek es az oktato leszavaztak...
despil_hun1 Creative Commons License 2002.06.28 0 0 27
Na igen. mégis, érdekes, hogy képesek ugyanazt a személyt több különböző "adatbázisban" eltárolni. Aztán jön a kavar, és az értetlenkedés : de hát nállunk nyilvántartás van ! Több is! :))
Előzmény: Első Polgár (26)
Első Polgár Creative Commons License 2002.06.28 0 0 26
huu, ez mekkora tetu melo, ha nem csirkekkel, hanem emberekkel, cimekkel megy...
Előzmény: Törölt nick (25)
Törölt nick Creative Commons License 2002.06.28 0 0 25
Kedves NevemTeve!

Ez SzVSz egyszerűsíti a problémát.

Amikor rögzítik ezen adatokat, akkor a gép adjon egy "iktatószámot" a papírnak. Ezt a rögzítő feljegyzi a papírra, amelyeket aztán ebben a sorrendben irattároznak.

A program meg majd kilöki, hogy "jé az 346789-en ugyanaz a csirke van, mint a 574311-en".

Ekkor előkeresik mindkét papírt és mehet a tetemrehívás. :-(

Előzmény: NevemTeve (22)
Törölt nick Creative Commons License 2002.06.28 0 0 24
Bocs, de nem voltam egyértelmű. Ez a 0NF-re volt példa. Ha ilyenek nincsenek benne, akkor az adatbázis legalább 1NF-ben van.

A lényeg az azonosítótól való funkcionális függőségen van. Ha van egy személy adattáblád, akkor a Gipsz Jakab lehet akár azonosító is. Van még egy nyelv oszlopod is.

Ha minden olyan sorban, ahol a Gipsz Jakab azonosító, a nyelv oszlopban mindíg ugyanaz az érték szerepel (törvényszerüen), pl. magyar, akkor a tulajdonság funkcionálisan függ az azonosítótól. (Mert pl. a nyelv az anyanyelvet jelöli.) Ha több ilyen is van (vagy lehet!), mert a nyelv a nyelvtudást jelöli, akkor az funkcionálisan független.

Ekkor ezt a táblát két (vagy három) táblára kell bontani: személy és nyelvtudás vagy személy - nyelvek - nyelvtudás.

Előzmény: Első Polgár (18)
despil_hun1 Creative Commons License 2002.06.28 0 0 23
Na, erre mondtam, hogy a teljes helyzet ismerete nélkül nem lehet tanácsot adni :)))))))

Előzmény: NevemTeve (22)
NevemTeve Creative Commons License 2002.06.28 0 0 22
Van egy apro-csepro csekelyseg, amit nem mondtam:-)
Szoval itt a egy "utolagos" adatbazist kell csinalni, tehat nem lehet azt mondani hogy, 'ervenytelen adatot nem fogadok el', hanem ami papirt a rogzito a kezeben tart, az le kell tudja rogziteni... ja es nincs torles (passzivalas), eppen az az egyik szempont hogy a torzslapok elveszteset/hamisitasat lehessen kutatni...
Előzmény: despil_hun1 (11)
despil_hun1 Creative Commons License 2002.06.28 0 0 21
Na igen, ha az ember kifelejti /-t akkor máris gondok vannak :D
Előzmény: despil_hun1 (20)
despil_hun1 Creative Commons License 2002.06.28 0 0 20
Igen ekkor van első normál formában.
Bár én nem tudok lépésről lépesre normalizálni, úgyohgy nálam ez a:

SZEMÉLY tábal
Személy azon, Név ...

NYELV tábla
Nyelv azon, Nyelv

NYELVTUDÁS tábla
Személy azon, Nyelv azon, Szint

A kapcsolat pedig SZEMÉLY - NYELÉVTUDÁS 1:N és
NYELV - NYELVTUDÁS 1:N

Előzmény: Első Polgár (18)
Első Polgár Creative Commons License 2002.06.28 0 0 19
sot a nyelv_pk -t nem kell beleraknom a szemely tablaba, az csak ugy lesz.
Előzmény: Első Polgár (18)
Első Polgár Creative Commons License 2002.06.28 0 0 18
ez a pelda mikor lenne 1NF?
ha a nyelv megnevezeset egy ID-val helyettesitem, vagy keszitek egy kulon tablat, ahol mondjuk:
szemely_id, nyelv_id, nyelv_primary_key
1 (GipszJ) 1 (angol) 1
1 (GipszJ) 2 (nemet) 2

es a az elozo tablaba csak a nyelv_pk-t rakom bele?

Előzmény: Törölt nick (17)
Törölt nick Creative Commons License 2002.06.28 0 0 17
"Az egyedtipus nem-normalizált, vagyis 0NF alakú, ha vannak tulajdonságai, amelyek az azonosítójától funkcionálisan függetlenek." (Halassy)

Tipikus esete ennek a többértékű tulajdonságok tárolása egy táblában.

Pl. Egyetlen személy adattáblában NYELV1, NYELV2,... mezőnevek vagy a sorok ismétlésével.

Gipsz Jakab,1960.02.13,..., német,...
Gipsz Jakab,1960.02.13,..., angol,...
stb.

Előzmény: Első Polgár (16)
Első Polgár Creative Commons License 2002.06.28 0 0 16
bocs, bunko kerdes.
valamikor tudtam (tenyleg!) de elfelejtettem.
mi az a 1. normalforma?
Előzmény: Törölt nick (14)
despil_hun1 Creative Commons License 2002.06.28 0 0 15
Egyel igen, én csináltam.
Nem fogadták el.
Maradt az MS SQL szerveren megvalósított, a nyolcvanas évekből ittmaradt, "adatbázis" , ahol a táblák közti relációkat és a vlaidálást az "adatbázist" használó alkalmazás végezte.
Ahol ugyanaz az azonosító két táblában két különbő méretű, illetve típusú mezőben volt tárolva.

Na én eddig gyakorlatban ilyen adatbázist láttam közelről.
Ahol a mezők 70%-nak senki nem tudta a jelentését, csak azt, hogy valahol használja a progi, de hogy miért és mire?

Ja, igen, még az iskolai feladatokban láttam normalizált adatbázisokat.

Előzmény: Törölt nick (14)
Törölt nick Creative Commons License 2002.06.28 0 0 14
Nekem lenne egy ide kapcsolódó, de ellenkező előjelű kérdésem.

Találkozott-e már valaki olyan adatbázissal, amely legalább az 1-es normálformáig következetesen normálva lett volna.

Előzmény: despil_hun1 (13)
despil_hun1 Creative Commons License 2002.06.28 0 0 13
Tegnap elfelejtettem, most meg már ResetGomb válaszolt.

Volna egy kérdésem:
Valaki, valaha találkozott már Boyce-Codd, vagy magasabb rendű normálforma problémákkal a gyakorlata során?

Előzmény: Törölt nick (12)
Törölt nick Creative Commons License 2002.06.28 0 0 12
Szinoníma:

Van két táblád. Az egyikben egy oszlop neve az, hogy ADOSZAM. Egy másik táblában van egy oszlop, aminek a neve DOLGOZO_KOD. Ha mindkettőben gyakorlatilag kizárólag az APEH által adott adószám van, akkor ezek szinonímák. (Másként hívják, de ugyanazt jelenti)

Homoníma:

Van két táblád. Mindkettőben az az oszlop neve, hogy TERMEK_KOD. De a tartalmuk az egyik esetben az EAN kód (vonalkód), míg másik esetben az ITJ szám. Ezek homonímák. (Ugyanúgy hívják őket, de mást jelentenek.)

Előzmény: Első Polgár (9)
despil_hun1 Creative Commons License 2002.06.27 0 0 11
Így az elmondottak alapján jó megoldás, gondolom a csirke minden adata a törzslapon volt nyilvántartva (tehát csirke = törzslap).
Persze, kérdés, hogy mért kap egy csirke két törzslapot - hiszen ha az előzőt elvesztette, akkor az elvesztett törzslapot törölni kell -, vagy hogy, hogyan lehet duplázni a törzslapot. Törzslap sorszáma körbefordul, érdkes kérdés, mert azért egy long int-be elég sok szám belefér, egy id típusú mezőbe meg még több.
Egy rendszertervező minden adattáblára tesz egy ID típusú mezőt mint elsődleges kulcsot.

Mindenesetre a teljes probléma ismerete nélkül hülyeség lenne bármilyen tippet i adni.
Ezért fontos az, hogy megbeszélje az ember a tényleges felhasználóval, hogy mi fog történni.
Halassy féle tanmese, saját hibájáról: Egy biztosításhoz gy ügyfél tartozik. Általában. Csak ő elfelejtette megkérdezni az utolsó embert, aki a több ügyfeles biztosítással foglalkozott.
[na, ez így nem biztos, hogy pontos, de a lényeg érthető azt hiszem :))]
Amgy a kulcsok és indexek elméleti, majd fizikai tervezése külön móka :))

Előzmény: NevemTeve (10)
NevemTeve Creative Commons License 2002.06.27 0 0 10
Egy nagyon elemi dolog epp ma jott elo: mi legyen a csirke-torzslap nyilvantartas kulcsa:

1) a csirke sorszama... logikus, de nem jo, mert egy csirke esetleg tobb torzslapot is kaphatott (ha az elozot elvesztette)
2) a torzslap sorszama... meg logikusabb, csakhogy nincs garancia hogy nem volt (akar rosszindulatu!) duplazas, nem fordult korbe a sorszam, stb
3) tehat technikai kulcsot kell csinalni, ket indexxel (csirkeszam es torzslapszam)

Előzmény: despil_hun1 (8)
Első Polgár Creative Commons License 2002.06.27 0 0 9
koszi.
mik azok a homonimak es szinonimak?
Előzmény: despil_hun1 (8)
despil_hun1 Creative Commons License 2002.06.27 0 0 8
Közben összeszedtem néhány tippet.
Bár a Halassy szebben mondja el :))

Mindig rajzold le, az összes táblát - na jó egy határig, a 300 egyedes adatbázist nem célszerű -, és sokat rágódj rajta.
Külön mezőbe írd oda, hogy mi a célja a kapcsolótábláknak, kapcsolatoknak - mért kapcsolódik a Tantárgy a Hallgatóhoz két táblán keresztül? Fakultatív tárgyak listája, Tanulmányi eredmények.

SSADM - ből ajánlják az egyed-kapcsolat mátrixot - bár én még nem használtam, egyszer majd kipróbálom.
Minden egyedet sorokan és oszlopokban egyforma sorrendben felírsz, és a kapcsolatokat ki xeled (vagy valahogy jelölöd).
Persze nagy gyengéje, hogy olyan esetben nem működik, amikor két egyed között több kapcsolat is létezik.

Jó dolog a relációs adatbázisnál a normalizálás, de első lépésként mindig gyomláld ki a homonimákat és szinonimákat, és mindig írd le magadnak, hogy az adott kapcsolat illetve egyed miért került be, és miért így. Később jól jöhet, amikor vadul keresed, hogy mi a fenéért van az ott.

És ilyenkor azért össze is szeded a gondolatod.
Mindig gondolj a bővíthetőségre.
Lehet, hogy ma csak három nyelv fogadható el a személyes adatok között, vagy csak egy legfelősbb végzettség, de lehet, hogy két hónap múlva változtatnak, és akkor szétszdheted az egészet.
Bátran használj nem sztenderd adatformákat. Az érdemjegyet ne int-ként, vagy byte-ként add meg, hanem definiáld érdemjegy típusú adatként. Ilyenkor leírod, hogy ez azt jelenti, hogy, és már meg is van a validálási szabályod későbbre. A legtöbb adatbáziskezelő már úgyis támogatja a User Defined adatokat.

Amikor csinálod, gyakran írjál próbaadatokat, akár papíron is. Ilyenkor kiderülhetnek logikai bukfencek, és jobb már az elején rájönni, mint később az első két tábla elszúrása miatt, az egészet előről kezdeni.

Hát így nagyjából ennyi.

Ja, igen. Józan paraszti ész :) Sokat számít. :))

Előzmény: despil_hun1 (7)
despil_hun1 Creative Commons License 2002.06.27 0 0 7
Hopsz, most találtam egy új Halassy könyvet, a címe: Adatmodellezés.
Így első hallásra, és a másik két könyvet ismerve jónak tűnik :))
Előzmény: despil_hun1 (6)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!