ค้นหาบล็อกนี้

วันอังคารที่ 20 กันยายน พ.ศ. 2554

ฐานข้อมูล Database

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

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

นิยามและคำศัพท์พื้นฐานเกี่ยวกับระบบฐานข้อมูล
บิท (Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด
ไบท์ (Byte) หมายถึง หน่วยของข้อมูลที่กิดจากการนำบิทมารวมกันเป็นตัวอักขระ (Character)
เขตข้อมูล (Field) หมายถึง หน่วยของข้อมูลที่ประกอบขึ้นจากตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันแล้วได้ความหมายของสิ่งใดสิ่งหนึ่ง เช่น ชื่อ ที่อยู่ เป็นต้น
ระเบียน (Record) หมายถึง หน่วยของข้อมูลที่เกิดจากการนเอาเขตข้อมูลหลาย ๆ เขตข้อมูลมารวมกัน เพื่อเกิดเป็นข้อมูลเรื่องใดเรื่องหนึ่ง เช่น ข้อมูลของนักศึกษา 1 ระเบียน (1 คน) จะประกอบด้วย
รหัสประจำตัวนักศึกษา 1 เขตข้อมูล
ชื่อนักศึกษา 1 เขตข้อมูล
ที่อยู่ 1 เขตข้อมูล
แฟ้มข้อมูล (File) หมายถึงหน่วยของข้อมูลที่เกิดจากการนำข้อมูลหลาย ๆ ระเบียนที่เป็นเรื่องเดียวกันมารวมกัน เช่น แฟ้มข้อมูลนักศึกษา แฟ้มข้อมูลลูกค้า แฟ้มข้อมูลพนักงาน

ส่วนในระบบฐานข้อมูล มีคำศัพท์ต่าง ๆ ที่เกี่ยวข้องดังนี้
เอนทิตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง ได้แก่ คน สถานที่ สิ่งของ การกระทำ ซึ่งต้องการจัดก็บข้อมูล
ไว้ เช่น เอนทิตี้ลูกค้า เอนทิตี้พนักงาน
- เอนทิตี้ชนิดอ่อนแอ (Weak Entity) เป็นเอนทิตี้ที่ไม่มีความหมาย หากขาดเอนทิตี้อื่นในฐานข้อมูล
แอททริบิวต์(Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของเอนทิตี้หนึ่ง ๆ เช่น
เอนทิตี้นักศึกษา ประกอบด้วย - แอทริบิวต์รหัสนักศึกษา
- แอททริบิวต์ชื่อนักศึกษา
- แอททริบิวต์ที่อยู่นักศึกษา
ความสัมพันธ์ (Relationships) หมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ เช่น ความสัมพันธ์ระหว่างเอนทิตี้นักศึกษาและเอนทิตี้คณะวิชา เป็นลักษณะว่า นักศึกษาแต่ละคนเรียนอยู่คณะวิชาใดคณะวิชาหนึ่ง
ในการแสดงความสัมพันธ์ระหว่างเอนทิตี้ เราจะใช้หัวลูกศรเพื่อแสดงความสัมพันธ์ ดังตัวอย่างในรูปต่อไปนี้
รูปที่ 1.1 คณะวิชา ß ----------à à นักศึกษา (คณะวิชามีความสัมพันธ์กับนักศึกษา)
ในการระบุความสัมพันธ์ระหว่างเอนทิตี้ จะกำหนดโดยใช้หัวลูกศร และหากพิจารณาความสัมพันธ์จากเอนทิตี้นักศึกษาไปยังเอนทิตี้คณะวิชา อาจจะกำหนดความสัมพันธ์ได้ดังนี้
รูปที่ 1.2 คณะวิชา ----------------à นักศึกษา (นักศึกษาสังกัดอยู่คณะวิชา)
และหากพิจารณาความสัมพันธ์จากเอนทิตี้คณะวิชาไปยังเอนทิตี้นักศึกษา อาจกำหนดความสัมพันธ์ได้ดังนี้
รูปที่ 1.3 คณะวิชา --------------à à นักศึกษา (คณะวิชาประกอบด้วยนักศึกษา)
จากรูปที่ 1.2 จะเห็นได้ว่า นักศึกษา 1 คนจะสามารถสังกัดอยู่ได้เพียง 1 คณะวิชา แต่จากรูปที่ 1.3 จะเห็นได้ว่า 1 คณะวิชาสามารถประกอบด้วยนักศึกษาหลาย ๆ คน
ความสัมพันธ์ระหว่างเอนทิตี้ แบ่งออกเป็น 3 ประเภท คือ
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะหนึ่งต่อหนึ่ง (1 : 1)
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลาย ๆ ข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ (1:m) ตัวอย่างเช่น
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม (m:n)


เอนทิตี้ใบสั่งซื้อแต่ละใบจะสามารถสั่งสินค้าได้มากกว่าหนึ่งชนิด ความสัมพันธ์ของข้อมูลจากเอนทิตี้ใบสั่งซื้อไปยังเอนทิตี้สินค้า จึงเป็นแบบหนึ่งต่อกลุ่ม (1:m) ในขณะที่สินค้าแต่ละชนิด จะถูกสั่งอยู่ในใบสั่งซื้อหลายใบ ความสัมพันธ์ของข้อมูลจากเอนทิตี้สินค้าไปยังอินทิตี้ใบสั่งซื้อ จึงเป็นแบบหนึ่งต่อกลุ่ม (1:n) ดังนั้นความสัมพันธ์ของเอนทิตี้ทั้งสอง จึงเป็นแบบกลุ่มต่อกลุ่ม (m:n)
จากคำศัพท์ต่าง ๆ ที่เกี่ยวข้องกับระบบฐานข้อมูลที่ได้กล่าวมาแล้วข้างต้น จึงอาจให้นิยามของฐานข้อมูลในอีกลักษณะได้ว่า “ฐานข้อมูล” อาจหมายถึง โครงสร้างสารสนเทศ ที่ประกอบด้วยหลาย ๆ เอนทิตี้ที่มีความสัมพันธ์กัน

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

รูปแบบของระบบฐานข้อมูล
รูปแบบของระบบฐานข้อมูล มีอยู่ด้วยกัน 3 ประเภท คือ
1. ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
เป็นการเก็บข้อมูลในรูปแบบที่เป็นตาราง (Table) หรือเรียกว่า รีเลชั่น (Relation) มีลักษณะเป็น 2 มิติ คือเป็นแถว (row) และเป็นคอลัมน์ (column) การเชื่อมโยงข้อมูลระหว่างตาราง จะเชื่อมโยงโดยใช้แอททริบิวต์ (attribute) หรือคอลัมน์ที่เหมือนกันทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล ฐานข้อมูลเชิงสัมพันธ์นี้จะเป็นรูปแบบของฐานข้อมูลที่นิยมใช้ในปัจจุบัน

2. ฐานข้อมูลแบบเครือข่าย (Network Database)
ฐานข้อมูลแบบเครือข่ายจะเป็นการรวมระเบียนต่าง ๆ และความสัมพันธ์ระหว่างระเบียนแต่จะต่างกับฐานข้อมูลเชิงสัมพันธ์ คือ ในฐานข้อมูลเชิงสัมพันธ์จะแฝงความสัมพันธ์เอาไว้ โดยระเบียนที่มีความสัมพันธ์กันจะต้องมีค่าของข้อมูลในแอททริบิวต์ใดแอททริบิวต์หนึ่งเหมือนกัน แต่ฐานข้อมูลแบบเครือข่าย จะแสดงความสัมพันธ์อย่างชัดเจน ตัวอย่างเช่น
3. ฐานข้อมูลแบบลำดับชั้น (Hierarchical Database)
ฐานข้อมูลแบบลำดับชั้น เป็นโครงสร้างที่จัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบพ่อ-ลูก (Parent-Child Relationship Type : PCR Type) หรือเป็นโครงสร้างรูปแบบต้นไม้ (Tree) ข้อมูลที่จัดเก็บในที่นี้ คือ ระเบียน (Record) ซึ่งประกอบด้วยค่าของเขตข้อมูล (Field) ของเอนทิตี้หนึ่ง ๆ
ฐานข้อมูลแบบลำดับชั้นนี้คล้ายคลึงกับฐานข้อมูลแบบเครือข่าย แต่ต่างกันที่ฐานข้อมูลแบบลำดับชั้น มีกฎเพิ่มขึ้นมาอีกหนึ่งประการ คือ ในแต่ละกรอบจะมีลูกศรวิ่งเข้าหาได้ไม่เกิน 1 หัวลูกศร


โปรแกรมฐานข้อมูลที่นิยมใช้
โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟแวร์ที่ช่วยจัดการข้อมูลหรือรายการต่าง ๆ ที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
โปรแกรมฐานข้อมูล จะช่วยให้ผู้ใช้สามารถค้นหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Clipper, dBase, FoxBase, Oracle, SQL เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จะจำกัดขอบเขตการใช้งาน บ่งโปรแกรมใช้งานยากกว่า แต่จะมีความสามารถในการทำงานมากกว่า
โปรแกรม Access นับเป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้ โดยเฉพาะในระบบฐานข้อมูลขนาดใหญ่ สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ นอกจากนี้ Access ยังมีระบบรักษาความปลอดภัยของข้อมูล โดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย
โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากที่สุด เนื่องจากใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กลับ dBase คำสั่งและฟังก์ชั่นต่าง ๆ ใน dBase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน
โปรแกรม dBase เป็นโปรแกรมฐานข้อมูลชนิดหนึ่ง การใช้งานจะคล้ายกับโปรแกรม FoxPro ข้อมูลรายงานที่อยู่ในไฟล์บน dBase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้ และแม้แต่ Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม dBase ได้ด้วย
โปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่งที่มีผู้นิยมใช้กันมาก โดยทั่วไปโปรแกรมฐานข้อมูลของบริษัทต่าง ๆ ที่มีใช้อยู่ในปัจจุบัน เช่น Oracle, DB2 ก็มักจะมีคำสั่ง SQL ที่ต่างจากมาตรฐานไปบ้างเพื่อให้เป็นจุดเด่นของแต่ละโปรแกรมไป

วันอาทิตย์ที่ 28 สิงหาคม พ.ศ. 2554

Google Earth


กูเกิล เอิร์ธ (Google Earth) เป็นซอฟต์แวร์ที่พัฒนาโดยบริษัทกูเกิล สำหรับการใช้เครื่องคอมพิวเตอร์ส่วนบุคคล หรือในโทรศัพท์มือถือ ดูภาพถ่ายทางอากาศพร้อมทั้งแผนที่ เส้นทาง และผังเมืองซ้อนทับลงในแผนที่ รวมทั้งระบบ จีไอเอส ในรูปแบบ 3 มิติ


กูเกิล เอิร์ธ ใช้ข้อมูลจาก ภาพถ่ายทางอากาศของ U.S. public domain และ ภาพถ่ายดาวเทียมของคีย์โฮล มาดัดแปลงร่วมกับ ระบบแผนที่ของกูเกิล จาก กูเกิลแมพ รวมทั้งการทำงานร่วมกับ กูเกิลโลคอล เพื่อค้นหารายชื่อร้าน เช่น ร้านขายของ ธนาคาร และปั๊มน้ำมันในแผนที่ได้ โดยนำแผนที่มาซ้อนทับลงบนตำแหน่งที่ต้องการ ตำแหน่งที่ต้องการค้นหา สามารถหาได้จาก บ้านเลขที่ ลองจิจูด ละติจูด ทั้งยังทำงานผ่านรูปแบบภาษาของ KML (Keyhole Markup Language)


ภาพตึกจำลอง 3 มิติ ที่มีลักษณะเป็นสีเทาในกูเกิล เอิร์ธ ได้รับลิขสิทธิ์ส่วนหนึ่งมาจาก ซอฟต์แวร์ของ แซนบอร์น (Sanborn) ในชื่อ ซิตีเซ็ทส์ (CitySets) โดยรูปตึก 3มิติในรูปแบบที่สมบูรณ์สามารถเรียกดูได้ผ่านทางซิตีเซ็ทส์





ประเภทของ Google Earth
Google Earth
ได้แบ่งบริการออกเป็น 3 ระดับ ได้แก่


1.             Google Earth เป็นบริการภาพถ่ายจากดาวเทียม สามารถค้นหาสถานที่ต่างๆ เช่น โรงเรียนหรือโรงพยาบาล (ค่อนข้างละเอียดสำหรับประเทศอเมริกา แต่ข้อมูลเรื่องสถานที่ในบ้านเราไม่ค่อนละเอียดสักเท่าไร มีเฉพาะในเมืองใหญ่ๆ) บริการ Google Earth ส่วน นี้มีให้ใช้ฟรี สามารถอัพเกรด เป็น Google Earth Plus ในภายหลังได้


2.            
Google Earth Plus
เป็นบริการสำหรับใช้ในการพาณิชย์หรือเชิงธุรกิจจะมีข้อมูลเกี่ยวกับสถานที่ ที่ละเอียดมากขึ้น สามารถดูภาพในลักษณะ 3 มิติได้ ส่วนนี้จะคิดค่าบริการ 400 เหรียญสหรัฐฯ ต่อปี


3.              


 Google Earth Enterprise Solution สำหรับลูกค้าที่ต้องการบริการที่จำเพาะเจาะจงมากกว่าการใช้งานปกติ แล้วต้องการอาศัย Data Base ของ Google ในการพัฒนา แอพพลิเคชันให้เหมาะสมกับความต้องการ



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




สเปคคอมพิวเตอร์ที่ใช้สเปคต่ำสุดที่รองรับ


- ระบบปฏิบัติการ Windows 2000, Windows XP


- ความเร็วของ CPU speed: Intel Pentium III 500 MHz


- หน่วยความจำ System memory (RAM): 128MB


- ฮาร์ดดิสก์ 200MB hard-disk space


- การ์ดแสดงผลแบบ 3D : 3D-capable video card with 16MB VRAM


- ความละเอียดของจอ 1024x768, 32-bit true color screen
-
ความเร็วในการเชื่อมต่ออินเตอร์เน็ต speed: 128 kbps ("Broadband/Cable Internet")



สเปคที่แนะนำ


- ระบบปฏิบัติการ Windows XP


- ความเร็วของCPU speed: Intel® Pentium® P4 2.4GHz+ หรือ AMD 2400xp+


- หน่วยความจำSystem memory (RAM): 512MB - ฮาร์ดดิสก์ 2GB hard-disk space


- การ์ดแสดงผลแบบ 3D : 3D-capable video card with 32MB VRAM or greater


- ความละเอียดของจอ 1280x1024, 32-bit true color screen


- ความเร็วในการเชื่อมต่ออินเตอร์เน็ต speed: 128 kbps ("Broadband/Cable Internet")


ประโยชน์ ในการประยุกต์ใช้ Google Earth ในด้านต่างๆ
การให้บริการ Google Earth ทำให้เกิดการให้บริการทางด้านต่างๆมากมาย เช่น
1.
การทหารและการป้องกันประเทศ
2.
นักธรณีวิทยา ใช้สำรวจทรัพยากรธรรมชาติ เขตพื้นที่ป่าถูกทำลาย
3.
กรมพัฒนาที่ดิน การสำรวจหาพื้นที่พัฒนาที่ดิน
4.
ด้านสถาปัตยกรรม และการก่อสร้างแสดงรูปแบบของโครงการในรูปแบบของ โมเดลของโครงการที่จะสร้างขึ้นมาว่า มีลักษณะเป็นอย่างไรเมื่อการก่อสร้างแล้วเสร็จ
5.
ธุรกิจอสังหาริมทรัพย์ หรือพวกนายหน้าค้าที่ดิน ใช้อ้างอิงที่ดิน นำข้อมูลได้ในมี
การแสดงภาพการพัฒนาที่ดิน ทำให้ผู้เกี่ยวข้อง ตั้งแต่แหล่งเงินของโครงการ ไปจนถึงผู้ซื้อ สามารถมองเห็นรูปแบบของโครงการได้อย่างชัดเจน ทำให้การประเมินศักยภาพของโครงการเป็นไปด้วยความสะดวกการวางแผนการจัดการเกี่ยวกับผู้อยู่อาศัยก็สามารถ เห็นภาพได้อย่างชัดเจน
6.
ธุรกิจค้าปลีกย่อย หาที่ตั้งทำเลในการทำธุรกิจ
7.
ครูภูมิศาสตร์ สามารถใช้แผนที่ในการประกอบการเรียนการสอน
8.
นักท่องเที่ยว รู้เรื่องเส้นทางและข้อมูลเรื่องอาหาร ที่พัก ที่เที่ยว
9.
และบุคคลที่สนใจทั่วไป ไม่ว่าจะศึกษาทางด้านภูมิศาสตร์ ใช้สำรวจพื้นที่


ข้อเสียของ Google Earth
1.
มีลักษณะคล้ายกับการโจรกรรมทางทหาร หรือ อาจจะเรียกว่า ดาวเทียมโจรกรรม
เป็นการขโมยข้อมูล
2.
ภาพถ่ายดาวเทียมอาจจะไปบันทึกภาพสิทธิส่วนบุคคล เช่น ภายในรั้วบ้านที่มีสระน้ำ
3.
จะต้องใช้คอมพิวเตอร์ที่มีความเร็วสูง




วิธีการติดตั้ง


1. Download โปรแกรม Google - Earth จาก http://www.google.com/intl/th/earth/index.html


1. Click ที่ปุ่ม ”ดาวน์โหลด Google Earth 6”








2. Clickที่ปุ่ม “ยอมรับและดาวน์โหลด”
3. Clickเมาส์ที่ปุ่ม“Run”




2. เปิดโปรแกรม Google Earth เพื่อใช้งาน


1. ขั้นตอนการเปลี่ยนเมนูภาษา (จากเมนูภาษไทย ให้เป็นเมนูภาษาอังกฤษ)


1. Click “เครื่องมือ”
2. Click “ตัวเลือก”
3. เลือกTab “ทั่วไป”
4. เปลี่ยนภาษาที่ “การตั้งค่าภาษา”
5. Click “ตกลง”
6. ปิดโปรแกรม Google Earth


2. เปิดโปรแกรม Google Earth ขึ้นมาใหม่


จะมีหน้าต่าง “Start-Up Tip”ขึ้นมา ในส่วนของหน้าต่างนี้ จะเป็น ระบบช่วยเหลือ ซึ่งจะแสดงการทางานของ Program ในแต่ละส่วน เมื่อClick “Previous Tip” ก็จะแสดงรายละเอียดส่วนอื่น โดยถ้าไม่ต้องการให้ แสดงทุกครั้งที่เข้าใช้โปรแกรม ให้ทาการ Clickเครื่องหมายถูกตรง “Show tips at start-up”ออก แล้วกด Close หน้าต่างนี้ก็จะไม่แสดงขึ้นมาให้เห็นอีกเมื่อเข้าใช้โปรแกรมในครั้งต่อไป

วันอาทิตย์ที่ 14 สิงหาคม พ.ศ. 2554

Pipeline

Pipeline คือ เทคนิคทำให้คำสั่งหลายๆ คำสั่งทำงานพร้อมๆ กัน แต่ละส่วนจะทำงานให้เสร็จในส่วนของมัน แต่ละส่วนจะทำงานต่างกัน แต่ละส่วนเรียกว่า "Pipe Stage" และแต่ละส่วนจะทำงานต่อเนื่องเป็นทอด ๆ เขาเลยเปรียบเทียบ pipeline กับสายพานเครื่องจักรไงครับ เวลาที่ใช้เคลื่อนที่จากส่วนหนึ่ง (Pipe Stage) ไปยังอีกส่วนหนึ่ง เราเรียกว่า "Machine Cycle" เนืองจากทุกๆ ส่วนทำงานพร้อมกันดังนั้น ค่า Machine Cycle จะดูจากเวลาที่ใช้ใน Pipe Stage ที่ช้าที่สุด

เป้าหมายสูงสุดของ Pipeline ก็คือ ต้องการให้ความยาวของ Pipeline แต่ละขั้นตอนเกิดความสมดุล ถ้าขั้นตอนแต่ละขั้นตอนสมดุลกันแล้วเวลาที่ใช้ต่อ 1 คําสั่งใน Pipeline จะเท่ากับการใช้ Pipeline จะส่งผลทําให้เวลาการทํางานต่อคําสั่ง 1 คําสั่งลดลง

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

จริงๆ มันก็คือ การออกแบบขั้นตอนการประมวลต่อ 1 คำสั่งให้ใช้เวลาน้อยที่สุดอ่ะครับ จะได้ไม่เปลือง Clock และถ้ามีหลายๆ Pipeline มันก็จะช่วยประมวลผลพร้อมๆ กัน ทำให้เพิ่มความเร็วในการประมวลได้ครับ ไม่จำเป็นต้องเพิ่มความถี่สัญญาณนาฬิกา (Clock) ให้สูงเสมอไป

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

ดังนั้นการมีหลาย pipeline จึงไม่ได้ช่วยกันทำงานพร้อมๆ กัน ตัวอย่างเช่น เดิมมี 1 pipeline ทำ 1 คำสั่งเสร็จใน 1 วินาที(โดยเฉลี่ย) ถ้าเพิ่มเป็น 2 pipeline จะทำได้เสร็จใน ครึ่งวินาที มันจะไม่เป็นอย่างนั้นครับ แต่มันจะช่วยลดปริมาณการล้างท่อลง           

วันอังคารที่ 9 สิงหาคม พ.ศ. 2554

ระบบเลขฐาน

ระบบเลขฐาน คือ การนำตัวเลขมารวมกันเพื่อให้เกิดความหมาย เป็นค่าที่ต้องอาศัยวิธีการ กำหนดหลักของตัวเลข ซึ่งเรียกว่า Positional Notation

ค่าหลักประจำตำแหน่งหาได้จากค่าของเลขจำนวนนั้น (Absolute Value) คูณกับค่าประจำหลัก เลขฐานที่ยกกำลังตามหลักที่ปรากฏ

ซึ่งหลักการเขียนเลขฐานจะประกอบไปด้วย

1. ตัวเลขในฐานต้องมีค่าน้อยกว่าตัวเลขบ่งบอกค่าฐาน เช่นเลขฐานสอง จะมีเลขแค่

2 ตัวคือ 0,1 เลขฐานสิบมีเลข 0 ถึง 9 เป็นต้น

2. เลขฐาน 10 ไม่นิยมเขียนตัวเลขบ่งบอกค่าฐาน

3. หากตัวเลขที่ใช้เขียนเลขฐานมีค่าเกิน 9 จะใช้ตัวอักษรภาษาอังกฤษแทนตัวเลข

ตัวอักษร A แทนเลข 10

ตัวอักษร B แทนเลข 11

ตัวอักษร C แทนเลข 12

ตัวอักษร D แทนเลข 13

ตัวอักษร E แทนเลข 14

ตัวอักษร F แทนเลข 15

ระบบเลขฐานที่นิยมใช้กันส่วนใหญ่เริ่มต้นตั้งแต่ฐาน 2 ไปจนถึงฐาน 16


ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์ ประกอบด้วย

ระบบเลขฐานสอง (Binary Number System) ประกอบด้วยตัวเลข 0 และ 1

ระบบเลขฐานแปด (Octal Number System) ประกอบด้วยตัวเลข 0 - 7

ระบบเลขฐานสิบ (Decimal Number System) ประกอบด้วยตัวเลข 0 - 9

ระบบเลขฐานสิบหก (Hexadecimal Number System) ประกอบด้วยตัว เลข 0 - 9 และ A - F

ระบบเลขฐานที่เหมาะสมกับเครื่องคอมพิวเตอร์มากที่สุดคือ เลขฐาน 2 (Binary) หรืออาจจะกำหนดได้คือ มีกระแสไฟฟ้า หรือไม่มีกระแสไฟฟ้า ซึ่งนั่นก็คือสถานะที่ทำให้เกิด สภาพแม่เหล็ก และการลบสภาพแม่เหล็ก ซึ่งเหมาะสมกับอุปกรณ์อิเล็กทรอนิกส์ทุกชนิด

นอกจากเหตุผลดังกล่าวแล้ว ภายในเครื่องคอมพิวเตอร์จะมีหน่วยความจำที่แยกเป็น Bit และ

Byte

Bit คือ หน่วยความจำที่เล็กที่สุด มีค่าเป็น 0 หรือ 1 เท่านั้น ซึ่งสามารถแทนลักษณะข้อมูลของ คอมพิวเตอร์ด้วยเลขฐานสองได้

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

CPU

ขั้นตอนการทำงานของ CPU

ก่อนที่ CPU จะทำการประมวลผลข้อมูล คำสั่งและข้อมูลจะต้องถูกโหลดมาเก็บไว้ในหน่วยความจำหลักเสียก่อน




การประมวลผลคำสั่งของ CPU


หลังจากคำสั่งและข้อมูลอยู่ในหน่วยความจำแล้ว CPU ก็จะทำการประมวลผลที่ละคำสั่ง ใน 4 ขั้นตอนดังนี้




ขั้นตอนการทำงานของ CPU
 
• จากโปรแกรมที่ประกอบด้วยกลุ่มของคำสั่งที่ต้องการให้คอมพิวเตอร์ทำการประมวลผล แต่ละคำสั่งประกอบด้วย รหัสให้ทำงาน ( OperationCode)

หรือ ออปโค้ด (Opcode) เช่น ADD (การบวก) SUB (การลบ)MUL (การคูณ) DIV (การหาร) และสิ่งที่เรียกว่า โอเปอแรนต์ (Operand)

ซึ่งจะบอกตำแหน่งของที่เก็บข้อมูลในหน่วยความจำ เช่น สัญลักษณ์ Aหรือ B

• ตัวอย่างของคำสั่งหนึ่งๆ ที่มีอยู่ในโปรแกรมภาษาแอสแซมบลี เช่น ADD A,B หมายถึงให้มีการนำข้อมูลที่เก็บอยู่ในหน่วยความจำที่ตำแหน่ง A และข้อมูลที่เก็บอยู่ในหน่วยความจำที่ตำแหน่ง B มาทำการบวกกัน ซึ่งคำสั่งนี้จะต้องถูกแปลให้เป็นภาษาเครื่อง (MachineLanguage) ก่อนการปฏิบัติงานของซีพียูเสมอ

ภาพแสดงขั้นตอนการทำงานของ CPU



ขั้นตอนการทำงานของ CPU และความสัมพันธ์ในการใช้ Resistor
 
ขั้นตอนการประมวลผลของ CPU


• การเฟตช์ (Fetch) เป็นกระบวนการที่หน่วยควบคุม (CU) ไปนำคำสั่งที่ต้องการใช้จากหน่วยความจำมาเพื่อการประมวลผลมาเก็บไว้ที่ Register
• การแปลความหมาย ( Decode ) เป็นกระบวนการถอดรหัสหรือแปลความหมายคำสั่งต่างๆ เพื่อส่งไปยังหน่วยคำนวณและตรรกะเพื่อดำเนินการต่อไป
• การเอ็กซ์คิวต์ ( Execute ) เป็นกระบวนประมวลผลคำสั่งโดยหน่วยคำนวณและตรรกะ ซึ่งการประมวลผลจะประมวลผลทีละคำสั่ง
• การจัดเก็บ ( Store ) เป็นกระบวนการจัดเก็บผลลัพธ์ที่ได้จากการประมวลผลและจัดเก็บไว้ในหน่วยความจำหรือรีจิสเตอร์
 

วัฏจักรการทำงานของซีพียู หรือวัฏจักรเครื่อง (Machine Cycle)
 
Machine Cycle & การประมวลผลคำสั่งโปรแกรม 

การประมวลผลคำสั่งโปรแกรมระดับเครื่อง (ภาษาเครื่อง) หนึ่งคำสั่ง เกิดขึ้นในระหว่างหนึ่ง Machine Cycle :-
• วัฏจักรคำสั่ง Instruction Cycle (I-cycle) l fetch instruction - control unit รับคำสั่งจากแรม l decode instruction - control unit แปลความหมายคำสั่งโปรแกรม และเก็บส่วนที่เป็น คำสั่ง ของคำสั่งโปรแกรมไว้ใน Instruction Register & เก็บส่วนที่เป็นแอดเดรส ของคำสั่งโปรแกรมไว้ใน Address Register

               เวลาที่ใช้ในการแปลคำสั่ง (Instruction Time) 
เวลาทั้งหมดในการประมวลผลแต่ละคำสั่ง ประกอบด้วย 2 ส่วนคือ
•การแปลคำสั่ง (fetch and decode) และการประมวลผลคำสั่ง(execute and store)
•เวลาที่ใช้แปลคำสั่งเรียกว่า instruction time.
 

               เวลาที่ใช้ในการประมวลผล เรียกว่า E xecution time. 
 
           เวลาที่ใช้ประมวลผลแต่ละคำสั่ง (Machine Cycle) 
The combination of I-time and E-time is called the machine cycle
 
หน่วยวัดความเร็วของซีพียู 
• เมกะเฮิรตซ์ ( Megahertz: MHz ) เป็นหน่วยวัดความเร็วของซีพียูในไมโครคอมพิวเตอร์ หรือ Clock Speed ที่มีความเร็วหนึ่งล้านวัฏจักรเครื่องต่อวินาที ( Millions machine cycle per second )
• มิปส์ ( Million of Instructions Per Second: MIPS ) เป็นหน่วยวัดความเร็วของซีพียูของคอมพิวเตอร์ขนาดกลางขึ้นไปโดย 1 MIPS จะสามารถประมวลผลได้หนึ่งล้านคำสั่งต่อวินาที ( Million of Instructions Per Second: MIPS )
• ฟลอปส์ ( Floating Point Operations Per Second: FLOPS ) เป็นหน่วยวัดความเร็วของซีพียูในซูเปอร์คอมพิวเตอร์ ซึ่งมักวัดความสามารถในการปฏิบัติการคำนวณทางคณิตศาสตร์แบบทศนิยมหรือ Floating Point
               รูปแบบการประมวลผลของซีพียู
1. การประมวลผลแบบเดี่ยว ( Single processing) หรือ Sequential Processing เป็นการประมวลผลข้อมูลตามลำดับ เนื่องจากมีซีพียูทำงานเพียงตัวเดียว ปัญหาที่เกิดขึ้นคือ การประมวลผลข้อมูลล่าช้า
2. การประมวลผลแบบขนาน ( Parallel processing) เป็นการใช้ซีพียูมากกว่า 1 ตัว ( Multiple Processors ) ในการประมวลผลงานๆ หนึ่งพร้อมกัน โดยซีพียูจะแตก (break down) ปัญหาออกเป็นส่วนย่อยๆ เพื่อแบ่งให้ซีพียูแต่ละตัวประมวลผล ซึ่งสามารถเปรียบเทียบได้กับการประมวลผลแบบซีพียูเดียว
และ หลายซีพียูได้ดังภาพ