หน้าเว็บ

Os

แนวข้อสอบ


1.
ความแตกต่างระหว่างงานแฟ้มข้อมูลกับงานฐานข้อมูล (Traditional File Processing VS Database Systems)
ในสมัยก่อนนั้น การเก็บรวบรวมข้อมูลเพื่อการนำกลับมาใช้บนระบบคอมพิวเตอร์จะอยู่ในรูปของแฟ้มข้อมูลทั้งสิ้น แต่เมื่อโลกมีการพัฒนามากขึ้น ข้อมูลที่ต้องจัดเก็บมีอยู่มากมาย การใช้แต่เพียงแฟ้มข้อมูลเท่านั้น ไม่เพียงพอที่จะสนับสนุนให้ทำงานได้อย่างมีประสิทธิภาพอีกต่อไป จึงทำให้มีการนำเสนอแนวความคิดระบบฐานข้อมูลขึ้น เพื่อจัดการงานที่เกี่ยวข้องกับข้อมูลให้มีประสิทธิภาพสูงสุดเท่าที่จะทำได้ ข้อแตกต่างระหว่างแฟ้มข้อมูลกับฐานข้อมูลคือ
๑. ฐานข้อมูลมีส่วนการบรรยายโครงสร้างข้อมูลแยกจากฐานข้อมูลกล่าวคือ ในระบบฐานข้อมูลนั้นมีส่วนที่เรียกว่า แค็ตตาล็อก (catalog) หรือพจนานุกรมข้อมูล (Data Dictionary) ซึ่งเก็บรายละเอียดทั้งหมดที่เกี่ยวข้องกับโครงสร้างของข้อมูลในฐานข้อมูลไว้ เช่น ชนิดและรูปแบบของข้อมูลในฐานข้อมูล และข้อจำกัดต่าง ๆ ที่มีต่อข้อมูลแต่ละส่วน เป็นต้น ในขณะที่แฟ้มข้อมูลจะเก็บรายละเอียดเหล่านี้ไว้ในส่วนของโปรแกรมคอมพิวเตอร์ที่ใช้งานด้วยกันเลย ซึ่งอาจกระจัดกระจายไปอยู่ตามส่วนต่าง ๆ จึงทำให้ไม่สะดวกต่อการใช้และปรับปรุงงาน
๒. โปรแกรมคอมพิวเตอร์และข้อมูลแยกกันโดยเด็ดขาดในระบบฐานข้อมูล นั่นคือ ส่วนของโปรแกรมคอมพิวเตอร์ที่ใช้จัดการข้อมูลจะถูกพัฒนาออกมา ซึ่งเรียกกันว่า ระบบจัดการฐานข้อมูล ส่วนข้อมูลก็จะแยกอยู่ในส่วนของฐานข้อมูล ซึ่งการแยกนี้เป็นการซ่อนรายละเอียดของการจัดการข้อมูลไว้จากตัวข้อมูล เพื่อผู้ใช้จะได้ไม่ต้องยุ่งยากกับรายละเอียดของการจัดเก็บข้อมูล โดยให้ซอฟต์แวร์จัดการฐานข้อมูลเป็นเครื่องมือจัดการให้แทน ซึ่งแตกต่างจากระบบแฟ้มข้อมูลที่จะรวมส่วนของโปรแกรมและข้อมูลไว้ด้วยกัน ผลเสียก็คือ เมื่อมีการเปลี่ยนแปลงโครงสร้างของข้อมูล ส่วนของโปรแกรมก็จะต้องปรับตามไปด้วย มิฉะนั้น แฟ้มข้อมูลดังกล่าวก็จะไม่สามารถนำมาใช้งานได้อีก
๓. ฐานข้อมูลสนับสนุนการใช้งานของข้อมูลในหลาย ๆ รูปแบบผู้ใช้คนหนึ่งอาจจะต้องการรายงาน หรือข้อสรุปของข้อมูลชุดหนึ่งในหลาย ๆ รูปแบบ ทั้งแบบตาราง แบบกราฟและแบบบทความ ซึ่งในส่วนนี้ ระบบจัดการฐานข้อมูลจะเป็นผู้ดูแลให้แก่ผู้ใช้ ส่วนในแนวคิดแบบแฟ้มข้อมูลนั้น เมื่อผู้ใช้ต้องการรายงานแบบใหม่ ผู้ใช้จะต้องเขียนโปรแกรมขึ้นมาใหม่ เพื่อให้ได้งานอย่างที่ต้องการ ซึ่งค่อนข้างยุ่งยากและเสียเวลาในการใช้งานอย่างมาก
๔. การใช้ข้อมูลร่วมกันและการประมวลผลการเปลี่ยนแปลงรายการแบบหลายผู้ใช้ (multiuser transaction processing) ระบบจัดการฐานข้อมูลสำหรับผู้ใช้หลาย ๆ คนพร้อมกันต้องมีการอนุญาตให้ผู้ใช้เข้าถึงข้อมูลในเวลาเดียวกันได้ โดยที่ระบบจะต้องจัดการข้อมูลให้แก่ผู้ใช้แต่ละคนอย่างถูกต้องด้วย ถึงแม้ว่าผู้ใช้เหล่านั้นจะเรียกใช้ข้อมูลเดียวกัน ณ เวลาเดียวกัน ในระบบจัดการฐานข้อมูลจะต้องมีส่วนควบคุมการทำงานแบบพร้อมกัน (Concurrency Control) ซึ่งในการทำงานแบบแฟ้มข้อมูลจะไม่มีส่วนจัดการในเรื่องนี้

