1 / 14

HO 343 -- Session 14: Database Design Principles

HO 343 -- Session 14: Database Design Principles. EK BUNCHUA ek@alpha.tu.ac.th Room # 528 Thammasat Business School. การออกแบบฐานข้อมูล. ตอบคำถามต่อไปนี้ก่อน ต้องการเก็บข้อมูลอะไร? จะใช้กี่ตาราง? แต่ละตารางมีความสัมพันธ์กันอย่างไร?. ตัวอย่าง - ต้องการเก็บข้อมูลอะไร?.

tekla
Télécharger la présentation

HO 343 -- Session 14: Database Design Principles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HO 343 -- Session 14:Database Design Principles EK BUNCHUA ek@alpha.tu.ac.th Room # 528 Thammasat Business School

  2. การออกแบบฐานข้อมูล ... ตอบคำถามต่อไปนี้ก่อน • ต้องการเก็บข้อมูลอะไร? • จะใช้กี่ตาราง? • แต่ละตารางมีความสัมพันธ์กันอย่างไร?

  3. ตัวอย่าง - ต้องการเก็บข้อมูลอะไร? • ข้อมูลพื้นฐานของพนักงาน ได้แก่ ชื่อ ที่อยู่แผนกและตำแหน่งที่ทำงานในปัจจุบัน เงินเดือนปัจจุบัน ฯลฯ • ข้อมูลการทำงาน ได้แก่ วันที่เปลี่ยนแปลง การย้ายแผนกและเลื่อนตำแหน่งแต่ละครั้ง เงินเดือนที่ได้รับในแต่ละตำแหน่ง ฯลฯ

  4. ตัวอย่าง - จะใช้กี่ตาราง? • ใช้เพียง 1 ตารางได้หรือไม่? • อ้าว! แล้วจะเก็บประวัติการทำงานอย่างไร? Table: EMPLOYEE ID 101 102 103 NAME TOM JACK YING CITY BANGKOK PHUKET BANGKOK DATE 01-01-95 11-07-95 01-07-99 TITLE MANAGER TYPIST SECRETARY SALARY 20,000 7,500 12,000

  5. ตัวอย่าง - จะใช้กี่ตาราง? • ถ้าบันทึกข้อมูลต่อกันไป จะดีหรือไม่? • ไม่ควร เพราะเกิดความซ้ำซ้อนของข้อมูล • ไม่ควร เพราะข้อมูลที่ซ้ำซ้อนอาจขัดแย้งกัน Table: EMPLOYEE ID 101 101 101 102 102 103 NAME TOM TOM TOM JACK JARK YING CITY BANGKOK BANGKOK BAGKOK PHUKET PHUKIT BANGKOK DATE 01-01-95 16-10-97 05-08-98 11-07-95 01-09-97 01-07-99 TITLE SALESMAN SUPERVISOR MANAGER TYPIST TYPIST SECRETARY SALARY 8,000 10,000 20,000 6,000 7,500 12,000

  6. ตัวอย่าง - จะใช้กี่ตาราง? • ถ้าใช้มากกว่า 1 ตาราง ดีกว่าจริงหรือ? • ดีกว่าแน่นอน เพราะข้อมูลไม่ซ้ำซ้อน Table: EMPLOYEE Table: JOB ID 101 102 103 NAME TOM JACK YING CITY BKK PHUKET BKK ID 101 101 101 102 102 103 DATE 01-01-95 16-10-97 05-08-98 11-07-95 01-09-97 01-07-99 TITLE SALES SUP MGR TYPIST TYPIST SECRT SALARY 8,000 10,000 20,000 6,000 7,500 12,000 FLAG S X C S C N

  7. ตัวอย่าง - ความสัมพันธ์ของตาราง • ถ้าใช้ 2 ตาราง แล้วใครชื่ออะไร? • ไม่มีปัญหา เราสามารถอ้างอิงได้จากตารางEMPLOYEE Table: JOB ID 101 101 101 102 102 103 DATE 01-01-95 16-10-97 05-08-98 11-07-95 01-09-97 01-07-99 TITLE SALES SUP MGR TYPIST TYPIST SECRT SALARY 8,000 10,000 20,000 6,000 7,500 12,000 FLAG S X C S C N เพราะนี่คือ คุณสมบัติของ Relational Database

  8. ตัวอย่าง - ความสัมพันธ์ของตาราง PARENT TABLE สงสัยว่า Flag มีไว้ทำไม? Table: EMPLOYEE ID 101 102 103 NAME TOM JACK YING CITY BKK PHUKET BKK CHILD TABLE Table: JOB ID 101 101 101 102 102 103 DATE 01-01-95 16-10-97 05-08-98 11-07-95 01-09-97 01-07-99 TITLE SALES SUP MGR TYPIST TYPIST SECRT SALARY 8,000 10,000 20,000 6,000 7,500 12,000 FLAG S X C S C N Primary Key Foreign Key

  9. ฐานข้อมูลเชิงสัมพันธ์ ... • Relational Database • จัดเก็บข้อมูลในลักษณะตารางสองมิติแบ่งเป็นแถวและคอลัมน์ • การออกแบบฐานข้อมูลผ่านกระบวนการทำให้เป็นบรรทัดฐาน (Normalization)เพื่อลดความซ้ำซ้อนของข้อมูล

  10. แนวคิดของฐานข้อมูลเชิงสัมพันธ์ ... • ข้อมูลในแต่ละเรคอร์ดจะต้องไม่ซ้ำกัน • ลำดับของเรคอร์ดไม่เป็นสาระสำคัญ • ลำดับของฟีลด์ไม่เป็นสาระสำคัญ • แต่ละฟีลด์เก็บข้อมูลได้ครั้งละ 1 ค่า • แต่ละฟีลด์ต้องเก็บข้อมูลประเภทเดียวกัน

  11. คีย์หลัก (Primary Key) ... • เป็นค่าเอกลักษณ์ (Unique Identifier) ซึ่งจะต้องมีค่าไม่ซ้ำกัน • อาจประกอบด้วยหลายฟีลด์รวมกัน เรียกว่า คีย์ร่วม (Composite Key) • เป็นไปตามกฎ Entity Integrity Rule กล่าวคือ ไม่เป็นค่าว่าง (Null Value)

  12. คีย์นอก (Foreign Key) ... • ใช้สำหรับอ้างอิงข้อมูลระหว่างตาราง • เป็นไปตามกฎReferential Integrity Rule กล่าวคือ Foreign Key จะต้องอ้างอิงไปยัง Primary Key ของอีกตารางหนึ่ง • เป็นค่าว่างได้หรือไม่นั้น ขึ้นอยู่กับข้อจำกัดหรือกฎเกณฑ์ในทางปฏิบัติของหน่วยงาน

  13. Referential Integrity Options ... • Restricted Update & Restricted Delete • Cascade Update & Cascade Delete • Nullify Update & Nullify Delete • Default Update & Default Delete กฎเกณฑ์ข้างต้นจะมีผลกับค่าของคีย์นอกเมื่อมีการเปลี่ยนแปลงค่าของคีย์หลัก หรือ เมื่อมีการลบเรคอร์ดที่ค่าของคีย์หลักนั้นถูกอ้างอิง

  14. Referential Diagram ... • ใช้แสดงรายละเอียดของตารางต่าง ๆ • รวมทั้งความสัมพันธ์ระหว่างตาราง • ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1) • ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:n) • ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (m:n)

More Related