CS 61 | Tietokantajärjestelmät | Kevät 2020

, Author

Äidin väärinkäytökset (XKCD:stä)https://xkcd.com/327/

Kurssin kuvaus

ORC. Kurssilla tutkitaan suurten tieto- tai informaatiokokonaisuuksien hallintaa. Siihen kuuluvat monimutkaisten tietorakenteiden esittämiseen, käsittelyyn ja tallentamiseen tarkoitetut järjestelmät sekä algoritmit näiden rakenteiden tehokkaaseen käsittelyyn ja niiden sisältämän tiedon hakemiseen. Kurssilla opetetaan tekniikoita, jotka koskevat tallennustilojen jakamista ja poistamista, hakua (kyselyjen muotoilua) ja suurten heterogeenisten tietomäärien käsittelyä. Opiskelijoiden odotetaan ohjelmoivan ja osallistuvan projektiin, jossa he tutkivat tietokantajärjestelmän tärkeitä näkökohtia: tapoja organisoida hajautettu tietokanta, jonka useat tietokoneet jakavat keskenään; transaktioita, joita käsitellään paikallisesti ja globaalisti; tallennettujen tietojen kestävyystakeita vikaantumisen varalta; tietoturva- ja eheystakeita luvattomalta käytöltä; yksityisyyden suojaa; oliosuuntautuneita skeemoja multimediatietoja varten; indeksointia, hajauttamista (hashing), yhtäaikaisuuden hallintaa, tiedonlouhintaa, tietovarastoja, mobiilitietokantoja ja tallennusmuistitiedostojen rakenteita.

Oppimistavoitteet Tämän kurssin perimmäisenä tavoitteena on antaa sinulle valmiudet käyttää dataa datapohjaisten päätösten tekemiseen sen sijaan, että tekisit päätöksiä vaistonvaraisesti tai arvaamalla. Tämän kurssin suoritettuasi sinun tulisi osata:

  1. Kysellä olemassa olevista tietokannoista tietoa. Vietämme kurssin ensimmäiset viikot opettelemalla vakiomuotoisen tietokantakyselykielen nimeltä Structured Query Language (alias SQL, alias ”jatko”). Näin saat tarvittavat välineet, joiden avulla voit tehdä kyselyjä olemassa oleviin tietokantoihin saadaksesi tietoa niiden sisältämistä tiedoista.
  2. Suunnittelet omia tehokkaita tietokantoja. Vietämme seuraavat viikot tarkastelemalla, miten voit jäsentää omia tietokantojasi, laatia taulukoita ja ottaa huomioon sellaisia tekijöitä kuin redundanssi, luotettavuus ja nopeus.
  3. Ymmärrä, mitä konepellin alla tapahtuu. Seuraavaksi tutkimme, miten tietokannat toimivat ja miten ne hakevat tietoja nopeasti ja tarkasti, vaikka useat käyttäjät käyttäisivät ja päivittäisivät tietoja samanaikaisesti.
  4. Kuvaile uusia ja kehittyviä tietokantatekniikoita. Lopuksi tarkastelemme uusia tietokantateknologioita, kuten NoSQL-tietokantoja ja lohkoketjuja.

Koko ajan meillä on useita vierailevia luennoitsijoita alan asiantuntijoilta. Katso lisätietoja aikataulusivulta.

Edellytyksenä CS 50. Oletan myös, että Python on sinulle tuttu.

Kuka, milloin, missä

Ohjaaja Tim Pierson | 210 Sudikoff
Vastaanottoaika: Useimmilla viikoilla ti 13:30 – 14:30, torstai 13:30 – 14:30 (vahvista Canvas-kalenterin kautta), sekä sopimuksen mukaan. Katso Zoom-linkki Canvasissa virtuaalisia tapaamisia varten. Graduate teaching assistant Almas Abdibayev
office hours: maintained on Canvas Lectures 2-hour | MWF 14:10 pm – 15:15 pm Eastern time zone | Online Lectures will be online and recorded this term using Zoom – see Canvas for access details. Kun liityt verkkokokoukseen, sammuta kamera ja mikrofoni. Jos sinulla on kysymys, paina Zoomin ”Nosta käsi” -painiketta. Jos en kutsu sinua lyhyessä ajassa, ota mykistys pois, laita kamera päälle ja kysy. Laadimme lisää sääntöjä matkan varrella… En suunnittele käyttäväni x-tunteja säännöllisesti, mutta saatan joskus käyttää niitä myöhästyneiden tuntien vuoksi, materiaalin kertaamiseen tai valinnaiseen, epäviralliseen istuntoon esimerkkien läpikäymiseen. Muistakaa pitää tämä aikaväli vapaana siltä varalta, että tarvitsemme sitä. Meillä on usein luokkaharjoituksia, joissa kokeillaan uusia käsitteitä elävällä tietokannalla. Google ja StackOverflow ovat ystäväsi, älä epäröi käyttää niitä (ellei toisin neuvota)! Apua: Toimistotunnit Toimistotunnit järjestetään myös verkossa Zoomin kautta. Olen käytettävissä verkossa ilmoitettujen toimistotuntien aikana, vaikka kysymyksiä ei olisikaan. Jos haluat sopia kahdenkeskisen tapaamisen, lähetä minulle sähköpostia, niin löydämme yhteisen ajan. Apua: Slack Odota kutsua Slack-kanavalle ensimmäisen kurssipäivän jälkeen. Kannustan sinua vahvasti kysymään ja vastaamaan kysymyksiin siellä. Ilmoitukset Seuraa Canvasia ajoittaisten koko kurssin kattavien ilmoitusten varalta. Oppikirja Database System Concepts, 7. painos, kirjoittaneet Silberschatz, Korth ja Sudarshan. Suosittelen lämpimästi ebook-versiota paperiversion sijasta (paperiversio ei ole edes sidottu – se on kokoelma irtolehtipapereita!) Vaikka Silberschatzin kirja on ensisijainen oppikirjamme, ja kaikki tehtäväksi annetut asiat luetaan kyseisestä oppikirjasta, toinen hyödyllinen lähde on Database Systems: Design, Implementation, & Management, 13. painos, Coronel ja Morris. Toinen hyvä lähde on https://www.mysqltutorial.org.

Arviointi

Tämän kurssin arvosanat muodostuvat koko lukukauden kestävästä projektista, useista laboratoriotehtävistä, yhdestä välikokeesta ja luokkaan osallistumisesta. Kurssin läpäisy edellyttää vähintään 60 %:n kokonaispistemäärää.

Projekti (40 %)

Lukukauden aikana työskentelet valitsemasi tietokantaan liittyvän projektin parissa kolmen muun opiskelijan kanssa. Yksityiskohtaiset tiedot projektin vaatimuksista löytyvät täältä.

Laboratoriot (30%)

Kurssilla on kolme laboratoriotehtävää (lukuun ottamatta laboratorio 0:ta, joka on pelkkää tiedonkeruuta), jotka yhdessä muodostavat 30% kurssin arvosanasta. Kunkin laboratoriotehtävän pisteet ovat seuraavat:

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

Vaatimukset laboratoriotöiden toimittamiselle: Laboratoriot on suunniteltu suoritettavaksi oppituntien ulkopuolella, ja ne on toimitettava sähköisesti Canvasin kautta ennen Canvasissa ilmoitettua määräaikaa. Silloinkin, kun laboratoriossa on joitakin kirjallisia harjoituksia, sinun on joko kirjoitettava tiedosto tai skannattava kirjallinen työsi ja toimitettava se sähköisesti. Jos haluat toimittaa ohjelmasi tuotoksen, lähetä kopioitu tiedosto pdf-muodossa ja/tai tarvittaessa kuvakaappaus. Voit käyttää pelkkää tekstiä varten esimerkiksi TextEdit-, NotePad- tai Emacs-ohjelmaa tai jopa Wordia, mutta muista tallentaa se pdf-muodossa. Kuvakaappaukseen voit käyttää Macissa esikatselua (File-valikosta) tai Windowsissa PrntScrn-painiketta.

Voit työskennellä näiden laboratoriotehtävien parissa yhden työparin kanssa (katso Yhteistyö alla). Lisäksi:

  • Jos työskentelit työparin kanssa, ilmoita nimesi ja työparisi nimi, tai jos työskentelit yksin, ilmoita ”ei työparia” kommenttina lähetyksessäsi.
  • Jos työskentelit työparin kanssa ja päädyit yhteen yhteiseen ratkaisuun, ilmoita se kommenttina ratkaisussa ja lähetyksessä. Kummankin kumppanin on toimitettava sama ratkaisu. Ratkaisu arvostellaan tällöin kerran, ja molemmille kumppaneille annetaan sama arvosana.
  • Jos työskentelit kumppanin kanssa, mutta kirjoitit erillisen koodin, ilmoita yhteistyöstä, mutta siitä, että teillä on eri toimitukset. Merkitse tämä sekä koodiin että lähetykseen. Kummankin tulee ladata oma ratkaisunsa, ja kumpikin saa erillisen arvosanan.
  • Kootkaa kaikki kooditiedostot yhteen zip-tiedostoon ja ladatkaa tämä zip-tiedosto sen sijaan, että lähetätte kasan erillisiä tiedostoja.

Myöhästymiskäytäntö Myöhästymiskäytäntö Eräpäivä Canvasin kautta Canvas-tehtävään merkittynä päivämääränä ja kellonaikana. Rangaistukset: < 8 tuntia: 10 %; < 24 tuntia: 20 %; < 48 tuntia: 40 %; yli: ei hyvitystä.
Voit tehdä enintään yhden myöhästyneen tehtävän (enintään 48 tuntia) ilman rangaistusta; anteeksipyyntöä ei tarvita. Ilmoittakaa lähetyksessänne, että valitsette vapaapassin käyttämisen; valintaa ei voi perua. Tätä ei voi yhdistää rangaistukseen (esim. et voi ottaa 8 tunnin rangaistusta 48 tunnin vapaapassin lisäksi). Jos työskentelet työparisi kanssa, tämä lasketaan molempienne vapaapassiksi. Arvostelu Kutakin laboratoriota varten annetaan omat arvosteluperusteet.

Kokeet (20 %)

Yksi välikoe, jonka arvo on 20 % loppuarvosanasta (ei loppukoe – projektisi lasketaan loppukokeeksi). Tentissä saa käyttää yhtä 8,5 x 11 tuuman muistiinpanosivua, mutta siihen ei saa sisällyttää vastauksia tai koodia aiemmista CS61-tenteistä, ellei opettaja ole nimenomaisesti antanut niitä tai ellei ne ole osa tunnilla käsiteltyä materiaalia.

Jos sinulla on kysyttävää tenttituloksestasi tai haluat, että jokin kysymys arvostellaan uudelleen, ota yhteyttä opinto-ohjaajaan viikon kuluessa siitä, kun tentti on palautettu luokkaan. Jos pyydät tietyn kysymyksen uudelleen arvostelua, pidätämme oikeuden arvostella koko tenttisi uudelleen.

Luokkaan osallistuminen (10 %)

Useimmilla tunneilla on käytännön osuus, jossa käymme läpi sarjan ongelmia elävässä tietokannassa. Tämän osuuden päätteeksi sinut voidaan valita satunnaisesti (varasijalla) esittämään ratkaisusi. Esityksesi arvioidaan seuraavasti:

  • 0: Ei mitään olennaista
  • 1: Ratkaisussasi on huomattavaa korjattavaa
  • 2: Oikein tai pääosin oikein.

