Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สงครามฐานข้อมูล:เซิร์ฟเวอร์ MSSQL, Oracle PL/SQL และ MySQL


ด้วยฐานข้อมูลจำนวนมากในตลาด สงครามความคิดจึงได้เริ่มต้นขึ้น และเป็นเวลาที่เหมาะสมที่จะเข้าใจความแตกต่างและความสำคัญของฐานข้อมูลเชิงสัมพันธ์ 3 อันดับแรกในตลาด ได้แก่ Microsoft SQL Server, Oracle PL/SQL และ MySQL ปัจจุบันระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ได้กลายเป็นกระดูกสันหลังของอุตสาหกรรม และด้วยตัวเลือกมากมายที่มีอยู่ จึงเป็นเรื่องยากที่จะตัดสินใจว่าจะเลือกอันไหน

ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์เปิดตัวในปี 1980 บทความนี้เน้นที่การสำรวจประวัติและคุณลักษณะของ RDBMS ยอดนิยมสามรายการในอุตสาหกรรม ได้แก่ Microsoft SQL Server, Oracle และ MySQL Microsoft SQL Server และ Oracle เป็นซอฟต์แวร์เชิงพาณิชย์ ส่วน MySQL เป็น RDBMS แบบโอเพนซอร์ส

สงครามฐานข้อมูล:เซิร์ฟเวอร์ MSSQL, Oracle PL/SQL และ MySQL

Oracle เป็นบริษัทแรกที่นำ RDBMS ออกมาใช้เชิงพาณิชย์ในช่วงปี 1980 ในช่วงกลางทศวรรษ 1990 Microsoft เข้าสู่ตลาดโดยมี SQL Server เป็นคู่แข่งสำคัญของ Oracle ในทางกลับกัน MySQL ได้รับการพัฒนาและเผยแพร่เป็นซอฟต์แวร์โอเพ่นซอร์ส MySQL เปิดตัวครั้งแรกในปี 1995 และเวอร์ชัน windows เปิดตัวในปี 1998 ในปี 2008 SUN ถูกซื้อกิจการมา และ Oracle ได้ในภายหลัง

ภาษา – หัวใจของการสื่อสาร

แกนหลักของ RDBMS คือภาษาที่ใช้ในการดำเนินการค้นหา และนั่นคือผลกระทบต่อประสิทธิภาพและการใช้งาน แม้ว่าระบบจัดการฐานข้อมูลทั้งสามระบบจะใช้เวอร์ชันของ Structured Query Language หรือ SQL Microsoft SQL Server ใช้ Transact-SQL หรือ T-SQL ซึ่งเป็นส่วนขยายของ SQL ที่พัฒนาโดย Sybase และใช้โดย Microsoft ในขณะที่ Oracle ใช้ PL/SQL หรือ Procedural Language/SQL

ทั้งสองเป็น "รสชาติ" หรือภาษาถิ่นของ SQL ที่แตกต่างกัน และทั้งสองภาษามีรูปแบบและความสามารถที่แตกต่างกันเล็กน้อย ความแตกต่างหลักระหว่างสองภาษาคือวิธีที่พวกเขาจัดการกับตัวแปร กระบวนงานที่เก็บไว้ และฟังก์ชันในตัว PL/SQL ใน Oracle ยังสามารถจัดกลุ่มโพรซีเดอร์เข้าด้วยกันเป็นแพ็คเกจ ซึ่งไม่สามารถทำได้ใน MS SQL Server PL/SQL อาจซับซ้อนกว่าเล็กน้อยและอาจมีประสิทธิภาพมากกว่า ในขณะที่ T-SQL นั้นเรียบง่ายและนำไปใช้ได้ง่ายกว่ามาก

สงครามฐานข้อมูล:เซิร์ฟเวอร์ MSSQL, Oracle PL/SQL และ MySQL

ในทางกลับกัน MySQL ใช้เวอร์ชัน light ของ T-SQL และยังรวมภาษาขั้นตอนที่เกี่ยวข้องอย่างใกล้ชิดกับ SQL/PSM อย่างไรก็ตาม โค้ด-อ็อบเจ็กต์ที่จัดเก็บไว้ของ MySQL นั้นใกล้เคียงกับมาตรฐาน ANSI แต่ก็ไม่มีความกว้างและความลึกของ T-SQL, Microsoft และส่วนขยายที่เป็นกรรมสิทธิ์ของ Sybase สำหรับ SQL

การควบคุมธุรกรรม

ธุรกรรมสามารถกล่าวได้ว่าเป็นกลุ่มของการดำเนินการที่ดำเนินการเป็นหน่วยเดียว ตัวอย่างเช่น หากผู้ใช้พยายามเรียกใช้คำสั่ง SQL บางอย่าง คำสั่งทั้งหมดจะถูกดำเนินการหรือไม่มีเลย นี่เป็นหนึ่งในข้อแตกต่างที่สำคัญระหว่าง Oracle และ MS SQL Server ในการอ้างอิงถึงการควบคุมธุรกรรม

ตามค่าเริ่มต้น MS SQL Server จะดำเนินการและคอมมิตแต่ละคำสั่ง/งานทีละรายการ และจะเป็นการยากหรือเป็นไปไม่ได้ที่จะย้อนกลับการเปลี่ยนแปลงหากมีข้อผิดพลาดเกิดขึ้น คำสั่ง "BEGIN TRANSACTION" ใช้เพื่อจัดกลุ่มคำสั่งและประกาศการเริ่มต้นของทรานแซคชันอย่างเหมาะสม และสามารถใช้คำสั่ง COMMIT ในตอนท้ายได้ คำสั่ง COMMIT นี้จะเขียนข้อมูลที่เปลี่ยนแปลงไปยังดิสก์ และสิ้นสุดธุรกรรม ภายในธุรกรรม ROLLBACK จะละทิ้งการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นภายในบล็อคธุรกรรม หลังจากออก COMMIT แล้ว จะไม่สามารถย้อนกลับได้มากไปกว่าคำสั่ง COMMIT

สงครามฐานข้อมูล:เซิร์ฟเวอร์ MSSQL, Oracle PL/SQL และ MySQL

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

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

การจัดระเบียบของออบเจ็กต์ฐานข้อมูล

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

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

กล่าวโดยย่อ ทั้งสาม MySQL, Oracle และ SQL Server เป็นตัวเลือก RDBMS ที่มีประสิทธิภาพ แม้ว่าจะมีข้อแตกต่างอื่นๆ อีกหลายประการเกี่ยวกับวิธีการทำงาน "ภายใต้ประทุน" และนำไปปฏิบัติ แต่ก็สามารถใช้ได้ในลักษณะที่ใกล้เคียงกันเกือบเท่าๆ กัน แต่ละรายการสามารถใช้โดยมีวัตถุประสงค์ที่แตกต่างกันในสภาพแวดล้อมที่แตกต่างกัน วัตถุประสงค์อาจเหมือนกัน แต่การใช้งานแตกต่างกันไป