A dependenza di a basa di basa hè un tema ch \ ubligatoriu chì spessu confusite l'aluminii è i prufessiunatori di dati di base. Furtunatamente, ùn sò micca cusì complicati è ponu esse illustrati through l'usu di un nùmmuru di esempi. In questu articulu, analizà e tipi di dependenza di dati cumuni.
Dependenzi di Detaziata / Dependenzi Funziunale
A dependenza si trova in una basa di basa chì l'infurmazioni guardati in a stessa basa di basa di tabulazione uniquely determina una altra infurmazione guardata in a listessa tavula. Pudete dinuncià cum'è una rilazioni induve sapè u valore di un attributu (o un settore di attributi) hè abbastanza per dicu u valore d'altre attributu (o settore di attributi) in u listessu tavulu.
Dice chì quì hè una dependenza entre attributi in una tavula hè a stessa chì dici chì ci hè una dependenza funziona tra l'attributi. Se ci hè una dependenza à una basa di dati chì l' attribuite B hè dipendente da l'attributu A, scrivite cusì "A -> B".
Per esempiu, In un tabellu, u listinu di e persone di l'impiegati di u persunale di l'Assicuranza Soziale (SSN) è u nomu, pò esse dichje chì u nomu addendumine da SSN (o SSN -> nom) perchè u nomu di l'empleu pò esse pricate da u so SSN. In ogni casu, a declarazione inversa (nomu -> SSN) hè micca veru perchè più di un impiigatu possu u nomu stessu ma in parechji SSNs.
Trivial Functional Dependencies
A dependenza funziona trivial si trova quannu discurbe una dependenza funziona di un attributu nantu à una recopilazione di attributi chì includenu l'attributu originali. Per esempiu, "{A, B} -> B" hè una dependenza funziona trivial, cum'è "{name, SSN} -> SSN". Stu tipu di dependenza funziona si chjamava triviale perchè pò esse derivati da u sensu cumunu. Hè bisogna chì si avà cunnosce u valore di B, u valore di B pò esse uniquamente determinatu da quellu sapè.
E Dependenzi Funziunali
A casu di a dependenza funziona cumpletu dapoi oghje di i vostri bisogni di una dependenza funzionale è u settore di attributi à u mancavanu di a storia di dependenza funziona ùn pò esse micca ridotta più. Per esempiu, "{SSN, age} -> name" hè una dependenza funziona, ma ùn hè micca una dependenza funziona chjaru perchè pò derà l'età da l'ubligatu di u frascendi senza affaccià a relenza di dependenza.
Dependenzii Transitivu
E dependenzii transitivu si produci quan hè una relazione indiretta chì provoca una dependenza funziona. Per esempiu, "A -> C" hè una dependenza transitivu quandu hè veru solu perchè sia "A -> B" è "B -> C" sò veri.
Dependenzi Multivaluati
E dependenzii multipugnate sò quandu a prisenza di una o più fille in una tavuletta implica a prisenza d'una o più di altre fila in quella mesa. Per esempiu, imagine una sucetà di l'auto chì fabrica parechje mudelli di veicchio, ma sempre fa fà cume culuri russetti è blu di ogni mudellu. Se tenete una tavulera chì cuntene u nome di mudellu, culore è annu di ogni vittura chì l'impurtanza fabrica, hè una dependenza multivalute in quella tavola. Se ci hè una fila per un certu nomu mudernu è annu in u celu, ci devi ancu esse una fila similare chì currisponde à a versione russa di quellu stessu vittura.
Imperanza di e dependenziali
A dependenza di a basa di a basa hè impurtante per cumprà perchè pruvenenu i blocchi basi di basa usati in a normalizazione di basa di basa . Per esempiu:
- Per una table da esse in seconda forma normale (2NF) , ùn deve micca esse casu d'un attributu non primu in a tavula chì funziona dipende à un subunite di una chjave di u candidatu .
- Per una tavula per esse in terza forma normale (3NF) , ogni attribuutore non-primu devi esse una dependenza funziona nativa per ogni chjave di u candidatu.
- Per una tavula per esse in Boyce-Codd Normal Form (BCNF) , ogni dependenza funziona (altri di e dependenziali trivia) devessu esse in un superculu .
- Per una table per esse in quarta forma normale (4NF) , ùn deve micca avè dependenza multivalute.