1 / 23

- การออกแบบฐานข้อมูล

วิชา 4122612 เทคโนโลยีสารสนเทศสำหรับงานทะเบียนบุคคลและการจ่ายเงินเดือน ( Information Technology for Personal Record and Payroll ). - การออกแบบฐานข้อมูล . ฐานข้อมูล.

leo-hurst
Download Presentation

- การออกแบบฐานข้อมูล

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. วิชา 4122612เทคโนโลยีสารสนเทศสำหรับงานทะเบียนบุคคลและการจ่ายเงินเดือน(Information Technology for Personal Record and Payroll) - การออกแบบฐานข้อมูล

  2. ฐานข้อมูล ฐานข้อมูล คือ การรวบรวมข้อมูลที่มีความสัมพันธ์กันไว้ในที่เดียวกัน ข้อมูลเหล่านี้จะถูกจัดเก็บไว้อย่างมีระบบ เพื่อประโยชน์ในการจัดการและเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ จัดทำขึ้นเองโดยอาศัยนักเทคโนโลยีสารสนเทศ ระบบจัดการฐานข้อมูล หรือ DBMS (data base management system) คือซอฟต์แวร์ซึ่งมีหน้าที่ช่วยให้ผู้ใช้เข้าถึงข้อมูลได้ง่ายสะดวกและมีประสิทธิภาพโดยผู้ใช้ไม่จำเป็นต้องรับรู้เกี่ยวกับรายละเอียดภายในโครงสร้างของฐานข้อมูล ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)คือ การรวบรวมเอนทิตี้ที่อยู่ในระบบที่มีความสัมพันธ์ระหว่างกันเข้าไว้ด้วยกัน

  3. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • เอนทิตี้ (Entity) เป็นคำที่อ้างอิงถึงบุคคล สถานที่ และสิ่งของต่าง ๆ เช่น สินค้า ใบสั่งซื้อ และลูกค้า เป็นต้น ถ้าเราสนใจในการสร้างระบบฐานข้อมูลการสั่งซื้อสินค้า เอนทิตี้ของระบบนี้จะประกอบด้วยเอนทิตี้ลูกค้า ใบสั่งซื้อสินค้ากับสินค้า ดังรูปใบสั่งซื้อ (Orders) ลูกค้า (Customers) สินค้า (Products) ลูกค้า (Customers) ใบสั่งซื้อ (Orders) สินค้า (Products)

  4. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • แอตทริบิวต์ (Attribute) เป็นข้อมูลที่แสดงลักษณะของเอนทิตี้ เช่น แอตทริบิวต์ของเอนทิตี้ลูกค้า จะมีชื่อ ที่อยู่ และรหัสไปรษณีย์ ส่วนแอตทริบิวต์ของเอนทิตี้ใบสั่งซื้อสินค้า จะมีรหัสใบสั่งซื้อ วันที่สั่งซื้อ ชื่อสินค้า จำนวนสินค้าที่สั่ง และราคาสินค้า เป็นต้น ซึ่งเราสามารถแสดงเอนทิตี้ รวมทั้งแอตทริบิวต์ได้ ดังรูป

  5. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล สินค้า (Products) รหัสสินค้า ชื่อสินค้า ราคาต่อหน่วย รวมภาษีด้วยหรือไม่ จำนวนสินค้าในคลัง รหัสชนิดสินค้า ชื่อชนิดสินค้า ใบสั่งซื้อ (Orders) รหัสใบสั่งซื้อ วันที่สั่งสินค้า วันที่ส่งสินค้า รหัสลูกค้าที่สั่ง รหัสสินค้าที่สั่ง จำนวนสินค้าที่สั่ง ส่วนลด ลูกค้า (Customers) รหัสลูกค้า ชื่อลูกค้า ที่อยู่ลูกค้า รหัสไปรษณีย์ หมายเลขโทรศัพท์ ชื่อเอนทิตี้ แอตทริบิวต์ทั้งหมด

  6. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • ความสัมพันธ์ (Relationships) จะหมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ต่าง ๆ ในระบบ เช่น ในระบบการสั่งซื้อสินค้า จะประกอบด้วยเอนทิตี้ใบสั่งซื้อสินค้าและเอนทิตี้ลูกค้า ซึ่งมีความสัมพันธ์จากลูกค้าไปยัง ใบสั่งซื้อสินค้าเป็นแบบหนึ่งต่อกลุ่ม (One-to-Many) หมายความว่า ลูกค้าสามารถสั่งสินค้าได้หลาย ๆครั้ง คือ มีใบสั่งสินค้าหลายใบนั้นเอง แต่ใบสั่งซื้อแต่ละใบจะมาจากลูกค้าเพียงรายเดี่ยวเท่านั้น เป็นต้น ความสัมพันธ์ระหว่างเอนทิตี้ที่กล่าวมาสามารถแสดงได้ ดังรูป

  7. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล ลูกค้า (Customers) รหัสลูกค้า ชื่อลูกค้า ที่อยู่ลูกค้า รหัสไปรษณีย์ หมายเลขโทรศัพท์ ใบสั่งซื้อ (Orders) รหัสใบสั่งซื้อ วันที่สั่งสินค้า วันที่ส่งสินค้า รหัสลูกค้าที่สั่ง รหัสสินค้าที่สั่ง จำนวนสินค้าที่สั่ง ส่วนลด 1 N

  8. ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล ฟิลด์ (Field) หน่วยข้อมูลที่ประกอบมาจากอักขระต่าง ๆ หลายอักขระ เช่น ชื่อ ที่อยู่ ที่ประกอบด้วยอักขระหลาย ๆ ตัว เป็นต้น จากความหมายนี้ ฟิลด์ คือ แอตทริบิวต์นั้นเอง เราจะใช้คำนี้เมือเราอ้างอิงถึงแอตทริบิวต์ในทางคอมพิวเตอร์ส่วนแอตทริบิวต์เราจะใช้เมื่ออ้างอิงถึงเอนทิตี้ เรคอร์ด (Record) จะเป็นการนำฟิลด์หลาย ๆ ฟิลด์มารวมกัน เช่น เรคอร์ดลูกค้า ก็จะเก็บข้อมูลของลูกค้าทั้งหมดที่ประกอบด้วย ชื่อ ที่อยู่หรือหมายเลขโทรศัพท์ เป็นต้น ตาราง (Table)ฟิลด์ จะเป็นการนำเรคอร์ดมารวมกัน เช่น ตารางลูกค้า จะประกอบด้วยเรคอร์ดของลูกค้า

  9. ตัวอย่าง ฟิลด์ เรคอร์ด

  10. ชนิดของคีย์ในฐานข้อมูลเชิงสัมพันธ์ชนิดของคีย์ในฐานข้อมูลเชิงสัมพันธ์ • Primary Key (คีย์หลัก) จะเป็นฟิลด์ที่มีค่าไม่ซ้ำกันเลยในแต่ละเรคอร์ดในตารางนั้น เราสามารถใช้ฟิลด์ที่เป็น Primary Key นี้เป็นตัวแทนของตารางนั้นได้ทันที • Candidate Key (คีย์คู่แข่ง) เป็นฟิลด์หนึ่ง หรือหลายฟิลด์ที่มีคุณสมบัติที่เป็น Primary Key ได้ แต่ไม่ได้เป็นคีย์หลัก เช่น ชื่อและนามสกุล สามารถรวบรวมกันเป็นคีย์คู่แข่งได้ เป็นต้น • Composite Key เป็นฟิลด์ที่ใช้รวมกับฟิลด์อื่น ๆ ที่เป็น Composite Key เหมือนกันมาใช้เป็น Primary Key ของตาราง • Foreign Key เป็นฟิลด์ในตารางหนึ่ง (ฝัง Many) ที่มีความสัมพันธ์กับฟิลด์ที่เป็น Primary Key ในอีกตารางหนึ่ง (ฝัง One) โดยที่ตารางทั้งสองมีความสัมพันธ์แบบ One-to-Many ต่อกัน

  11. การออกแบบฐานข้อมูล • จุดประสงค์ • ลดความซ้ำซ้อนของข้อมูล เนื่องจากถ้ามีการเก็บข้อมูลซ้ำซ้อนกัน จะทำให้การเปลี่ยนแปลงข้อมูลในตารางทำได้สะดวก • ตอบสนองความต้องการเรียกใช้ข้อมูลในเวลาที่สั้นที่สุด • ช่วยให้ตรวจสอบความถูกต้อง รวมทั้งจัดมาตรฐานของข้อมูลได้สะดวก • สามารถกำหนดลักษณะการเข้าถึงข้อมูลสำหรับผู้ใช้แต่ละประเภทได้ • ทำให้มีความอิสระระหว่างข้อมูลกับแอพพลิเคชั่น

  12. ขั้นตอนการออกแบบฐานข้อมูลขั้นตอนการออกแบบฐานข้อมูล • กำหนดเอนทิตี้ทุกตัวในระบบฐานข้อมูลนั้น ๆ ตัวอย่างเช่น ในระบบฐานข้อมูลการสั่งซื้อสินค้า ประกอบด้วยเอนทิตี้ใบรายการสั่งซื้อ ลูกค้าและสินค้า • กำหนดคีย์หลัก และแอตทริบิวท์ต่าง ๆ ของเอนทิตี้ ตัวอย่างเช่น คีย์หลักของเอนทิตี้ลูกค้า คือ รหัสลูกค้า ซึ่งเป็นแอตทริบิวต์ที่เรากำหนดเป็นคีย์หลักอยู่แล้ว ในการออกแบบระบบจริงเราควรจะสอบถามเกี่ยวกับเรื่องนี้ให้ละเอียดว่า แอตทริบิวต์ใดสามารถเป็นคีย์หลักได้บ้าง • กำหนดความสัมพันธ์ระหว่างเอนทิตี้ต่าง ๆ เหล่านั้น สำหรับในตัวอย่างระบบฐานข้อมูลการสั่งซื้อสินค้าเอนทิตี้ลูกค้า และใบรายการสั่งซื้อ จะมีความสัมพันธ์กันแบบ One-to-Many และความสัมพันธ์ระหว่างใบรายการสั่งซื้อ และสินค้าเป็น Many-to-Many • ทำการเปลี่ยนเอนทิตี้ที่ได้ไปอยู่ในรูปตาราง โดยใช้กฎการ Normalization

  13. การ Normalization เป็นทฤษฏีที่ใช้ในการทำให้เอนทิตี้ และแอตทริบิวท์ได้ออกแบบไว้ ถูกจัดกลุ่มเป็นตารางที่มีความสัมพันธ์กัน จุดประสงค์ของการ Normalization คือ • ลดความซ้ำซ้อนของข้อมูลในตาราง เพื่อจะได้ไม่ต้องแก้ไขข้อมูลหลาย ๆ ที่ • ทำให้การเปลี่ยนแปลงแก้ไขโครงสร้างของตารางในภายหลังทำให้ง่าย • ทำให้การเปลี่ยนแปลงโครงสร้างฐานข้อมูลมีผลกระทบต่อแอพพลิเคชั่นที่เข้าถึง ข้อมูลในฐานข้อมูลน้อยที่สุด

  14. First Normal Form • จะต้องไม่มีเซลใดในตารางที่มีค่าเกินหนึ่งค่า ดังนั้นเราสามารถทำให้ตารางผ่านได้ด้วยการแยกเซลที่มีค่าเกินหนึ่งออกเป็นเรคอร์ดใหม่

  15. First Normal Form • หลังการทำ First Normal Form

  16. Second Normal Form • จะต้องไม่มีแอตทริบิวท์ที่ไม่ใช่คีย์ตัวใด (เราเรียกว่า Non-Key Attribute) ขึ้นกับส่วนใดส่วนหนึ่งของคีย์หลัก จะต้องขึ้นกับคีย์หลักอย่างแท้จริงเท่านั้น • เราสามารถทำให้ตารางผ่านข้อที่ 2 ได้โดยแยกฟิลด์ที่ขึ้นเฉพาะกับส่วนหนึ่งของคีย์หลักกับฟิลด์ที่มันขึ้นด้วยออกมาสร้างเป็นตารางใหม่

  17. Second Normal Form • ตารางตัวอย่างไม่ผ่านข้อที่ 2 เนื่องจากมีฟิลด์รหัสลูกค้า วันที่สั่ง และวันที่ส่ง จะขึ้นกับฟิลด์รหัสการสั่งซื้อเท่านั้น ซึ่งเป็นส่วนหนึ่งของคีย์หลัก (รหัสการสั่งซื้อและรหัสสินค้า เป็นคีย์หลักแบบ Composite Key) เมื่อทำ Second Normal Form แล้วเราจะได้ตาราง 2 ตาราง

  18. Second Normal Form • หลังการทำ Second Normal Form

  19. Third Normal Form • จะต้องไม่มีแอตทริบิวท์ใดในตารางขึ้นกับแอตทริบิวท์อื่นที่ไม่ใช่คีย์หลัก หรือคีย์คู่แข่ง จากที่กล่าวมา เราสามารถทำให้ตารางของเราผ่านได้ด้วยการแยกฟิลด์ที่ขึ้นกับฟิลด์อื่น ๆ นั้นออกมาเป็นตารางใหม่ และคีย์หลักของตารางใหม่ จะเป็นฟิลด์ที่ฟิลด์นั้นขึ้นด้วย

  20. ตัวอย่าง Third Normal Form

More Related