Database 2018-02: Difference between revisions
Line 72: | Line 72: | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| width="25px" style="background: Turquoise; text-align:center;" | # | | width="25px" style="background: Turquoise; text-align:center;" | # | ||
| width="50%" style="background: Turquoise; text-align:left;" | Topic & material | | width="50%" style="background: Turquoise; text-align:left;" | Topic & material | ||
| width="5%" style="background: Turquoise; text-align:left;" | Readings | | width="5%" style="background: Turquoise; text-align:left;" | Readings | ||
| width="45%" style="background: Turquoise; text-align:left;" | Assignments | | width="45%" style="background: Turquoise; text-align:left;" | Assignments | ||
|- | |- | ||
| style="text-align:center;" | 1 | | style="text-align:center;" | 1 | ||
| style="vertical-align: top;"| '''Course Overview and Database History''' | | style="vertical-align: top;"| '''Course Overview and Database History''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day01/Day01_intro.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day01/Day01_intro.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day01/Day01_intro.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day01/Day01_intro.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day01/dataset_1.db DB] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day01/dataset_1.db DB] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day01/DB-WS01a.ipynb Worksheet 1a] | |||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day01/DB-WS01b.ipynb Worksheet 1b] | |||
<br> If you haven't installed Jupyter, then please consult [[#JupyterInstall | Jupyter Installation Guide]] | <br> If you haven't installed Jupyter, then please consult [[#JupyterInstall | Jupyter Installation Guide]] | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 2 --> | <!-- Topic 2 --> | ||
|- | |- | ||
| style="text-align:center;" | 2 | | style="text-align:center;" | 2 | ||
| style="vertical-align: top;"| ''SQL Introduction Part I''' | | style="vertical-align: top;"| ''SQL Introduction Part I''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_SQL_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_SQL_p1.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_SQL_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_SQL_p1.pdf pdf] ] | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_worksheet.ipynb Notebook] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day02/Day02_worksheet.ipynb Notebook] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day02/dataset_1.db DB] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day02/dataset_1.db DB] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day02/DB-WS02a.ipynb Worksheet 2a] | |||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day02/DB-WS02b.ipynb Worksheet 2b] | |||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day02/DB-WS02c.ipynb Worksheet 2c] | |||
| style="vertical-align: top;"| Ch. 6 | | style="vertical-align: top;"| Ch. 6 | ||
| style="vertical-align: top;"| '''Assignment 1 ''' | | style="vertical-align: top;"| '''Assignment 1 ''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/HW1.ipynb Assignment 1] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/HW1.ipynb Assignment 1] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/correct_output.txt Correct Output] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/correct_output.txt Correct Output] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/flights.db.zip DB for the assignment (must be unzipped)] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/flights.db.zip DB for the assignment (must be unzipped)] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/sanity_check.py Sanity checker script (run on the terminal)] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/sanity_check.py Sanity checker script (run on the terminal)] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/submit.py Answer Template] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/submit.py Answer Template] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/submission_instructions.txt Instructions on submitting the assignment] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments1/submission_instructions.txt Instructions on submitting the assignment] | ||
<!-- Topic 3 --> | <!-- Topic 3 --> | ||
|- | |- | ||
| style="text-align:center;" | 3 | | style="text-align:center;" | 3 | ||
| style="vertical-align: top;"| '''SQL Introduction Part II''' | | style="vertical-align: top;"| '''SQL Introduction Part II''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day_03_SQL_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day_03_SQL_p2.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day_03_SQL_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day_03_SQL_p2.pdf pdf] ] | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day03_worksheet.ipynb Notebook] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day03/Day03_worksheet.ipynb Notebook] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day03/dataset_1.db DB] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day03/dataset_1.db DB] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day03/DB-WS03a.ipynb Worksheet 3a] | |||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day03/DB-WS32b.ipynb Worksheet 3b] | |||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day03/DB-WS03c.ipynb Worksheet 3c] | |||
| style="vertical-align: top;"| Ch. 6 | | style="vertical-align: top;"| Ch. 6 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 4 --> | <!-- Topic 4 --> | ||
|- | |- | ||
| style="text-align:center;" | 4 | | style="text-align:center;" | 4 | ||
| style="vertical-align: top;"| '''Databas Design with ER Diagrams''' | | style="vertical-align: top;"| '''Databas Design with ER Diagrams''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day04/Day_04_ER.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day04/Day_04_ER.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day04/Day_04_ER.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day04/Day_04_ER.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> We are going to create an ER diagram in class with pencil and paper | <br> We are going to create an ER diagram in class with pencil and paper | ||
| style="vertical-align: top;"| Ch. 2 | | style="vertical-align: top;"| Ch. 2 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 5 --> | <!-- Topic 5 --> | ||
|- | |- | ||
| style="text-align:center;" | 5 | | style="text-align:center;" | 5 | ||
| style="vertical-align: top;"| '''Database Design Theory Part I''' | | style="vertical-align: top;"| '''Database Design Theory Part I''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day05/Day_05_Design_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day05/Day_05_Design_p1.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day05/Day_05_Design_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day05/Day_05_Design_p1.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day05/DB-WS05a.ipynb Worksheet 5a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day05/DB-WS05a.ipynb Worksheet 5a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day05/closure_v2.py Closure visualization tool for python v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day05/closure_v2.py Closure visualization tool for python v2] | ||
[https://github.com/resourceful/lecture_db/raw/master/Day05/closure_v3.py / python v3] | |||
| style="vertical-align: top;"| Ch. 3.2-3.7 | | style="vertical-align: top;"| Ch. 3.2-3.7 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 6 --> | <!-- Topic 6 --> | ||
|- | |- | ||
| style="text-align:center;" | 6 | | style="text-align:center;" | 6 | ||
| style="vertical-align: top;"| '''Database Design Theory Part II''' | | style="vertical-align: top;"| '''Database Design Theory Part II''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day06/Day_06_Design_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day06/Day_06_Design_p2.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day06/Day_06_Design_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day06/Day_06_Design_p2.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS06a.ipynb Worksheet 6a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS06a.ipynb Worksheet 6a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS06a.ipynb Worksheet 6b] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS06a.ipynb Worksheet 6b] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/closure_v2.py Closure visualization tool for python v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/closure_v2.py Closure visualization tool for python v2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/closure_v3.py | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/closure_v3.py / python v3] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS-3NF.ipynb Excercises on 3rd Normal Form] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS-3NF.ipynb Excercises on 3rd Normal Form] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS-MVDs.ipynb Excercises on Multi-Valued Dependency] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day06/DB-WS-MVDs.ipynb Excercises on Multi-Valued Dependency] | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
| style="vertical-align: top;"| '''Assignment 2''' | | style="vertical-align: top;"| '''Assignment 2''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/HW2.ipynb Assignment 2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/HW2.ipynb Assignment 2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/submit.py Answer Template] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/submit.py Answer Template] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/submission_instructions.txt Instructions on submitting the assignment] | <br> [https://github.com/resourceful/lecture_db/raw/master/Assignments2/submission_instructions.txt Instructions on submitting the assignment] | ||
<!-- Topic 7 --> | <!-- Topic 7 --> | ||
|- | |- | ||
| style="text-align:center;" | 7 | | style="text-align:center;" | 7 | ||
| style="vertical-align: top;"| '''Transactions''' | | style="vertical-align: top;"| '''Transactions''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day07/Day_07_TXNs.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day07/Day_07_TXNs.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day07/Day_07_TXNs.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day07/Day_07_TXNs.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
| style="vertical-align: top;"| Ch. 8.6 | | style="vertical-align: top;"| Ch. 8.6 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 8 --> | <!-- Topic 8 --> | ||
|- | |- | ||
| style="text-align:center;" | 8 | | style="text-align:center;" | 8 | ||
| style="vertical-align: top;"| '''Concurrency and Locks''' | | style="vertical-align: top;"| '''Concurrency and Locks''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day08/Day_08_Con_lock.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day08/Day_08_Con_lock.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day08/Day_08_Con_lock.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day08/Day_08_Con_lock.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day08/DB-WS08a.ipynb Worksheet 8a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day08/DB-WS08a.ipynb Worksheet 8a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txn_viewer_v2.py Transaction visulization module for pyton v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txn_viewer_v2.py Transaction visulization module for pyton v2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txn_viewer_v3.py | <br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txn_viewer_v3.py / python v3] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txnViewer.js Transaction visulation java script] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day08/txnViewer.js Transaction visulation java script] | ||
| style="vertical-align: top;"| Ch. 18.1-18.4 | | style="vertical-align: top;"| Ch. 18.1-18.4 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 9 --> | <!-- Topic 9 --> | ||
|- | |- | ||
| style="text-align:center;" | 9 | | style="text-align:center;" | 9 | ||
| style="vertical-align: top;"| '''Buffer Manager and Introduction to External Merge algorithm''' | | style="vertical-align: top;"| '''Buffer Manager and Introduction to External Merge algorithm''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day09/Day_09_BM_EM.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day09/Day_09_BM_EM.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day09/Day_09_BM_EM.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day09/Day_09_BM_EM.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/DB-WS09a.ipynb Worksheet 9a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/DB-WS09a.ipynb Worksheet 9a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/EMS_Demo.ipynb External Merge Sort Workseet] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/EMS_Demo.ipynb External Merge Sort Workseet] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/io_backend_v2.py Buffer manager engine for pyton v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/io_backend_v2.py Buffer manager engine for pyton v2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/io_backend_v3.py | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/io_backend_v3.py / python v3] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/display_tools.py Display helper] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/display_tools.py Display helper] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day09/compModel.js Modeling java script] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day09/compModel.js Modeling java script] | ||
| style="vertical-align: top;"| Ch. 11.4 | | style="vertical-align: top;"| Ch. 11.4 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 10 --> | <!-- Topic 10 --> | ||
|- | |- | ||
| style="text-align:center;" | 10 | | style="text-align:center;" | 10 | ||
| style="vertical-align: top;"| '''More on External Merge Sort''' | | style="vertical-align: top;"| '''More on External Merge Sort''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day10/Day_10_EMS.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day10/Day_10_EMS.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day10/Day_10_EMS.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day10/Day_10_EMS.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 11 --> | <!-- Topic 11 --> | ||
|- | |- | ||
| style="text-align:center;" | 11 | | style="text-align:center;" | 11 | ||
| style="vertical-align: top;"| '''Indexing''' | | style="vertical-align: top;"| '''Indexing''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day11/Day_11_Indexes.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day11/Day_11_Indexes.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day11/Day_11_Indexes.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day11/Day_11_Indexes.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day11/DB-WS11a.ipynb Worksheet 11a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day11/DB-WS11a.ipynb Worksheet 11a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day11/complaint.db Database for the worksheet] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day11/complaint.db Database for the worksheet] | ||
| style="vertical-align: top;"| Ch. 13.1-13.3 | | style="vertical-align: top;"| Ch. 13.1-13.3 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 12 --> | <!-- Topic 12 --> | ||
|- | |- | ||
| style="text-align:center;" | 12 | | style="text-align:center;" | 12 | ||
| style="vertical-align: top;"| '''Join part 1''' | | style="vertical-align: top;"| '''Join part 1''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day12/Day_12_Joins_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day12/Day_12_Joins_p1.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day12/Day_12_Joins_p1.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day12/Day_12_Joins_p1.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
| style="vertical-align: top;"| Ch. 15 | | style="vertical-align: top;"| Ch. 15 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 13 --> | <!-- Topic 13 --> | ||
|- | |- | ||
| style="text-align:center;" | 13 | | style="text-align:center;" | 13 | ||
| style="vertical-align: top;"| '''Join part 1''' | | style="vertical-align: top;"| '''Join part 1''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day13/Day_13_Joins_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day13/Day_13_Joins_p2.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day13/Day_13_Joins_p2.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day13/Day_13_Joins_p2.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
| style="vertical-align: top;"| Ch. 15 | | style="vertical-align: top;"| Ch. 15 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 14 --> | <!-- Topic 14 --> | ||
|- | |- | ||
| style="text-align:center;" | 14 | | style="text-align:center;" | 14 | ||
| style="vertical-align: top;"| '''Relational Algebra''' | | style="vertical-align: top;"| '''Relational Algebra''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day14/Day_14_Algebra.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day14/Day_14_Algebra.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day14/Day_14_Algebra.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day14/Day_14_Algebra.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day14/DB-WS014a.ipynb Worksheet 9a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day14/DB-WS014a.ipynb Worksheet 9a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day14/DB-WS14a_tree.png Picture used for the Worksheet] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day14/DB-WS14a_tree.png Picture used for the Worksheet] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day14/relation_algebra_v2.py Relational Algebra for pyton v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day14/relation_algebra_v2.py Relational Algebra for pyton v2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day14/display_tools.py Display helper] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day14/display_tools.py Display helper] | ||
| style="vertical-align: top;"| Ch. 2 and 16.3 | | style="vertical-align: top;"| Ch. 2 and 16.3 | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
<!-- Topic 15 --> | <!-- Topic 15 --> | ||
|- | |- | ||
| style="text-align:center;" | 15 | | style="text-align:center;" | 15 | ||
| style="vertical-align: top;"| '''Query Optimization''' | | style="vertical-align: top;"| '''Query Optimization''' | ||
[ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day15/Day_15_Optimization.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day15/Day_15_Optimization.pdf pdf] ] | [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day15/Day_15_Optimization.pptx pptx] ] [ [http://open.gnu.ac.kr/lecslides/2018-2-DB/Lectures/Day15/Day_15_Optimization.pdf pdf] ] | ||
<br> '''Worksheet:''' | <br> '''Worksheet:''' | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day15/DB-WS015a.ipynb Worksheet 15a] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day15/DB-WS015a.ipynb Worksheet 15a] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day15/DB-WS015b.ipynb Worksheet 15b] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day15/DB-WS015b.ipynb Worksheet 15b] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day15/complaint.db Database for the worksheet] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day15/complaint.db Database for the worksheet] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day15/relation_algebra_v2.py Relational Algebra for pyton v2] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day15/relation_algebra_v2.py Relational Algebra for pyton v2] | ||
<br> [https://github.com/resourceful/lecture_db/raw/master/Day15/display_tools.py Display helper] | <br> [https://github.com/resourceful/lecture_db/raw/master/Day15/display_tools.py Display helper] | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
| style="vertical-align: top;"| | | style="vertical-align: top;"| | ||
|} | |} | ||
Revision as of 09:52, 20 August 2018
Class Information
Class Info | |
---|---|
Class | ETA00137 - 데이터베이스 |
Lecturer | Seongjin Lee |
Time and Place | 407-507 Tuesday 16:00-18:00 407-507 Thursday 16:00-17:00 |
Office Hour | Tuesday: 18:00-19:00 |
Contacts | Office: 407-314 |
Email: insight at gnu dot ac dot kr |
Course Introduction
In Database Management System (DBMS), we study the database which is organized and structured collection of data. DBMS is a software system which acts as intermediary between user or application and the data. It allows to navigate through the data and analyze the data. In this course, we are going to learn the core mechanism that holds the system together.
Goal
In this course, we are going to learn the essence of data base management system. Students are going to learn the following concepts.
- Relational model
- Entity-relational model
- SQL
- External, conceptual, physical levels of DMBS
- Data definition language, Data manipulation language, query language
- Data structures
- Index
- Transaction and Concurrency
Text Book
Main Textbook
Not necessarily required to buy the book
- Database Systems : the Complete Book (Paperback) | Garcia-Molina, Ullman 지음 |Pearson Education Asia [link ][1판 번역본 ]
Supplementary Textbook
- Database Management Systems 3/E, Ramakrishnan , Gehrke, Johannes 지음 | McGraw-Hill 번역본 교보문고 바로가기
- 만화로 쉽게 배우는 데이터베이스, Takahashi Mana 지음, 홍희정 옮김, Azuma Shouko 그림, 성안당
- 데이터베이스 시스템 (AN INTRODUCTION TO DATABASE SYSTEMS), C.J. Date, Pearson, 2004
Evaluation
Categories | Ratio | Categories | Ratio |
---|---|---|---|
Attendance | 10 | Quiz | 10 |
Assignments | 10 | Midterm | 30 |
Project | 20 | Final | 30 |
Total | 100% |
- All exams are closed book and closed notes
- Any request for regrade must be made within one week of the time that the paper is returned, with no exception. You should describe in writing why the score is incorrect or graded unfairly. The written argument must be self-contained and can be evaluated based only on what is written on the paper.
Discussion
Please provide your info on this link.
All discussions and assignments are to be submitted in Piazza. Enroll into the class through the following link
Lecture Plan
Working Environment Setup
Step 1: Installing Jupiter Notebook
Gentle reminder that, jupyter notebook best works at Linux
Option 1: Installation via Anaconda
It is recommended that you install Jupyter Notebook via Anaconda
- Download & install Anaconda for Python here
- Run
jupyter notebook
to confirm that it is properly installed
If Anaconda doesn't have jupyter: you can try running
conda install jupyter
Option 2: Installation via pip
You can also install via the python package manager pip
- Make sure you have installed
python
andpip
- Make sure
pip
is updated to its latest versionpip install --user --upgrade pip
- Install Jupyter Notebook
pip install --user --upgrade jupyter
Installing other kernels and versions of python
When you are using Python3 and want to switch to Python2 in the notebook,
python2 -m pip install ipykernel
python2 -m ipykernel install —user
After restarting the Jupyter, you can chose different kernel in Jupyter notebook.
Step 2: Installing Other Dependencies
Git
Git is a version control system which we use to store the various course material; you can download from here
- you can download the course material from here
- If you want the up-to-date version of the course material, checkout the course repository from the
git
by typing the following commandgit checkout https://github.com/resourceful/lecture_db
IPython-SQL
python-sql
allows you to use SQL queries inside jupyter notebooks; install using pip
pip install --user --upgrade ipython-sql
other modules
you will be needing
- markdown
- numpy
- pandas
Step 3: Getting Started
Getting the latest course materials
You can always access the latest course materials on the course website. You can download all at once and keep them synced by using git. To get started with this, run:
git clone https://github.com/resourceful/lecture_db
Now you should have all the materials in Database; to get the latest version, run the following command in the repository.
git pull
To read the notebook
In the directory where the relevant course materials are, run:
jupyter notebook
Course Credit
Much of the materials of this lecture is based on CS145 of Stanford.