CS 61 | Databázové systémy | Jaro 2020

, Author

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

Popis předmětu

ORC. Tento kurz studuje správu velkých objemů dat nebo informací. Zahrnuje schémata pro reprezentaci, manipulaci a ukládání složitých informačních struktur a také algoritmy pro efektivní zpracování těchto struktur a pro vyhledávání informací, které obsahují. V tomto předmětu se student naučí techniky pro alokaci a dealokalizaci úložišť, vyhledávání (formulaci dotazů) a manipulaci s velkým množstvím heterogenních dat. Očekává se, že studenti budou programovat a zapojí se do projektu, ve kterém budou studovat důležité aspekty databázového systému: způsoby organizace distribuované databáze sdílené několika počítači; transakce, které jsou zpracovávány lokálně a globálně; záruky robustnosti uložených dat proti selhání; záruky bezpečnosti a integrity dat před neoprávněným přístupem; soukromí; objektově orientovaná schémata pro multimediální data; indexování, hashování, řízení souběžnosti, dolování dat, datové sklady, mobilní databáze a struktury úložných souborů.

Cíle výuky Konečným cílem tohoto kurzu je připravit vás na používání dat k rozhodování na základě dat namísto rozhodování na základě pocitu nebo dohadů. Po absolvování tohoto kurzu byste měli být schopni:

  1. Vyhledávat informace v existujících databázích. Prvních několik týdnů kurzu se budeme učit standardní databázový dotazovací jazyk zvaný Structured Query Language (alias SQL, neboli „pokračování“). Díky tomu získáte nástroje potřebné k dotazování existujících databází za účelem získání přehledu o datech, která jsou v nich uložena.
  2. Navrhněte si vlastní efektivní databáze. Několik následujících týdnů se budeme zabývat tím, jak strukturovat vlastní databáze, rozvrhovat tabulky a zvažovat faktory, jako je redundance, spolehlivost a rychlost.
  3. Pochopte, co se děje pod kapotou. Dále budeme zkoumat, jak databáze fungují, jak rychle a přesně získávají data, a to i při současném přístupu více uživatelů k datům a jejich aktualizaci.
  4. Popište nové a rozvíjející se databázové technologie. Nakonec se podíváme na nové databázové technologie, jako jsou databáze NoSQL a blockchainy.

Po celou dobu budeme mít několik hostujících přednášejících z řad odborníků pracujících v oboru. Další podrobnosti naleznete na stránce s rozvrhem.

Předpokladem je absolvování kurzu CS 50. Budu také předpokládat, že jste obeznámeni s jazykem Python.

Kdo, kdy, kde

Instruktor Tim Pierson | 210 Sudikoff
Kancelářské hodiny: většinu týdnů úterý 13:30 – 14:30, čtvrtek 13:30 – 14:30 (potvrzujte přes kalendář na Canvasu) a po domluvě. Pro virtuální schůzky viz odkaz Zoom na Canvas. Graduate teaching assistant Almas Abdibayev

