ออราเคิล

Oracle ไม่ใช่ฐานข้อมูลที่ได้รับความนิยมมากที่สุด แต่เป็นฐานข้อมูลที่มีชื่อเสียงที่สุด แม้ว่าจะเป็นที่ถกเถียงกันอยู่ว่าเป็นที่นิยมมากที่สุด ดูวิธีการนับ หากคุณดูที่จำนวนบริษัท MySQL จะเป็นฐานข้อมูลที่ได้รับความนิยมมากที่สุด: มันค่อนข้างดีและฟรีทั้งหมด :)

แต่ก็สามารถพิจารณาได้แตกต่างกัน หากมีบริษัทหนึ่งที่มีลูกค้าหนึ่งล้านรายที่ใช้ Oracle และ5 บริษัทที่มีลูกค้าหนึ่งร้อยรายที่ใช้ MySQL แสดงว่า Oracle มีลูกค้าหนึ่งล้านรายและ MySQL เพียง 500 คน

โดยทั่วไป หากคุณเลือกบริษัทขนาดใหญ่ที่มีเงินและดูว่าพวกเขาเลือก DBMS ใด ประมาณหนึ่งในสามของบริษัททั้งหมดในโลกจะนั่งอยู่บน Oracle อะไรทำนองนี้

ในฐานะโปรแกรมเมอร์ คุณมีแนวโน้มที่จะทำงานในอนาคตบน Oracle มากกว่าบน MySQL มีวิดีโอที่ยอดเยี่ยมบนอินเทอร์เน็ตที่แสดงให้เห็นว่าความนิยมของ DBMS เปลี่ยนแปลงไปอย่างไรในช่วง 20 ปีที่ผ่านมา

มายเอสคิวแอล

ความนิยมอันดับสองในบรรดา DBMS ทั้งหมดคือ MySQL และเป็นครั้งแรกที่ได้รับความนิยมในบรรดา DBMS ฟรีทั้งหมด ตอนนี้คุณเข้าใจแล้วว่าทำไมเราถึงเรียนรู้ SQL จากตัวอย่างของเธอ โฆษณาเกินจริงและธุรกิจค่อนข้างอนุรักษ์นิยมในการเลือกโครงสร้างพื้นฐาน

โดยหลักการแล้วเราได้พูดคุยเกี่ยวกับ MySQL แล้ว เมื่อพวกเขาถูกซื้อโดยSun จากนั้นโดยOracle ซึ่งก็ยากที่จะเรียกว่าองค์กรแห่งความดี

พวกเขาคือผู้ที่พยายามจ่าย Java อย่างต่อเนื่องหลังจากการเข้าซื้อกิจการของ Sun

ใช่ Sun เป็นเจ้าของทั้ง Java และ MySQL ก่อนที่ Oracle จะซื้อ

ข้อเท็จจริงนี้และชื่อเสียงของ Oracle ทำให้นักพัฒนา MySQL กลัวเล็กน้อยซึ่งตัดสินใจแยกโครงการ MySQL และเรียกมันว่า MariaDB

MariaDBเป็นสำเนาของ MySQLที่มีนิสัยใจคอในการใช้งานบางอย่างที่ช่วยให้คุณได้รับความแตกต่างของสิทธิบัตรและใบอนุญาต

อย่างไรก็ตาม Oracle ไม่ใช่คนโง่เช่นกัน เพื่อป้องกันไม่ให้ลูกค้าและนักพัฒนารั่วไหลไปยัง MariaDB Oracle ยังคงให้ทุนสนับสนุนการพัฒนาและการพัฒนา MySQL ซึ่งยังคงฟรีต่อไป

และเพื่อให้นั่งบนเก้าอี้สองตัว MySQL Enterprise แบบชำระเงิน ได้รับการเผยแพร่สำหรับลูกค้าองค์กรซึ่งไม่แตกต่างจากMySQL Community Editionแต่สิทธิ์การใช้งานของใบอนุญาตนั้นเหมาะสมกับธุรกิจมากกว่า

PostgreSQL

DBMS ที่น่าสนใจอีกตัวคือ PostgreSQL (อ่านว่า "postgres cue")

นี่เป็นอีกหนึ่ง DBMS ฟรีที่ได้รับความนิยมอย่างรวดเร็วในช่วงไม่กี่ปีที่ผ่านมา แม้ว่าจะยังห่างไกลจาก MySQL

