Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Vlerësime
  • Dizajni i bazës së të dhënave. Përcaktimi i fushave me vlera unike në çdo rekord

Dizajni i bazës së të dhënave. Përcaktimi i fushave me vlera unike në çdo rekord

1.1. Llojet e tabelave;
1.2. Llojet e drejtorive;
1.3. Llojet e ligamenteve;
2. Përgjithësimi i klasifikimit;
2.1. Klasifikimi në formë tabelare;
2.2. Klasifikimi në formë skematike;
3. Disa komente për zbatimin e klasifikimit;
3.1. Zbatimi i klasifikimit gjatë normalizimit të tabelave;
konkluzioni.

Arsyetimi për artikullin dhe disa koncepte kryesore

Shumë shpesh kam ndjekur trajnime në disiplinën “Bazat e të dhënave”. Pasi studiova veten ... Në një farë mënyre madje më duhej të zhvilloja një kurs të tërë për miqtë dhe të njohurit. Gjatë trajnimit, vura re se lindin vështirësi tashmë në fazën e të kuptuarit të tabelave dhe mënyrën e përdorimit të tyre. Shumë thjesht nuk mundën dhe nuk mund të zhvillojnë bazat e të dhënave më të thjeshta. Pas një vështrimi më të afërt të konceptit të tabelave dhe një klasifikimi të vogël, vështirësia e perceptimit të tabelave në bazat e të dhënave relacionale pothuajse gjithmonë zhduket. Kështu që!

Ky artikull do të shqyrtojë një klasifikim të vogël të tabelave bazuar në integritetin dhe tepricën. Çfarë do të thotë? Kjo do të thotë se do të jepen shembuj që përshkruajnë se çfarë strukture tabele mund të bëni për të parandaluar (përpiquni të parandaloni) tepricën dhe për të arritur qëndrueshmëri në bazat e të dhënave relacionale.

Për mirëkuptim, ne do të japim përkufizime të shkurtra integriteti dhe teprica e të dhënave:

Integriteti i të dhënave- kjo është vetia e aftësisë për të rivendosur të tjerët nga një e dhënë, duke mos humbur unitetin semantik të këtyre të dhënave dhe marrëdhënien midis tyre (midis të dhënave).

Teprica e të dhënave- Kjo është gjendja e bazës së të dhënave në të cilën të dhënat shtesë janë të pranishme në tabela.

Integriteti i të dhënave mund të rrezikohet si rezultat i operacioneve të modifikimit të të dhënave. Nëse operacionet e fshirjes dhe përditësimit janë të ndaluara në bazën e të dhënave, atëherë integriteti mund të cenohet vetëm si rezultat i operacionit të shtimit, si dhe skriptet e shkruara gabimisht për shfaqjen e të dhënave.

1.1. Llojet e tabelave

Le të shkojmë pak më thellë në një klasifikim të vogël të tabelave sipas llojeve të strukturës së tyre. Ndani tabelat në dysh pamje e përgjithshme... Lloji i parë do të jetë tabela referencë, e dyta do të jenë tabela lidhjesh.

Figura 1. Referencat dhe lidhjet

Informacioni në tabela mund të ndahet në dy lloje. Informacion që përshkruan objektet (subjektet), lidhjet dhe informacionet që përshkruan veprimet, proceset, ngjarjet, etj.

Librat e referencës përmbajnë informacione rreth objekteve dhe lëndëve, lidhjeve. Paketat përmbajnë informacione rreth veprimeve, proceseve, ngjarjeve, etj.

Paketat ruajnë të dhënat e marra nga tabelat e librave të referencës. Meqenëse është e padobishme të përsëriten të njëjtat të dhëna gjatë përshkrimit të objekteve (subjekteve) dhe kur përshkruhen ndërveprimin e tyre, të dhënat për objektet (subjektet) futen në drejtori, dhe tabelat e lidhjeve nuk ruajnë të dhëna të objekteve (subjekteve) në formë e pastër, por vetëm lidhje me to (çelës i huaj). Kështu, lidhjet ruajnë të dhëna për ndërveprimin e objekteve (subjekteve) dhe lidhjet me vetë objektet (subjektet) (çelës i huaj). Këto "lidhje" janë çelësat kryesorë në tabelat e referencës. Por më shumë për këtë më vonë...

Dallimi midis një libri referimi dhe një lidhjeje shprehet në faktin se tabelat e referencës mund të jenë të pavarura dhe të pavarura (d.m.th., kur lexoni të dhënat e disa librave referencë, në përgjithësi mund të kuptoni semantikën), dhe tabelat e lidhjes pothuajse kurrë.

Drejtoritë mund të ndahen në disa lloje. Këto janë referenca statike, statike-dinamike dhe dinamike. Sigurisht, vështirë se mund të quhet një libër referimi absolutisht statik, pasi gjithçka në këtë botë mund të ndryshojë. Ose pothuajse gjithçka.

Referencë statike- një direktori, të dhëna për objekte, subjekte, lidhje në të cilat ose nuk pësojnë modifikime pas modifikimit fillestar, ose modifikohen aq rrallë sa mund të neglizhohet.

Një shembull i drejtorive të tilla është një listë e muajve me emra dhe numra, një listë e ditëve të javës, një listë e stinëve, një listë e oqeaneve, e kështu me radhë ...

Tabela 1. Një shembull i drejtorive statike

- një direktori, e cila ruan të dhënat në lidhje, nëse lidhjet janë të natyrës referuese. Një referencë e tillë mund të përmbajë çelësa të huaj.

Shumica një shembull i mirë do të ketë një tabelë me të dhëna mjekësore si pesha. Lista e njerëzve, pesha e të cilëve po matet nuk ndryshon shumë shpesh. Por të dhënat për peshën e tyre mund të ndryshojnë çdo ditë. Librat e referencës statike-dinamike janë të vetmet libra referencë ku mund të përsërisni me vetëdije çdo informacion. Një shembull tjetër do të ishte një udhëzues pagash sipas titullit të punës (sipas kodit të punës).

Tabela 2. Një shembull i drejtorive statike-dinamike

Drejtoritë dinamike- këto janë tabela, të dhëna për objekte, subjekte, lidhje në të cilat ndryshojnë shpesh dhe përdoren në tabela të tjera. Ato ndryshojnë nga drejtoritë statike vetëm në frekuencën e modifikimit të të dhënave në to.

Një shembull i tabelave të tilla do të ishin listat e projekteve. Në fakt, të dhënat për hapjen ose mbylljen e projekteve mund të gjenden në vetë drejtorinë e projekteve, gjë që në shumicën e rasteve është e pasaktë dhe cenon integritetin. Nga ana tjetër, nëse ruani historinë e ndryshimeve për hapjen dhe mbylljen (pezullimin) e projekteve, mund të merrni tepricë të të dhënave. Integriteti dhe teprica e të dhënave do të luftojnë me njëri-tjetrin për një kohë të gjatë, ashtu si dimri dhe vera.

Tabela 3. Një shembull i drejtorive dinamike


Figura 2. Llojet e drejtorive

Tabelat e lidhjeve mund të ndahen në dy lloje.

atë libra-referencë(do të sqarojmë menjëherë se një lidhje referimi nuk është një referencë, ajo është emërtuar kështu sepse ka fusha në të që formojnë një referencë, por nuk mund të theksohen në një referencë). Një tabelë që ruan çelësat e huaj, të dhëna që nuk janë referencë dhe fusha që përmbajnë të dhëna që formojnë një referencë, por që nuk mund të ndahen në një tabelë të veçantë referimi.

Një shembull i një libri referues lidhjesh do të jetë një tabelë e transaksioneve të pagesave. Ose një tabelë me të dhëna për një ndeshje futbolli.

Tabela 4. Një shembull i një pakete libri referues

DHE tufë(po, vetëm një bandë). Kjo është një tabelë që ruan vetëm çelësat e huaj dhe të dhënat që nuk mund të klasifikohen si referencë, si data ose vlerat e fushave logjike.

Një shembull i një pakete do të jetë tabela automatike e regjistrimit të terminalit të përpunimit të të dhënave.
Nga rruga, është e lehtë të hamendësohet se lidhjet pothuajse kurrë nuk përdoren askund, pasi më shpesh ka të dhëna që mund të shkruhen në bazën e të dhënave, por nuk përmbahen në librat e referencës, kështu që është e pamundur të lidhësh një çelës të huaj me to.


Tabela 5. Një shembull i një pako

Është e nevojshme të sqarohet se cilat janë këto fusha që formojnë një libër referimi, por nuk mund të ndahen në një tabelë të veçantë referimi. Shembuj të fushave të tilla janë fushat "koment", "ankesë", "përshkrim", "sugjerim". Me një fjalë, nëse jepni një shembull popullor, atëherë fusha "mesazh" në tabelën e bazës së të dhënave të çdo rrjeti social ...


Figura 3. Llojet e ligamenteve

2. Përgjithësim i klasifikimit

2.1. Klasifikimi në formë tabelare

Pamje tavoline Përshkrim Shembuj të Pro (+) Minuset (-)
Referencë statike Tabela. Të dhënat prej tij merren për tabela të tjera. Vetëm çelësi primar mund të përdoret nga referenca në tabela të tjera. Një direktori statike duhet të përmbajë informacion që ose nuk ndryshon fare, ose ndryshon aq rrallë sa mund të neglizhohet. Një referencë statike referohet (çelës i huaj) kur ju duhet të merrni emra, emërtime, norma, tregues sasiorë ose cilësorë. Të tjera. Drejtoria (emrat dhe numrat) e muajve.
Drejtoria e depove dhe punishteve të ndërmarrjes.
Manuali i rregullave të lojës.
Ndonjëherë zëvendëson funksionet e sistemit DBMS lejon punë më fleksibël me disa të dhëna. Në rast se ndryshon informacioni i rrallë i ndryshuar, paralajmëron kundër pasojave serioze. Përdorimi i një tabele me çdo strukturë mund t'ju ngadalësojë nëse tabela zëvendëson ruajtjen e sistemit.
me duhet te shkruaj funksione shtesë dhe përpunimi për një tabelë të caktuar, të cilat nuk janë gjithmonë të optimizuara siç duhet. Në disa raste, nuk është e mundur të optimizohet.
Referenca statike-dinamike Tabela. Të dhënat prej tij merren për tabela të tjera. Nga një referencë në tabela të tjera, nuk mund të përdorni çelësin e huaj të kësaj reference, por mund të përdorni çelësin kryesor. Paga sipas referencës së punës. Libër referimi (madhësia e këpucëve, pesha, lartësia, madhësia e kokës) të parametrave fiziologjikë. Drejtori (menaxherët, kompanitë) që përmban kompanitë dhe menaxherët që këto kompani i shërbejnë dhe marrin parasysh. Referenca, e ndarë nga pako-libri i referencës, nuk zhduket askund dhe nuk ka ndonjë lidhje relacionale që do ta lejonte atë të shndërrohej në një referencë statike ose dinamike. Kjo do të thotë se është gjithmonë e tepërt.
Drejtori dinamike Tabela. Të dhënat prej tij shpesh merren për tabela të tjera. Vetëm çelësi primar mund të përdoret nga referenca në tabela të tjera. Një referencë dinamike duhet të përmbajë informacione që ndryshojnë shpesh. Libri i referencës së klientit. Drejtoria e furnitorëve. Drejtoria e kontraktorëve. Libri i referencës së menaxherëve të kompanisë. Drejtoria e punëtorëve. Libri referues i studentëve. Ju lejon të ruani të dhëna dinamike, duke bërë të mundur referencën e tyre në mënyrë të paqartë. Më shpesh, lloji akumulues nuk ndahet, gjë që krijon një tepricë të caktuar.
Referenca e lidhjes Tabela. Të dhënat prej tij nuk mund të përmbahen në tabela të tjera, por të dhënat në tabela të tjera mund të krijohen në bazë të tyre. Transaksionet e pagesave. Shitjet. Lëvizjet ndërfaktorale. Orari i transportit. Lejon kryerjen e normalizimit fleksibël sipas skemës "Lidhja-referencë" = "Lidhja" + "Referenca statike-dinamike". Pas normalizimit, një lidhje referimi kthehet në një lidhje dhe minimizon tepricën e të dhënave pa ndikuar në integritetin, megjithatë, ajo nuk është e ndashme dhe nuk mund të optimizohet kur arkivohet në tabelën aktuale.
Tufë Tabela. Të dhënat prej tij nuk mund të përmbahen në tabela të tjera, por të dhënat në tabela të tjera mund të krijohen në bazë të tyre. Tabela nuk mund të përmbajë tupa, vlerat e atributeve të të cilave janë të pandashme dhe jo unike. Regjistri automatik i gabimeve në program. Regjistri i kërkesave të serverit. Gjurmoni rezultatet. Raporte mbi shkarkimin dhe ngarkimin e komponentëve. Raportet automatike të sigurisë. Paketimi minimizon tepricën e të dhënave pa ndikuar në integritetin. Akumulimi është një tabelë e pandashme. Vështirë për t'u optimizuar.

Tabela 6. Klasifikimi

2.2. Klasifikimi në formë skematike



Figura 4. Skema e klasifikimit të tabelave në bazat e të dhënave relacionale bazuar në integritetin dhe tepricën e të dhënave

3. Disa komente për zbatimin e klasifikimit

3.1. Zbatimi i klasifikimit gjatë normalizimit të tabelave

Procesi i normalizimit, nëse nuk merrni parasysh disa faza (Por merrni parasysh rezultatet e këtyre fazave!) - kjo është tabela e zakonshme "ndarje" në tabela më të vogla me krijimin e një marrëdhënie relacionale midis tyre drejtpërdrejt ose përmes ndërmjetme. tabela (marrëdhënie shumë-me-shumë). Një marrëdhënie relacionale mund të mos nënkuptojë gjithmonë një marrëdhënie relacionale!

Shndërrimi i një reference dinamike ose statike në një referencë statike-dinamike dhe një referencë lidhëse në një grup, si një referencë statike-dinamike në një referencë të urë, nuk është asgjë më shumë se ndarja e tabelave. Kjo do të thotë, shndërrimi i një lloji tabelash në një tjetër përmes klasifikimit të treguar më sipër për të shmangur tepricën e të dhënave - kështu mund të përcaktohet normalizimi (një nga opsionet e përkufizimit).

Për shembull. Le të ketë një bazë të dhënash në të cilën operacioni i vetëm i modifikimit të të dhënave është një shtesë. Në këtë rast, ai bëhet i paefektshëm sa herë që ndryshoni ndonjë atribut individual të entitetit, "kopjoni" pjesën tjetër të vlerave të atributeve në një tufë tjetër. Në këtë rast, përdoret NULL ose krijimi i një reference statike-dinamike, ku përshkruhen një numër atributesh të së njëjtës semantikë ose një atribut, dhe vetëm çelësi i huaj me çelësin primar të sekuencës dyfishohet. E njëjta metodë mund të përdoret në skemën tradicionale të modifikimit të të dhënave me përditësimin dhe fshirjen e të dhënave.

konkluzioni

Ky klasifikim u krijua nga unë në bazë të vëzhgimeve në hartimin e bazave të të dhënave, si dhe në bazë të teorisë së lexuar mbi dizajnin në DBMS relacionale. Për miqtë dhe të njohurit e mi, duke studiuar disiplinën e "bazave të të dhënave" dhe të angazhuar në hartimin e bazës së të dhënave, dhe për mua ky klasifikim ka thjeshtuar seriozisht "jetën" dhe ka lejuar në shumë situata të zgjedh paraprakisht atë më të përshtatshmen dhe, siç doli më vonë. , pamje e saktë tabela për ruajtjen e të dhënave të caktuara në të.

Klasifikimi mund të zgjerohet duke ndarë specie ekzistuese në të në nënspecie (ndoshta edhe duke shtuar specie të reja). Gjithashtu, ky klasifikim ka treguar se është më mirë në disa situata të mos përdoret një ose një lloj tjetër tabelash. Është më mirë të përdoren disa lloje tabelash nga ky klasifikim më rrallë (libra referencë dinamike). Dhe përpiquni të zëvendësoni disa me të tjera (libra referencë-pako me pako).

Shpresoj se ky klasifikim do të ndihmojë këdo tjetër kur zotëron disiplinën "Bazat e të dhënave" dhe kur dizajnon bazat e të dhënave në DBMS relacionale.

Para se të krijoni me ndihmë nga Microsoft Qasja në tabela, formularët dhe objektet e tjera që përbëjnë bazën e të dhënave, ju duhet t'i kushtoni kohë fazave të projektimit të bazës së të dhënave.

Fazat kryesore të hartimit të bazës së të dhënave janë:

· Përcaktimi i qëllimit të krijimit të bazës së të dhënave;

· Përcaktimi i tabelave që duhet të përmbajë baza e të dhënave;

· Përcaktimi i fushave të kërkuara në tabelë;

Përkufizimi i fushave me vlerat unike në çdo hyrje;

· Përkufizimi i marrëdhënieve ndërmjet tabelave.

Përcaktimi i qëllimit të krijimit të një baze të dhënash

Hapi i parë në hartimin e një baze të dhënash është përcaktimi i qëllimit të bazës së të dhënave, si do të përdoret dhe çfarë informacioni duhet të përmbajë. Duke e ditur këtë, ju mund të përcaktoni se çfarë informacioni do të ruhet në tabela dhe në fushat e tabelave. Baza e të dhënave duhet të plotësojë kërkesat e atyre që do të punojnë drejtpërdrejt me të. Për ta bërë këtë, ju duhet të përcaktoni temat që duhet të mbulojë baza e të dhënave, raportet që duhet të nxjerrë, të analizoni dokumentet që aktualisht përdoret për të shkruar të dhëna, krahasuar bazën që krijohet të dhëna me një bazë të dhënash të mirë-projektuar si ajo. Qëllimi i kësaj baze të dhënash është të marrë sa më shumë informacion për klientin, përkatësisht mbiemrin, mbiemrin, patronimin, adresën, numrin e telefonit, si dhe shërbimin që duhet të kryhet për këtë klient.

Përcaktimi i tabelave që duhet të përmbajë baza e të dhënave

Përcaktimi i tabelave të kërkuara në bazën e të dhënave mund të jetë pjesa më e vështirë e procesit të projektimit të bazës së të dhënave, pasi rezultatet që duhet të prodhojë baza e të dhënave janë raporte, formularë etj. - jo gjithmonë japin një pasqyrë të plotë të strukturës së tabelave me të cilat janë krijuar. Nuk keni nevojë të përdorni Microsoft Access për të dizajnuar tabelat tuaja. Është mirë që së pari të dizajnoni strukturën në letër. Gjatë zhvillimit të tabelave, rekomandohet të udhëhiqeni nga parimet bazë të mëposhtme: 1) Informacioni nuk duhet të kopjohet në një tabelë ose midis tabelave. Në këtë drejtim, tabelat në bazë relacionale të dhënat ndryshojnë nga tabelat në aplikacione që punojnë me tabela në format teksti siç janë redaktorët spreadsheets... Të dhënat e ruajtura vetëm në një tabelë përditësohen vetëm në atë tabelë. Kjo është më efikase dhe, për më tepër, eliminon mundësinë e regjistrimeve të kopjuara që përmbajnë informacione të ndryshme. Për shembull, mjafton të ruash adresën dhe numrin e telefonit të çdo klienti një herë, në një tabelë 2) Çdo tabelë duhet të përmbajë informacion vetëm për një temë. Kur çdo tabelë përmban informacione vetëm për një temë, ju mund të punoni me informacionin për secilën temë pavarësisht nga temat e tjera. Për shembull, adresa e një klienti mbahet e ndarë nga porositë e atij klienti, gjë që bën të mundur fshirjen e një kërkese duke ruajtur informacionin e klientit. Kjo bazë të dhënash përmban shtatë tabela: organizimi i banesave, objekti i banimit, apartamenti, qiramarrësit, informacioni për qiramarrësit, shërbimi, informacioni për shërbimin e kryer.

Përcaktimi i fushave të kërkuara në tabelë

Çdo tabelë përmban informacione për një temë specifike dhe çdo fushë në tabelë përmban një fakt specifik mbi temën e tabelës. Për shembull, tabela "Banorët" përmban fushat e mbiemrit, emrit, patronimit dhe një fakt specifik është person i veçantë, për shembull, Ivanov Ivan Ivanovich.

Gjatë përpilimit të fushave për secilën tabelë, duhet të merren parasysh parimet themelore të mëposhtme:

· Çdo fushë duhet të lidhet me temën e tabelës;

Tabela duhet të përmbajë të gjitha informacionin e nevojshëm;

· Të dhënat duhet të ndahen në njësitë më të vogla logjike.

Përcaktimi i fushave me vlera unike në çdo rekord

Për të lidhur informacionin e ruajtur në Microsoft Access tabela të ndryshme- për shembull, për të lidhur një oficere pasaportash me të gjithë klientët e saj - çdo tabelë e bazës së të dhënave duhet të përmbajë fusha ose një grup fushash që identifikojnë në mënyrë unike çdo rekord. Një fushë e tillë ose grup fushash quhet çelësi primar. Për shembull, tabela "Organizata e banesave" është e lidhur me tabelën "Ndërtesa e banimit" me një lidhje një me shumë, prandaj, tabela "Ndërtesa e banimit" ka një çelës dytësor "Numri i organizatës" dhe një çelës kryesor "Numri i shtëpisë". “.

Përcaktimi i marrëdhënieve ndërmjet tabelave

Pasi të keni ndarë informacionin në tabela dhe të keni identifikuar fushat kryesore, duhet të zgjidhni një mënyrë në të cilën Microsoft Access do të ribashkojë informacionin përkatës. Për ta bërë këtë, duhet të përcaktoni marrëdhëniet midis tabelave bazë Të dhënat e Microsoft Qasja. Ka lidhje: një me shumë, shumë me shumë (përdoren rrallë).

Ky kapitull diskuton një tabelë të dhënash që krijon një grup si rezultat i një funksioni tabela(ky funksion nuk mund të futet manualisht në qeliza). Një tabelë e të dhënave është një mënyrë e shpejtë dhe e lehtë për të kryer analiza çfarë-nëse për llogaritjet komplekse të ndërlidhura të bazuara në formulë. Ky funksion ju lejon të ndryshoni një ose dy formula të hyrjeve dhe të shfaqni rezultatet. Kapitujt dhe kanë dhënë tashmë shembuj të tabelave të të dhënave që janë përdorur në lidhje me funksionet e bazës së të dhënave.

Shkarkoni shënimin në format ose shembuj në format

Analiza What-If e bazuar në një tabelë të vetme variabël

Në fig. 21.1 në qelizën B6 përdoret funksioni PMT, i cili në mënyrë indirekte varet nga vlera e qelizës B2. Nëse ndryshoni normën vjetore të normës, PMT do të përditësojë vlerën në qelizën B6. Qëllimi është të shihet njëkohësisht se si do të ndryshojë pagesa mujore me pesë norma të ndryshme vjetore. Ndërsa kjo mund të bëhet duke shkruar një formulë, funksioni Tabela mund të jetë i dobishëm për dy arsye:

  • Tabelat e të dhënave janë më të shpejta se zgjidhjet e bazuara në formula të tjera.
  • Tabelat e të dhënave janë më të lehta për t'u përdorur dhe koha për të krijuar një formulë është zvogëluar.

Për të krijuar një tabelë të dhënash:

  1. Krijo titujt A9: B9. Në qelizën B10, futni formulën = B6. Në qelizat A11: A15, vendosni vlerat e normës vjetore për analizën. Theksoni diapazonin A10: B15.
  2. Kaloni nëpër menu TË DHËNAT –> Po sikur analiza –> Tabela e të dhënave për të hapur dialogun Tabela e të dhënave, ose duke shtypur dhe mbajtur Tasti Alt, shtypni Y, Y, T në mënyrë sekuenciale (pas shtypjes Alt, këshillat do të shfaqen në meny).
  3. Meqenëse po analizoni ndikimin e normës vjetore, ju lutemi përfshini një lidhje me të në terren Zëvendësoni vlerën rresht pas rreshti në(fig.21.2). Ju flisni Tabela e të dhënave, zëvendësoni vlerën nga qeliza B2 në procesin e llogaritjes së PMT dhe zëvendësoni vlerat nga diapazoni A11: A15 në formulë.
  4. Klikoni OK.

Oriz. 21.2. Dritarja e dialogut Tabela e të dhënave

Nëse zgjidhni diapazonin B11: B15 dhe shikoni shiritin e formulës, do të shihni një tabelë të formulës së grupit me referencë në qelizën B2. Funksioni Tabela nuk mund të futet nga tastiera; ai gjenerohet automatikisht kur përdoret dialog box-i Tabela e të dhënave.

Oriz. 21.3. Tabela e funksionit mund të futet vetëm duke përdorur kutinë e dialogut Tabela e të dhënave

Në fig. 21.4 qelizat në diapazonin E3: I3 përmbajnë formula të ndryshme që drejtpërdrejt ose tërthorazi i referohen numrit të pjesëve të shitura (në qelizën B3). Duke përdorur Tabela e të dhënave ju mund të kryeni analizën çfarë-nëse në pesë formula. Për më tepër, të gjitha ato bazohen në të njëjtën variabël të vendosur në rangun D4: D12.

Oriz. 21.4. Një variabël Tabelat e të dhënave mund të punojë në disa formula; për të zmadhuar imazhin, klikoni mbi të klikoni me të djathtën miun dhe zgjidhni Hapni foton në një skedë të re

Dy variabla në tabelën e të dhënave

Në shembullin e mëposhtëm, detyra është të gjesh vlerën minimale bazuar në dy kritere. Për këtë përdoret Tabela e të dhënave bazuar në dy variabla (Figura 21.5). Vendosni formulën në të majtë këndi i sipërm Tabelat e të dhënave(në shembullin tonë - në qelizën F8), dhe futni personalizimin në kutinë e dialogut Tabela e të dhënave siç tregohet në fig. 21.5.

Oriz. 21.5. Tabela e të dhënave me dy variabla