Jos et pysty osallistumaan tunnille Zoom-liven välityksellä, mutta sinut valitaan sattumanvaraisesti, lähetä ratkaisusi Canvas-tietovälineeseen ennen seuraavaa oppituntia.

Voi olla, ettei sinua koskaan valita sattumanvaraisesti esittelemään ratkaisuasi lukukauden aikana. Siinä tapauksessa saat täyden pistemäärän tästä arvosanan osasta.

Yhteistyö

Suuri osa tämän kurssin oppimisesta tapahtuu tekemällä ohjelmointiharjoituksia. Joskus oppiminen voi tapahtua tehokkaammin, kun voit keskustella asioista jonkun toisen kanssa, joten parin kanssa työskentely on sallittua harjoitustehtävissä. Voit työskennellä yhdessä yhden toisen henkilön kanssa tietyssä harjoitustehtävässä. Jos päätät työskennellä jonkun toisen kanssa, sinun ja työparisi on toimitettava sama yhteinen tehtävä, jossa on molempien nimet, ja sinun on työskenneltävä saman henkilön kanssa koko tehtävän ajan (et voi työskennellä yhden henkilön kanssa joidenkin tehtävien osien osalta ja eri henkilön kanssa muiden osien osalta).

Jos työskentelet työparin kanssa, olet silti vastuussa koko tehtävän ymmärtämisestä. Tämä tarkoittaa, että koodauksen jakaminen osiin, oman osuuden tekeminen ja kumppanin osien katsomatta jättäminen ei ole hyvä idea. Voit oppia paljon lukemalla kumppanisi koodin ja selvittämällä, miten se toimii, onko se oikein ja miten sitä voisi parantaa. Voit myös huomata asioita, kuten puutteelliset tai puuttuvat kommentit, jotka voivat maksaa tyylipisteitä, kun tehtävä arvostellaan.

Kumppanin kanssa työskennellessäsi suosittelen, että lainaat käytäntöä Extreme Programmingista, koodin kirjoittamismenetelmästä, jota monet yritykset pitävät varsin tehokkaana. Yksi henkilö (ohjaaja) istuu näppäimistön ääressä. Toinen henkilö (navigaattori) katsoo (virtuaalista) näyttöä, kun kuljettaja kirjoittaa, kysyy kysymyksiä, tekee ehdotuksia ja havaitsee virheitä. Molemmat teistä ymmärtävät koodia paremmin, jos keskustelette siitä sitä kirjoitettaessa kuin jos kirjoitatte (tai luette) sitä yksin. Vaihtakaa säännöllisesti, kuka on kuljettaja ja kuka navigaattori.

Tavanomainen reaktio tähän ajatukseen on: ”Se vie kaksi kertaa kauemmin!” Käytännössä se on yleensä nopeampaa kuin jos kumpikin ohjelmoi yksin. Syynä on se, että virheet havaitaan aikaisemmin, ja virheenkorjauksessa säästetty aika korvaa enemmän kuin hyvin koodin kirjoittamisen rinnakkaisuuden puutteen. Lisäksi koodi on yleensä paremmin kirjoitettua. Nämä ovat syitä siihen, että tämä ajatus on otettu käyttöön teollisuudessa.

Online-tallennus

Tallennan 2 tunnin aikana pidetyt oppitunnit Zoomissa ja julkaisen nämä videot.Suunnitelmani on olla tallentamatta yhtään toimistotuntia, ei ainakaan kahdenkeskistä, mutta ei myöskään pienryhmiä. Jos olen sitä mieltä, että virka-ajan kysymys tai vastaus olisi hyvä nähdä koko luokalle, teen siitä erillisen muistion tai videon tai sisällytän sen seuraavaan luentoon. Näin teen normaalisti tunneillani. Jos pidän ongelmakeskustelun tai X-tunnin, jossa koko luokkaa pyydetään tulemaan valmistautuneena kysymyksineen, nauhoitan sen, koska se on pohjimmiltaan luokkakeskustelu. Mutta todennäköisesti muokkaan sitä ennen lähettämistä, jotta se on nopeampi katsoa uudelleen

