Tuesday, March 27, 2018

Guideline 4


  - ออกแบบ schemas ของความสัมพันธ์ของตารางทีสามารถ joined กันได้ ด้วยเงื่อนไข attributes  ต้องมีความเท่าเทียม (เพื่อให้แน่ใจว่าจะไม่มี tuple ที่ไม่ถูกต้อง

 - หลีกเลี่ยงความสัมพันธ์ที่มีการจับคู่ attributes ซึ่งไม่ใช่ foreign key และ primary key รวมอยู่ 


ที่มา: - http://comet.lehman.cuny.edu/jung/cmp420758/chapter15.pdf

Tuesday, February 27, 2018

INSERT Data To DBMS

           ผมได้รับมอบหมาย จากเพื่อให้ลองใช้ Database Management System (DBMS) คือ MySQL กับการทดสอบในครั้งนี้

Image result for mysql


           ผมได้ลองการ Query  โดยการ INSERT ข้อมูลจำนวนมาก ตอนแรกช้ามากเลยใช้ การ LOAD
คือ 
   LOAD DATA LOCAL INFILE 'loaction file' INTO TABLE table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ; 


            ลองกลับไปแก้โค้ด แก้ในส่วน commit โดยปกติโค้ดจะต้องเข้า function และสร้าง object connect mysql ที่เป็นแบบ local variable เพื่อติดต่อกับ DMBS เลยแก้ให้ สร้าง object connect mysql  เป็นแบบ global variable แทนเพราะจะทำการ commit ในตอนจบ ครั้งเดียว

รูป โค้ด INSERT แบบเก่า

รูป โค้ด INSERT แบบใหม่

100 row
1k row
10k row
Old insert
7.3 s
87.2 s
> 30 min
New insert
0.23 s
2.62 s
59.82 s
รูป ตารางเปรียบเทียบโค้ด

Problem/Solution

             การ INSERT ช้ามาก

Decision

แก้โค้ดโดยการสร้าง object connect mysql  เป็นแบบ global variable เพื่อ commit ตอนจบโปรแกรม ครั้งเดียว

Wednesday, February 14, 2018



Entity Relationship Diagram (ERD)

          ได้ลองศึกษาการออกแบบ Entity Relationship Diagram โดยดูจากตัวอย่าง
ในตัวอย่างจะอธิบายการใช้ สัญลักษณ์ ในการวาด และ ยกตัวอย่างความสัมพันธ์ของ
entity 

รูปภาพ สัญลักษณ์ ในการวาด Diagram

Problem/Solution

- ไม่รู้ว่าสัญลักษณ์ ERD มีอะไรบ้าง แก้ปัญหาโดยศึกษาจากเว็บต่างๆ

            - ไม่มีเครื่องมือวาด ERD   แก้ปัญหาโดยใช้ google slide หรือ www.draw.io

Decision

- ใช้ docs oracle ในการศึกษา ERD และได้ใช้ตัวอย่างมานำเสนอ

รูปภาพ ERD Purchase Order

            ในรูปภาพจะเห็น ความสัมพันธ์ ต่างๆ เช่น Customer มีความสัมพันธ์แบบ one to many กับ Purchase Order (ลูกค้า 1 คน สามารถสั่งใบสังซื้อสินค้าได้หลายครั้ง ทางกลับกับ 1 ใบสังซื้อสินค้า
สามารถมีลูกค้าได้เพียง 1 คนเท่านั้น จึงมีความสัมพันธ์แบบ one to many)

Related Info/link/reference





Tuesday, February 6, 2018

USE  DBMS MySQL

Image result for mysql

ทดลองใช้ DBMS MySQL ในการสร้าง database และ table ในการเก็บข้อมูล
และใช้ MySQL Workbench ในการ INSERT,SELECT,DELETE,UPDATE

Image result for mysql workbench

MySQL Workbench เป็นโปรแกรมคล้าย GUI สำหรับ จัดการ MySQL เพื่อให้
ง่ายต่อการจัดการข้อมูล



Problem/Solution

- ในการใช้ Python ติดต่อกับ MySQL ต้องทำการติดตั้งโมดูล แก้ปัญหาโดยต้อง
ดาวโหลดโดยใช้ pip ของ Python
- การใส่ code SQL ผ่าน Python จะไม่มีการ update ใน MySQL Workbench
แก้ปัญหาโดยใช้ คำสัง commit() ใน Python ด้วย

Decision

- ใช้ Python ในการ INSERT,SELECT,DELETE,UPDATE ข้อมูลลง MySQL
และใช้ MySQL Workbench ในการตรวจสอบความถูกต้อง

Related Info/link/reference

MySQL : https://www.mysql.com/

Monday, January 29, 2018


USE w3schools SQL Tuorials and Save GPA to DBMS



          ใช้ w3schools เป็น tutorial ในการใช้คำสัง SQL ในการดึงข้อมูลจาก
Database และให้แสดงผลลัพธ์




           SQL คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ
ซึ่งแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้
                  - Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
                  - Update query ใช้สำหรับแก้ไขข้อมูล
                  - Insert query ใช้สำหรับการเพิ่มข้อมูล
                  - Delete query ใช้สำหรับลบข้อมูลออกไป


            ลองใช้ คำสั่ง INNER JOIN ในการเชื่้อมตารางเพื่อแสดงผลที่ต้องการ  โดยทดลองใน w3schools


รูป แสดงความสัมพันธ์ในการใช้  INNER JOIN


รูป คำสั่ง SQL โดยทดลองใน w3schools และ report


Problem/Solution

         
          -  ดูข้อมูลใน database ลำบากเลยใช้ sqlitebrowser ในการดู database



Decision


          -   ใช้ w3schools ในการลองคำสั่ง SQL  



รูป ทดลองคำสั่ง SQL

                -   ใช้ Python ในการ insert ข้อมูลลง SQLite


รูป method insert ของ class


รูป การวนลูปเพิ่มข้อมูลลง database



รูป ข้อมูลใน ตารางชื่อ Main

Related Info/link/reference



           -  w3schools sql : https://www.w3schools.com/sql/
            -  sqlitebrowser  : http://sqlitebrowser.org/
            -  SQLite  : https://docs.python.org/2/library/sqlite3.html

            -  GitHub  : https://github.com/eunhye1999/Database-/tree/master/week3/mydb\


Tuesday, January 23, 2018


USE  Python calculate Grade from CSV file and DBMS

Image result for python
             

What did you done/learned

            
            *  ออกแบบโปรแกรม โดยใช้ภาษา Python ในการอ่านไฟล์ CSV และทำการคำนวณเกรด
                                               


            *  ได้รู้คําสั่งพื้นฐานของภาษา SQL โดยได้ใช้ SQLite เป็นเครื่องมือ


Problem/Solution


             *  คำตอบที่ได้มา ทศนิยมเกิน 2 ตำแหน่ง แก้ปัญหาโดยใช้ library math โดยใช้คำสั่ง


             *  โครงสร้างที่ได้จาก CSV นั้นอยากต่อการคำนวณเพราะไม่ได้แก้ไฟล์ให้เป็นระเบียบ
                  แก้ปัญหาโดยสร้าง Class ที่ทำข้อมูลให้เป็น array 3 มิติ คือ
                       -  ปี
                       -  เทอม
                       -  วิชา


Decision


               *  ใช้ Python 3 ในการพัฒนา และใช้  Sublime Text 3 ในการ เขียนโปรแกรม และ compile



Related Info/link/reference


              * Python : https://docs.python.org/2.7/contents.html
              * SQLite : https://www.sqlite.org/lang.html
              
              * GitHub : https://github.com/eunhye1999/Database-





Monday, January 15, 2018



USE  Google Sheets For Calculate Grade

Related image


         ในบทความนี้ ได้ใช้ Google Sheets ซึงคล้ายกับ Microsoft Excel สำหรับการคำนวณผลการเรียนออกมาในแต่ละเทอม

          
Image result for excel
Microsoft Excel

Google Sheets

       ใน Google Sheets ใส่ ปีการศึกษา,เทอม,รหัสวิชา,ชื่อวิชา,หน่วยกิจ,เกรดเป็นภาษาอังกฤษ และ เราได้ใส่สูตรแปลงจากเกรดภาษาอังกฤษ เป็น ตัวเลขมาโดยใช้ 



           คำนวณเกรดประจำภาคโดย ((หน่วยกิจตัวที่1*เกรดตัวที่1)+....+(หน่วยกิจตัวที่N*เกรดตัวที่N))/(หน่วยกิจรวม)



           เมื่อทำงานไป Google Sheet จะทำการ Auto Save ให้จึงทำให้ไม่ต้องกลัวงานไม่ได้เซฟ

ปัญหาที่พบ


         การใช้ Google Sheets ต้องใช้สูตรในการคำนวณ และ เวลาคำนวณเกรดต้องเป็นตัวเลขเท่านั้น แต่เกรดที่ได้มาจาก เว็บหลัก KMUTNB จะเป็นเกรดภาษาอังกฤษ 

การแก้ปัญหา

         ต้องไปศึกษาการใช้ Google Sheets เบื้องต้นก่อน อ้างอิงจาก Docs editors Help       




AUTO SEND TO EMAIL ** จะใช้ได้เมื่อเป็น USER ที่สมัครสมาชิกเท่านั้น **          ได้ใช้ CronJob ในการจับเวลา ทุกๆ 5 นาทีจะทำการเช็ค ...