What Database System Should I Learn First?

19-Apr-19

คัมภีร์เทพ IT

See the original english version Click here!

 

ความรู้ด้าน Database ถือเป็นหนึ่งในพื้นฐานสำคัญของคนไอที เรียกได้ว่า Data เป็นตัวขับเคลื่อนสำคัญสำหรับ Applications ที่เราสร้างขึ้นมา ดังนั้น คุณควรเรียนรู้ Database Systems ให้มากที่สุดเท่าที่จะทำได้ แต่คำถามสำคัญคือ แล้วเราควรเรียนรู้ Database System ใด ก่อนดีล่ะ? มาหาคำตอบกันในบทความนี้ 

ก่อนอื่น สมมติว่าคุณยังเป็นมือใหม่เกี่ยวกับเรื่อง Database อยู่ ก่อนอื่นมาดู ภาพรวมของมันกันก่อน

RDBMS และ NoSQL

ปัจจุบัน คุณมีตัวเลือกหลักๆ ในเรื่อง Database  System อยู่ 2 ตัวเลือก จะเลือกแบบเดิมที่มีมานานอย่าง RDBMS หรือจะเลือกใช้สิ่งที่ใหม่กว่าอย่าง NoSQL ดี? หากคุณยังใหม่สำหรับ Database อยู่ เชื่อว่าคุณคงอยากรู้ข้อมูลพื้นฐานของแต่ละระบบก่อน

RDBMS ย่อมาจาก Relational Database Management System ซึ่งตามข้อมูลใน Wikipedia เกี่ยวกับ Relational Model เขียนไว้ว่า “Model นี้จะจัดการ/จัดเรียง Data ลงใน 1 หรือมากกว่า 1 Table ขึ้นไป (หรือ “ความสัมพันธ์”) ของ Column และ Row โดยใช้ Unique Key ที่ระบุอ้างถึงในแต่ละ Row” หากคุณไม่คุ้นเคยกับสิ่งนี้มากนัก ก็ลองนึกถึง Spreadsheet ที่มี Column และ Row ของ Data ที่เกี่ยวข้อง

การทำงานเหมือนอย่าง Spreadsheet นั้นดูจะง่ายกว่าเมื่อเทียบกับความสามารถของ Database System แต่มันก็ทำงานได้เท่าที่เราเห็นๆ กัน สำหรับ Row และ Column ของ Data ที่เกี่ยวข้องกัน เก็บอยู่ใน Tables ภายใน Database

ในทางตรงกันข้าม NoSQL Databases เป็นกลุ่มของ Database Systems ประเภทต่างๆ ที่เก็บ Data ที่เกี่ยวข้องเข้าไว้ด้วยกัน โดย “NoSQL (เดิมอ้างถึง “non SQL” หรือ “non relational”) Database ได้จัดเตรียมกลไกสำหรับการจัดเก็บ(Store) และดึง (Retrieve) Data ที่เป็นแบบจำลองในวิธีการอื่นนอกเหนือจากความสัมพันธ์แบบตาราง(Tabular Relations) ที่ใช้ใน Relational Databases” (Wikipedia)

ลองคิดว่าให้ NoSQL Databases เป็น JSON Documents ขนาดใหญ่ หรือ Key Value Stores ดู ซึ่งมันมีมากกว่านั้นอีกเยอะ แต่เพื่อวัตถุประสงค์ของการแนะนำนี้ เราจะถือว่าเก็บมันไว้ที่นั่น และหากคุณไม่ทราบถึงความหมายใดๆ ไม่ว่าจะเป็น JSON, Keys, Values แน่นอนว่าเรามีงานต้องทำอีกมากมาย และเราจะทำมันทั้งหมดด้วย

คำแนะนำของ Caleb ก็คือ คุณควรเริ่มต้นด้วย RDBMS และใช้ให้เกิดความเชี่ยวชาญ เมื่อคุณเรียนรู้วิธีการทำงานของ Databases ส่วนใหญ่แล้ว คุณสามารถแยกย่อยไปยังส่วนอื่นๆ และเรียนรู้เกี่ยวกับ NoSQL

นี่เป็น Database Systems บางส่วนที่คุณควรรู้จักมัน: PostgreSQLMS SQL Server และ MySQL