úřední hodiny: zachovány na Canvas Přednášky 2 hodiny | MWF 14:10 – 15:15 východní časové pásmo | Online přednášky budou v tomto semestru online a nahrávány pomocí Zoomu – podrobnosti o přístupu najdete na Canvas. Když se připojíte k online setkání, vypněte prosím kameru a mikrofon. Pokud máte otázku, stiskněte prosím tlačítko „Zvednout ruku“ na Zoomu. Pokud se na vás v krátké době neozvu, ztlumte prosím zvuk, zapněte kameru a zeptejte se. Na dalších pravidlech budeme pracovat průběžně… Neplánuji pravidelně využívat x-hodin, ale mohu je někdy využít pro zameškané hodiny, k dohánění látky nebo pro nepovinné, neformální sezení k vypracování příkladů. Ujistěte se, že máte tento časový úsek volný pro případ, že bychom ho potřebovali využít. Často budeme mít v hodinách cvičení, na kterých si vyzkoušíme nové koncepty na živé databázi. Google a StackOverflow budou vašimi přáteli, neváhejte je používat (pokud nebudete instruováni jinak)! Nápověda: Kancelářské hodiny Kancelářské hodiny budou probíhat také online prostřednictvím Zoomu. Během vypsaných úředních hodin budu k dispozici online, i když nebudou žádné dotazy. Pokud si chcete domluvit soukromou schůzku, napište mi a najdeme si čas na rozhovor. Nápověda: V případě potřeby se můžete obrátit na mou kancelář s žádostí o pomoc: Po prvním dni výuky očekávejte pozvánku do kanálu Slack. Důrazně vám doporučuji, abyste tam kladli otázky a odpovídali na ně. Oznámení Sledujte Canvas pro pravidelná oznámení týkající se celého kurzu. Učebnice Database System Concepts, 7th edition, by Silberschatz, Korth, and Sudarshan. Vřele doporučuji elektronickou verzi namísto papírové (papírová verze není ani svázaná – je to sbírka volných listů!) Ačkoli kniha Silberschatz bude naší hlavní učebnicí a veškerá zadaná četba bude z této učebnice, dalším užitečným zdrojem je Database Systems: Database Systems, Design, Implementation, & Management, 13th edition, by Coronel and Morris. Dalším skvělým zdrojem je https://www.mysqltutorial.org.

Hodnocení

Hodnocení v této třídě bude kombinací semestrálního projektu, několika laboratorních úkolů, jedné pololetní zkoušky a účasti ve třídě. K úspěšnému absolvování tohoto předmětu je zapotřebí dosáhnout celkového skóre alespoň 60 %.

Projekt (40 %)

V průběhu semestru budete společně s dalšími třemi studenty pracovat na projektu souvisejícím s databází, který si sami zvolíte. Podrobnosti o požadavcích na projekt naleznete zde.

Laborace (30 %)

Budou vypracovány tři laboratorní úkoly (kromě laboratoře 0, která slouží pouze ke shromažďování informací), které dohromady tvoří 30 % hodnocení tohoto kurzu. Body za každou laboratoř jsou následující:

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

Požadavky na odevzdání laboratorních prací: Laboratorní práce jsou určeny k vypracování mimo vyučování a musí být odevzdány elektronicky prostřednictvím Canvasu do termínu uvedeného na Canvasu. I v případě, že laboratoř obsahuje některá písemná cvičení, je nutné, abyste písemnou práci buď zadali do souboru, nebo ji naskenovali a odevzdali elektronicky. Chcete-li předložit výstup z programu, předložte zkopírovaný soubor ve formátu pdf a/nebo případně snímek obrazovky. Pro prostý text můžete použít program jako TextEdit, NotePad nebo Emacs, případně i Word, ale nezapomeňte jej uložit ve formátu pdf. Pro snímek obrazovky můžete použít program Preview v systému Mac (v nabídce „Soubor“) nebo tlačítko PrntScrn v systému Windows.

Na těchto laboratorních úkolech můžete pracovat s jedním partnerem (viz Spolupráce níže). Kromě toho:

  • Pokud jste pracovali s partnerem, uveďte své jméno a jméno partnera, nebo pokud jste pracovali sami, uveďte v komentáři v odevzdávce „bez partnera“.
  • Pokud jste pracovali s partnerem a skončili s jedním společným řešením, uveďte to v komentáři v řešení a v odevzdávce. Každý partner by měl odevzdat stejné řešení. Řešení pak bude hodnoceno jednou, přičemž oběma partnerům bude přidělena stejná známka.
  • Pokud jste pracovali s partnerem, ale napsali jste samostatný kód, uveďte spolupráci, ale to, že máte odlišné odevzdání. Uveďte to jak v kódu, tak na odevzdání. Každý z vás by měl nahrát své vlastní řešení a každý z vás dostane samostatnou známku.
  • Shromážděte všechny své soubory s kódem do jednoho souboru zip a nahrajte tento soubor zip, nikoliv několik samostatných souborů.

