วันอาทิตย์ที่ 12 ธันวาคม พ.ศ. 2553

วิชาฐานข้อมูลเบื้องต้น การบ้านบทที่ 5 ประจำวันที่ 8 ธ.ค. 53

1. องค์ประกอบที่สำคัญของแบบจำลองอี-อาร์ มีอะไรบ้าง
    ตอบ แบบจำลองอี-อาร์ มีส่วนประกอบสำคัญ 3 ส่วนดังนี้
1.   เอ็นติตี้ (Entity) หมายถึง สิ่งของหรือวัตถุที่สามารถบอกความแตกต่างจากเอ็นติตี้อื่นได้
2.   แอททริบิวท์ (Attributes) หมายถึง  รายละเอียดขอข้อมูลในเอ็นทิตี้หนึ่ง ๆ เช่น  เอ็นทิตี้พนักงาน  ประกอบด้วย  แอทริบิวต์รหัสพนักงาน  ชื่อ  ที่อยู่  หรือแอทริบิวต์แผนก  ประกอบด้วย  แอทริบิวต์รหัสแผนก  ชื่อ  เป็นต้น
3.   ความสัมพันธ์ระหว่างเอ็นติตี้ (Relitionship) หมายถึง ความสัมพันธ์ระหว่างเอ็นติตี้ ซึ่งเป็นไปตามชนิดของความสัมพันธ์ โดยความสัมพันธ์จะนำเสนอด้วยเหตุการณ์ที่เชื่อมโยงในเอ็นติตี้ โดยการตั้งชื่อความสัมพันธ์จะใช้คำกริยาที่แสดงการกระทำ เช่น มี, สอน, ว่าจ้าง, เป็นต้น

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


 3. คอมโพสิตเอนทิตี้มีความสำคัญอย่างไรในการออกแบบฐานข้อมูลเชิงสัมพันธ์
     ตอบ สร้างขึ้นเพื่อแปลงความสัมพันธ์แบบ M:N มาเป็นแบบ 1:N โดยการนำเอาคีย์หลักของทั้งสองเอนทีตีที่มีความสัมพันธ์แบบ M:N มารวมกับแอทริบิวต์อื่น ๆ ที่สนใจ เช่น เอนทีตีการลงทะเบียนเป็นคอมโพสิตเอนทีตีที่ถูกสร้างระหว่างเอนทีตีนักศึกษา และวิชา โดยคอมโพสิตเอนทีตีจะแสดงด้วยรูปสี่เหลี่ยมผืนผ้าที่มีรูปสีเหลี่ยมขนมเปียกปูนอยู่ภายในด้วย

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

5. จากตารางข้อมูลที่กำหนดให้
5.1 จงเขียน E-R Diagram แสดงความสำคัญของตาราง
      ตอบ ขั้นที่ ศึกษาข้อกำหนดของระบบงาน