งานที่เกี่ยวข้องกับ Database

  • Database Administrator หรือ DBA: เราสามารถมองมันให้คล้ายกับ System Administrator แต่นี่ไม่ใช่ System มันเป็น Databases โดยพวกเขาจะคอยดูแลเกี่ยวกับการ Monitoring, Tuning, Backing up, Maintaining และ Upgrading ตัว Database Systems ที่คุณใช้อยู่ทุกวัน
  • Database Developer: บางครั้ง ก็มีคนเรียกว่า Solutions Developer นี่เป็นบทบาทของคนที่ใช้เวลาในการทำงานอย่างหนักใน Database พวกเขาเขียน Software เพื่อทำงานบน Data sets ที่มีขนาดใหญ่ (แต่บางครั้งก็ขนาดเล็ก) ลองคิดว่านี่คือ คนที่ทำงานข้างใน Database และ DBA เป็นคนที่ทำงานอยู่ด้านนอก Database อีกทอดหนึ่ง
  • ETL Developer: ทำการรับ Data จาก System หนึ่งแล้วนำไปเข้าสู่ System อื่นๆ โดย ETL ย่อมาจาก Extract, Transform และ Load เมื่อคุณได้รับ Data มาจากที่หนึ่ง คุณจะต้องทำให้มันพอดี/เหมาะสมกับที่อื่นๆ ด้วย ในขณะที่มี Software Applications เฉพาะ ที่ช่วยเหลือในบทบาทนี้ แต่ Caleb ก็ไม่เคยใช้งาน Software เหล่านั้นเลย เขาใช้ PL/SQL Packages ใน Oracle แบบกำหนดเอง 100% เพื่อทำสิ่งเดียวกันกับ Software Packages ราคาแพงเหล่านั้น

การใช้ Database ใน Web Development

หากคุณเป็น Web Developer หรือต้องทำงานใน Web Development Projects คุณน่าจะต้องมีการใช้งานและเชื่อมต่อกับ Data อยู่เป็นประจำ คุณอาจ Query ใน Database โดยตรง หรือใช้ Web Service ที่จะทำสิ่งนั้นให้คุณแล้วให้ Data ที่คุณต้องการกลับมา

จะเป็นอย่างไร ถ้าคุณใช้ Service ดังกล่าวแล้วมันกลับไม่ใช่สิ่งที่คุณต้องการ? จะเป็นอย่างไร ถ้าเจ้านายของคุณเดินมาหาคุณ แล้วถามถึงสิ่งที่ไม่มีอยู่ใน Web Service Form? คราวนี้ก็คงถึงเวลาที่จะต้องพูดคุยกับ Backend Web Developer, หรือไม่คุณก็อาจต้องเขียน Backend Code ด้วยตัวคุณเอง

ใน Web Development นั้น การ Coding สามารถถูกแบ่งออกได้เป็น 3 ประเภทหลักๆ คือ Front end Development, Back end Development และ Full Stack สำหรับ Front end Devs ไม่จำเป็นต้องเกี่ยวข้องกับ Databases หรือต้องใช้ความสามารถในการ Query อะไรมากมาย แต่สำหรับ Devs อีก 2 ประเภท ถือเป็นสิ่งที่จำเป็น ถึงกระนั้นมันก็น่าจะดีหาก Front end Developers จะมีความรู้เกี่ยวกับ Database ด้วยหรือรู้ว่ามันทำงานอย่างไร เป็นต้น

แต่สิ่งที่ Caleb แนะนำก็คือ คุณควรมีทักษะ Full Stack คุณอาจไม่จำเป็นต้องเก่งไปซะทั้งหมด แต่คุณจำเป็นต้องรู้ทุกส่วนตั้งแต่ส่วนของ Database ที่ผลัก Data ออกไป จนถึงสายตาของ User ของคุณ

Databases และคุณ

คราวนี้มาถึงคำถามที่ว่า แล้ว Database System ใดที่เราควรเรียนรู้ก่อนดี? คุณควรเรียนรู้พื้นฐานของพวกมันทั้งหมด แต่ก่อนอื่นคุณต้องเริ่มต้นที่ตัวใดตัวหนึ่งก่อนจริงไหม เริ่มต้นด้วย RDBMS System แล้วก็ก็พยายามเชี่ยวชาญใน SQL ให้มากขึ้น Database เหล่านั้นยังคงมี Data อยู่เป็นจำนวนมาก และพวกมันจะยังไม่หายไปไหนในเร็วๆ นี้แน่นอน นอกจากนี้ยังมี Document ต่างๆ จำนวนมากและมีแหล่งเรียนรู้ฟรี อยู่อีกมากมาย

แต่ในความคิดเห็นของ Caleb คิดว่า สิ่งที่ง่ายที่สุดสำหรับคุณคือ ลองเริ่มต้นด้วย MySQL หรือ MS SQL Server Express ซึ่งทั้ง 2 สิ่งนี้ใช้ได้ฟรี! และยังมี Tutorials อีกมากมายสำหรับทุกกรณีในการใช้งานพื้นฐานอีกด้วย

ที่มา:  https://medium.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด