CS 61 | Sisteme de baze de date | Primăvara 2020

, Author

Exploits of a mom (din XKCD)https://xkcd.com/327/

Descrierea cursului

ORC. Acest curs studiază gestionarea unor corpuri mari de date sau informații. Acesta include scheme pentru reprezentarea, manipularea și stocarea structurilor complexe de informații, precum și algoritmi pentru procesarea eficientă a acestor structuri și pentru recuperarea informațiilor pe care le conțin. Acest curs îi va învăța pe studenți tehnici de alocare ș i dezalocare a spațiului de stocare, de regăsire (formularea interogărilor) ș i de manipulare a unor cantități mari de date eterogene. Se așteaptă ca studenții să programeze și să se implice într-un proiect în care să studieze aspecte importante ale unui sistem de baze de date: modalități de organizare a unei baze de date distribuite și partajate de mai multe calculatoare; tranzacții care sunt procesate la nivel local și global; garanții de robustețe a datelor stocate împotriva eșecurilor; garanții de securitate și de integritate a datelor împotriva accesului neautorizat; confidențialitate; scheme orientate pe obiecte pentru date multimedia; indexare, hashing, control al concurenței, minerit de date, depozitare de date, baze de date mobile și structuri de fișiere de stocare.

Obiectivele învățării Scopul final al acestui curs este de a vă pregăti să utilizați datele pentru a lua decizii bazate pe date, mai degrabă decât să luați decizii pe baza intuiției sau a presupunerilor. După finalizarea acestui curs ar trebui să fiți capabil să:

  1. Să interogați bazele de date existente pentru a obține informații. Vom petrece primele câteva săptămâni ale cursului învățând limbajul standard de interogare a bazelor de date numit Structured Query Language (aka SQL, aka „secvență”). Acesta vă va oferi instrumentele necesare pentru a interoga bazele de date existente pentru a obține informații despre datele pe care le conțin.
  2. Proiectați-vă propriile baze de date eficiente. Vom petrece următoarele câteva săptămâni examinând cum să vă structurați propriile baze de date, dispunând tabelele și luând în considerare factori precum redundanța, fiabilitatea și viteza.
  3. Înțelegeți ce se întâmplă sub capotă. În continuare, vom explora modul în care funcționează bazele de date, recuperând datele rapid și precis, chiar și cu mai mulți utilizatori care accesează și actualizează datele simultan.
  4. Descrieți tehnologiile noi și în curs de dezvoltare ale bazelor de date. În cele din urmă, vom examina noile tehnologii de baze de date, cum ar fi bazele de date NoSQL și blockchains.

Pe tot parcursul vom avea mai mulți lectori invitați de la experți care lucrează în domeniu. Consultați pagina programului pentru mai multe detalii.

Precondiții CS 50. Voi presupune, de asemenea, că sunteți familiarizați cu Python.

Cine, când, unde

Instructor Tim Pierson | 210 Sudikoff
Orele de birou: în majoritatea săptămânilor, marți de la 13:30 la 14:30, joi de la 13:30 la 14:30 (confirmați prin calendarul Canvas), și prin programare. Consultați link-ul Zoom de pe Canvas pentru întâlniri virtuale. Graduate teaching assistant Almas Abdibayev
office hours: menținut pe Canvas Prelegeri de 2 ore | MWF 2:10 pm – 3:15 pm Eastern time zone | Prelegeri online vor fi online și înregistrate în acest semestru folosind Zoom – vezi Canvas pentru detalii de acces. Când vă alăturați întâlnirii online, vă rugăm să vă opriți camera și microfonul. Dacă aveți o întrebare, vă rugăm să apăsați butonul „Ridicați mâna” din Zoom. Dacă nu vă sun într-o perioadă scurtă de timp, vă rog să vă dezactivați, să porniți camera și să întrebați. Vom stabili mai multe reguli pe parcurs… Nu intenționez să folosesc în mod regulat orele x, dar este posibil să le folosesc uneori pentru orele pierdute, pentru a recupera materia sau pentru sesiuni opționale, informale, pentru a lucra la exemple. Asigurați-vă că păstrați acest interval orar liber în cazul în care va fi nevoie să îl folosim. Vom avea frecvent exerciții în clasă pentru a încerca noi concepte pe o bază de date reală. Google și StackOverflow vă vor fi prieteni, nu ezitați să le folosiți (dacă nu vi se indică altfel)! Ajutor: Orele de birou Orele de birou vor fi, de asemenea, online prin Zoom. Voi fi disponibil online în timpul orelor de birou afișate, chiar dacă nu există întrebări. Dacă doriți să stabiliți o întâlnire privată, trimiteți-mi un e-mail și vom găsi un moment pentru a vorbi. Ajutor: Slack Așteptați-vă la o invitație la un canal Slack după prima zi de curs. Vă încurajez cu tărie să puneți și să răspundeți la întrebări acolo. Anunțuri Monitorizați Canvas pentru anunțuri periodice la nivelul întregului curs. Manualul Concepte de sisteme de baze de date, ediția a 7-a, de Silberschatz, Korth și Sudarshan. Vă recomand cu căldură versiunea electronică în loc de versiunea pe hârtie (versiunea pe hârtie nici măcar nu este legată – este o colecție de foi volante!). în timp ce cartea Silberschatz va fi manualul nostru principal, iar toate lecturile atribuite vor fi din acest manual, o altă resursă utilă este Database Systems: Design, Implementation, & Management, ediția a 13-a, de Coronel și Morris. O altă resursă excelentă este https://www.mysqltutorial.org.

Evaluare

Notele la acest curs vor fi o combinație între un proiect pe termen lung, mai multe lucrări de laborator, un examen intermediar și participarea la clasă. Un punctaj total de cel puțin 60% este necesar pentru a promova acest curs.

Proiect (40%)

Pe parcursul semestrului veți lucra la un proiect legat de baze de date, la alegerea dumneavoastră, împreună cu alți trei studenți. Detalii despre cerințele proiectului sunt aici.

Laboratoare (30%)

Vor fi trei lucrări de laborator (în afară de laboratorul 0 care este pur și simplu pentru a aduna informații) care împreună reprezintă 30% din nota la acest curs. Punctele pentru fiecare laborator sunt:

  • Lab 1: 5%
  • Lab 2: 10%
  • Lab 3: 15%.

Cerințe pentru predarea laboratoarelor: Laboratoarele sunt concepute pentru a fi completate în afara orelor de curs și trebuie să fie trimise electronic prin Canvas înainte de termenul limită indicat pe Canvas. Chiar și atunci când un laborator are unele exerciții scrise, vi se cere fie să tastați un fișier, fie să scanați lucrările scrise și să le trimiteți în format electronic. Pentru a trimite rezultate din programul dumneavoastră, trimiteți un fișier copiat-lipit în format pdf și/sau o captură de ecran, după caz. Pentru text simplu, puteți utiliza un program precum TextEdit, NotePad sau Emacs, sau chiar Word, dar asigurați-vă că îl salvați în format pdf. Pentru o captură de ecran, puteți folosi Preview pe Mac (în meniul „File”) sau butonul PrntScrn pe Windows.

Puteți lucra cu un partener la aceste lucrări de laborator (vezi Colaborare mai jos). În plus:

    • Dacă ați lucrat cu un partener, includeți numele dvs. și numele partenerului dvs. sau, dacă ați lucrat singur, indicați „fără partener” într-un comentariu în lucrare.
    • Dacă ați lucrat cu un partener și ați ajuns la o singură soluție comună, indicați acest lucru într-un comentariu în soluție și în lucrare. Fiecare partener trebuie să prezinte aceeași soluție. Soluția va fi apoi notată o singură dată, cu aceeași notă atribuită ambilor parteneri.
    • Dacă ați lucrat cu un partener, dar ați scris cod separat, indicați colaborarea, dar că aveți prezentări diferite. Indicați acest lucru atât în cod, cât și pe prezentare. Fiecare dintre voi ar trebui să încărcați propria soluție și fiecare dintre voi va primi o notă separată.
    • Colectați toate fișierele de cod într-un singur fișier zip și încărcați acel zip, mai degrabă decât o grămadă de fișiere separate.

    Politica privind întârzierile Termenul de predare trebuie respectat prin intermediul Canvas la data și ora indicate pe tema Canvas. Sancțiuni: < 8 ore: 10%; < 24 ore: 20%; < 48 ore: 40%; mai mult: niciun credit.
    Vă este permisă cel mult o trimitere cu întârziere (până la 48 de ore) fără penalizare; nu este necesară nicio scuză. Indicați în prezentarea dvs. că alegeți să folosiți permisul gratuit; nu se poate anula alegerea. Acest lucru nu poate fi combinat cu o penalizare (de exemplu, nu puteți lua o penalizare de 8 ore în plus față de permisul gratuit de 48 de ore). Dacă lucrați cu un partener, acest lucru contează ca permis gratuit pentru amândoi. Notarea Rubrici de notare Pentru fiecare laborator vor fi furnizate rubrici de notare specifice.