ข้อมูลหนังสือแต่ละรายการ ข้อมูลที่จัดเก็บประกอบด้วย รหัสหนังสือ, ชื่อหนังสือ, รหัสผู้แต่ง, รหัสสำนักพิมพ์
ข้อมูลผู้แต่งหนังสือ ข้อมูลที่จัดเก็บประกอบด้วย รหัสผู้แต่ง , ชื่อผู้แต่ง
ข้อมูลสำนักพิมพ์ ข้อมูลที่จัดเก็บประกอบด้วย รหัสสำนักพิมพ์ , ชื่อสำนักพิมพ์, ที่อยู่, โทรศัพท์  
            ขั้นที่ กำหนดเอนทิตี้ (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 ตาราง
                        - ตารางผู้แต่ง (รหัสผู้แต่ง, ชื่อผู้แต่ง)
                        - ตารางสำนักพิมพ์ (รหัสสำนักพิมพ์, ชื่อสำนักพิมพ์, โทรศัพท์)
                        - ตารางหนังสือ (รหัสหนังสือ, ชื่อหนังสื่อ, รหัสผู้แต่ง, รหัสสำนักพิมพ์

วันศุกร์ที่ 26 พฤศจิกายน พ.ศ. 2553

วิชาฐานข้อมูลเบื้องต้น การบ้านบทที่ 4 ประจำวันที่ 24 พ.ย. 53

1.      โครงสร้างข้อมูลเชิงสัมพันธ์ประกอบด้วยอะไรบ้าง จงอธิบาย
ตอบ ระบบฐานข้อมูลเชิงสัมพันธ์จะมีส่วนประกอบต่าง ๆ เพื่อใช้ในการทำงานดังนี้
1.   Field จะเก็บรายละเอียดต่าง ๆ ของข้อมูลที่ใช้งาน เช่น ฟิลด์ Name เป็นข้อมูลประเภท Text ในกำหนดประเภทข้องข้อมูลต้องคำนึงถึงว่าจะใช้ในการคำนวณด้วยหรือไม่
2.   Record จะประกอบไปด้วยหลาย ๆ ฟิลด์จะมีข้อมูลหลากหลายอยู่ในฟิลด์ เช่น ชื่อ ที่อยู่ เบอร์โทรศัพท์ อาชีพ เงินเดือน
3.   Table จะเป็นการรวมหลาย ๆ เรคคอร์ด ไว้ในฐานข้อมูลเชิงสัมพันธ์ จะเก็บตารางที่มีความสัมพันธ์กันไว้หลาย ๆ ตาราง
                        ตารางจะต้องมีชื่อไม่ซ้ำกัน
                        แต่ละฟิลด์จะบรรจุประเภทข้อมูลเพียงชนิดเดียวเท่านั้น
                        ข้อมูลในแต่ละเรคอร์ดจะต้องไม่ซ้ำกัน
4.   คีย์หลัก(Primary key) คีหลัก หรือเรียกว่า PK หมายถึง ฟิลด์ที่มีข้อมูลไม่ซ้ำกัน เพราะเป็นเรื่องสำคัญมากในระบบฐานข้อมูล เช่น ฟิลด์รหัสลูกค้าจะต้องไม่ซ้ำกันซึ่งจะเป็นข้อมูลประเภท Number ใน 1 ตาราง ควรจะมีคีย์หลักได้เพียง 1 คีย์เท่านั้น และในคีย์หลักต้องไม่เป็นค่าว่าง
5.   คีย์นอก(Foreign Key) คีนอก หรือเรียกว่า FK หมายถึง ฟิลด์หรือคอมบิเนชั่นของตารางหนึ่ง ซึ่งมีความสัมพันธ์กับฟิลด์ในตารางอื่น(ที่เป็นคีย์หลัก PK ) สามารถเชื่อมโยงข้อมูลระหว่างกันได้

2.      คุณสมบัติในการจัดเก็บข้อมูลของรีเลชั่นมีอะไรบ้าง
ตอบ ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribyte ต่าง ๆ ที่จัดเก็บในรูปตาราง 2 มิติ คือ Row, Column
1.      ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
2.      การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ
3.      การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้
4.      ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่ง ๆ จะบรรจุได้เพียงค่าเดียว
5.      ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน

3.      รีเลชั่นประกอบด้วยคีย์ประเภทต่าง ๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่างประกอบประเภทคีย์ดังกล่าว
ตอบ    1. คีย์หลัก (Primary Key)
                        เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์ หรือไม่มีค่าซ้ำกัน โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด
2. คีย์ผสม (Composite Key)
·       การนำฟิลด์ตั้งแต่ 2 ฟิลด์ขึ้นไปมารวมกัน
·       เพื่อให้คุณสมบัติเป็น Primary Key
·       เนื่องจากใช้ฟิลด์ใดฟิลด์หนึ่งเป็น PK จะส่งผลให้ข้อมูลในแต่ละเสคอร์ดซ้ำซ้อนได้
3. คีย์คู่แข่ง (Candidates Key)
                                    ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่งขัน (Candidates Key) เช่น
·       นักศึกษาแต่ละคนมี
-- รหัสประจำตัวนักศึกษา
-- รหัสประจำตัวบัตรประชาชน
·       โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key
โดยเราจะเรียก Candidates Key ที่ถูกเลือกมาใช้เป็นคีย์หลักในตารางว่า “Primary Key” และเรียก Candidates Key ที่ไม่ถูกเลือกเป็นคีย์หลักว่า “คีย์สำรอง Alternate Key
4. คีย์นอก (Foreign Key)
·       เป็นคีย์ที่ใช้ในการเชื่อมโยงข้อมูลระหว่างตารางเข้าด้วยกัน
·       เช่น ฐานข้อมูลของธนาคารแห่งหนึ่งประกอบด้วย 2 ตาราง คือ
- ตารางบัญชีที่ลูกค้าเปิด (เลขประจำตัวลูกค้า, ชื่อ-นามสกุล และประเภทของบัญชี)
 - ตารางลูกค้า (เลขประจำตัวลูกค้า, ชื่อ-นามสกุลและที่อยู่)
หากต้องการทราบว่าลูกค้ารายหนึ่งเปิดบัญชีใดบ้าง ก็เชื่อมโยงข้อมูล 2 ตารางเข้าด้วยกัน โดยใช้เลขประจำตัวลูกค้าเป็น Foreign Key
4.      Null หมายถึงอะไรใน Relational Database
ตอบ Null ใน Relational Database หมายถึง ไม่ทราบค่าข้อมูลที่รู้แน่ชัด เราสามารถกำหนดให้ค่าของคอลัมน์ใด ๆ เป็น Null ได้ (ถ้าเป็นไปได้ควรใส่ให้ครบจะดีที่สุด) ยกเว้นคอลัมน์ที่เป็น Primary Key เพราะจะไม่สามารถนำ Primary Key มาใช้เข้าถึงข้อมูลในแต่ละแถวได้
5.      เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล
ตอบ เนื่องจากฐานข้อมูลไม่สามารถรู้ได้เองว่าข้อมูลที่เก็บอยู่นั้นสอดคล้องกับความเป็นจริงหรือไม่ เราจึงต้องบอกให้ฐานข้อมูลรู้ด้วยสิ่งที่เรียกว่ากฎการควบคุมความถูกต้องของข้อมูล หรือ Data Integrity
6.      ความสัมพันธ์ระหว่างรีเลชั่นมีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ (ห้ามยกตัวอย่างซ้ำกับสไลด์ประกอบการเรียน)
ตอบ ความสัมพันธ์ระหว่างรีเลชั่นมี 3 ประเภท คือ
1.      ความสัมพันธ์แบบหนึ่งต่อหนึ่ง One to One Relationship (1-1)
·       เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด
·       เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลอย่างมากหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง เช่น ความสัมพันธ์ระหว่าง Entity ลูกค้า กับ Passport
o   ลูกค้า 1 คน สามารถมี Passport ได้ 1 ฉบับเท่านั้น
o   เขียนแทนด้วย 1:1    
             
2.      ความสัมพันธ์แบบหนึ่งต่อกลุ่ม One to Many Relationship (1-M)
·       เป็นความสัมพันธ์ที่พบบ่อยที่สุดในฐานข้อมูล
·       เป็นความสัมพันธ์ของข้อมูลใน 1 เรคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษษณะที่เป็นหนึ่งต่อกลุ่ม เช่น ความสัมพันธ์ระหว่าง Entity ลูกค้า กับ ใบเสร็จ
o   ลูกค้า 1 คน อาจมีใบเสร็จได้หลายใบ
o   เขียนแทนด้วย 1: M
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม Many to Many Relationship (M-M)
·       เป็นความสัมพันธ์ที่พบไม่บ่อยนัก
·       เป็นความสัมพันธ์ของข้อมูลในเรคอร์ดใด ๆ ของตารางหนึ่ง มีค่าตรงกับข้อมูลของหลาย ๆ เรคอร์ดในตารางอื่น ๆ เช่น ความสัมพันธ์ระหว่าง Entity อาจารย์ กับ ชั้นเรียน
o   อาจารย์ 1 คน สอนได้หลายชั้นเรียน
o   และ 1 ชั้นเรียนถูกสอนโดยอาจารย์หลายคน
o   เขียนแทนด้วย M:N