Kio estas Datumaraj Dependecoj?

Datumaraj dependencoj estas temo, kiu ofte konfuzas ambaŭ studentojn kaj datumojn de datumbazoj. Feliĉe, ili ne estas tiel komplikaj kaj plej bone povas esti ilustritaj per la uzo de kelkaj ekzemploj. En ĉi tiu artikolo, ni ekzamenas komunajn datumojn pri datumbazoj.

Datumaraj Dependecoj / Funkciaj Dependecoj

Dependeco okazas en datumbazo kiam la informo stokita en la sama datumbaza tabelo distingas aliajn informojn konservitajn en la sama tabelo. Vi povas ankaŭ priskribi ĉi tion kiel rilato, kie scii la valoron de unu atributo (aŭ aro de atributoj) sufiĉas por diri al vi la valoron de alia atributo (aŭ aro de atributoj) en la sama tabelo.

Diranta ke estas dependeco inter atributoj en tablo estas la sama, kiu diras, ke ekzistas funkcia dependeco inter tiuj atributoj. Se ekzistas dependeco en datumbazo tia, ke la atributo B dependas de atributo A, vi skribus ĉi tion kiel "A -> B".

Ekzemple: En tablo kunmetanta dungitajn karakterizaĵojn inkluzive de Socia Sekureca Nombro (SSN) kaj nomo, ĝi povas diri, ke nomo dependas de SSN (aŭ SSN -> nomo) ĉar la nomo de oficisto povas esti unike determinita de sia SSN. Tamen, la reversa deklaro (nomo -> SSN) ne estas vera ĉar pli ol unu dungito povas havi la saman nomon sed malsamajn SSNojn.

Banalaj Funkciaj Dependecoj

Banala funkcia dependeco okazas kiam vi priskribas funkciajn dependecon de atributo en kolekto de atributoj, kiuj inkluzivas la originalan atributon. Ekzemple, "{A, B} -> B" estas banala funkcia dependeco, kiel estas "{nomo, SSN} -> SSN". Ĉi tiu tipo de funkcia dependeco estas nomata banala ĉar ĝi povas esti derivita de komuna senso. Estas preterlasas, ke se vi jam scias la valoron de B, tiam la valoro de B povas esti unike determinita per tiu scio.

Plena Funkciaj Dependecoj

Plena funkcia dependeco okazas kiam vi jam plenumas la postulojn por funkcia dependeco kaj la aro de atributoj sur la maldekstra flanko de la funkcia dependeca deklaro ne plu povas esti reduktita. Ekzemple, "{SSN, age} -> nomo" estas funkcia dependeco, sed ĝi ne estas plena funkcia dependeco ĉar vi povas forigi aĝon de maldekstra flanko de la deklaro sen efiki la dependecon.

Transitivaj dependecoj

Transitivaj dependecoj okazas kiam nerekta rilato kaŭzas funkciajn dependecojn. Ekzemple, "A -> C" estas transitiva dependeco kiam ĝi estas vera nur ĉar ambaŭ "A -> B" kaj "B -> C" estas veraj.

Multivalaj Dependecoj

Multivalaj dependecoj okazas kiam la ĉeesto de unu aŭ pli da vicoj en tablo implicas la ĉeeston de unu aŭ pli da aliaj vicoj en tiu sama tabulo. Ekzemple, imagu aŭton kompanio kiu fabrikas multajn modelojn de aŭto, sed ĉiam faras ambaŭ ruĝajn kaj bluajn kolorojn de ĉiu modelo. Se vi havas tablon, kiu enhavas la modelan nomon, koloron kaj jaron de ĉiu aŭto, la kompanio fabrikas, ekzistas multivala dependeco en tiu tablo. Se estas vico por certa modelo-nomo kaj jaro en bluo, ankaŭ devas esti simila vico responda al la ruĝa versio de tiu sama aŭto.

Graveco de Dependecoj

Datumaraj dependencoj estas gravaj por kompreni, ĉar ili provizas la bazajn konstruajn blokojn uzataj en datumbazo normala . Ekzemple: