วันจันทร์ที่ 15 สิงหาคม พ.ศ. 2554

Data model


ฐานข้อมูลแบบ Relational Data Model

ฐานข้อมูลแบบสัมพันธ์ (Relational Model) แบ่งออกเป็น 3 ส่วนคือ โครงสร้างข้อมูล (data structure) การควบคุมความถูกต้องให้กับข้อมูล (data integrity) และการจัดการกับข้อมูล (data manipulation)



โครงสร้างของฐานข้อมูลแบบสัมพันธ์


1.โครงสร้างข้อมูล (Data Structure)


โครงสร้างของฐานข้อมูลแบบสัมพันธ์เป็นการนำเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูป รีเลชัน (relation) Relation จะถูกเรียกอีกอย่างหนึ่งว่าตาราง(Table) โครงสร้างของ Relationประกอบด้วย
1.1 แถว (Row) ของข้อมูล (body) แถวข้อมูล 1 แถว (body) หมายถึงข้อมูล 1 รายการ ซึ่งแต่ละแถวของ Relation เรียกว่า “Tuple” Tuple คือ แถวข้อมูลในตาราง โดยแต่ละแถวของข้อมูลจะประกอบไปด้วยหลาย Attribute หรือคอลัมน์ของข้อมูล จำนวนแถวข้อมูลในตารางเราเรียกว่า Cardinality และจำนวน attributes ทั้งหมดในตารางเราเรียกว่า Degree
1.2 สดมภ์ (Column) แต่ละสดมภ์ของ Relation ได้แก่คุณลักษณะของข้อมูลในแต่ละแถวซึ่งเราเรียกว่า “Attribute” เช่น ตัวอย่าง relation S สำหรับเก็บรายละเอียดของ suppliers ประกอบด้วย รหัส ชื่อ สถานะ และเมือง ซึ่ง relation ดังกล่าวจะประกอบไปด้วย 5 tuples โดยแต่ละ tuples ประกอบไปด้วย 4 attribute โดยภายในคอลัมน์จะประกอบด้วย
โดเมน (Domain) เป็นการกำหนดขอบเขตค่าข้อมูลและชนิดข้อมูลของแต่ละ attribute ที่เป็นไปได้ทั้งหมด เช่นจากรูป domain ของ S# คือกลุ่มของรหัส suppliers ทั้งหมด ได้แก่ S1, S2, S3, S4 และ S5 และ กำหนดว่า STATUS ของตาราง S จะต้องมีค่าเป็น 10, 20 และ 30 เท่านั้น หรือ S# จะต้องมีค่าเป็น S1, S2, S3, S4 และ S5 เท่านั้น และ CITY ของ suppliers ทั้งหมดจะต้องเป็น ปทุมธานี นนทบุรี และกรุงเทพฯเท่านั้น เป็นต้น
คีย์หลัก(Primary key) เป็น attribute หรือกลุ่มของ attribute ที่บ่งบอกว่าข้อมูลจะต้องไม่ซ้ำกันในแต่ละแถวข้อมูลของตาราง

2. การควบคุมความถูกต้องให้กับข้อมูล (data integrity)


ในฐานข้อมูลแบบสัมพันธ์ มีกฎการควบคุมความถูกต้องของข้อมูลดังนี้
2.1 Tuple มีข้อมูลไม่ซ้ำกัน เนื่องจาก Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่ซ้ำกัน ดังนั้น Relation R ใดๆ ต้องมี attribute ใด attribute หนึ่งที่ทำให้แต่ละ tuple ใน relation มีข้อมูลไม่ซ้ำกัน เช่น Relation CUSTOMER เป็น relation ที่เก็บประวัติของลูกค้าบัญชีเงินกู้ของธนาคาร และประกอบไปด้วย เลขที่บัตรประชาชน ชื่อ นามสกุล และ ที่อยู่ของลูกค้า ซึ่งจะเห็นว่าข้อมูลลูกค้ามีชื่อและนามสกุลซ้ำกัน คือปรากฎลูกค้าชื่อ สมบัติ นามสกุล มิมำพันธ์ จำนวน 2 tuple แต่มี attribute เลขที่บัตรประชาขน (CITIZEN_ID) เป็นสิ่งที่บ่งบอกให้รู้ว่าลูกค้าทั้งสองคนเป็นคนละคนกัน

