วันเสาร์ที่ 21 พฤษภาคม พ.ศ. 2559
วันจันทร์ที่ 25 เมษายน พ.ศ. 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
วันพุธที่ 23 มีนาคม พ.ศ. 2559
วันเสาร์ที่ 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 ExampleChapter 3 and Chapter6 Lecture
วันเสาร์ที่ 30 มกราคม พ.ศ. 2559
Homework week 3 : The DBMS constraints
จาก week ที่แล้วที่เราได้ทำการศึกษา DBMS Program และการใช้งานอย่างเบื้องต้นกันไปแล้ว ซึ่งข้าพเจ้าได้เลือกใช้ MySQL ในการศึกษา ในตอนนี้ข้าพเจ้าจะกล่าวถึงข้อจำกัด หรือ Constriants ของ MySQL ซึ่งจะสนับสนุน Constraints ต่างๆดังนี้
ทดลองด้วยการสร้างตาราง persons และทำการสร้าง Column หรือ Atrribute ต่างๆขึ้นมา และกำหนด Primary key เป็นคอลัมน์ ID
เมื่อเราทำการสร้างตาราง persons แล้ว เราจะใช้คำสั่ง DESCRIBE เพื่อดูรายละเอียดต่างๆของตารางที่เราสร้างนั่นเอง และพบว่า KEY ที่ปรากฎใน Atrribute ID ถูกระบุเป็น PRI หรือ PRIMARY 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 ปรากฎ นั่นเอง
- 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
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;
- ผลการทดลองโค้ดและข้อสรุปที่ได้
ข้อสรุป : คำสั่งนี้จะแสดงเฉพาะข้อมูลที่ไม่ซ้ำกันในคอลัมน์ที่เราได้เลือกไว้
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 Link : w3school 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
สมัครสมาชิก:
บทความ (Atom)