Examene (20%)

Va fi un examen intermediar în valoare de 20% din nota finală (nu există final – proiectul dumneavoastră contează ca final). Aveți voie să folosiți o pagină de notițe de 8,5 x 11 inch pentru examen, dar nu trebuie să includeți răspunsuri sau coduri de la examene anterioare CS61, cu excepția cazului în care acestea au fost furnizate în mod explicit de către instructor sau fac parte din materialul abordat în clasă.

Dacă aveți întrebări cu privire la punctajul obținut la examen sau dacă doriți ca o întrebare să fie reevaluată, adresați-vă AT în termen de o săptămână de la data la care examenul a fost returnat la clasă. Dacă solicitați o reevaluare a unei anumite întrebări, ne rezervăm dreptul de a reevalua întregul examen.

Participare la curs (10%)

Majoritatea cursurilor vor avea o parte practică în care vom lucra la o serie de probleme pe o bază de date reală. La sfârșitul acestei părți a orei, este posibil să fiți selectat aleatoriu (cu înlocuire) pentru a vă prezenta soluția. Prezentarea dvs. va fi notată după cum urmează:

  • 0: Nimic de substanță
  • 1: Soluția dvs. are nevoie de o muncă semnificativă
  • 2: Corectă sau în mare parte corectă.

Dacă nu puteți participa la curs prin Zoom live, dar sunteți selectat aleatoriu, postați soluția dvs. pe Canvas înainte de următoarea perioadă de curs.

Se poate întâmpla să nu fiți niciodată selectat aleatoriu pentru a vă prezenta soluția în timpul semestrului. În acest caz, veți primi credit complet pentru această parte a notei.

Colaborare

Major parte din învățarea în acest curs provine din realizarea exercițiilor deprogramare. Uneori, învățarea poate avea loc mai eficient atunci când puteți discuta lucrurile cu altcineva, așa că lucrul cu un partener va fi permis la temele de laborator. Este posibil să lucrați împreună cu o altă persoană la un anumit laborator. Dacă alegeți să lucrați cu altcineva, dvs. și partenerul dvs. trebuie să trimiteți aceeași lucrare comună cu ambele nume pe ea și trebuie să lucrați cu aceeași persoană pentru întreaga lucrare (nu puteți lucra cu o persoană pentru anumite părți ale unei lucrări și cu o altă persoană pentru alte părți).

Dacă lucrați cu un partener, sunteți în continuare responsabil pentru înțelegerea întregii lucrări. Asta înseamnă că nu este o idee bună să împarți codarea în bucăți, să faci partea ta și să nu te uiți niciodată la părțile partenerului tău. Puteți învăța multe citind codul partenerului dumneavoastră și înțelegând cum funcționează, dacă este corect și cum ar putea fi îmbunătățit. De asemenea, puteți descoperi lucruri cum ar fi comentariile slabe sau lipsa comentariilor care v-ar putea costa puncte de stil atunci când lucrarea este notată.

Când lucrați cu un partener, vă sugerez să împrumutați o practică de laExtreme Programming, o metodă de scriere a codului pe care multe întreprinderi o consideră foarte eficientă. O persoană (șoferul) stă la tastatură. Cealaltă persoană (navigatorul) se uită la ecran (virtual) în timp ce șoferul tastează, punând întrebări, făcând sugestii și detectând erori. Amândoi veți înțelege mai bine codul dacă îl discutați pe măsură ce este scris decât dacă îl scrieți (sau îl citiți) singuri. Schimbați în mod regulat cine este șofer și cine este navigator.

