Louvri nenpòt aplikasyon : yon magazen anliy, yon rezo sosyal, oswa menm TiKod. Dèyè chak klik, chak paj, chak fòmilè ou ranpli, gen done ki chita yon kote. Yon baz done se kote tout enfòmasyon sa yo viv, òganize yon fason presi pou nou ka jwenn aksè rapid e fyab.
Nan atik sa a n'ap konprann baz yo : poukisa nou pa itilize fichye, kijan done yo òganize an tab, epi kijan pou kominike ak yon baz done gras a langaj SQL.
01 Poukisa nou pa jis itilize yon fichye ?
Nou ta ka imajine estoke tout enfòmasyon yon aplikasyon nan yon senp fichye Excel oswa yon fichye tèks. Pou yon pwojè vrèman piti, sa ka mache yon ti moman. Men trè vit, plizyè pwoblèm parèt.
Premye pwoblèm lan se aksè an menm tan. Si de moun louvri menm fichye Excel epi modifye enfòmasyon an menm tan, youn nan de vèsyon yo ap pèdi. Yon aplikasyon wèb ka gen plizyè milye vizitè an menm tan, tout moun sa yo ap li oswa modifye done yo.
Dezyèm pwoblèm lan se vitès rechèch. Chèche yon liy presi nan yon fichye 100 liy se enstantane. Nan yon fichye 10 milyon liy, sa vin trè lan si fichye a pa fèt pou sa.
Twazyèm pwoblèm lan se koerans done yo. Imajine yon kolòn "imèl" kote kèk liy gen yon majiskil, lòt yo pa genyen, kèk gen espas an plis, lòt yo doub. San règ strik, done yo vin enkoeran rapidman epi yo initilizab.
Yon baz done rezoud twa pwoblèm sa yo : li jere aksè an menm tan nan yon fason ki sekirize, li optimize pou jwenn enfòmasyon rapidman menm ak plizyè milyon liy, epi li ka enpoze règ strik sou done yo (yon imèl dwe inik, yon laj dwe yon nimewo, elatriye ...).
02 Tab yo, baz tout bagay
Pi souvan, ou pral tande pale de "baz done relasyonèl" ki òganize done an tab. Yon tab sanble anpil ak yon fèy tablo : li gen kolòn ak liy.
Kolòn yo defini kalite enfòmasyon ki estoke a : yon non, yon imèl, yon dat kreyasyon. Chak kolòn gen yon kalite presi : tèks, nimewo, dat, elatriye. Liy yo, yo menm, reprezante chak anrejistreman endividyèl : yon itilizatè, yon atik, yon kòmand.
Pa egzanp, yon tab itilizatè ta ka gen kolòn sa yo : id, non, imèl, dat_enskripsyon. Chak liy nan tab sa a reprezante yon itilizatè diferan, ak pwòp valè li pou chak kolòn sa yo. Idantifyan an, oswa id, jwe yon wòl espesyal : se yon nimewo inik ki pèmèt ou jwenn rapidman yon enfòmasyon. De itilizatè ka gen menm non, men yo pa janm gen menm "id".
Sa ki fè modèl relasyonèl la pwisan, se ke tab yo ka konekte youn ak lòt. Yon tab kòmand ka gen yon kolòn "itilizatè_id", ki fè referans a "id" yon itilizatè nan tab itilizatè. Konsa, yon kòmand "se pou" yon itilizatè, epi yon itilizatè ka gen plizyè kòmand. Konneksyon sa a ant tab yo, se sa ki bay baz done a non li "relasyonèl".
Òganizasyon sa a an tab konekte youn ak lòt evite duplikasyon done yo. Olye repete non ak imèl itilizatè a nan chak kòmand, nou estoke jis "id" mèt kòmand lan, epi nou al chèche enfòmasyon li nan tab itilizatè lè nou bezwen yo.
03 Kisa SQL ye ?
SQL, ki vle di Structured Query Language, se lang estanda yo itilize pou kominike ak yon baz done relasyonèl. Ak SQL, nou ka mande enfòmasyon, ajoute, modifye, oswa efase yo.
Kat operasyon fondamantal yo souvan rezime ak akwonim CRUD : Create (kreye), Read (li), Update (modifye), Delete (efase). An SQL, operasyon sa yo koresponn ak kat enstriksyon prensipal.
SELECT pèmèt li done. Se pwobableman enstriksyon ki pi itilize. Men yon egzanp senp :
Demann sa a li prèske tankou yon fraz : "depi tab itilizatè, seleksyone kolòn non ak imèl, pou liy kote id egal a 1". Rezilta a ap non ak imèl itilizatè spesifik sa a.
INSERT pèmèt ajoute yon nouvo liy nan yon tab :
UPDATE pèmèt nou modifye done ki egziste deja :
DELETE pèmèt nou efase youn oswa plizyè liy :
Klòz WHERE a kritik nan UPDATE ak DELETE. San li, modifikasyon oswa efasman an aplike sou TOUT liy nan tab la. Yon erè klasik, epi souvan katastwofik, pou yon debitan se bliye WHERE a.
SQL pèmèt tou operasyon ki pi avanse : klase rezilta (ORDER BY), filtre ak kondisyon konplèks (AND, OR), regwoupe ak konte done (GROUP BY, COUNT), oswa menm jwenn enfòmasyon depi plizyè tab an menm tan grasa jwenti yo (JOIN). Nou pa antre nan detay sa yo isit la, men li bon pou konnen SQL se yon lang rich ki pèmèt reponn a bezwen byen varye.
04 Kalite baz done yo
Gen plizyè gwo fanmi baz done, gen de kategori prensipal ki domine lajman peyizaj la : baz relasyonèl ak baz NoSQL.
Baz relasyonèl yo, tankou MySQL, PostgreSQL oswa SQLite, òganize done an tab konekte youn ak lòt, jan nou te wè anvan. Yo estriktire, fyab, epi se chwa pa defo pou pifò aplikasyon : sit wèb, aplikasyon jesyon, sistèm bankè.
Baz NoSQL yo, tankou MongoDB oswa Redis, estoke done yo diferamman : sou fòm dokiman (souvan fòma JSON). Yo souvan itilize lè done yo pa gen yon fòm fiks, oswa lè nou bezwen pèfòmans patikilye pou gwo volim done ki konn souvan chanje.
Pou kòmanse epi pou pifò pwojè, yon baz relasyonèl tankou MySQL oswa PostgreSQL sifi lajman epi se bon chwa pa defo. TiKod limenm itilize MySQL. Baz NoSQL yo reponn a bezwen espesifik ke nou jeneralman rankontre pita.
05 Kijan yon aplikasyon itilize yon baz done ?
Konkrètman, yon aplikasyon wèb pa janm montre baz done li dirèkteman bay itilizatè a. Olye de sa, gen yon sèvè, yon pwogram, ki resevwa demand itilizatè yo, kominike ak baz done a gras ak SQL, epi voye rezilta a tounen nan yon fòm li ka li.
Annou pran yon egzanp ak TiKod. Lè ou chaje paj akèy la, men sa ki pase nan lonbraj sit la : navigatè a voye yon demann bay sèvè a. Sèvè a egzekite yon demann SQL, yon bagay tankou "jwenn 10 dènye atik ki pibliye, klase pa dat". Baz done a voye done sa yo tounen bay sèvè a. Sèvè a transfòme done brit sa yo an yon bèl paj HTML, ak tit, imaj, rezime. Epi navigatè a affiche paj sa a.
Tout pwosesis sa a pran anjeneral kèk milisegonn. Se pou sa baz done byen konsevwa, ak demann optimize, esansyèl pou yon aplikasyon rete rapid menm ak anpil done ak anpil itilizatè.
06 Konklizyon
Yon baz done se kote enfòmasyon yon aplikasyon viv, òganize an tab, fyab, epi aksesib rapidman. SQL se lang ki pèmèt kominike ak yo : li, ajoute, modifye oswa efase done.
Konprann baz sa yo, kijan tab yo estriktire, kijan yo konekte youn ak lòt, epi kijan yon aplikasyon kominike ak baz done li, se yon etap esansyèl pou konprann kijan nenpòt aplikasyon modèn fonksyone. Nan yon pwochen atik, n ap ka eksplore an plis detay kijan pou konstwi epi entèwoge yon baz done etap pa etap.
Kesyon yo poze souvan