SQL กับงานมาตรฐานตัวบ่งชี้และหลักสูตรการศึกษาปี 2560

Post ที่เห็นนี้เป็นการรีโพส ดึงข้อมูลกลับคืนมา หลังจากที่เวบถูกแฮกและลบข้อมูลทิ้งไปครับ

SQL กับงานมาตรฐานตัวบ่งชี้และหลักสูตรการศึกษาปี 2560

เป็นบันทึกกันลืม เรื่องของเทคนิคที่ใช้งานในการแก้ไขเอกสาร งานหลักสูตรการศึกษา ปีการศึกษา 2560

เริ่มต้นจาก ความต้องการของคณะผู้ตรวจงาน ที่ต้องการทราบความสัมพันธ์ระหว่างมาตรฐานตัวชี้วัดการศึกษากับตัวหน่วยการ เรียนรู้ว่ามีอะไรบ้าง

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

การจัดเตรียมข้อมูล
1.ในเบื้องต้น มีการเตรียมข้อมูลมาแล้วส่วนหนึ่ง จากไฟล์ pdf ที่มีอยู่ ให้เป็นข้อมูลสำหรับใช้งานในโปรแกรมสำนักงาน MSOffice อันได้แก่ Word และ Excel
2.พบปัญหาแรก ที่เกิดขึ้นกับข้อมูลคือ ความเป็นเอกภาพระหว่างคำ และ ความไม่สอดคล้องกันของการจัดกลุ่มตัวบ่งชี้ในเอกสารสำหรับแต่ละระดับชั้นได้ เกิดขึ้นเป็นบางเอกสาร
3.ปัญหาประการถัดมาคือ พบการซ้ำกันของชุดข้อมูลที่มีอยู่เป็นจำนวนมาก นับเป็นจำนวนกว่าร้อยบรรทัด
4.การขาดความเป็นเอกภาพของข้อมูล ทำให้เกิดความยุ่งยากในการจัดระเบียบข้อมูลเพื่อการใช้งาน
5.ปัญหา อีกประการหนึ่งที่สำคัญคือ ปัญหาของตัวข้อมูลที่เป็นภาษาไทย ซึ่งจะเกิดขึ้นเมื่อมีการใช้วิธีการทางคอมพิวเตอร์เข้ามาช่วยในการทำงาน

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

แนวทางประการต่อมา คือ การใช้ความสามารถของคอมพิวเตอร์เข้ามาช่วยในการทำงาน
สิ่งที่ต้องมีก่อน สำหรับ การใช้งานตามแนวทางนี้ ได้แก่
1. เป็นผู้มีความรู้ ความเข้าใจในการใช้โปรแกรมสำนักงานจำพวก MS Office เช่น Word และ Excel สามารถใช้งานคำสั่งต่างๆ ในระดับปานกลางได้
2. ต้องเคยเขียนหรือมีประสบการณ์ในการใช้โปรแกรมจำพวก ฐานข้อมูล มาก่อน และ/หรือ ใช้ ภาษา sql เป็น(Access อาจพอถูไถได้ แต่จะให้ดี หรือใกล้เคียง ควรเป็นโปรแกรมที่ใช้ฐานข้อมูลแบบ mysql หรืออื่นใดที่ใกล้เคียงก็ได้)
3. มีความรู้ ความเข้าใจด้านการจัดการข้อมูลเบื้องต้น อยู่บ้าง
4. ควรมีความรู้ ความเข้าใจในเรื่องการเขียนโปรแกรมภาษาใด ภาษาหนึ่งในระดับปานกลาง(ตรงนี้เป็นส่วนเสริม เพื่อเพิ่มประสิทธิภาพให้ได้มากขึ้น กว่าเทคนิคที่แนะนำอยู่นี้)

ในที่นี้ อาจเป็นโชคดีของผู้เขียนที่ผ่านประสบการณ์ที่ว่านั้น มาหมดแล้ว

