230 likes | 318 Views
วิชา 4122612 เทคโนโลยีสารสนเทศสำหรับงานทะเบียนบุคคลและการจ่ายเงินเดือน ( Information Technology for Personal Record and Payroll ). - การออกแบบฐานข้อมูล . ฐานข้อมูล.
E N D
วิชา 4122612เทคโนโลยีสารสนเทศสำหรับงานทะเบียนบุคคลและการจ่ายเงินเดือน(Information Technology for Personal Record and Payroll) - การออกแบบฐานข้อมูล
ฐานข้อมูล ฐานข้อมูล คือ การรวบรวมข้อมูลที่มีความสัมพันธ์กันไว้ในที่เดียวกัน ข้อมูลเหล่านี้จะถูกจัดเก็บไว้อย่างมีระบบ เพื่อประโยชน์ในการจัดการและเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ จัดทำขึ้นเองโดยอาศัยนักเทคโนโลยีสารสนเทศ ระบบจัดการฐานข้อมูล หรือ DBMS (data base management system) คือซอฟต์แวร์ซึ่งมีหน้าที่ช่วยให้ผู้ใช้เข้าถึงข้อมูลได้ง่ายสะดวกและมีประสิทธิภาพโดยผู้ใช้ไม่จำเป็นต้องรับรู้เกี่ยวกับรายละเอียดภายในโครงสร้างของฐานข้อมูล ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)คือ การรวบรวมเอนทิตี้ที่อยู่ในระบบที่มีความสัมพันธ์ระหว่างกันเข้าไว้ด้วยกัน
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • เอนทิตี้ (Entity) เป็นคำที่อ้างอิงถึงบุคคล สถานที่ และสิ่งของต่าง ๆ เช่น สินค้า ใบสั่งซื้อ และลูกค้า เป็นต้น ถ้าเราสนใจในการสร้างระบบฐานข้อมูลการสั่งซื้อสินค้า เอนทิตี้ของระบบนี้จะประกอบด้วยเอนทิตี้ลูกค้า ใบสั่งซื้อสินค้ากับสินค้า ดังรูปใบสั่งซื้อ (Orders) ลูกค้า (Customers) สินค้า (Products) ลูกค้า (Customers) ใบสั่งซื้อ (Orders) สินค้า (Products)
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • แอตทริบิวต์ (Attribute) เป็นข้อมูลที่แสดงลักษณะของเอนทิตี้ เช่น แอตทริบิวต์ของเอนทิตี้ลูกค้า จะมีชื่อ ที่อยู่ และรหัสไปรษณีย์ ส่วนแอตทริบิวต์ของเอนทิตี้ใบสั่งซื้อสินค้า จะมีรหัสใบสั่งซื้อ วันที่สั่งซื้อ ชื่อสินค้า จำนวนสินค้าที่สั่ง และราคาสินค้า เป็นต้น ซึ่งเราสามารถแสดงเอนทิตี้ รวมทั้งแอตทริบิวต์ได้ ดังรูป
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล สินค้า (Products) รหัสสินค้า ชื่อสินค้า ราคาต่อหน่วย รวมภาษีด้วยหรือไม่ จำนวนสินค้าในคลัง รหัสชนิดสินค้า ชื่อชนิดสินค้า ใบสั่งซื้อ (Orders) รหัสใบสั่งซื้อ วันที่สั่งสินค้า วันที่ส่งสินค้า รหัสลูกค้าที่สั่ง รหัสสินค้าที่สั่ง จำนวนสินค้าที่สั่ง ส่วนลด ลูกค้า (Customers) รหัสลูกค้า ชื่อลูกค้า ที่อยู่ลูกค้า รหัสไปรษณีย์ หมายเลขโทรศัพท์ ชื่อเอนทิตี้ แอตทริบิวต์ทั้งหมด
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล • ความสัมพันธ์ (Relationships) จะหมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ต่าง ๆ ในระบบ เช่น ในระบบการสั่งซื้อสินค้า จะประกอบด้วยเอนทิตี้ใบสั่งซื้อสินค้าและเอนทิตี้ลูกค้า ซึ่งมีความสัมพันธ์จากลูกค้าไปยัง ใบสั่งซื้อสินค้าเป็นแบบหนึ่งต่อกลุ่ม (One-to-Many) หมายความว่า ลูกค้าสามารถสั่งสินค้าได้หลาย ๆครั้ง คือ มีใบสั่งสินค้าหลายใบนั้นเอง แต่ใบสั่งซื้อแต่ละใบจะมาจากลูกค้าเพียงรายเดี่ยวเท่านั้น เป็นต้น ความสัมพันธ์ระหว่างเอนทิตี้ที่กล่าวมาสามารถแสดงได้ ดังรูป
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล ลูกค้า (Customers) รหัสลูกค้า ชื่อลูกค้า ที่อยู่ลูกค้า รหัสไปรษณีย์ หมายเลขโทรศัพท์ ใบสั่งซื้อ (Orders) รหัสใบสั่งซื้อ วันที่สั่งสินค้า วันที่ส่งสินค้า รหัสลูกค้าที่สั่ง รหัสสินค้าที่สั่ง จำนวนสินค้าที่สั่ง ส่วนลด 1 N
ศัพท์ต่าง ๆ ที่ต้องรู้จักในระบบฐานข้อมูล ฟิลด์ (Field) หน่วยข้อมูลที่ประกอบมาจากอักขระต่าง ๆ หลายอักขระ เช่น ชื่อ ที่อยู่ ที่ประกอบด้วยอักขระหลาย ๆ ตัว เป็นต้น จากความหมายนี้ ฟิลด์ คือ แอตทริบิวต์นั้นเอง เราจะใช้คำนี้เมือเราอ้างอิงถึงแอตทริบิวต์ในทางคอมพิวเตอร์ส่วนแอตทริบิวต์เราจะใช้เมื่ออ้างอิงถึงเอนทิตี้ เรคอร์ด (Record) จะเป็นการนำฟิลด์หลาย ๆ ฟิลด์มารวมกัน เช่น เรคอร์ดลูกค้า ก็จะเก็บข้อมูลของลูกค้าทั้งหมดที่ประกอบด้วย ชื่อ ที่อยู่หรือหมายเลขโทรศัพท์ เป็นต้น ตาราง (Table)ฟิลด์ จะเป็นการนำเรคอร์ดมารวมกัน เช่น ตารางลูกค้า จะประกอบด้วยเรคอร์ดของลูกค้า
ตัวอย่าง ฟิลด์ เรคอร์ด
ชนิดของคีย์ในฐานข้อมูลเชิงสัมพันธ์ชนิดของคีย์ในฐานข้อมูลเชิงสัมพันธ์ • Primary Key (คีย์หลัก) จะเป็นฟิลด์ที่มีค่าไม่ซ้ำกันเลยในแต่ละเรคอร์ดในตารางนั้น เราสามารถใช้ฟิลด์ที่เป็น Primary Key นี้เป็นตัวแทนของตารางนั้นได้ทันที • Candidate Key (คีย์คู่แข่ง) เป็นฟิลด์หนึ่ง หรือหลายฟิลด์ที่มีคุณสมบัติที่เป็น Primary Key ได้ แต่ไม่ได้เป็นคีย์หลัก เช่น ชื่อและนามสกุล สามารถรวบรวมกันเป็นคีย์คู่แข่งได้ เป็นต้น • Composite Key เป็นฟิลด์ที่ใช้รวมกับฟิลด์อื่น ๆ ที่เป็น Composite Key เหมือนกันมาใช้เป็น Primary Key ของตาราง • Foreign Key เป็นฟิลด์ในตารางหนึ่ง (ฝัง Many) ที่มีความสัมพันธ์กับฟิลด์ที่เป็น Primary Key ในอีกตารางหนึ่ง (ฝัง One) โดยที่ตารางทั้งสองมีความสัมพันธ์แบบ One-to-Many ต่อกัน
การออกแบบฐานข้อมูล • จุดประสงค์ • ลดความซ้ำซ้อนของข้อมูล เนื่องจากถ้ามีการเก็บข้อมูลซ้ำซ้อนกัน จะทำให้การเปลี่ยนแปลงข้อมูลในตารางทำได้สะดวก • ตอบสนองความต้องการเรียกใช้ข้อมูลในเวลาที่สั้นที่สุด • ช่วยให้ตรวจสอบความถูกต้อง รวมทั้งจัดมาตรฐานของข้อมูลได้สะดวก • สามารถกำหนดลักษณะการเข้าถึงข้อมูลสำหรับผู้ใช้แต่ละประเภทได้ • ทำให้มีความอิสระระหว่างข้อมูลกับแอพพลิเคชั่น
ขั้นตอนการออกแบบฐานข้อมูลขั้นตอนการออกแบบฐานข้อมูล • กำหนดเอนทิตี้ทุกตัวในระบบฐานข้อมูลนั้น ๆ ตัวอย่างเช่น ในระบบฐานข้อมูลการสั่งซื้อสินค้า ประกอบด้วยเอนทิตี้ใบรายการสั่งซื้อ ลูกค้าและสินค้า • กำหนดคีย์หลัก และแอตทริบิวท์ต่าง ๆ ของเอนทิตี้ ตัวอย่างเช่น คีย์หลักของเอนทิตี้ลูกค้า คือ รหัสลูกค้า ซึ่งเป็นแอตทริบิวต์ที่เรากำหนดเป็นคีย์หลักอยู่แล้ว ในการออกแบบระบบจริงเราควรจะสอบถามเกี่ยวกับเรื่องนี้ให้ละเอียดว่า แอตทริบิวต์ใดสามารถเป็นคีย์หลักได้บ้าง • กำหนดความสัมพันธ์ระหว่างเอนทิตี้ต่าง ๆ เหล่านั้น สำหรับในตัวอย่างระบบฐานข้อมูลการสั่งซื้อสินค้าเอนทิตี้ลูกค้า และใบรายการสั่งซื้อ จะมีความสัมพันธ์กันแบบ One-to-Many และความสัมพันธ์ระหว่างใบรายการสั่งซื้อ และสินค้าเป็น Many-to-Many • ทำการเปลี่ยนเอนทิตี้ที่ได้ไปอยู่ในรูปตาราง โดยใช้กฎการ Normalization
การ Normalization เป็นทฤษฏีที่ใช้ในการทำให้เอนทิตี้ และแอตทริบิวท์ได้ออกแบบไว้ ถูกจัดกลุ่มเป็นตารางที่มีความสัมพันธ์กัน จุดประสงค์ของการ Normalization คือ • ลดความซ้ำซ้อนของข้อมูลในตาราง เพื่อจะได้ไม่ต้องแก้ไขข้อมูลหลาย ๆ ที่ • ทำให้การเปลี่ยนแปลงแก้ไขโครงสร้างของตารางในภายหลังทำให้ง่าย • ทำให้การเปลี่ยนแปลงโครงสร้างฐานข้อมูลมีผลกระทบต่อแอพพลิเคชั่นที่เข้าถึง ข้อมูลในฐานข้อมูลน้อยที่สุด
First Normal Form • จะต้องไม่มีเซลใดในตารางที่มีค่าเกินหนึ่งค่า ดังนั้นเราสามารถทำให้ตารางผ่านได้ด้วยการแยกเซลที่มีค่าเกินหนึ่งออกเป็นเรคอร์ดใหม่
First Normal Form • หลังการทำ First Normal Form
Second Normal Form • จะต้องไม่มีแอตทริบิวท์ที่ไม่ใช่คีย์ตัวใด (เราเรียกว่า Non-Key Attribute) ขึ้นกับส่วนใดส่วนหนึ่งของคีย์หลัก จะต้องขึ้นกับคีย์หลักอย่างแท้จริงเท่านั้น • เราสามารถทำให้ตารางผ่านข้อที่ 2 ได้โดยแยกฟิลด์ที่ขึ้นเฉพาะกับส่วนหนึ่งของคีย์หลักกับฟิลด์ที่มันขึ้นด้วยออกมาสร้างเป็นตารางใหม่
Second Normal Form • ตารางตัวอย่างไม่ผ่านข้อที่ 2 เนื่องจากมีฟิลด์รหัสลูกค้า วันที่สั่ง และวันที่ส่ง จะขึ้นกับฟิลด์รหัสการสั่งซื้อเท่านั้น ซึ่งเป็นส่วนหนึ่งของคีย์หลัก (รหัสการสั่งซื้อและรหัสสินค้า เป็นคีย์หลักแบบ Composite Key) เมื่อทำ Second Normal Form แล้วเราจะได้ตาราง 2 ตาราง
Second Normal Form • หลังการทำ Second Normal Form
Third Normal Form • จะต้องไม่มีแอตทริบิวท์ใดในตารางขึ้นกับแอตทริบิวท์อื่นที่ไม่ใช่คีย์หลัก หรือคีย์คู่แข่ง จากที่กล่าวมา เราสามารถทำให้ตารางของเราผ่านได้ด้วยการแยกฟิลด์ที่ขึ้นกับฟิลด์อื่น ๆ นั้นออกมาเป็นตารางใหม่ และคีย์หลักของตารางใหม่ จะเป็นฟิลด์ที่ฟิลด์นั้นขึ้นด้วย