ข้อดีของฐานข้อมูล
การจัดเก็บข้อมูลเป็นฐานข้อมูลได้เปรียบกว่าการจัดเก็บข้อมูลแบบแฟ้มข้อมูล  ดังนี้
1. หลีกเลี่ยงความขัดแย้งของข้อมูล  การจัดเก็บข้อมูลแบบแฟ้มข้อมูล  โดยข้อมูลเรื่องเดียวกันอาจมีอยู่หลายแฟ้มข้อมูล     ซึ่งก่อให้เกิดความขัดแย้งของข้อมูลได้  (Inconsistency)  
2. สามารถใช้ข้อมูลร่วมกันได้  ฐานข้อมูลเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน  เมื่อผู้ใช้ต้องการข้อมูลจากฐานข้อมูล  
     ซึ่งเป็นข้อมูลที่มาจากแฟ้มข้อมูลที่แตกต่างกันจะทำได้ง่าย
3. สามารถลดความซ้ำซ้อนของข้อมูล การจัดเก็บข้อมูลในลักษณะแฟ้มข้อมูล  อาจทำให้ข้อมูลประเภทเดียวกันถูกเก็บ
     ไว้หลาย ๆ แห่ง  ทำให้เกิดความซ้ำซ้อน (Reclundancy) การนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะช่วยลดปัญหา
     ความซ้ำซ้อนได้
4. รักษาความถูกต้อง  ฐานข้อมูลบางครั้งอาจมีข้อผิดพลาดขึ้น  เช่น  การป้อนข้อมูลผิด ซึ่งระบบการจัดการฐานข้อมูล
      สามารถระบุกฎเกณฑ์เพื่อควบคุมความผิดพลาดที่อาจเกิดขึ้นได้
5. สามารถกำหนดความเป็นมาตรฐานเดียวกันได้  เพราะในระบบฐานข้อมูลจะมีกลุ่มบุคคลที่คอยบริหารฐานข้อมูล  
     กำหนดมาตรฐานต่าง ๆ ในการจัดเก็บข้อมูลในลักษณะเดียวกัน
6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้  ผู้บริหารระบบฐานข้อมูลสามารถกำหนดการเรียกใช้ข้อมูลของ
    ผู้ใช้แต่ละคนให้แตกต่างกันตามหน้าที่ ความรับผิดชอบได้ง่าย
