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

วันจันทร์ที่ 28 มีนาคม พ.ศ. 2559

Homework week 11 : Normal Form

What you have done


Find example of Normal form : 1NF , 2NF and 3NF from textbook.
In the example is about DreamHome lease, Simplification lease example

DreamHome Lease

An unnormalized table from DreamHome Lease.

DreamHome Lease in 1NF

Definition of First Normal Form.
First Normal Form ClientRental relational.

DreamHome Lease in 2NF

Definition of Second Normal Form.

Functional dependencies of the ClientRental relational.

Second Normal Form relations derived from the ClientRental Relational.

DreamHome Lease in 3NF

Definition of Second Normal Form.

Third Normal Form relations derived from the PropertyOwner Relational.

Summary of 3NF relations derived from CluentRental Relation.

Reference

Database Systems - 4th Edition
THOMAS M. CONNOLLY • CAROLYN E. BEGG

วันเสาร์ที่ 6 กุมภาพันธ์ พ.ศ. 2559

Homework week 4 : Join and Division Operation

JOIN Operation


การ JOIN คือ การรวมกันของตารางโดยเอา attribute ของ 2 ตารางมารวมกัน ซึ่งเราทำได้โดยการกำหนดเงื่อนไขต่างๆใส่ลงไป โดยการ JOIN ก็แบ่งออกเป็น 4 ประเภทดังนี้
1. INNER JOIN คือ การเลือกข้อมูลโดยที่มี key หรือ attribute ที่มีข้อมูลตรงกัน
2. OUTER JOIN คือ การนำข้อมูลในตารางทั้งหมดมาแสดง
3. LEFT JOIN คือ การ JOIN กับตารางที่อยู่ทางซ้ายมือ
4. RIGHT JOIN คือ การ JOIN กับตารางที่อยู่ทางขวามือ

ตัวอย่างของ INNER JOIN 



ตัวอย่างของ OUTER JOIN


DIVIION Operation


การ division หรือ การหาร คือ การหา tuple ที่เป็นสมาชิกของ tuple ใดๆก็ตามในอีกความสัมพันธ์หนึ่ง ไม่ค่อยถูกใช้นักใน Relation Algebra จึงไม่อยู่ใน Complete Set แต่มีประโยชน์ในการค้นหาบางประเภท มีรูปแบบคือ 


Example : การค้นหาลูกจ้างที่ทำงานอยู่สองแผนกคือ CS และ Fin จากความสัมพันธ์ DEPTNAME ผลปรากฏว่า สิทธิ คือคนทำงานอยู่ทั้งสองแผนก

 

Reference Link :  

Join ประเภทต่างๆ 
Relational Data model
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459
การทำ JOIN ใน SQL คือการนำตาราง 2 ตารางมารวมกัน โดยเงื่อนไขการรวมจะมีดังนี้ ..... อ่านต่อได้ที่: https://www.gotoknow.org/posts/97459

Homework week 4 : Example of Relational Algebra

Example of relational algebra

 

 - Projection 

คือการเลือกดูเพียงบาง attribute ของความสัมพันธ์หรือตารางหนึ่งๆที่เราสนใจ โดยมีรูปแบบคือ


Example :


จากตัวอย่างจะพบว่าตารางรือความสัมพันธ์นั้นมีทั้งหมด 3 คอลัมน์ ซึ่งต้องการเลือกดูเฉพาะคอลัมน์ nr ในตัวอย่างแรก และ nr และ salary ในตัวอย่างที่ 2 ซึ่งใน SQL เราจะใช้คำสั่ง SELECT ตามด้วยชื่อคอลัมน์


- Selction

คือการเลือกดูเพียงบาง tuple ของความสัมพันธ์หรือตารางหนึ่งๆที่เราสนใจ โดยมีรูปแบบคือ

Example :  



จากตัวอย่างพบว่าจากตารางหรือความสัมพันธ์ เราต้องการที่จะดูในตัวอย่างแรกคือเลือกดูแถว หรือ tuple ที่มีเงินเดือนนต่ำกว่า 200 และในตัวอย่างที่ 2 คือดู tuple ที่มีเงินเดือนต่ำกว่า 200 และ nr น้อยกว่าหรือเท่ากับ 7 โดยในภาษา SQL เราจะใช้คำสั่ง WHERE ในการกำหนดเงื่อนไขต่างๆของ tuple ที่เราต้องการจะดูนั่นเอง

- Cartesian Product  