Tashmë e keni parë shembullin e dytë (Figura 21.6) në. Ai përdori një formulë grupi. Për shembull, në qelizën F9: = INDEX ($ C $ 2: $ C $ 15; KËRKO ($ E9 & F $ 8; $ A $ 2: $ A $ 15 & $ B $ 2: $ B $ 15; 0 )). Bazuar në zgjidhje Tabelat e të dhënave më lehtë dhe më shpejt.

Oriz. 21.6. Përdorimi Tabelat e të dhënave, si një alternativë për VLOOKUP në dy parametra

Një shënim i fundit për Tabelat e të dhënave: ekziston një opsion që ju lejon të çaktivizoni përditësim automatik Tabelat e të dhënave, ndërsa formulat e tjera do të rillogariten automatikisht. Nëse skedari juaj "ngadalësohet", kaloni nëpër menu DOSJE –> Opsione, shkoni te skeda Formulat, dhe zgjidhni opsionin automatikisht, përveç tabelave të të dhënave(fig.21.7). Sa herë që dëshironi të përditësoni llogaritjet në Tabela e të dhënave, shtypni F9.

Oriz. 21.7. Çaktivizoni llogaritjen automatike Tabelat e të dhënave

Ky artikull ofron udhëzime për hartimin e bazës së të dhënave. Përdoruesi do të mësojë se si të vendosë se çfarë informacioni nevojitet dhe si t'i shpërndajë të dhënat nëpër tabela dhe kolona, ​​dhe gjithashtu të eksplorojë marrëdhëniet midis tabelave. Para se të krijoni një bazë të dhënash ose të filloni të punoni me baza të të dhënave serioze, duhet të lexoni këtë artikull.

Në këtë artikull

Terminologjia e bazës së të dhënave

V Microsoft Office Access 2007 organizon të dhënat në tabelat- grupe rreshtash dhe kolonash, të ngjashme me letrat e një llogaritari ose një libri Microsoft Office Excel 2007. Baza e thjeshtë të dhënat mund të përbëhen nga vetëm një tabelë. Shumica e bazave të të dhënave përfshijnë tabela të shumta. Për shembull, një tabelë mund të ruajë informacionin e produktit, një e dytë mund të ruajë informacionin e porosisë dhe një e tretë mund të ruajë informacionin e klientit.

Çdo rresht është emëruar gjithashtu regjistrimi, dhe çdo kolonë, ose lloj elementi, quhet gjithashtu fushë... Të dhënat ju lejojnë të kombinoni të dhënat. Fushat janë elementë të veçantë të të dhënave - llojet e artikujve për çdo rresht. Për shembull, në tabelën Produktet, çdo rresht ose regjistrim përmban informacion për një produkt. Çdo kolonë ose fushë ruan informacione specifike rreth një produkti, si emri ose çmimi.

Struktura e saktë e bazës së të dhënave

Procesi i krijimit të bazës së të dhënave bazohet në disa parime. E para është eliminimi i të dhënave të kopjuara (ose të tepërta) pasi ato zënë hapësirë ​​dhe rrit gjasat e gabimeve dhe keqfunksionimeve. Parimi i dytë ka të bëjë rol i rendesishem të dhëna të sakta dhe të plota. Nëse baza e të dhënave përmban të dhëna të pasakta, të gjitha raportet që kombinojnë të dhënat do të përmbajnë gjithashtu informacion të pasaktë. Kjo mund të çojë në pranim vendime të gabuara bazuar në raporte.

Struktura e duhur Baza e të dhënave nënkupton:

  • shpërndarja e të dhënave sipas tabelave tematike për të zvogëluar sasinë e të dhënave të dyfishta;
  • Shtoni të dhënat në Access që janë të nevojshme për të kombinuar informacionin e përfshirë në tabela;
  • aftësia për të ruajtur dhe gjurmuar saktësinë dhe integritetin e të dhënave;
  • Pajtueshmëria me kërkesat e përpunimit dhe raportimit të të dhënave.

Procesi i zhvillimit

Procesi i zhvillimit të bazës së të dhënave përfshin hapat e mëposhtëm.

  • Përcaktimi i qëllimit të krijimit të një baze të dhënash

Kjo ju lejon të përgatiteni për hapat e ardhshëm.

  • Gjetja dhe organizimi i të dhënave që ju nevojiten

Të gjitha të dhënat që duhet të ruhen në bazën e të dhënave duhet të mblidhen, si emrat e produkteve dhe numrat e porosive.

  • Shpërndarja e të dhënave nëpër tabela

Organizoni artikujt e të dhënave në grupe ose tema, si p.sh. "Produktet" ose "Urdhrat". Për çdo temë do të krijohet një tabelë.

  • Shndërrimi i artikujve në kolona

Përcaktoni se çfarë të dhënash dëshironi të ruani në secilën tabelë. Çdo element i të dhënave do të futet në një fushë të veçantë dhe do të bëhet një kolonë në tabelë. Për shembull, tabela e punonjësve mund të përmbajë fusha të tilla si Mbiemri dhe Data e punësimit.

  • Vendosja e çelësave kryesorë

Zgjidhni çelësat kryesorë të tabelave. Çelësi primar - Një kolonë që identifikon në mënyrë unike çdo rekord, si p.sh. një produkt ose kod porosie.

  • Krijimi i marrëdhënieve ndërmjet tabelave

Analizoni të gjitha tabelat dhe përcaktoni se si lidhen të dhënat në një tabelë me të dhënat në tabelat e tjera. Shtoni fusha në tabela ose krijoni tabela të reja për të krijuar marrëdhëniet e nevojshme.

  • Përmirësimi i strukturës

Kontrolloni strukturën tuaj të bazës së të dhënave për gabime. Krijoni tabela dhe shtoni disa regjistrime të të dhënave të mostrës. Analizoni rezultatet tuaja. Ndryshoni strukturën sipas nevojës.

  • Zbatimi i rregullave të normalizimit

Zbatoni rregullat e normalizimit për të kontrolluar nëse tabelat janë strukturuar saktë. Ndryshoni tabelat sipas nevojës.

Përcaktimi i qëllimit të krijimit të një baze të dhënash

Është e këshillueshme që të shkruani në letër qëllimin e krijimit të bazës së të dhënave: detyrat, metodat e përdorimit dhe një listë të përdoruesve. Për një bazë të dhënash të vogël për punë nga shtëpia, mund të përcaktoni sa vijon qëllim i thjeshtë: "Baza e të dhënave të klientëve përmban informacione për klientët dhe përdoret për të dërguar mesazhe Email dhe raporton”. Kur krijoni një bazë të dhënash më komplekse për një numër të madh përdoruesish, për shembull në një organizatë, përshkrimi i qëllimit mund të përbëhet nga disa paragrafë; duhet të specifikoni kohën dhe metodat e përdorimit të bazës së të dhënave nga përdorues të ndryshëm... Detyra kryesore është të kompozoni pershkrim i detajuar qëllimi i krijimit të një baze të dhënash për të qenë në gjendje t'i referohemi asaj gjatë procesit të projektimit. Prania e një përshkrimi ju lejon të ndiqni qëllimet e përcaktuara në procesin e vendimmarrjes.

Gjetja dhe organizimi i të dhënave që ju nevojiten

Procesi i gjetjes dhe organizimit të informacionit që ju nevojitet duhet të fillojë duke regjistruar informacionin që është në dispozicion. Për shembull, mund të regjistroni porosi nga libri kryesor ose të ruani informacionin e klientit nga një kabinet dosjesh. Mblidhni Dokumentet e nevojshme dhe bëni një listë të llojeve të të dhënave (për shembull, një listë fushash në një formë). Nëse nuk jeni duke përdorur artikuj shkrimi, imagjinoni se dëshironi të krijoni një shkrimi për të regjistruar informacionin e klientit. Çfarë të dhënash dëshironi të regjistroni? Cilat fusha duhet të plotësoni? Përcaktoni elementet e nevojshme dhe rendisni ato. Supozoni se informacioni i klientit ruhet në një kabinet dosjesh. Analiza e kartave zbulon se ato përmbajnë informacione të tilla si emri i klientit, adresa, qyteti, shteti, kodi postar dhe numri i telefonit. Secili prej këtyre elementeve mund të bëhet një kolonë në një tabelë.

Kur përgatitni një listë, nuk duhet të përpiqeni t'i jepni asaj një pamje të plotë herën e parë. Të gjitha duhet të regjistrohen opsionet e mundshme... Nëse baza e të dhënave është e destinuar për shumë përdorues, pyesni ata për sugjerimet e tyre. Lista mund të korrigjohet më vonë.

Më pas përcaktoni llojet e raporteve ose shpërndarjeve që dëshironi të ekzekutoni nga baza e të dhënave. Për shembull, mund të dëshironi të ekzekutoni një raport të shitjeve të produktit sipas rajonit ose një raport përmbledhës të inventarit të produktit. Ju gjithashtu mund të dëshironi të krijoni emaile drejtuar klientëve që përmbajnë shitje ose Oferta Speciale... Mendoni për strukturën e raportit, përcaktoni atë pamjen... Çfarë informacioni duhet të përfshini në raport? Rendisni informacionin që ju nevojitet. Ndiqni të njëjtat hapa për emailet dhe raportet e tjera.

