Databases and Warehousing/How can you get data out of a database?

จาก วิกิตำรา

DBMS Languages[แก้ไข | แก้ไขต้นฉบับ]

  • ในการติดต่อกับฐานข้อมูลของผู้ใช้ จะต้องกระทำผ่านโปรแกรมที่มีชื่อว่า Database Management System (DBMS) ซึ่งหน้าที่หลักของ DBMS ได้แก่ การทำให้การเรียกใช้ข้อมูลจากฐานข้อมูลเป็นอิสระจากส่วนของ Hardware หรือกล่าวอีกนัยหนึ่งคือ โปรแกรม DBMS จะมีหน้าที่ในการจัดการและควบคุมความถูกต้อง ความซ้ำซ้อนและความสัมพันธ์ระหว่างข้อมูลต่าง ๆ ภายในฐานข้อมูลแทนโปรแกรมเมอร์ ส่งผลให้ผู้ใช้สามารถที่จะเรียกใช้ข้อมูลจากฐานข้อมูลได้โดยไม่จำเป็นที่จะต้องทราบถึงโครงสร้างทางกายภาพของข้อมูลในระดับที่ลึก เช่นเดียวกันกับโปรแกรมเมอร์ เรื่องจากโปรแกรม DBMS นี้ จะมีส่วนของ Query Language ซึ่งเป็นภาษาที่ประกอบด้วยคำสั่งต่าง ๆ ที่ใช้ในการจัดการ และเรียกใช้ข้อมูลจากฐานข้อมูล สามารถนำไปใช้ร่วมกับภาษาคอมพิวเตอร์อื่น ๆ เพื่อพัฒนาเป็นโปรแกรมที่ใช้สำหรับเรียกใช้ข้อมูลจากฐานข้อมูลมาประมวลผล ซึ่งในรายละเอียดของ DBMS จะกล่าวถึงในลำดับต่อไป
  • DBMS เป็นโปรแกรมที่ทำหน้าที่เป็นตัวกลางในการติดต่อระหว่างผู้ใช้กับฐานข้อมูล เพื่อจัดการและควบคุมความถูกต้อง ความซ้ำซ้อน และความสัมพันธ์ระหว่างข้อมูลต่าง ๆ ภายในฐานข้อมูล ซึ่งต่างจากระบบแฟ้มข้อมูลที่หน้าที่เหล่านี้จะเป็นหน้าที่ของโปรแกรมเมอร์ ในการติดต่อกับข้อมูลในฐานข้อมูลไม่ว่าจะด้วยการใช้คำสั่งในกลุ่มคำสั่ง MDL หรือ DDL หรือจะด้วยโปรแกรมต่างๆ ทุกคำสั่งที่ใช้กระทำกับข้อมูลจะถูกโปรแกรม DBMS นำมาแปล (Compile) เป็นการกระทำ (Operation) ต่าง ๆ ภายใต้คำสั่งนั้นๆ เพื่อนำไปกระทำกับตัวข้อมูลภายในฐานข้อมูลต่อไปสำหรับส่วนของทำงานต่างๆ ภายในโปรแกรม DBMS ที่ทำหน้าที่ในการแปลคำสั่งไปเป็นการกระทำต่างๆ ที่จะกระทำกับข้อมูลนั้น ประกอบด้วยส่วนการทำงานต่าง ๆ Query Processor เป็นส่วนที่ทำหน้าที่แปลงประโยคคำสั่งของ Query Language ให้อยู่ในรูปแบบของคำสั่งที่ Database Manager เข้าใจ

Data Manipulation Language 

  1. Data Manipulation Language Pre-compiler เป็นส่วนที่ทำหน้าที่แปล (Compile) ประโยคคำสั่งของกลุ่มคำสั่ง DML ให้อยู่ในรูปแบบที่ส่วน Application Programs Object Code จะนำไปเข้ารหัสเพื่อส่งต่อไปยังส่วน Database Manager ในการแปลประโยคคำสั่งของกลุ่มคำสั่ง DML ของส่วน Data Manipulation Language Pre-compiler นี้จะต้องทำงานร่วมกับส่วน Query Processor  จะเป็นการอธิบายการใช้งานกลุ่มคำสั่ง DML ที่ใช้ในการดึง เพิ่ม ลบ และเปลี่ยนแปลงข้อมูล และมีความสำคัญ ใช้กันอยู่เสมอ ประกอบไปด้วย 4 คำสั่งคือ
    1. INSERT ใช้สำหรับเพิ่มข้อมูลหรือเพิ่ม record ใดๆ เข้าไปในฐานข้อมูล
    2. UPDATE ใช้สำหรับแก้ไขข้อมูลหรือแก้ไข record ใด ๆ ในฐานข้อมูล
    3. DELETE ใช้สำหรับลบข้อมูลหรือลบ record ใดๆ ในฐานข้อมูล
    4. SELECT ใช้สำหรับเลือกข้อมูลหรือเลือก record ใด ๆ ที่ต้องการจากฐานข้อมูล
  2. รูปแบบการใช้งาน ได้เป็น 2 ระดับ ได้แก่
    1. ภาษาขั้นสูง (High-level หรือ nonprocedural language) ทำงานได้โดยไม่ต้องนำไปใช้ร่วมกับภาษาโปรแกรม (Programming Language) ภาษาอื่น โดยประมวลผลข้อมูลครั้งละกลุ่ม และระบุเฉพาะสิ่งที่ต้องการ โดยไม่ต้องระบุขั้น
    2. ภาษาขั้นต่ำ (Low-level หรือ procedural language) จำเป็นต้องใช้งานร่วมกับภาษาโปรแกรมทั่วไปภาษาอื่น โดยประมวลผลข้อมูลครั้งละระเบียน เท่านั้น และต้องระบุทุก ขั้นตอนการทำงานด้วย
  3. ตัวอย่างการใช้คำสั่ง
    1. คำสั่ง SELECT เป็นคำสั่งสำหรับเลือกข้อมูล หรือค้นหาข้อมูลที่ต้องการจากฐานข้อมูล โดยสามารถกำหนดได้ว่าผลลัพธ์ที่ต้องการจะให้แสดงฟิลด์ใดบ้าง และกำหนดเงื่อนไขที่ต้องการข้อมูลใดบ้างขี้นมาแสดง โดยมีรูปแบบ หลักๆ ดังนี้