Cartesian Product คือการ cross กันหรือการรวมกันของ Atrribute ของสองความสัมพันธ์ หรือ 2 ตารางนั่นเอง โดยมีรูปแบบคือ 

Example : 


จากตัวอย่างข้างต้นพบว่า นำตาราง E มาครอสกับตาราง D ซึ่งการครอสกันจะนำตาราง E มาครอสกับตาราง D ทุกๆ tuples นั่นเอง โดยการครอส Cartesian product นั้น ทำได้โดยการใช้คำสั่ง SELECT เพื่อเลือกสองคอลัมน์ที่เราต้องการทราบ

- Join

 

การ Join คือการรวมข้อมูลจาก 2 ความสัมพันธ์เข้าด้วยกัน ซึ่งจะมีการกำหนดเงื่อนไขเข้ามาในการทำ Cartesian Product นั่นเอง โดยมีรูปแบบคือ 

Example :




จากตัวอย่างเราจะพบว่า จะเกิดการ JOIN กันเฉพาะ คอลัมน์ที่มีข้อมูลในคอลัมน์ dept มีค่าเท่ากับ dnr เท่านั้น
 

Related link

Relational Algebra Example
Chapter 3 and Chapter6 Lecture

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

Homework week 3 : The DBMS constraints

จาก week ที่แล้วที่เราได้ทำการศึกษา DBMS Program และการใช้งานอย่างเบื้องต้นกันไปแล้ว ซึ่งข้าพเจ้าได้เลือกใช้ MySQL ในการศึกษา ในตอนนี้ข้าพเจ้าจะกล่าวถึงข้อจำกัด หรือ Constriants ของ MySQL ซึ่งจะสนับสนุน Constraints ต่างๆดังนี้
  • PRIMARY KEY and UNIQUE Index Constraints
  • FOREIGN KEY Constraints
  • Constraints on Invalid Data
  • ENUM and SET Constraints

ตัวอย่างการทดลองระบุ Constraints ต่างๆ

 

1. PRIMARY KEY


ทดลองด้วยการสร้างตาราง persons และทำการสร้าง Column หรือ Atrribute ต่างๆขึ้นมา และกำหนด Primary key เป็นคอลัมน์ ID



เมื่อเราทำการสร้างตาราง persons แล้ว เราจะใช้คำสั่ง DESCRIBE เพื่อดูรายละเอียดต่างๆของตารางที่เราสร้างนั่นเอง และพบว่า KEY ที่ปรากฎใน Atrribute ID ถูกระบุเป็น PRI หรือ PRIMARY KEY เรียบร้อยแล้วนั่นเอง 

2. FOREIGN KEY


เนื่องจาก week ที่แล้วเราได้ลองทำการสร้างตาราง myTable ขึ้นมา ซึ่งมีคอลัมน์ ID ชื่อตรงกับ ID ใน persons ซึ่ง 2 ตารางนี้อยู่ใน Database เดียวกัน ทำให้ 2 column นี้สามารถ reference ข้อมูลหากันได้


โดยเราสามารถตรวจสอบว่ามี Foriegn Key หรือไม่ สามารถใช้คำสั่ง ‘SHOW ENGINES’ ใน MySQL เพื่อตรวจสอบชนิดของ table ที่สร้างได้ ซึ่งใช้ FOREIGN KEY ได้นั้น table ที่มีการอ้างอิงกันทั้งหมด ต้องเป็นชนิด InnoDB


ซึ่งเราพบว่า ตรง Foreign Key ปรากฏสถานะ Yes แปลว่ามี Foreign Key ปรากฎ นั่นเอง

Reference Link :  

วันจันทร์ที่ 25 มกราคม พ.ศ. 2559

Homework week 2 : Try the DBMS Program

 Try the SQL syntax on DBMS Program

 

โปรแกรม DBMS หรือโปรแกรมจัดการฐานข้อมูลที่ข้าพเจ้าเลือกใช้ คือ MySQL 

https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/1280px-MySQL.svg.png


          MySQL มีความสามารถให้ผู้ใช้งานเข้าดึงข้อมูลได้หลายๆคนในเวลาเดียวกันได้และมีการ เข้าถึงข้อมูลที่รวดเร็ว มีการกำหนดการเข้าใช้งานของผู้ใช้ในแบบต่างๆอย่างเหมาะสม ปลอดภัย MySQL ถูกใช้งานเมื่อปี 1996 แต่โปรแกรมนี้พัฒนาตั้งแต่ปี 1979 และชนะรางวัล Linux Journal Reader ‘s Choice Award 3ปีซ้อน
          ปัจจุบัน MySQL ได้ใช้งานแพร่หลายโดยเป็นโปรแกรม Open Source License แต่ก็มีแบบ Commercial License ให้ใช้ด้วย โดยคุณสมบัติจะแตกต่างกันออกไป