Duke përcaktuar strukturën e raporteve dhe postimeve, ju mund të identifikoni artikujt që dëshironi të përfshini në bazën e të dhënave. Supozoni se dëshironi t'u siguroni klientëve mundësinë për t'u abonuar ose çregjistruar në një buletin të rregullt dhe të jeni në gjendje të printoni një listë të abonentëve. Për të regjistruar këtë informacion në tabelën e klientit, shtoni një kolonë për dërgimin e mesazheve të postës elektronike. Në këtë fushë, ju mund të zgjidhni Po ose Jo për çdo klient.

Një pjesë tjetër e të dhënave duhet të regjistrohet për të dërguar mesazhe me email tek klientët. Nëse klienti pranon të marrë mesazhe me email, ai do të duhet të regjistrojë adresën e tij të emailit. Prandaj, do t'ju duhet të ruani një adresë emaili për çdo klient.

Është i përshtatshëm që të prototipizosh çdo raport ose listë klientësh për printim dhe të përcaktosh se cilat elemente të dhënash kërkohen për t'i gjeneruar ato. Për shembull, analizimi i një letre zbulon disa elementë. Nëse dëshironi të përfshini një përshëndetje në letër - për shembull, vargun "d". ose "Zonja" - duhet të krijoni artikullin përkatës. Përveç kësaj, letra zakonisht fillon me frazën standarde "I nderuar z. Egorov" dhe jo "I dashur z. Vladimir Egorov". Prandaj, mbiemri duhet të mbahet i ndarë nga emri.

Është e rëndësishme të mbani mend se të dhënat duhet të ndahen në elemente minimale... Emri duhet të ndahet në dy pjesë: emrin dhe mbiemrin, në mënyrë që mbiemri të jetë i disponueshëm për përdorim. Për shembull, për të renditur një raport sipas mbiemrit, duhet t'i ruani ato në fusha të veçanta. Në përgjithësi, nëse dëshironi të renditni, kërkoni, llogaritni ose raportoni për elementë individualë të të dhënave, këto artikuj duhet të ruhen në fusha të veçanta.

Rendisni pyetjet për të cilat dëshironi të merrni përgjigje duke përdorur bazën e të dhënave. Për shembull, sa ishte vëllimi i shitjeve për një produkt individual në muajin e fundit? Ku janë klientët më premtues? Kush po furnizon produktin më të shitur? Listë pyetje të mundshme ju lejon të përcaktoni elementë të të dhënave shtesë për regjistrim.

Pas mbledhjes së të dhënave, mund të vazhdoni në hapin tjetër.

Shpërndarja e të dhënave nëpër tabela

Për të shpërndarë të dhëna nëpër tabela, theksoni grupet ose temat kryesore. Për shembull, pas kërkimit dhe organizimit të të dhënave për një bazë të dhënash të shitjeve të produktit, mund të përpilohet lista e mëposhtme:

Grupet kryesore janë produktet, furnitorët, klientët dhe porositë. Prandaj, ka kuptim të krijohen katër tabela, një për informacionin e produktit, furnizuesit, klientit dhe porosisë. Ndërsa kjo listë nuk është e plotë, mund të filloni me këto tabela bazë. Lista mund të plotësohet derisa të merret strukturën e dëshiruar Baza e të dhënave.

Kur shikoni për herë të parë listën paraprake të artikujve, mund të mendoni se ka më shumë kuptim t'i vendosni të gjithë artikujt në një tabelë të vetme në vend që të krijoni katër tabela, siç tregohet në shembullin e mëparshëm. Ky seksion shpjegon pse kjo qasje është joefektive. Shikoni tabelën në ilustrim.

V në këtë rastçdo linjë përmban të dhëna për produktet dhe furnitorët. Meqenëse një furnizues furnizon produkte të ndryshme, emri dhe adresa e tij duhet të rifuten. Në të njëjtën kohë, hapësira në disk përdoret në mënyrë joefikase. Një zgjidhje më e zgjuar është ruajtja e informacionit të furnizuesit në një tabelë të veçantë të furnizuesit dhe lidhja e asaj tabelë me tabelën e produktit.

Problemi i dytë me një strukturë të tillë të bazës së të dhënave lind kur është e nevojshme të ndryshohet informacioni për furnizuesin. Supozoni se doni të ndryshoni adresën e një shitësi. Meqenëse ka shumë linja për furnizuesin, përdoruesi mund të anashkalojë disa prej tyre. Ju gjithashtu mund ta zgjidhni këtë problem duke ruajtur adresën e shitësit në një vend.

Kur dizajnoni një bazë të dhënash, duhet të përpiqeni të ruani çdo artikull të të dhënave një herë. Nëse të dhënat janë të dyfishuara (për shembull, adresa e një furnizuesi të veçantë), vendoseni në një tabelë të veçantë.

Së fundi, supozoni se Veraria Coho dërgon vetëm një produkt dhe ju dëshironi ta çinstaloni atë, duke ruajtur emrin e shitësit dhe informacionin e adresës. Si mund të fshij një regjistrim produkti duke ruajtur të dhënat e furnizuesit? Eshte e pamundur. Meqenëse çdo rresht përmban të dhënat e produktit, si dhe të dhënat e furnizuesit, nuk është e mundur të fshihen këto të dhëna veçmas nga njëra-tjetra. Për të ndarë këto të dhëna, duhet të krijoni dy tabela, një për informacionin e produktit dhe një për informacionin e furnizuesit. Në këtë rast, fshirja e rekordit të produktit nuk do të fshijë të dhënat e furnizuesit.

Pasi të zgjidhni një temë për një tabelë, duhet të siguroheni që kolonat në atë tabelë përmbajnë të dhëna vetëm për atë temë. Për shembull, një tabelë produktesh duhet të përmbajë vetëm informacione rreth produkteve. Meqenëse adresa e shitësit i referohet të dhënave të shitësit dhe jo të dhënave të produktit, ajo duhet të ruhet në tabelën e shitësit.

Shndërrimi i artikujve në kolona

Për të përcaktuar kolonat në një tabelë, duhet të vendosni se çfarë informacioni dëshironi të gjurmoni për tabelën. Për shembull, mund të përfshini kolonat Emri, Adresa, Qyteti / Shteti / Kodi Postar, Dërgo Email, Kontakt dhe Adresa Email në tabelën e klientit. Të gjitha rreshtat përmbajnë të njëjtin grup kolonash, kështu që ju mund të ruani informacionin e duhur për çdo rresht. Për shembull, kolona "Adresa" përmban adresat e klientëve. Çdo rekord përmban informacion për vetëm një klient, dhe fusha e adresës përmban adresën e atij klienti.

Grupi fillestar i kolonave për secilën tabelë mund të plotësohet me kolona të reja. Për shembull, është e përshtatshme të ruash emrin dhe mbiemrin e klientit në kolona të veçanta për të lehtësuar renditjen, kërkimin dhe krijimin e indeksit. Një adresë ka gjithashtu disa komponentë: adresën, qytetin, shtetin, kodin postar dhe shtetin, të cilat më së miri mbahen në kolona të veçanta. Për shembull, nëse dëshironi të kërkoni, filtroni ose renditni sipas zonës, duhet të ruani informacionin e zonës në një kolonë të veçantë.

Ai gjithashtu duhet të përcaktojë se çfarë lloj të dhënash do të ruhen në bazën e të dhënave: kombëtare apo ndërkombëtare. Për shembull, nëse planifikoni të ruani adresat ndërkombëtare në bazën e të dhënave, është më mirë të përdorni kolonën Rajoni në vend të Vendit, pasi kjo kolonë mund të përdoret për të specifikuar rajonet brenda vendit tuaj dhe rajonet në vende të tjera. Në të njëjtën mënyrë, do të jetë e mundur të ruhet në fushën e kodit postar kodet postare vende të ndryshme.

Lista e mëposhtme ofron disa këshilla për krijimin e kolonave.

  • Mos përfshini të dhënat e llogaritura në tabelën tuaj

Rezultatet e llogaritjes nuk duhet të ruhen në tabela. Në vend të kësaj, ju mund të kryeni llogaritjet në Access sa herë që dëshironi të merrni një rezultat. Për shembull, supozoni se raporti i porositjes së produkteve shfaq nëntotalet për produktet e porositura në secilën kategori. Megjithatë, tabela nuk përmban një kolonë për nëntotalet. Në vend të kësaj, tabela përfshin një kolonë për produktet e porositura që ruan sasinë e secilit produkt. Me këto Qasja në të dhëna llogarit nëntotalet sa herë që printohet një raport. Nëntotalet në vetvete nuk ruhen në tabelë.

  • Ndani informacionin në komponentë minimalë logjikë

