เรากำลังเรียนรู้ว่าภาษาส่วนใหญ่จัดอยู่ในประเภทใดประเภทหนึ่งทั้งสอง "ตามความสัมพันธ์" หรือ "ระดับสูง"
แนวคิดเหล่านั้นเป็นฉาก "อิงตามความสัมพันธ์" หมายถึงความหมายของภาษานั้นตั้งอยู่บนพื้นฐานของแนวคิดของความสัมพันธ์นั่นคือการเชื่อมโยงหลายต่อหลายกลุ่มระหว่างสองชุด (ความสัมพันธ์เป็นรากฐานทางคณิตศาสตร์ที่อยู่เบื้องหลังตาราง SQL) "ระดับสูง" หมายความว่าภาษามีบทคัดย่อจำนวนมากที่ซ่อนรายละเอียดทางเทคนิคส่วนใหญ่ (เช่นตำแหน่งหน่วยความจำการลงทะเบียน CPU การเข้าถึงดิสก์การใช้งานระดับบิตเป็นต้น) SQL นั้นมีพื้นฐานมาจากความสัมพันธ์เนื่องจากวัตถุประสงค์หลักคือเพื่ออธิบายข้อมูลเชิงสัมพันธ์และการดำเนินงาน SQL ยังค่อนข้างสูง มันไม่ได้ให้วิธีการใด ๆ ในการเข้าถึงไบต์บนดิสก์โดยตรงและไม่ได้บอกรายละเอียดใด ๆ เกี่ยวกับวิธีการจัดเก็บข้อมูลของตน (อย่างน้อย SQL มาตรฐานจะไม่มี
ในความเป็นจริงมีแกนอีกมากมายที่สามารถจำแนกภาษาโปรแกรมและข้อมูลได้ น่าสนใจโดยเฉพาะอย่างยิ่งเป็นที่เปิดเผยความจำเป็นกับ ภาษาที่เปิดเผยอธิบายสิ่งที่บางสิ่งบางอย่างคือ ; ภาษาที่จำเป็นอธิบายถึงวิธีการทำบางสิ่ง ส่วน DDL ของ SQL ส่วนใหญ่จะเป็นที่เปิดเผยแม้จะมีคำหลักความจำเป็นที่ดู (" CREATE TABLE
", ' DROP DATABASE
' ฯลฯ ) และแม้กระทั่งส่วนการจัดการข้อมูล ( SELECT
, UPDATE
, INSERT
, DELETE
) ยังคงเปิดเผยสวย คุณสมบัติที่น่าสนใจมากของ SQL คือมันไม่ได้ทำให้เสร็จสมบูรณ์: คุณไม่สามารถเขียนลูปที่ไม่มีขอบเขตใน ANSI SQL มาตรฐานธรรมดา
ศูนย์การเขียนโปรแกรมเชิงฟังก์ชั่นมีแนวคิดหลักสองสามข้อ:
- ฟังก์ชั่นเป็นพลเมืองชั้นหนึ่ง (นั่นคือพวกเขาสามารถใช้เป็นค่าเป็นอินพุตไปยังฟังก์ชั่นอื่น ๆ และเป็นเอาท์พุทจากฟังก์ชั่นอื่น ๆ )
- ฟังก์ชันลำดับสูงกว่า (ฟังก์ชันที่ทำงานกับฟังก์ชันหรือฟังก์ชันที่คืนค่าฟังก์ชัน)
- purity (ฟังก์ชันบริสุทธิ์คือฟังก์ชันที่ไม่มีผลข้างเคียงฟังก์ชันบริสุทธิ์ไม่สามารถทำ I / O ใด ๆ ไม่สามารถอ่านหรือแก้ไขสถานะโกลบอลใด ๆ และไม่สามารถรับอาร์กิวเมนต์อ้างอิงที่ไม่ใช่แบบ const ฟังก์ชัน Pure นั้นน่าสนใจอย่างยิ่งเพราะจะ สร้างเอาต์พุตเดียวกันเสมอโดยรับอินพุตเดียวกัน)
SQL แน่นอนไม่ได้หมุนรอบฟังก์ชั่นเป็นเครื่องมือหลักสำหรับการสร้างแบบจำลองสิ่งต่าง ๆ แต่มันค่อนข้างโอบกอดความคิดที่บริสุทธิ์ - แบบสอบถามที่รันบนฐานข้อมูลเดียวกันจะให้ผลลัพธ์เดียวกันทุกครั้ง (ยกเว้นสำหรับการสั่งซื้อ) การเรียกภาษา SQL ว่า 'ฟังก์ชั่น' นั้นค่อนข้างจะยืดยาวไปถึง IMO