วันศุกร์ที่ 17 ธันวาคม พ.ศ. 2553

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

การบ้านบทที่ 5 ประจำวันที่ 8 ธันวาคม 2553

1.องค์ประกอบที่สำคัญของแบบจำลองอีอาร์ มีอะไรบ้าง

องค์ประกอบสำคัญของอีอาร์ มี 3 ส่วน คือ
-เอ็นติตี้ (
entity)
-แอททริบิวท์ (
attributes) ของแต่ละเอ็นติตี้
-ความสัมพันธ์ระหว่างเอ็นติตี้ (
relationship)

2.จงอธิบายความหมายและสัญลักษณ์ของคำต่อไปนี้

2.1 เอนทิตี (Entity) คือสิ่งของหรือวัตถุที่สามารถบอกความแตกต่างจากเอนทิตีอื่นๆได้ เอนทิตีอาจจะเป็น บุคคล,สถานที่,เหตุการณ์ หรือสิ่งของที่เราเลือก เพื่อใช้ในการเก็บข้อมูล สัญลักษณ์ที่ใช้ จะใช้รูปสี่เหลี่ยมผืนผ้า และมีชื่อกำกับภายในเป็นคำนาม
2.2 รีเลชันชิพ (Relationship) คือความสัมพันธ์ระหว่างเอ็นติตี้ ซึ่งเป็นไปตามชนิดของความสัมพันธ์ โดยความสัมพันธ์จะนำเสนอด้วยเหตุการณ์ที่เชื่อมโยงในเอ็นติตี้ โดยการตั้งชื่อความสัมพันธ์จะใช้คำกริยาที่แสดงการกระทำ เช่น มี,สอน,ว่าจ้าง เป็นต้น รีเลชันชิพจะใช้สัญลักษณ์สี่เหลี่ยมข้าวหลามตัดแทน และมีการตั้งชื่อความสัมพันธ์นั้นกำกับภายใน โดยชื่อที่กำกับต้องเป็นคำกิริยา
2.3 แอตทริบิวต์ (Attribute) คือสิ่งที่ใช้อธิบายถึงคุณลักษณะของ Entity หนึ่งๆ เช่น Entity ของนักศึกษา จะประกอบด้วยAttribute ชื่อ–สกุล,เพศ,ที่อยู่,เบอร์โทร,คณะ,สาขา,วิชา,วันที่เข้าเรียน เป็นต้น สมาชิกที่อยู่ใน Entity หนึ่งๆ จะต้องมี Attribute ที่เหมือนกัน สัญลักษณ์ที่ใช้ จะใช้วงรี แทน Attribute หนึ่ง Attribute และมีชื่อกำกับภายในที่เป็นคำนาม และแอททริบิวต์ใดเป็นคีย์หลักก็จะมีการขีดเส้นใต้แอททริบิวต์นั้นๆ
2.4 คอมโพสิตแอททริบิวต์ (Composite Attribute) คือแอททริบิวต์ที่สามารถแบ่งย่อยได้อีก เช่น Attribute ที่อยู่ สามารถแบ่งเป็นแอททริบิวต์ย่อยๆ ได้เป็น เลขที่ ถนน อำเภอ จังหวัด
2.5 แอททริบิวต์ที่มีหลายค่า (Multivaluaed Attribute) คือแอททริบิวต์ที่สามารถมีได้หลายค่า เช่น คนหนึ่งคนสามารถมีวุฒิการศึกษาได้หลายระดับ เช่น ปริญญาตรี,โท,เอก เป็นต้น หรือ นักศึกษาหนึ่งคนอาจมีเบอร์โทรศัพท์ได้หลายเบอร์ โดยจะใช้วงรีสองวงซ้อนกันแทนแอททริบิวต์ที่มีหลายค่า
2.6 ดีไรฟ์แอททรบิวต์ (Derived attribute) คือแอททริบิวต์ที่ได้มาจากการคำนวณจากแอททริบิวต์อื่นๆ โดยทั่วไปไม่ต้องจัดเก็บแอททริบิวต์นี้ เช่น แอททริบิวต์อายุ เนื่องจากสามารถคำนวณได้จากวันเดือนปีเกิด หรือ ยอดรวมของใบเสร็จแต่ละใบ คำนวณได้จากรายการสินค้าในใบเสร็จ เป็นต้น