Mund të duket si një ide më e mirë për të krijuar fusha uniforme për të ruajtur emrat e plotë ose të produkteve së bashku me përshkrimet e tyre. Megjithatë, kombinimi i të dhënave të ndryshme në një fushë e bën të vështirë marrjen e mëtejshme të tyre. Informacioni duhet të ndahet në komponentë logjikë. Për shembull, mund të krijoni fusha të veçanta për emrin dhe mbiemrin, ose për titullin, kategorinë dhe përshkrimin e një produkti.

Pas krijimit të kolonave në tabela, mund të zgjidhni një çelës primar për secilën tabelë.

Vendosja e çelësave kryesorë

Çdo tabelë duhet të përmbajë një kolonë ose grup kolonash për të identifikuar në mënyrë unike çdo rresht në tabelë. Si rregull, për këto qëllime, një unik një numër identifikimi p.sh. kodi i punonjësit ose numër serik... Në bazën e të dhënave, një informacion i tillë quhet çelesi primar tabelat. Në Access, çelësat kryesorë përdoren për të lidhur shpejt të dhënat nga tabela të shumta dhe për t'i shfaqur ato te përdoruesi.

Nëse një tabelë ka një identifikues unik, si një numër produkti, që identifikon në mënyrë unike çdo produkt në katalog, ai mund të përdoret si çelësi kryesor i tabelës, por vlerat për atë kolonë duhet të jenë të ndryshme për të gjitha regjistrimet. Çelësi primar nuk duhet të përmbajë vlera të dyfishta. Për shembull, nuk duhet të përdorni emrat e njerëzve si çelësin kryesor, sepse ata nuk janë unik. Dy regjistrime me të njëjtin emër mund të ekzistojnë në të njëjtën tabelë.

Çelësi kryesor duhet gjithmonë të ketë rëndësi. Nëse një kolonë lejon një vlerë të pacaktuar ose që mungon, ajo nuk duhet të përdoret si një komponent kryesor kryesor.

Vlera e çelësit primar nuk duhet të ndryshojë. Në një bazë të dhënash me tabela të shumta, çelësi kryesor i një tabele mund të përdoret si referencë në tabela të tjera. Nëse çelësi primar ndryshon, ndryshimi duhet të zbatohet për të gjitha referencat në atë çelës. Duke përdorur një çelës primar me një vlerë konstante, ka më pak shanse të mos sinkronizohet me tabelat e tjera.

Shpesh, një unik arbitrar përdoret si çelësi kryesor. vlerë numerike... Për shembull, mund të caktoni një numër unik porosie për çdo porosi për të identifikuar në mënyrë unike porosinë. Ky numër nuk mund të ndryshohet.

Nëse nuk mund të zgjidhni një kolonë ose grup kolonash për t'u përdorur si çelësi kryesor, mund të përdorni një kolonë me llojin e të dhënave Counter. Kur përdorni një kolonë të tillë, Access automatikisht cakton vlera. Ky kod nuk përmban asnjë informacion; nuk ka përshkrim të vargut që përfaqëson. Kodet vapid janë ideale për t'u përdorur si çelës primar sepse nuk ndryshojnë. Çelësi kryesor që përmban informacionin aktual të vargut, të tillë si një numër telefoni ose emri i klientit, është më i prirur për t'u ndryshuar sepse informacioni aktual mund të ndryshojë.

Një kolonë numërues është një çelës kryesor i përshtatshëm. Kodet e produkteve nuk përputhen kurrë.

Në disa raste, kërkohet të përdoren dy ose më shumë fusha si çelësi kryesor i një tabele. Për shembull, për një tabelë me detaje porosie që ruan artikujt e linjës për porositë, mund të përdorni dy kolona në çelësin kryesor: kodin e porosisë dhe kodin e produktit. Një çelës primar me shumë kolona quhet çelës primar i përbërë.

Në bazën e të dhënave të shitjeve, mund të krijoni një kolonë numërues për çelësin kryesor të të gjitha tabelave: ID e artikullit për tabelën e artikujve, ID e porosisë për tabelën e porosive, ID e klientit për tabelën e klientit dhe ID e shitësit për tabelën e shitësit.

Krijimi i marrëdhënieve ndërmjet tabelave

Pas shpërndarjes së të dhënave nëpër tabela, duhet të jeni në gjendje t'i kombinoni ato. Për shembull, formulari i mëposhtëm përfshin informacion nga tabela të shumta.

Ky formular përmban të dhëna nga tabela e klientëve,

Punonjësit,

Porositë,

Produktet

Dhe informacion për porosinë.

Access është një sistem i menaxhimit të bazës së të dhënave relacionale. Në një bazë të dhënash relacionale, informacioni shpërndahet nëpër tabela të veçanta, të organizuara tematikisht. Lidhjet ndërmjet tabelave përdoren për të kombinuar të dhënat.

Krijoni një marrëdhënie një me shumë

Merrni parasysh shembulli tjetër: Baza e të dhënave të porosive të produkteve përmban tabela të furnitorëve dhe produkteve. Një furnizues mund të ofrojë çdo numër produktesh. Prandaj, për çdo shitës nga tabela e shitësit, tabela e produktit mund të përmbajë nje numer i madh i produkteve. Prandaj, marrëdhënia midis tabelës së shitësit dhe tabelës së produktit është një marrëdhënie një me shumë.

Për të krijuar një marrëdhënie një-me-shumë në strukturën e bazës së të dhënave, shtoni çelësin primar të njëanshëm në tabelën me shumë anë si një kolonë shtesë. V ky shembull ju duhet të shtoni kolonën e kodit të shitësit nga tabela e shitësit në tabelën e produktit. Më pas, Access mund të përdorë kodin e shitësit nga tabela e produktit për të gjetur shitësin për secilin produkt.

Kolona e kodit të shitësit në tabelën e produktit quhet çelës i huaj. Një çelës i huaj është çelësi kryesor i një tabele tjetër. Kolona e ID-së së shitësit në tabelën e produktit është një çelës i huaj sepse është gjithashtu çelësi kryesor i tabelës së shitësit.

Baza për lidhjen e tabelave është kombinimi i çelësave primar dhe të huaj në çifte. Nëse nuk mund të përcaktoni tabela me një kolonë të përbashkët, krijimi i një lidhjeje një me shumë siguron që kërkohet një kolonë e përbashkët për të dy tabelat.

Krijoni një marrëdhënie shumë-për-shumë

Le të shqyrtojmë marrëdhënien midis tabelave të produkteve dhe porosive.

Një porosi mund të përfshijë disa produkte. Ne anen tjeter, produkt i veçantë mund të përmbahet në disa rend. Prandaj, për çdo hyrje në tabelën e porosive, mund të ketë hyrje të shumta në tabelën e produkteve dhe anasjelltas. Ky lloj marrëdhënieje quhet marrëdhënie shumë-për-shumë. Vini re se është e rëndësishme të shikoni të dyja palët për të zbuluar një marrëdhënie shumë-me-shumë midis tabelave.

Temat e dy tabelave - porositë dhe produktet - lidhen nga një marrëdhënie shumë-me-shumë. Ky është problem. Imagjinoni se çfarë ndodh nëse krijoni një marrëdhënie midis dy tabelave duke shtuar një fushë të kodit të produktit në tabelën e porosive. Që një porosi të përmbajë shumë produkte, çdo porosi në tabelë duhet të përfshijë hyrje të shumta. Në këtë rast, informacioni i porosisë duhet të përsëritet në çdo rresht të porosisë, gjë që mund të çojë në strukturë joefektive të tabelës dhe të dhëna të pasakta. E njëjta vështirësi lind kur krijoni një fushë me një kod porosie në tabelën e produktit - ka disa regjistrime për secilin produkt në tabelë. Si të zgjidhet ky problem?

Zgjidhja është krijimi i një tabele të tretë lidhëse, në të cilën marrëdhënia shumë me shumë ndahet në dy marrëdhënie një me shumë. Çelësat kryesorë të dy tabelave futen në tabelën e tretë. Si rezultat, të gjitha rastet e relacionit ruhen në tabelën e tretë.

Çdo hyrje në tabelën e detajeve të porosisë përfaqëson element i veçantë linjat e porosive. Çelësi kryesor i një tabele përbëhet nga dy fusha - çelësat e huaj të tabelave të porosive dhe produkteve. Nuk është e mundur të përdoret vetëm fusha me kodin e rendit për çelësin kryesor të kësaj tabele, pasi një renditje mund të përmbajë shumë elementë rreshti. Kodi i porosisë përsëritet për çdo artikull rreshti, kështu që kjo fushë nuk përmban vlera unike. Gjithashtu nuk është e mundur të përdoret vetëm fusha me kodin e produktit, pasi një produkt mund të përfshihet në disa porosi. Sidoqoftë, përdorimi i dy fushave ju lejon të merrni një vlerë unike për çdo rekord.

