ข้อมูล เป็นการรวบรวมข้อมูลข้อเท็จจริงหรือสถิติที่ยังไม่ได้ประมวลผลในรูปแบบใดๆ ผ่านเครือข่าย การประมวลผลข้อมูลจะเปลี่ยนเป็น ข้อมูล ซึ่งเป็นประโยชน์อย่างมาก ข้อมูลที่เกี่ยวข้องจัดเป็น ฐานข้อมูล (ทั้งฮาร์ดแวร์และซอฟต์แวร์) เพื่อการจัดการที่ง่าย DBMS(ระบบจัดการฐานข้อมูล) เป็นซอฟต์แวร์ที่อนุญาตให้ผู้ใช้สร้างและจัดการฐานข้อมูล
SQL กับ HQL
ความแตกต่างระหว่าง SQL และ HQL คือ SQL ทำงานโดยตรงบนฐานข้อมูลผ่านการสืบค้น ในขณะที่ HQL ทำงานบนวัตถุและคุณสมบัติของวัตถุ ซึ่งจะถูกแปลเป็นแบบสอบถามทั่วไปเพื่อเรียกใช้ฐานข้อมูล
ในการขอและดึงข้อมูลจากฐานข้อมูลโดยการส่งแบบสอบถาม เราใช้ QL (ภาษาแบบสอบถาม). SQL (ภาษาคิวรีที่มีโครงสร้าง) และ HQL (Hibernate Query Language) ใช้สำหรับดึงข้อมูลจาก RDBMS (Relational DBMS) ที่เก็บข้อมูลในรูปแบบตาราง
ในภาษาที่ใช้ค้นหาในชีวิตประจำวันของเรามีบทบาทสำคัญในการสร้างพื้นฐานสำหรับอินเทอร์เฟซต่างๆ เช่น ATM, หน้าเว็บ, การดำเนินการตามคำสั่งซื้อออนไลน์, การบัญชี, บันทึกการประกันภัย ฯลฯ
ตารางเปรียบเทียบระหว่าง SQL และ HQL
พารามิเตอร์ของการเปรียบเทียบ | SQL | HQL |
ฟูลฟอร์ม | ย่อมาจาก Structured Query Language | ย่อมาจาก Hibernate Query Language |
ประเภทของภาษาโปรแกรม | ภาษาแบบสอบถามแบบดั้งเดิม | ภาษาแบบสอบถาม OOP ที่ใช้ JAVA |
ความกังวล | มันเกี่ยวข้องกับความสัมพันธ์ระหว่างสองตารางหรือคอลัมน์ | มันเกี่ยวข้องกับสองความสัมพันธ์ระหว่างสองวัตถุ |
ใช้งานง่าย | นำเสนออินเทอร์เฟซที่ซับซ้อนสำหรับผู้ใช้ใหม่ | ให้ส่วนต่อประสานที่ใช้งานง่าย |
คุณสมบัติ | ใช้ตารางและคอลัมน์ | ใช้คลาสและตัวแปร JAVA |
การโต้ตอบกับฐานข้อมูล | โต้ตอบกับฐานข้อมูลโดยตรง | ใช้อินเทอร์เฟซ 'ไฮเบอร์เนต' เพื่อโต้ตอบกับฐานข้อมูล |
ความเร็ว | Native SQL มักจะเร็วกว่า | HQL ที่ไม่ใช่เจ้าของภาษามักจะช้ากว่าเนื่องจากรันไทม์อิงตามการแมป แต่สามารถเพิ่มความเร็วได้โดยการตั้งค่าขนาดแคชที่เหมาะสมของแผนการสืบค้น |
SQL คืออะไร?
SQL มักเรียกว่า 'ผลสืบเนื่อง' หรือ 'SQL' เป็นภาษาการสืบค้นฐานข้อมูลที่ใช้ในการประมวลผลข้อมูลจาก RDBMS SQL ไม่ใช่ OOP (ภาษาการเขียนโปรแกรมเชิงวัตถุ) แต่สร้างการสืบค้นโดยตรงและส่งคำขอสำหรับการดึงข้อมูลจาก RDBM มันทำงานบนตารางและคอลัมน์ที่เก็บข้อมูลและจัดการการดำเนินการทั้งหมดใน RDBMS
ใช้เป็นภาษาการสืบค้นฐานข้อมูลมาตรฐานใน RDBMS เกือบทั้งหมด เช่น MySql, Oracle, MsAccess เป็นต้น คำสั่ง SQL มาตรฐานที่ใช้โต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ ได้แก่ SELECT, CREATE, DELETE, INSERT, UPDATE และ DROP
ไม่เหมือนกับภาษาโปรแกรมอื่น ๆ SQL ไม่สามารถใช้เพื่อพัฒนาโปรแกรมแบบสแตนด์อโลนและสามารถใช้งานได้ภายใน RDBMS เท่านั้น เป็นภาษาประเภทการประกาศ กล่าวคือ บอกฐานข้อมูลว่าต้องทำอะไร และให้ RDBMS ตัดสินใจรายละเอียดของการนำไปใช้ (ต้องทำอย่างไร)
ข้อดีของมันคือ ผู้ใช้ไม่จำเป็นต้องเขียนโค้ดจำนวนมาก แต่ผู้ใช้สามารถควบคุมฐานข้อมูลได้เพียงบางส่วนเท่านั้น เนื่องจากกฎเกณฑ์ทางธุรกิจที่ซ่อนอยู่ และยังมีอินเทอร์เฟซที่ค่อนข้างซับซ้อนอีกด้วย
HQL คืออะไร?
HQL หรือ Hibernate Query Language เป็นภาษาโปรแกรมคิวรีเชิงวัตถุซึ่งเขียนฝังอยู่ในโค้ด JAVA และใช้ฟังก์ชันต่างๆ ภายใต้ไลบรารี JAVA เพื่อแปลงรหัสเอนทิตีเป็นโค้ดการสืบค้นแบบเดิมที่สามารถโต้ตอบกับฐานข้อมูลได้
ฟังก์ชันการแปลงนี้ดำเนินการโดยเฟรมเวิร์ก JAVA ที่เรียกว่า 'Hibernate' ซึ่งเป็นที่มาของชื่อ HQL ความหมายของไฮเบอร์เนตคือการผ่านช่วงเวลาที่กำหนดในสถานะพัก/ไม่ใช้งาน ในทำนองเดียวกัน คุณลักษณะ "ไฮเบอร์เนต" จะยังคงทำงานอยู่หลังแอปพลิเคชันเท่านั้น
เป็นเฟรมเวิร์กที่ใช้ ORM (Object Relational Mapping) ที่ถ่ายโอนข้อมูลระหว่างแอปพลิเคชันและฐานข้อมูลเชิงสัมพันธ์ในรูปแบบของวัตถุ HQL ทำงานร่วมกับคลาสและคุณสมบัติของคลาส ซึ่งสุดท้ายแล้วจะจับคู่กับโครงสร้างตารางภายในฐานข้อมูลที่เกี่ยวข้อง
HQL มีประโยชน์มากหากโปรแกรมเมอร์รู้ภาษา OOP และต้องการโต้ตอบกับฐานข้อมูล ซึ่งเธอ/เขาสามารถทำได้โดยไม่ต้องเรียนรู้ภาษาคิวรี SQL แบบดั้งเดิม
แม้ว่า HQL จะเป็นมิตรกับผู้ใช้มาก แต่ก็มักจะช้ากว่า SQL เนื่องจากรันไทม์อิงจากการแมป นอกจากนี้ยังไม่เหมาะสำหรับโปรเจ็กต์ขนาดเล็กที่เกี่ยวข้องกับจำนวนตารางน้อย เนื่องจากการแนะนำเฟรมเวิร์กไฮเบอร์เนตทั้งหมดกลายเป็นเรื่องยาก
ความแตกต่างหลักระหว่าง SQL และ HQL
บทสรุป
วัตถุประสงค์หลักของ SQL และ HQL หรือมากกว่าภาษาการสืบค้นใดๆ คือการอนุญาตให้ผู้ใช้ดึงข้อมูลจากฐานข้อมูลและระบบสารสนเทศ
SQL นั้นแตกต่างจากภาษาโปรแกรมอื่น ๆ ในแง่ที่ว่ามันใช้งานได้ภายในระบบการจัดการฐานข้อมูลเท่านั้น และไม่สามารถสร้างโปรแกรมแบบสแตนด์อโลนได้ ในขณะที่นี่ไม่ใช่กรณีของ HQL
ผู้ใช้ที่ยังใหม่ต่อ QL และต้องการโต้ตอบกับ RDBMS และใช้งานภาษาคิวรีดั้งเดิมต้องเลือกใช้ SQL มากกว่า เนื่องจากเป็นแบบเดิมและรวดเร็ว ในทางกลับกัน ผู้ใช้ที่มีพื้นหลังการเข้ารหัสในภาษา OOP จะต้องเลือก HQL เนื่องจากมีอินเทอร์เฟซที่ใช้งานง่ายกว่าพร้อมคุณสมบัติ OOP
อ้างอิง
- https://books.google.co.in/books?hl=th&lr=&id=HblnED6bKUgC&oi=fnd&pg=PR25&dq=sql+tutorial+informix+guide&ots=scXEV5CJcB&sig=6QyVATrORJKnQ2Fo0L9_rexBFv=6QyVATrORJKnQ2Fo0L9_rexBFv62
- https://books.google.co.in/books?id=n8kFAwAAQBAJ&pg=PA2&dq=hql+tutorial&hl=th&newbks=1&newbks_redir=1&sa=X&ved=2ahUKEwjUlfbE0tfsAhX6wzgGHepLDeAQAI&htorial%AwfalfbE0tfsAhX6wzgGHepLDeAQAI&nefal