PostgreSQL เน้นการทำงานแบบกระจายเป็นหลัก จุดแข็งของมันคือ:

  • กลไกการทำธุรกรรมและการจำลองแบบประสิทธิภาพสูงและเชื่อถือได้
  • ระบบที่ขยายได้ของภาษาการเขียนโปรแกรมในตัว: PL SQL, PL JS, PL Python, …
  • การสืบทอดตาราง
  • ความสามารถในการจัดทำดัชนีวัตถุทางเรขาคณิต (โดยเฉพาะทางภูมิศาสตร์)
  • การสนับสนุนในตัวสำหรับข้อมูลกึ่งโครงสร้างในรูปแบบ JSON พร้อมความสามารถในการจัดทำดัชนี
  • ความสามารถในการขยาย (ความสามารถในการสร้างประเภทข้อมูลใหม่ ประเภทดัชนี ภาษาการเขียนโปรแกรม โมดูลส่วนขยาย เชื่อมต่อแหล่งข้อมูลภายนอกใดๆ)

คุณรู้หรือไม่ว่าทำไมมันถึงเรียกว่า? นี่คือวิธีการ ...

ประมาณ 50 ปีที่แล้ว ในช่วงต้นทศวรรษ ที่70 มหาวิทยาลัย Berkeley ได้เริ่มพัฒนา DBMS เชิงสัมพันธ์ของตนเอง และเรียกมันว่าIngres

ในช่วงต้นทศวรรษที่ 80 ศาสตราจารย์ Michael Stonebreaker ออกจากโครงการและตัดสินใจเขียน DBMS ของตัวเองด้วยกระบองและโสเภณี เขาและนักเรียนเริ่มเขียน DBMS ของตนเอง ซึ่งเรียกสั้นๆ ว่าPost Ingresซึ่งย่อมาจากPostgres ในอนาคต

และเนื่องจากชื่อ Postgres ไม่ได้มีความหมายสำหรับทุกคน จึงตัดสินใจเพิ่มส่วนต่อท้าย SQL เข้าไป นี่คือลักษณะของ PostgreSQL ซึ่งสูญเสีย S สองเท่าทันที และเริ่มเขียนเป็น PostgreSQL แต่พูดชื่อต้องอ่านเหมือน PostgresQL

NoSQL

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

มันดูเหมือนอะไร? ลองนึกภาพหน้าเว็บสวยๆ ที่เขียนด้วย HTML, CSS และ JavaScript... ที่เปิดในเบราว์เซอร์ปี 1995 มันทำงานด้วยความแข็งแกร่ง 10% ของ CSS และไม่รองรับ JavaScript เลย และ มาตรฐานใหม่นี้เรียกว่า… NoHtml

ตัวอย่างเช่น การ JOIN ระหว่างตารางอาจไม่รองรับใน NoSQL จากนั้นคุณต้องจำลองสิ่งนี้ที่ระดับของโค้ด Java ในโปรแกรม หรือเก็บข้อมูลทั้งหมดของตารางที่เกี่ยวข้องไว้ในตารางขนาดใหญ่ตารางเดียว

และถ้าในกรณีของ NoHtml เราดูเหมือนว่าจะย้อนกลับไปเมื่อ 20 ปีที่แล้ว ในกรณีของ NoSQL การย้อนกลับจะเกิดขึ้นที่ไหนสักแห่งประมาณ 40 ปี

ยกตัวอย่างเช่น ฐานข้อมูล Cassandra NoSQL ที่Facebook ใช้ เพื่อเก็บข้อมูลของผู้ใช้หลายพันล้านคน จริงๆแล้วพวกเขาพัฒนามันแล้วโพสต์เป็นโครงการ OpenSource

เริ่มจากสิ่งที่น่าสนใจที่สุด - โค้ด DBMS ทั้งหมดเขียนด้วย Java โค้ด C++ อาจจะทำงานเร็วขึ้น แต่จะมีบั๊กมากกว่านี้ และโค้ด Java นั้นง่ายต่อการบำรุงรักษาและพัฒนา

รูปแบบทั่วไปของคำขอไปยัง Casandra DBMS ดูคุ้นเคยเป็นอย่างดี:

  SELECT columns  
  FROM table 
  WHERE condition
  GROUP BY columns 
  ORDER BY sorting 
  LIMIT quantity

อย่างที่คุณเห็น SQL อยู่ที่นั่น คุณรู้หรือไม่ว่ามีอะไรหายไปที่นี่? เข้าร่วม ! คุณสามารถเลือกข้อมูลจากตารางเดียวเท่านั้น :)

นี่คือคำพูดจากเอกสารอย่างเป็นทางการ:

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