เหตุใดฐานข้อมูลจึงไม่รวมเป็นคุณสมบัติภาษา


25

มีภาษาการเขียนโปรแกรมที่มีฐานข้อมูลในตัวเป็นคุณสมบัติภาษาชั้นหนึ่งมากกว่าการเชื่อมต่อกับฐานข้อมูล SQL (หรืออื่น ๆ ) ภายนอกหรือไม่? อะไรคือข้อเสียและประโยชน์ของฟีเจอร์ดังกล่าว? คุณลักษณะเช่นนี้จะมีลักษณะเป็นอย่างไรและจะเปลี่ยนวิธีการตั้งโปรแกรมของเราอย่างไร


17
ฉันคิดว่า SQL เป็นภาษา : D
Kevin Cantu

8
.NET มี LINQ สำหรับ SQL ซึ่งฉันคิดว่าเป็นแนวทางที่ถูกต้องสำหรับปัญหาทั่วไป คุณไม่ควรล็อคลงในฐานข้อมูลเฉพาะและคุณไม่สามารถสร้างบางสิ่งที่เป็นเรื่องทั่วไปได้และยังใช้คุณลักษณะทุกอย่างของทุกอย่างที่มีอยู่ LINQ ยังคงยอดเยี่ยมเช่นเดียวกับฉัน
งาน

linq2SQL นั้นตายแล้วแทนที่ด้วย linq2EF แต่มีหลักการเดียวกัน
BlackICE

3
และน่าเสียดายที่ Linq2EF มีส่วนขยายเฉพาะไมโครซอฟท์ที่น่ารังเกียจซึ่งหมายความว่าคุณจะถูกล็อคเข้ากับ SQLServer หากคุณทำอะไรที่ซับซ้อน
gbjbaanb

1
@ งาน "คุณไม่ควรล็อคลงในฐานข้อมูลเฉพาะ" ตามที่ระบุไว้โดยทั่วไปฉันไม่เห็นด้วยกับแนวคิดนี้โดยทั่วไป ค่อนข้างฉันจะปรับแต่งปรัชญานั้นหรือหยุดการจารกรรมมัน ตัวอย่างเช่นฉันจะไม่ล็อครหัสเลเยอร์ UI ของฉันลงในฐานข้อมูลเฉพาะ อย่างไรก็ตามฉันจะล็อคชั้นบริการของฉันลงในฐานข้อมูลเฉพาะแน่นอน
Michael O'Neill

คำตอบ:


15

ภาษาเดียวที่ฉันนึกได้คือภาษา xBase เก่า ๆ เช่น DBase, Clipper และ FoxPro มีโครงการ GNU ที่ให้บริการฟรีและเป็นส่วนใหญ่ที่เรียกว่าคลิป

The Pickยังเป็นพื้นฐานซึ่งผูกภาษาการเขียนโปรแกรมโดยตรงกับแพลตฟอร์มฐานข้อมูล

สิ่งนี้ได้ทำไปแล้ว มันเป็นจุดจบของวิวัฒนาการที่ จำกัด ว่าภาษาสามารถเข้าถึงข้อมูลได้อย่างไร


2
คุณช่วยอธิบายได้ไหมว่าทำไมมันถึงเป็นจุดจบของวิวัฒนาการ? ฉันไม่ได้คิดที่จะนำไปใช้งานฉันแค่อยากรู้อยากเห็น
VirtuosiMedia

1
@VM มีแนวโน้มที่ชัดเจนในการใช้ API และการรักษาภาษาไลบรารีและรันไทม์ที่แตกต่างกัน ณ ตอนนี้ API ที่กำหนดไว้อย่างดีที่อนุญาตให้เข้าถึงข้อมูลด้วยวิธีทั่วไป โดยไม่คำนึงถึงภาษาหรือฐานข้อมูลหรือแม้แต่สคีมาฐานข้อมูลเป็นเรื่องปกติ ภาษาทั่วไปส่วนใหญ่จัดส่ง API ฐานข้อมูลทั่วไปซึ่งเป็นส่วนหนึ่งของไลบรารีมาตรฐาน เช่นเดียวกันสำหรับการเข้าถึงไฟล์และ http ไม่จำเป็นต้องใช้ภาษาอื่นอีกต่อไป
พะยอม

