วันอาทิตย์ที่ 1 เมษายน พ.ศ. 2561

Work 9 - Example of Normalization

ตัวอย่างจาก https://www.sqa.org.uk/e-learning/MDBS01CD/page_26.htm

Normalization

เป็นวิธีการในการกำหนด Attribute ให้กับแต่ละ Entity เพื่อให้ได้โครงสร้างของตารางที่ดี สามารถควบคุมความซ้ำซ้อนของข้อมูลหลีกเลี่ยงความผิดปกติของข้อมูล โดยทั่วไปผลลัพธ์ของการ Normalization จะได้ตารางที่มีโครงสร้างซับซ้อนน้อยลง แต่จำนวนของตารางจะมากขึ้น


การทำ Normalization จะประกอบด้วย Normal Form แบบต่าง ๆ ที่มีเงื่อนไขของการทำให้อยู่ในรูปของ Normal Form ที่แตกต่างกันไป ขึ้นอยู่กับผู้ออกแบบฐานข้อมูลว่า ต้องการลดความซ้ำซ้อนในฐานข้อมูลให้อยู่ในระดับใด ซึ่งประกอบด้วยนอร์มัลฟอร์มแบบต่าง ๆ ดังต่อไปนี้
  1. First Normal Form : 1NF
  2. Second Normal Form : 2NF
  3. Third Normal Form : 3NF
โดยจะแสดงวิธีการดังต่อไปนี้
รูปที่1 : ตารางที่ยังไม่ผ่านการ Normalization

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

work 8 - Informal Design Guidelines for Relation Schemas

Informal Design Guidelines for Relation Schemas
Measures of quality
- การตรวจสอบว่าแอตทริบิวต์ความหมายมีความชัดเจน
- ลดข้อมูลซ้ำซ้อนใน tuple
- ลดค่า NULL ใน tuple

- ไม่อนุญาตให้มีการสร้าง tuple ปลอม

Guideline 1
- ออกแบบ ความสัมพันธ์ ให้ง่ายต่อการอธิบายความหมาย
- ไม่รวม Attribute จากหลาย Entity และRelation ไว้ในอันเดียวกัน

Guideline 2
- ออกแบบ ความสัมพันธ์ ที่ไม่ให้มีความผิดปกติอยู่ในปัจจุบัน
- หากมีการผิดปกติเกิดขึ้น :
     - Note เอาไว้ให้ชัดเจน

Guideline 3
- หลีกเลี่ยงการใส่ค่า Attribute ใน Relation ที่มักจะมีค่า NULL บ่อยๆ
- หากหลีกเลี่ยงไม่ได้ :
     - ตรวจสอบให้แน่ใจว่าจะใช้เฉพาะกรณีพิเศษเท่านั้น ไม่ใช่ tuple หลัก

Guideline 4
- ออกแบบ ความสัมพันธ์ ที่สามารถร่วม(Join)กันได้โดยใช้เงื่อนไขต่างๆที่เท่าๆกันกับ Attribute ที่เกี่ยวข้องอย่างเหมาะสม โดยต้องรับประกันว่าจะไม่มีการสร้าง tuple ปลอมออกมา
- หลีกเลี่ยงการจับคู่ Attribute ที่มีการรวมกันที่ไม่ใช่ foreign key และ primary key เพราะหากนำมา Join กันอาจทำให้เกิด tuple ปลอมได้

วันอังคารที่ 6 กุมภาพันธ์ พ.ศ. 2561

ทดลอง PortgreSQL

DBMS - PostgreSQL

Installation
ดาวน์โหลดได้ที่เว็บไซต์ - https://www.postgresql.org/download/ จากนั้นจะได้ไฟล์ .exe มาเพื่อทำการติดตั้ง 

เมื่อติดตั้งเรียบร้อยโปรแกรม DBMS ที่ใช้สำหรับเชื่อมต่อ Database จะชื่อว่า pgAdmin4 
ตัวอย่างโปรแกรม pgAdmin4

