01 Bazat e te dhenave relacionale



Relational Database Management Systems (RDBMS)
Sistemet relacionale te manaxhimit te te dhenave

Koncepti i bazave te dhenave relacionale eshte prezantuar per here te pare nga E. F. Codd ne artikullin e tij “A Relational Model of Data for Large Shared Data Banks” ne vitin 1970. Ne dallim nga sistemet e meparshme  (rrjet dhe hierarkik), sistemet relacionale bazohen ne modelin e te dhenave relacional qe bazohet ne algjebren relacionale.

Koncepti baze i modelit relacional eshte relacioni (= tabela), prandaj ne nje sistem relacional tabela eshte e vetmja strukture per ruajtjen e te dhenave. Tek nje kolline e nje rreshti ruhet me saktesi nje vlere skalare.

Per te ilustruar bazat e te dhenave relacionale do te bazohemi tek baza e te dhenave Northwind.

Po paraqesim me poshte disa nga tabelat e kesaj baze te dhenash.


Sic duket baza e te dhenave Northwind ruan informacion mbi shitjet e nje kompanie

Tabela Orders

Tabela Orders ruan informacion mbi porosite e kryera ne kompani. Per cdo porosi ruhen disa informacione nder te cilat disa jane informacione te detyrueshme e disa opsionale. 
Keshtu per nje porosi ruhet : 
  • Kodi ne kollonen me emrin OrderId,
  • Kodi i klientit ne kollonen me emrin CustomerID, 
  • Kodi i punonjesit qe realizoi kete porosi ne kollonen me emrin EmployeeId, 
  • Data e porosise ne kollonen me emrin OrderDate 
si edhe te tjera informacione si 
  • daten kur kerkohet qe porosia te levrohet tek klienti, 
  • ne cilen date duhet te nise transporti(Shippeddate), 
  • kodi i kompanise se transportit(ShipVia) etj.

Tabela Employees




Tabela Employees ruan informacion mbi punonjesit e kompanise. Per cdo punonjes ruhen disa informacione nder te cilat disa jane informacione te detyrueshme e disa opsionale. 
Keshtu per nje punonjes ruhet : 
  • Kodi ne kollonen me emrin EmployeeId,
  • Mbiemri i punonjesit ne kollonen me emrin Lastname, 
  • Emri i punonjesit  ne kollonen me emrin Firstname, 
  • Pozicionin e punes se punonjesit  ne kollonen me emrin Title
  • Datelindjen ne kollonen me emrin Birthdate
  • Daten e  marrjes ne pune ne kollonen me emrin Hiredate
si edhe  informacione te tjera mbi punonjesit.



Tabela Customers


Tabela Customers ruan informacion mbi klientet. Per cdo klient ruhen disa informacione nder te cilat disa jane informacione te detyrueshme e disa opsionale. 
Keshtu per nje klient ruhet : 
  • Kodi ne kollonen me emrin CustomerId,
  • Emri i kompanise ne kollonen me emrin CompanyName, 
  • Personin e kontaktit ne kollonen me emrin ContactName, 
  • Pozicionin e punes se personit te kontaktirne kollonen me emrin ContactTitle
  • Adresen 
  • Qytetin
si edhe  informacione te tjera.


Tabela OrderDetails


Tabela OrderDetails ruan informacion mbi detajet e porosive. Per cdo detaj (rresht te porosise, kujtoni nje fature qe keni pare se fundmi) ruhen informacionet e meposhtme: 
  • Kodi i porosise  ne kollonen me emrin OrderId,
  • Kodi i produktit ne kollonen me emrin ProductId, 
  • Cmimi i produktit  ne kollonen me emrin UnitPrice, 
  • Sasine e porositur nga ky produkt ne kollonen me emrin Quantity
  • Ndonje ulje te mundshme ne kollonen me emrin Discount 
Tabela Products



Tabela Products ruan informacion mbi produktet qe shet kompania. Per cdoprodukt ruhen informacionet e meposhtme: 
  • Kodi i Produktit ne kollonen me emrin ProductId,
  • Emri i produktit ne kollonen me emrin ProductName, 
  • Kodi i furnitorit ( te cilet ruhen ne nje tabele me vehte me emrin Suppliers ) ne kollonen me emrin SupplierId , 
  • Kodi i kategorise se produktit (te cilat ruhen ne nje tabele me vehte Categories) 
  • Cmimin e produktit  ne kollonen me emrin UnitPrice
  • sasine ne stok  ne kollonen me emrin UnitsInStock 
  • etj

Sic vihet re edhe nga baza e te dhenave e marre si shembull:
  • Rreshtat e nje tabele nuk kane ndonje rend te paracaktuar
  • Kollonat ne nje tabele nuk kane ndonje rend te percaktuar
  • Nuk kemi dy kollona me te njejtin emer brenda te njejtes tabele 
  • Mund te kemi kollona me te njejtin emer nese ato ndodhen ne dy tabela te ndryshme ( Per shembull kollona OrderId ne tabelen Orders dhe kollona OrderId ne tabelen OrderDetails si edhe EmployeeId ne tabelen Employees dhe kollona EmployeeId ne tabelen Orders)
  • Te gjitha te dhenat qe ruhen ne nje kollone te nje rreshti te tabeles jane skalare
  • Ne cdo tabele, ka te pakten nje kollone (ose kombimin kollonash si ne tabelen Order Details kollonat OrderId dhe ProductID) qe permban vlera unike. Ne modelin relacional te te dhenave keto kollona qe sherbjene si identifikues te rreshtave referohen si celes kandidat. Nese nje tabele ka disa celesa kandidate ne nje tabele , dizenjuesi i bazes se te dhenave percakton njerin prej celesave kandidate si celesi primar i tabeles, psh OrderId eshte celes primar i tabeles Orders, EmployeeId i tabeles Employees dhe CustomerId i tabeles Customers, ndersa ne tabelen OrderDetails celesi primar perbehet nga kombinimi i dy kollonave OrderId dhe ProductId
  • Ne asnje nga tabelat nuk ekzistojne dy rreshta me permbajtje identike

ċ
TS101114818.accdt
(3801k)
Endrit Xhina,
Nov 16, 2014, 11:49 PM