20 ก.ค. 2554

Hierarchical data model

ฐานข้อมูลแบบลำดับขั้น (Hierarchical data model)
                การออกแบบฐานข้อมูล (Designing Databases) มีความสำคัญต่อการจัดการระบบฐานข้อมูล (DBMS) ทั้งนี้เนื่องจากข้อมูลที่อยู่ภายในฐานข้อมูลจะต้องศึกษาถึงความสัมพันธ์ของข้อมูล โครงสร้างของข้อมูลการเข้าถึงข้อมูลและกระบวนการที่โปรแกรมประยุกต์จะเรียกใช้ฐานข้อมูล
               
ฐานข้อมูลแบบลำดับขั้น หรือโครงสร้างแบบลำดับขั้น (Hierarchical data model) วิธีการสร้างฐาน ข้อมูลแบบลำดับขั้นถูกพัฒนาโดยบริษัท ไอบีเอ็ม จำกัด ในปี 1980 ได้รับความนิยมมาก ในการพัฒนาฐานข้อมูลบนเครื่องคอมพิวเตอร์ขนาดใหญ่และขนาดกลาง โดยที่โครงสร้างข้อมูลจะสร้างรูปแบบเหมือนต้นไม้ โดยความสัมพันธ์เป็นแบบหนึ่งต่อหลาย (One- to -Many) ดังรูป แสดงโครงสร้างลำดับขั้นของผู้สอนทักษะผู้สอน หลักสูตรที่สอน



 แสดงโครงสร้างลำดับขั้นของผู้สอน ทักษะผู้สอน หลักสูตรที่สอน

    แสดงส่วนประกอบของระบบจัดการฐานข้อมูล (Elements of a database management systems) ข้อดีและข้อเสียของระบบการจัดการฐานข้อมูล ระบบการจัดการฐานข้อมูลจะมีทั้งข้อดีและข้อเสียในการที่องค์การจะนำระบบนี้มาใช้กับหน่วยงาของตนโดยเฉพาะหน่วยงานที่เคยใช้คอมพิวเตอร์แล้วแต่ได้จัดแฟ้มแบบดั้งเดิม (Convention File) การที่จะแปลงระบบเดิมให้เป็นระบบใหม่จะทำได้ยากและไม่สมบูรณ์ ไม่คุ้มกับการลงทุน ทั้งนี้เนื่องจากค่าใช้จ่าในการพัฒนาฐานข้อมูลจะต้องประกอบด้วย
วิธีการจัดแบบลำดับขั้นเป็นการจัดกลุ่มของข้อมูลที่มีความสัมพันธ์กันและกำหนดให้เป็นเซ็กเมนต์ (Segment) โดยมีการแยกประเภทของเซ็กเมนต์ว่าเป็นเซ็กเมนต์ราก (Root segment) หรือ เซ็กเมนต์ที่เป็นตัวพึ่ง(Dependent segment) แสดงถึงฐานข้อมูลของฝ่ายที่มีการเปิดอบรมของบริษัทหนึ่งซึ่งจัดอยู่ในรูปแบบลำดับขั้น เซ็กเมนต์ที่เป็นราก คือ ชื่อฝ่าย (Department name) โดยมีเซ็กเมนต์ที่เป็นตัวพึ่ง 2 เซ็กเมนต์คือ เซ็กเม็นผู้สอน(Instructor) และหลักสูตร (Course) สำหรับเซ็กเมนต์ผู้สอนก็จะมีตัวพึ่งอีก 1 เซ็กเมนต์ คือ เซ็กเมนต์ความชำนาญ(Skill) ส่วนเซ็กเมนต์หลักสูตรก็จะมีตัวพึ่งเป็นเซ็กเมนต์เปิดสอนโดยและเข้าเซ็กเมนต์สุดท้ายก็คือเซ็กเมนต์ผู้เรียนซึ่งเป็นตัวพึ่งของเซ็กเมนต์เปิดสอนโดย
การติดต่อของข้อมูลแบบลำดับขั้นจำเป้นจะต้องอาศัยตัวชี้ (Pointer) ซึ่งสามารถแบ่งตัวชี้ออกเป็น 2 ประเภท คือ
1. ตัวชี้เซ็กเมนต์ที่เป็นตัวพึ่ง (Child Pointer)
2. ตัวชี้เซ็กเมนต์ระดับเดียวกัน (Twin Pointer)
ข้อดีและข้อเสีย
                สามารถสร้างความสัมพันธ์ให้เด่นชัดของข้อมูลแต่ละลำดับว่าข้อมูลเป็นเซ็กเมนต์ราก หรือเป็นพ่อแม่(Parent) และข้อมูลเป็นเซ็กเมนต์ตัวพึ่งหรือตัวลูก (Child) ส่วนข้อเสีย โครงสร้างแบบนี้มีความคล่องตัวน้อย เพราะต้องเริ่มอ่านจากเซ็กเมนต์ที่เป็นรากก่อน นอกจากนั้นการออกแบบฐาน ข้อมูลต้องระมัดระวังการซ้ำซ้อนของข้อมูล