From the Dean of the Faculty to students regarding recording of class sessions:

(1) Suostumus kurssin ja ryhmävastaanottoaikojen tallentamiseen

  • a) Vahvistan ymmärtäväni, että tämä kurssi ja siihen liittyvät ryhmätapaamiset, joihin osallistuu opiskelijoita ja opettajaa, mukaan lukien, mutta ei rajoittuen, aikataulunmukaiset ja tilapäiset vastaanottotunnit ja muut konsultaatiot, voidaan tallentaa millä tahansa digitaalisella alustalla, jota käytetään tämän kurssin etäopetuksen tarjoamiseen;
  • b) Vakuutan lisäksi, että ohjaaja omistaa tekijänoikeudet opetusmateriaaleihinsa, joiden osa nämä tallenteet ovat, ja että näiden tallenteiden levittäminen kokonaan tai osittain ilman ohjaajan etukäteen antamaa kirjallista suostumusta voi johtaa Dartmouthin kurinpitoon aina erottamiseen asti;
  • c) Annan Dartmouthille ja kaikille Dartmouthin puolesta toimiville henkilöille luvan nauhoittaa osallistumiseni ja esiintymiseni millä tahansa välineellä ja käyttää nimeäni, kuvaani ja ääntäni tällaisen nauhoituksen yhteydessä; ja
  • d) Annan Dartmouthille ja kaikille Dartmouthin puolesta toimiville henkilöille luvan käyttää, kopioida tai levittää tällaista nauhoitusta rajoituksetta mihin tahansa Dartmouthin ja kaikkien Dartmouthin puolesta toimivien tahojen tarpeelliseksi katsomiin koulutustarkoituksiin.

(2) Vaatimus suostumuksesta kahdenkeskisiin nauhoituksiin

    Kirjoittautumalla tälle kurssille vakuutan täten, etten missään tapauksessa tee nauhoitusta millään välineellä yhdestäkään kahdenkeskisestä tapaamisesta opettajan kanssa ilman kaikkien osallistujien kirjallista suostumusta, ja ymmärrän, että jos rikon tätä kieltoa, Dartmouth voi rangaista minua kurinpidollisella toimenpiteellä, joka voi ulottua aina maasta erottamiseen asti, sekä mahdollisilla muilla siviili- tai rikosoikeudellisilla rangaistuksilla, jotka perustuvat sovellettavaan lainsäädäntöön.

Teknologiavaatimukset

Koska kurssi on luonteeltaan verkkokurssi, opiskelijoilta edellytetään kykyä streamata enintään 1 tunti videosisältöä joka päivä. Teemme parhaamme suunnitellaksemme ja ottaaksemme huomioon kaikki rajoitukset, jotka liittyvät vaaditun teknologian käyttöön. Meidän on mahdotonta suunnitella kaikkia mahdollisia teknisiä rajoitteita. Siksi pyydämme teitä ilmoittamaan meille mahdollisimman pian, mitä esteitä teillä on verkkokurssin suorittamisessa. Ottaen huomioon nykyiset häiriöt toimitusketjussa haluaisimme suunnitella mahdollisimman pitkälle tulevaisuuteen.

Honor code

Tälle kurssille sovelletaan Dartmouthin kunniasääntöjä, ja akateemisia väärinkäytöksiä koskevia sääntöjä noudatetaan tiukasti. Ilmoitan epäillyistä huijaustapauksista Undergraduate Judicial Affairs Officerille. Minulla on myös oikeus antaa hylätty arvosana harjoitustehtävästä tai tentistä, jos katson, että kunniaperiaatetta on rikottu, riippumatta siitä, mikä on standardikomitean päätös. Jos sinulla on kysyttävää, kysy!

Accessibility Needs