Pravidla pro pozdní odevzdání Odevzdání přes Canvas v den a čas uvedený v zadání na Canvasu. Sankce: < 8 hodin: < 10 %; < 24 hodin: 20 %; < 48 hodin: Více: bez zápočtu.
Je povoleno maximálně jedno pozdní odevzdání (do 48 hodin) bez sankce; omluva není nutná. V podání uveďte, že se rozhodujete využít volný vstup; volbu nelze vzít zpět. Tuto možnost nelze kombinovat s penalizací (např. k 48hodinovému volnému předání si nemůžete vzít 8hodinovou penalizaci). Pokud pracujete s partnerem, počítá se to jako volný průkaz pro oba. Hodnocení Pro každou laboratoř budou k dispozici konkrétní rubriky pro hodnocení.

Zkoušky (20 %)

Bude jedna průběžná zkouška v hodnotě 20 % závěrečné známky (žádná závěrečná – váš projekt se počítá jako závěrečná). Ke zkoušce smíte použít jednu poznámkovou stránku o rozměrech 8,5 x 11 palců, ale nesmíte do ní zahrnout odpovědi nebo kód z předchozích zkoušek CS61, pokud vám je výslovně neposkytl vyučující nebo pokud nejsou součástí materiálu probíraného v hodině.

Pokud máte dotazy ohledně výsledku zkoušky nebo chcete otázku přehodnotit, obraťte se na svého TA do jednoho týdne od data, kdy byla zkouška vrácena do třídy. Pokud požádáte o přehodnocení konkrétní otázky, vyhrazujeme si právo přehodnotit celou zkoušku.

Účast na hodině (10 %)

Většina hodin bude mít praktickou část, kdy budeme řešit řadu problémů na živé databázi. Na konci této části hodiny můžete být náhodně vybráni (s náhradou), abyste prezentovali své řešení. Vaše prezentace bude hodnocena následovně:

  • 0: Nic podstatného
  • 1: Na vašem řešení je třeba výrazně zapracovat
  • 2: Správné nebo převážně správné.

Pokud se nebudete moci zúčastnit hodiny prostřednictvím Zoom live, ale budete náhodně vybráni, zveřejněte své řešení na Canvasu před další hodinou.

Může se stát, že v průběhu semestru nebudete nikdy náhodně vybráni k prezentaci svého řešení. V takovém případě získáte za tuto část známky plný počet bodů.

Spolupráce

Velká část výuky v tomto předmětu vychází z provádění programátorských cvičení. Někdy může učení probíhat efektivněji, když si můžete věci vyříkat s někým jiným, proto bude při laboratorních úkolech povolena spolupráce s partnerem. Na daném laboratorním úkolu můžete pracovat společně s jednou další osobou. Pokud se rozhodnete pracovat s někým jiným, musíte vy i váš partner odevzdat stejný společný úkol s oběma jmény a musíte pracovat se stejnou osobou na celém úkolu (nemůžete pracovat s jednou osobou na některých částech úkolu a s jinou osobou na jiných částech).

Pokud pracujete s partnerem, jste stále zodpovědní za pochopení celého úkolu. To znamená, že rozdělit kódování na části, udělat svou část a nikdy se nepodívat na části svého partnera není dobrý nápad. Hodně se naučíte, když si přečtete partnerův kód a zjistíte, jak funguje, zda je správný a jak by se dal vylepšit. Můžete také zachytit věci, jako jsou špatné nebo chybějící komentáře, které by vás mohly stát body za styl při hodnocení úkolu.

Při práci s partnerem doporučuji, abyste si vypůjčili postup zExtreme Programming, což je metoda psaní kódu, kterou mnoho firem považuje za docela účinnou. Jedna osoba (řidič) sedí u klávesnice. Druhá osoba (navigátor) se dívá na (virtuální) obrazovku, zatímco řidič píše, klade otázky, dává návrhy a vychytává chyby. Oba lépe porozumíte kódu, pokud o něm budete diskutovat, jak je napsán, než když ho budete psát (nebo číst) sami. Pravidelně si vyměňujte, kdo je řidič a kdonavigátor.

