Database

By Kim on 12 Sep 2022
sennalabs-blog-banner

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

Credit: https://mindphp.com/images/2022/06/database_01.png 

 

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

ข้อมูลภายในฐานข้อมูลประเภททั่วไปที่ดำเนินการอยู่ในแัจจุบัน มักจะสร้างอยู่ในรูปแบบของแถว (rows) และคอลัมน์ (columns) ที่อยู่ในชุดของตาราง เพื่อให้การประมวลผลและการสืบค้นข้อมูลมีประสิทธิภาพ ข้อมูลสามารถเข้าถึง จัดการ แก้ไข ปรับปรุงข้อมูล รวมไปถึงการควบคุมและจัดระเบียบข้อมูลได้ง่าย ฐานข้อมูลโดยส่วนใหญ่จะใช้ภาษา SQL เป็นรากฐาน สำหรับการเขียน (writing) และการสืบค้นข้อมูล (querying)

 

SQL (Structured Query Language)

SQL เป็นภาษาการเขียนโปรแกรมที่ใช้โดยฐานข้อมูลเชิงสัมพันธ์เกือบทั้งหมดในการสืบค้นข้อมูล (query), จัดการ (manipulate) และกำหนดข้อมูลและทำให้สามารถเข้าถึงการควบคุมของข้อมูลได้ โดยที่ SQL ได้รับการพัฒนาครั้งแรกที่ IBM ในปี 1970 ซึ่งมี Oracle เป็นผู้สนับสนุนหลัก จนนำไปสู่การสร้างมาตรฐานในการพัฒนาฐานข้อมูลด้วย SQL ที่หลากหลายมากขึ้น แต่ในปัจจุบันก็มีภาษาโปรแกรมใหม่เริ่มปรากฎให้เห็นมากขึ้น









กว่าจะมาเป็น ฐานข้อมูล (Evolution of Database)

ฐานข้อมูลมีการพัฒนาอย่างมาก ตั้งแต่การเริ่มแรกในช่วง 1960 Navigational Database เช่น Hierarchical Database ซึ่งมีการวางรูปแบบเป็นเสมือนต้นไม้ จะทำให้มีการสร้างความสัมพันธ์ระหว่างกันเป็นแบบ one-to-many เท่านั้น และ Network Database เป็นรูปแบบฐานข้อมูลที่มีความยืดหยุ่นกว่าที่สามารถสร้างความสัมพันธ์ระหว่างกันได้หลากหลาย ทั้งหมดนั้นเป็นระบบดั้งเดิมที่ใช้จัดเก็บข้อมูล และจัดการข้อมูล ซึ่งถึงแม้ว่ามันจะดูเรียบง่ายและกำลังดี แต่ระบบเริ่มแรกนั้นไม่ได้มีความยืดหยุ่นในการใช้งานมากมายสักเท่าไหร่ ในปี 1980 ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ได้รับความนิยม ซึ่งตามมาด้วยฐานข้อมูลเชิงวัตถุ (Object-oriented Database) ในปี 1990  และไม่นานมานี้ก็ได้มีการสร้าง NoSQL ที่เกิดจากการเติบโตของการใช้งานอินเตอร์เน็ตและความต้องการใช้งานที่รวดเร็วมากขึ้น รวมถึงการประมวลผลข้อมูลที่ไม่มีโครงสร้าง ทุกวันนี้ฐานข้อมูลบน เคลาวด์ (Cloud Database) และฐานข้อมูลแบบขับเคลื่อนด้วยตัวเอง (Self-Driving Database) กำลังสร้างมิติใหม่ในแง่รวมข้อการรวบรวม จัดเก็บ จัดการและการใช้งานข้อมูล

 

ประโยชน์ของฐานข้อมูล

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

 

Credit: https://img.freepik.com/free-vector/network-database-concept_1284-4084.jpg?w=2000





ประเภทของฐานข้อมูล

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

 

Relational Database

ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นรูปแบบฐานข้อมูลที่มีการใช้มาอย่างยาวนาน ซึ่งรูปแบบของข้อมูลที่ถูกเก็บในฐานข้อมูลประเภทนี้ จะถูกจัดระเบียบเป็นชุดของตารางที่มีคอลัมน์ (columns) และแถว (rows) รูปแบบของฐานข้อมูลประเภทนี้เป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นที่สุดในการเข้าถึงข้อมูลที่มีโครงสร้าง (structured data/information)

 

Object-Oriented Database

ข้อมูลที่ถูกเก็บในฐานข้อมูลประเภทนี้ จะถูกเก็บอยู่ในรูปแบบของวัตถุ (Object) เป็นเช่นเดียวกันกับข้อมูลที่ถูกใช้งานในการเขียนโปรแกรมแบบเชิงวัตถุ (Object-Oriented Programming)

 

Distributed Database

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

 

Data warehouses

คลังข้อมูลส่วนกลาง จะเป็นฐานข้อมูลประเภทหนึ่งที่ออกแบบมาโดยเฉพาะสำหรับการสืบค้นข้อมูลและเพื่อการวิเคราะห์ข้อมูลที่รวดเร็วเป็นพิเศษ

 

NoSQL Database

NoSQL หรือฐานข้อมูลที่ไม่สัมพันธ์กัน จะสามารถจัดเก็บข้อมูลที่เป็นลักษณะไม่มีโครงสร้างและกึ่งโครงสร้างได้ ซึ่งแตกต่างกับ Relational Database กันอย่างสิ้นเชิง NoSQL เริ่มได้รับความนิยมมากขึ้น เนื่องจาก web application กลายเป็นเรื่องธรรมดาที่จะถูกพัฒนาขึ้นและซับซ้อมากขึ้น

 

Graph Database

ฐานข้อมูลชุดนี้จะจัดเก็บของมูลในรูปแบบของ entity และความสัมพันธ์กันระหว่าง entity ซึ่งอาจจะมีลักษณธคล้ายคลึงกันกับการ reference ถึงกันแบบ Relational Database

 

Cloud Database 

ฐานข้อมูลบนคลาวด์คือชุดข้อมูล ที่มีทั้งแบบมีโครงสร้างและแบบไม่มีโครงสร้าง ซึ่งอยู่บน cloud computing platform ที่มีทั้ง private, public และ hybrid รูปแบบของฐานข้อมูลประเภทนี้มีสองประเภท คือแบบดั้งเดิม (Traditional) และฐานข้อมูลในรูปแบบบริการ ( Database as a Service) ด้วยระบบของ DBaaS งานด้านการดูแลระบบและการบำรุงรักษาจะดำเนินดารโดยผู้ให้บริการ เช่น GCP (Google Cloud Platform), Azure (Microsoft), AWS (Amazon Web Services) เป็นต้น

 

Document/JSON database

ฐานข้อมูลรูปแบบนี้ จะมีการเก็บข้อมูลเป็นแบบของเอกสารหรือ JSON format ซึ่งเป็นรูปแบบฐานข้อมูลที่ทันสมัยในการจัดเก็บข้อมูล ที่ JSON จะแทนที่ตารางแบบ columns and rows

 

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

 

การประยุกต์ใช้ของฐานข้อมูล

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

Written By
Kim

Please Tell Us Your Ideas

We will get back to you within 24 hours!

Something went wrong. Please try to verify again