มันดูเหมือนว่าจะเขียนบอกเล่า SQLเป็นที่นิยมมากในการเขียนโปรแกรมจำเป็น อย่างไรก็ตามมันก็ดูเหมือนว่าการเขียนDeclarative Prologสามารถบันทึกความซับซ้อนมากมาย แต่นี่ไม่ใช่เรื่องธรรมดา
มีแบบอย่างในอดีตสำหรับการตั้งค่าที่ชัดเจนของ SQL มากกว่า Prolog นี้หรือไม่?
หากเหตุผลคือขาดการสนับสนุนดั้งเดิมโดยภาษาที่จำเป็นแล้วเป็นไปได้ไหมที่จะตอบว่าทำไมผู้สร้างภาษาไม่พบว่ามีประโยชน์ในการสนับสนุนโดยกำเนิดPrologตั้งแต่แรก?
เพื่อให้ตัวอย่างเฉพาะ:
ตัวอย่างที่ 1 การ
ประเมินแอปพลิเคชันสินเชื่ออาจเป็นโค้ดเพียงไม่กี่บรรทัดPrologเช่นSELECT/JOINข้อความค้นหาที่เป็นโค้ดเพียงไม่กี่บรรทัดSQLแต่ดูเหมือนว่าข้อดีจะไม่ชัดเจนเท่าที่SQLควร
ตัวอย่างที่ 2
นี่คือปัญหาตัวอย่างอื่นและวิธีแก้ไขใน Prolog โปรแกรมตรรกะข้อ จำกัด ต่อไปนี้แสดงชุดข้อมูลที่ง่ายของประวัติของ john ในฐานะครู:
teaches(john, hardware, T) :- 1990 ≤ T, T < 1999.
teaches(john, software, T) :- 1999 ≤ T, T < 2005.
teaches(john, logic, T) :- 2005 ≤ T, T ≤ 2012.
rank(john, instructor, T) :- 1990 ≤ T, T < 2010.
rank(john, professor, T) :- 2010 ≤ T, T < 2014.
ประโยคเป้าหมายต่อไปนี้จะสืบค้นชุดข้อมูลเพื่อหาว่าเมื่อใด John ได้สอนตรรกะและเป็นอาจารย์ :
:- teaches(john, logic, T), rank(john, professor, T).
ผลลัพธ์:
2010 ≤ T, T ≤ 2012.
ในตัวอย่างด้านบนมันจะง่ายที่SQLจะได้ผลลัพธ์เดียวกัน Arrayแต่สมมติว่าคุณมีข้อมูลนี้ในการ SQLแล้วมันไม่ได้เป็นเรื่องง่ายที่จะได้รับผลเดียวกันโดยใช้ และในกรณีของข้อมูลที่เก็บไว้ในอาร์เรย์ฉันเชื่อว่ารหัส Prolog จะง่ายต่อการเขียนและบำรุงรักษา