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


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.