1
มีคำสั่งของความแตกต่างของขนาดในเวลาโทรท้องถิ่นและระยะไกล API เพิ่มมากขึ้นถ้ามีเครือข่ายอินเทอร์เฟซ ยังคงมีข้อได้เปรียบที่แตกต่างและเป็นจริงสำหรับการใช้ภาษาใน DB DB
Jé Queue

@Xepoch แน่นอนหากคุณต้องการล็อคตัวคุณเองในฐานข้อมูลของผู้ขายและการใช้ภาษา
BlackICE

1
@ David อ่านคำถามใหม่อีกครั้งอธิษฐานบอกว่าภาษานี้จะเป็นเช่นไรที่จะไม่ล็อคผู้ขาย?
Jé Queue

29

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


ภาษา "เล็ก" เป็นอย่างไร
Rei Miyasaka

มันเป็นเรื่องของการรับรู้ แน่นอนฐานข้อมูลดูเหมือนจะมี codebase ที่ใหญ่กว่า, เอกสารที่ใหญ่กว่า, ความต้องการดิสก์ที่มากขึ้น (แม้ว่าเราจะไม่พิจารณาข้อมูล actuall); แต่การเปรียบเทียบเหล่านั้นไม่ยุติธรรมเพราะฐานข้อมูลส่วนใหญ่จะมีภาษาโปรแกรมหนึ่งหรือหลายภาษา
281377

3
Rei: คุณยังไม่ได้ดู PL / SQL อย่างใกล้ชิดใช่ไหม? BTW, Oracle รวม JVM ใน RDBMS ด้วย
281377

3
Rei: จริงๆแล้วหลายคนใช้ PL / SQL เพื่อเขียนแอพพลิเคชั่น อย่างที่คุณทราบ PL / SQL เป็นภาษาที่ใช้ใน Oracle Forms ดังนั้นคุณสามารถเขียนและรันโปรแกรม PL / SQL ที่ไม่ได้สัมผัสกับฐานข้อมูล ในทางปฏิบัติ PL / SQL ถูกใช้ร่วมกับ Oracle RDBMS
281377

2
อืมไม่เคยคิด
Rei Miyasaka

16

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


6
เนื่องจากคุณต้องการประโยชน์ของการตรวจสอบประเภทและการตรวจสอบชื่ออย่างง่ายเมื่อคุณทำงานข้ามขอบเขตของภาษาคิวรีและภาษาโปรแกรม
Macneil

4
@Macneil เครื่องมือ ORM ทำเช่นนั้นเดี๋ยวนี้ สิ่งที่ควรยึดติดกับภาษาเมื่อ API สามารถทำได้
พะยอม

1
@sal เพื่อให้ผู้จัดจำหน่ายของแอปพลิเคชันไม่จำเป็นต้องรวม DBMS ขนาดใหญ่เพียงเพื่อรับการเขียนปรมาณูและการตรวจสอบความสอดคล้องกับแคชดัชนีการค้นหาและอื่น ๆ นี่คือเหตุผลที่ SQLite มีอยู่: " เพื่อแข่งขันกับfopen() "
Damian Yerrick

@sal: สันนิษฐานว่าอาจเป็นเพราะเหตุผลที่คล้ายกันว่าทำไมการรวมกลุ่มของนิพจน์หรือจุดลอยตัวเป็นภาษาต่างๆเมื่อ API สามารถทำได้ เพราะมีใครบางคนกำลังเขียนภาษาและตัดสินใจว่าพวกเขาพื้นฐานพอที่จะรับประกันไวยากรณ์พิเศษ แน่นอนว่าเป็นเช่นเหตุผลทั่วไปเป็นไปไม่ได้เป็นคำตอบที่มีประโยชน์ ;-)
สตีฟเจสซอพ

