DocumentDB SQL - ภาพรวม
DocumentDB เป็นแพลตฟอร์มฐานข้อมูลเอกสาร NoSQL ใหม่ล่าสุดของ Microsoft ที่ทำงานบน Azure ในบทช่วยสอนนี้เราจะเรียนรู้ทั้งหมดเกี่ยวกับการสืบค้นเอกสารโดยใช้ SQL เวอร์ชันพิเศษที่ DocumentDB สนับสนุน
ฐานข้อมูลเอกสาร NoSQL
DocumentDB เป็นฐานข้อมูลเอกสาร NoSQL ใหม่ล่าสุดของ Microsoft อย่างไรก็ตามเมื่อเราพูดว่าฐานข้อมูลเอกสาร NoSQL NoSQL และฐานข้อมูลเอกสารหมายถึงอะไร?
SQL หมายถึง Structured Query Language ซึ่งเป็นภาษาแบบสอบถามแบบดั้งเดิมของฐานข้อมูลเชิงสัมพันธ์ SQL มักจะเทียบเท่ากับฐานข้อมูลเชิงสัมพันธ์
การคิดว่าฐานข้อมูล NoSQL เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์จะมีประโยชน์มากกว่าดังนั้น NoSQL จึงหมายถึงการไม่สัมพันธ์กันจริงๆ
มีฐานข้อมูล NoSQL ประเภทต่างๆซึ่งรวมถึงที่เก็บค่าคีย์เช่น -
- Azure Table Storage
- ร้านค้าตามคอลัมน์เช่น Cassandra
- ฐานข้อมูลกราฟเช่น NEO4
- ฐานข้อมูลเอกสารเช่น MongoDB และ Azure DocumentDB
ทำไมต้องเป็น SQL Syntax
ตอนแรกอาจฟังดูแปลก ๆ แต่ใน DocumentDB ซึ่งเป็นฐานข้อมูล NoSQL เราจะสอบถามโดยใช้ SQL ดังที่ได้กล่าวไว้ข้างต้นนี่เป็นเวอร์ชันพิเศษของ SQL ที่รูทด้วยความหมาย JSON และ JavaScript
SQL เป็นเพียงภาษาหนึ่ง แต่ก็เป็นภาษาที่ได้รับความนิยมอย่างมากซึ่งมีการแสดงออกที่หลากหลาย ดังนั้นจึงเป็นความคิดที่ดีที่จะใช้ภาษาถิ่นของ SQL แทนที่จะใช้วิธีใหม่ในการแสดงข้อความค้นหาที่เราจำเป็นต้องเรียนรู้หากคุณต้องการนำเอกสารออกจากฐานข้อมูลของคุณ
SQL ได้รับการออกแบบสำหรับฐานข้อมูลเชิงสัมพันธ์และ DocumentDB เป็นฐานข้อมูลเอกสารที่ไม่ใช่เชิงสัมพันธ์ ทีม DocumentDB ได้ปรับไวยากรณ์ SQL สำหรับโลกฐานข้อมูลเอกสารที่ไม่ใช่เชิงสัมพันธ์และนี่คือความหมายของการรูท SQL ใน JSON และ JavaScript
ภาษายังคงอ่านเป็น SQL ที่คุ้นเคย แต่ความหมายทั้งหมดขึ้นอยู่กับเอกสาร JSON แบบ schemafree แทนที่จะเป็นตารางเชิงสัมพันธ์ ใน DocumentDB เราจะทำงานกับชนิดข้อมูล JavaScript แทนประเภทข้อมูล SQL เราจะคุ้นเคยกับ SELECT, FROM, WHERE และอื่น ๆ แต่ประเภทของ JavaScript ซึ่ง จำกัด เฉพาะตัวเลขและสตริงออบเจ็กต์อาร์เรย์บูลีนและ null นั้นน้อยกว่าประเภทข้อมูล SQL ที่หลากหลายมาก
ในทำนองเดียวกันนิพจน์จะถูกประเมินเป็นนิพจน์ JavaScript แทนที่จะเป็น T-SQL บางรูปแบบ ตัวอย่างเช่นในโลกของข้อมูลที่ถูกทำให้เป็นมาตรฐานเราไม่ได้จัดการกับแถวและคอลัมน์ แต่เป็นเอกสารที่ไม่มีสคีมาพร้อมโครงสร้างลำดับชั้นที่มีอาร์เรย์และวัตถุที่ซ้อนกัน
SQL ทำงานอย่างไร
ทีม DocumentDB ได้ตอบคำถามนี้ด้วยวิธีใหม่ ๆ มีอยู่ไม่กี่รายการดังต่อไปนี้ -
ขั้นแรกสมมติว่าคุณไม่ได้เปลี่ยนลักษณะการทำงานเริ่มต้นเพื่อจัดทำดัชนีทุกคุณสมบัติในเอกสารโดยอัตโนมัติคุณสามารถใช้สัญลักษณ์จุดในแบบสอบถามของคุณเพื่อนำทางเส้นทางไปยังคุณสมบัติใด ๆ ไม่ว่าเอกสารนั้นจะซ้อนกันลึกเพียงใด
คุณยังสามารถทำการรวมภายในเอกสารซึ่งองค์ประกอบอาร์เรย์ที่ซ้อนกันจะถูกรวมเข้ากับองค์ประกอบหลักภายในเอกสารในลักษณะที่คล้ายกันมากกับวิธีการรวมระหว่างสองตารางในโลกเชิงสัมพันธ์
แบบสอบถามของคุณสามารถส่งคืนเอกสารจากฐานข้อมูลได้ตามที่เป็นอยู่หรือคุณสามารถฉายรูปร่าง JSON แบบกำหนดเองที่คุณต้องการโดยยึดตามข้อมูลเอกสารที่คุณต้องการ
SQL ใน DocumentDB สนับสนุนตัวดำเนินการทั่วไปหลายตัว ได้แก่ -
การคำนวณทางคณิตศาสตร์และบิต
ตรรกะ AND และ OR
การเปรียบเทียบความเท่าเทียมและช่วง
การต่อสตริง
ภาษาแบบสอบถามยังสนับสนุนโฮสต์ของฟังก์ชันในตัว