7. ความเป็นอิสระของข้อมูลและโปรแกรม  โปรแกรมที่ใช้ในแต่ละแฟ้มข้อมูลจะมีความสัมพันธ์กับแฟ้มข้อมูลโดยตรง  
    ถ้าหากมีการแก้ไขเปลี่ยนแปลงโครงสร้างข้อมูลก็ทำการแก้ไขโปรแกรมนั้น ๆ 

ข้อเสียของฐานข้อมูล
การเก็บข้อมูลรวมเป็นฐานข้อมูลมีข้อเสีย  ดังนี้คือ
1. มีต้นทุนสูง  ระบบฐานข้อมูลก่อให้เกิดต้นทุนสูง  เช่น  ซอฟท์แวร์ที่ใช้ในการจัดการระบบฐานข้อมูล  บุคลากร  ต้นทุน
    ในการปฏิบัติงาน  และ  ฮาร์ดแวร์  เป็นต้น
2. มีความซับซ้อน  การเริ่มใช้ระบบฐานข้อมูล  อาจก่อให้เกิดความซับซ้อนได้  เช่น  การจัดเก็บข้อมูล  การออกแบบฐาน
     ข้อมูล  การเขียนโปรแกรม  เป็นต้น
3. การเสี่ยงต่อการหยุดชะงักของระบบ  เนื่องจากข้อมูลถูกจัดเก็บไว้ในลักษณะเป็นศูนย์รวม (Centralized  Database   System) ความล้มเหลวของการทำงานบางส่วนในระบบอาจทำให้ระบบฐานข้อมูลทั้งระบบหยุดชะงักได้