14

มี 3 ระบบเดิมที่ใกล้เคียงกับความต้องการของคุณ:

  1. Pick ,
  2. คางทูม ,
  3. การเข้าถึงของ Microsoft

เลือกและ MUMPS ได้รับการพัฒนาปีก่อนหน้ากระดาษวิชาการครั้งแรกในฐานข้อมูลเชิงสัมพันธ์ (ซึ่งเป็นประมาณสิบปีก่อนที่ระบบฐานข้อมูลเชิงพาณิชย์ SQL แรกที่ทำให้มันออกสู่ตลาด - จาก บริษัท ที่เราเรียกออราเคิลเป็นครั้งแรกของไอบีเอ็ม ระบบที่ใช้ SQL ประสบความสำเร็จในภายหลัง) คุณอาจพบว่ามันยังใช้งานอยู่ (ระบบขนส่งสาธารณะในท้องถิ่นของเราใช้ Pick จนกว่าจะถึงปัจจุบันสำหรับระบบการวางแผนการเดินทาง) คุณไม่ต้องการทำอะไรกับ Pick หรือ MUMPS และคำแนะนำที่ดีที่สุดที่ฉันสามารถให้ได้คือ "ก้าวออกจากคีย์บอร์ดด้วยมือของคุณในอากาศ!" ถ้าคุณทำอะไรจะทำอย่างไรกับพวกเขาวลีที่ว่า "คุณจะต้องเสียใจ" ควรจะดังก้องอยู่ในหูของคุณ

Microsoft Access ถูกล้อเลียนอย่างรุนแรงและถูกวิพากษ์วิจารณ์อย่างรุนแรงในแวดวงไอทีเพราะมันค่อนข้างง่ายสำหรับผู้ที่ไม่ใช่นักพัฒนาที่จะสร้างแอพธุรกิจที่สำคัญออกจาก Access และทำให้มันกลายเป็นสิ่งที่ บริษัท ไม่สามารถอยู่ได้โดยแท้จริง เป็นไปได้ว่านักพัฒนาค่อนข้างน้อยที่เริ่มพัฒนาผ่าน MS Access และเนื่องจากสิ่งต่าง ๆ เริ่มชะงักลงพวกเขาเรียนรู้วิธีการแก้ไข (ขั้นตอนแรกคือการเรียนรู้พื้นฐานของ Visual Basic และเขียนแอป Access เป็นครั้งแรกใน VB จากนั้น ในบางสิ่ง "ดีกว่า") มีความเป็นไปได้ที่จะสร้างแอป Access ที่มีพฤติกรรมดีซึ่งทำงานด้วยข้อมูลจำนวนมาก - ฉันเคยเห็นมาแล้ว - แต่มีวิธีที่ง่ายกว่าในการทำสิ่งต่าง ๆ และใช้ทักษะน้อยกว่าในการสร้าง (และบำรุงรักษา) แอปที่ทำงานผิดปกติจาก VB และ SQL Server

ตั้งแต่ SQL Server 2005, Microsoft ได้แนะนำความสามารถในการทำให้ CLR เป็นขั้นตอนและฟังก์ชันที่เก็บไว้ และถ้าคุณต้องการที่จะยุ่งยากเกี่ยวกับมันคุณสามารถสร้างประเภทข้อมูลที่คุณสามารถใช้เป็นคอลัมน์ในฐานข้อมูล ฉันคิดว่า Oracle มีบางสิ่งที่คล้ายคลึงกับ Java

ที่ถูกกล่าวว่าฉันไม่คิดว่าจะมีอะไรหยุดคุณจากการสร้างหนึ่งหรือตั้งสมมติฐานเกี่ยวกับพวกเขา Pick และ MUMPS นั้นเก่ากว่า coders ส่วนใหญ่ที่นี่และสะท้อนวิธีการมองโลกแบบ COBOLy

