วันเสาร์ที่ 5 พฤษภาคม พ.ศ. 2561

Normal Form


Normalization

 คือ การทำให้ข้อมูลในฐานข้อมูลไม่มีความ ผิดปกติในการ insert, update, delete

Example of 1NF , 2NF , 3NF


First Normal Form(1NF)

column แต่ละ column ควรเก็บค่า แค่ค่าเดียว(single value) ไม่ควรไม่ค่าหลายๆค่า(multi value)


จากภาพด้านบนจะเห็นได้ว่า subject มีการเก็บค่าไว้มากกว่า 1 ค่า สามารถแก้ไขได้โดยการแยก column
roll_no ออกจากกัน จะได้ผลดังนี้






Second Normal Form(2NF)


การที่จะเป็น second normal form นั้นมีอยู่ 2 เงื่อนไขดังนี้
1. ต้องเป็น first normal form ก่อน
2. ตัว Attribute ที่เป็น  non- prime ค่าของมันจะต้องไม่ ขึ้นอยู่กับ candidate key ในตาราง



จากภาพตารางด้านบนนั้นจะกำหนดให้คอลัมน์ teacher_id กับ subject นั้นเป็น Candidate Key และ teacher_age เป็น non-prime attribute และจะเห็นได้ว่าค่าของ teacher_age นั้นจะขึ้นอยู่กับ teacher_id เพราะคุณครูแต่ละคนจะมีอายุของตัวเอง แก้ไขได้ดดยการแยกเป็นสองตาราง ดังนี้



third Normal Form(3NF)

การที่จะเป็น third normal form นั้นมีอยู่ 2 เงื่อนไขดังนี้
1. ต้องเป็น second normal form ก่อน
2. ต้องไม่มี Transitive Dependency



สามารถแก้ไข Transitive Dependency ได้โดย ทำการแยกเป็นสองตารางดังนี้




Guideline 4


Guideline 4
    ควรออกแบบ Relation schema ที่สามารถ join ด้วยเงื่อนที่มีความเท่าเทียมกัน โดย attributes นั้นจะมีความเกี่ยวข้องกันเป็นคู่ๆ เช่น primary key กับ foreign key 
    หลีกเลี่ยงความสัมพันธ์ที่มี attributes ที่ไม่ได้เกิดจากการผสมกัน เพราะว่าการ join กันจะทำให้เกิด attribute ที่ผิดได้


ตัวอย่างจาก : http://www.cs.montana.edu/~halla/csci440/n15/n15.html
    เป็นการนำ 2 Table มา JOIN กันด้วย join condition ที่มี Attribute ไม่เหมาะสม(ไม่ใช่ primary key หรือ foreign key) ทำให้มีบาง tuple ที่เป็นข้อมูลที่ไม่ถูกต้อง



นำ EMP_LOCS กับ EMP_PROJ1 มา JOIN ด้วย Plocation

ผลที่ได้นั้น มี Tuple ที่มีข้อมูลปลอม ออกมา





Week 4

 Insert transcript data of your group members into DBMS


PostgreSQL



              ข้อมูลนักศึกษา ที่เรียนวิชา computer organization


                    รายชื่อของนักศึกษาทั้งหมดใน ฐานข้อมูล




โลกาภิวัฒน์

        การที่ประชาคมโลก สามารถรับรู้สัมพันธ์ หรือ รับผมกระทบจากสิ่งที่เกิดขึ้นได้อย่างรวดเร็ว
กว้างขวาง ซึ่งเนื่องมาจากการพัฒนาระบบสาระสนเทศ


cashless Society

วันอังคารที่ 30 มกราคม พ.ศ. 2561

SQL Tutorial


ได้ทำการ ศึกษา เรื่อง SQL (structured query language) จาก tutorial ของเว็บ


โดยหัวข้อที่ทำการศึกษา และทดลองมีดังนี้

 - SQL Select                             - SQL Delete                             - SQL Join          
 - SQL Select Distinct                - SQL Select Top                       - SQL Union 
 - SQL Where                            - SQL Min ans Max                    - SQL  Group By
 - SQL AND,OR,Not                  - SQL Count,Avg,Sum            

 - SQL Order BY                       - SQL Like                                
 - SQL Insert Into                      - SQL In                                     
 - SQL Null Values                    - SQL Between                          
 - SQL Update                           - SQL Aliases      

สิ่งที่ได้เรียนรู้   

 - ได้เรียนรู้คำสั่งใหม่ๆ ของการสร้าง database
 - ได้ทราบถึงวิธีการใช้คำสั่งนั้นๆ

ปัญหาที่พบ

- ไม่รู้ถึงวิธี ที่จะทำให้ python เชื่อมกับ DBMS (ในที่นี้ใช้ MariaDB) ยังไง 
- เกิดปัญหาตอนลง ตัว connector 
 
                    

วิธีแก้ปัญหา

 - ดาวโหลดตัว plugin ของ MySQL driver(สามารถใช้ได้กับ MariaDB เช่นกัน) มาเพื่อนทำให้ python      สามารถ ใช้งานร่วมกับ MariaDBได้   

 - ลองเปลี่ยนไปใช้ python 3.4 แทน 2.7 และ ทำกาาร restart เครื่อง  1 ครั้ง

แหล่งอ้างอิง









วันอาทิตย์ที่ 28 มกราคม พ.ศ. 2561

Try DBMS


สำหรับ DBMS( database management system) ที่เลือกใช้ คือ MariaDB
ได้ทำการติดตั้ง เรียบร้อยแล้ว




สามารถ Download ได้ที่ https://mariadb.org/
หลังจากนั้นได้ทำการ ทดลองใช้งานตามหัวข้อใน

https://mariadb.com/kb/en/library/a-mariadb-primer/

สิ่งที่ได้เรียนรู้ 
ได้เรียนรู้การสร้างฐานข้อมูล การเรียกดูข้อมูล ทั้ง แสดงทั้งหมด หรือแสดงเฉพาะที่ต้องการ



วันเสาร์ที่ 13 มกราคม พ.ศ. 2561

Calculate my GPA


สำหรับงานที่ได้รับมอบหมาย
         ใน week 1 ในวิชา Database system คือ ทำการสร้างตารางที่ใช้สำหรับแสดง เกรด ในรายวิชาต่างๆ รวมถึงทำการคำนวน เกรดในเทอมนั้นๆ ด้วย โปรแกรม spreadsheet

LINK: Calculate my GPA


ตัวอย่าง ตารางแสดงเกรดในรายวิชาต่างๆ



ปัญหาที่พบ

                 - ในตอนแรกกระผมเข้าใจผิด จึงไม่ได้ใช้ฟังก์ชั่นใน spreadsheet ในการคำนวนค่าต่างๆ
   
            - พบปัญหาเรื่องจุดทศนิยม ที่เยอะเกินไป



จากการค้นหา เรื่องการลดจุดทศนิยมใน โปรแกรม spreadsheet นั้น พบว่า มี tool ที่่ช่วยเลื่อนจุด ทศนิยมอยู่ จึงทำให่สามารถ เพิ่มหรือลด จำนวนจุดทศนิยมได้



 แหล่งอ้างอิง

   -   การปัดเศษ ใน Excle
 
   -   https://www.youtube.com/watch?v=UE-id_KmigA

  -    https://www.youtube.com/watch?v=nE5SmUfonfc