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
- 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 เป็นคำสั่งสำหรับเลือกข้อมูล หรือค้นหาข้อมูลที่ต้องการจากฐานข้อมูล โดยสามารถกำหนดได้ว่าผลลัพธ์ที่ต้องการจะให้แสดงฟิลด์ใดบ้าง และกำหนดเงื่อนไขที่ต้องการข้อมูลใดบ้างขี้นมาแสดง โดยมีรูปแบบ หลักๆ ดังนี้
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 จะเป็นฟังก์ชั่นทางสถิติเบื่องต้น ได้แก่
- 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
- 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
[แก้ไข | แก้ไขต้นฉบับ]- /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.