3.คอมโพสิตแอนทิตี้มีความสำคัญอย่างไรในการออกแบบฐานข้อมูลเชิงสัมพันธ์

คอมโพสิตแอนทิตี้สำคัญต่อการออกแบบฐานข้อมูลเชิงสัมพันธ์คือ

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

4.แอนทิตี้อ่อนแอคืออะไร มีคุณสมบัติอย่างไร

เอนทิตี้อ่อนแอ (Weak entity) คือ เอนทิตี้ที่ไม่สามารถเกิดขึ้นเองได้ โดยปราศจากเอนทิตี้ที่มีความสัมพันธ์อยู่และจะมีคีย์หลักจากการสืบทอดเอนทิตี้ที่มันพึ่งพิงอยู่ มาใช้เป็นคีย์หลักหรือส่วนหนึ่งของคีย์หลัก โดย weak entity จะใช้สัญลักษณ์รูปสี่เหลี่ยมผืนผ้าแต่เป็นเส้นคู่

5.จากตารางข้อมูลที่กำหนดให้

5.1 จงเขียน E-R Diagram แสดงความสำคัญของตาราง

ขั้นที่ 1 ศึกษาข้อกำหนดของระบบงาน
-ข้อมูลหนังสือแต่ละรายการ ข้อมูลที่จัดเก็บประกอบด้วย รหัสหนังสือ,ชื่อหนังสือ,รหัสผู้แต่ง,รหัสสำนักพิมพ์
-ข้อมูลผู้แต่งหนังสือ ข้อมูลที่จัดเก็บประกอบด้วย รหัสผู้แต่ง,ชื่อผู้แต่ง
-ข้อมูลสำนักพิมพ์ ข้อมูลที่จัดเก็บประกอบด้วย รหัสสำนักพิมพ์,ชื่อสำนักพิมพ์,ที่อยู่,โทรศัพท์

ขั้นที่ 2 กำหนดเอนทิตี้ (Entity)

ผู้แต่ง หนังสือ สำนักพิมพ์

ขั้นที่ 3 กำหนดความสัมพันธ์ของแต่เอนทิตี้ (Entity)

-หนังสือแต่ละเล่มจะถูกพิมพ์จากสำนักพิมพ์ใดสำนักพิมพ์หนึ่งเท่านั้นแต่ละสำนักพิมพ์สามารถจัดพิมพ์หนังสือได้หลายรายการ

-หนังสือแต่ละเล่มจะมีผู้แต่งได้เพียงคนเดียวเท่านั้นแต่ผู้แต่งแต่ละคนสามารถจะแต่งหนังสือได้หลายเล่ม




E–R Diagram ที่สมบูรณ์




5.2 จงบอกว่าแต่ละตารางมี Field ใดเป็น Primary Key

-ในตารางผู้แต่งจะมี Field รหัสผู้แต่ง เป็น Primary Key
-
ในตารางสำนักพิมพ์จะมี Field รหัสสำนักพิมพ์ เป็น Primary Key

-ในตารางหนังสือจะมี Field รหัสหนังสือ เป็น Primary Key

5.3 สำหรับตารางที่มี Foreign Key จงบอกว่าเป็น Field ใดและมีความสัมพันธ์กับ Field ใดในตารางใด

จากฐานข้อมูลของระบบหนังสือจะประกอบไปด้วยตาราง 3 ตาราง ซึ่งแต่ละตารางจะมี Field ที่เชื่อมโยงถึงกัน 3 ตารางคือ
-ตารางผู้แต่ง (รหัสผู้แต่ง,ชื่อผู้แต่ง)
-ตารางสำนักพิมพ์ (รหัสสำนักพิมพ์,ชื่อสำนักพิมพ์,โทรศัพท์)
-ตารางหนังสือ (รหัสหนังสือ,ชื่อหนังสือ,รหัสผู้แต่ง,รหัสสำนักพิมพ์)



วันอาทิตย์ที่ 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)
เป็นความสัมพันธ์ที่พบไม่บ่อยนัก เป็นความสัมพันธ์ของข้อมูลในเรคอร์ดใดๆ ของตารางหนึ่งมีค่าตรงกับข้อมูลของหลายๆ เรคอร์ดในตารางอื่นๆ เช่น มีรถนต์หลายรุ่นที่สามารถเติมเชื้อเพลิงได้หลายชนิด