1. เรียกดูฐานข้อมูลต่างๆที่มีอยู่ในโปรแกรม

 

ใช้ดำสั่ง : SHOW databases;


 2. ลอง add database table ใหม่


ใช้คำสั่ง : CREATE DATABASE myTable;

เป็นการใช้คำสั่งนี้เพื่อสร้างตรางฐานข้อมูลของเรา


3. Create table 

 

ใช้คำสั่ง : CREATE TABLE TabaleName(ColName type (size)); 


เมื่อเราทำการสร้างตารางเสร็จแล้ว ใช้คำสั่ง SHOW TABLES; และตามด้วย DESCRIBE เพื่อดูรายละเอียดของตารางที่เราสร้างขึ้นมา

 

4. ทดลองแทรกข้อมูลลงในตาราง

 

ใช้คำสั่ง : INSERT INTO


เมื่อทำการแทรกข้อมูลลงไปแล้ว เราจะเรียกดูข้อมูลต่างๆในตรารางด้วย SELECT*FROM
 

5.การเรียกดูข้อมูลในตาราง

 

- ใช้คำสั่ง : SELECT * FROM 


- ใช้คำสั่ง WHERE

6.การ Update ข้อมูลในตาราง

 

ใช้คำสั่ง : UPADTE tableName SET(col1=value) WHERE col=value


ทดลอง update ข้อมูลจาก Chureeporn เป็น Somsri
ปล.แอบมี error นิดหน่อยเพราะเรียกใช้คำสั่ง SELECT ผิด  

 

7. การลบข้อมูลออกจากตาราง 

 

ใช้คำสั่ง DELETE FROM tableName WHERE colname = value;


ทดลองลบข้อมูล Somsri ออกจากตารางโดยใช้ ID เป็นตัวระบุในการลบ
 

Reference Link : about MySQL

MySQL installer 

Video tutorial on Youtube 

SQL create table tutorial 

 

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

Homework week 2 : Try Syntax on w3School website tutorial

 Try the SQL syntax on w3school website tutorial 

 

1. The SQL SELECT Statement

 

           SELECT statement ใช้เลือกเพื่อเรียกดูข้อมูลของ Column ใน database table
 Syntax : 


- ผลการทดลองโค้ดและข้อสรุปที่ได้


1. SELECT * FROM table name;

ผลการทดลอง : ทดลอง SELECT ทุก Column ใน Customers table


ข้อสรุป : เมื่อเราใช้ * ต่อจาก SELECT จะเป็นการเรัยกดูข้อมูลของทุก Column ใน Database table นั้นๆ

2.  SELECT column_name, FROM table_name;
ผลการทดลอง : ทดลอง SELECT Column CustomerName ใน Customers table


ข้อสรุป : เมื่อเราระบุชื่อคอลัมน์ที่เราต้องการที่จะดูข้อมูลลงไปต่อจากคำสั่ง SELECT จะทำให้เราสามารถดูได้เฉพาะคอลัมน์นั้นๆที่เราทำการเลือกไวใน database table และเมื่อเราต้องการดูมากกว่า 1 column ให้เราใช้เครื่องหมาย comma (,) คั่น ระหว่างชื่อ column 


2. SQL SELECT DISTINCT Statement

 

          SELECT DISTINCT จะ return ค่าที่มีค่าแตกต่างกันเท่านั้น
Syntax : SELECT DISTINCT column_name FROM table_name

- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง :ใช้คำสั่งเพื่อเรียกดู column city ต่างๆว่ามีอะไรบ้างโดยไม่ซ้ำกัน


ข้อสรุป : คำสั่งนี้จะแสดงเฉพาะข้อมูลที่ไม่ซ้ำกันในคอลัมน์ที่เราได้เลือกไว้


3. SQL WHERE Clause

 

           WHERE เป็นการเรียกใช้คำสั่งเพื่อเรียกดูเฉพาะข้อมูลที่เรามีการระบุข้อมูลเฉพาะบางอย่างไว้
Syntax : SELECT column_name FROM table_name WHERE column_name operator value


- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง :ใช้คำสั่งเพื่อเรียกดูทุกข้อมูลในคอลัมน์ EmployeeID ที่มีค่าเป็น 1 ใน Employee Table

 

 

