- ออกแบบ relation schemas ให้ join ด้วยค่า attributes ที่เหมือนกัน โดยที่เป็น attributes ที่เกี่ยวข้องกัน
- รับรองว่าไม่มี spurious tuples ถูกสร้างขึ้น
- หลีกเลี่ยง relations ที่จับคู่ attributes ที่ไม่ใช่ (foreign key, primary key)
Database Systems
วันอังคารที่ 27 มีนาคม พ.ศ. 2561
Informal Design Guidelines for Relation Schemas : Guideline 4
วันอังคารที่ 6 กุมภาพันธ์ พ.ศ. 2561
Try other DBMS (PostgreSQL) & Insert data of my group members
what I have done/learned
เริ่มด้วยการ download และ install ตัว PostgreSQL
หลังจากนั้นจึงเริ่มสร้าง database ขึ้นผ่าน GUI
เตรียมไฟล์ csv ที่เก็บข้อมูล Grade ของสมาชิกกลุ่มไว้ โดยจะเก็บรวมไว้ในไฟล์ "grade.csv" และเก็บ ID, ชื่อ และอื่นๆ ของสมาชิก ในไฟล์ "student.csv" โดยมี format ดังนี้
สร้าง Table ใน Database โดยมี column เป็น format เดียวกับไฟล์ csv ที่เตรียมไว้
เนี่องจากเพิ่งสร้าง Tables ขึ้นมาใหม่ Tables จึงยังว่างเปล่า โดยสามารถดูได้จากการ Query
ทำการ import ไฟล์ csv มาทับลงบน Tables ที่สร้างขึ้นมา
ทดสอบการ JOIN ของทั้งสอง Tables โดยใช้ "id" เป็นตัวเชื่อม
ลองใช้ SQL ในการ Query ข้อมูลที่ต้องการจาก Tables ทั้งสองที่นำมา JOIN กัน
related info/link/reference
download PostgreSQL : https://www.postgresql.org/download/
เริ่มด้วยการ download และ install ตัว PostgreSQL
download ตัว installer สำหรับ Windows |
หน้าตาของ PostgreSQL GUI (pgAdmin) |
หลังจากนั้นจึงเริ่มสร้าง database ขึ้นผ่าน GUI
คลิ๊กขวาที่ Databases แล้วเลือก Create > Database... |
ใส่ชื่อของ Database แล้วจึงกด Save |
จะได้ Database ใหม่ขึ้นมา ชื่อ gradeDB ตามที่ตั้งไว้ |
เตรียมไฟล์ csv ที่เก็บข้อมูล Grade ของสมาชิกกลุ่มไว้ โดยจะเก็บรวมไว้ในไฟล์ "grade.csv" และเก็บ ID, ชื่อ และอื่นๆ ของสมาชิก ในไฟล์ "student.csv" โดยมี format ดังนี้
student.csv |
grade.csv |
สร้าง Table ใน Database โดยมี column เป็น format เดียวกับไฟล์ csv ที่เตรียมไว้
![]() |
คลิ๊กขวาที่ Tables แล้วเลือก Create > Table... |
ในแทป General ได้ตั้งชื่อของ Table ไว้ว่า "grade" |
ในแทป Columns ได้สร้าง columns ขึ้นมาตรงตาม format แล้วจึงกด Save |
เสร็จสิ้นการสร้าง Table "grade" |
สร้างอีกตารางชื่อ "student" แล้วสร้าง columns ตาม format กด Save |
เสร็จสิ้นการสร้าง Table "student" |
เนี่องจากเพิ่งสร้าง Tables ขึ้นมาใหม่ Tables จึงยังว่างเปล่า โดยสามารถดูได้จากการ Query
คลิ๊กขวาที่ Table ที่เราสร้างขึ้นมาตัวใดก็ได้ แล้วเลือก Query Tool... |
Query ด้วยภาษา SQL เพื่อเรียกข้อมูลทั้งหมดออกมา > จะเห็นว่าไม่มีข้อมูลเลย |
ทำการ import ไฟล์ csv มาทับลงบน Tables ที่สร้างขึ้นมา
คลิ๊กขวาที่ table "grade" แล้วเลือก Import/Export... |
ตั้งให้เป็น import, เลือกไฟล์ "grade.csv" และตั้ง Header เป็น yes แล้วจึงกด OK |
ทำเช่นเดียวกันกับ Table "student" โดยจะเลือกไฟล์ "student.csv" แล้วจึงกด OK |
เมื่อ Query ข้อมูลจาก grade ดูแล้วจะเห็นว่า ข้อมูลได้ถูก import เข้ามาแล้ว |
เมื่อ Query ข้อมูลจาก student เห็นว่าข้อมูลก็ถูก import เข้ามาแล้วเช่นกัน |
ทดสอบการ JOIN ของทั้งสอง Tables โดยใช้ "id" เป็นตัวเชื่อม
![]() |
จากลูกศรสีเขียวจะเห็นว่า เมื่อมี id เดียวกัน ข้อมูลจาก Table "student" ก็มาต่อกับข้อมูลของ Table "grade" ให้ |
ลองใช้ SQL ในการ Query ข้อมูลที่ต้องการจาก Tables ทั้งสองที่นำมา JOIN กัน
related info/link/reference
download PostgreSQL : https://www.postgresql.org/download/
วันอังคารที่ 30 มกราคม พ.ศ. 2561
Follow SQL Tutorial ( w3schools )
what I have done / learned
SQL คือ ภาษาพื้นฐานที่ใช้สำหรับ เก็บ, จัดการ, เรียก ข้อมูล ใน database
SQL ย่อมาจาก Structured Query Language
SQL เป็นมาตรฐานของ ANSI (American National Standards Institute)
RDBMS (Relational Database Management System) เป็นรากฐานของ SQL รวมถึง database สมัยใหม่ทั้งหลายด้วย โดยข้อมูลของ RDBMS ที่เก็บอยู่ใน DB objects นั้นเรียกว่า tables
SQL SELECT Statement : ใช้ในการเลือกข้อมูลจาก database (ใช้ columns เป็นตัวเลือก)
SQL SELECT DISTINCT Statement : ใช้เรียกค่าที่ต่างกันเท่านั้น (เหมือน SELECT แต่จะไม่มีข้อมูลซ้ำ)
SQL WHERE Clause : ใช้เป็นตัวกรองข้อมูล เพื่อเรียกข้อมูลที่ตรงตามเงื่อนไข
SQL AND, OR and NOT Operators : สามารถใช้เป็น Operators ของ WHERE Clause ได้ เมื่อต้องการมากกว่า 1 เงื่อนไข
SQL ORDER BY Keyword : ใช้เพื่อเรียง(sort) ผลลัพธ์ ได้ทั้งจากน้อยไปมาก (ASC) และมากไปน้อย (DESC)
SQL INSERT INTO Statement : ใช้ในการเพิ่มข้อมูลลงใน table
SQL NULL Values : คือ field ที่ไม่มีค่า หรือเป็นช่องว่าง
related info/link/reference
SQL Tutorial : https://www.w3schools.com/sql/
SQL คือ ภาษาพื้นฐานที่ใช้สำหรับ เก็บ, จัดการ, เรียก ข้อมูล ใน database
SQL ย่อมาจาก Structured Query Language
SQL เป็นมาตรฐานของ ANSI (American National Standards Institute)
RDBMS (Relational Database Management System) เป็นรากฐานของ SQL รวมถึง database สมัยใหม่ทั้งหลายด้วย โดยข้อมูลของ RDBMS ที่เก็บอยู่ใน DB objects นั้นเรียกว่า tables
SQL SELECT Statement : ใช้ในการเลือกข้อมูลจาก database (ใช้ columns เป็นตัวเลือก)
เลือกข้อมูล 2 columns คือ CustomerName และ City จากตาราง Customers |
SQL SELECT DISTINCT Statement : ใช้เรียกค่าที่ต่างกันเท่านั้น (เหมือน SELECT แต่จะไม่มีข้อมูลซ้ำ)
จากรูป เนื่องจากใช้คำสั่ง SELECT ผลลัพธ์ที่ได้จึงมีผลลัพธ์ที่ซ้ำกันอยู่ (Mexico, Germany มีข้อมูลที่ซ้ำ) |
จากรูป เมื่อเปลี่ยนเป็นคำสั่ง SELECT DISTINCT ผลลัพธ์ที่ซ้ำก็ถูกแสดงเพียงตัวเดียว (Mexico, Germany เหลือตัวเดียว) |
SQL WHERE Clause : ใช้เป็นตัวกรองข้อมูล เพื่อเรียกข้อมูลที่ตรงตามเงื่อนไข
เลือกข้อมูลมาทั้งหมด แต่ตั้งเงื่อนไขให้เรียกแต่ข้อมูลที่ CustomerID = 1 เท่านั้น จึงเหลือเพียงข้อมูลเดียว |
SQL AND, OR and NOT Operators : สามารถใช้เป็น Operators ของ WHERE Clause ได้ เมื่อต้องการมากกว่า 1 เงื่อนไข
ใช้ Operators AND และ OR เพิ่มเงื่อนไข ในคำสั่ง WHERE |
SQL ORDER BY Keyword : ใช้เพื่อเรียง(sort) ผลลัพธ์ ได้ทั้งจากน้อยไปมาก (ASC) และมากไปน้อย (DESC)
เรียงลำดับตาม Country แบบ Ascending และ CustomerName แบบ Descending |
SQL INSERT INTO Statement : ใช้ในการเพิ่มข้อมูลลงใน table
เพิ่มข้อมูล 1 ชุด ในตาราง Customers |
SQL NULL Values : คือ field ที่ไม่มีค่า หรือเป็นช่องว่าง
related info/link/reference
SQL Tutorial : https://www.w3schools.com/sql/
วันจันทร์ที่ 29 มกราคม พ.ศ. 2561
Try a DBMS (MySQL)
what I have done / learned
- install MySQL
- load sample data into MySQL
- Querying data
related info/link/reference
install : http://www.mysqltutorial.org/install-mysql/
tutorial : http://www.mysqltutorial.org/basic-mysql-tutorial.aspx
model : http://www.mysqltutorial.org/mysql-sample-database.aspx
- install MySQL
คลิ๊ก + เพื่อเพิ่ม connection |
ตั้งชื่อ connection ว่า "local" (หรืออาจ setting เพิ่มเติมได้) แล้วกด OK |
จะได้ connection ใหม่(ทางขวา) |
หลังจากเข้าใน local ที่สร้างขึ้นมาใหม่ จะขึ้นหน้าต่างนี้ |
กด file > Open SQL Script และเลือกไฟล์ mysqlsampledatabase ที่โหลดมา |
หลังจากนั้นกด refresh ที่ schemas จะได้ database ใหม่คือ "classicmodels" |
- Querying data
ใช้คำสั่ง SELECT เลือกข้อมูลจากตาราง employees มา 3 columns |
ในการใช้คำสั่ง SELECT เลือกข้อมูลออกมาอาจจะได้ข้อมูลที่ซ้ำกันได้ |
แต่หากเปลี่ยนมาใช้คำสั่ง SELECT DISTINCT จะทำให้ข้อมูลที่ซ้ำกันจะถูกนำออกไป |
related info/link/reference
install : http://www.mysqltutorial.org/install-mysql/
tutorial : http://www.mysqltutorial.org/basic-mysql-tutorial.aspx
model : http://www.mysqltutorial.org/mysql-sample-database.aspx
วันอาทิตย์ที่ 28 มกราคม พ.ศ. 2561
Calculate GPA (csv + python)
what I have done / learned
ได้ export จาก spreadsheet เป็นไฟล์ csv
และได้เขียนโปรแกรมในการคำนวณ GPA ด้วยภาษา python ดังนี้
ทำให้ได้ผลการรัน ที่จะแสดง [คะแนน,หน่วยกิต,เกรดเฉลี่ย] ของแต่ละเทอม รวมถึงเกรดเฉลี่ยสะสม
any problem / solution
มีปัญหาจากการที่โปรแกรมไม่สามารถอ่านภาษาไทยได้ เมื่อมีการเรียกหาข้อมูลที่เป็นภาษาไทยจะทำให้ขึ้นแจ้ง error
จึงเพิ่มเติมในส่วนของการเปิดไฟล์ csv ให้ใช้ encoding = "utf-8"
related info/link/reference
method ใน library csv : https://docs.python.org/3/library/csv.html
ได้ export จาก spreadsheet เป็นไฟล์ csv
และได้เขียนโปรแกรมในการคำนวณ GPA ด้วยภาษา python ดังนี้
ทำให้ได้ผลการรัน ที่จะแสดง [คะแนน,หน่วยกิต,เกรดเฉลี่ย] ของแต่ละเทอม รวมถึงเกรดเฉลี่ยสะสม
any problem / solution
มีปัญหาจากการที่โปรแกรมไม่สามารถอ่านภาษาไทยได้ เมื่อมีการเรียกหาข้อมูลที่เป็นภาษาไทยจะทำให้ขึ้นแจ้ง error
จึงเพิ่มเติมในส่วนของการเปิดไฟล์ csv ให้ใช้ encoding = "utf-8"
related info/link/reference
method ใน library csv : https://docs.python.org/3/library/csv.html
วันอังคารที่ 16 มกราคม พ.ศ. 2561
Calculate GPA
what I have done / learned
เรียนรู้การใช้ google spreadsheet เพื่อสร้าง file ข้อมูลขึ้นมา รวมถึงการใช้ฟังก์ชันคำนวณ เช่น
จากตัวอย่างจะเป็นการคำนวณง่ายๆ เพื่อหาค่า GPA (ในช่อง I5) โดยการนำ [คะแนนสะสม] มาหารกับ [หน่วยกิตสะสม] หรือก็คือนำ I4/I3
any problem / solution
- เนื่องจากคิดเกรด GPA จึงจำเป็นต้องคำนวณ [หน่วยกิตสะสม] และ [คะแนนสะสม] ซึ่งหากจะคำนวณ + - * / ไปทีละช่องก็จะดูยุ่งยาก และไม่ยืดหยุ่นจึงพบวิธีการคำนวน โดยใช้ SUM และ SUMPRODUCT จึงทำให้การคำนวณง่ายขึ้น และยืดหยุ่นขึ้น
SUM
SUMPRODUCT
related info/link/reference
ลิงก์กูเกิลชีต : grades/transcript_Chanon
ฟังก์ชันการคำนวณ : https://support.google.com/drive/table/25273?hl=th
สมัครสมาชิก:
บทความ (Atom)
Informal Design Guidelines for Relation Schemas : Guideline 4
ออกแบบ relation schemas ให้ join ด้วยค่า attributes ที่เหมือนกัน โดยที่เป็น attributes ที่เกี่ยวข้องกัน รับรองว่าไม่มี spurious tuples ถู...
-
what I have done / learned ได้ export จาก spreadsheet เป็นไฟล์ csv และได้เขียนโปรแกรมในการคำนวณ GPA ด้วยภาษา python ดังนี้ ...
-
ออกแบบ relation schemas ให้ join ด้วยค่า attributes ที่เหมือนกัน โดยที่เป็น attributes ที่เกี่ยวข้องกัน รับรองว่าไม่มี spurious tuples ถู...
-
what I have done / learned - install MySQL - load sample data into MySQL คลิ๊ก + เพื่อเพิ่ม connection ตั้งชื่อ con...