คำแนะนำส่วนตัวของฉันคือการแยกสิ่งต่าง ๆ ใช้ภาษาที่สามารถจัดการข้อมูลที่โครงการของคุณต้องการได้ (ด้วยข้อแม้ที่บางครั้งภาษา "ดีที่สุด" คือภาษาที่คุณสามารถหาโปรแกรมเมอร์ที่สามารถอ่าน / เขียนรหัสได้) ใช้ระบบฐานข้อมูลที่ดีในการเก็บข้อมูลที่โครงการของคุณต้องการ


+1 แม้ว่าฉันคิดว่าโปรแกรมเมอร์มีทักษะเพียงพอที่จะทำให้แอปพลิเคชัน Access ที่ปรับขนาดได้นั้นควรได้รับสภาพแวดล้อมการทำงานที่ดีขึ้น
Larry Coleman

3
การเข้าถึงไม่ใช่ภาษาโปรแกรม แต่เป็นการพัฒนาแบบบูรณาการและสภาพแวดล้อมรันไทม์ ภาษาที่ใช้ VBA เป็นภาษาเดียวกับที่ใช้สำหรับการเขียนโปรแกรมแมโครในผลิตภัณฑ์สำนักงานอื่น ๆ และไม่ใช่การเข้าถึงที่เฉพาะเจาะจง การเข้าถึงฐานข้อมูลยังดำเนินการผ่านผู้ให้บริการหลายรายไปยังไดรเวอร์ JET
Jeremy

1
นอกเหนือจากสามที่คุณกล่าวถึงแล้วยังมีสภาพแวดล้อม 4GL หลายรูปแบบ: Oracle Forms, CA OpenROAD (nee Ingres Windows4GL) และ Accell ของ Unify (เพื่อตั้งชื่อสภาพแวดล้อมที่ฉันเคยทำงานด้วย)
TMN

นอกจากนี้ผมไม่แน่ใจว่าการเข้าถึงจริงๆเป็น "มรดก" ไม่ว่าวิธีการอย่างสุดซึ้งที่คุณต้องการให้มันเป็น :)
haylem

+1 สำหรับคางทูมฐานข้อมูลที่ยอดเยี่ยมผูกติดอยู่กับภาษา godawful
James Anderson

4

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


4

ทำผิดพลาด

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

ที่กล่าวว่ามีสาเหตุหลายประการ

  • การสร้างระบบจัดเก็บฐานข้อมูลที่มีประสิทธิภาพเป็นปัญหาที่ยากอาจเป็นไปตามลำดับหรือมากกว่าการสร้าง. NET Framework (ตัวอย่าง) หากทีมพยายามที่จะรวมฐานข้อมูลในกรอบงานของพวกเขานั่นคือทั้งหมดที่พวกเขาลงเอยด้วยการทำงาน

  • ฐานข้อมูลที่รับโหลดควรอยู่ในเครื่องที่แยกต่างหากไม่ใช่ในกระบวนการของรหัสที่เข้าถึง

  • ORMs ให้ความปลอดภัยประเภทจำนวนมากและการตรวจสอบเวลาการคอมไพล์ที่จะเป็นประโยชน์ของการกระทำดังกล่าวโดยไม่ต้องมีกรอบลองเป็นฐานข้อมูล

ที่กล่าวว่าฉันคิดว่ามันจะเรียบร้อยที่จะรวมการใช้งาน SQLite บางประเภทภายในกรอบที่แอปพลิเคชันที่มีความต้องการน้อยกว่าสำหรับการเข้าถึงข้อมูลสามารถทำงานกับ ฉันไม่แน่ใจว่ามันจะมีประโยชน์ในแอปพลิเคชันที่ไม่สำคัญหรือไม่


