>> Bütün hüququ.
Belə ki, daha ADO olmadan, SQL, Query Language strukturlaşdırılmış.
Belə ki, siz yəqin ki, bu istifadə bəlkə CS165 ildə CS50, ən,
bəlkə sizin öz şəxsi layihələr.
Və nə SQL, nə imkan vermir ümumiyyətlə bir SQL Server?
Bəli?
[Işitilemez Remark]
OK, çox idi bunu deyərək təmin yol.
Bəli. Belə ki, imkan verir data saxlamaq üçün
və daha da əhəmiyyətlisi verir Məlumat üçün sorğu.
Bu irəli bir addımdır
bir şey istifadə bir CSV kimi sadə, doğru.
Virgülle Dəyişənlər Ayrılıqda.
Oxşar dəyərlər.
Eyni şəkildə siz xilas edək məlumat bir sıra
Bir mətn faylı.
Amma bir İşin mənfi tərəfi odur var CSV veri saxlanılması üçün fayl,
baxmayaraq ki, siz səmərəli bu satır ve sütun almaq?
Bəli.
>> Siz yoxdur Eyni təşkilat
səmərəlilik [işitilemez].
>> Siz eyni yoxdur təşkilat səmərəliliyi.
Siz nə deməkdir?
>> Yaxşı, kimi [işitilemez] [Işitilemez] əsas kimi var.
>> OK. Bəli.
>> Bu relational verilənlər bazası var Siz çox verilənlər bazası ola bilər
bir-birinə bağlıdır çox xüsusi yollarla.
>> OK. Yaxşı.
>> Bu [işitilemez] bir CSV təyin etmək üçün.
>> Və mənə çimdik imkan bir az terminoloji.
Belə ki, çox masalar bir verilənlər bazası ərzində, əmin,
və nə kənara çıxır Siz yalnız bir CSV ilə edə bilərsiniz.
Amma həqiqətən məhdudiyyət CSV ilə mən iddia edirəm
ki, bütün təsirsizlik.
Bu layout üçün çox asandır.
Amma bir etmək istəyirsinizsə sorğu, çalışan zaman nə var
bir seçin sorğu bir CSV faylı?
Mən bu böyük köhnə [işitilemez] demək sağ, ən pis halda "səbəb,
onlar çox alt yüksəldi.
Siz bütün sıralanır hətta əgər CSV fayl, siz bilmirsinizsə
ki, upfront, yaxşı, Siz hələ olacaq
bütün şey axtarmaq üçün.
Belə ki, şeylər arasında biz almaq olacaq
faktiki istifadə bir dil istifadə edərək verilənlər bazası
SQL biz sorğu edə bilər kimi və biz əvvəlcədən bilər
verilənlər bazası dizaynerlər kimi sahəsində nə daxil
ehtimalı var gedirdi ki, haqqında suallar ki, insanlar
MySQL və ya Microsoft və ya Oracle, at
kim bazası etdi istifadə etdiyiniz bütün edə bilərsiniz
ağır iş həyata figuring, OK,
Bu IDS bir milyon verilir.
Necə layout bilər - yaddaşında onları?
Ağac bir növ bəlkə strukturu,
ki zaman nə həqiqətən, seçin icra
Bu ki, bir şey var logarithmic və ya logarithmic
vaxt logarithmic olduqca həqiqətən devolving çox
xətti bir şey.
Beləliklə, biz bir çox var performance ki, yol.
Və biz də bir çox daha çox saxlaya bilərsiniz məlumat daha asan 'SQL səbəb
Server adətən saxlanılır RAM baxmayaraq hissələri
bu disk saxlanıla bilər və yəqin ki, artıq bilirik
ki, RAM ümumiyyətlə disk daha sürətli,
ki, yaxşı bir şey deyil.
Və biz də idarə edə bilərsiniz daha yaxşı concurrency.
Siz 165 və ya 161, qəbul varsa Bilirsiniz ki, iki nəfər cəhd edin
eyni şey üçün bir sistemi də,
pis şeylər ümumiyyətlə baş verə bilər.
Digər xüsusiyyətləri arasında Beləliklə, biz biz masalar dizayn əgər əldə edə bilərsiniz
doğru yolu deyil daha yaxşı dəstək və təhlükəsizlik
Bu rəqabətə gəldikdə.
Belə ki, iki hissədən iki nəfər
Eyni istifadə edərək dünyanın website, onlar həm də cəhd edin
eyni zamanda bir şey almaq üçün zaman ki, sifariş niyyətində deyil
eyni zamanda getmək.
Elə onlar serialized olunacaq öz başqa kimsə tərəfindən -
özümüzü başqa kimsə.
Bu verilənlər bazası iradəsi bizim üçün bunu.
Belə ki, sadə formada zaman,
SQL bizə sorğu imkan verir relational verilənlər bazası.
A relational bazası bir var ki,
adətən bu və ya daha çox masalar.
Və bu əgər az müəmmalı,
Siz, həqiqətən, yalnız hesab edə bilər Bu Excel və ya nömrələri kimi
və ya Google tablolar.
Bu, sadəcə satır və sütun var və adətən hər top
həmin satır bunun üçün bir adı var.
Belə ki, bu ID ola bilər sütun, adı sütun,
s ünvanı sütun və.
Və sonra birdən ola bilər masalar əgər siz
salınması başlamaq üçün məlumatların müxtəlif növləri.
Amma geri bilər ən azı biz çalışdıq ki, CS50
bir GUI-based vermək alət [işitilemez]
verilənlər bazası idarə.
Bu phpMyAdmin adlanırdı.
Belə ki, yalnız bir təsadüf deyil ki, Bu PHP yazılmış, həqiqətən,
lakin yalnız bir web-based idi ön bazasında son.
Və müxtəlif sekmeleri vasitəsilə və links, siz başlaya bilər
bir verilənlər bazası konfiqurasiya Özünüz üçün.
Amma yaxşı bir vasitədir başlamaq üçün bir az daha rahat almaq
da ilə command-line müştəri.
Belə ki, CS50 Aracı istifadə edərək, və ya, həqiqətən, hər hansı bir makro PC istifadə edərək,
ki, bir command line MySQL var müştəri, siz də sort bunu edə bilər
bu kimi köhnə məktəb.
Bir kənara MySQL layihə kimi ən azı açıq mənbə versiyası
bu indi üçün MariaDB adlanır Siz oxuya bilərsiniz müxtəlif səbəbləri
Vikipediya haqqında up lakin eyni proqram,
eyni sintaksis var və s,
olduqca çox eyni kodu baza.
Və mən bu olduğumu İndi qarşılıqlı bilər təklif
mənim bazası ilə daha çox əl.
Nöqtəsində belə halda, mənə gedək qabaqda
və yalnız açmaq bir terminal pəncərə.
Mən CS50 istifadə oldu Appliance lakin siz bunu edə bilər
ən hər hansı bir sistem haqqında Siz hüququ var olan
proqram yüklü.
Və mən MySQL-u gedirəm istifadəçi adı John Harvard üçün
bu sistemi, p Mən yazın lazımdır ki, bir parol üçün
bir az daha təhlükəsiz vuraraq daxil edin.
İndi istenir alıram.
Mən allıq yazın gedirəm CS50 Aracı
və indi mahiyyətcə bax eyni ekran.
Amma əmrləri indi var biz yazmağa başlaya bilərsiniz ki,
kimi verilənlər bazası göstərmək və ki, mənə bütün göstərmək olacaq
var ki, verilənlər bazası artıq sistemi yaradılmışdır
olduqca çox eyni siyahısı Siz phpMyAdmin görmək.
Kimi digər bir neçə var məlumat şeması və test,
siz ətrafında soxmaq əgər CS50 Aracı, biz bəzi gizlətmək
bu aşağı masalar
lakin onlar olduğunuz bütün bu dəfə.
MySQL həqiqətən aşağı səviyyəsi var istifadəçi adı kimi xassələri
və verilənlər bazası üçün parol özü, sizin proqram üçün
Siz ola bilər ki, Bunun üzərinə çalışan.
Belə ki, əvvəlcədən, bu gün mən bir neçə verilənlər bazası yaradılmış,
olan biri adlanır courses50.
Oran siz bəzi istifadə edir CS50 əlbəttə alver alət,
üçün böyük bir interface olan qeydiyyatçının kurs kataloq.
Və bu, həqiqətən bir gözəl səbəb haqqında danışmaq verilənlər bazasının,
bir, biz növ bütün istəyirik kursları ilə açıq-aydın tanış
və müəllimlər və görüş locations və bütün sort
adi şeyi universitet,
lakin bəzi var maraqlı imkanlar
dizayn.
Belə ki, biz istifadə istədiyiniz fikir bir kurs kataloq anlayışı
və kimi bir alver alət Məsələn düzmək üçün gün ərzində
dizayn bəzi nizama biz etmək üçün qərarlar.
Belə ki, orada başlamaq edək.
Mən, həqiqətən, istədiyini düşünək super sadə təmsil
əlbəttə alətləri alış-veriş.
Və sadə dünya Mən təsəvvür edə bilərsiniz və bir
kursları var olan və müəllimlər var.
Və güman edək müzakirə naminə
hər kurs ən azı bir ad var.
Belə ki, başlasın bu eskiz.
Mən phpMyAdmin istifadə gedirəm yalnız bir rahatlığı kimi,
belə ki, biz həyata yazın yoxdur əl sorgular bütün.
Amma burada am mənim courses50 bazası.
Bu tanımadığı varsa, bu will Siz dive dəfə çox asan ola
öz layihə üçün Siz onu istifadə etmək istəyirsinizsə.
Mən yaratmaq üçün gedirəm Kurslar adlı masa
və mən yalnız hesab edə bilər bir sahəsində
İndi, bir kurs adı.
Mən irəli getmək üçün gedən və alıram demək mənə bir sütun verir.
Siz geri kimi, indi almaq bir az var ki, bir interfeys
bu kimi.
Və digər ayaq səmimi phpMyAdmin edir ki, bu sort
self-təlimatlandırılması və No pop-menülerde vasitəsilə, siz düzmək bilər
nə mümkün oldu dizayn qərarlar var.
Mən vermək gedirəm hər kurs bir ad.
Bu sütun adı var.
Və necə veri növü haqqında?
Siz ən çox bilməlidir azı bu məlumat növləri bəzi
təcrübəsi.
Müvafiq nedir Əlbəttə Ad?
Sharon?
>> VARCHAR.
>> OK, VARCHAR olan Dəyişən Char edir.
Və nə ki, yoxdur daha texniki deməkdir?
[Işitilemez Remark]
OK. Belə ki, bir simli var.
Və var aspekt bu nə deməkdir?
Dəyişən. Amma nə ki deməkdir?
Bəli?
[Işitilemez Remark]
Məhz. Belə ki, bir dəyişən var simvol sayı
simli up bəzi maksimum.
Belə ki, burada ilk var dizayn qərar.
Biz, həqiqətən, qərar var neçə bayt maksimum
Hər bir belə simli ayrılması.
Ümumiyyətlə, istədiyiniz sort, o, çox kiçik etmək
Bu çox böyük deyil "Aşkar səbəb
çox kiçik, əgər yalnız istəyirik məlumat truncating başlamaq niyyətindədir
və məlumat itirmək lazımdır.
Bu çox böyük deyil, əgər yalnız istəyirik sort bazası izah
gözləmək və üçün daha çox məlumat üçün optimize
Bu, həqiqətən, heç əldə edə bilər daha.
Belə ki, ağlabatan hiss nə kurs adına sayı?
60? OK, belə ki, 60.
Bu olduqca ağlabatan görünür
kimi uzun var heç bir ki, istisnalar.
Heç həqiqətən var ağır, sürətli qayda.
Üçün, vicdanlı olmaq tarixi səbəbləri çox
insanlar 255 seçəcək 'Sort idi ki, il üçün səbəb
8 istifadə default maksimum bytes - sizin counter kimi 8 bit.
Mən istədiyiniz daha [işitilemez] 2 səlahiyyətləri istifadə edə bilər
lakin bu cür yersiz var.
Beləliklə, biz 60 ilə getmək olar.
Bu ağlabatan belə uzun görünür
biz nəhayət peşman deyil kimi Ki, bir üst bound səbəb olur.
İndi, əks güman qərar qəbul edilmişdir,
dəyişən deyil chars lakin yalnız char sahəsində.
Belə ki, C və C + +, char fərqli bir char demək deyil
və verilənlər bazası ki, ümumiyyətlə sabit sayı deməkdir
simli simvol.
Nə ayaq və / və ya olardı mənim 60 seçilməsi İşin mənfi tərəfi odur
bir char sahəsində, əvəzinə varchar üzvü?
Bu, məhz ilk növüdür qərarın etmək lazımdır
out [fonetik] tədqiqi sizin tərəfdaşları ilə layihə.
Bəli, Sharon yenidən.
[Işitilemez Remark]
Yaxşı. Belə ki, adı az olduqda
60-dan sonra israf edirik ki, delta nə
60 və arasında faktiki uzunluğu.
Belə ki, yalnız, israfçı hiss sizə lazım olan çox bytes.
Amma niyə bu mövcud?
Şübhəsiz ki, bəzi ayaq var.
Bəli?
[Işitilemez Remark]
Sure. Belə ki, bəzən Sabit nömrəni bilirik bilər
10 pillə kimi simvol Məsələn bir telefon nömrəsi üçün.
Amma kim nə kimi, qayğı yalnız hər halda 11 demək deyil
və ya niyə demək deyil 60 hər halda varchar ilə?
Nə üstünlüyü biz əldə edirsiniz bilən və dizayn
sabit sayı simvol?
[Işitilemez Remark]
Siz doğru yolda deyilik.
Belə ki, optimallaşdırma, lakin Bəli - həqiqətən var?
[Işitilemez Remark]
OK. Yaxşı. Gəlin diqqət ki, ötən hissəsində.
Belə ki, endeksleme.
Əgər belə çıxır əvvəlcədən bilirik ki, bütün
Sizin sahələrində gedir 60 simvol olmaq,
Əgər həqiqətən bu hesab edə bilər Excel bazasında sütun
çox düz olan kimi haqlı sol
və haqlı kənarları
çünki hər bir sütun 60 simvol genişdir.
O deməkdir ki, bu string 60 simvol üz
Bu simli, 60 bu bir simvol
və bu və bu bir.
Zaman Belə ki, yalnız geri istəyirəm C öyrəndim, siz təsadüfi çıxışı var
Diziler dünyada, burada eyni fikir.
Sütun təmsil olunur əgər yalnız sabit uzunluğu Sandıqı istifadə edərək,
Siz səmərəli index bilərsiniz təsadüfi üçün 60 və ya 120 və ya 180
və fərdi əldə edə bilərsiniz daha tez strings.
Sonra əvəzinə, sütun var idi belə danışmaq düz sol kənar
lakin bir çox möhkəm hüququ sütun kənar
Siz ola bilər, çünki 10 simvol var,
15 simvol, 5 simvol.
Belə ki, bu çox bir tradeoff edir.
Və bəzən yalnız sınaq və səhv ilə
və təcrübə Siz anlamaq olar
nə həqiqətən doğru səslənirəm lakin bu növ
sual ki, davam edilməlidir
ürəyinizdə və / və ya vasitəsilə masalar zaman vaxt gəlir
verilənlər bazası dizayn.
Belə ki, mütləq doğru deyil cavab lakin olmalıdır
ən azı bir var nəzərə cümlə və ya iki
backup nə etmək qərarı.
Bütün hüquqlar.
Belə ki scrolling saxlamaq imkan burada istemlerini
ki, PhpMyAdmin nin UI var.
Belə ki, üçün defolt dəyər adı, mən müəyyən etməlidir
var olmalıdır ki, null bir default dəyəri?
Siz nə düşünürsünüz?
Kurs null adı ola bilər?
Sağ, qəribə hiss edir?
Mən heç bir hesab edə bilməz Harvard adsız kursları.
Və bəlkə bəzi var qaranlıq künc halda
bir kurs bir sıra verilir yerləşir
və professor yoxdur bunun üçün bir ad seçilmiş lakin -
Mən ki, heck, demək,
nin kimi hətta bildirin ki, dəstək narahat.
Mən maraq deyərdim gözəl təmiz bazası,
nin müəyyən edək bilməz null bir default dəyəri var.
Alternativ olaraq, biz bunu edə bilər untitled kurs kimi bir şey
ilə fərqli deyil Mac OS və Windows etmək
bir yaratmaq zaman Məsələn qovluq,
lakin orada edir bir az daha məntiqli
insan bir şey görmək ki.
Biz söhbət edirik geri sonuna verilənlər bazası ehtimalla
Əlbəttə kataloq üçün.
Belə ki, mən, həqiqətən, hətta bunu verilməsi ideyası kimi
untitled kurs adları
ki, həqiqətən deyil, çünki hər kəs kömək edir.
Belə ki, heç kimi bu tərk edək, siz daxil o deməkdir ki,
Bu bazasında, siz var hər kurs bir ad vermək
bir az hiss edən mənə təmiz.
Bütün hüquqlar.
Belə ki, daha qayisəsi scrolling.
Bu yalnız nə var xarakter dəstləri və etajer
Əgər gördük əgər İsveç qeyd
phpMyAdmin ki var 'Xalqı səbəb
olan phpMyAdmin yazdı İsveç idi.
Ki, PHP və ya bu MySQL nədir?
Iki biri mən fikirləşmədən unuttum.
Amma bu tarixi səbəblərə görə
lakin hər ifadə edə İngilis character
Siz İsveç ilə ola bilər ki, belə ki, əsasən qeyri-məsələdir.
CS50 Aracı olsa istifadə - UTF-8 istifadə üçün yapılandırılmış,
belə ki, ümumiyyətlə olmalıdır sizin üçün açılır.
Features.
Belə ki, bu heç biri burada, həqiqətən, müvafiq.
Mən İkili, imzasız bax Imzasız zerofill,
və yeniləmə Cari zaman damgası haqqında.
Bu sahədə aiddir Bəzi rəqəmli sahəsində
və ya bir müddət sahələri.
Beləliklə, biz artıq keçmək lazımdır ki, tamamilə.
Null. Bu sahədə null ola bilər?
Belə ki, heç. Biz artıq var söhbət ki, sort.
Beləliklə, biz istəmirik bir default dəyəri.
Biz null olmaq istəmirəm.
Nə indeksi haqqında?
Burada dörd seçim var.
Biz müəyyən əgər nə deməkdir
Bu sırada gedir ilkin əsas olacaq?
Geri CS50 və ya düşüncə Siz onu qəbul etdik əgər CS165.
[Işitilemez Remark]
Məhz. Belə ki, ilkin əsas Açıklama sahəsində deyil
ki, benzersiz müəyyənləşdirir Bu cədvəldə hər sıra.
Və nə üçün bu etibar edə bilərsiniz ki, unikal şəxsiyyət.
Belə ki, bu nə deməkdir sonra yalnız unikal olmalıdır?
Yaxşı, sort bu iki sort var
anlamını altında başlıq altında.
Amma ümumiyyətlə, əsas açardır etmək bir müqavilə sort
verilənlər bazası şey ilə.
Mən sorğu nə zaman bir kurs üçün axtarır,
Mən bu istifadə gedirəm Xüsusilə sahəsində.
Və biz geri gəlmək lazımdır biz ola bilər, niyə iki
Burada belə seçim, əsas və ya unikal.
Unique yalnız bu deyir sahəsində unikal olacaq
lakin mən, həqiqətən bir edən deyiləm burada şifahi öhdəlik cür
tarlanı istifadə etmək Mənim axtarışlar etmək
biz will səbəblərə görə yalnız bir anda oldu.
Biz əvəzinə indeksi daxil edin, nə müəyyən etmək deməkdir
bir sahəsində bu barədə bir index var ki?
Bəli?
[Işitilemez Remark]
Məhz. Bu oldu sorğu üçün optimize.
Belə ki, - verilənlər bazası server, Oracle, MySQL, nə olursa olsun,
ümumiyyətlə onun sehrli işləyəcək pərdə arxasında basın dəfə
sonra bu seçimi basın Qazanc və inşa edəcək
up adətən ağac strukturu, B-ağac gördüm əgər
və ya olan off eşitdim çox qısa görünüşlü ağac
ki, siz çox gözəl verir logarithmic xassələri
Bu data axtarış zaman.
Bir index daxil deyilsə bir sahəsində, nə olacaq
çalışan olmaq axtarış zaman
bir ixtiyari üçün [Fonetik] Əlbəttə adı?
Nə olub?
[Işitilemez Remark]
Oh, [işitilemez], xətti, sağ?
Heç bir optimallaşdırılması varsa bazasında verilən
və siz fikir yoxdur Verilənlər bazası nə cür
gözləmək data.
Siz edə bilərsiniz ən yaxşı çek edir aradığınız zaman hər şey
bəzi dəyəri üçün, xüsusilə də əgər bilər
əslində dublikatları ola bilər.
Tam mətn eyni zamanda, biz will İndi bizim əlləri dalğa.
Amma ümumiyyətlə, bu bir sizə imkan verir ki, index növü
söz üçün optimize bir sahəsində axtarış.
Belə ki, bu ola bilər yaxşı namizəd
üçün kurs təsviri kimi Siz bir neçə ola bilər harada
ci maddələrdə və güc və substring matçları etmək istəyirəm.
Full-mətn ümumiyyətlə imkan verir Əgər kifayət qədər səmərəli bunu.
AI, bu dəhşətli sort edir izahat lakin biz hover əgər
üzərində görürsünüz Auto artım.
Tətbiq, həm də burada lakin avtomatik artım faydalı
bir int var sahəsində kimi, çünki Verilənlər bazası qayğı olacaq
plus plusing prosesinin bu bir insert bunu hər zaman.
Belə ki, hətta iki nəfər sözün Submit basın
eyni zamanda və cəhd elə bir sıra yaratmaq üçün
bazasında biri Onlara sayı I olacaq
digər olacaq sayı I plus 1.
Siz narahat yoxdur
təxminən iki ədəd olan Siz əgər eyni təyin
kodu bu özünüz üçün.
Bütün hüquqlar.
Mən cür istədiyim biz bir ad var.
Belə ki, Saxla basın bildirin.
Bu yaxşı dizayn bir verilənlər bazası masa üçün?
Və bir kənara kimi SQL paslı və ya sort
yalnız həmişə kor çevirmək davam nə göz,
I tipli ola bilər məhz -
ki, həmin üç xətləri qara və ağ tez
command line müştəri və ya edə bilərdi
kodu program ki.
Belə ki, bütün phpMyAdmin üçün edir Mənə, yalnız mənə səy qənaət edir
bəzən xatırlayaraq sintaksis və yazaraq
yorucu əmrləri kimi.
Bütün hüquqlar.
Belə ki, bu kimi hiss etmir ən yaxşı dizayn, bir sahədə masa.
İndi ola bilər professor kimi şeylər
və yeri və təsviri.
Lakin hətta sonra, yalnız adını istifadə edərək
kursları müəyyən etmək ideal hiss etmir.
Ümumiyyətlə nə var biz keçmişdə görülmüş
Siz verilənlər bazası istifadə etdiyiniz halda benzersiz sıralarında?
Adətən varchars istifadə.
Bəli?
[Işitilemez Remark]
Bəli. Belə ki, adətən bir kurs ID.
Belə ki, ən ümumi burada yanaşma xüsusilə
bir çərçivə istifadə edərkən yalnız əslində
bir tam kimi bir sıra istifadə etmək.
Mənə irəli getmək və bunu bildirin.
Və biz bir neçə bu edə bilərsiniz Mən zoom əgər yolları, lakin bildiriş
burada alt üzrə.
Mən bir əlavə demək gedirəm Cədvəlin sonunda sütun,
ümumiyyətlə yalnız vizual üçün rahatlığı siz kimlikleri qoymaq
masa başında Bu heç bir real olsa da
funksional təsir.
Mən demək gedirəm bir sütun əlavə
masa başında.
I Go ki, basın gedirəm burada mənə bu UI geri verir.
Bu ID zəng edək.
Biz olacaq düşünüyorsanız heç bir daha çox 4 milyon kursları işlər
int sahə gözəl.
Biz hətta onu shrink bilər
lakin kosmik ucuz belə həqiqətən qalır.
Lakin, biz çalışdığınız , indi Facebook yazmaq
pis bir şey ola bilər böyük ints tahmin
Bizə 64-bit ints verəcək
lakin sonra siz sözün istəyirik bit sayı misli
istifadə etdiyiniz, belə kiçik tradeoff
lakin bir şey hesab.
İndi, bu bir confusing edir miras şey.
Siz xatırlayıram bilər MySQL istifadə
bir int bəyan ki, zaman sahəsində tez-tez bir sıra görəcəksiniz
10 nömrə kimi yanında.
Bu ilə heç bir əlaqəsi yoxdur sayı ölçüsü
və ya bit sayı.
Bu sayı ilə nə var istifadə olunur ki, simvol
ekran Görmə ki, int sahəsində
bir terminal pəncərə istifadə edərkən.
Beləliklə, biz bir anda olduğunu görə bilərsiniz.
Belə ki, Aldanmayın yoxdur nömrələri yazaraq
orada belə olsa da səmərəli bizə xahiş
burada bir.
Burada, mən gedirəm irəli getmək və imzasız deyirlər.
Tullantıların üçün heç bir səbəb var bizim mənfi nömrələri bütün
ildən bazası ümumiyyətlə gedir
müsbət güman dəyərlər və ya null.
The ID mütləq null olmamalıdır.
Və haqqında nə düşünürsünüz Bu ID sahədə indeksi?
Nin əsas edək.
Belə ki, nə olsa, kimi mən yalnız bir CS164 əlbəttə hesab
Harvard və yalnız bir Harvard CS50 kurs
və olduqca var çox doğru ümumi
istisnalar bəlkə var ki, [Işitilemez] dövrdür həm
və ya kimi qəribə bir şey.
Amma daha əsaslı, niyə yaxşıdır
bir rəqəmli ayrılmaz ID istifadə etmək üçün benzersiz kursları müəyyən deyil
bir unikal string daha?
Bəli?
[Işitilemez Remark]
OK, maraqlı.
Biz sort idi əgər kursları cross-verilmişdir.
Belə ki, bir yaxşı misal var.
Mən əgər əmin deyiləm ki, baxmayaraq ki həll
onlara eyni verərək ID nömrəsi ki, əgər
Siz ki, gedirdi.
No? OK. Amma mütləq bir hesab künc halda.
Sort varsa - biz bir növ lazımdır
potensial aliasing.
[Işitilemez Remark]
Sure.
[Işitilemez Remark]
Yaxşı bir misal var.
Adı üzərində dəyişə bilər zaman, tamamilə ağlabatan.
Nə?
[Işitilemez Remark]
Bağışlayın, bir daha demək.
[Işitilemez Remark]
Bəli, dəqiq.
Belə ki, həqiqətən, ki, real pərçim edir
32-bit int istifadə edir ki, yəqin ki, daha sürətli olacaq
bəzi dəyişən çox uzunluğu char sahəsində.
Birinci halda, CAN ildə sanki, reyestrini uyğun
çox qeyd etmək deyil kiçik yaddaş ayaq izi.
İkinci halda, siz olacaq kurort etmək üçün [fonetik]
string müqayisə üçün özləri xətti ilə
nın ölçüsü potensial string.
Belə ki, yalnız bir gözəl optimallaşdırma,
və xüsusilə gedir
us adlanır nə bildirin Daha səmərəli qoşulub
yalnız bir anda.
Belə ki, bunu bildirin.
Biz daxil lazımdır ki, Bu əsas deyil
Mən xüsusilə, çünki qayğı və ya düşünmək istəyirəm
nə sayı bir əlbəttə.
Onları edək onlar istəyirəm nə dəyərlər.
Mən avtomatik artım demək gedirəm mən ki, ətraflı Outsource bilər.
Siz güc kənara kimi bilirik ki, Harvard
ən azı unikal yoxdur kursları üçün nömrələri.
Mən heç bir xatirə var Bu kurslar nə.
Mən bilirəm CS50 ki kataloq nömrəsi, 4949 edir
tamamilə əsassız.
Amma qəribə var ki, künc hallarda hətta
Bu registrarial dump əlbəttə kataloqu data,
köhnə bəzən kursları, kursları 4 kimi bir sıra var.
Ancaq texniki ki, sahəsində bir char sahəsində
ki, sadəcə 0004 ilə başlayır.
Belə ki, burada da, siz olmalıdır fərqləndirən haqqında ehtiyatlı
kimi şeylər arasında Əlbəttə kataloq nömrəsi
bəzi insan ola bilər sabit uzunluğu, 0004 anlayışı,
və saxlamaq lazım deyil ki, bir ints məsələn.
Sahəsində bu cür olmalıdır başqa saxlanılır.
Belə ki, Harvard, biz olsaydı əslində bir kurs edilməsi
alışveriş vasitədir, bu yəqin ki, kifayət deyil
sayı kursları yalnız 1, 2, 3, 4.
Biz yəqin ki, olacaq
başqa sahə var kataloq nömrəsi adlanır,
ki, ehtimal olunur əsasında unikal olmaq
burada insan konvensiyalar lakin ən yaxşı seçim deyil
unikal identifikator çünki Bu dəyişən uzunluğu ola bilər.
Bu dörd ola bilər chars, beş ola bilər.
Əslində, mən hesab edirəm ki, bir neçə il əvvəl onlar hərəkət
orada beş simvol 'səbəb -dən çox 999 kursları idi
ümumi və ya bir şey kimi ki, və ya 9.999 kursları.
Belə ki, nümunə ola bilər sahəsində əsas olmayan
lakin benzersiz olmalıdır.
Və e-mail başqa biridir.
Siz unikal olmaq istəyirəm bilər
lakin mütləq Sizin əsas açar.
Bütün hüquqlar.
Belə ki, mənə başqa həyata bang bildirin bu bir çox daha sürətli masa.
Mən bu zəng etmək üçün gedirəm bir müəllim və mən gedirəm
bu bir ümumi vermək iki sütun sayı.
Mən öyrənmək üçün gedirəm mənim son dəfə dərs.
Mən zəng etmək üçün gedirəm ilk sütun ID.
Mən zəng etmək üçün gedirəm İkinci sütuna adı.
Mən də VARCHAR gedirəm.
Mən heç güman gedirəm professor uzun bir adı var
60 simvol çox olsa indi bu basmaqla bilər
uzun adları, xüsusi ilə orta adları ilə.
Ki, bu gün üçün gözəl.
Belə ki, burada hərəkət edək.
Yenə bu imzasız etmək edək.
Bu ibtidai edək.
Və biz cüt adları imkan lazımdır
halda iki John var Smith və ya kimi bir şey.
Və indi biz iki masalar var.
Belə ki, indi, bu begs olan Mən şərik necə sual
gedişi ilə təlimatçısı?
I növ kimi hiss özüm qabaqda var
çünki əgər bir təlimatçı kurs öyrədir,
mənim ilk instinkt ki həqiqətən geri getmək olacaq
kursları, bu həyata keçirilməsi üçün yaxşı bir fikir deyil.
Mənə həqiqətən bir sütun əlavə edək masa sonunda,
Go basın və I will bu Təlimatçı zəng.
Mən bu VARCHAR etmək lazımdır və mən bu 60 etmək lazımdır.
Və bəlkə mən indi null tərk edəcəyik
halda kurs deyil təlimatçısı imzasız edilmişdir
bəzən əvvəl baş verən müddətli Saxla başlayır və basın.
Bu dizayn Hansı Siz üstünlük verirsiniz?
Biz Birincisi bir ayrı-ayrı təlimatçı masa
və ya ikinci, biz yalnız əlbəttə bir sahəsində əlavə edin?
Belə ki, bir yaxından keçid var kurs təlimatçı.
[Işitilemez Remark]
OK. Yaxşı. Amma mənə geri itələmək bildirin.
Bu kimi mən yalnız belə sadə yalnız şəxsin adını yazın
Bu masa daxil, şübhəsiz ki, kimi ki bəzi dəyəri var və ya -?
[Işitilemez Remark]
Bütün hüquqlar.
Yaxşı, məni burada çətin olsun.
Belə ki, mənə bildirin ki, Bu kurs CS51 edir
və mən bu tədris bilirik iki nəfər tərəfindən bu il.
Belə ki, Henry Leitner və Jesse Tov lakin -
mən yalnız bir vergül qoymaq lazımdır arasında, doğru.
Mən, həqiqətən, yaxşı deyiləm Yesteryear CSV.
[Işitilemez Remark]
Məhz, doğru.
Kimi tezliklə müraciət kimi bu kimi bir şey,
olan hiss edə bilər ağlabatan və hiss edə bilər
kimi bu cür ağıllı deyil.
I növ bir borc alıram də işləmək üçün olan fikir,
yeni bir fikir borc və sort onlara birləşdirir.
Siz cür tamamilə məğlub edirik verilənlər bazası istifadə point
ilk etapda 'səbəb əgər dəyərlərdən biri
istifadə daha sürətli axtarışları edir çünki müxtəlif indekslərinin
və masalar biləcək sizin üçün tikiləcək
verilənlər bazası mühərriki özü.
İndi, siz axtarmaq istəyirsinizsə, Kursların bütün
Jesse öyrədir ki, indi var bütün uyğun substring edirsiniz
təlimatçı sahələrində,
olan səmərəli xətti deməkdir Siz səbəb yenidən axtarış
bu əsassız set tapmaq üçün üç simvol yerdə üzvü
əvvəl təlimatçı sahəsində
bəlkə təqib ərzində bir vergül ilə.
Belə ki, bu, mütləq yaxşı ümidlər vermir.
Mənə geri masa getmək bildirin.
Mənə irəli gedək kursları ki, geri.
Mən yalnız getmək üçün gedirəm irəli və tarlanı buraxın.
Və siz istəyirsinizsə əl bunu,
sintaksis ALTER TABLE edir kursları təlimatçı DROP.
Belə nin irəli gedək ki, bəli demək.
Bu əvvəllər fikir geri
Mən ayrı-ayrı var müəllimlər üçün masa.
Amma indi bu bir az hiss kimi bir kurs qoya bilər
kurs masa və təlimatçı
Təlimatçı-nin cədvəldə amma birtəhər iki keçid lazımdır.
Və necə ki biz bunu təklif?
[Işitilemez Remark]
Yaxşı. Belə ki, bunu bildirin.
Və bu zəng edə bilər nəzəriyyə bir şey masa.
Mən qəsdən gedirəm nə çox zəng
çərçivəsində olardı zəng, onların arasında,
Bir az görəcəksiniz kimi Laravel.
I kurs zəng gedirəm təlimatçı vurğulayır.
Bu tək istifadə sözləri hər biri üçün halda
və bütün aşağı halda yenidən, həmçinin ilə -
sonra əlifba sırası ilə soldan sağa sıralanır.
Bu tamamilə özbaşına, lakin bu bir konqres olmağa çalışır
Bu çərçivədə bir çox digər dillərdə PHP.
Mən neçə sütun lazımdır Bu nə biz bir masa qoşulmaq zəng
digər iki qoşulmaq birlikdə masalar?
Üç sütun?
Hansı bir - onlar nə olardı?
[Işitilemez Remark]
OK. Yaxşı. Ki, işləyir.
Və biz texniki bilər burada bir küncündə lakin bir çox kəsilmiş
xüsusilə çərçivələrini hələ hətta bu satır verəcək
unikal kimlikleri baxmayaraq semantically sıra
biz, həqiqətən qayğı və ya biz, həqiqətən, qayğı ki, sütunları
haqqında sonuncu iki Siz nə dedi, kurs ID
və təlimatçı ID.
Belə ki, bunu edək.
Mən bu sıraya yalnız ID zəng edəcəyik biz əvvəl nə kimi.
Amma gedirəm bu Əlbəttə ID zəng etmək üçün.
Mən gedirəm bu bir təlimatçı ID zəng.
Mən gedirəm bütün daxil
Onlardan imzasız var "Mən istəyirəm səbəb
Mənim 4 maksimize üçün milyard int üçündür.
Onların heç biri null olmalıdır.
Mən müəyyən etmək üçün gedirəm ki, ID hələ əsas olmalıdır.
Və yenə bu yalnız bir konvensiya,
çərçivəsində bir çox sort bile
əsaslı bir ehtiyac sıra üçün unikal identifikator,
Bu üçün rahat çıxır kodu, olacaq ki, SQL
avtomatik olmaq bizim üçün yaradılan.
Mən əsas kimi tərk edəcəyik.
Amma indi, mən növ bir dizayn qərar var,
Əlbəttə ID və təlimatçı ID.
Nə göstəriciləri əgər onlar almaq lazımdır?
Mən heç indeksləri tərk edəcəyik əgər, dolayısı nə var?
Bir dolayısı nə var?
Əvvəlki kimi performans, sağ?
Heç bir index var varsa, siz edə bilərsiniz ən yaxşı cür
və [işitilemez] vasitəsilə nömrələri axtarır bütün şey.
Belə ki, smart hiss etmir.
Bu əsas olmalıdır?
Belə ki, niyə?
Niyə əsas?
[Işitilemez Remark]
Perfect. Beləliklə, biz roll out [fonetik] əsas.
Biz artıq seçdi.
Belə ki, bu unikal olmalıdır?
[Işitilemez Remark]
Yaxşı. Belə ki, əgər güman Əlbəttə hər bir təlimatçı,
tamamilə gözəl.
Və mütləq var ümumi halda
lakin biz artıq bir off qoymaq bəlkə tanış nümunəsidir.
CS51 iki müəllimlər var belə ki, biz növ istəyirik
indi ki, halda berbat.
Biz imkan əgər yalnız bir təlimatçı,
biz, həqiqətən, yol edə bilər Bu cəmi masa qoşulmaq ilə
əvvəllər yanaşma geri
və şəxsin adı qoydu bəlkə amma təlimatçı ID.
Siz yalnız hər kurs bilirsinizsə bir təlimatçı siz ola bilər yalnız
bir sütun.
Amma dəyişiklikləri edir nə narahatlıq bizi var.
Bütün hüquqlar.
Belə ki, bu unikal olmalıdır?
No Tam mətn deyil Tətbiq hiss edirəm.
Ki, əvvəl biz dediyi kimi
kimi substring üçün təsviri üçün uyğun.
Belə ki, nə indeksi haqqında?
Yaxşı, index yəqin ki, ən yaxşı namizəd
MySQL optimize deyir Bu axtarışlar üçün
və ya mənə izah edirik, axtarışlar üçün optimize və ya qoşulur
biz yalnız bir anda görəcəksiniz kimi
onlar istəyirik ki az daha səmərəli
sırf xətti bir şey daha.
Mən avtomatik istəyirəm Bu sahəyə əlavələr?
Belə ki, heç, çünki doğru valideyn element mövcuddur
kursların "cədvəldə.
Bu harada var plus almaq üçün gedir,
üstəgəl bu əslində zaman daxil.
Burada, bu bütün gedir əl daxil etmək
Bizim ehtimalla kodu ilə.
Belə ki, sadəcə daxil bildirin Təbii ki ID həm
və təlimatçı ID göstəriciləri var.
İndi biz irəli getmək və saxlaya bilərsiniz.
İndi, yalnız göstərmək Siz qiyabi
gözəl nə arasında GUI dostu interfeysi
və command line interface.
Mənə irəli getmək və bunu bildirin Bu MySQL əmr sətirinə aşağıdakı.
Mən istifadə courses50 demək gedirəm
ixtiyari adı olan Mən bu bazasında verdi.
Və indi mən belə etmirlər biz nə xatırlayıram.
Mənə show masalar yazın edək
və ümumiyyətlə semicolons sizin dost olacaq
sorğu başa çatdırmaq üçün.
Və orada deyil.
Belə ki, burada daha çox satır və ya biz burada var ki, masalar.
İndi unutmaq nə bir kurs kimi görünür
Mənə kursları təsvir bildirin və indi sort bir ASCII bax
və ya nə bir versiyası phpMyAdmin edirdi
və mən ID int olduğunu görürük.
10 var.
Bu nə deməkdir?
Bu yalnız o deməkdir ki, bu zaman bu almaq olacaq göstərilir
10 simvol qədər terminal pəncərə.
Bu nullable mı?
Xeyr əsas açardır.
Bir öndeğer ola bilər?
Xüsusi olan No Və əlavə avtomatik increment kimi bayraqları.
Belə ki, yalnız bir neçə edək burada tez insertions.
Mən getmək üçün gedirəm üçün - yalnız deyirlər.
Bir slayd dövlət dəyişdirmək edək
I növ olduğu əvvəlcədən hazırlanması bu.
Bu xülasə sonra edir O masalar hər üç.
Mən artıq yalnız əl ilk funksiyanı yazılmış.
Və burada, Mən irəli getdi və sizin üçün digər yazın.
Bu yalnız üslub şey.
Ümumiyyətlə, bir çox insanlar bütün caps SQL hesabatlarının yazın
və sonra masa adları və aşağı halda sahə adları,
yalnız çünki stendləri cür
Sizin terminologiya nə və verilənlər bazası syntax budur.
Belə ki, burada biz üç masalar, kurslar, müəllimlər,
və kurslar müəllimlər.
Slayd mən əvvəlcədən hazırlanmış Mən ID sahəyə yox idi
lakin həqiqətən deyil bütün pis bir şey.
Biz yalnız bir görəcək orada üçüncü sütun.
Mən burada etmişdi?
Belə ki, indi mənə təklif edək ki, biz insertions bir dəstə etmək.
Belə ki, burada bəzi məlumatlar var, Mən daxil zoom olacaq
Mən təklif gedirəm kursları ki,
biz yalnız üç kursları ilə məşğul.
Mən bu üç seçdi Onlar nümayəndəsi etdiyiniz səbəb
Bəzi gözəl - onlar var bəzi gözəl xassələri.
CS1, CS50, CS51, onlar artan kimlikleri
lakin nə ID nə tamamilə əlaqəsiz deyil.
Yalnız üçün var olan onlar mənim maşın daxil edilmişdir.
Necə müəllimlər haqqında?
Belə ki, indi, çünki Henry Leitner , CS1 və CS51 həm öyrədir
bu bir münasib növü Bizim dizayn dolayısı.
Və Jesse CS51 öyrədir və Malan CS50 öyrədir.
Belə ki, indi - daha doğrusu bunlar yalnız xalqının unikal kimlikleri.
Və kurslar və müəllimlər, - Əlbəttə müəllimlər, burada qeyd.
Əlbəttə ID1 olan CS1 tədris olunur edilib
təlimatçı ID1 ilə Henry olan.
Əlbəttə ID2, Mən CS50 tədris olunur düşünürəm
təlimatçı ID2 tərəfindən Malan olan.
Və sonra nəhayət, CS51, və biz iki satır bilərsiniz.
Qoşulmaq niyə və indi bu masa tədris olunur güclü
Henry və Jesse tərəfindən.
Belə ki, bu, bütün gözəl və yaxşı
amma ancaq bilər üst off xatırlayıram
mənim baş kim burada.
Necə bəlkə kodu ilə məşğul,
olmadan ağır kodu şeylər?
Bəli, bu harada SQL özü bizim dost olmaq başlayır.
Mən təklif gedirəm ki, biz aşağıdakı edəbilərsiniz.
Mən bu edəcəyik faktiki tez.
Mənə davam və bu şeyi daxil edin.
Belə ki, kurslar masa biz idi dəqiq nə bildirin
əvvəl an.
Mən qabaqda gedən və demək alıram nin CS1 və CS50 daxil edək.
Bir neçə daha daxil edək satır dəfə, CS51.
İndi mənə irəli getmək və xilas edək.
Bütün sağ, mən yalnız deyiləm kimi tez yeniden
Mən münasibətlər kimi biz yalnız ekranda gördüm.
Və belə ki, burada biz Leitner, burada biz malan var.
Özümüzə versin başqa satır, və Tov.
İndi mənə bu qazanc imkan.
Mən qəsdən onları yapýyorum eyni qaydada.
Xeyr, mən vermək unuttum bu araba artım.
Mənə tez bu düzeltmek bildirin.
Mən bu düzeltmek lazımdır online kodu.
Ki, bir kənara kimi uğursuz.
Bu faktdır ki, bilmədim Leitner və Malan daxil
almadım və Tov, uğursuz baxmayaraq bir numarası daxil
bu bir və I gözləyirik avtomatik artım yoxlamaq unuttum,
onlar bütün idi deməkdir default sıfır əldə edərək.
Amma sonra ziddir biz müəyyən etdik ki, əmlak.
Əsas açar pozulub belə ki, mənə bunu imkan vermədi.
Belə ki, mənə bu düzeltmek bildirin.
İndi mənə geri imkan Burada nişanı daxil edin və daxil
Mən Leitner, malan istəyirəm ki, və daha bir sıra, Tov.
İndi nəhayət, yalnız bir az çətin ki, bir
yadda kurs təlimatçı.
Indi daxil edək ki, Əlbəttə ID1 təlimatçı ID1 edir
ki, CS1 və Henry var.
Əlbəttə ID2 təlimatçı edir CS50 və Malan olan ID2.
Və sonra biz son olanları narahat kurs ID3 edir
CS51 olan tədris olunur
Əlbəttə təlimatçı tərəfindən 1, Henry olan.
Və üç tədris 3, Tov olan.
Belə ki, inşallah Biz bu yeniden sonra -
lənət olsun, mən eyni şey idi.
Kurs müəllimi avtomatik artım lazımdır.
Bütün hüquqlar.
Mən bu sürətli bu dəfə edəcəyik Əlbəttə 1, kurs 1, 2, 2.
İndi nəhayət, biz CS51 etmək olan kurs ID3 və Henry var.
Və əlbəttə ID3 və Jesse.
Bu yaxşı görünür.
OK. Belə ki, indi geri bildirin terminal pəncərə.
Mən təsvir Belə ki, əgər kursları biz bu görəcəksiniz.
Mən edə kursları görmək istəyirsinizsə İndi kursları ulduz seçin etmək
yarı colon, və indi Biz həmin dəyərlər oldu.
Və indi, nə başqa Mən istəyirəm?
Müəllimlər ulduz seçin, Mən gözlənildiyi kimi ki,
və kursları ulduz seçin - Əlbəttə çizgi təlimatçı.
Belə ki, necə Mən indi qoşulmaq yoxdur bu masalar?
Belə ki, seçilmiş edərək gözəllik bu şəkildə ID dəyərlər
ki, haqqında düşünmək əgər kurs masa alaraq
və təlimatçı sonra masa və daxil
Sizin bu iki arasında şüurunda kurs təlimatçı
cür line bilərsiniz masa Bu ID sütun bütün up
Siz onları daxil ki bütün var ki, bir kütləvi sütun
məlumat biz qayğı.
Bunun SQL syntax , mütləq aydın deyil
lakin biz bunu edə bilərsiniz əgər in görək.
Kursları Belə seçin star,
və bir neçə yol var biz bunu edə bilərsiniz kimi.
Mən yalnız Enter gedirəm gözəl format şeyi cür,
lakin arrow yalnız bir deyil müştəri yan alət simptom,
Bu heç bir əlaqəsi yoxdur SQL özü ilə.
Kurslarda belə seçin star.
İndi qoşulmaq gedirəm kursları masa
kurs təlimatçı masa.
Necə? Adlanan sahədə On courses.id bərabər kurs
təlimatçı vurğulayır adı nə dot
müvafiq sahə burada mən bir neçə istəyirəm ki,.
Bu ID deyil.
It's - nə, sorry?
>> Ders ID.
OK, mənə zoom imkan verir.
Amma almaq istəyirəm gələcək bu bir addım.
Mən indi bu etdik masa və bu bir.
İndi çəkmək istəyirəm həmçinin bu oğlan.
Belə ki, daha mənə bildirin bu bütün şey qoşulmaq
təlimatçı üzrə nə masa?
Əlbəttə çizgi instructor.instructor id
instructors.id bərabər.
Beləliklə, biz yazılı ola bilər bir neçə yolla bu sorğu.
Mən bunu olan qaydası bütün əhəmiyyətli deyil.
Mən yalnız cür bunu mənim mind sağ.
Biz bu həyata bilər bir neçə müxtəlif yollarla
amma indi var, əgər yarı colon və Enter
Mən yeni geri almaq ihbar müvəqqəti masa, bir nəticə set
belə bazası danışmaq danışmaq.
Mən nə var bu şey?
Mən şəxsiyyət, bir adı, bir var Cür çaşdırıcı olan ID,
bu anda mənə, kurs ID,
bir təlimatçı ID, ID, və adı.
Belə ki, günün sonunda biz indi doğru məlumatlar var.
Mən CS1 tədris olunur ki, edə bilərsiniz Leitner tərəfindən, CS51 tədris olunur
Leitner və tov, və CS50 Malan tərəfindən tədris olunur.
Amma bir az sinir oldum Mən yaratdığınız bu qeyri.
Bu qeyri nədir Mən alluding alıram?
Bəli?
[Işitilemez Remark]
Üç ID sütun var.
Belə ki, biz, həqiqətən, bu düzeltmek edə bilərsiniz Biz, həqiqətən, gedən olacaq
Bizim çərçivəsində təxirə nəticədə bu, bizə yardım,
lakin var ki, həyata çevirir S adlı SQL bir söz,
Əgər daxil edə bilərsiniz alias, sahə üçün yeni ad
biz bu qarşısını almaq bilər ki, cəmi qeyri.
Amma həyata keçirilir ki, biz əgər kimi birtəhər onu həll
ki, söz və ya çərçivə,
Bu potensial var qeyri cəhd əgər
ID sahəsində daxil olmaq üçün aydın olanları var
orada cüt adları ilə.
Belə ki, bu bir qoşulmaq və mən hesab edirəm fikrinizi göz ən yaxşı yolu
həqiqətən, bu barədə düşünmək iki masalar etmək,
Bu onları sıralamaq istədiyiniz yol.
Və bu qondarma daxili mənada qoşulmaq
biz birləşən edirik ki, burada masalar.
Digər növləri var biz qarşılaşa bilər ki qoşulur
kimi zamanla xarici qoşulur
lakin bu çox hissəsi üçün yəqin ki, ən ümumi
məlumat yenidən üçün.
Nə biz artıq görmüşük edir ümumiyyətlə nə deyirlər
veri normallaşması, belə ki, heç yerdə təkrarlanması var
Sizin masalar.
Və təkrarlanması, mən edərdim ilk yanaşma nəzərdə var.
Biz Leitner qeyd olsaydı və çox yerlərdə Tov
sizin bazasında ki, deyil ümumiyyətlə yaxşı qərar
xüsusilə də əgər onların adı gücü iş və ya halda dəyişə
evlilik, qız adı qüdrət Siz yalnız bir istədiyiniz özünü dəyişdirmək
bəzi canonical yer bir adı kimi data dəyəri.
Bütün hüquqlar.
Belə ki, recap, biz yaşadığınız etmək üçün bir neçə dizayn qərarları
və ən mühüm olanları yəqin ki, bəzi azaldılır
indekslərinin bu seçim.
Amma mənə işarə edək başqa bir şey eləcə.
Mən geri phpMyAdmin getmək əgər
bir xüsusiyyət ola bilər əvvəl rast
aşağıdakı.
I kurs təlimatçı getmək varsa, Mən artıq müəyyən etdi ki, bəzi
bu şeylər göstəriciləri var.
Amma mənə struktur gedək zamanı təlimatçı nişanı.
Mənə İndekslər indi basın edək və aşağıdakı bildiriş.
Burada müəyyən ki, əsas əsas yoxdur
ID adlı sütun.
Bu bir qədər mürəkkəbdir cardinality ifadə yolu
və s istinad kimi bayt sahəsində ölçüsü.
Amma indi mən də başqa var sahəsində olan kurs ID -
edilir kurs ID əvvəlcədən və unikal, OK.
Mən bu bir etdi bizim üçün inkişaf.
Belə ki, niyə bu - mənə açılan bildirin Bu müzakirə naminə.
Oh, mən nə bilirik?
OK. Nın Belə ki, əvvəllər, bir bir GUI aracı istifadə edərək, risklərdən
bu kimi, biz idi Bu masa qoşulmaq yaratmaq,
kurs təlimatçı masa, Mən ifadə xatırlayıram
Mən index istəyirəm ki, Bu sahədə
və bu bir index digər sahə.
Yan təsiri o qutuları həm yoxlanılması
eyni ekranda olduğunu phpMyAdmin ki inferred,
Mən istəyirəm ki, iki ayrı-ayrı göstəriciləri,
Mən qoşulmaq index istəyirəm ki, hansı ümumiyyətlə yalnız faydalıdır
Siz olduğunuzda və ya ən faydalı bir sahəsində deyil, Axtarılanlar
lakin həmin sahələrdə də.
Biz niyə və ki orada birleşmek
mən "səbəb onu düşmüşdür ki, mən nəzərdə nə deyil.
Əksinə, mən gedirəm burada bu redo.
Mən kurs ID getmək üçün gedirəm
və daha altında Mən yalnız index əlavə deməyəcək.
Mən altında getmək üçün gedirəm təlimatçı ID və index əlavə deyirlər.
Və indi biz buraya basın əgər biz üç indeksləri var ihbar,
bir əsas və I hər biri nəzərdə
həmin xarici düymələri.
Mən xarici, çünki zəng Bu cədvəldə xəritələr kurs ID
olan sahə, yalnız olmaq başqa cədvəldə, sil.
ID adlanan əsas əsas, kursları adlı masa,
və digər bir eyni şey.
Amma indi, bir maraqlı bezemek və həqiqətən texnika.
Mən yalnız irəli getdi və mənə bildirin ki, bir az daha yavaş-yavaş bunu.
Eyni ekran, bildiriş burada Əlaqələr görünüşü deyir.
Mən bu basın və indi qeyd bir neçə məhdudiyyətlər bunu almaq.
Belə ki, Sevindirici hallardan biri də
konseptual istifadə yalnız xarici açarları və digər masalar
kimi biz yalnız var ki, bir index müəyyən
onlara siz ola bilər verilənlər bazası yardım daha çox
bütövlüyünü təmin ki sahəsində.
Xüsusilə, indi bilərsiniz Bu drop vasitəsilə daxil
aşağı kurs ID sahəsində
Bu cədvəldə həqiqətən maps courses.id üçün.
Eynilə, təlimatçı çizgi ID instructors.id eşlenen.
İndi niyə bu faydalıdır?
Yaxşı, sağ bildiriş İndi görünür nə tərəfdən.
İndi öyrətmək bilər verilənlər bazası ki, əgər Henry
Məsələn heç retires və onun sıra yox
öğretim masa cəmi bununla olan
silindi, mən bu via bilər yanaşma təmin kaskad
o öyrədir bir kurslar ki, artıq onunla bağlı.
Mən bazası öyrətmək olar satır silmək üçün
bu sözdə qoşulmaq cədvəldə avtomatik Henry və ya əgər bir
onun kursları yox.
İndi niyə bu çekici?
Bəli?
[Işitilemez Remark]
Siz yalnız bir dəfə bunu var və uzun müddətli, sağ?
Bu çox asan sort əgər insanlar gəlir və gedir, kurslar gəlib
və getmək sizin verilənlər bazası bilər yalnız kursları ilə littered almaq
və müəllim heyəti ilə heç bir ki, məlumat set artıq müvafiq.
Və veri almaq başlayır , çox messy və çirkli və köhnə
və belə ki, burada biz düzmək olar
və bəzi həyata bu məhdudiyyətlər.
Bəli?
[Işitilemez Remark]
Bu yolu ilə bilir.
Bu ekran olduğu biz bir əlaqə ifadə olunur
xarici əsas arasında və ilkin əsas.
Belə ki, adlandırma bütün I istinad konvensiyalar
əvvəllər yalnız konvensiyalar var.
Heç bir xas mənası var.
Bu ekran yalnız faydalı olan
Siz indeksləri müəyyən sonra həmin sahələrdə hər biz kimi.
Bu açılan üçün biz Məsələn bir neçə şey
bir Əlbəttə siz silindi əgər həqiqətən silinməsi qarşısını almaq
baş əgər Bu cədvəldə bir sıra
yalnız deyərək, məhdudlaşdırırlar.
Başqa sözlə Henry təqaüdə bilməz
Biz onu decouple qədər CS51 və CS1 olan.
Belə ki, yaxşı bir şey deyil.
Amma bu səbəb ola bilər sizin kodu səhvlər
ki, qabaqcadan yoxsa, və ya biz bir şəlalə ola bilər,
kimi oxşar bir şəlalə Cascading Style Sheets
və kaskad Çağlayan deməkdir ki, əgər -
Henry belə retires əgər - silindi əldə edərək
belə ki, burada onun sıra olacaq silindi almaq.
No Action heç bir şey və ya null deməkdir cür faydalı əgər cür
bəzi tarixi rekord istəyirəm Henry CS51 tədris edərək,
lakin yalnız bu sahəni istəyirəm null ola ki, orada satır
lakin artıq deyil onunla bağlı.
Belə ki, bu, çox güclü edir texnika bilərsiniz ki,
və baxmayaraq istifadə etməlidir maraq xüsusilə
özünüz sizə qənaət.
Belə ki, mənə bir qeyd edək burada son detalları neçə,
maddələr olan ki, faydalı ola bilər
verilənlər bazası dizayn üçün plan kimi.
Siz həmçinin seçim var verilənlər bazası mühərriki üzərində
Siz kodu istifadə.
Siz tanış edirsinizsə CS161 siz güc -
və ya hətta 61, ümumiyyətlə, güc fayl sistemi ilə tanış olacaq.
Və şeyi var kimi, NTFS və HFS +
və X2FS4 [fonetik] 3 və s.
Müxtəlif yolları var və masası üzərində məlumatların saxlanılması.
Eynilə var məlumatların saxlanılması müxtəlif yolları
ismarıcları bazasında Aracı ən azı
son versiyası ilə MySQL.
Biz istifadə etdiyiniz NoDB adlı bazası mühərriki,
bir dəstəkləyir neçə gözəl xüsusiyyətləri.
Lakin başqa ümumi bir də adlı MyIsam və başqa
ki, istifadə Memory ola bilər bir şey qoymaq yoxdur deməkdir
disk, yalnız saxlamaq yaddaş şeylər.
Çox hissəsi üçün yəqin ki, yalnız başlanğıc yanlış getmək bilməz
NoDB ilə, lakin hər hansı layihələr üçün yüksək dərəcələri cəlb edirlər ki,
Məsələn durub, kimi sürətli giriş bir çox,
saniyədə şeyi yüzlərlə və ya şeyi min ev.
Zaman var gedir məhsulları çox
bazasında haqqında sonra bu növ
aşağı səviyyədə qərarlar cəlb almaq üçün başlamaq.
Tam mətn xüsusiyyət üçün instansiya yalnız MyIsam işləyir
belə ki, bir nəticəsi vardır.
Amma imkan ki, bu geri ola bilər biz qayğı niyə ən azı həvəsləndirmək
xüsusilə NoDB haqqında.
A irqi şərait ümumiyyətlə nə aiddir?
Bütün sağ, bu bir deyil Məsələn işarə bəzi
siz eşitmişəm bilər il keçmiş olub 161 və ya 50
Bir roommate var, sizin də həqiqətən, süd kimi
Əgər biri açır ilk ev alır süd var soyuducu,
arasında soyuducu gəzmək yaxın CVS üçün küçələr və almaq
line bəzi süd almaq.
Eyni zamanda, roommate geri buraya gəlir.
O, həmçinin süd bəyənir.
Soyuducu açmaq və heç bir süd həyata keçirir.
Burada o, sonra gedir , bəlkə Digər CV saxlamayın.
Tez irəli bir neçə dəqiqə sonra indi də geri gəlmək və
Siz süd alıb.
Onlardan biri indi gedir Siz çünki korlamaq üçün
süd kimi çox və Bu doğru, bir problem var?
Siz həm tanış, çünki bəzi dəyişən dövlət
və əsaslı qərar qəbul edib bu baxmayaraq dövlət
dəyişən mahiyyətcə idi dəyişdirilə prosesində,
bütün bu artıq yavaş-yavaş ola edir zaman məbləği
CVS və almaq üçün.
Belə ki, nə axmaq real bir növ deyil dünya ki, problemin həll?
Sağ, qeyd tərk?
Bu, ötən zaman baş.
Həmişə bir qeyd tərk və ya sanki şey asma kilit.
Mən asma kilit, çünki demək sizi və ya CS161 etdi, əgər
qapanma əsas deyil dünyanın bu cür fikir.
Belə ki, irqi şərait yarana bilər də verilənlər bazası dünyada
və siz bəlkə xatırlayıram bilər Siz 50 etmişdir əgər CS50, maliyyələşdirilməsi
biz, həqiqətən verdi ki, bu kodu dəqiqləşdirilməsi uşaqlar
zamanı ki, sizin əməliyyat belə atom adlanır.
Siz bu, istəyirdi halda, fond payı almaq
ki, fond var bəzi xüsusi simvolu.
Biz sizin kimi kodu istifadə izah Bu, çünki bu yolu ilə
dublikat əsas yeniləmə inşa edən syntax,
MySQL daxil səmərəli istəyirik insert ya bunu
və ya sonra yeniləmə görmək üçün seçin edir
bir fond var artıq olduqda.
Başqa sözlə, analog Bir fond satın dünya
süd və soyuducu ilk ola bilər
pay satın əvvəl Google siz seçin istədiyiniz bilər
bazasında olan bütün David sahibi olan Google səhmlər
o sıfır və ya daha çox sahibi görmek üçün.
O sahibi əgər görmək sıfır və ya daha çox
sonra aşağıdakı.
Siz daxil etmək lazımdır ya
o sıfır "səbəb sahibi əgər Davud üçün heç bir satır, hələ var
və ya bir yeniləmə etmək üçün ən azı nəzəri əgər siz
istifadəçi başına bir sıra var.
Bu problem seçilməsi olunur səhmlərin sayı
və sonra yenilənməsi və ya taxaraq müdaxilə edilə bilər
başqa başqası tərəfindən almaq üçün çalışırıq kompüter terminal
və ya David nin bəzi satmaq Səhmlərin səhmlər olub
yaxşı məqsədlər üçün və ya sort zərərli məqsədlər.
Bu mağaza gedən kimi Sizin roommate geri alır zaman
və dövlət yoxlayır dəyişən.
Belə ki, zaman bu syntax sort müvafiq olan
CS50 üçün, engeller cəmi problem.
Və yalnız bütün yoxdur sizin üçün kilitleme sehrli,
lakin indi bu cür Bu kurs üçün layihələrin
olan çox güman olacaq daha mürəkkəb data dəstləri cəlb,
siz nail ola bilməz həmişə bu atomicity.
Hər şey olur bir dəfə və ya bütün
fasiləsiz belə şıq.
Və belə MySQL, başqa verilənlər bazası mühərriki,
qıfıllar adlı dəstək əşyalar,
Siz kilidini Bu, demək olar vasitəsi masa ki, yalnız bir müalicə
və ümumiyyətlə yalnız bir istifadəçi vaxt hər hansı bir onu toxunmaq
oxumaq və ya yazmaq və sonra kilidini açmaq olar.
Bu bir nümunəsidir MySQL öz arayışlar,
harada bir bank kimi varsa Siz çalışdığınız hesab
pul çıxa və sonra pul əlavə edin.
Siz isteyebilirsiniz əmin həm etmək
həmin şeyi birlikdə baş
heç bir var ki, riyazi səhvlər
və heç bir zərər birtəhər pul.
Qıfıllar ilə problem Bir verilənlər bazası olsa
ümumiyyətlə o deməkdir ki, bütün masa kilidli,
olan varsa deməkdir çalışan bir yüz nəfər
bank ilə iş etmək eyni məbləğdə online
zaman yalnız bir onlara bir zamanda bilərsiniz.
Axmaq, xüsusilə Hansı server indi
səkkiz Əlbəttə, 16 var ki, Əlbəttə ki, bir böyük məbləği var
yaddaş, yoxdur bütün serialized səbəb
əməliyyatlar həmin müştərilər yalnız gedir
öz satır ilə qarşılıqlı.
Belə ki, NoDB siz imkan verir şeyi daha ağıllı
və bu, ümumiyyətlə, olacaq Siz kodu almaq yanaşma,
Əgər bir şey istifadə kimi əməliyyatı çağırıb.
Və ümumiyyətlə bunu PHP kodu,
Ruby kodu, Python, nə.
Amma SQL kodu ki, nəticədə, bu istifadə
adətən.
Əgər əməliyyat başlamaq iki və ya daha çox sorğu daxil
Siz etmək istəyirəm ki, cəmi icra
fasiləsiz və ya bütün.
Hətta bəzi ola bilər şərhlər seçin
və ya bəzi silir və ya yeniləyir.
Amma gözəl bir şeydir ki, verilənlər bazası kifayət qədər ağıllı olacaq
əmin yalnız iradə etmək üçün onlar həqiqətən istəyirik satır kilidi
Bu yenilikləri cəlb və ya seçir və ya siler.
Siz satır minlərlə var Belə ki, əgər və yalnız üç toxunan edirik
Onlardan, yalnız alt masa kilidli olunacaq
digər 99 deməkdir müştərilərə satır toxunmaq olar
serialized olmadan və siz yavaşladı.
Eyni zamanda, bu gözəl deyil əməliyyatlar aspekt.
Onlar bir əməliyyatlardır bir fayl sistemi 161 kimi hiss,
onlar işlem istəyirik
siz gəzmək edə bilərsiniz deməkdir onları geri, siz onları geri ala bilərsiniz.
Bu komanda kimi və ya verilənlər bazası F nəzarət.
Siz hissəsi tapmaq əgər bütün vasitəsilə yol
müxtəlif data əməliyyat, vurmaq, bir şey yanlış gedir.
Siz sözün icra a geri müxtəlif SQL sorğu roll
və bu trend - bütün Siz edam hesabatlarının
başlanğıc dedikdən sonra əməliyyat yox
onlar baş, heç sanki
bir qəribə olan güclü şey.
Və bu cür var hər şeyi əlbəttə 50 biz sort
bu xalçanın altına süpürmək və Siz yalnız cür güman
ki, bütün yaxşı olacaq.
Amma siz başlamaq bir dəfə real layihələr haqqında düşünür
və real users və Sizin verilənlər bazası bütövlüyü,
Bu növ dizayn qərarları
ki, əhəmiyyətli olacaq.