Në bazën e të dhënave të shitjeve të produkteve, tabelat e porosive dhe produkteve nuk kanë një lidhje të drejtpërdrejtë. Ato janë të lidhura në mënyrë indirekte përmes tabelës së detajeve të porosisë. Marrëdhënia shumë-për-shumë midis porosive dhe produkteve përfaqësohet në bazën e të dhënave nga dy marrëdhënie një-me-shumë:

  • Tabelat e informacionit të rendit dhe porosive janë të lidhura në një marrëdhënie një me shumë. Çdo porosi përmban disa artikuj rreshti, por secili artikull shoqërohet vetëm me një porosi.
  • Tabelat e informacionit të produktit dhe porosisë janë të lidhura në një marrëdhënie një me shumë. Çdo produkt mund të shoqërohet me artikuj të shumëfishtë rreshtash, por secili artikull shoqërohet vetëm me një produkt.

Në tabelën e detajeve të porosisë, mund të përcaktoni produkte për një porosi të vetme. Ju gjithashtu mund të përcaktoni porositë për një produkt specifik.

Pas krijimit të tabelës së detajeve të porosisë, lista e tabelave dhe fushave mund të duket si kjo:

Krijimi i një marrëdhënieje një me një

Lloji tjetër i marrëdhënies është një marrëdhënie një me një. Supozoni se doni të mbani informacion shtese në lidhje me një produkt që përdoret ose përdoret rrallë një numër i vogël produkteve. Meqenëse ky informacion përdoret rrallë dhe ruajtja e tij në tabelën e produkteve kërkon krijimin e një fushe boshe shtesë për të gjitha produktet për të cilat nuk zbatohet, është më mirë ta vendosni këtë informacion në një tabelë të veçantë. Ashtu si me tabelën e produktit, ID-ja e produktit përdoret si çelësi kryesor. Nën-tabela dhe tabela e produkteve kanë një marrëdhënie një-me-një. Ekziston një rekord për çdo hyrje në tabelën e produktit në tabelën shtesë. Kur përcaktoni këtë lloj marrëdhënieje, të dyja tabelat duhet të përmbajnë një fushë.

Nëse keni nevojë të krijoni një marrëdhënie një-për-një në bazën tuaj të të dhënave, merrni parasysh bashkimin e të dhënave në një tabelë të vetme. Nëse ky opsion është i papranueshëm, për shembull për shkak të fushave boshe, përdorni listën e mëposhtme për të përcaktuar një marrëdhënie në strukturën e bazës së të dhënave.

  • Nëse tabelat janë të lidhura nga e njëjta temë, lidhja mund të krijohet duke përdorur një çelës të përbashkët primar.
  • Nëse lënda dhe çelësat kryesorë të tabelave janë të ndryshëm, duhet të zgjidhni ndonjërën nga tabelat dhe të futni çelësin e saj kryesor në një tabelë tjetër si çelës i huaj.

Përcaktimi i marrëdhënieve ndërmjet tabelave ndihmon për të siguruar që tabelat dhe kolonat janë të sakta. Nëse ka një lidhje një me një ose një me shumë, tabelat duhet të përmbajnë kolona të përbashkëta... Nëse keni një marrëdhënie shumë me shumë, kërkohet një tabelë e tretë.

Përmirësimi i strukturës

Pas krijimit të tabelave, fushave dhe marrëdhënieve të nevojshme, duhet të plotësoni tabelat me të dhëna mostra dhe të kryeni operacione të ndryshme me to: krijimin e pyetjeve, shtimin e shënimeve të reja, etj. Kjo do të zbulojë problemet e mundshme- për shembull, mund t'ju duhet të shtoni një kolonë shtesë ose të ndani një tabelë në dy për të shmangur të dhënat e kopjuara.

Kontrolloni nëse baza e të dhënave mund të përdoret për të marrë përgjigje pyetjet e nevojshme... Krijoni draft formularët dhe raportet dhe sigurohuni që ato të shfaqin informacionin që dëshironi. Kontrolloni bazën e të dhënave për të dhëna të kopjuara dhe hiqni këto të dhëna nëse është e nevojshme.

Kur filloni të punoni me bazën tuaj të të dhënave, mund të identifikoni fushat për përmirësimin e strukturës së saj. Ju mund t'i kushtoni vëmendje pikave të mëposhtme:

  • Mungojnë kolonat e kërkuara. Nëse mungojnë disa kolona, ​​duhet të përcaktoni se cila prej tyre tabelat ekzistuese mund të shtoni të dhëna. Nëse të dhënat lidhen me një temë tjetër, mund t'ju duhet tabelë shtesë... Krijoni një kolonë për çdo artikull të të dhënave që dëshironi të gjurmoni. Nëse të dhënat nuk mund të merren nga kolonat e tjera me anë të llogaritjeve, mund të kërkohet një kolonë e re.
  • Prania e kolonave, të dhënat e të cilave mund të merren nga fushat ekzistuese me anë të llogaritjeve. Nëse të dhënat mund të llogariten nga kolona të tjera - për shembull, çmimi i zbritjes mund të llogaritet bazuar në çmimin e shitjes me pakicë - ju rekomandojmë të shmangni përdorimin e kolonave shtesë.
  • Prania e të dhënave të përsëritura në tabela. Në këtë rast, duhet ta ndani tabelën në dy tabela dhe t'i lidhni ato në një marrëdhënie një me shumë.
  • Disponueshmëria e tabelave me sasi e madhe fusha, numër i kufizuar të dhënat dhe fushat e zbrazëta në të dhënat individuale... Në këtë rast, mund të jetë e nevojshme të ndryshohet struktura e tabelës për të zvogëluar numrin e fushave dhe për të rritur numrin e regjistrimeve.
  • Thyerja e çdo pjese të të dhënave në komponentë minimalë. Nëse dëshironi të përdorni një artikull të dhënash për raportim, renditje, kërkim ose llogaritje, ai duhet të vendoset në një kolonë të veçantë.
  • Prania në kolonën e të dhënave që lidhen me temën e tabelës. Nëse kolona përmban të dhëna që nuk janë relevante për temën e tabelës, ajo duhet të vendoset në një tabelë tjetër.
  • Marrëdhëniet ndërmjet tabelave të përfaqësuara nga fusha të përbashkëta ose një tabelë e tretë. Kërkohen kolona të zakonshme për të krijuar marrëdhënie një-me-një dhe një-me-shumë. Kërkohet një tabelë e tretë për të krijuar një marrëdhënie shumë me shumë.

Përmirësimi i strukturës së tabelës së produkteve

Supozoni se të gjitha produktet në një bazë të dhënash mund të kategorizohen në disa kategori të përgjithshme, të tilla si pije, erëza ose produkte peshku. Tabela e produktit mund të përmbajë një fushë që tregon kategorinë e produktit.

Supozoni se pas analizimit dhe përmirësimit të strukturës së bazës së të dhënave, u vendos të ruhej jo vetëm emri i kategorisë së produktit, por edhe përshkrimi i tij. Nëse shtoni një fushë përshkrimi të kategorisë në tabelën e produktit, përshkrimi duhet të përsëritet për secilin produkt në një kategori të veçantë dhe ky vendim nuk është racional.

Një qasje më racionale është vendosja e kategorisë si një temë më vete për gjurmimin në bazën e të dhënave, krijimi i një tabele të veçantë me çelësin e vet primar. Pastaj çelësi kryesor i tabelës së kategorisë mund të shtohet në tabelën e produktit si një çelës i huaj.

Kur analizoni strukturën e tabelave, duhet të identifikoni grupe të dyfishta. Supozoni se tabela përmban kolonat e mëposhtme:

  • Kodi i produktit
  • Kodi i produktit 1
  • Kodi i produktit 2
  • Kodi i produktit 3

Në këtë rast, produktet përsërisin grupe kolonash që ndryshojnë nga njëra-tjetra vetëm nga numri në emrin e kolonës. Nëse kolonat numërohen në këtë mënyrë, strukturat e tabelës duhet të rishikohen.

Kjo strukturë ka disa disavantazhe. Para së gjithash, ekziston një kufi i sipërm për numrin e produkteve. Pas tejkalimit të këtij kufiri, shtoni në tabelë grup i ri kolona, ​​dhe kjo detyrë është e vështirë për t'u realizuar.

Një tjetër disavantazh është se nëse numri i produkteve për një shitës individual është më i vogël se maksimumi, disa nga kolonat do të jenë bosh. Por pengesa më serioze e kësaj strukture është ndërlikimi i shumë detyrave, të tilla si renditja ose krijimi i një indeksi në një tabelë sipas kodit ose emrit të produktit.

