วันอาทิตย์ที่ 28 พฤศจิกายน พ.ศ. 2553

วิชาฐานข้อมูลเบื้องต้น

การบ้านบทที่ 4 ประจำวันที่ 24 พฤศจิกายน 2553

1.โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง จงอธิบาย
โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วย
-Relation: ตราราง 2 มิติ ประกอบด้วย Row และ Column
-Attribute: คุณสมบัติหรือรายละเอียดของ Relation
-Domain: เป็นการกำหนดขอบเขต ค่าข้อมูล และชนิดของข้อมูล เช่น เพศ 1 = ชาย / 2 = หญิง
-Tuple: คือแถวแต่ละแถวใน Relation
-Degree: คือจำนวน Attribute ที่บรรจุอยู่ใน Relation
-Cardinality: คือจำนวน Tuple ที่บรรจุอยู่ใน Relation หนึ่งที่มีความสัมพันธ์ใน Tuple ของอีก Relation

2.คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง
-Relation ต้องมีชื่อกำกับ และชื่อซ้ำกันไม่ได้
-แต่ละ Attribute ของ Relation จะบรรจุค่าเพียงค่าเดียว (single value)
-ชื่อของแต่ละ Attribute ในแต่ละ Relation จะต้องไม่ซ้ำกัน
-ค่าของข้อมูลใน Attribute ต้องเป็นไปตามข้อกำหนดของ Domain ใน Attribute นั้นๆ
-การเรียงลำดับในแต่ละ Attribute ไม่มีความสำคัญใดๆ
-แต่ละ Tuple ต้องไม่มีข้อมูลที่ซ้ำกัน
-การเรียงลำดับของแต่ละ Tuple ไม่มีความสำคัญใดๆ

3.รีเลชั่นประกอบด้วยคีย์ประเภทต่างๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว
รีเลชั่นประกอบด้วย
-คีย์หลัก (Primary Key) เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือไม่มีค่าซ้ำกัน โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด เช่น รหัสนักศึกษา หรือเลขที่บัตรประชาชน ซึ่งจะต้องเลือกอย่างใดอย่างหนึ่งเป็นคีย์หลักขึ้นมา
-คีย์ผสม (Composite Key) เป็นการนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน เพื่อให้มีคุณสมบัติเป็น Primary Key เนื่องจากหากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น Primary Key จะส่งผลให้ข้อมูลในแต่ล่ะเรคอร์ดซ้ำซ้อนได้ เช่น รีเลชั่นใบส่งของ (Invoice) มีคีย์ คือ แอทริบิวต์เลขที่ใบส่งของ และแอทริบิวต์รหัสสินค้า เพราะใบส่งของแต่ละใบจะมีรายการสินค้าบรรจุในใบส่งของได้มากกว่า 1 รายการ ดังนั้นถ้าใช้แอทริบิวต์เลขที่ใบส่งของเพียงตัวเดียวจะไม่สามารถแยกความแตกต่างแต่ละ Tuple ได้
-คีย์คู่แข่ง (Candidates Key) ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่ง (Candidates Key) เช่น นักศึกษาแต่ละคนมี รหัสประจำตัวนักศึกษา และ รหัสประจำตัวบัตรประชาชน โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key
-คีย์นอก (Foreign Key) คือคีย์ซึ่งประกอบด้วยแอทริบิวต์หรือกลุ่มของแอทริบิวต์ในรีเลชันหนึ่งซึ่งมีคุณสมบัติเป็นคีย์หลัก และไปปรากฎอีกรีเลชันหนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูลซึ่งกันและกัน เช่น ฐานข้อมูลของธนาคารแห่งหนึ่งประกอบด้วย 2 ตาราง คือ
1.ตารางบัญชีที่ลูกค้าเปิด (เลขประจำตัวลูกค้า, ชื่อ - นามสกุลและประเภทของบัญชี)
2.ตารางลูกค้า (เลขประจำตัวลูกค้า, ชื่อ - นามสกุล และที่อยู่)
หากต้องการทราบว่าลูกค้ารายหนึ่งเปิดบัญชีใดบ้าง ก็เชื่อมโยงข้อมูล 2 ตารางเข้าด้วยกัน โดยใช้เลขประจำตัวลูกค้าเป็น Foreign Key

4.Null หมายถึงอะไรใน Relational Database
Null ใน Relational Database หมายถึง ไม่ทราบค่าของข้อมูลที่รู้แน่ชัด ไม่ใช่ทั้ง 0 (กรณีที่เป็นตัวเลข) และไม่ใช่ space (กรณีที่เป็นข้อความ)

5.เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล
เพราะฐานข้อมูลไม่สามารถรู้ได้เองว่าข้อมูลที่เก็บอยู่นั้นสอดคล้องกับความเป็นจริงหรือไม่ เราจึงต้องบอกให้ฐานข้อมูลรู้ด้วยสิ่งที่เรียกว่า กฎการควบคุมความถูกต้องของข้อมูล หรือ Data Integrity

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