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

Update Anomalies

Update Anomalies

Update Anomaly เกิดขึ้นได้ 3 แบบ
- Insertion เกิดขึ้นเมื่อมีการเพิ่มข้อมูลที่เป็น inconsistant
- Deletion เกิดขึ้นเมื่อมีการลบข้อมูลแล้วทำให้ส่วนหนึ่งของข้อมูลหายไป
- Modification เกิดขึ้นเมื่อมีการเปลี่ยนข้อมูลทำให้เกิด inconsistant ขึ้น

Example


Deletion Anomaly

หากทำการลบ A-101 ใน table accountNo ไปแล้วนั้น Downtown จะหายไปจาก table branch เกิด Update Anomalies แบบ Deletion

Reference


Functional Dependencies

Functional Dependencies




Functional Dependencies เกิดจากความสัมพันธ์แบบ X --> Y โดยตัว X คือตัว deterent และ Y เป็นตัว dependent หมายความว่าในทุกๆตัว X จะสามารถใช้ค่า X ในการกำหนดค่า Y ได้

Primary Key

- ProjectNo
- EmpNo

Partial Dependencies

- ProjectNo --> ProjName
- EmpNo --> EmpName, DeptNo, DeptName
- {ProjNo, EmpNo} --> HrsWork

Transitive Dependencies

- DeptNo --> DeptName

Reference

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

SQLite

SQLite




ดูคำสั่งได้ที่: http://www.sqlitetutorial.net/

Start

- Install sqlite โดยเปิด terminal ใน ubuntu แล้วใช้คำสั่ง: sudo apt-get install sqlite3
- เริ่มใช้ sqlite โดยคำสั่ง: sqlite3
- สร้าง database โดยใช้คำสั่ง: .open ตามด้วยชื่อไฟล์

Create Table


- Author
  - ID  Integer (primary key)
  - Name Text
  - Phone_number Text
  - Location Text
- Book
  - B_ID Text (primary key)
  - B_Name Text
  - Price Integer
  - P_ID  Integer (foreign key)
  - P_Date Text
- Publisher
  - ID Integer (primary key)
  - Name Text
  - Phone_number Text
  - Location Text
- Write
  - A_id (foreign key)
  - B_isbn (foreign key)

Insert value into database

- Author: Name, Phone_number, Location
  - Values: Thomas Harris, 75884849, USA
- Book: B_ID, B_Name, Price, P_ID,P_Date
  - Values: 0001, Hannibal, 150, 1, 08-6-1999
- Publisher: Name, Phone_number, Location
  - Values: Delacorte Press, 888596657, USA
- Write: A_id, B_isbn
  - Values: 1, 1

Check Value in table


Use Select


- เมื่อต้องการดู Author ให้ใช้คำสั่ง SELECT * FROM Author
- เมื่อต้องการดู Book ให้ใช้คำสั่ง SELECT * FROM Book
- เมื่อต้องการดู Publisher ให้ใช้คำสั่ง SELECT * FROM Publisher
- เมื่อต้องการดู Write ให้ใช้คำสั่ง SELECT * FROM Write
Or Use DB Browser for Sqlite: https://sqlitebrowser.org/



- คลิกขวาบน Table ที่ต้องการดู
- เลือก Browse Table

Add 10 or more books

ทำการเพิ่มข้อมูลหนังสือเข้าไปยังแต่ละ Table ที่สร้างไว้ตามที่ทำใน Insert values into database แล้วทำการ SELECT * FROM เพื่อดูผลได้ดังนี้

Author
SELECT * FROM Author;
1|Thomas Harris|07-5884-849|USA
2|J.R.R. Tolkien|08-8559-888|UK
3|Antoine de Saint-Exupery|03-3225-444|French
4|J.K. Rowling|09-8579-977|UK

Book
Select * From Book;
1|Hannibal|150|1|8 June 1999
2|The Lord of the Rings|120|2|29 June 1954
3|Le Petit Prince|100|3|April 1943
4|Harry Potter and the Philosopher's Stone|199|4|26 June 1997
5|The Hobbit|120|2|21 September 1937
6|Harry Potter and the Chamber of Secrets|199|4|2 July 1998
7|Harry Potter and the Prisoner of Azkaban|199|4|8 July 1999
8|Harry Potter and the Goblet of Fire|199|4|8 July 2000
9|Harry Potter and the Order of Phoenix|199|4|21 June 2003
10|Harry Potter and the Half-Blood Prince|199|4|16 July 2015

Publisher
SELECT * FROM Publisher;
1|Delacorte Press|08-8859-6657|USA
2|Goerge Allen & Unwin|(61 2) 8425 0100|Australia
3|Reynold & Hitchcock|08-555-7788|USA

4|Bloomsbury|05-566-664|Canada

Write
SELECT * FROM Write;
1|1
2|2
3|3
4|4
2|5
4|6
4|7
4|8
4|9
4|10


เว็บที่ค้นหาข้อมูลหนังสือ: https://en.wikipedia.org/wiki/Hannibal_(Harris_novel)
                                        : https://en.wikipedia.org/wiki/List_of_best-selling_books

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

SQL Tutorial

SQL Tutorial

เริ่มโดยไปที่: https://www.w3schools.com/sql/default.asp เพื่อเริ่มทำ Tutorial



SQL HOME

SQL คือ ภาษาขั้นพื้นฐานในการจัดเก็บ, เปลี่ยนแปลงและเรียกใช้ข้อมูลในฐานข้อมูล

SQL Inro

SQL คิออะไร?
- SQL ย่อมาจาก Structure Query Language
- SQL มีไว้ให้เราสามารถเข้าถึงและทำการดัดแปลงฐานข้อมูลได้
- SQL ได้รับการยอมรับตามมาตราฐาน ANSI ในปี 1986 และ ISO ในปี 1987

การใช้งาน SQL
- RDBMS(Relational Database Management System) database program
- ต้องใข้ server-side script language(PHP, ASP)
- ต้องใช้ SQl ในการเข้าถึงข้อมูล
- ต้องใช้ HTML/CSS ในการจัดหน้าเว็บ

SQL Syntax

Database Table
โดยส่วนใหญ่ในฐานข้อมูลจะมีตารางหนึ่งตารางขึ้นไป แต่ละตารางจะมีชื่อเรียกเฉพาะ และเก็บข้อมูลไว้ตามแนว

SQL Statements
คำสั่งที่ทำให้ SQL ทำงานตามที่ต้องการ โดยมี
- SELECT ทำการเลือกข้อมูลจากฐานข้อมูล
  - DISTINCT ใช้เพื่อเลือกเฉพาะข้อมูลที่แตกต่าง
- WHERE ใช้ในการเลือกชุดข้อมูลบางชุดตามที่กำหนดไว้
- AND, OR, NOT ใช้ในการเลือกชุดข้อมูลที่มีมากกว่าหนึ่งข้อกำหนด
- ORDER BY ใช้เรียงลำดับ
- INSERT INTO ใช้ใส่ข้อมูลเข้าไปในตาราง
- NULL ใช้เมื่อช่องนั้นไม่มีข้อมูล
- UPDATE ใช้ในการเปลี่ยนแปลงข้อมูลที่มีอยู่
- DELETE ใช้ลบข้อมูลที่มีอยู่