สามารถสร้าง Database หรือสร้าง Table ใน Database ได้ในโปรแกรมนี้เลย หรือจะสร้างโดยใช้วิธีการเขียนโค้ดจาก python ก็ได้เช่นกัน โดย library ที่ใช้เชื่อมต่อกับ DBMS คือ psycopg2 
PostgreSQL + Python = Psycopg2

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

เพิ่ม Transcript Data ลงใน Database

     หลังจากที่ได้ import ไฟล์ .csv และนำมาคำนวณเกรดแล้ว จากนั้นจึงได้ทำการเพิ่มข้อมูลที่ได้จาก .csv มาใส่ไว้ในฐานข้อมูล และนำข้อมูลที่อยู่ในฐานข้อมูลนั้น มาคำนวณ เพิ่มที่สามารถคำนวณได้ไวมากขึ้น เพราะไม่ต้องเปิดไฟล์ .csv มาอ่านเหมือนทุกครั้ง

สามารถดูโค้ดได้ที่นี้ > https://github.com/peepraeza/Database2-2560

เริ่มจากการ Export ไฟล์ .csv จาก google spreadsheet ที่ได้ทำไว้
google spreadsheet

เมื่อ Export ออกมาแล้วจะได้ลักษณะดังรูป
grade.csv

หลังจากนั้นจะทำการ import ไฟล์ .csv เข้ามาและทำการนำข้อมูลจาก csv เข้าไปยังฐานข้อมูล โดยใช้ method create_table เพื่อสร้างตารางฐานข้อมูล 

SQL Tutorial

Coming soon

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

ทดลองใช้ DBMS


DBMS (Database Management System) คือ ระบบการจัดการฐานข้อมูล หรือซอฟต์แวร์ที่ดูแลจัดการเกี่ยวกับฐานข้อมูล โดยอำนวยความสะดวกให้แก่ผู้ใช้ทั้งในด้านการสร้าง การปรับปรุงแก้ไข การเข้าถึงข้อมูล และการจัดการเกี่ยวกับระบบแฟ้มข้อมูลทางกายภาพ

ที่มา : https://sites.google.com/site/sarit9895/dbms

หน้าที่ของ DBMS
  1. ทำหน้าที่แปลงคำสั่งที่ใช้จัดการกับข้อมูลภายในฐานข้อมูลให้อยู่ในรูปแบบที่ข้อมูลเข้าใจ
  2. ทำหน้าที่ในการนำคำสั่งต่างๆ ซึ่งได้รับการแปลแล้วไปสั่งให้ฐานข้อมูลทำงาน เช่น การเรียกใช้ข้อมูล (Retrieve) การจัดเก็บข้อมูล (Update) การลบข้อมูล (Delete) หรือ การเพิ่มข้อมูลเป็นต้น (Add) ฯลฯ
  3. ทำหน้าที่ป้องกันความเสียหายที่จะเกิดขึ้นกับข้อมูลภายในฐานข้อมูล โดยจะคอยตรวจสอบว่าคำสั่งใดที่สามารถทำงานได้และคำสั่งใดที่ไม่สามารถทำได้
  4. ทำหน้าที่รักษาความสัมพันธ์ของข้อมูลภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ
  5. ทำหน้าที่เก็บรายละเอียดต่าง ๆ ที่เกี่ยวข้องกับข้อมูลภายในฐานข้อมูลไว้ใน data dictionary  ซึ่งรายละเอียดเหล่านี้มักจะถูกเรียกว่า "ข้อมูลของข้อมูล" (Meta Data)
  6. ทำหน้าที่ควบคุมให้ฐานข้อมูลทำงานได้อย่างถูกต้องและมีประสิทธิภาพ
ตัวอย่างฐานข้อมูลที่เป็น DBMS
  • MySQL
  • Oracle
  • Microsoft SQL Server