อย่างไรก็ตาม การพัฒนาระบบจัดการฐานข้อมูลแบบกระจายจะต้องมีความซับซ้อนเพิ่มขึ้นซอฟต์แวร์สำหรับจัดการฐานข้อมูลแบบกระจาย (Distributed Database Management Systems : DDBMS) ควรที่จะมีฟังก์ชันพิเศษเพิ่มขึ้น ดังนี้
1. ฟังก์ชันในการเข้าถึงข้อมูลในจุดอื่น การส่งคำสั่งตอบคำถาม และส่งข้อมูลระหว่างจุดได้โดยผ่านเครือข่ายสื่อสาร (Communication Network)
2. ฟังก์ชันในการเก็บรายละเอียดของข้อมูลว่า ข้อมูลใดกระจายอยู่ที่จุดใดบ้าง ทั้งนี้ เพื่อใช้ในการปรับปรุงแก้ไขข้อมูลให้ถูกต้องและสอดคล้องกัน
3. ฟังก์ชันในการทำให้ข้อมูลที่ถูกทำซ้ำในจุดต่างๆ มีความถูกต้อง และสอดคล้องกันเสมอ
4. ฟังก์ชันในการเลือกชุดข้อมูลที่ควรจะใช้เมื่อข้อมูลชุดนั้นมีการทำซ้ำไว้หลายตำแหน่ง
5. ฟังก์ชันในการปรับคำสั่งสอบถามที่ต้องการใช้ข้อมูลจากหลาย ๆ จุด
6. ฟังก์ชันในการกู้ (Recovery) ข้อมูลคืนเมื่อจุดใดจุดหนึ่งในระบบขัดข้อง (crash)
สถาปัตยกรรมแบบรับ-ให้บริการ (Client Server Architecture) พัฒนาขึ้นมาเพื่อใช้กับระบบที่มีคอมพิวเตอร์จำนวนมาก และติดต่อกันโดยผ่านเครือข่ายสื่อสาร ระบบนี้ได้รับความนิยมเพิ่มมากขึ้นในการนำมาพัฒนาใช้กับระบบจัดการฐานข้อมูลแบบกระจาย เนื่องจากมีความสามารถในการสนับสนุนในการทำงานแบบกระจาย แนวคิดคือ การแบ่งซอฟต์แวร์จัดการฐานข้อมูลออกเป็น ๒ ระดับ คือ ระดับบริการ และระดับให้บริการเพื่อลดความซับซ้อนของระบบลง บางจุดอาจจะทำหน้าที่เป็นผู้รับบริการเพียงอย่างเดียว ในขณะ ที่จุดอื่นอาจทำหน้าที่เป็นผู้ให้บริการ ซึ่งจะมีเฉพาะซอฟต์แวร์ที่ทำหน้าที่เป็นผู้ให้บริการเท่านั้นหรือในบางจุดอาจมีทั้งส่วนให้บริการและรับบริการอยู่ร่วมกันก็ได้
ระบบฐานข้อมูลแบบกระจายแบ่งได้เป็นหลายประเภทด้วยกัน ซึ่งขึ้นอยู่กับปัจจัยที่เรานำมาพิจารณาเป็นเกณฑ์ในการจัดแบ่ง ตัวอย่างหลักเกณฑ์ในการแบ่งระบบฐานข้อมูลแบบกระจาย ได้แก่
๑. ระดับความเหมือน (Degree of Homogeneity) ของซอฟต์แวร์จัดการฐานข้อมูลแบบกระจาย กล่าวคือ ซอฟต์แวร์นี้ ในทุกๆ ระดับผู้ให้บริการ เหมือนกันทั้งหมดหรือไม่ และในระดับผู้รับบริการ เหมือนกันทั้งหมดหรือไม่
๒. ระดับภาวะอิสระเฉพาะที่ (Degree of Local Autonomy) ซึ่งพิจารณาว่า ระบบฐานข้อมูลแบบกระจายนั้น สามารถทำงานบางอย่าง ณ จุดทำงานนั้นๆ ได้บ้างหรือไม่
3. ระดับความโปร่งใสของการกระจาย (Degree of Distribution Transparency) คือ การที่ผู้ใช้ระบบฐานข้อมูลแบบกระจายได้สัมผัส หรือรับรู้ถึงการแตกกระจาย หรือการทำซ้ำของข้อมูลบ้างหรือไม่