Datu-basearen harremanak

Datu- base batean harreman bakarreko bat gertatzen da taula A erregistro bakoitzean B taula asko lotutako erregistroak izan ditzake, baina B taulan erregistro bakoitzak dagokion erregistro bat bakarrik izan dezake 1. taulan. Harreman bakarreko bat datu-basea datu-basearen diseinu erlazional arruntena da eta diseinu onaren bihotzean dago.

Ikasleen arteko harremana eta irakasteko ikastaroak kontuan hartu. Irakasle batek hainbat ikastaro irakats dezake, baina ikastaroak ez luke harremana izango irakaslearekin.

Hori dela eta, irakasleen taulan erregistro bakoitza erregistro asko egon daiteke ikastaroen taulan. Hau bat-to-askoren harremana da: irakasle bat hainbat ikastaro.

Zergatik harreman bakar bat ezartzea garrantzitsua da

Bat-bateko harremana irudikatzeko, gutxienez bi taula behar dituzu. Ikus dezagun zergatik.

Beharbada irakasleen taula sortu genuen, izen eta ikastaroak irakatsi nahi genituen. Honela diseinatu dezakegu:

Irakasleak eta Ikastaroak
Teacher_ID Teacher_Name Ikastaroa
Teacher_001 Carmen Biologia
Teacher_002 Veronica Matematika
Teacher_003 Jorge English

Zein da Carmenek bi edo gehiago ikastaroak irakasten baditu? Diseinu honekin bi aukera ditugu. Carmenen egungo erregistroan besterik ezin dugu gehitu, honela:

Irakasleak eta Ikastaroak
Teacher_ID Irakaslearen _ izena Ikastaroa
Teacher_001 Carmen Biologia, Matematika
Teacher_002 Veronica Matematika
Teacher_003 Jorge English

Goiko diseinua, ordea, inflexiblea da eta arazoak sor ditzake datuak sartu, editatu edo ezabatu nahian.

Datuen bilaketa zaila egiten du. Diseinu honek datu-basearen normalizazioaren lehenengo printzipioa urratzen du, First Normal Form (1NF) , eta horrek adierazten du taula zelulek datu bakar eta diskretu bat eduki behar dutela.

Beste diseinu alternatibo bat Carmenen bigarren diskoa besterik ez da gehitu:

Irakasleak eta Ikastaroak
Irakaslea _ID Irakaslearen _ izena Ikastaroa
Teacher_001 Carmen Biologia
Teacher_001 Carmen Matematika
Teacher_002 Veronica Matematika
Teacher_003 Jorge English

Honek 1NFra atxikitzen du, baina oraindik ere datu-basearen diseinu txarra da, erredundantzia sartzen delako eta datu-basea oso handia alda dezakeelako. Garrantzitsuagoa dena, datuak ez datoz bat. Adibidez, zer gertatuko al zen Carmen izena? Datuekin lan egiteak bere izena egun bakar batean eguneratu dezake eta bigarren erregistroan eguneratu ezean. Diseinu honek Bigarren Inprimaki Normal (2NF) urratzen du, eta 1NFra atxikitzen da eta erregistro anitzetako erredundantzia saihestu behar du datuen azpimailak mahai anitzetan bananduz eta haien arteko harremana sortuz.

Nola datu-base bat diseinatu One-to-Many harremanak

Irakasleen eta Ikastaroen taula bateko bat-bateko harremana ezartzeko, taulak bi jarriko ditugu eta kanpoko gako bat erabiliz lotuko ditugu.

Hemen, Irakasleak taulan zutabea kendu dugu.

irakasleak
Irakaslea _ID Irakaslearen _ izena
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Eta hemen Ikastaroen taula da. Kontutan izan atzerriko giltza, Teacher_ID, ikastaro bat irakasle bati irakasleen taula batean lotzen duela:

Ikastaroak
Course_ID Course_Name Teacher_ID
Course_001 Biologia Teacher_001
Course_002 Matematika Teacher_001
Course_003 English Teacher_003

Irakasleen eta Ikastaroen taularen arteko harremana garatu dugu kanpoko gako baten bidez.

Honek kontatzen digu Biologia eta Matematika Carmenek irakasten dutela eta Jorgek ingelesa irakasten duela.

Ikusten dugunez, diseinu honek ahalik eta erredundanteak saihesten ditu, irakasle indibidualak hainbat ikastaro irakasteko aukera ematen du, eta bat-bateko erlazioa inplementatzen du.

Datu-baseek bat-to-one harremana eta harreman askotatik asko bateratzen dituzte.