David M. Kroenke Database Processing: Fundamentals, Design, and Implementation Kapitulli i tretë: Modeli Relacional dhe Normalizimi
Hyrje e kapitullit Kemi pranuar një apo më shumë tabela me të dhëna. Të dhënat duhet të ruhen në databazë të re. PYETJE: A duhet që të dhënat të ruhen ashtu si i kemi pranuar, ose duhet që të njëjtat të transformohen për tu ruajtur?
Sa tabela? A duhet ti ruajmë këto dy tabela kështu si janë, ose duhet ti kombinojmë ato në një tabelë në databazën tonë të re?
Por së pari - Duhet ti kuptojmë: Modelin relacional Terminologjinë e modelit relacional
Modeli Relacional Futet në përdorim në 1970 Krijuar nga E.F. Codd Ai ishte një inzhiner i IBM Modeli shfrytëzon fushën e matematikës e quajtur si “algjebra relacionale” Tani përdoret si model standard për DBMS produktet komerciale
Terminet e rëndësishme të Modelit Relacional Entity - Entiteti Relation - Relacioni Functional Dependency – Varshmëria funksionale Determinant - Përcaktues Candidate Key – Çelës kandidat Composite Key – Çelës i përbërë Primary Key – Çelës primar Surrogate Key – Çelës surogat Foreign Key – Çelës i jashtëm Referential integrity constraint – Rregulla e integritetit referencial Normal Form – Forma normale Multivalued Dependency – Varshmëria shumëvlerëshe
Entiteti Entiteti është diçka që mund të identifikohet e që përdoruesit mund ta hetojnë/gjurmojnë: Klientët Kompjuterët Shitjet
Relacioni Produktet relacionale të DBMS i ruajnë të dhënat e entiteteve në relacione, të cilat janë tipe speciale të tabelave Relacioni është tabelë dydimensionale që i posedon këto karakteristika: Rreshtat përmbajnë të dhëna për entitetin Kolonat ruajnë të dhëna për atributet e entitetit Të gjithë entitetet në kolonë janë të të njëjtit tip Secila kolonë ka emër unik Qelitë e tabelës kanë vlera të veçantë Rradhitja e kolonave është e parëndësishme Rradhitja e rreshtave është e parëndësishme Dy rreshta nuk mund të jenë identike
Një relacion
Relacion me vlera me gjatësi të ndryshme
Tabelat që nuk janë relacione: Të hyra të shumëfishta për një qeli
Tabelat që nuk janë relacione: : Tabelë me rradhitje të kërkuar të rreshtave
Terminologji Alternative Edhe pse jo të gjitha tabelat janë relacione, terminet tabelë dhe relacion përdoret në mënyrë të këmbyeshme Këto termine janë ekuivalente:
Varshmëria funksionale Varshmëria funksionale ndodh kur vlera e një atributit(teve) përcakton vlerat e atributit(teve) tjetër: StudentID StudentName StudentID (DormName, DormRoom, Fee) Atributi në anën e majtë të varshmërisë funksionale quhet përcaktues (determinant) Varshmëritë funksionale mund të bazohen edhe në ekuacione: ExtendedPrice = Quantity X UnitPrice (Quantity, UnitPrice) ExtendedPrice Varshmëritë funksionale nuk janë ekuacione!
Varshmëritë funksionale nuk janë ekuacione! ObjectColor Weight ObjectColor Shape ObjectColor (Weight, Shape)
Përcaktuesit e përbërë Përcaktuesit e përbërë: Përcaktues i një varshmërie funksionale që përbëhet nga më shumë se një atribut (StudentName, ClassName) (Grade)
Rregullat e varshmërisë funksionale Nëse A (B, C), atëherë A B edhe A C Nëse (A,B) C, atëherë as A edhe as B nuk përcakton C vetëvetiu
Varshmëritë funksionale në tabelën SKU_DATA
Varshmëritë funksionale në tabelën SKU_DATA SKU (SKU_Description, Department, Buyer) SKU_Description (SKU, Department, Buyer) Buyer Department
Varshmëritë funksionale në tabelën ORDER_ITEM
Varshmëritë funksionale në tabelën ORDER_ITEM (OrderNumber, SKU) (Quantity, Price, ExtendedPrice) (Quantity, Price) (ExtendedPrice)
Çka i bën vlerat përcaktuese/determinuese unike? Përcaktuesi/determinanta është unike në relacion nëse, dhe vetëm nëse, përcakton çdo kolonë tjetër në relacion Ju nuk mund ti gjeni përcaktuesit e të gjitha varshmërive funksionale thjeshtë vetëm duke kërkuar vlera unike në një kolonë: Kufizime e bashkësisë së të dhënave Logjikisht duhet të jetë përcaktues
Çelsat Një çelës është një kombinim i një apo më shumë kolonave që përdoret për identifikim të rreshtave në relacion Çelësi i përbërë është çelës që përbëhet nga dy apo më shumë kolona
Çelësi kandidat dhe primar Çelësi kandidat është çelës që përcakton të gjitha kolonat tjera të relacionit Çelësi primar është çelës kandidat i zgjedhur si primar Ka një dhe vetëm një çelës primar për një relacion Çelësi primar mund të jetë çelës i përbërë Çelësi primar ideal është i shkurtërm numerik dhe që nuk ndryshon kurrë
Çelësat surrogat Çelësi surrogat është një kolonë artificiale e shtuar në relacion që të shërbejë si çelës primar: E shton DBMS I shkurtër, numerik dhe nuk ndryshon kurrë - çelës primar ideal! Ka vlera artificial që nuk kanë kuptim për shfrytëzuesit Normalisht fshihet në forma apo raporte
Çelësat surrogat RENTAL_PROPERTY pa çelës surrogat: SHËNIM: Çelësi primar është i nënvizuar: RENTAL_PROPERTY pa çelës surrogat: RENTAL_PROPERTY (Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate) RENTAL_PROPERTY me çelës surrogat: RENTAL_PROPERTY (PropertyID, Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate)
Çelësat e jashtëm Çelës i jashtëm është çelës primar i një relacioni që vendoset në një relacion tjetër për të formuar link ndërmjet relacioneve: Çelësi i jashtëm mund të jetë kolonë e vetme ose çelës i përbërë
Çelësat e jashtëm SHËNIM: Çelësat primar të relacioneve janë nënvizuar dhe çelësat e jashtëm janë në italics : DEPARTMENT (DepartmentName, BudgetCode, ManagerName) EMPLOYEE(EmployeeNumber, EmployeeName, DepartmentName)
Rregulla e integritetit regerencial Rregulla e integritetit referencial është fjali që kufizon vlerat e çelësit të jashtëm me vlerat për çelsin primar ekzistues në relacionin korespondues
Çelësi i jashtëm me rregullën e integritetit referencial SHËNIM: Çelësi primar i relacionit është nënvizuar dhe çelësi i jashtëm është në italics: SKU_DATA (SKU, SKU_Description, Department, Buyer) ORDER_ITEM (OrderNumber, SKU, Quantity, Price, ExtendedPrice) Where ORDER_ITEM.SKU must exist in SKU_DATA.SKU
Format Normale Relacionet janë kategorizuar si forma normale varësisht se çfarë anomalish ose problemesh shfaqen:
Format Normale 1NF – Tabela që kualifikohet si relacion themi se është në 1NF 2NF – Relacioni është në 2NF nëse të gjitha atributet e tij që nuk janë çelës janë të varur nga të gjithë çelësat primar 3NF – relacioni është në 3NF nëse është në 2NF dhe nuk ka asnjë përcaktues përveç çelësit primar Boyce-Codd Normal Form (BCNF) – Relacioni është në BCNF nëse çdo përcaktues është çelës kandidat
Relacioni në 1NF Pamë më parë se relacioni duhet ti ketë këto veçori: Relacioni në databazë ka emër unik. Çdo qeli e relacionit përmban saktësisht një vlerë atomike. Çdo atribut ka emër të përveçëm (distinct) përbrenda relacionit. Vlerat e atributit janë të domenit të njëjtë. Rradhitja e atributeve nuk luan rol kyç. Çdo rresht është i përveçëm; nuk ka rreshta duplikat. Rradhitja e rreshtave nuk luan rol kyç, teoritikisht. Në atë rast themi se relacioni është në FORMËN E PARË NORMALE (1NF).
Një databazë : 1NF First Constraints - Kufizime Çelës primar : S# , P# Qyteti ka status specifik Një Supplier ndodhet në një qytet
Varshmëria funksionale Përshkruan raportin ndërmjet atributeve në relacion Nëse A edhe B janë atribute të relacionit R, B varet funksionalisht nga A , nëse çdo vlerë e a në R ndërlidhet me saktësisht një vlerë të B në R E shënojmë A B Diagrami i varshmërisë funksionale Determinanta/Përcaktuesi Përcaktuesi i varshmërisë funksionale i referohet atributit ose grupit të atributeve në pikën fillestare të shigjetës B funksionalisht i varur nga A A B
Varshmëritë funksionale në FIRST Status QTY P# City
Varshmëria e plotë funksionale Varshmëria e plotë funksionale tregon se nëse A edhe B janë atribute të relacionit, B është në varësi të plotë funksionale të A nëse B funksionalisht varet nga A, por jo nga një nënbashkësi e caktuar e A. p.sh. First.(S# , Status ) First.City First. S# First.City Në fakt, varshmëria e plotë funksionale është koncept më i rëndësishëm se varshmëria funksionale
Një databazë : 1NF First Constraints - Kufizime Çelës primar : S# , P# Qyteti ka status specifik Një Supplier ndodhet në një qytet
Procesi i Normalizimit: 2NF Relacioni është në formën e dytë normale nëse është në formën e parë normale dhe çdo atribut që sështë çelës primar është në varësi të plotë funksionale nga çelësi primar Second SP Reduktimi përbëhet nga një projeksion i përshtatshëm Shtojmë edhe një Supplier 5
Varshmëritë funksionale në SP edhe Second Eliminimi i varshmërisë parciale funksionale QTY P# S# Status City
Procesi i Normalizimit: 3NF Relacioni është në formën e tretë normale nëse është në formën e parë dhe të dytë normale, dhe ku asnjë atribut që sështë çelës primar është tranzitivisht i varur nga çelësi primar. SC CS
Varshmëritë funksionale në SP , SC edhe CS QTY P# Eliminimi i varshmërive tranzitive S# City Status City
Procesi i Normalizimit: BCNF Relacioni është në formën normale Boyce-Codd fnëse dhe vetëm nëse çdo përcaktues/determinantë është çelës kandidat. Ky definicion nuk iu referohet formave tjera normale. BCNF është më e fortë se 3NF
Eliminimi i anomalive nga varshmëritë funksionale në relacionale Vendosi të gjitha relacionet në Boyce-Codd Normal Form (BCNF):
Vendosja e relacionit në BCNF: EQUIPMENT_REPAIR
Vendosja e relacionit në BCNF: EQUIPMENT_REPAIR EQUIPMENT_REPAIR (ItemNumber, Type, AcquisitionCost, RepairNumber, RepairDate, RepairAmount) ItemNumber (Type, AcquisitionCost) RepairNumber (ItemNumber, Type, AcquisitionCost, RepairDate, RepairAmount) ITEM (ItemNumber, Type, AcquisitionCost) REPAIR (ItemNumber, RepairNumber, RepairDate, RepairAmount) Where REPAIR.ItemNumber must exist in ITEM.ItemNumber
Vendosja e relacionit në BCNF: Relacione të reja
Vendosja e relacionit në BCNF: SKU_DATA
Vendosja e relacionit në BCNF: SKU_DATA SKU_DATA (SKU, SKU_Description, Department, Buyer) SKU (SKU_Description, Department, Buyer) SKU_Description (SKU, Department, Buyer) Buyer Department SKU_DATA (SKU, SKU_Description, Buyer) BUYER (Buyer, Department) Where BUYER.Buyer must exist in SKU_DATA.Buyer
Vendosja e relacionit në BCNF: Relacione të reja
Varshmëritë shumëvlerëshe Varshmëritë shumëvlerëshe ndodhin kur përcaktuesi përcakton një bashkësi të caktuar të vlerave: Employee Degree Employee Sibling PartKit Part Përcaktuesi i varshmërisë shumëvlerëshe nuk mund të jetë çelës primar
Varshmëritë shumëvlerëshe
Procesi i Normalizimit: 4NF CTX CTX.Course CTX.Teacher CTX.Course CTX.Text Hiqen varshmëritë shumëvlerëshe 4NF
Thank You! PYETJE???