ใช้คำสั่งเพื่อเรียกดูทุกข้อมูลในคอลัมน์ Country ที่มีค่าเป็น Mexico ใน Customers table

 


 ข้อสรุป : คำสั่งนี้จะแสดงเฉพาะข้อมูลต่างๆที่มีในคอลัมน์ที่เราได้ทำการระบุไว้ว่าจะให้แสดงข้อมูลใดในคอลัมน์นั้น

 

Example : Use BETWEEN Operation


4. SQL AND & OR Operators

 

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองเรียกข้อมูลจากทุก Column ที่มี ข้อมูลในคอลัมน์ CategoryID=2 หรือ มีข้อมูลในคอลัมน์ CategoryName='Beverages'   


ข้อสรุป :  AND และ OR เป็น Operator ชนิดหนึ่ง ใช้กับคำสั่ง WHERE โดย AND เป็นการเลือกทั้งสองอย่าง ส่วน OR เลือกเพียงอย่างใดอย่างหนึ่ง


5. SQL ORDER BY Keyword

 

           ORDER BY เป็นคำสั่งที่ใช้เรียงข้อมูลในคอลัมน์
Syntax : SELECT column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC; 


- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง : ทดลองเรียง Column CategoryName โดยใช้รูปแบบ DESC
 

 

ข้อสรุป : คำสั่งนี้จะเรียงข้อมูลตามคอลัมน์ที่เรากำหนด โดยมี 2 รูปแบบการเรียงคือ DESC และ ASC โดย DESC เป็นการเรียงแบบจากมากไปน้อย และ ASC เป็นการเรียงจากน้อยไปมาก

 

6. SQL INSERT INTO Statement

            
              INSERT INTO เป็นคำสั่งที่ใช้แทรกข้อมูลใหม่ในตาราง
Syntax : INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

  

- ผลการทดลองโค้ดและข้อสรุปที่ได้

ผลการทดลอง : ทดลองเพิ่มข้อมูล Burger ลงไปใน Categories Column





ข้อสรุป : พบว่าข้อมูลจะอัพเดท จากการเพิ่มข้อมูลจาก VALUES เข้าไปตามตำแหน่ง column ที่ตรงกันนั่นเอง แต่ถ้า column ไหนไม่ได้เพิ่มข้อมูลเข้าไปก็จะเป็นค่า null แทน 

7. SQL UPDATE Statement

 

           UPDATE ใช้เพื่อแก้ไข หรือ เปลี่ยนแปลงข้อมูลที่มีอยู่แล้วใน table
Syntax : UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองเปลี่ยนข้อมูลในคอลัมน์ CategoryName จาก Condiments เป็น Beer




ข้อสรุป : คำสั่ง UPDATE จะเปลี่ยนแปลงข้อมูลในคอลัมน์ที่มีอยู่แล้ว เป็นค่าใน SET ที่เรากำหนดไว้ ข้อควรระวัง! ต้องใช้คำสั่ง WHERE เพื่อระบุข้อมูลใน Column ที่เราจะทำการเปลี่ยนแปลงเเอาไว้ด้วย ไม่เช่นนั้น มันจะทำการ Update เป็นข้อมูลทั้งหมด ใน Column นั้น 

8. SQL DELETE Statement

 

            DELETE เป็นคำสั่งที่ใช้ลบข้อมูลใน table
Syntax : DELETE FROM table_name
WHERE some_column=some_value

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองลบแถวของข้อมูลโดยใช้ คอลัมน์ CategoryID = 3





ข้อสรุป : เราสามารถลบแถวของข้อมูลออกจาก table ได้โดยใช้ คำสั่ง WHERE เพื่อระบุตัวที่เราจะทำการลบออกไป และถ้าต้องการลบข้อมูลทั้งหมด ใช้คำสั่ง DELETE FROM table_name;


Reference Linkw3school tutorial website

Problem in try SQL : ปัญหาที่พบคือปกติจะใช้เบราเซอร์ Mozilla firefox ในการเปิดเว็บไซต์ แต่เมื่อต้องการทดลอง code SQL แบบ online ในเว็บ w3school พบว่าเบราเซอร์ mozill firefox ที่ใช้อยู่นั้น ไม่รองรับรูปแบบ WebSQL โดยมีเบราเซอร์ที่สามารถรองรับรูปแบบ Web SQL ได้คือ Chrome, Safari, และ Opera ดังนั้น ข้าพเจ้า จึงใช้ Google Chrome เพื่อทำการทดลอง code บนเว็บ w3school online