ผลต่างระหว่างรุ่นของ "Databases and Warehousing/How can you get data out of a database?"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Nullzero (คุย | ส่วนร่วม)
Nullzero ย้ายหน้า Managing Data: Databases and Warehousing/How can you get data out of a database? ไปยัง Databases and Warehousing/How can you get data out of a database? (ไม่สร้างหน้าเปล...
Nullzerobot (คุย | ส่วนร่วม)
โรบอต: เก็บกวาด
บรรทัดที่ 1:
== '''DBMS Languages''' ==
* ในการติดต่อกับฐานข้อมูลของผู้ใช้ จะต้องกระทำผ่านโปรแกรมที่มีชื่อว่า '''Database Management System (DBMS)''' ซึ่งหน้าที่หลักของ DBMS ได้แก่ การทำให้การเรียกใช้ข้อมูลจากฐานข้อมูลเป็นอิสระจากส่วนของ Hardware หรือกล่าวอีกนัยหนึ่งคือ โปรแกรม DBMS จะมีหน้าที่ในการจัดการและควบคุมความถูกต้อง ความซ้ำซ้อนและความสัมพันธ์ระหว่างข้อมูลต่าง ๆ ภายในฐานข้อมูลแทนโปรแกรมเมอร์ ส่งผลให้ผู้ใช้สามารถที่จะเรียกใช้ข้อมูลจากฐานข้อมูลได้โดยไม่จำเป็นที่จะต้องทราบถึงโครงสร้างทางกายภาพของข้อมูลในระดับที่ลึก เช่นเดียวกันกับโปรแกรมเมอร์ เรื่องจากโปรแกรม DBMS นี้ จะมีส่วนของ '''''Query Language''''' ซึ่งเป็นภาษาที่ประกอบด้วยคำสั่งต่าง ๆ ที่ใช้ในการจัดการ และเรียกใช้ข้อมูลจากฐานข้อมูล สามารถนำไปใช้ร่วมกับภาษาคอมพิวเตอร์อื่น ๆ เพื่อพัฒนาเป็นโปรแกรมที่ใช้สำหรับเรียกใช้ข้อมูลจากฐานข้อมูลมาประมวลผล ซึ่งในรายละเอียดของ DBMS จะกล่าวถึงในลำดับต่อไป<br/>
* '''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 ใดๆ เข้าไปในฐานข้อมูล <br/>
## '''UPDATE''' ใช้สำหรับแก้ไขข้อมูลหรือแก้ไข record ใด ๆ ในฐานข้อมูล <br/>
## '''DELETE''' ใช้สำหรับลบข้อมูลหรือลบ record ใดๆ ในฐานข้อมูล<br/>
## '''SELECT''' ใช้สำหรับเลือกข้อมูลหรือเลือก record ใด ๆ ที่ต้องการจากฐานข้อมูล <br/>
# '''รูปแบบการใช้งาน''' ได้เป็น 2 ระดับ ได้แก่
## '''ภาษาขั้นสูง''' (High-level หรือ nonprocedural language) ทำงานได้โดยไม่ต้องนำไปใช้ร่วมกับภาษาโปรแกรม (Programming Language) ภาษาอื่น โดยประมวลผลข้อมูลครั้งละกลุ่ม และระบุเฉพาะสิ่งที่ต้องการ โดยไม่ต้องระบุขั้น
## '''ภาษาขั้นต่ำ''' (Low-level หรือ procedural language) จำเป็นต้องใช้งานร่วมกับภาษาโปรแกรมทั่วไปภาษาอื่น โดยประมวลผลข้อมูลครั้งละระเบียน เท่านั้น และต้องระบุทุก ขั้นตอนการทำงานด้วย
# '''ตัวอย่างการใช้คำสั่ง'''
## '''''คำสั่ง SELECT''''' เป็นคำสั่งสำหรับเลือกข้อมูล หรือค้นหาข้อมูลที่ต้องการจากฐานข้อมูล โดยสามารถกำหนดได้ว่าผลลัพธ์ที่ต้องการจะให้แสดงฟิลด์ใดบ้าง และกำหนดเงื่อนไขที่ต้องการข้อมูลใดบ้างขี้นมาแสดง โดยมีรูปแบบ หลักๆ ดังนี้<br/>
 
SELECT [predicate] [field1, field2,..] [*] <br/>
 
FROM table-name [, …]<br/>
SELECT [predicate] [field1, field2,..] [*] <br/>
[WHERE search-criteria]<br/>
 
[GROUP BY group-list]<br/>
 
[ORDER BY sort-criteria]<br/>
FROM table-name [, …]<br/>
เช่น <br/>
 
*SELECT * FROM Person เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person <br/>
 
*SELECT Name, Changwat FROM Person เป็นการเรียกดูข้อมูลในคอลัมน์ Name และ Changwat จาก Person <br/>
[WHERE search-criteria]<br/>
*SELECT * FROM Person WHERE Sex = ‘ชาย’ เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person และต้องเป็นเพศชายเท่านั้นด้วย <br/>
 
'''การใช้ฟังก์ชั่นในคำสั่ง SELECT''' ฟังก์ชั่นที่ใช้ร่วมในคำสั่ง SELECT จะเป็นฟังก์ชั่นทางสถิติเบื่องต้น ได้แก่ <br/>
 
#'''COUNT(field)''' เป็นคำสั่งสำหรับนับจำนวนข้อมูลทั้งหมดที่ได้มาจากคำสั่ง SELECT<br/>
[GROUP BY group-list]<br/>
#'''SUM(field)''' เป็นคำสั่งสำหรับรวมค่าของข้อมูลใน field นั้นๆ ทุกเรคอร์ด ที่ได้จากคำสั่ง SELECT<br/>
 
#'''MAX(field)''' เป็นคำสั่งหาค่าสูงสุดของข้อมูลใน field นั้นทุกเรคอร์ดที่ได้จากคำสั่ง SELECT<br/>
 
#'''MIN(field)''' เป็นคำสั่งหาค่าที่น้อยที่สุดของข้อมูลใน field ทุกเรคอร์ดที่ได้จากคำสั่ง SELECT<br/>
[ORDER BY sort-criteria]<br/>
 
 
เช่น <br/>
 
 
* SELECT * FROM Person เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person <br/>
* SELECT Name, Changwat FROM Person เป็นการเรียกดูข้อมูลในคอลัมน์ Name และ Changwat จาก Person <br/>
* SELECT * FROM Person WHERE Sex = ‘ชาย’ เป็นการเรียกดูข้อมูลทุก คอลัมน์ในตารางที่มีชื่อว่า Person และต้องเป็นเพศชายเท่านั้นด้วย <br/>
 
 
'''การใช้ฟังก์ชั่นในคำสั่ง SELECT''' ฟังก์ชั่นที่ใช้ร่วมในคำสั่ง SELECT จะเป็นฟังก์ชั่นทางสถิติเบื่องต้น ได้แก่ <br/>
 
 
# '''COUNT(field)''' เป็นคำสั่งสำหรับนับจำนวนข้อมูลทั้งหมดที่ได้มาจากคำสั่ง SELECT<br/>
# '''SUM(field)''' เป็นคำสั่งสำหรับรวมค่าของข้อมูลใน field นั้นๆ ทุกเรคอร์ด ที่ได้จากคำสั่ง SELECT<br/>
# '''MAX(field)''' เป็นคำสั่งหาค่าสูงสุดของข้อมูลใน field นั้นทุกเรคอร์ดที่ได้จากคำสั่ง SELECT<br/>
# '''MIN(field)''' เป็นคำสั่งหาค่าที่น้อยที่สุดของข้อมูลใน field ทุกเรคอร์ดที่ได้จากคำสั่ง SELECT<br/>
 
 
----
'''Data Definition Language'''<br/>
 
*'''Data Definition Language Pre-compiler''' เป็นส่วนที่ทำหน้าที่แปล (Compile) ประโยคคำสั่งของกลุ่มคำสั่ง DDL ให้อยู่ในรูปแบบของ MetaData ที่เก็บอยู่ในส่วน Data Dictionary ของฐานข้อมูล (MetaData ได้แก่ รายละเอียดที่บอกถึงโครงสร้างต่าง ๆ ของข้อมูล ) เป็นภาษาที่ใช้กำหนดเค้าร่างภายใน (internal schema) และเค้าร่างเชิงแนวคิด (conceptual schema) ใช้ในกรณีที่เค้าร่างภายในและเค้าร่างเชิงแนวคิดไม่แยก
 
* '''Data Definition Language Pre-compiler''' เป็นส่วนที่ทำหน้าที่แปล (Compile) ประโยคคำสั่งของกลุ่มคำสั่ง DDL ให้อยู่ในรูปแบบของ MetaData ที่เก็บอยู่ในส่วน Data Dictionary ของฐานข้อมูล (MetaData ได้แก่ รายละเอียดที่บอกถึงโครงสร้างต่าง ๆ ของข้อมูล ) เป็นภาษาที่ใช้กำหนดเค้าร่างภายใน (internal schema) และเค้าร่างเชิงแนวคิด (conceptual schema) ใช้ในกรณีที่เค้าร่างภายในและเค้าร่างเชิงแนวคิดไม่แยก
----
'''Application Programs'''<br/>
 
*'''Application Programs Object Code''' เป็นส่วนที่ทำหน้าที่แปลงคำสั่งต่างๆ ของโปรแกรม รวมทั้งคำสั่งในกลุ่มคำสั่ง DML ที่ส่งต่อมาจากส่วน Data Manipulation Language Pro-compiler ให้อยู่ในรูปแบบ Object Code ที่จะส่งต่อไปให้ Database Manager เพื่อกระทำกับข้อมูลในฐานข้อมูล
 
* '''Application Programs Object Code''' เป็นส่วนที่ทำหน้าที่แปลงคำสั่งต่างๆ ของโปรแกรม รวมทั้งคำสั่งในกลุ่มคำสั่ง DML ที่ส่งต่อมาจากส่วน Data Manipulation Language Pro-compiler ให้อยู่ในรูปแบบ Object Code ที่จะส่งต่อไปให้ Database Manager เพื่อกระทำกับข้อมูลในฐานข้อมูล
 
'''Data Dictionary'''<br/>
 
 
* ทุกฐานข้อมูลจะต้องมีส่วนที่ใช้เก็บข้อมูลในลักษณะ Meta Data ซึ่งเป็นข้อมูลของข้อมูลที่บอก ถึงรายละเอียดของตัวข้อมูลที่เก็บอยู่ในฐานข้อมูล เช่น โครงสร้าของข้อมูล โครงสร้างของ Table โครงสร้างของ Index กฎที่ใช้ควบคุมความถูกต้องของข้อมูล(Integrity Rule กฎที่ใช้ในการรักษาความปลอด ภัยของข้อมูล (Security Rule) ฯลฯ ข้อมูลเหล่านี้จัดเป็นข้อมูลที่มีความจำเป็นต่อโปรแกรม DBMS ในการตัดสินใจที่จะดำเนินการใด ๆ กับฐานข้อมูล เช่น ข้อมูลที่เกี่ยวข้องกับกฎที่ใช้ในการรักษาความปลอดภัยให้ข้อมูล จะถูกนำมาใช้ในการพิจารณาให้สิทธิแก่ผู้ใช้ในการใช้งานฐานข้อมูล เป็นต้น สำหรับส่วนที่ใช้จัดเก็บข้อมูลในลักษณะของ Meta Data นี้ได้แก่ Data Dictionary หรือ Catalog
'''Data Dictionary'''<br/>
*ทุกฐานข้อมูลจะต้องมีส่วนที่ใช้เก็บข้อมูลในลักษณะ Meta Data ซึ่งเป็นข้อมูลของข้อมูลที่บอก ถึงรายละเอียดของตัวข้อมูลที่เก็บอยู่ในฐานข้อมูล เช่น โครงสร้าของข้อมูล โครงสร้างของ Table โครงสร้างของ Index กฎที่ใช้ควบคุมความถูกต้องของข้อมูล(Integrity Rule กฎที่ใช้ในการรักษาความปลอด ภัยของข้อมูล (Security Rule) ฯลฯ ข้อมูลเหล่านี้จัดเป็นข้อมูลที่มีความจำเป็นต่อโปรแกรม DBMS ในการตัดสินใจที่จะดำเนินการใด ๆ กับฐานข้อมูล เช่น ข้อมูลที่เกี่ยวข้องกับกฎที่ใช้ในการรักษาความปลอดภัยให้ข้อมูล จะถูกนำมาใช้ในการพิจารณาให้สิทธิแก่ผู้ใช้ในการใช้งานฐานข้อมูล เป็นต้น สำหรับส่วนที่ใช้จัดเก็บข้อมูลในลักษณะของ Meta Data นี้ได้แก่ Data Dictionary หรือ Catalog