Erè komen te fè nan Design Database

Kit ou ap travay ak yon baz done ki kenbe dè santèn de dosye oswa dè milyon de dosye, konsepsyon baz done apwopriye toujou enpòtan. Se pa sèlman li pral fè retwouve enfòmasyon an pi fasil, li pral tou senplifye elaji baz done a nan tan kap vini an. Malerezman, li fasil tonbe nan yon pyèj kèk ki ka fè bagay sa yo difisil nan tan kap vini an.

Gen liv tout ekri sou sijè a nan nòmalize yon baz done, men si ou tou senpleman evite erè sa yo komen, ou pral sou track dwat la konsepsyon bon baz done.

Erè Database # 1: Repete jaden yo nan yon tablo

Yon règ debaz nan gwo pous pou konsepsyon bon bazdone se yo rekonèt repete done ak yo mete sa yo kolòn repete nan pwòp tab yo. Repete jaden nan yon tab se komen pou moun ki te soti nan mond lan nan tableur, men pandan y ap tableaux yo gen tandans yo dwe plat pa konsepsyon, baz done yo ta dwe relasyon. Se tankou pral soti nan 2D 3D.

Chans, jaden repetitif yo anjeneral fasil tach. Jis pran yon gade nan tablo sa a:

OrderID Product1 Product2 Product3
1 Teddy lous Jele pwa
2 Jele pwa

Kisa k ap pase lè yon lòd gen kat pwodwi? Nou ta bezwen ajoute yon lòt jaden sou tab la sipòte plis pase twa pwodwi yo. Men, si nou te bati yon aplikasyon kliyan ozalantou tab la ede nou opinyon done, nou ka bezwen modifye li ak jaden an pwodwi nouvo. Ak ki jan nou jwenn tout lòd yo ak Jellybeans nan lòd la? Nou ta dwe fòse yo sijere chak jaden pwodwi nan tablo a ak yon deklarasyon SQL ki ta ka sanble: chwazi * ki soti nan pwodwi KI KOTE pwodwi1 = 'jele pwa' OR Product2 = 'Jele pwa' OSWA Product3 = 'Jele pwa'.

Olye pou yo gen yon tab sèl ki manje tout enfòmasyon an ansanm, nou ta dwe gen twa tab ke chak kenbe yon moso distenk enfòmasyon. Nan egzanp sa a, nou ta vle yon tab lòd ak enfòmasyon sou lòd nan tèt li, yon tab Pwodwi ak tout pwodwi nou yo ak yon grenn ProductOrders ki lye pwodwi nan lòd la.

OrderID CustomerID Lòd Dat Total
1 7 1/24/17 19.99
2 9 1/25/17 24.99
ProductID Pwodwi Konte
1 Teddy lous 1
2 Jele pwa 100
ProductOrderID ProductID OrderID
101 1 1
102 2 1

Avi sou ki jan chak tab gen pwòp jaden ID inik li yo. Sa a se kle prensipal la. Nou tab tab lè l sèvi avèk yon kle kle prensipal kòm yon kle etranje nan yon lòt tab. Li plis sou kle kle ak kle etranje yo.

Erè Database # 2: Enplike yon tab nan yon tablo

Sa a se yon lòt erè komen, men li pa toujou kanpe deyò byen kòm anpil jan jaden repetitif. Lè w ap kreye yon baz done, ou vle asire ke tout done ki nan yon tablo gen rapò ak tèt li. Se tankou jwèt timoun sa a sou survèyans sa ki diferan. Si ou gen yon bannann, yon frèz, yon pèch ak yon seri televizyon, televizyon an mete pwobableman ki dwe nan yon lòt kote.

Ansanm liy yo menm, si ou gen yon tab nan lavant moun, tout enfòmasyon ki nan tablo sa yo ta dwe gen rapò espesyalman ak sa moun lavant yo. Nenpòt enfòmasyon siplemantè ki pa inik pou ke lavant moun ka fè pati yon lòt kote nan baz done ou.

SalesID Premye Denye Adrès Nimewo telefòn Biwo OfficeNumber
1 Sam Elliot 118 Main St, Austin, TX (215) 555-5858 Austin Downtown (212) 421-2412
2 Alice Smith 504 2nd Street, New York, NY (211) 122-1821 New York (East) (211) 855-4541
3 Joe Pawas 428 Aker St, Austin, TX (215) 545-5545 Austin Downtown (212) 421-2412

Pandan ke tab sa a ta ka sanble li se tout ki gen rapò ak vandè endividyèl la, li aktyèlman gen yon tab entegre nan tablo a. Remake kòman Biwo ak OfficeNumber repete ak "Downtown Austin" la. E si yon nimewo telefòn biwo chanje? Ou ta bezwen mete ajou yon seri antye nan done pou yon sèl moso nan enfòmasyon chanje, ki se pa janm yon bon bagay. Jaden sa yo ta dwe demenaje ale rete nan tab pwòp yo.

SalesID Premye Denye Adrès Nimewo telefòn OfficeID
1 Sam Elliot 118 Main St, Austin, TX (215) 555-5858 1
2 Alice Smith 504 2nd Street, New York, NY (211) 122-1821 2
3 Joe Pawas 428 Aker St, Austin, TX (215) 545-5545 1
OfficeID Biwo OfficeNumber
1 Austin Downtown (212) 421-2412
2 New York (East) (211) 855-4541

Sa a ki kalite konsepsyon tou ba ou kapasite nan ajoute plis enfòmasyon nan tab la Biwo san yo pa kreye yon kochma nan dezord nan tab la moun lavant. Imajine konbyen travay li ta tou senpleman kenbe tras nan adrès lari, vil, eta a ak Kòd postal si tout enfòmasyon sa yo te nan tab la moun lavant!