2.อธิบายคำศัพท์ ฐานข้อมูลเชิงสำพัน ออกคำสั่ง 5 คี
ฐานข้อมูลเชิงสัมพันธ์ คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มีความสัมพันธ์กัน ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column) ในทางทฤษฎีจะมีคำศัพท์เฉพาะแตกต่างออกไป เนื่องจากแบบจำลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท (Set) ดังนั้น เราจะมีคำศัพท์เฉพาะดังตารางที่ 3.1นี้
ตารางที่ 3.1 คำศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์
ศัพท์เฉพาะ
ศัพท์ทั่วไป
รีเลชั่น (Relation)
ตาราง (Table)
ทูเปิล (Tuple)
แถว (Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน
แอททริบิวท์ (Attribute)
คอลัมน์ (Column) หรือฟิลด์ (Field)
คาร์ดินัลลิติ้ (Cardinality)
จำนวนแถว (Number of rows)
ดีกรี (Degree)
จำนวนแอททริบิวท์ (Number of attribute)
คีย์หลัก (Primary key)
ค่าเอกลักษณ์ (Unique identifier)
โดเมน (Domain)
ขอบข่ายของค่าของข้อมูล (Pool of legal values)
3.2.3. คีย์ (Key)
คีย์ คือ แอตทริบิวส์ หรือ กลุ่มของแอตทริบิวส์ที่สามารถแยกความแตกต่างของข้อมูล ในแต่ละทูเพิลได้ หรือแอตทริบิวส์ที่ข้อมูลในแอตทริบิวส์นั้นต้องมีข้อมูลที่ไม่ซ้ำกัน ซึ่งคีย์ มีอยู่หลายชนิดด้วยกัน ได้แก่
3.2.3.1. คีย์อย่างง่าย (Simple key) หมายถึง key ที่ประกอบด้วย attribute เดียว
3.2.3.2. คีย์ประกอบ (Combine key หรือ Composite key) หมายถึง key ที่ ประกอบด้วย attribute มากกว่า 1 attribute
3.2.3.3. คีย์คู่แข่ง (Candidate Key) คือคีย์ที่เล็กที่สุด ที่แยกความแตกต่างของข้อมูล แต่ละทูเพิลได้ ยกตัวอย่างเช่น ในรีเลชัน Student มีข้อมูลที่สามารถเป็นคีย์คู่แข่ง คือแอตทริบิวส์ รหัสนักศึกษา และการใช้แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งทั้งสองแบบสามารถระบุความแตกต่าง ของข้อมูล แต่ละทูเพิลได้
3.2.3.4. คีย์หลัก (Primary Key) คือคีย์คู่แข่งซึ่งได้เลือกมาเพื่อใช้กำหนดให้เป็นค่าคีย์ หลักของ รีเลชัน ซึ่งข้อมูลที่เป็นคีย์หลักนั้นจะต้องมีข้อมูลที่ไม่ซ้ำกัน และมักจะเลือกคีย์คู่แข่ง ที่มีขนาดเล็กมาเป็นคีย์หลัก ตัวอย่างเช่น การเลือกแอตทริบิวส์รหัสนักศึกษา มาเป็นค่าคีย์หลัก เนื่องจาก มีขนาดเล็กกว่าแอตทริบิวส์ ชื่อ รวมกับ นามสกุล ซึ่งจะทำให้การทำงานเร็วกว่า เนื่องจากมีขนาดเล็กกว่า
3.2.3.5. คีย์รอง (Alternate Key หรือ Secondary key) คือคีย์คู่แข่งอื่นๆ ที่ไม่ได้ ถูกเลือกมาใช้งาน ยกตัวอย่างเช่น แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งไม่ได้ถูกเลือกให้เป็นคีย์หลักของรีเลชัน ก็จะกลายเป็น Alternate Key
3.2.3.6. คีย์นอก (Foreign Key)เป็นคีย์ที่ใช้เชื่อมความสัมพันธ์ของรีเลชัน


3.DBms คืออะไร ทำหน้าที่อะไรบ้าง

 DBMS คือ ระบบการจัดการฐานข้อมูล หรือซอฟต์แวร์ที่ดูแลจัดการเกี่ยวกับฐานข้อมูล โดยอำนวยความสะดวกให้แก่ผู้ใช้ทั้งในด้านการสร้าง การปรับปรุงแก้ไข
การเข้าถึงข้อมูล และการจัดการเกี่ยวกับระบบแฟ้มข้อมูลทางกายภาพ ภายในฐานข้อมูลซึ่งต่างไปจากระบบแฟ้มข้อมูลคือ หน้าที่เหล่านี้จะเป็นของโปรแกรมเมอร์ ในการติดต่อฐานข้อมูลไม่ว่าจะด้วยการใช้คำสั่งในกลุ่ม DML หรือ DDL หรือ จะด้วยโปรแกรมต่างๆ ทุกคำสั่งที่ใช้กระทำกับฐานข้อมูลจะถูกโปรแกรม DBMS นำมาแปล (Compile) เป็นการกระทำต่างๆภายใต้คำสั่งนั้นๆ เพื่อนำไปกระทำกับตัวข้อมูลใน ฐานข้อมูลต่อไป 
   DBMS ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาด้าน Data Independence ที่ไม่มีในระบบแฟ้มข้อมูล ทำให้มีความเป็นอิสระจากทั้งส่วนของฮาร์ดแวร์ และข้อมูลภายในฐานข้อมูลกล่าวคือโปรแกรม DBMS นี้จะมีการทำงานที่ไม่ขึ้นอยู่กับรูปแบบ (Platform) ของตัวฮาร์ดแวร์ ที่นำมาใช้กับระบบฐานข้อมูลรวมทั้งมีรูปแบบในการอ้างถึงข้อมูลที่ไม่ขึ้นอยู่กับโครงสร้างทางกายภาพของข้อมูลด้วยการใช้ Query Language ในการติดต่อกับข้อมูลในฐานข้อมูลแทนคำสั่งภาษาคอมพิวเตอร์ในยุคที่ 3 ส่งผลให้ผู้ใช้สามารถเรียกใช้ข้อมูลจากฐานข้อมูลได้โดยไม่จำเป็นต้องทราบถึงประเภทหรือขนาดของข้อมูลนั้นหรือสามารถกำหนดลำดับที่ของฟิลด์ ในการกำหนดการแสดงผลได้โดยไม่ต้องคำนึงถึงลำดับที่จริงของฟิลด์ นั้น
   หน้าที่ของ DBMS
1.) ทำหน้าที่แปลงคำสั่งที่ใช้จัดการกับข้อมูลภายในฐานข้อมูลให้อยู่ในรูปแบบที่ข้อมูลเข้าใจ
2.) ทำหน้าที่ในการนำคำสั่งต่างๆ ซึ่งได้รับการแปลแล้วไปสั่งให้ฐานข้อมูลทำงาน เช่น การเรียกใช้ข้อมูล (Retrieve) การจัดเก็บข้อมูล (Update) การลบข้อมูล (Delete) หรือ การเพิ่มข้อมูลเป็นต้น (Add) ฯลฯ
3.) ทำหน้าที่ป้องกันความเสียหายที่จะเกิดขึ้นกับข้อมูลภายในฐานข้อมูล โดยจะคอยตรวจสอบว่าคำสั่งใดที่สามารถทำงานได้และคำสั่งใดที่ไม่สามารถทำได้
4.) ทำหน้าที่รักษาความสัมพันธ์ของข้อมูลภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ
5.) ทำหน้าที่เก็บรายละเอียดต่าง ๆ ที่เกี่ยวข้องกับข้อมูลภายในฐานข้อมูลไว้ใน data dictionaryซึ่งรายละเอียดเหล่านี้มักจะถูกเรียกว่า "ข้อมูลของข้อมูล" (Meta Data)
6.) ทำหน้าที่ควบคุมให้ฐานข้อมูลทำงานได้อย่างถูกต้องและมีประสิทธิภาพ