Obvyklá reakce na tento nápad je: „To bude trvat dvakrát déle!“ V praxi je to obvykle rychlejší, než když každý programuje sám. Důvodem je, že chyby jsou zachyceny dříve a množství času, které se ušetří při ladění, více než vynahradí nedostatekparalelizmu při psaní kódu. Také kód bývá lépe napsaný. To jsou důvody, proč byla tato myšlenka přijata vprůmyslu.

Online nahrávání

Budu nahrávat třídní schůzky konané během 2 hodin na Zoomu a tato videa zveřejním. mým plánem bude nenahrávat žádné úřední hodiny, určitě ne jeden na jednoho, ale ani malé skupiny. Pokud si budu myslet, že by bylo dobré, aby otázku nebo odpověď z úředních hodin viděla celá třída, připravím samostatnou poznámku nebo video, případně je zařadím do další přednášky. Takto to běžně dělám ve svých hodinách. Pokud pořádám problémové sezení nebo hodinu X, kde je celá třída vyzvána, aby přišla připravená s otázkami, nahraji to, protože je to v podstatě třídní sezení. Ale pravděpodobně to před zveřejněním sestříhám, abyste si to mohli rychleji přehrát

Od děkana fakulty studentům ohledně nahrávání třídních schůzek:

(1) Souhlas s nahráváním kurzu a skupinových úředních hodin

  • a) Potvrzuji, že jsem srozuměn/a s tím, že tento kurz a veškerá související skupinová setkání za účasti studentů a vyučujícího, mimo jiné včetně plánovaných a ad hoc úředních hodin a dalších konzultací, mohou být nahrávána v rámci jakékoli digitální platformy používané pro nabídku vzdálené výuky tohoto kurzu;
  • b) dále potvrzuji, že vyučující vlastní autorská práva ke svým výukovým materiálům, jejichž součástí jsou tyto nahrávky, a šíření jakýchkoli těchto nahrávek jako celku nebo jejich částí bez předchozího písemného souhlasu vyučujícího může být předmětem disciplinárního řízení ze strany Dartmouthu až po vyloučení;
  • c) opravňuji Dartmouth a kohokoli, kdo jedná jménem Dartmouthu, k nahrávání mé účasti a vystoupení na jakémkoli médiu a k použití mého jména, podobizny a hlasu v souvislosti s takovou nahrávkou; a
  • d) opravňuji Dartmouth a kohokoli, kdo jedná jménem Dartmouthu, k použití, reprodukci nebo distribuci takové nahrávky bez omezení nebo limitů pro jakékoli vzdělávací účely, které Dartmouth a kdokoli, kdo jedná jménem Dartmouthu, považuje za vhodné.

(2) Požadavek souhlasu s individuálními nahrávkami

    Zápisem do tohoto kurzu tímto stvrzuji, že za žádných okolností nebudu pořizovat nahrávku na jakémkoli médiu z individuálního setkání s vyučujícím bez předchozího písemného souhlasu všech zúčastněných, a beru na vědomí, že pokud tento zákaz poruším, budu vystaven/a disciplinárnímu postihu ze strany Dartmouthu až po vyloučení, jakož i dalším občanskoprávním nebo trestněprávním sankcím podle platných právních předpisů.

Požadavky na technologie

Vzhledem k online povaze tohoto kurzu se vyžaduje, aby studenti měli možnost denně přenášet 1 hodinu nebo méně videoobsahu. Uděláme vše pro to, abychom naplánovali a přizpůsobili se případným omezením vašeho přístupu k požadované technologii. Není v našich silách naplánovat všechna možná technologická omezení. Proto nám prosím co nejdříve sdělte, jaké překážky vám brání v absolvování online kurzu. Vzhledem k současným poruchám v dodavatelském řetězci bychom rádi plánovali s co největším předstihem.

