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 Pre-compiler เป็นส่วนที่ทำหน้าที่แปล (Compile) ประโยคคำสั่งของกลุ่มคำสั่ง DML ให้อยู่ในรูปแบบที่ส่วน Application Programs Object Code จะนำไปเข้ารหัสเพื่อส่งต่อไปยังส่วน Database Manager ในการแปลประโยคคำสั่งของกลุ่มคำสั่ง DML ของส่วน Data Manipulation Language Pre-compiler นี้จะต้องทำงานร่วมกับส่วน Query Processor  จะเป็นการอธิบายการใช้งานกลุ่มคำสั่ง DML ที่ใช้ในการดึง เพิ่ม ลบ และเปลี่ยนแปลงข้อมูล และมีความสำคัญ ใช้กันอยู่เสมอ ประกอบไปด้วย 4 คำสั่งคือ

INSERT ใช้สำหรับเพิ่มข้อมูลหรือเพิ่ม record ใดๆ เข้าไปในฐานข้อมูล
UPDATE ใช้สำหรับแก้ไขข้อมูลหรือแก้ไข record ใด ๆ ในฐานข้อมูล
DELETE ใช้สำหรับลบข้อมูลหรือลบ record ใดๆ ในฐานข้อมูล
SELECT ใช้สำหรับเลือกข้อมูลหรือเลือก record ใด ๆ ที่ต้องการจากฐานข้อมูล

รูปแบบการใช้งาน ได้เป็น 2 ระดับ ได้แก่

ภาษาขั้นสูง (High-level หรือ nonprocedural language) ทำงานได้โดยไม่ต้องนำไปใช้ร่วมกับภาษาโปรแกรม (Programming Language) ภาษาอื่น โดยประมวลผลข้อมูลครั้งละกลุ่ม และระบุเฉพาะสิ่งที่ต้องการ โดยไม่ต้องระบุขั้น
ภาษาขั้นต่ำ (Low-level หรือ procedural language) จำเป็นต้องใช้งานร่วมกับภาษาโปรแกรมทั่วไปภาษาอื่น โดยประมวลผลข้อมูลครั้งละระเบียน เท่านั้น และต้องระบุทุก ขั้นตอนการทำงานด้วย

ตัวอย่างการใช้คำสั่ง

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


DBMS Languages.
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 และต้องเป็นเพศชายเท่านั้นด้วย


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

Data Definition Language

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


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


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


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