- ออกแบบให้ relation schema ที่มีการ equally join (เลือกจาก attributes ที่เหมาะสม) จะทำให้ไม่เกิด spurious table (เกิดจากการ join โดยไม่ใช้ primary key หรือ foriegn key อ้างอิงจาก quora
- เลี่ยงการใช้ attributes ที่ไม่ใช่ pk หรือ fk มาใช้ join
วันเสาร์ที่ 24 มีนาคม พ.ศ. 2561
wk11 : guideline4
Guideline 4
wk8 : database performance
ใช้การวัดเวลาในการ import ข้อมูล และการ Query ทั้ง 3 แบบ
1.Query 1 - รายชื่อนักศึกษาที่ชื่อขึ้นต้นด้วยตัว j, f, k
2.Query 2 - นักศึกษาที่ไม่ได้เกรด A ในวิชา PROGRAMMING FUNDAMENTAL
3.Query 3 - อันดับวิชาที่มีจำนวนนักศึกษาได้เกรด A มากที่สุด
Postgresql (python library)
SQLite ทำการติดตั้งทั้งตัว dbms และ library
ข้อมูลที่ใช้ import
subject
student
registration
เมื่อโหลดไฟล์ student ไปแล้วต้องลบบรรทัดแรกที่เขียนว่า >>>student<<< ออกไปด้วย (ใช้ Notepad++ จะเห็นเรียงเป็นบรรทัด)
จากนั้นทำการรันโค้ด python ที่ใช้วัดเวลาในการ import , query ข้อมูล
Google Drive
เมื่อลองรันแล้วนำข้อมูลมาใส่ตารางได้ดังนี้
1.Query 1 - รายชื่อนักศึกษาที่ชื่อขึ้นต้นด้วยตัว j, f, k
2.Query 2 - นักศึกษาที่ไม่ได้เกรด A ในวิชา PROGRAMMING FUNDAMENTAL
3.Query 3 - อันดับวิชาที่มีจำนวนนักศึกษาได้เกรด A มากที่สุด
DBMS ที่ใช้งาน :
MySQL (python library)Postgresql (python library)
SQLite ทำการติดตั้งทั้งตัว dbms และ library
ข้อมูลที่ใช้ import
subject
student
registration
เมื่อโหลดไฟล์ student ไปแล้วต้องลบบรรทัดแรกที่เขียนว่า >>>student<<< ออกไปด้วย (ใช้ Notepad++ จะเห็นเรียงเป็นบรรทัด)
จากนั้นทำการรันโค้ด python ที่ใช้วัดเวลาในการ import , query ข้อมูล
Google Drive
เมื่อลองรันแล้วนำข้อมูลมาใส่ตารางได้ดังนี้
วันอาทิตย์ที่ 4 มีนาคม พ.ศ. 2561
วันศุกร์ที่ 2 มีนาคม พ.ศ. 2561
wk6 : ทดลองนำไฟล์ขนาดใหญ่เข้า database
What I have done
ทดลองสร้างไฟล์ขนาดใหญ่เพิ่มขึ้นเรื่อยๆ ดังตารางจากนั้นทำการ import เข้า MySQL โดยใช้ python (library อยู่ใน Link)
แล้วใช้การ Query แบบ ทั้งหมด ( select * )
QUERY ALL
|
FETCH TIME (second)
|
1000 rows (0.28 MB)
|
0.031
|
9202 rows (1.93 MB)
|
0.016
|
12113 rows (2.18 MB)
|
0.157
|
20058 rows (4.54 MB)
|
1.453
|
550113 rows (78.71 MB)
|
1.828
|
3,622,113 rows (487.23 MB)
|
9.938
|
5,179,927 rows (733.53 MB)
|
15.984
|
16,084,625 rows (2271.03 MB)
|
54.125
|
Problem
หากใช้การ insert โดยใช้ loop ใน python เรื่อยๆจะใช้เวลานานมากๆ จึงใช้วิธี import ไฟล์ (csv file) แทน
Link in use
wk5 : Find ER from textbook
What I have done
หา ER Diagram จาก Textbook ที่ชื่อ Database Concept 6th Edition
จากนั้นนำมาวาดใน Google Presentation
What I have learn
เส้นสองเส้นหมายถึงความสัมพันธ์แบบ Total participation หมายถึง สิ่งๆนึงต้องมีส่วมรวมในสิ่งอีกสิ่งแบบทุกตัว เช่น นักเรียนทุกคนอยู่ในdepartment
Weak entity คือ entity ที่ไม่มี primary key ของตัวเอง และขึ้นอยู่กับ owner (strong entity) เช่น
Course ที่เป็น Owner (เจ้าของ) ของ Section
Relation R สามารถมีตัวแปรเพื่มได้เช่น takes มีตัวแปร grade
สมัครสมาชิก:
บทความ (Atom)
wk12 : form
First form จาก table employee จะเห็นว่า มี Jon และ Lester มี 2 เบอร์ จึงไม่เป็น 1st form จากกฏคือ “each attribute of a table must ha...
-
import team csv to database What I have done & learn สร้างตารางแยกไว้ 3 ตาราง student (เลขประจำตัว ชื่อ นามสกุล คณะ สาขา) subject...
-
What I have done ทดลองสร้างไฟล์ขนาดใหญ่เพิ่มขึ้นเรื่อยๆ ดังตาราง จากนั้นทำการ import เข้า MySQL โดยใช้ python (library อยู่ใน Link) แล...
-
ใช้ seven step algrotithm ในการแปลงจาก ER Diagram เป็น Relationship Slide