ที่มา : http://irrigation.rid.go.th/rid15/ppn/Knowledge/Database/database4.htm 

SQL

เอสคิวแอล (SQL)
เอสคิวแอล (SQL) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
SQL เป็นภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เราสามารถแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้
1.     Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
2.
Update query ใช้สำหรับแก้ไขข้อมูล
3.
Insert query ใช้สำหรับการเพิ่มข้อมูล
4.
Delete query ใช้สำหรับลบข้อมูลออกไป

Select query
ใช้ในการดึงข้อมูลในฐานข้อมูล จะมีการค้นหารายการจากตารางในฐานข้อมูล ตั้งแต่หนึ่งตารางขึ้นไป ตามเงื่อนไขที่สั่ง ผลลัพธ์ที่ได้จะเป็นเซตของข้อมูลที่สามารถสร้าง เป็นตารางใหม่ หรือใช้แสดงออกมาทางจอภาพเท่านั้น  โดยมีรูปแบบดังนี้ Select รายละเอียดที่เลือก From ตารางแหล่งที่มา Where กำหนดเงื่อนไขฐานข้อมูลที่เลือก Group by ชื่อคอลัมน์

Update query
ใช้สำหรับการแก้ไขข้อมูลในตาราง โดยแก้ในคอลัมน์ที่มีค่าตรงตามเงื่อนไข มีรูปแบบดังนี้
Update ชื่อตาราง Set [ชื่อคอลัมน์=ค่าที่จะใส่เข้าไปในคอลัมน์นั้น ] Where เงื่อนไข
ตัวอย่างเช่น  จากตารางแสดงรายชื่อนักศึกษากรณีที่นักศึกษาชื่อ สมบัติ มักน้อย ย้ายโปรแกรมวิชา จาก สังคมศึกษา ไปเป็นภาษาไทย เราใช้คำสั่งดังนี้
Select stdinfo Set programe=’ภาษาไทย’ Where Fname=’สมบัติ’ and Lname=’มักน้อย

Insert query
ใช้ในการเพิ่มเติมข้อมูลใหม่ เข้าไปในฐานข้อมูล มีรูปแบบดังนี้
Insert Into ชื่อตาราง [=ชื่อคอลัมน์1,2..] Values [ค่าที่จะใส่ลงในคอลัมน์ 1,2…]
ตัวอย่างเช่น ต้องการเพิ่มรายชื่อนักศึกษา ที่มีรหัสประจำตัวเป็น 007 ชื่อ กมลวรรณ ศิริกุล โปรแกรมวิชา วิทยาศาสตร์ เราสามารถใช้คำสั่งดังนี้
Insert into stdinfo (id,fname,lname,programe) Values (‘007’,’กมลวรรณ’,’ศิริกุล’,’ วิทยาศาสตร์’)

Delete query
ใช้ลบข้อมูลออกจากตาราง มีรูปแบบดังนี้
Delete From ชื่อตาราง Where เงื่อนไข
ตัวอย่างเช่น ต้องการลบรหัสประจำตัวนักศึกษา 005 ออกจากฐานข้อมูล เราใช้คำสั่งดังนี้
Delete From stdinfo Where id=’005