Page 84 - Demo
P. 84
TEMATIKA 3 BAZAT E TË DHËNAVE DHE MENAXHIMI I TYRELënda1 dhe Lënda2, siç tregohet në tabelën 2. Në këtë rast tabela 1 nuk plotëson kushtin e dytë, ku dy nga nxënësit në fushën Lënda kanë dy emra lëndësh, ku marrin pjesë. Tabela 2 nuk plotëson kushtin e katërt, sepse dy kolona kanë të njëjtin emër dhe mbajnë të dhëna të të njëjtit lloj. Zgjidhja është shumë e thjeshtë. Ju duhet të ndani këto vlera në dy vlera atomike, si tregohet në tabelën 3. Edhe pse disa nga të dhënat përsëriten, tabela 3 është në formën e parë normale.ID Emri Lënda101 Aron OS101 Aron CN103 Bjork Java102 Ana C102 Ana C++ID Emri Lënda101 Aron OS, CN103 Bjork Java102 Ana C, C++ID Emri Lënda1 Lënda2101 Aron OS CN103 Bjork Java102 Ana C C++Tabela 1: Tabela ‘’Lënda” Tabela 2: Tabela “Lënda” Tabela 3: Tabela ‘’Lënda” në në formën e parë normale Forma e dytë normaleQë një tabelë të jetë në formën e dytë normale, duhet të plotësojë rregullat e mëposhtme:1. Të jetë në formën e parë normale;2. Të mos ketë varësi të pjesshme. Çdo fushë jo çelës duhet të jetë e varur plotësisht nga çelësi kryesor. Varësia e pjesshme ekziston, kur për një çelës të përbërë nga dy çelësa kryesorë, por që duken si unik, një njësi/atribut i tabelës varet vetëm nga një pjesë e çelësit kryesor dhe jo nga i gjithë çelësi kryesor. Supozojmë se kemi tabelën Nxënës, siç paraqitet në tabelën 4. Në këtë tabelë çelësi kryesor është ID dhe ka vlerë unike për çdo rresht në tabelë. Ju mund të përdorni ID-në e studentit për të marrë të dhënat që ju doni nga tabela edhe në rastin kur nxënësit mund të kenë emrin e njëjtë. Nëse unë di ID –në e nxënësit mund të kërkoj, për shembull, se në cilën klasë është nxënësi me ID=10 ose si e ka emrin nxënësi me ID=10. Pra në këtë rast, të gjithë të dhënat varen nga çelësi kryesor. Kjo është varësia e plotë nga çelësi kryesor.Po çfarë është varësia e pjesshme? Le të krijojmë një tabelë, ku dy fusha të ndryshme përbëjnë çelësin kryesor. Marrim tabelën Lënda, që ruan emrat e lëndëve me fushat ID, Emri_lëndës dhe tabelën Rezultatet, që ruan rezultatet e çdo nxënësi për çdo lëndë dhe mësuesin përgjegjës, treguar në tabelën 5. Në tabelën Rezultatet ju mund të thoni se çelësi kryesor është ID_rezultat, por ID_nxënës dhe ID_lënda së bashku përbëjnë një çelës kryesor më kuptimor, sepse ju mund të merrni nga tabela çdo informacion të nevojshëm duke përdorur ata. Nëse do t’ju kërkonin të gjenit notën e studentëve me ID_student = 10, a mund ta gjeni ju këtë nga tabela? Jo, sepse ju nuk dini notën e kujt lënde ju kërkohet. Edhe nëse ju jepet ID-ja e lëndës, ju nuk do të nxirrni dot informacion se nuk dini për kë student ju kërkohet. Kështu që ju duhet ID_nxënës dhe ID_lënda për të identifikuar në mënyrë unike një rresht të tabelës. Kolona Mësues në këtë rast varet vetëm nga ID_lënda dhe jo nga ID_nxënës, pra varet vetëm nga lënda dhe jo nga nxënësi e kjo është varësi e pjesshme. Që një tabelë të jetë në formën e dytë normale, kjo gjë nuk duhet të ekzistojë. Si mund të zgjidhet ky problem? Ka disa mënyra për ta zgjidhur. Një mënyrë është të fshijmë kolonën Mësues nga tabela Rezultate dhe ta shtojmë në tabelën Lënda, siç tregohet në ID Emri NrRegjistrimit Klasa Adresa10 Akon 07-WY IIA Tiranë11 Akon 08-WY IB KamëzTabela 4: Tabela “Nxënës”Tabela 5: Tabela “Rezulatatet”ID ID_nxënës ID_lënda Nota Mësues1 10 1 70 Mësuesi Java2 10 2 75 Mësuesi C++3 11 1 80 Mësuesi Java82