Kodex cti

Na tento kurz se vztahuje kodex cti Darmouthu a budou přísně dodržovány zásady akademického pochybení. Podezření na podvádění budu hlásit úředníkovi pro soudní záležitosti vysokoškolského studia. Vyhrazuji si také právo udělit za úkol nebo zkoušku nedostatečnou známku, pokud dojdu k závěru, že byly porušeny zásady cti, a to bez ohledu na zjištění Výboru pro standardy.

Potřeby v oblasti přístupnosti

Studentům, kteří v tomto předmětu požadují úpravy a služby související s postižením, doporučuji, aby si se mnou co nejdříve v průběhu semestru domluvili telefonickou/video schůzku. Tento rozhovor pomůže stanovit, jaké podpory jsou v mém online kurzu zabudovány. Aby bylo možné ubytování schválit, je nutné, aby se studenti poradili se Student Accessibility Services (SAS; [email protected]; webové stránky SAS; 603-646-9900) a aby mi zaslali svůj formulář pro ubytování SAS. Poté budeme společně se SAS spolupracovat, pokud bude třeba přizpůsobení upravit na základě online vzdělávacího prostředí. Pokud mají studenti dotazy ohledně toho, zda mají nárok na ubytování, měli by se obrátit na kancelář SAS. Všechny dotazy a diskuse zůstanou důvěrné.

Psychické zdraví

Akademické prostředí na Dartmouthu je náročné, naše semestry jsou intenzivní a výuka není jedinou náročnou součástí vašeho života. Na akademické půdě je vám k dispozici řada zdrojů na podporu vašeho zdraví, včetně vašeho děkana bakalářského studia, poradenství a rozvoje člověka a Studentského wellness centra.

Náboženské obřady

Někteří studenti se mohou chtít zúčastnit náboženských obřadů, které se konají během tohoto akademického semestru. Pokud máte náboženské obřady, které kolidují s vaší účastí v kurzu, sejděte se se mnou před koncem druhého týdne semestru, abychom prodiskutovali vhodná opatření.

Doplněk k COVID-19

Přestože pandemie COVID-19 již drasticky narušila tento kurz, má potenciál vést k dalším osobním dopadům, které vám mohou zabránit v dalším zapojení do výuky. Důvodem může být nákaza vámi nebo vaší blízkou osobou, zvýšené rodinné povinnosti, finanční potíže nebo dopady na vaše duševní/emocionální zdraví.

Strukturovali jsme kurz tak, aby vám tato narušení nemusela nutně zabránit v úspěšném absolvování tohoto kurzu. Nejprve budeme každou přednášku nahrávat a zveřejňovat. To umožní flexibilní sledování obsahu kurzu. Zadruhé, naplánujeme příležitosti pro živou interakci s instruktorem a TA v různých časech během týdne. Zatřetí, laboratoře byly přepracovány tak, aby je bylo možné absolvovat doma.

V případě, že vás COVID-19 přímo či nepřímo ovlivní takovým způsobem, který bude mít vliv na váš výkon v kurzu, je nutné, abyste se co nejdříve obrátili na vyučujícího. Můžete se také obrátit na svého vysokoškolského děkana, pokud by vám to bylo příjemnější. Nemůžeme vám pomoci, pokud nevíme, že se jedná o problém. Naší prioritou je vaše zdraví a bezpečnost. Budeme se snažit zprostředkovat vám kontakt na vhodné zdroje, které vám pomohou. Kromě toho budou zavedena vhodná opatření (například: prodloužení lhůty a/nebo dodatečné úřední hodiny).

Poděkování

Tento kurz úzce vychází z kurzu, který původně vytvořil Dr. Charles Palmer. Tomuto vynikajícímu pedagogovi jsem hluboce zavázán za veškerou jeho usilovnou práci a velkorysou pomoc při tvorbě tohoto kurzu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.