SELECT [predicate] [field1, field2,..] [*]


FROM table-name [, …]


[WHERE search-criteria]


[GROUP BY group-list]


[ORDER BY sort-criteria]


เช่น


  • SELECT * FROM Person เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person
  • SELECT Name, Changwat FROM Person เป็นการเรียกดูข้อมูลในคอลัมน์ Name และ Changwat จาก Person
  • SELECT * FROM Person WHERE Sex = ‘ชาย’ เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person และต้องเป็นเพศชายเท่านั้นด้วย


การใช้ฟังก์ชั่นในคำสั่ง SELECT ฟังก์ชั่นที่ใช้ร่วมในคำสั่ง SELECT จะเป็นฟังก์ชั่นทางสถิติเบื่องต้น ได้แก่


  1. COUNT(field) เป็นคำสั่งสำหรับนับจำนวนข้อมูลทั้งหมดที่ได้มาจากคำสั่ง SELECT
  2. SUM(field) เป็นคำสั่งสำหรับรวมค่าของข้อมูลใน field นั้นๆ ทุกเรคอร์ด ที่ได้จากคำสั่ง SELECT
  3. MAX(field) เป็นคำสั่งหาค่าสูงสุดของข้อมูลใน field นั้นทุกเรคอร์ดที่ได้จากคำสั่ง SELECT
  4. MIN(field) เป็นคำสั่งหาค่าที่น้อยที่สุดของข้อมูลใน field ทุกเรคอร์ดที่ได้จากคำสั่ง SELECT



Data Definition Language


  • Data Definition Language Pre-compiler เป็นส่วนที่ทำหน้าที่แปล (Compile) ประโยคคำสั่งของกลุ่มคำสั่ง DDL ให้อยู่ในรูปแบบของ MetaData ที่เก็บอยู่ในส่วน Data Dictionary ของฐานข้อมูล (MetaData ได้แก่ รายละเอียดที่บอกถึงโครงสร้างต่าง ๆ ของข้อมูล ) เป็นภาษาที่ใช้กำหนดเค้าร่างภายใน (internal schema) และเค้าร่างเชิงแนวคิด (conceptual schema) ใช้ในกรณีที่เค้าร่างภายในและเค้าร่างเชิงแนวคิดไม่แยก

Application Programs


  • Application Programs Object Code เป็นส่วนที่ทำหน้าที่แปลงคำสั่งต่างๆ ของโปรแกรม รวมทั้งคำสั่งในกลุ่มคำสั่ง DML ที่ส่งต่อมาจากส่วน Data Manipulation Language Pro-compiler ให้อยู่ในรูปแบบ Object Code ที่จะส่งต่อไปให้ Database Manager เพื่อกระทำกับข้อมูลในฐานข้อมูล

Data Dictionary


  • ทุกฐานข้อมูลจะต้องมีส่วนที่ใช้เก็บข้อมูลในลักษณะ Meta Data ซึ่งเป็นข้อมูลของข้อมูลที่บอก ถึงรายละเอียดของตัวข้อมูลที่เก็บอยู่ในฐานข้อมูล เช่น โครงสร้าของข้อมูล โครงสร้างของ Table โครงสร้างของ Index กฎที่ใช้ควบคุมความถูกต้องของข้อมูล(Integrity Rule กฎที่ใช้ในการรักษาความปลอด ภัยของข้อมูล (Security Rule) ฯลฯ ข้อมูลเหล่านี้จัดเป็นข้อมูลที่มีความจำเป็นต่อโปรแกรม DBMS ในการตัดสินใจที่จะดำเนินการใด ๆ กับฐานข้อมูล เช่น ข้อมูลที่เกี่ยวข้องกับกฎที่ใช้ในการรักษาความปลอดภัยให้ข้อมูล จะถูกนำมาใช้ในการพิจารณาให้สิทธิแก่ผู้ใช้ในการใช้งานฐานข้อมูล เป็นต้น สำหรับส่วนที่ใช้จัดเก็บข้อมูลในลักษณะของ Meta Data นี้ได้แก่ Data Dictionary หรือ Catalog

Questions for Review[แก้ไข | แก้ไขต้นฉบับ]

  1. /List the major sources of data.
  2. /List some of the major data problem.
  3. /What is the terabyte?(Write the number.)
  4. /Review the steps of the data life cycle and explain them.
  5. /List some of the categories of data available on the Internet.
  6. /Define data Quality.
  7. /Define document management.
  8. /Describe the hierarchy of a file management system.
  9. /What are the problems that arise from the file environment?
  10. /Discuss a relational database and how it differs from other databases.
  11. /What are the components of a database of a database management system (DBMS)?
  12. /What is the difference between the conceptual, logical and physical views of data?
  13. /How can you get data out of a database?
  14. /What are the benefits of using a DBMS?
  15. /What is the difference between entities and attributes?
  16. /Describe a data warehouse.
  17. /Describe a datamart.
  18. /Define a marketing transaction database.