Opiskelijoita, jotka pyytävät vammaisuuteen liittyviä mukautuksia ja palveluja tälle kurssille, kehotetaan sopimaan puhelin-/videotapaaminen kanssani mahdollisimman aikaisin lukukauden alussa. Tämä keskustelu auttaa selvittämään, mitä tukia verkkokurssilleni on rakennettu. Jotta mukautukset voidaan hyväksyä, opiskelijoiden on neuvoteltava Student Accessibility Services (SAS; [email protected]; SAS:n verkkosivut; 603-646-9900) ja lähettämään minulle sähköpostitse SAS:n majoituslomakkeen. Sen jälkeen teemme yhteistyötä SAS:n kanssa, jos mukautuksia on muutettava verkko-oppimisympäristön perusteella. Jos opiskelijoilla on kysyttävää siitä, ovatko he oikeutettuja mukautuksiin, heidän on otettava yhteyttä SAS-toimistoon. Kaikki tiedustelut ja keskustelut pysyvät luottamuksellisina.

Mielenterveys

Akatemiaympäristö Dartmouthissa on haastava, lukukautemme ovat intensiivisiä, eivätkä kurssit ole ainoa vaativa osa elämääsi. Kampuksella on käytettävissäsi useita resursseja, jotka tukevat hyvinvointiasi, mukaan lukien perustutkintodekaanisi, Counseling and Human Development ja Student Wellness Center.

Religious Observances

Jotkut opiskelijat saattavat haluta osallistua uskonnollisiin seremonioihin, jotka tapahtuvat tämän lukukauden aikana. Jos sinulla on uskonnollinen juhlapäivä, joka on ristiriidassa kurssille osallistumisesi kanssa, tapaa minut ennen lukukauden toisen viikon loppua keskustellaksesi sopivista järjestelyistä.

COVID-19 lisäys

Vaikka COVID-19-pandemia on jo häirinnyt kurssia huomattavasti, se voi aiheuttaa uusia henkilökohtaisia seurauksia, jotka voivat estää sinua osallistumasta kurssille. Tämä voi johtua taudin tarttumisesta sinuun tai läheiseesi, lisääntyneistä perhevelvollisuuksista, taloudellisista vaikeuksista tai vaikutuksista mielenterveyteesi/emotionaaliseen terveyteesi.

Olemme suunnitelleet kurssin niin, että nämä häiriöt eivät välttämättä estä sinua suorittamasta kurssia onnistuneesti. Ensinnäkin nauhoitamme ja postitamme jokaisen luennon. Tämä mahdollistaa kurssin sisällön joustavan katselun. Toiseksi, suunnittelemme tilaisuuksia live-vuorovaikutukseen opettajan ja opinto-ohjaajan kanssa eri aikoina viikon aikana. Kolmanneksi, harjoitukset on suunniteltu uudelleen niin, että ne voidaan suorittaa kotona.

Jos COVID-19 vaikuttaa sinuun suoraan tai välillisesti tavalla, joka vaikuttaa suoritukseesi kurssilla, on ehdottoman tärkeää, että otat yhteyttä ohjaajaan mahdollisimman pian. Voit myös ottaa yhteyttä perustutkintodekaaniin, jos se helpottaa sinua. Emme voi auttaa sinua, jos emme tiedä ongelmasta. Ensisijainen tavoitteemme on terveytesi ja turvallisuutesi. Työskentelemme sen eteen, että saat yhteyden asianmukaisiin resursseihin, jotka voivat auttaa sinua. Lisäksi otamme käyttöön asianmukaiset järjestelyt (esimerkiksi määräaikojen pidennykset ja/tai ylimääräiset toimistotunnit).

Kuittaus

Tämä kurssi perustuu läheisesti tohtori Charles Palmerin alun perin kehittämään kurssiin. Olen syvästi kiitollinen tälle erinomaiselle kouluttajalle kaikesta hänen kovasta työstään ja anteliaasta avustaan tämän kurssin luomisessa.

Vastaa

Sähköpostiosoitettasi ei julkaista.