สำหรับเทคนิคที่ใช้ในการทำงานครั้งนี้ มีดังนี้
1.การหารูปแบบหลักของข้อมูล เพื่อจะได้ใช้วิธีการทางคอมพิวเตอร์มาจัดการกับมัน
1.1 ในครั้งแรกๆ คิดจะใช้จำพวกคำสั่งพื้นฐานของโปรแกรม Office เช่น คำสั่ง find replace มาช่วย แต่ปรากฎปัญหาเรื่องความไม่เป็นเอกภาพของข้อมูล แนวทางนี้จึงตกไป
1.2 ย้อนกลับมาตั้งหลักกันใหม่
เริ่มต้นที่ตัว มาตรฐาน 12 มาตรฐาน โดยจัดทำรูปแบบไว้ เป็นแนวตารางชุดหนึ่งที่ประกอบไปด้วยตัวมาตรฐานและจับคู่กับตัวบ่งชี้ย่อยๆ จนหมด โดยกำหนดเป็นเลขรหัสเอาไว้ชุดหนึ่ง
จากนั้น ย้อนมาที่กลุ่มชุดข้อมูลที่ถูกแบ่งไว้ตามหน่วยการเรียนรู้ทั้ง 36 หน่วย เพื่อพิจารณา ค้นหาหรือสร้างรูปแบบของข้อมูลขึ้นมาใหม่
จากการพิจารณา แล้วพบความซ้ำกันของชุดข้อมูลเป็นจำนวนมาก และความแตกต่างส่วนใหญ่จะอยู่ที่ส่วนท้ายของข้อมูล รวมถึงรูปแบบ ลักษณะเฉพาะบางอย่างของตัวข้อมูลส่วนใหญ่จะเป็นไปในแบบที่คล้ายคลึงกัน
แต่เนื่องจากเนื้อหาของข้อมูลที่กล่าวมาข้างต้นทั้งหมดเป็นลักษณะของข้อมูลภาษาไทยที่มีความซับซ้อนอยู่แล้วในระดับหนึ่ง
จึงต้องทำการเปลี่ยนเนื้อหาในส่วนของภาษาไทยให้เป็นภาษาอังกฤษทั้งหมด เพื่อให้ง่ายต่อการใช้วิธีการประมวลผลด้วยคอมพิวเตอร์
ผล พลอยได้ของเรื่องนี้ นั่นก็คือ ความเป็นเอกภาพของข้อมูล เนื่องจากสิ่งที่เปลี่ยนไป จะมีเพียงแค่ ตัวเลขของมาตรฐานและตัวบ่งชี้ย่อยๆที่ขึ้นอยู่กับแต่ละมาตรฐานเหล่านั้น เท่านั้น
1.3 สำหรับการกำหนดรหัส พบว่า ส่วนท้ายของข้อมูลสามารถทำให้สอดคล้องกับเลขรหัสที่ระบุไว้ในตารางมาตรฐาน หลักได้ และความแตกต่างของข้อมูลทั้งหมดเกิดขึ้น ณ ส่วนท้ายของข้อมูลตามที่ได้กล่าวมาแล้วในข้อ 1.2 ดังนั้น สิ่งที่ต้องทำก็คือ การดึงเอาส่วนท้ายของข้อมูลเหล่านั้นออกมาใช้งาน เท่านั้น ก็พอ
1.4 สำหรับการดึงเอาส่วนท้ายของข้อมูลออกมา มีอยู่หลากหลายวิธี ดังนี้
1.4.1 Regular Expression วิธีนี้ ต้องใช้ร่วมกับคำสั่งตัดสายอักขระ โดยเป็นการกำหนดรูปแบบของข้อมูลที่ต้องการจากนั้นให้ใช้ชุดคำสั่งตัดสาย อักขระตัดเอาสิ่งที่สอดคล้องตามรูปแบบนี้ออกมาใช้งาน จากการอธิบายฟังดูเหมือนจะง่าย แต่วิธีการและแนวทางในการใช้งานนั้น ค่อนข้างจะยาก เนื่องจากต้องอาศัยประสบการณ์ในการเรียนรู้ระยะหนึ่ง และต้องมีพื้นฐานในเรื่องของการเขียนโปรแกรมในภาษาที่รองรับการใช้ Regular Expression อีกด้วย ทำให้เพิ่มความยากขึ้นไปอีก ฉะนั้น แนวทางนี้ จึงต้องตกไป ทั้งที่ความจริงแล้ว จะเป็นการใช้งานที่มีประสิทธิภาพมากที่สุด
1.4.2 การใช้คำสั่งตัดสายอักขระธรรมดา ตรงนี้ ต้องใช้ความสามารถและพื้นฐานในด้านการเขียนโปรแกรมภาษาใดภาษาหนึ่งอีกเช่น กัน ฉะนั้น ก็ตกไปอีกอยู่ดี
1.4.3 นำข้อมูลเข้าไปอยู่ในโปรแกรมสำนักงาน spreadsheet จากนั้นค่อยใช้คำสั่งภายในที่มือยู่นั้นทำการตัดเอาเฉพาะข้อมูลส่วนท้ายนั้น ออกมาก็พอ
สำหรับผู้เขียน ได้เลือกวิธีการที่ 1.4.3 แต่ลืมนึกถึงการจัดเตรียมข้อมูลเพื่อให้ได้มาซึ่งส่วนท้ายของข้อมูลเหล่า นั้นซึ่งกล่าวไว้แล้วข้างต้น จึงทำให้แนวทางที่เลือกไว้นั้น กลับกลายเป็นอะไรที่ยากและเสียเวลาไปอีกพักใหญ่ เพราะกลายเป็นว่าต้องใช้โปรแกรมจำพวก Text Editor มาช่วยในการทำงานเพื่อช่วยในการจัดรูปแบบของข้อมูล
1.5 การจัดรูปแบบข้อมูลเพื่อใช้งานในส่วนท้ายนั้น จะต้องจัดเรียงข้อมูลไว้ในรูปแบบดังนี้ คือ STDxx IDX xx.xx (xx.xx.xx)
โดยข้อมูลที่จะนำไปใช้นั้น คือ ตัวข้อมูลที่อยู่ระหว่างเครื่องหมายวงเล็บ ( )
สำหรับ ชุดข้อมูลที่มีอยู่นั้น บางส่วนมีรูปแบบคล้ายกันกับรูปแบบที่กล่าวข้างต้นอยู่แล้ว แต่บางส่วนก็ ไม่มี ทำให้ต้องเสียเวลาในการจัดเตรียมข้อมูลอยู่อีกพอสมควรจึงจะได้ชุดของข้อมูล ในแบบพร้อมใช้งาน ด้วยการจัดการผ่านโปรแกรม Text Editor
1.6 สำหรับวิธีการตามแนวทางที่ 1.4.3 เป็นดังนี้
ใช้วิธีการแตกข้อมูลออกมาเพื่อไปให้ถึงชุดข้อมูลท้าย
1.6.1 ในครั้งแรกใช้การแตกข้อมูลลงไปในคอลัมน์จากคำสั่ง text to column พบว่า ได้ผล แต่ก็พบปัญหาในเรื่องการจัดการของข้อมูลเพราะข้อมูลชุดหนึ่งๆ มีไม่ต่ำกว่า 500 บรรทัด การทำซ้ำๆกันแบบนี้ ไม่ใช่เรื่องที่สนุกนัก จึงต้องใช้วิธีการถัดมา
1.6.2 ใช้คำสั่งจัดการเกี่ยวกับอักขระในเซลล์ข้อมูล ได้แก่ คำสั่งหาความยาวสายอักขระ และคำสั่งตัดสายอักขระ ในที่นี้เลือกตัดมาจากด้านท้ายของสายอักขระ วิธีนี้ ดูง่ายขึ้นมาหน่อย แต่ทุกตัวอักขระที่ปรากฎจากท้าย เราต้องนับมันให้หมด แค่นั้นเอง
เมื่อ ได้ข้อมูลส่วนท้ายมาแล้ว ทีนี้ ต้องมาทำการแตกย่อยลงไปอีก โดยเลือกไปแต่เฉพาะตัวเลขเพื่อนำไปใส่ในรูปแบบเลขรหัสที่กำหนดไว้นั่นคือ idxxxxx โดยที่ ตำแหน่ง xxxx คือตัวเลขภายในวงเล็บตรงส่วนท้ายนั่นเอง
ณ จุดนี้ ให้ใช้วิธีการเลือกตัวอักขระออกมาก่อนแล้วค่อยนำมันมาต่อเข้าด้วยกันกับอักษรบอกรหัสที่ได้กำหนดไว้ก่อนหน้า
ซึ่ง ทั้งหมดนี้ ใช้การ copy และ paste function ในโปรแกรม spreadsheet เข้ามาช่วย ยังไม่รวมถึงการจัดจำนวนตัวอักขระ เพื่อให้ได้มาซึ่งรูปแบบที่ถูกต้อง ซึ่งเสียเวลาอยู่พอสมควร
1.7 นำรหัสที่สร้างได้ไปแยกอยู่กันเป็นกลุ่มๆตามที่ถูกระบุไว้ในหน่วยการเรียน รู้ต่างๆ โดยสร้างเป็นตารางขึ้นมาใหม่อีก 1 ตาราง ที่ประกอบด้วย รหัสที่สร้างขึ้นมาใหม่ จับคู่อยู่กับหน่วยการเรียนรู้ต่างๆ ในที่นี้ กำหนดอักษรย่อเป็น Ux โดยที่ x คือเลขที่หน่วยการเรียนรู้
2. เมื่อได้รหัสมาแล้ว ขั้นตอนต่อไป คือ การใช้ความรู้ด้านการเขียนภาษา sql เข้ามาช่วย โดยใช้วิธีการจับคู่ รหัสที่เหมือนกันจากสองตาราง เพื่อเชื่อมข้อมูลทั้งสองส่วนเข้าหากัน
โดยรูปแบบของคำสั่ง เป็นลักษณะดังนี้
SELECT tbx.fieldx,tbx.fieldx FROM tb1 LEFT JOIN tb2 ON tb1.fieldx=tb2.fieldx;
2.1 Tools หรือเครื่องมือที่ใช้สำหรับการเขียนภาษา sql นั้น ขึนอยู่กับความถนัดของแต่ละบุคคลรวมถึงทรัพยากรที่มีใช้อยู่
ใน ที่นี้ เลือกใช้ tools สำหรับ sqlite (สำหรับ sqlite เป็นชุดฐานข้อมูลขนาดเล็ก นิยมใช้กับ app ของ os android และแอพพลิเคชั่นบางประเภท มีข้อดี คือ เล็ก สะดวก รวดเร็วในการใช้งาน ที่สำคัญ คือ ใครที่เคยมีประสบการณ์กับการใช้งาน mysql มาก่อน สามารถใช้คำสั่งเดียวกันนั้นกับ sqlite ได้ ทันที)
2.1.1 ก่อนจะทำการจับคู่ ให้ทำการสร้างตารางที่บรรจุข้อมูลเหล่านี้ขึ้นมาก่อน (สามารถนำเข้าข้อมูลได้ผ่านไฟล์ csv หรือ text file)
2.1.2 จับคู่ ทีละตาราง ตามข้อมูลที่มีอยู่ เก็บผลลัพธ์ที่ได้ ไว้เป็น text file หรือ ไฟล์ csv
2.1.3 จากไฟล์ csv เปลี่ยนกลับมาให้เป็นไฟล์สำหรับเปิดได้ด้วยโปรแกรมเอกสาร spreadsheet เพื่อนำไปประมวลผลต่อ
3. จากข้อมูลที่ได้ เปลี่ยนรหัสต่างๆให้กลับมาเป็น ตัวข้อมูลดั้งเดิม ด้วยการใช้คำสั่งต่างๆจากโปรแกรม spreadsheet ในการตัด ต่อ ดึงข้อมูล ประสานข้อมูลต่างๆเข้าด้วยกัน ก่อนจะนำข้อมูลเหล่านั้น ไปใช้งานในโปรแกรมประมวลผลคำ เพื่อการจัดทำและจัดพิมพ์ต่อไป
หมายเหตุ tip สำหรับคำสั่งดึงข้อมูลจาก cell ข้อมูล ได้โดยตรง ขึ้นอยู่กับแต่ละโปรแกรม spreadsheet ว่าต้องใช้คำสั่งว่าอย่างไร แต่มีประโยชน์มากสำหรับการใช้งาน

SQL กับงานมาตรฐานตัวบ่งชี้และหลักสูตรการศึกษาปี 2560
Tagged on:                     

Leave a Reply

Your email address will not be published. Required fields are marked *

Close
E-mail It