Reacția obișnuită la această idee este: „asta va dura de două ori mai mult!” În practică, este de obicei mai rapid decât dacă fiecare persoană programează singură. Motivul este că erorile sunt depistate mai devreme, iar timpul economisit la depanare compensează cu mult lipsa deparalelism în scrierea codului. De asemenea, codul tinde să fie mai bine scris. Acestea sunt motivele pentru care această idee a fost adoptată înindustrie.

Înregistrare online

Voi înregistra sesiunile de curs desfășurate în timpul celor 2 ore pe Zoom și voi posta aceste videoclipuri.Planul meu va fi să nu înregistrez orele de birou, cu siguranță nu unul la unul, dar nici grupurile mici. Dacă voi considera că o întrebare sau un răspuns de la orele de birou ar fi bine să fie văzut de întreaga clasă, voi pregăti o notă sau un video separat, sau îl voi include în următorul curs. Aceasta este ceea ce fac în mod normal la cursurile mele. Dacă organizez o sesiune de probleme sau o oră X în care întreaga clasă este invitată să vină pregătită cu întrebări, o voi înregistra, deoarece este în esență o sesiune de curs. Dar probabil că o voi edita înainte de a o posta, astfel încât să o puteți revedea mai repede

De la decanul facultății către studenți cu privire la înregistrarea sesiunilor de curs:

(1) Consimțământul pentru înregistrarea cursului și a orelor de birou de grup

  • a) Îmi afirm înțelegerea faptului că acest curs și orice întâlniri de grup asociate care implică studenții și instructorul, inclusiv, dar fără a se limita la orele de birou programate și ad-hoc și alte consultări, pot fi înregistrate în cadrul oricărei platforme digitale utilizate pentru a oferi instruire la distanță pentru acest curs;
  • b) Afirm, de asemenea, că instructorul deține drepturile de autor asupra materialelor sale de instruire, din care aceste înregistrări constituie o parte, iar distribuirea oricăreia dintre aceste înregistrări, integral sau parțial, fără consimțământul prealabil în scris al instructorului poate face obiectul unor măsuri disciplinare din partea Dartmouth, care pot ajunge până la și inclusiv la exmatriculare;
  • c) Autorizez Dartmouth și orice persoană care acționează în numele Dartmouth să înregistreze participarea și apariția mea pe orice suport și să utilizeze numele, imaginea și vocea mea în legătură cu o astfel de înregistrare; și
  • d) Autorizez Dartmouth și orice persoană care acționează în numele Dartmouth să utilizeze, să reproducă sau să distribuie o astfel de înregistrare fără restricții sau limitări în orice scop educațional considerat adecvat de către Dartmouth și orice persoană care acționează în numele Dartmouth.

(2) Cerința consimțământului pentru înregistrări individuale

    Înscriindu-mă la acest curs, afirm prin prezenta că nu voi face sub nicio circumstanță o înregistrare pe orice suport a unei întâlniri individuale cu instructorul fără a obține în prealabil consimțământul scris al tuturor celor care participă și înțeleg că, dacă încalc această interdicție, voi fi supus unor măsuri disciplinare din partea Dartmouth care pot ajunge până la exmatriculare, precum și la orice alte sancțiuni civile sau penale prevăzute de legislația aplicabilă.

Exigențe tehnologice

Datorită naturii online a acestui curs, este necesar ca studenții să aibă capacitatea de a transmite 1 oră sau mai puțin de conținut video în fiecare zi. Vom face tot ce ne stă în putință pentru a planifica și a ne adapta la orice limitare a accesului dvs. la tehnologia necesară. Ne este imposibil să planificăm pentru fiecare constrângere tehnologică posibilă. Prin urmare, vă rugăm să ne anunțați cât mai curând posibil care sunt obstacolele pe care le întâmpinați pentru a finaliza cursul online. Având în vedere întreruperile actuale din lanțul de aprovizionare, am dori să planificăm cu cât mai mult timp înainte.

Codul de onoare