2.2 Tupleไม่มีลำดับจากบนลงล่าง เนื่องจาก body Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่มีลำดับ
2.3 Attribute ไม่มีลำดับจากซ้ายไปขวา เนื่องจาก heading ของ Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่มีลำดับ
2.4 ค่าของ attribute ทุกค่าจะต้องเป็น atomicity เนื่องจาก Domain มีเฉพาะค่าที่เป็น atomic เท่านั้น ดังนั้นทุก attribute ในแต่ละตำแหน่งของ tuple ใน relation จะมีค่าเพียงค่าเดียว จะไม่มีรายการของข้อมูล (repeating group หรือ list of value หรือ array) ใน relation นั่นคือ relation ต้องผ่านขั้นตอนการเพิ่มประสิทธิภาพของข้อมูล (Normalization) ตัวอย่างเช่น Relation SP ก่อนทำการเพิ่มประสิทธิภาพของข้อมูล ค่าของข้อมูลในแต่ละ Tuple จะมีลักษณะของรายการข้อมูล (repeating group) หลังจากทำการเพิ่มประสิทธิภาพของข้อมูลในตารางแล้ว ค่าข้อมูลในแต่ละ Tuple ไม่มีรายการข้อมูลอีก

2.5 กำหนด Domain ให้กับข้อมูล จะมีข้อกำหนดว่าค่าที่กำหนดให้กับข้อมูลจะต้องเป็นค่า Scalar นั่นคือจะต้องเป็นค่าข้อมูลที่มีความหมายและเป็นหน่วยเล็กที่สุด ไม่สามารถแบ่งแยกออกไปได้อีก เช่น เลขที่เงินกู้ 014100001 สามารถแบ่งออกเป็น รหัสสาขา รหัสปียื่นกู้ และลำดับบัญชีเงินกู้ เป็นต้น หรือที่อยู่ สามารถแบ่งย่อยออกไปเป็น เลขที่บ้าน ตำบล อำเภอ จังหวัด ฯลฯ ดังนั้น เลขที่เงินกู้ และที่อยู่ ไม่มีค่าเป็น Scalar เพราะยังสามารถแบ่งย่อยออกไปได้อีก แต่ รหัส supplier (S#) มีค่าเป็น S1 ซึ่งแบ่งย่อยอีกไม่ได้ เพราะฉะนั้น S1 มีค่าเป็น Scalar ค่าข้อมูลที่เก็บในฐานข้อมูลที่มีค่าเป็น Scalar นี้เราจะเรียกว่ามีคุณลักษณะของ atomicity ข้อมูลที่สามารถนำมากำหนด Domain ได้ จะต้องเป็นข้อมูลที่เป็นอิสระจากข้อมูลอื่น เช่น relation S ,P และ SP ดังรูปข้างล่างนี้ รหัส ชื่อ สถานะ และเมืองของ supplier เป็นข้อมูลที่อิสระจากข้อมูลอื่น ในทำนองเดียวกับ รหัส ชื่อ สี น้ำหนัก และเมืองของ relation part เป็นข้อมูลที่เป็นอิสระจากข้อมูลอื่น แต่ relation SP รหัสตัวแทนจำหน่าย(S#) ค่าที่กำหนดขึ้นมาเป็นไปตามรหัสตัวแทนจำหน่าย (S#) ของ relation S และรหัสวัสดุ (P#) ค่าที่กำหนดขึ้นมาเป็นไปตามรหัสวัสดุ (P#) ของ relation P ดังนั้นทั้งสอง attribute จึงไม่สามารถนำมากำหนด domain ของ relation SP ได้

2.6 ข้อมูลจะต้องเป็นข้อมูลชนิดเดียวกัน เช่น ถ้าค่าข้อมูลของ COLOR ใน relation P มีค่าที่เป็นไปได้คือ “สีฟ้าน้ำทะเล” “สีฟ้าอ่อน” หรือ “น้ำตาล” แต่ถ้าเรากำหนดให้ค่าของ COLOR สามารถเป็น 1 สำหรับสีฟ้าน้ำทะเล หรือ 2 สำหรับสีฟ้าอ่อน และ 3 สำหรับสีน้ำตาล โดยค่าข้อมูลของ attribute COLOR สามารถบันทึกค่าข้อมูลได้ทั้งสองแบบแล้ว เราไม่สามารถกำหนด Domain ได้เพราะค่าข้อมูลมีชนิดเป็นได้ทั้ง string และ เลขจำนวนเต็ม ในเวลาเดียวกันไม่ได้

3.การจัดการข้อมูล


ภาษาฐานข้อมูล (structured query language, SQL) เป็นภาษาที่ใช้กันอย่างแพร่หลายมีลักษณะคล้ายกับภาษาอังกฤษ ใช้ในการปฏิบัติงานและควบคุมฐานข้อมูล ในภาษาฐานข้อมูลจะมีคำสั่งดังนี้การสร้างตาราง สามารถทำด้วยคำสั่ง CREATE TABLE คำสั่งสอบถามข้อมูลพื้นฐานเป็นการสอบถามข้อมูลหรือ query
คำสั่งการป้อนข้อมูลเพิ่มลงสู่ตารางเราสามารถปรับปรุงเปลี่ยนแปลงแก้ไขข้อมูลที่มีอยู่แล้วในตารางได้ด้วยคำสั่ง UPDATE นอกจากการแก้ไขข้อมูลด้วยคำสั่ง DELETE เราสามารถสอบถามข้อมูลครั้งหนึ่งจากตารางได้มากกว่าหนึ่งตาราง โดยใช้โครงสร้างของ SQL ที่เรียกว่า joining คำสั่งใน SQL สามารถกำหนดความปลอดภัยในการควบคุมการเข้าถึงข้อมูลในฐานข้อมูลได้ โดยคำสั่ง GRANT เป็นการกำหนดสิทธิมอบอำนาจให้สามารถเข้าถึงข้อมูล REVOKE เป็นการเรียกสิทธิอำนาจคืนจากการกำหนดมอบสิทธิด้วยคำสั่ง GRANT
ฐานข้อมูลแบบความสัมพันธ์นี้เป็นรูปแบบที่ถูกพัฒนาขึ้นมาภายหลัง และเป็นที่นิยมใช้กันสำหรับการออกแบบฐานข้อมูลในปัจจุบัน โปรแกรมสำเร็จทางด้านฐานข้อมูลก็ใช้รูปแบบนี้เช่นกัน

4.ลักษณะเด่นและข้อจำกัดของการจัดการฐานข้อมูลแบบสัมพันธ์


4.1ลักษณะเด่น
1) เหมาะกับงานที่เลือกดูข้อมูลแบบมีเงื่อนไขหลายคีย์ฟิลด์ข้อมูล
2) ป้องกันข้อมูลถูกทำลายหรือแก้ไขได้ดี เนื่องจากโครงสร้างแบบสัมพันธ์นี้ผู้ใช้จะไม่ทราบว่าการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร จึงสามารถป้องกันข้อมูลถูกทำลายหรือถูกแก้ไขได้ดี
3) การเลือกดูข้อมูลทำได้ง่าย มีความซับซ้อนของข้อมูลระหว่างแฟ้มต่าง ๆ น้อยมาก อาจมีการฝึกฝนเพียงเล็กน้อยก็สามารถใช้ทำงานได้
4.2 ข้อจำกัด
1)มีการแก้ไขปรับปรุงแฟ้มข้อมูลได้ยากเพราะผู้ใช้จะไม่ทราบการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร
2)มีค่าใช้จ่ายของระบบสูงมากเพราะเมื่อมีการประมวลผลคือ การอ่าน เพิ่มเติม ปรับปรุงหรือยกเลิกระบบจะต้องทำการสร้างตารางขึ้นมาใหม่ ทั้งที่ในแฟ้มข้อมูลที่แท้จริงอาจจะมีการเปลี่ยนแปลงเพียงเล็กน้อย แต่ต้องมาปรับแต่งตารางใหม่ให้ผู้ใช้แฟ้มข้อมูลนั้นถูกใช้ในรูปของตารางที่ดูง่ายสำหรับผู้ใช้



  อ้างอิงมาจาก: http://techinnoreview.exteen.com/20090610/relational-data-model

ไม่มีความคิดเห็น:

แสดงความคิดเห็น