Nëse keni grupe të dyfishta, mendoni të ndani një tabelë në dy. Në shembullin e mësipërm, është më mirë të krijoni dy tabela, një për shitësit dhe një për produktet, dhe t'i lidhni ato duke përdorur kodin e shitësit.

Zbatimi i rregullave të normalizimit

Hapi tjetër në krijimin e një baze të dhënash mund të jetë aplikimi i rregullave të normalizimit të të dhënave (ose thjesht rregullave të normalizimit). Këto rregulla ju lejojnë të kontrolloni korrektësinë e strukturës së tabelave. Procesi i aplikimit të këtyre rregullave në strukturën e një baze të dhënash quhet normalizimi i bazës së të dhënave, ose thjesht normalizim.

Rekomandohet të kryhet normalizimi pasi të keni futur të gjithë elementët e të dhënave në bazën e të dhënave dhe të krijoni një strukturë paraprake. Qëllimi i këtij procesi është të verifikojë nëse artikujt e të dhënave janë shpërndarë saktë nëpër tabela. Megjithatë, normalizimi nuk lejon vërtetimin e vetë artikujve të të dhënave.

Rregullat e normalizimit zbatohen në mënyrë sekuenciale; në çdo fazë, përputhshmëria e bazës së të dhënave me një nga të ashtuquajturat. forma normale. Ka pesë forma normale. Ky artikull përshkruan tre format e para pasi ato janë të mjaftueshme për shumicën e bazave të të dhënave.

Forma e parë normale

E para formë normale përmban rregullin që çdo qelizë në kryqëzimin e një rreshti dhe një kolone në një tabelë duhet të përmbajë një vlerë të vetme, jo një listë vlerash. Për shembull, fusha Çmimi duhet të përmbajë vetëm një vlerë çmimi. Nëse ka një qelizë në kryqëzimin e një rreshti dhe një kolone, ajo duhet të përmbajë vetëm një vlerë.

Forma e dytë normale

Forma e dytë normale kërkon që çdo kolonë jashtë çelësit duhet të varet nga e gjithë kolona kryesore, jo nga një pjesë e saj. Ky rregull zbatohet nëse çelësi primar ka shumë kolona. Supozoni se një tabelë me çelësin kryesor të kolonave të ID-së së porosisë dhe ID-së së produktit përmban kolonat e mëposhtme:

  • Kodi i porosisë (çelësi kryesor)
  • Kodi i produktit (çelësi kryesor)
  • Emri i produktit

Kjo strukturë nuk korrespondon me formën e dytë të zakonshme, pasi emri i produktit varet nga kodi i produktit, por nuk varet nga kodi i porosisë; prandaj, kjo kolonë varet vetëm nga një pjesë e çelësit primar. Kolona me emrin e produktit duhet të hiqet nga tabela. Duhet të përfshihet në një tabelë tjetër (tabela e produkteve).

Forma e tretë normale

Forma e tretë normale kërkon që kolonat pa çelës jo vetëm të varen nga i gjithë çelësi primar, por edhe të jenë të pavarura nga njëra-tjetra.

Me fjalë të tjera, çdo kolonë pa çelës duhet të varet vetëm nga çelësi primar. Supozoni se tabela përmban kolonat e mëposhtme:

  • Kodi i produktit (çelësi kryesor)
  • Çmimi i rekomanduar me pakicë
  • Zbritje

Le të themi se zbritja bazohet në çmimin e sugjeruar me pakicë. Në këtë rast, tabela nuk plotëson kërkesat e formularit të tretë të zakonshëm, sepse kolona e zbritjes pa çelës varet nga një kolonë tjetër jo kyç (kolona e rekomanduar e çmimeve me pakicë). Kërkesa që kolonat të jenë të pavarura nga njëra-tjetra do të thotë që ndryshimi i çdo kolone jo kyçe nuk duhet të ndikojë në kolonat e tjera. Por nëse vlera në kolonën e çmimit me pakicë ndryshonte, vlera e zbritjes do të ndryshonte në përputhje me rrethanat, duke thyer rregullin. Prandaj, në këtë rast, kolona e zbritjes duhet të zhvendoset në një tabelë tjetër në të cilën kolona e çmimeve me pakicë është kryesore.

informacion shtese

Për më shumë informacion mbi hartimin e bazës së të dhënave, shihni librat e mëposhtëm.

  • Hernandez, Michael J. Dizajni i bazës së të dhënave për MereMortals: A Hands-On Guide to Relational Database Design, Edition II. Addison-Wesley Professional. 2003.
  • Fleming, Candace C. von Halle, Barbara. Manuali i Dizajnit të Bazave të të Dhënave Relacionale. Addison-Wesley Professional. 1989.
  • Riordan, Rebecca M. Dizajnimi i sistemeve efektive të bazës së të dhënave. Addison-Wesley Professional. 2005.

Zbatohet për Access 2007 dhe më lart

Çdo tabelë përmban informacione për një temë të ndryshme dhe secila fushë në tabelë përmban informacion të veçantë për temën e tabelës. Për shembull, një tabelë me të dhënat e klientit mund të përmbajë fusha me emrin e kompanisë, adresën, qytetin, vendin dhe numrin e telefonit. Kur hartoni fushat për secilën tabelë, mbani parasysh:

    Çdo fushë duhet të shoqërohet me një temë tabele.

    Tabela duhet të përmbajë të gjithë informacionin e nevojshëm.

Informacioni duhet të ndahet në njësitë më të vogla logjike (Për shembull, fushat Emri dhe Mbiemri, jo fusha e përgjithshme Emri).

4. Vendosja e një vlere individuale për secilën fushë

Në mënyrë që Microsoft Access të lidhë të dhëna nga tabela të ndryshme, si të dhënat e klientit dhe porositë e klientëve, secila tabelë duhet të përmbajë një fushë ose grup fushash që do të vendosë një vlerë individuale për çdo rekord në tabelë. Një fushë e tillë ose grup fushash quhet çelësi kryesor.

5. Përcaktimi i marrëdhënieve ndërmjet tabelave

Pas shpërndarjes së të dhënave nëpër tabela dhe përcaktimit të fushave kryesore, duhet të zgjidhni një skemë për të lidhur të dhënat në tabela të ndryshme. Për ta bërë këtë, ju duhet të përcaktoni marrëdhëniet midis tabelave.

6. Përditësimi i strukturës së bazës së të dhënave

Pas dizajnimit të tabelave, fushave dhe marrëdhënieve, duhet të rishqyrtoni strukturën e bazës së të dhënave dhe të identifikoni mangësitë e mundshme. Këshillohet që kjo të bëhet në këtë fazë, ndërkohë që tabelat nuk janë të mbushura me të dhëna.

Për të kontrolluar, duhet të krijoni disa tabela, të përcaktoni marrëdhëniet midis tyre dhe të vendosni disa regjistrime në secilën tabelë, pastaj të shihni nëse baza e të dhënave i plotëson kërkesat. Rekomandohet gjithashtu që të krijoni formularë dhe raporte të prodhimit dhe të kontrolloni nëse ato ofrojnë informacionin që dëshironi. Përveç kësaj, është e nevojshme të përjashtohen të gjitha dyfishimet e mundshme të të dhënave nga tabelat.

7. Shtimi i të dhënave dhe krijimi i objekteve të tjera të bazës së të dhënave

Nëse strukturat e tabelës plotësojnë kërkesat, atëherë mund të futni të gjitha të dhënat. Atëherë mund të krijoni ndonjë pyetje, forma, raporte, makro dhe module.

8. Përdorimi i mjeteve të analizës në Microsoft Access

Ekzistojnë dy mjete në Microsoft Access për përmirësimin e dizajnit të bazës së të dhënave. Magjistari i analizës së tabelës ekzaminon tabelën, nëse është e nevojshme, sugjeron një strukturë dhe marrëdhënie të reja dhe gjithashtu e heq atë.

Analizuesi i Performancës ekzaminon të gjithë bazën e të dhënave, bën rekomandime për përmirësimin e saj dhe gjithashtu i zbaton ato.

Meqenëse seksionet e pavarura të aplikacionit zhvillohen, këshillohet që ato t'i transferohen klientit për të kontrolluar funksionimin e tyre dhe për të marrë një mendim mbi nevojën për të bërë ndryshime të caktuara. Pasi klienti njihet me funksionimin e aplikacionit, ai pothuajse gjithmonë ka sugjerime shtesë për përmirësim, sado i plotë të jetë studimi paraprak i projektit. Përdoruesit shpesh zbulojnë se disa nga pikat për të cilat ata folën si shumë të rëndësishme dhe të nevojshme në procesin e vendosjes së detyrave nuk luajnë një rol të rëndësishëm në përdorimin praktik të aplikacionit. Identifikimi i ndryshimeve të nevojshme në fillim të zhvillimit të një aplikacioni mund të zvogëlojë ndjeshëm kohën për ripunim të mëvonshëm.

Artikujt kryesorë të lidhur