Codul de onoare de la Dartmouth se aplică la acest curs, iar politicile de conduită academică necorespunzătoare vor fi aplicate cu strictețe. Voi raporta cazurile suspecte de copiat ofițerului de afaceri judiciare din cadrul universității. Îmi rezerv, de asemenea, dreptul de a atribui o notă de nereușită la o lucrare sau la un examen, dacă Icolectez că principiul onoarei a fost încălcat, indiferent de constatarea Comisiei pentru standarde. Dacă aveți întrebări,întrebați!

Necesități de accesibilitate

Studenții care solicită adaptări și servicii legate de dizabilități pentru acest curs sunt încurajați să programeze o întâlnire telefonică/video cu mine cât mai devreme posibil în cursul semestrului. Această conversație va ajuta la stabilirea suporturilor care sunt integrate în cursul meu online. Pentru ca acomodările să fie autorizate, studenții trebuie să se consulte cu Serviciile de accesibilitate pentru studenți (SAS; [email protected]; site-ul SAS; 603-646-9900) și să-mi trimită prin e-mail formularul de cazare SAS. Vom lucra apoi împreună cu SAS în cazul în care adaptările trebuie modificate în funcție de mediul de învățare online. În cazul în care studenții au întrebări cu privire la faptul dacă sunt eligibili pentru acomodări, aceștia trebuie să contacteze biroul SAS. Toate întrebările și discuțiile vor rămâne confidențiale.

Sănătate mentală

Mediul academic de la Dartmouth este provocator, trimestrele noastre sunt intensive, iar cursurile nu sunt singura parte solicitantă a vieții dumneavoastră. Există o serie de resurse la dispoziția dvs. în campus pentru a vă sprijini starea de bine, inclusiv decanul dvs. de licență, Consiliere și Dezvoltare Umană și Centrul de Wellness pentru Studenți.

Observații religioase

Cerți studenți pot dori să ia parte la observările religioase care au loc în timpul acestui termen academic. Dacă aveți o observație religioasă care intră în conflict cu participarea dvs. la curs, vă rugăm să vă întâlniți cu mine înainte de sfârșitul celei de-a doua săptămâni a semestrului pentru a discuta despre acomodările adecvate.

COVID-19 addendum

În timp ce pandemia COVID-19 a perturbat deja în mod drastic acest curs, ea are potențialul de a avea ca rezultat un impact personal suplimentar care vă poate împiedica să vă continuați implicarea în curs. Acest lucru se poate datora contractării bolii de către dumneavoastră sau de către o persoană dragă, creșterii responsabilităților familiale, dificultăților financiare sau impactului asupra sănătății dumneavoastră mentale/emoționale.

Am structurat cursul astfel încât aceste perturbări să nu vă împiedice neapărat să finalizați cu succes acest curs. În primul rând, vom înregistra și vom posta fiecare curs. Acest lucru va permite vizualizarea flexibilă a conținutului cursului. În al doilea rând, vom programa oportunități de interacțiune live cu instructorul și asistentul tehnic în diverse momente pe parcursul săptămânii. În al treilea rând, laboratoarele au fost reproiectate astfel încât să poată fi finalizate acasă.

În cazul în care sunteți afectat direct sau indirect de COVID-19 într-un mod care vă va afecta performanța la curs, este imperativ să luați legătura cu instructorul cât mai curând posibil. De asemenea, puteți lua legătura cu decanul de licență, dacă acest lucru vă face să vă simțiți mai confortabil. Noi nu vă putem ajuta dacă nu știm că există o problemă. Prima noastră prioritate este sănătatea și securitatea dumneavoastră. Ne vom strădui să vă punem în legătură cu resursele adecvate pentru a vă ajuta. În plus, vor fi puse în aplicare adaptări adecvate (de exemplu: prelungiri ale termenelor și/sau ore de birou suplimentare).

Recunoaștere

Acest curs se bazează îndeaproape pe unul dezvoltat inițial de Dr. Charles Palmer. Îi sunt profund îndatorat acestui excelent educator pentru toată munca sa asiduă și asistența generoasă în crearea acestui curs.

Lasă un răspuns

Adresa ta de email nu va fi publicată.