ยกตัวอย่าง เช่น การจัดทำ DBMS  แต่ละหน่วยงานจัดเก็บข้อมูลเอง อาจมีข้อมูลในส่วนที่เหมือนกัน หลายส่วน เช่น ฝ่ายบัญชี เก็บข้อมูล ชื่อ ที่อยู่ เบอร์โทรศัพท์ ของพนักงาน และ ฝ่ายบุคคล เก็บข้อมูล ชื่อ ที่อยู่ เบอร์โทรศัพท์ ของพนักงาน ถ้ามีการแก้ชื่อนามสกุลที่ ฝ่ายบุคคล ชื่อและนามสกุลที่ฝ่ายบัญชีก็จะถูกเปลี่ยนแปลงด้วย เนื่องจาก ฝ่ายบัญชีจะดึงข้อมูลชื่อ-นามสกุล จากฝ่ายบุคคลมาใช้ เป็นต้น



4.นอร์ไลเซชั่น วัตถุประสง ขั้นตอน


นอมัลไลเซชั่น ( Normalization )
เป็นวิธีการที่ใช้ในการตรวจสอบและแก้ไขปัญหาทางด้านความซ้ำซ้อนของข้อมูลโดยดำเนินการให้ข้อมูล  ในแต่ละ Relation อยู่ในรูปที่เป็นหน่วยที่เล็กที่สุดที่ไม่สามารถ   แตกออกเป็นหน่วยย่อยๆได้อีก เพราะการออกแบบฐานข้อมูลที่ดี ต้องไม่มีความซ้ำซ้อนในการจัดเก็บข้อมูหรือไม่มีความซ้ำซ้อนเลย  ซึ่งต้องอาศัยหลักการทำนอมัลไลเซชั่น
นอมัลไลเซชั่นแต่ละขั้นตอนจะมีชื่อตามโครงสร้างข้อมูลที่กำหนดไว้ดังนี้
1. First Normal Form (1NF)
2. Second Normal Form (2NF)
3. Third Normal Form (3NF)
4. Boyce-Codd Normal Form (BCNF)
5. Fourth Normal Form (4NF)
6. Fifth Normal Form (5NF)

สรุป  Normalization คือ กระบวนที่ดำเนินการอย่างเป็นลำดับ เพื่อลดปัญหาการซ้ำซ้อนของข้อมูล 



5.เขียน Er ไดอะแกม นำ Er ไปทำ โนโวไรเสตชั่น

บท ที่ 6