>> Tout dwa.
Se konsa, san yo pa plis tarde, SQL, Estriktire rekèt Lang.
Se konsa, ou pwobableman itilize sa a nan pi piti nan CS50, petèt nan CS165,
petèt nan pwòp ou a pwojè pèsonèl yo.
Ak sa ki SQL kite ou fè sa, nan yon sèvè SQL plis jeneralman?
Yeah?
[Fèbl rmark]
OK, sa ki te trè fason ki byen fèmen nan li di l '.
Wi. Se konsa, li pèmèt ou nan magazen done
ak pi enpòtan pèmèt ou nan sijè rechèch pou done.
Lè sa a se yon etap pi devan
soti nan lè l sèvi avèk yon bagay ki pi senp tankou yon CSV, dwa.
Vigil separe varyab.
Menm jan valè.
Menm jan an tou se pou ou sove enfòmasyon yon sèl ranje
nan yon dosye tèks.
Men, sa ki nan anba kote an nan yon CSV aplike pou fouye done ou a,
menm si ou efektivman jwenn ranje ak kolòn ki soti nan li?
Yeah.
>> Ou pa 'gen menm òganizasyon an
efikasite [fèbl].
>> Ou pa gen menm bagay la tou òganizasyon efikasite.
Ki sa ou vle di?
>> Oke, tankou [fèbl] gen tankou prensipal [fèbl].
>> OK. Yeah.
>> Li se yon baz done relasyon ou ka gen baz done miltip
lye youn ak lòt nan fason trè espesifik.
>> OK. Bon.
>> Li nan [fèbl] yo mete yon CSV.
>> Apre sa, kite m 'ajiste yon ti kras tèminoloji.
Se konsa, plizyè tab ki nan yon baz done, asire w,
e ke ale pi lwen pase sa ki ou kapab fè avèk sèlman yon sèl CSV.
Men, reyèlman limit la ak CSV Mwen ta diskite se
ki ensifizans an nan li tout.
Li trè fasil a Layout.
Men, si ou vle fè yon rechèch, sa ki nan lè a kouri
nan nenpòt ki sijè rechèch chwazi sou yon dosye CSV?
Mwen vle di li nan gwo fin vye granmoun [fèbl], dwat, paske nan ka ki pi mal la,
yo leve nan pati anba a anpil.
Menm si ou te klase tout la CSV ranpli, si ou pa konnen
ki inicio, byen, w ap toujou pral gen
nan rechèch tout bagay la.
Se konsa, nan mitan bagay sa yo nou pral jwenn
soti nan lè l sèvi avèk yon vrè baz done lè l sèvi avèk yon lang
tankou SQL se nou ka sijè rechèch li epi li sa nou kapab nan avanse
kòm konsèpteur baz done presize ki sa yo jaden yo
ki te gen anpil chans pral gen kesyon sou sa ke gen moun ki
nan miskl oswa Microsoft oswa Oracle,
Nenpòt moun ki te fè baz done a w ap itilize ka fè tout
nan travay la difisil nan lè n ap kalkile soti, OK,
bay yon milyon dola nan kat idantite ki gen sa yo.
Ki jan nou ka layout - yo soti nan memwa?
Gen kèk kalite pyebwa estrikti petèt,
se konsa ke lè ou fè aktyèlman egzekite Select,
li nan yon bagay ki logaritmik oswa logaritmik
nan logaritmik nan tan olye pase aktyèlman devolu
nan yon bagay lineyè.
Se konsa, nou te resevwa yon anpil nan pèfòmans ki fason.
Apre sa, nou ka tou sere yon anpil plis done plis fasilman 'lakòz SQL an
Se sèvè anjeneral yo estoke nan RAM menm si pati
nan li ta ka dwe estoke sou ki gen kapasite ak pwobableman ou konnen pa kounye a
ki RAM se jeneralman pi vit pase disk,
Se konsa, sa a, se yon bon bagay.
E nou kapab tou okipe konkouran pi bon.
Si ou te pran 165 oswa 161, èske w konnen ke si de moun eseye
fè menm bagay la nan yon fwa sou yon sistèm,
jeneralman move bagay ka rive.
Se konsa, nan mitan lòt karakteristik sa yo nou ka jwenn si nou desine tab nou an
nan chemen dwat la se pi bon sipò ak sekirite
lè li rive konkouran.
Se konsa, de moun nan de pati
nan mond lan lè l sèvi avèk menm bagay la tou sit entènèt yo, si yo tou de eseye
yo achte yon bagay nan menm bagay la tou tan, ki lòd pa pral
yo ale nan ansanm.
Yon jan kanmenm yo ta dwe seryalize yon moun ki pa pwòp nou yo -
yon moun lòt pase tèt nou.
Volonte nan baz done fè sa pou nou.
Se konsa, lè li nan fòm ki pi senp,
SQL pèmèt nou rechèch yon relasyon baz done.
Yon baz done relasyon se youn ki gen yon
oswa plis tab nan li tipikman.
Men, si sa a se yon ti abitye,
ou ka reyèlman jis panse nan sa a kòm Excel oswa nimewo
oswa Google Des.
Li jis gen ranje ak kolòn ak tipikman tèt la nan chak
nan tout sa yo ranje gen yon non pou li.
Se konsa, sa a ta kapab ID a kolòn, kolòn nan non,
kolòn nan adrès ak pou fè.
Lè sa a, ou ka gen plizyè tab sa yo si ou vle
yo kòmanse tap mete deyò diferan kalite done.
Men, ou ka sonje omwen soti nan CS50 ke nou te eseye
ba w yon ki baze sou entèfas zouti [fèbl]
nan jere baz done ou.
Li te rele fpmyadmen.
Se konsa, li nan jis yon konyensidans ki li te ekri nan PHP, reyèlman,
men li te jis yon ki baze sou wèb devan fini nan yon baz done.
Apre sa, atravè onglè yo divès kalite ak lyen yo, te kapab ou kòmanse
nan konfigirasyon yon baz done pou tèt ou.
Men, yon zouti bon kòmanse jwenn yon ti kras pi plis konfòtab
ak tou se nan lòd-liy kliyan.
Se konsa, si lè l sèvi avèk aparèy la CS50 oswa reyèlman lè l sèvi avèk nenpòt PC macro
ki gen yon miskl liy lòd kliyan, ou ka tou fè l 'sòt
nan fin vye granmoun lekòl la, tankou sa a.
Kòm yon sou kote pwojè a miskl, omwen vèsyon an sous louvri
nan li se kounye a yo rele MariaDB pou plizyè rezon ou ka li
moute sou Wikipedya men li nan lojisyèl an menm,
li nan menm sentaks la ak pou fè,
bèl anpil Kòd menm baz la.
Se konsa, lè mwen se nan nivo sa a de motive-Mwen kapab kounye a kominike
ak baz done m ' pi plis manyèlman.
Se konsa, ka nan pwen, kite m 'ale pi devan
ak jis louvri moute yon fenèt tèminal.
Mwen t'ap pase yo dwe lè l sèvi avèk CS50 nan Aparèy men ou ka fè sa
sou pi fò nan nenpòt ki sistèm nan ki ou te resevwa dwa pou
lojisyèl enstale.
Apre sa, mwen pral fè miskl-u pou non itilizatè Jan Harvard
sou sistèm sa a an patikilye,-p pou yon modpas ke mwen ap tape
nan yon ti kras pi plis byen pa frape Mete.
Koulye a, mwen mande.
Mwen pral tape wouj nan aparèy la CS50
e kounye a, mwen wè esansyèlman ki ekran an menm.
Men, gen nan kòmandman kounye a ke nou ka kòmanse sezisman
tankou montre bazdone, ak ki nan pral montre m 'tout
nan baz done yo sa m 'genyen deja ki te kreye nan sistèm nan,
bèl anpil lis la menm ou ta wè nan fpmyadmen.
Genyen yon koup la lòt moun tankou proje enfòmasyon ak egzamen an,
ki si ou pike alantou an CS50 Aparèy, nou kache kèk
nan sa yo fè tab pi ba nivo
Men, yo ve yo te gen tout tan tout tan sa a.
Miskl aktyèlman gen ba nivo pwopriyete tankou usernames
ak modpas pou baz done a tèt li, se pa pou aplikasyon w lan
ke ou ta ka kouri sou tèt li.
Se konsa, nan avanse, jodi a, mwen kreye yon baz done koup,
youn nan ki te rele courses50.
Chans yo se kèk nan ou te itilize Kou CS50 zouti fè makèt,
ki se yon gwo koòdone pou kou katalòg rejistrè a.
Lè sa a se aktyèlman yon bèl dataze pale sou 'kòz,
yon sèl, nou sòt de tout evidamman abitye avèk kou
ak pwofesè ak reyinyon kote ak tout sòt nan
de bagay sa yo òdinè nan inivèsite,
men li la tou te gen kèk opòtinite ki enteresan
pou konsepsyon.
Se konsa, nou te panse nou ta sèvi ak nan nosyon nan yon katalòg kou
ak yon zouti fè makèt kòm yon egzanp nan tout jodi a sòt
nan ankadreman kèk nan desen an desizyon nou gen fè.
Se konsa, kite la kòmanse a.
Sipoze ke mwen aktyèlman te vle ki reprezante ki pi senp lan nan super
nan kou fè makèt zouti.
Apre sa, mond lan ki pi senp lan Mwen ka imajine ak se yon sèl
nan ki gen kou e gen pwofesè.
Li kite yo sipoze dedomajman pou la nan diskisyon
ke chak kou gen omwen yon non.
Se konsa, kite a kòmanse trase sa a soti.
Mwen pral sèvi ak fpmyadmen jis kòm yon konvenyans,
se konsa nou pa bezwen tape soti tout demann yo manyèlman.
Men, isit la mwen menm mwen nan mwen courses50 baz done.
Si abitye ak sa a, li pral dwe trè fasil yon fwa ou plonje
nan nan pwojè pwòp ou a si ou ta renmen sèvi ak li.
Mwen pral kreye yon tab rele Kou
e mwen kapab sèlman panse nan yon sèl jaden
pou kounye a, non an nan yon kou.
Mwen pral ale pi devan epi di ban m 'yon kolòn.
Koulye a, jan ou sonje ou jwenn yon entèfas sa a, se yon ti jan
tankou sa a.
Ak lòt tèt la franchman nan fpmyadmen se ke li sòt
nan pwòp tèt ou-demandant epi ki atravè dropdowns yo, ou ka sòt
nan wè sa ki posib ou desizyon konsepsyon yo.
Se konsa, mwen pral bay chak kou yon non.
Sa a non an nan kolòn sa a.
Ak ki jan sou kalite done li yo?
Pifò nan ou ta dwe konnen nan pi piti kèk nan sa yo kalite done
nan eksperyans anvan an.
Ki sa ki nan apwopriye pou non kou?
Sharon?
>> Varchar.
>> OK, varchar ki se varyab Char.
Ak sa ki fè sa vle di plis teknikman?
[Fèbl rmark]
OK. Se konsa, li yon kòd.
Apre sa, aspè nan var nan li implique ki sa?
Varyab. Men, sa ki sa vle di?
Yeah?
[Fèbl rmark]
Egzakteman. Se konsa, li nan yon varyab nimewo nan karaktè
nan fisèl moute nan nan kèk maksimòm.
Se konsa, isit la nan premye nou an konsepsyon desizyon.
Nou gen aktyèlman deside konbyen bytes omaksimòm
asiyen nan chak fisèl sa yo.
Anjeneral pale, ou vle sòt de pa fè li twò piti,
pa fè l 'twò gwo 'Lakòz evidan
si twò piti w ap jis pral kòmanse truncating done
epi ou pral pèdi enfòmasyon.
Men, si li twò gwo, ou se jis sòt de di baz done a
ou kapab espere ak optimize pou plis done
pase sa li ta ka aktyèlman tout tan tout tan jwenn.
Se konsa, sa ki nan yon santiman ki rezonab nimewo pou non an nan yon kou?
60? OK, se konsa 60.
Ki sanble trè rezonab
osi lontan se gen nan pa gen eksepsyon nan sa.
Genyen vrèman pa gen okenn difisil, vit règ.
Yo dwe onèt, pou rezon istorik yon anpil
moun nan pèp pral chwazi 255 'Lakòz pou ane sa ki te sòt
nan kantite maksimòm la default lè l sèvi avèk 8 bytes - 8 Bits kòm vann san preskripsyon ou.
Mwen ta plis [fèbl] ta ka itilize pouvwa nan 2
men li la sòt de petinan.
Se konsa, nou ka ale ak 60.
Ki sanble rezonab pou lontan
jan nou evantyèlman pa regrèt li 'Lakòz ki se yon mare anwo kay la.
Koulye a, ta kwè opoze a te pran desizyon ki te fèt,
charaktèr pa varyab men jis jaden an Char.
Se konsa, kontrèman ak C ak C + +, Char pa vle di yon sèl Char
ak baz done ki jeneralman vle di yon nimewo fiks
nan karaktè nan yon kòd.
Ki sa ki ta dwe tèt la ak / oswa inconvénient pou m 'w ap chwazi 60
pou yon jaden Char, olye pou yo varchar?
Sa a se egzakteman kalite nan premye nan desizyon ou pral gen fè
lè enspekte [fonetik elemantè] soti nan pwojè ak patnè ou.
Yeah, Sharon ankò.
[Fèbl rmark]
Bon. Se konsa, si non an se mwens
pase 60 Lè sa a, w ap gaspiye kèlkeswa sa ki delta se
ant 60 an ak aktyèl longè.
Se konsa, ki jis santi l inutil, plis bytes pase ou bezwen.
Men, poukisa li egziste?
Se vre wi gen nan kèk tèt.
Yeah?
[Fèbl rmark]
Asire w. Se konsa, pafwa ou ka konnen ki kantite fiks
nan karaktè tankou 10 chif pou yon nimewo telefòn pou egzanp.
Men, moun ki gen sousi, tankou poukisa pa jis di 11 de tout fason
oswa poukisa pa di 60 de tout fason ak varchar a?
Ki avantaj nou jwenn pa konnen ak desine
pou yon nimewo fiks nan karaktè?
[Fèbl rmark]
Ou se sou track dwat la.
Se konsa, li optimize men li vrèman nan - yeah?
[Fèbl rmark]
OK. Bon. Konsantre Se pou yo sou pati sa a pase.
Se konsa, Indexing.
Se konsa, li vire soti si ou konnen davans ke tout
nan jaden ou yo pral yo dwe 60 karaktè,
ou ka reyèlman panse a sa a kolòn nan baz done a Excel
tankou ke li gen anpil dwat, kite jistifye
e yo gen dwa bor jistifye
paske chak kolòn se 60 karaktè lajè.
Sa vle di ke sa a fisèl se 60 karaktè lwen
soti nan kòd sa a, 60 karaktè lwen yon sèl sa a
ak yon sèl sa a ak yon sèl sa a.
Se konsa, jis tankou tounen lè ou aprann C, ou te gen aksè o aza
nan mond lan nan ranje, menm lide isit la.
Si yo reprezante kolòn ou lè l sèvi avèk sèlman fiks longè charaktèr,
ou kapab efektivman endèks owaza a 60 oswa 120 oswa 180
epi ou ka jwenn nan endividyèlman strings pi plis byen vit.
Lè sa a, si olye de sa, kolòn ou te gen yon kwen dwat bò gòch se konsa yo pale
Men, yon dwa trè rezistan kwen kolòn nan
paske ou ta ka gen 10 karaktè,
15 karaktè, 5 karaktè.
Se konsa, sa a tou se yon arbitraj.
Epi pafwa sèlman nan esè ak erè
ak eksperimantasyon ka ou konnen
konnen ki sa ki vrèman rele nan dwa se men sa yo, se kalite sa yo
nan kesyon ki yo ta dwe ale
nan lespri ou ak / oswa tab lè li rive tan
nan konsepsyon baz done ou.
Se konsa, pa nesesèman dwa reponn, men ou ta dwe
omwen gen kèk fraz oswa de nan tèt ou
backup tou sa desizyon ou fè.
Tout dwa.
Se konsa, an n kenbe defile nan èd memwa yo yo isit la
ki UI fpmyadmen a.
Se konsa, valè a default pou yon non, mwen ta dwe presize
ke li ta dwe gen yon valè default nan nil?
Ki sa ou panse?
Èske yon kou gen yon non nil?
Jis santi l etranj, dwa?
Mwen pa ka panse a nenpòt ki kou enkoni nan Harvard.
E petèt gen nan kèk fènwa ka kwen
ki kote yon kou bay yon nimewo
ak pwofesè a pa gen anyen chwazi yon non pou li men -
Mwen vle di, nan èk ak sa,
tankou se pou yo pa menm deranje sipòte sa.
Mwen ta ka di nan enterè nan yon baz done pwòp bèl,
kite a presize ke ou pa kapab gen yon valè default nan nil.
Yon lòt kote, nou te kapab fè yon bagay tankou kou Untitled
ki se pa kontrèman ak ak Mac OS ak fenèt fè
lè ou kreye yon Katab pou egzanp,
men gen ki fè yon ti kras plis sans
se konsa ke moun nan wè yon bagay.
Nou ap pale sou yon tounen-fen baz done prezimableman
pou kou catalogue.
Se konsa, mwen pa fè sa vrèman menm tankou lide a nan bay li
nan non kou Untitled
depi lè sa a pa reyèlman pral ede nenpòt ki moun.
Se konsa, kite a kite sa a kòm yonn, ki vle di ke lè ou insert
nan baz done sa a, ou gen bay chak kou yon non
ki santi l yon ti kras cleaner avè m '.
Tout dwa.
Se konsa, defile pi lwen, konpilasyon.
Sa a jis te fè ak kouche karaktè ak etajèr
si ou te janm wè mansyone nan Swedish
nan fpmyadmen sa a, se 'Lakòz pèp la
ki te ekri fpmyadmen yo te Swedish.
Eske se sa ke PHP oswa se li miskl?
Youn nan de a, mwen bliye kavalye.
Men, li la pou rezon istorik
men ou ka eksprime chak N. nan lang angle
ke ou ta ka ak Swedish se konsa li a lajman yon ki pa Peye-pwoblèm.
CS50 aparèy la si se itilize - configuré yo sèvi ak utf-8,
se konsa ke jeneralman ta dwe pa pòp moute pou ou.
Atribi figi.
Se konsa pesonn nan sa yo, se vrèman enpòtan isit la.
Mwen wè binè, siye, Siye zerofill,
yo, epi sou aktyalizasyon timestamp kounye a.
Jaden ki aplike sèlman pou kèk nimerik jaden
oswa kèk jaden tan.
Se konsa, nou pral sote sou ki antyèman.
Nil. Èske jaden sa a pral nil?
Se konsa, pa gen okenn. Nou deja gen ki sòt de konvèsasyon.
Se konsa, nou pa vle yon valè defo.
Nou pa vle li nan dwe nil.
Ki sa ki sou endèks?
Genyen kat repons ochwa isit la.
Kisa sa vle di si nou presize
ki ranje sa a ki pral yo dwe yon kle prensipal la?
Panse tounen nan CS50 oswa CS165 si ou te pran li.
[Fèbl rmark]
Egzakteman. Se konsa, yon kle prensipal pa definisyon se jaden an
ki inikman idantifye chak ranje nan tablo sa a.
Epi ou ka konte sou li fè ki idantifikasyon inik.
Se konsa, sa sa vle di Lè sa a, jis pou inik?
Oke, sòt de de sa yo gen sòt
nan anba enplikasyon anba kapo a.
Men, jeneralman, kle prensipal se sòt de yon kontra ou fè
ak bagay la baz done.
Lè m 'fè demann kap chèche yon kou,
Mwen pral itilize sa a patikilye jaden.
Epitou, n ap tounen vin jwenn poukisa nou ta ka gen de
chwa sa yo isit la, prensipal oswa inik.
Inik jis di, sa a jaden a pwal inik
Men, mwen pa vrèman fè nenpòt ki kalite angajman vèbal isit la
yo sèvi ak sa jaden fè rechèch mwen an
pou rezon nou pral wè nan jis yon ti moman.
Si nou presize olye endèks, Kisa sa vle di presize
ke yon jaden gen yon endèks sou li?
Yeah?
[Fèbl rmark]
Egzakteman. Li te optimisé pou rechèch.
Se konsa, ou - sèvè baz done, Oracle, miskl, kèlkeswa sa,
pral jeneralman travay majik li yo dèyè sèn nan yon fwa ou klike sou
opsyon sa a ak Lè sa a, klike sou Sove epi li pral bati
moute tipikman yon estrikti pye bwa, Pye bwa B-si ou te wè
oswa tande nan ki se yon pye bwa trè kout-kap
ki ba ou trè bèl pwopriyete logaritmik
lè chache sou done yo.
Si ou pa presize yon endèks sou yon jaden, sa k ap pase
yo dwe kouri a tan nan chache
pou yon abitrè [Fonetik elemantè] kou Non?
Ki sa ki nan sa?
[Fèbl rmark]
Oh, [fèbl], lineyè, dwa?
Si li gen nan pa gen optimizasyon yo bay baz done a
epi ou pa gen te panse baz done a ki kalite
nan done yo atann.
Pi bon an ou ka fè se chèk tout bagay lè w ap chèche
pou kèk valè, espesyalman si gen te kapab
an reyalite gen Doublon.
Plen tèks pandan se tan, nou pral balanse men nou pou kounye a.
Men, jeneralman, sa a se yon di ki kalite endèks ki pèmèt ou
yo optimize pou mo kle fouy sou yon jaden.
Se konsa, sa a ta kapab yon kandida bon
pou tankou yon deskripsyon kou ki kote ou ta ka genyen yon koup
nan paragraf, epi ou ka vle fè alimèt chèn.
Plen tèks pral jeneralman kite ou fè sa san patipri avèk efikasite.
Lavil Ayi, sa a se yon sòt terib ki bay esplikasyon men si nou hover
sou li ou pral wè Auto enkreman.
Pa aplikab tou de isit la men enkreman oto se itil
pou tankou jaden yon Int a paske baz done a pral pran swen
nan pwosesis la nan plis plusing li chak fwa ou fè yon insert.
Se konsa, ke menm si de moun literalman klike sou Soumèt
an menm tan an epi eseye yo kreye yon ranje yon jan kanmenm
nan baz done a, youn nan yo pral jwenn nimewo mwen an,
lòt la pral jwenn nimewo mwen an plis 1.
Ou pa bezwen enkyete
sou de nonb ke yo te plase idantik si ou te
fè sa a tèt ou nan kòd.
Tout dwa.
Se konsa, mwen kalite renmen kote nou te gen yon non yo dwe.
Se konsa, kite a klike sou Save.
Èske sa se yon konsepsyon bon pou yon tab baz done?
Apre sa, kòm yon sou kote si wouye sou SQL oswa ou sòt
nan jis toujou vire yon avèg je sa ki te gen sou li a,
Mwen te kapab tape egzakteman sa -
sa yo twa liy nan ki nwa ak blan èd memwa
nan liy lan lòd kliyan oswa mwen te kapab te fè
ke nan kòd pwogramasyon.
Se konsa, tout fpmyadmen ap fè pou m ', se jis ekonomize m' efò sa a
pou sonje pafwa la sentaks ak sezisman deyò pou
tankou kòmandman fatigan.
Tout dwa.
Se konsa, sa a pa santi tankou nan pi bon konsepsyon, yon tab jaden.
Koulye a, nou te kapab gen bagay sa yo tankou pwofesè
ak kote ak deskripsyon.
Men, menm lè sa a, lè l sèvi avèk non sèlman
yo idantifye kou pa santi yo ideyal.
Ki sa ki jeneralman gen nou fè nan tan lontan an
si ou te itilize baz done inikman ranje?
Se pa lè l sèvi avèk varchars tipikman.
Yeah?
[Fèbl rmark]
Yeah. Se konsa, tipikman yon ID kou.
Se konsa, ki pi komen an apwòch isit la espesyalman
lè w ap itilize yon fondasyon se aktyèlman jis
yo sèvi ak yon kantite tankou yon nonb antye ki pè.
Se konsa, kite m 'ale pi devan epi fè sa.
Apre sa, nou ka fè sa a nan yon kèk fason, men avi si mwen rale
nan sou anba a isit la.
Mwen pral di ajoute yon kolòn nan fen tab la,
jeneralman jis pou vizyèl konvenyans ou mete kat idantite ki gen
nan kòmansman an nan tablo a menm si sa pa gen okenn reyèl
fonksyonèl enpak.
Se konsa, mwen pral di ajoute yon kolòn
nan kòmansman an nan tab la.
Mwen pral klike sou Ale, ki ban m 'tounen UI sa a isit la.
Se pou yo rele ID sa a.
Si nou panse ke nou ap ale nan gen pa plis fè 4 milyon dola kou
jaden yon Int a se amann.
Nou te kapab menm retresi li desann
Men, espas se bon mache Se konsa, ki reyèlman sousye.
Men, nou ap eseye ekri Facebook kounye a,
pa ka yon move bagay antisipe antye gwo
ki ta ban nou 64-ti jan antye
Men, Lè sa a, ou se literalman double ki kantite Bits
ke w ap itilize, Se konsa, minè arbitraj
Men, yon bagay yo konsidere.
Koulye a, sa a se yon konfizyon eritaj bagay.
Ou ta ka sonje soti nan lè l sèvi avèk miskl
ki nenpòt lè ou deklare yon Int jaden ou pral souvan wè yon nimewo
akote li tankou nimewo a 10.
Li te gen anyen fè ak gwosè a nan nimewo a
oswa nimewo a nan miyèt moso.
Sa te fè ak nimewo a nan karaktè ke yo te itilize
vizyèlman ekspozisyon ki jaden Int
lè w ap itilize yon fenèt tèminal.
Se konsa, nou ka wè ke nan yon ti moman.
Se konsa,, pa ka pa twonpe tèt nou pa sezisman nimewo
nan gen menm si li nan efektivman mande nou
pou yon sèl isit la.
Plis pase isit la, mwen pral ale pi devan epi di siye.
Gen nan pa gen rezon ki fè nou dechè tout nan nimewo negatif nou an
depi baz done a se jeneralman ale
ou panse pozitif valè oswa nil.
ID a definitivman pa ta dwe nil.
Ak ki sa ou panse osijè de endèks la pou jaden ID sa a?
Se pou yo fè l 'prensipal.
Se konsa, sa si, menm si, tankou mwen kapab sèlman panse a yon kou CS164
nan Harvard ak sèlman yon sèl Kou CS50 nan Harvard
e ke sa a bèl anpil vre jeneral
ke gen nan petèt eksepsyon [Fèbl] tou de semès
oswa yon bagay etranj tankou sa.
Men, plis fondamantalman, poukisa se li pi bon
yo sèvi ak yon ID nimerik entegral nan inikman idantifye kou olye
pase jis yon kòd inik?
Yeah?
[Fèbl rmark]
OK, enteresan.
Se konsa, si nou te gen sòt de kwa-yo ki nan lis kou yo.
Se konsa, sa a, se yon bon egzanp.
Mwen pa si mwen ta rezoud ke menm si
pa bay yo menm bagay la tou Nimewo ID si sa a
kote ou te ale ak sa.
Pa gen okenn? OK. Men, definitivman yon ka kwen nan konsidere.
Si gen sòt de - nou bezwen kèk kalite
nan alyas potansyèlman.
[Fèbl rmark]
Asire w.
[Fèbl rmark]
Sa se yon bon egzanp.
Non a ta ka chanje sou tan, totalman ki rezonab.
Ki lòt bagay?
[Fèbl rmark]
Padon, di ankò.
[Fèbl rmark]
Yeah, egzakteman.
Se konsa, reyèlman, sa a, se clincher a reyèl se
ki lè l sèvi avèk yon Int 32-ti jan se pwobableman pwal pi vit
pase kèk varyab longè Char jaden.
Nan ka a an premye, bwat la literalman anfòm nan yon enskri,
nou pa mansyone anpil ki pi piti anprint memwa.
Nan denyé ka sa, w ap ale yo gen fè resort [fonetik elemantè]
konparezon fisèl ki nan tèt yo ak lineyè nan
nan gwosè a nan la fisèl potansyèlman.
Se konsa, li nan jis yon bèl optimize,
e an patikilye li pral
kite nou fè sa yo rele Kontre ak pi plis efikasite
nan jis yon ti moman.
Se konsa, kite a fè sa.
Nou pral presize ki sa a se prensipal
paske mwen pa fè sa patikilyèman vle pran swen oswa w panse
sou sa ki nimewo a se nan yon kou.
Se pou yo pran sou tou sa valè yo vle.
Mwen pral di enkreman oto Se konsa, mwen ka konfye ke detay.
Kòm nan sou kote ou ka konnen ke Harvard
omwen fè sa yo gen inik nimewo pou kou yo.
Mwen pa gen okenn rekoleksyon ki sa sa a kou se.
Mwen konnen ke CS50 nan nimewo katalòg la se 4949,
konplètman abitrè.
Men, gen nan etranj ka kwen nan ke menm
nan pil fatra a registrarial nan kou katalòg done,
pafwa pou kou yo, fin vye granmoun kou gen yon nimewo tankou 4.
Men, teknikman ki jaden se yon jaden Char
ki tou senpleman kòmanse ak 0004.
Se konsa, isit la tou, ou gen yo dwe pran prekosyon ou konsènan distenge
ant bagay sa yo tankou yon kou nimewo katalòg
ki ta ka gen kèk moun nosyon nan fiks longè, 0004,
ak ou pa ta dwe estoke ki pou egzanp nan yon antye.
Ki kalite jaden yo ta dwe dwe estoke yon lòt kote.
Se konsa, nan Harvard, si nou te aktyèlman fè yon kou
zouti fè makèt, li nan pwobableman pa ta gen ase
nan kou nimewo ak jis 1, 2, 3, 4.
Nou ap pwobableman pral gen
yo gen yon lòt jaden rele nimewo katalòg,
ki se tou sipoze yo dwe inik ki baze sou
sou konvansyon moun isit la men se pa chwa ki pi bon
pou yon idantifyan inik paske li ta kapab varyab longè.
Li pa ta ka kat charaktèr, li ta kapab senk.
An reyalite, Mwen panse ke yon kèk ane de sa yo deplase
vin nan kòz senk karaktè 'gen te gen plis pase 999 kou
nan manm oswa yon bagay tankou sa a, oswa 9,999 kou yo.
Se konsa, ke sa ta kapab yon egzanp kote jaden an se pa prensipal
men li ta dwe inik.
Ak adrès imel se yon lòt youn.
Ou ta ka vle li yo dwe inik
men pa nesesèman kle prensipal ou.
Tout dwa.
Se konsa, kite m 'Bang soti yon lòt tab anpil pi vit pase yon sèl sa a.
Se konsa, mwen pral rele sa yon sèl Enstriktè ak mwen pral
bay sa a yon manm nimewo nan kolòn nan de.
Mwen pral aprann mwen leson ki soti nan dènye fwa.
Mwen pral rele premye ID a kolòn.
Mwen pral rele nan dezyèm Non kolòn.
Mwen tou pral fè varchar.
Mwen pral asime pa gen okenn pwofesè gen yon non ankò
pase 60 karaktè, menm si kounye a sa a ta ka pouse li
ak kèk non ki long, espesyal moun ki gen non presegondè.
Sa a amann pou jodi a.
Se konsa, kite a woulo liv sou isit la.
Se pou nou fè sa-a siye ankò.
Se pou yo fè prensipal sa a.
Epitou, n ap pèmèt non kopi
nan ka gen de John Smith la oswa yon bagay tankou sa.
Epi, koulye a nou gen de ròch plat.
Se konsa, kounye a, sa a amèn la kesyon ki jan mwen asosye
nan enstriktè ak kou a?
Mwen santi mwen tankou mwen kalite te resevwa devan yo nan tèt mwen
paske si yon enstriktè anseye yon kou,
premye ensten mwen ta aktyèlman ap tounen
nan kou reyalize, sa a pa t 'yon bon lide.
Kite m 'aktyèlman ajoute yon kolòn nan fen tab la,
klike sou Ale, epi mwen pral rele Enstriktè sa a.
Apre sa, mwen pral fè varchar sa a epi mwen pral fè sa-a 60.
E petèt mwen pral kite li nil kounye a
nan ka kou a pa gen anyen te siye nan enstriktè
ki pafwa k ap pase anvan tèm kòmanse, epi klike sove.
Kilès nan desen sa yo nou pito?
Premye yon sèl kote nou gen yon tab apa enstriktè a
oswa dezyèm lan kote nou jis ajoute yon jaden nan kou a?
Se konsa, li nan yon kole kole lyen enstriktè ak kou.
[Fèbl rmark]
OK. Bon. Men, kite m 'pouse tounen.
Li nan jis pou senp tankou mwen kapab jis kalite nan non moun nan an
nan tablo sa a, tankou siman ki gen kèk valè oswa -?
[Fèbl rmark]
Tout dwa.
Oke, kite m 'ka difisil isit la.
Se konsa, kite m 'di ke kou sa a se CS51
e mwen konnen li nan anseye ane sa a pa de moun.
Se konsa, Henry Leitner epi Izayi tof men -
Se konsa, mwen pral jis mete yon vigil ant de a, dwat.
Mwen vrèman bon nan CSV soti nan pase.
[Fèbl rmark]
Egzakteman, dwa.
Osito ke ou resort nan yon bagay tankou sa a,
ki ta ka santi rezonab ak ou ka santi
tankou sa a se kalite entelijan.
Mwen sòt de prete yon sèl lide ki se nan travay byen,
prete yon nouvo lide ak sòt de konbine yo.
W ap kalite totalman bat pwen an nan lè l sèvi avèk baz done a
nan kòz plas an premye ' si youn nan valè yo
nan lè l sèvi avèk li se pi vit rechèch paske yo te endis yo divès kalite
ak tablo yo ki ka dwe bati moute pou ou
pa motè a baz done tèt li.
Koulye a, si ou vle fè rechèch pou tout moun nan kou yo
ki Izayi anseye, kounye a ou gen chèn matche sou tout
nan jaden yo enstriktè,
ki efektivman vle di lineyè rechèch ankò paske ou gen
jwenn ansanm abitrè sa a nan twa karaktè nenpòt kote
nan jaden an enstriktè anvan
nan lespas petèt swiv pa yon vigil.
Se konsa, definitivman sa a pa anonse byen.
Se konsa, kite m 'ale tounen nan tab la.
Kite m 'ale devan yo pou kou yo, defèt sa.
Mwen pral jis ale devan ak gout ki jaden.
Men, si ou vle fè sa manyèlman,
sentaks la se ALTER TAB kou Drop enstriktè.
Se konsa, kite a ale pi devan epi di repons lan se wi ak sa yo ki.
Apre sa, tounen nan sa a lide pi bonè
kote mwen gen yon separe tab pou pwofesè.
Men koulye a, sa a santi l yon ti kras tankou mwen ka mete yon kou
nan tablo kou a nan ak enstriktè
nan tablo yo enstriktè a nan men mwen yon jan kanmenm bezwen genyen lyen de la.
Ak ki jan ou ta pwopoze nou fè sa?
[Fèbl rmark]
Bon. Se konsa, kite a fè sa.
Apre sa, ou ta ka rele sa tab nan anyen teyori.
Mwen pral fè espre rele li sa ki yon anpil
nan estrikti ta rele l ', nan mitan yo,
Laravel kòm ou pral wè nan yon ti jan.
Mwen pral rele l 'kou souliye enstriktè.
Lè l sèvi avèk sengilye nan sa a ka pou chak nan mo sa yo
ak tout ka pi ba ankò, epi tou ak - a
Lè sa a, lòd avèk lèt ​​alfabè Ranje de gòch a dwat.
Sa a se totalman abitrè men li gen tandans ka yon konvansyon
nan yon anpil nan estrikti sa yo nan PHP nan lòt lang yo.
Konbyen kolòn mwen bezwen nan sa a sa nou rele yon rantre nan tab,
rantre nan de lòt tab ansanm?
Twa kolòn?
Ki yon sèl - sa yo ta dwe ye?
[Fèbl rmark]
OK. Bon. Ki travay.
Apre sa, nou te kapab teknikman koupe yon kwen isit la, men yon anpil
nan estrikti an patikilye ta toujou bay menm liy sa yo
kat idantite ki gen inik menm si semantik ranje a
ke nou reyèlman sousye de oswa kolòn sa yo ke nou reyèlman sousye
sou yo se de a lèt nan ki sa ou te di, ID kou a
ak ID a enstriktè.
Se konsa, kite a fè sa.
M ap rele ranje sa a jis ID, jis tankou nou te fè anvan an.
Men, yon sèl sa a mwen pral yo rele ID kou.
Yon sèl sa a mwen pral rele ID enstriktè.
Apre sa, mwen pral presize ke tout
nan yo se siye Paske mwen vle
yo maksimize 4 m ' milya dola Int pòte.
Okenn nan yo ta dwe nil.
Mwen pral presize ki ID ta dwe toujou gen prensipal.
Li di ankò, sa a se jis yon konvansyon,
yon anpil nan estrikti menm si ou pa sòt
nan fondamantalman bezwen yon idantifikatè inik ki pou ranje a,
li vire soti li nan pratik pou kòd la, SQL an ki k ap pase
yo dwe otomatikman pwodwi pou nou.
Se konsa, mwen pral kite ke kòm prensipal.
Men, koulye a, mwen kalite gen yon desizyon konsepsyon,
ID kou ak ID enstriktè.
Ki sa ki endis si genyen yo ta dwe yo jwenn?
Si m 'ap kite okenn endis, sa ki nan enplikasyon la?
Ki sa ki nan yon enplikasyon?
Pèfòmans tankou anvan, dwa?
Si pa gen okenn endèks, nan pi bon ou ka fè se kalite
nan [fèbl] nan la tout bagay kap chèche chif yo.
Se konsa, ki pa santi yo entelijan.
Ta dwe li prensipal la?
Se konsa, poukisa pa?
Poukisa nou pa prensipal la?
[Fèbl rmark]
Pafè. Se konsa, nou woule soti [fonetik elemantè] prensipal.
Nou deja te chwazi sa.
Se konsa, ta dwe li inik?
[Fèbl rmark]
Bon. Se konsa, si ou sipoze yon sèl enstriktè pou chak kou,
totalman amann.
Epi sa a, definitivman ka a komen
men nou deja wete yon sèl petèt abitye egzanp.
CS51 te resevwa demil pwofesè Se konsa, nou ap kalite
a kounye a vise nan ka sa a.
Si nou te fè sa pèmèt sèlman yon sèl enstriktè,
nou te ka aktyèlman fè yon fason ak rantre nan tablo nèt, la
tounen nan apwòch la pi bonè
epi li mete pa non moun nan an petèt men ID enstriktè a.
Si ou konnen chak kou kòm jis yon sèl enstriktè ou ka gen jis
yon kolòn.
Men, variation a se sa ki te resevwa nou nan pwoblèm.
Tout dwa.
Se konsa, ta dwe li inik?
No konplè tèks pa fè sa santi ki aplikab yo.
Tankou nou te di anvan sa a, se
pou tankou chèn matche pou deskripsyon.
Se konsa, sa ki sou endèks?
Oke, endèks se pwobableman pi bon kandida nou an
ki di miskl Optimization pou fouy sou sa a
oswa kite m 'elabore, optimize pou rechèch oswa kontre ak
jan nou pral wè nan jis yon ti moman
sa yo ke yo se yon ti kras pi plis efikas
pase anyen piman lineyè.
Mwen vle oto ogmantasyon jaden sa a?
Se konsa, pa gen okenn, paske vre a eleman paran ki egziste
nan tablo kou yo.
Sa a kote li nan pral jwenn plis,
plis lè li la aktyèlman eleman.
Isit la, sa a se tout ale yo dwe manyèlman eleman
pa nou prezimableman nan kòd.
Se konsa, kite a tou senpleman presize ke tou de ID kou
ak ID enstriktè gen endis.
Koulye a, nou pral ale pi devan epi sove.
Epi, koulye a, jis yo montre ou korespondans lan
ant sa ki nan yon bèl Entèfas zanmitay koòdone
ak liy koòdone nan lòd.
Kite m 'ale pi devan epi fè nan yo nan nivo sa a èd memwa miskl.
Mwen pral di sèvi ak courses50
ki se non an abitrè Mwen te bay baz done sa a.
Koulye a, mwen pa fè sa menm sonje sa nou te fè sa.
Se konsa, kite m 'tape tab montre
epi jeneralman virgules yo pral zanmi ou isit la
fini rechèch la.
Apre sa, li ye.
Se konsa, isit la yo se ranje yo oswa olye tab yo ke nou gen isit la.
Koulye a, mwen bliye sa yon kou sanble,
Se konsa, kite m 'dekri kou e kounye a, mwen wè sòt de yon ASCII
oswa yon vèsyon nan sa ki fpmyadmen te fè
ak mwen wè ke ID se yon Int.
Gen se ke 10.
Kisa sa vle di?
Ki jis vle di ke lè li parèt li a pral pran
moute 10 karaktè sou fenèt la tèminal.
Èske li nulabl?
No Sa a se kle nan prensipal.
Èske li gen yon valè default?
No Apre sa, anplis ki se espesyal drapo tankou enkreman oto.
Se konsa, kite a jis fè yon koup parusyon nan rapid isit la.
Mwen pral moute a - kite yo jis di.
Se pou nou chanje eta nan yon glise
kote mwen sòt de pre-prepare sa a.
Sa a se yon rezime Lè sa a, nan tout twa nan sa yo tab.
Mwen deja jis manyèlman tape premye lòd la.
Ak isit la, mwen te ale pi devan epi tape lòt moun yo pou ou.
Sa a se jis nan stylistic bagay.
Anjeneral, yon anpil moun ki tape deklarasyon SQL nan tout bouchon
ak Lè sa a, non tab ak non jaden an pi ba a,
si sèlman paske li kalite vle di
konnen ki sa ki nan tèminoloji ou ak sa ki nan sentaks la baz done.
Se konsa, isit la nou gen twa tab, pou kou yo, pwofesè yo,
ak kou pwofesè.
Nan glise nan mwen te fè an avanse, Mwen pa t 'gen jaden an ID
men sa a pa aktyèlman yon move bagay nan tout.
Nou ta jis wè yon twazyèm kolòn la.
Te gen mwen fè sa isit la?
Se konsa, koulye a kite m 'pwopoze ke nou fè yon pakèt moun sou parusyon.
Se konsa, isit la nan kèk done, Mwen pral rale pous
Se konsa, mwen pral pwopoze ke nan kou yo,
nou sèlman fè fas ak twa kou yo.
Apre sa, mwen te chwazi twa bagay sa yo Paske yo ap reprezantan
nan kèk bèl - yo gen kèk bon pwopriyete.
CS1, CS50, CS51 yo, yo gen ogmante kat idantite ki gen
men ki sa ID se sa ki se totalman petinan.
Se jis nan ki lòd yo te oto eleman pa m '.
Kouman sou pwofesè?
Se konsa, koulye a, paske Henry Leitner anseye tou de CS1 ak CS51,
sa a se kalite yon Ewodyad enplikasyon pou konsepsyon nou an.
Konsa konsa, Izayi anseye CS51 ak Malan anseye CS50.
Se konsa, kounye a - oswa olye sa yo, se jis kat idantite ki gen inik moun sa yo la.
Apre sa, kou ak pwofesè yo, - pwofesè kou, remake isit la.
Kou ID1, ki te yo anseye CS1
pa enstriktè ID1 ki moun ki se Henry.
ID2 kou, ki mwen panse te ap anseye CS50
pa enstriktè ID2, ki se Malan.
Lè sa a, Finalman, CS51, ak remake nou gen de ranje.
Epi, koulye a sa a se poukisa a rantre nan tab la se pwisan yo anseye
pa tou de Henry epi Izayi.
Se konsa, sa a se tout bon ak bon,
men mwen kapab apèn sonje koupe tèt la
nan tèt m 'ki moun ki isit la.
Ki jan ou ka pètèt fè fas ak ke nan kòd,
san yo pa gen Kòd bagay sa yo difisil?
Oke, sa a se kote SQL tèt li kòmanse vin zanmi nou an.
Apre sa, mwen pral pwopoze ke nou ka tape sa ki annapre yo.
Mwen pral fè sa nan nan reyèl rapid.
Kite m 'ale pi devan epi insert bagay sa yo.
Se konsa, nan tab la kou kite a fè ekzakteman ki sa nou te gen yon
moman sa Anons sa pibliye depi.
Mwen pral pi devan epi di, kite a insert CS1 ak CS50.
Se pou yo mete yon plis kèk ranje a yon fwa, CS51.
Koulye a, kite m 'ale pi devan epi sove.
Tout dwa, se konsa mwen jis rkree kòm byen vit
jan mwen kapab relasyon yo nou jis te wè sou ekran an.
Se konsa, nan isit la nou gen Leitner, isit la nou gen Malan.
Se pou yo bay tèt nou yon lòt ranje, ak tof.
Koulye a, kite m 'sove sa a.
Apre sa, mwen ap fè yo fè espre nan lòd la menm.
Non, mwen bliye bay sa a enkreman oto.
Kite m 'byen vit ranje sa a.
Mwen pral ranje sa a nan kòd la sou entènèt.
Ki echwe kòm yon sou kote.
Lefèt ke mwen pa t 'kapab insert Leitner ak Malan
ak tof echwe, paske mwen pa t ' presize yon nimewo ID menm si
li nan ap tann yon sèl ak mwen bliye yo tcheke enkreman oto,
ki vle di yo tout te pa default ap resevwa zewo.
Men, sa Lè sa a, lekontrer ki pwopriyete ke nou te espesifye.
Te kle nan prensipal vyole se konsa li pa t 'menm kite m' fè li.
Se konsa, kite m 'ranje sa a.
Koulye a, kite m 'ale tounen nan la Antre tab isit la ak presize
ke mwen vle Leitner, Malan , epi, yon sèl plis ranje, tof.
Epi, koulye a Finalman, se sèlman nan yon sèl sa a, se yon ti kras difisil
sonje se kou enstriktè.
Se pou yo insert kounye a ke kou ID1 se enstriktè ID1
Se konsa, sa a, se CS1 ak Henry.
ID2 kou se enstriktè ID2 ki se CS50 ak Malan.
Lè sa a, yo menm ki sot pase yo nou gen enkyete sou se kou ID3
ki se CS51, se te anseye
pa enstriktè kou 1, ki se Henry.
Ak twa kòm tou anseye pa 3, ki se tof.
Se konsa, èspere ke kounye a nou te rkre sa a -
modi li, m 'te fè menm bagay la.
Enstriktè kou bezwen enkreman oto.
Tout dwa.
Mwen pral fè sa a pi vit tan sa a, kou 1, kou 1, 2, 2.
Epi, koulye a Finalman, nou fè CS51 ki te gen kou ID3 ak Henry.
Apre sa, kou ID3 epi Izayi.
Ki sanble bon.
OK. Se konsa, koulye a, se pou yo tounen gade bò fennèt la tèminal.
Se konsa, si mwen dekri kou nou pral wè sa a.
Si m 'vle wè kou mwen kapab kounye a fè chwazi zetwal soti nan kou yo,
semi kolon, e kounye a, nou wè valè sa yo.
Epi, koulye a, ki lòt bagay Mwen vle fè?
Chwazi zetwal soti nan pwofesè yo, sa a, se menm jan mwen espere,
epi chwazi zetwal soti nan kou - kou enstriktè souliye.
Se konsa, kouman mwen kounye a rantre nan sa yo tab?
Se konsa, bote nan li te gen chwazi valè yo ID nan fason sa a se
ke si ou panse osijè de pran tab la kou
ak yo enstriktè a tab ak Lè sa a, yo mete
nan ant moun ki de nan ou lespri yo enstriktè a kou
tab ou kapab kalite liy moute tout nan kolòn ID sa yo
pou ke ou rantre yo nan yon sèl masiv kolòn ki gen tout
nan enfòmasyon ki nou renmen anpil.
Sentaks nan SQL pou sa a se pa nesesèman evidan,
men kite a wè si nou ka fè li.
Se konsa, chwazi zetwal soti nan kou yo,
epi gen se yon fason kèk jan nou ka fè sa.
Mwen pral frape Antre nan jis kalite de bagay sa yo fòma joliman,
men sa flèch se jis yon sentòm nan zouti ki bò kliyan,
li pa gen anyen fè ak SQL tèt li.
Se konsa, chwazi zetwal soti nan kou yo.
Mwen pral kounye a rantre nan tab la kou
sou tab la enstriktè kou.
Ki jan? Sou jaden an rele courses.id kou egal
souliye enstriktè dot sa ki nan non an
nan jaden ki koresponn lan isit la ke mwen vle yon koup.
Li pa ID.
It's - ki sa, regrèt?
>> ID kou.
OK, kite m 'rale soti.
Men, mwen vle pran sa a yon sèl etap pi lwen.
Mwen te kounye a fè sa tab ak yon sèl sa a.
Koulye a, mwen vle rale nèg sa a nan kòm byen.
Se konsa, kite m 'plis rantre nan sa a tout antye bagay
sou la nan enstriktè tab sou ki sa?
Souliye kou id instructor.instructor
egal instructors.id.
Se konsa, nou te kapab ekri rechèch sa a nan yon fason kèk.
Nan ki lòd mwen te fè sa a se pa tout sa ki enpòtan.
Mwen jis kalite te fè li nan lide m 'de gòch a dwat.
Nou te kapab ou fè a nan kèk fason yo diferan
Men, lè m kounye a gen an semi kolon ak frape Antre,
anons mwen jwenn tounen yon nouvo tab pou yon ti tan, yon rezilta seri
se konsa yo pale nan baz done pale.
Apre sa, sa m 'genyen nan bagay sa a?
Mwen gen sou ID, yon non, yon lòt ID, ki se kalite konfizyon
fè m 'nan moman sa a, yon ID kou,
yon ID enstriktè, ID, ak non.
Se konsa, nan fen jounen an nou gen done yo kounye a.
Mwen ka wè ke CS1 yo anseye pa Leitner, CS51 yo anseye
pa Leitner ak tof, ak Se CS50 anseye pa Malan.
Men, mwen se yon ti kras nève sou anbigwite sa a mwen te kreye.
Ki sa ki nan anbigwite la Mwen ou evoke?
Yeah?
[Fèbl rmark]
Genyen twa kolòn ID.
Se konsa, nou ka aktyèlman ranje sa a ak nou pral aktyèlman pral
ranvwaye fondasyon nou an finalman ede nou ak sa a,
men li sanble ke gen nan yon mo kle nan SQL rele S,
kote ou ka presize yon alyas, yon nouvo non pou yon jaden
pou nou ka evite sa a anbigwite tout ansanm.
Men, reyalize ke si nou pa fè sa adrese li yon jan kanmenm menm jan ak
ki mo kle oswa yon fondasyon,
gen nan potansyèlman sa a anbigwite si ou eseye
jwenn aksè nan jaden an ID paske klèman gen yo se yo menm
ki gen non kopi a.
Se konsa, sa a se yon rantre nan e mwen panse nan je tèt ou a fason ki pi bon
yo reflechi sou li vrèman se pran de moso wòch plat,
liy yo moute nan la fason ke ou vle.
Lè sa a se yon sa yo rele enteryè rantre nan nan sans
ke nou ap konbine tab yo isit la.
Gen lòt kalite kontre ak nou pou nou ka rankontre
apre yon sèten tan tankou deyò kontre ak,
men pou pati ki pi sa a se pwobableman pi komen an
pou rekonstwi done.
Ki sa nou te fè kounye a se jeneralman sa ki rele
nòmalizasyon done ou, se konsa ke gen nan pa gen repetisyon nenpòt kote
nan tab ou.
Apre sa, pa repetisyon, mwen ta yo te vle di ke premye apwòch.
Si nou te mansyone Leitner ak tof nan plizyè kote
nan baz done ou a, sa a pa jeneralman desizyon an pi byen
espesyalman si fòs non yo chanje lè siplemantè oswa nan ka a
nan maryaj, Non jèn fi vanyan chanje tèt li ou jis vle yon sèl
kanonyal kote pou kèk valè done tankou yon non.
Tout dwa.
Se konsa, yo Rekapitilasyon, nou te gen yon desizyon konsepsyon kèk fè
ak moun yo ki pi enpòtan yo pwobableman redwi nan kèk
nan chwa sa yo nan endis.
Men, kite m 'pwen soti yon lòt bagay tou.
Si m 'tounen nan fpmyadmen,
yon karakteristik ou ka pa yo te rankontre anvan yo
sa ki annapre yo.
Si m 'ale nan enstriktè kou, Mwen deja te spesifye ke gen kèk
nan bagay sa yo gen endis.
Men, kite m 'ale nan estrikti a tab nan enstriktè kou.
Kite m 'klike sou kounye a sou endèks ak avi sa ki annapre yo.
Mwen te espesifye isit la ke gen yon kle prensipal
sou kolòn nan rele ID.
Sa a se yon yon ti jan konplike fason pou ki espesifye kardinalite
ak pou fè kòm refere li a gwosè a nan jaden an nan bytes.
Men koulye a, mwen gen tou yon lòt jaden, ID kou, ki se -
kou ID ki se fè an avans e inik, OK.
Mwen te fè yon sèl sa a nan avanse pou nou.
Se konsa, poukisa se sa a - kite m 'lage sa a pou dedomajman pou la nan diskisyon.
Oh, ou konnen ki sa m 'te fè?
OK. Se konsa, byen bonè, youn nan danje pou yo sèvi ak yon zouti entèfas
tankou sa a, lè nou te kreye sa a rantre nan tab,
tab la enstriktè kou, sonje ke mwen espesifye
ke mwen vle yon endèks sou jaden sa a
ak yon endèks sa a sou lòt jaden.
Efè segondè nan tcheke tou de nan sa yo bwat
sou ekran an menm se ke fpmyadmen dedwi de sa,
ke mwen vle pa de endis ki apa a,
ke mwen vle yon endèks rantre nan ki se jeneralman sèlman itil
oswa pi itil lè w ap chèche sou pa gen yon sèl jaden
men tou de nan sa yo jaden yo.
Ak Se poutèt sa nou te gen yo konjwen gen
Se konsa, mwen tonbe li 'kòz ki pa t 'sa m' gen entansyon.
Olye de sa, mwen pral refè sa a isit la.
Mwen pral pou yo ale nan ID la kou
ak anba plis mwen se jis pral di ajoute endèks.
Apre sa, mwen pral ale anba ID enstriktè epi di ajoute endèks.
Epi, koulye a si nou klike isit la, anons nou gen twa endis,
yon sèl primè ak jan mwen entansyon yonn pou chak
nan tout sa yo kle etranje yo.
Apre sa, mwen rele l 'etranje paske ID kou sa a nan kat tab
yo ki jaden, jis yo dwe klè, nan yon lòt tab.
Kle a prensipal rele ID, nan tablo a rele pou kou yo,
ak menm kontra pou yon lòt la.
Men koulye a,, se yon enteresan je chèch ak reyèlman teknik.
Mwen jis al pi devan e kite m ' fè sa yon ti kras pi dousman.
Nan ekran an menm, avi li di Relasyon wè isit la.
Mwen klike sou sa a e kounye a, remake mwen jwenn fè yon kontrent kèk.
Se konsa, youn nan upsides yo tou, yo
Se pa sèlman lè l sèvi avèk concept kle etranje ak lòt tab
tankou nou te jis sou se ki pa defini yon endèks
sou yo ou ka gen nan baz done èd ou menm plis
asire entegrite nan nan ki jaden.
Espesyalman, mwen kapab kounye a presize atravè gout sa a
desann sou menm jaden an ID kou
nan tablo sa a aktyèlman kat sou courses.id.
Menm jan an tou, enstriktè souliye ID trase instructors.id.
Koulye a, poukisa se sa itil?
Oke, avi, sou bò dwat la bò men sa ki parèt kounye a.
Mwen kapab kounye a anseye a baz done ke si Henry
pou egzanp tout tan tout tan pran retrèt ak ranje l 'disparèt
nan tablo yo enstriktè a nan tout ansanm kidonk ke yo te
efase, mwen kapab atravè sa a kaskad apwòch asire
ke nenpòt ki kou li anseye yo pa gen okenn ankò ki asosye avè l '.
Mwen ka anseye baz done a efase ranje yo
nan sa a sa yo rele rantre nan tablo otomatikman si Henry oswa si yon sèl
nan kou l 'disparèt.
Koulye a, poukisa se sa a konvenkan?
Yeah?
[Fèbl rmark]
Ou gen sèlman yo fè l 'yon fwa ak long tèm, dwa?
Li trè fasil si sòt de moun vini e li ale, kou vini
epi ale, baz done ou te kapab jis jwenn lite avèk kou
ak pwofesè yo ki pa gen okenn pi long ki gen rapò ak ansanm done a.
Apre sa, done ou kòmanse jwenn trè sal ak sal ak rasi,
ak se konsa isit la nou kapab klase
nan aplike kèk nan sa yo kontrent.
Yeah?
[Fèbl rmark]
Li konnen pa fason pou sa a.
Sa a se ekran an kote nou yo ki espesifye yon koneksyon
ant kle etranje ak kle prensipal.
Se konsa, tout nan non la konvansyon mwen mansyone
pi bonè yo se jis konvansyon.
Gen nan pa gen sans nannan.
Sa a se ekran an ki se sèlman itil
apre ou fin espesifye endis sou chak nan sa yo jaden kòm nou te fè sa.
Se pou deroulan sa a nou gen yon bagay kèk pou egzanp
si se yon kou efase ou kapab aktyèlman anpeche ke sipresyon
soti nan pase si gen se yon ranje nan tablo sa a
pa jis di li: Anpeche.
Nan lòt mo Henry pa ka pran retrèt ou
jiskaske nou dekouple l ' soti nan CS51 ak CS1.
Se konsa, ki se yon bon bagay.
Men, li te kapab deklanche erè nan Kòd ou
si ou pa prevwa sa a, oubyen nou ka gen yon kaskad,
yon kaskad ki sanble ak renmen fèy papye style kaskad
ak kaskad a kaskad vle di ke si yon -
si Henry pran retrèt se konsa - pa resevwa efase
se konsa yo pral ranje l 'isit la jwenn efase.
Pa gen Aksyon vle di pa gen anyen oswa nil se kalite itil si ou kalite
nan vle gen kèk dosye istorik nan Henry li te gen te anseye CS51,
men ou jis vle ke jaden a nil se konsa ke ranje yo gen
men se pa nenpòt ki pi long ki asosye avè l '.
Se konsa, sa yo, se trè pwisan teknik ke ou ka
ak ta dwe itilize menm si nan enterè patikilyèman
nan ekonomize ou soti nan tèt ou.
Se konsa, kite m 'nonmen yon koup la detay final isit la,
engredyan ak ki ke sa ta kapab itil
kòm nou konte pou konsepsyon baz done.
Ou gen chwa tou sou motè a baz done
ke ou itilize nan kòd ou a.
Si w ap abitye nan CS161 ou ka -
oswa menm 61, ou ta ka jeneralman dwe abitye avèk sistèm dosye.
Apre sa, gen nan bagay sa yo tankou, nf ak HFS +
ak X2FS4 [fonetik elemantè] ak 3 ak pou fè.
Genyen diferan fason nan fouye done sou biwo yo.
Menm jan an tou ki genyen diferan fason pou fouye done
nan yon baz done pa default omwen nan aparèy la
ak vèsyon an dènye nan miskl.
Nou te ap lè l sèvi avèk la motè baz done rele, NoDB,
ki sipòte yon kèk karakteristik bèl.
Men, yon lòt komen se tou rele MyiSAM ak ankò yon lòt
ki ka itilize se memwa, ki vle di pa mete anyen
sou ki gen kapasite, jis kenbe bagay sa yo nan memwa.
Pou pati ki pi pwobableman ou pa pral ale mal jis kòmanse
ak NoDB, men pou nenpòt ki pwojè ki gen tandans fè paran yo gwo pousantaj
nan ensèsyon pou egzanp, tankou yon bann antre rapid,
dè santèn de bagay sa yo pou chak dezyèm oswa dè milye de bagay sa yo.
Nenpòt lè ou gen yon anpil nan bagay pral
sou nan baz done a Lè sa a, sa a kalite
desizyon nan nivo pi ba yo kòmanse jwenn enplike nan sa.
Karakteristik nan tèks konplè pou egzanp travay sèlman nan MyiSAM
Se konsa, ki gen yon enplikasyon.
Men, ou ka sonje sa a, se pou yo omwen motive poutèt sa nou pran swen
sou NoDB an patikilye.
Yon kondisyon ras jeneralman refere a ki sa?
Tout dwa, sa a se yon alizyon nan yon egzanp kèk
nan ou ta ka te tande nan ane ki sot pase si wi ou non 161 oswa 50
kote ou gen yon kolokasyon, tou de nan nou reyèlman renmen lèt,
yonn nan nou vin lakay premye louvri frijidè a gen nan pa gen lèt,
fèmen yo mache byen frijidè atravè lari CVS epi pou yo jwenn
nan liy yo achte kèk lèt.
Pandan se tan, kolokasyon ou vini tounen isit la.
Li tou renmen lèt.
Louvri frijidè a ak reyalize pa gen okenn lèt.
Isit la li Lè sa a, ale nan la magazen, petèt lòt CVS la.
Vit pou pi devan yon kèk minit pita ou tounen e kounye a, tou de
nan nou te achte lèt.
Youn nan yo se kounye a pral yo piye paske ou pa fè sa
tankou lèt ke anpil ak sa a se yon pwoblèm, dwa?
Paske tou de nan nou enspekte eta a nan kèk varyab
yo e te fè yon desizyon ki baze sou li, menm si eta a
varyab sa a te esansyèlman nan pwosesis la pou yo te chanje,
tout se pou li dousman sou la kantite tan li pran
pou li ale nan ak soti nan CVS.
Se konsa, sa se yon sòt de sòt reyèl solisyon mond nan ki pwoblèm?
Kite yon nòt, dwa?
Li te pase dènye fwa.
Toujou kite yon nòt oubyen kadna bagay la literalman.
Apre sa, mwen di kadna, paske si ou fè pran oswa te pran CS161,
bloke se yon fondamantal lide nan ki kalite nan lemonn.
Se konsa, kondisyon ras ka leve tou nan mond lan baz done
epi ou ta ka sonje petèt ki soti nan CS50 finanse si ou te pran 50,
Kòd sa a ke nou aktyèlman te bay ou nèg nan spesifikasyon la
nan moman an pou ke ou operasyon se sa yo rele atomik.
Si ou te vle, nan ka sa ka, achte yon pati nan stock
e ke stock gen kèk senbòl an patikilye.
Nou te di ou sèvi ak Kòd tankou sa a, paske pa fason pou sa a
sou kopi aktyalizasyon kle sentaks, ki se bati
nan miskl w ap efektivman fè swa nan insert
oswa nan aktyalizasyon apre fè yon chwazi yo wè
si yon estòk se deja nan la.
Nan lòt mo, analòg la nan mond lan nan achte yon stock
nan lèt ak frijidè a ta kapab, an premye,
anvan ou achte yon pati nan Google ou ta ka vle chwazi
soti nan baz done a nan tout nan aksyon nan Google jan David posede
yo wè si li genyen zewo oswa plis.
Yon fwa ou wè si li posede zewo oswa plis ou gen
Lè sa a, fè sa ki annapre yo.
Ou swa dwe fè yon insert
si li posede kòz zewo ' gen nan pa gen ranje pou David ankò,
oswa sa ou dwe fè yon ajou si omwens nan teyori ou vle
gen yon sèl ranje pou chak itilizatè.
Pwoblèm nan se chwazi ladan nimewo de aksyon
ak Lè sa a, à oswa te kapab entrodiksyon ap koupe
pa yon lòt moun nan yon lòt tèminal òdinatè ap eseye achte
oswa vann kèk nan David la aksyon nan aksyon si wi ou non
pou rezon bon oswa sòt nan rezon move.
Se tankou ale nan magazen an lè kolokasyon ou vin tounen
ak chèk eta a nan varyab la.
Se konsa, sentaks sa a la nan moman ki te sòt de ki apwopriye
pou CS50, evite ke pwoblèm tout ansanm.
Apre sa, li jis fè sa nan tout sa majik nan bloke pou ou,
men kounye a ak kalite sa yo nan pwojè pou kou sa a
ki gen plis chans pral gen pou wè ak seri done pi konplèks,
ou pa kapab reyalize toujou atomisite sa a.
Tout k ap pase nan yon fwa oswa ou pa nan tout
san entèripsyon Se konsa, chik.
Se konsa, miskl, yon lòt baz done motè,
sipò bagay sa yo rele Locks,
kijan ou ka di seri sa a tab pou ke sèlman yon sèl trete
epi jeneralman sèlman yon sèl itilizatè kapab manyen l 'nan nenpòt ki pwen nan tan
li ak ekri ak Lè sa a, ou ka déblotché li.
Sa se yon egzanp soti nan yon nan pwòp referans miskl a,
kote si ou gen tankou yon bank kont ki w ap eseye
retire lajan ki sòti nan ak Lè sa a, ajoute lajan sou.
Ou ta ka vle asire w ke tou de
nan bagay sa yo rive ansanm
se konsa ke gen nan pa gen erè matematik
epi pa gen okenn pèt youn lajan, yon jan kanmenm.
Pwoblèm nan ak kadna menm si nan yon baz done se
ke li jeneralman vle di se tablo a tout antye fèmen,
ki vle di si ou gen yon santèn moun ap eseye
fè biznis ak bank ou sou entènèt la nan menm kantite lajan an
nan tan se sèlman youn nan yo ka ale nan yon tan.
Ki se estipid, espesyalman sou serveurs sèjousi
ki gen uit kou, 16 kou, gen yon kantite lajan gwo
nan memwa, gen nan pa gen rezon ki fè nou seryalize tout
nan tranzaksyon ou a si moun ki kliyan yo, se sèlman pral
kominike avèk ranje pwòp yo.
Se konsa, NoDB pèmèt ou fè bagay ki pi entèlijan
ak sa a jeneralman yo pral apwòch la ou pran nan kòd,
kòm ou itilize yon bagay rele tranzaksyon an.
Apre sa, ou fè sa jeneralman nan Kòd PHP,
Ruby kòd, Piton, kèlkeswa sa.
Men, kòd la SQL sa a, se finalman itilize se sa a,
tipikman.
Kòmanse tranzaksyon Lè sa a, ou presize de oubyen plis demann
ke ou vle egzekite tout ansanm
san entèripsyon oswa ou pa nan tout.
Gen ka menm gen kèk chwazi deklarasyon an
oswa kèk supresyon oswa dènye enfòmasyon yo.
Men, bagay la bon se ke an baz done yo pral entelijan ase
a asire w ke li pral sèlman fèmen ranje yo yo ap aktyèlman
ki patisipe nan sa a dènye oswa chwazi oswa supresyon.
Se konsa, si ou te resevwa dè milye de ranje , epi ou ap sèlman manyen twa
nan yo, sèlman ki sou nan tablo a yo pral fèmen
ki vle di moun ki lòt 99 kliyan ka manyen ranje yo
san yo pa seryalize ak ralanti desann pa ou.
Pandan se tan, sa a se bèl la aspè tranzaksyon yo.
Yo se tranzaksyon nan yon sans tankou 161 sou yon sistèm ranpli,
yo ap transactionnelle
ki vle di ou kapab woule yo tounen, ou ka defèt yo.
Sa a se tankou yo lòd, ki oswa kontwole F nan baz done.
Si w dekouvri yon pati chemen pou rive nan tout
nan divès kalite operasyon done ou a, tire, yon bagay ki pral sa ki mal.
Ou literalman egzekite yon diferan woulo liv rechèch SQL tounen
ak tout moun sa yo tandans - tout nan deklarasyon sa yo ou egzekite
apre li di kòmanse tranzaksyon disparèt
tankou si yo pa janm rive,
ki se yon étonant pwisan bagay.
Apre sa, sa yo, se kalite ki nan bagay sa yo sètènman nan 50 nou sòt
nan bale anba tapi an ak ou jis kalite asime
ke tout yo pral byen.
Men, yon fwa ou kòmanse panse sou pwojè reyèl
yo ak divinò reyèl ak nan entegrite nan baz done ou a,
sa yo, se kalite sa yo nan desizyon konsepsyon
ke yo pral fè enpòtan.