Erè Database # 3: Mete de oswa plis pyès enfòmasyon nan yon jaden sèl

Entegre enfòmasyon nan biwo nan tab la lavant moun pa t 'pwoblèm nan sèlman ak ki baz done. Adrès jaden an genyen twa moso enfòmasyon: adrès lari a, vil la ak eta a. Chak jaden nan baz done a ta dwe sèlman gen yon sèl moso nan enfòmasyon. Lè ou gen moso miltip nan enfòmasyon nan yon sèl jaden, li ka vin pi difisil sijè rechèch baz done a pou enfòmasyon.

Pou egzanp, sa ki si nou te vle kouri yon sijè sou tout lavant moun ki soti nan Austin? Nou ta bezwen fè rechèch nan jaden an adrès, ki se pa sèlman rezèvwa, men yo ka retounen move enfòmasyon. Apre yo tout, kisa k ap pase si yon moun te viv nan lari Austin nan Portland, Oregon?

Men sa tab la ta dwe sanble:

SalesID Premye Denye Adrès 1 Adrès2 Vil Eta Zip Telefòn
1 Sam Elliot 118 Main St Austin TX 78720 2155555858
2 Alice Smith 504 2nd St New York NY 10022 2111221821
3 Joe Pawas 428 Aker St Apt 304 Austin TX 78716 2155455545

Gen yon koup nan bagay sa yo sonje isit la. Premyèman, "Adrès1" ak "Adrès2" ta sanble tonbe anba erè jaden repetitif yo.

Sepandan, nan ka sa a yo ap refere a moso separe nan done ki gen rapò dirèkteman nan moun nan lavant olye ke yon gwoup repete nan done ki ta dwe ale nan tab pwòp li yo.

Epitou, kòm yon erè bonis pou fè pou evite, remake ki jan yo te fòma a pou nimewo telefòn la te retire soti nan tab la. Ou ta dwe evite estoke fòma nan jaden lè yo tout posib. Nan ka nimewo telefòn yo, gen plizyè fason moun ekri yon nimewo telefòn: 215-555-5858 oswa (215) 555-5858. Sa a ta fè pou chèche yon moun lavant pa nimewo telefòn yo oswa fè yon rechèch nan lavant moun ki nan menm zòn nan postal pi difisil.

Erè Database # 4: Pa Sèvi ak yon kle prensipal Prim

Nan pifò ka yo, ou pral vle itilize yon nimewo otomatikman enkreman oswa kèk lòt nimewo jenere oswa alphanumerik pou kle prensipal ou. Ou ta dwe evite itilize nenpòt enfòmasyon reyèl pou kle prensipal la menm si li son tankou li ta fè yon idantifyan bon.

Pa egzanp, nou chak gen pwòp nimewo sekirite sosyal endividyèl yo, se konsa lè l sèvi avèk nimewo sekirite sosyal la pou yon baz done anplwaye ta ka son tankou yon bon lide. Men, pandan y ap ra, li posib pou menm yon nimewo sekirite sosyal pou chanje, epi nou pa janm vle kle prensipal nou an chanje.

E ke se pwoblèm nan ak lè l sèvi avèk enfòmasyon aktyèl kòm yon valè kle. Li ka chanje.

Erè Database # 5: Pa Sèvi ak yon Konvansyon Non

Sa a pa ta ka son tankou yon gwo zafè lè ou premye te kòmanse desine baz done ou, men yon fwa ou jwenn nan pwen nan ekri queries kont baz done a rekipere enfòmasyon, li te gen yon konvansyon nonmen pral ede jan ou memorize non jaden.

Senpleman imajine ki jan pi difisil ke pwosesis la ta si non yo te estoke kòm FirstName, LastName nan yon sèl tab ak first_name, last_name nan yon lòt tab.

De konvansyon yo nonmen pi popilè yo se kapitalize premye lèt chak mo nan jaden an oswa separe mo lè l sèvi avèk yon souliye. Ou ka wè tou kèk devlopè kapitalize premye lèt chak mo eksepte premye mo a: firstName, lastName.

Ou pral vle tou deside sou lè l sèvi avèk non tab espesifik oswa non tab plenn. Èske li yon tab Lòd oswa yon tab Orders? Èske li yon tab Kliyan oswa Kliyan Tablo? Ankò, ou pa vle yo kole ak yon tab Lòd ak yon tab Kliyan.

Konvansyon an nonmen ou chwazi a pa enpòtan menm jan pwosesis la nan aktyèlman chwazi ak rete soude nan yon konvansyon nonmen.

Erè Database # 6: Indexing ki mal

Indexing se youn nan bagay ki pi di yo jwenn dwa, espesyalman pou moun ki nouvo nan konsepsyon baz done. Tout kle kle ak kle etranje yo ta dwe Catalogue. Sa yo se sa tab lyen ansanm, se konsa san yo pa yon endèks, ou pral wè pèfòmans trè pòv soti nan baz done ou.

Men, sa ki twò souvan rate yo se lòt jaden yo. Sa yo se "KI KOTE" jaden yo. Si ou yo souvan ale nan etwat rechèch ou a lè l sèvi avèk yon jaden nan yon kloz KI KOTE, ou vle panse sou mete yon endèks sou sa jaden. Sepandan, ou pa vle twò endèks tab la, ki kapab tou fè mal pèfòmans.

Kouman deside? Sa a se yon pati nan atizay la nan konsepsyon baz done. Pa gen limit difisil sou konbyen endis ou ta dwe mete sou yon tab. Esansyèlman, ou vle endèks nenpòt jaden ki souvan itilize nan yon kloz KI KOTE. Li plis sou byen Indexing baz done ou.