sqlite ที่ฝังตัวนั้นยอดเยี่ยมอย่างแท้จริงถ้าคุณไม่มีมันนักออกแบบภาษาจะจบลงด้วยการใช้ XML เป็นกลไกการเก็บข้อมูลแทน :(
gbjbaanb

2

พวกเขาเป็น; ภาษาดังกล่าวจะเรียกว่า4GLs DataFlexเป็นรายการโปรดของฉันแม้ว่าฉันจะไม่ใช้มันอีกต่อไป

Caveat: ฉันช่วยพัฒนา DataFlex เวอร์ชันเชิงวัตถุ, v3.0


2

ฉันคิดว่าคำถามที่แท้จริงของคุณคือ "ทำไมไม่มีภาษาการเขียนโปรแกรมที่มาพร้อมกับฐานข้อมูลไลบรารี "

ภาษาที่ใช้โดยทั่วไปถือว่า IO ทั้งหมดเป็นอันเดียวกันไม่ว่าจะเป็นการเขียนหรืออ่านจากดิสก์เว็บแคมเครือข่ายหน้าจอตำแหน่งในหน่วยความจำ - เป็น IO ทั้งหมดและนั่นคือทั้งหมดที่ภาษาการเขียนโปรแกรมเกี่ยวข้องกับตัวเอง กับ

ในความเป็นจริงนอกเหนือจากการอ่าน / เขียนไปยังฮีปและสแต็คแล้วภาษาการเขียนโปรแกรมส่วนใหญ่ยังไม่ได้ทำ IO จริงใด ๆ บางภาษามีคุณสมบัติเนทีฟสำหรับแสดงการทำงานของ IO (เช่นprint คำสั่งในภาษา BASIC) แต่ภาษาส่วนใหญ่ใช้กับการเรียกใช้ฟังก์ชั่นปกติ (เช่นprintfใน C) และให้ไลบรารีจัดการการเขียนจริง

บางภาษาเช่น C # เสนอคุณสมบัติภาษาสำหรับการแสดงเคียวรี แต่ถึงกระนั้นก็เป็นเพียงการแสดงออกในโครงสร้างข้อมูลพื้นฐานที่สุดของรายการ (หรือIEnumerableที่เรียกว่าใน. NET) ที่ได้รับการแปลเป็น SQL การดำเนินงานโดยห้องสมุด - ภาษานั้นยังคงทำงานกับแนวคิดที่เป็นนามธรรมของ IO

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


ภาษาการเขียนโปรแกรมจำนวนมากมาพร้อมกับไลบรารี DB Python และ PHP ทั้งคู่มี sqlite Visual Studio มาพร้อมกับ SQL Server Express
วอนตัม

นั่นคืออินเตอร์เฟส DB ไม่ใช่ DBs เอง รันไทม์. NET ไม่ได้มาพร้อมกับ Visual Studio หรือ SQL Server Express
Rei Miyasaka

@ReiMiyasaka ไลบรารี่มาตรฐานของ Python ประกอบด้วยเอนจิน SQLite ทั้งหมดเนื่องจาก SQLite เป็นเพียงไลบรารี่ C ที่โปรแกรมเชื่อมโยงไม่ใช่กระบวนการแยกต่างหากหรืออะไรก็ตาม
Damian Yerrick

2

ใช่. ภาษาบนแพลตฟอร์ม AS / 400 มีการรองรับฐานข้อมูลดั้งเดิม

นี่เป็นเพราะแพลตฟอร์ม AS / 400 มีฐานข้อมูลรวมอยู่ทุกหนทุกแห่งและช่วยให้มีคุณสมบัติที่ดีมากมายเช่นการนำทางที่ง่ายดายผ่านชุดผลลัพธ์เพื่ออัปเดตค่าระหว่างทาง


0

ขึ้นอยู่กับภาษาและแพลตฟอร์ม ตัวอย่างเช่นมันค่อนข้างเล็กน้อยสำหรับฉันที่จะใช้ฐานข้อมูลที่หลากหลายในการทำงานกับ C ฉันแค่ใช้ไลบรารีที่เหมาะสม

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

อย่างน้อยนี่เป็นกรณีของภาษาที่เป็นไปตามมาตรฐานที่กำหนดโดยองค์กรเช่น ISO


0

ตามที่เขียนไว้คำถามนั้นเป็นส่วนหนึ่งที่ผิดเนื่องจากบางตัวอย่างด้านบนได้แสดงให้เห็นแล้ว

ดังนั้นก่อนอื่นให้ปรับแต่งคำถามเพื่ออ่าน "ทำไม DBMS มักไม่รวมเข้ากับคุณลักษณะของภาษาโปรแกรมระดับสูงที่มีวัตถุประสงค์ทั่วไป"

นี่คือเหตุผลเดียวกับที่ผลิตภัณฑ์ซอฟต์แวร์อื่น ๆ เช่นระบบปฏิบัติการระบบไฟล์เว็บเซิร์ฟเวอร์เลเยอร์แคช ฯลฯ มักจะไม่ได้ติดตั้งมาพร้อมกับเครื่อง โดยทั่วไปแล้วภาษาที่ใช้งานทั่วไปจะมีระดับความเป็นนามธรรมสูงกว่าของผลิตภัณฑ์ดังกล่าว ดังนั้นจึงเป็นที่เหมาะสมสำหรับโปรแกรมเมอร์ที่จะดำเนินการ DBMS ในภาษาที่ใช้งานทั่วไปและ DBMS นั้นอาจเปิดเผยแง่มุมของภาษาแม่หรือภาษาเฉพาะ DB ซึ่งเป็นภาษาที่ประกาศสำหรับใช้โดยโปรแกรมเมอร์ DB แต่มีตัวเลือกการออกแบบจำนวนมากเกินไปในการเขียน DBMS เพื่อให้ฉลาดในการแก้ไขด้วยภาษาโปรแกรมทั่วไป หากคุณแก้ไขพวกเขาคุณจะจบลงด้วยกรณีเช่น MUMPS ที่พัวพันของทั้งสองผลในอุตสาหกรรมทั้งหมด mired ในปัญหาไก่และไข่ติดอยู่กับ DBMS ล้าสมัยและภาษาโปรแกรมล้าสมัย


0

ใช้ในการทำงานใน NonStop / SQL ซึ่งรวมเข้ากับ NonStop / C, NonStop / C ++, NonStop / Cobol, NonStop / Fortran และอาจเป็นภาษาอื่น ๆ เช่นเดียวกับบูรณาการอย่างเต็มที่กับ NonStop / Guardian ระบบปฏิบัติการที่คอมพิวเตอร์ วิ่ง

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

สิ่งที่ใกล้เคียงที่สุดที่คุณจะได้รับบนพีซีน่าจะเป็น MS Access, Embarcadero / Borland Delphi เป็นวินาทีสุดท้าย

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


0

ในฐานะนักพัฒนา Visual Foxpro อดีตฉันแกร่งที่แปลกที่ไม่มีภาษากระแสหลักกำหนดโมเดลเชิงสัมพันธ์เป็นส่วนหนึ่งของภาษา

การมีเอ็นจินฐานข้อมูลแบบเต็มนั้นไม่ใช่ความคิดที่ดี แต่การมีภาษา "SQL" แทนอาจมีประโยชน์มาก

ใน OO มีความต้านทานไม่ตรงกัน สิ่งนี้เกิดขึ้นเพราะวัตถุและตั้งค่าไม่เหมือนกัน แต่ถ้ามีภาษาให้ฉันนิยาม TABLES, FIELDS, RELATIONS, CONSTRAINS และอื่น ๆ (โดยไม่ผูกไว้กับที่เก็บข้อมูล) จะมีประสิทธิภาพมาก นอกจากนี้การสร้าง ORM จะเป็นการทำแผนที่แบบ 1 ต่อ 1 มากขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.