ต้องการคำแนะนำในการสร้าง Database ครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 347   6
URL.หัวข้อ / URL
ต้องการคำแนะนำในการสร้าง Database ครับ

งานที่ผมทำจะมีการใช้ Query อยู่ค่อนข้างตลอดเวลา โดยข้อมูลที่ใช้นั้นจะมีการ update ทุกเช้า แล้ว User ทุกคนจะทำการ Copy ไปยังเครื่องของตัวเอง ปัจจุบันใช้ฐานข้อมูลของ MS Access อยู่นะครับ ขนาดของ File หลังจากการ Compact แล้วก็ประมาณ 500 Mb สำหรับสิ่งที่จะถามนะครับ
ตอนนี้ผมต้องการพัฒนาตัวโปรแกรมใหม่ แต่ลังเลว่าจะใช้ Tools อะไรดีนะครับ คือที่ศึกษาไว้และคาดว่าจะใช้ในตอนแรกก็คือ VB ผ่านทาง ADO หรือ DAO ไปยัง Access File นะครับ แต่เห็นเพื่อนๆ บอกกันว่าใช้ Visual FoxPro จะทำให้มีความเร็วในการทำงานที่มากกว่า ดังนั้นผมจึงอยากให้เพื่อนๆ ที่มีประสบการณ์ด้านนี้ช่วยเปรียบเทียบ ความสามารถในแง่ของความเร็วในการใช้งานคือ Query ข้อมูลเยอะๆ นะครับระหว่าง 1. MS Access เดิมๆ 2. VB ผ่าน ADO ไป Access File 3. VB ผ่าน DAO ไป Access File และ 4. Visual FoxPro นะครับหรือว่าเพื่อนๆ มีตัวอื่นแนะนำก็บอกได้นะครับ
สุดท้ายอยากทราบวิธีการเขียนโปรแกรมเพื่อโหลดฐานข้อมูลทั้งหมดไปไว้ในแรมนะครับ เพราะที่ทำงานจะใช้ Notebook กันทั้งหมดทำให้การดึงข้อมูลผ่าน HD ช้ามากๆ นะครับ ขอบคุณมากครับ

6 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04810
ไม่ได้มีประสบการณ์ด้านนี้มากนักหรอกค่ะ
แต่ก็อยากร่วมแสดงความคิดเห็นบ้าง ในสิ่งที่พอรู้
และคิดว่าน่าจะเป็นประโยชน์ในการพัฒนางานและการเลือกใช้เทคโนโยลี
ถ้าหากจะพัฒนางานใหม่ จากสถานการณ์ที่เล่ามานี้
คิดว่าสิ่งที่จะต้องพิจารณาทางเลือก คือ
- DBMS ที่จะเลือกใช้
- เทคโนโลยีการ interface กับฐานข้อมูล
==========================================
การพิจารณาทางด้านเทคนิคที่เกี่ยวกับการเลือก DBMS (Database Management System) สามารถสรุปได้ดังต่อไปนี้
1. ปริมาณความจุของข้อมูลในฐานข้อมูล (capacity) ปริมาณความจุของข้อมูลในฐานข้อมูล อ้างถึงจำนวนของข้อมูลที่ database engine มีความ

สามารถในการจัดการได้ อย่างไรก็ตาม ในแต่ละเทคโนโลยีฐานข้อมูลจะมีข้อจำกัดต่อปริมาณความจุของข้อมูลในฐานข้อมูลที่เก็บได้
- Jet เป็น file ฐานข้อมูล Microsoft Access JET สามารถเก็บข้อมูลได้ถึง 2 GB แต่เนื่องจาก JET สามารถรวมตารางต่างๆ ซึ่งเชื่อมกับไฟล์

อื่นๆ ได้ ดังนั้นขนาดทั้งหมดของฐานข้อมูล JET จะถูกจำกัดด้วยพื้นที่ใน HD ที่เหลืออยู่

2. จำนวนผู้ใช้ที่สามารถเข้าใช้งานพร้อมกันได้ (Concurrency) จำนวนผู้ใช้ที่สามารถเข้าใช้งานพร้อมกันได้ คือ จำนวนผู้ใช้หลายๆ คนที่สามารถึงถึง

ฐานข้อมูลเดียวกันในเวลาเดียวกัน แต่ละเทคโนโลยีฐานข้อมูลที่เราพิจารณาในที่นี้คือ ความสามารถของการจัดการ/ดูแลผู้ใช้จำนวน 2 หรือ 3 คน ที่พร้อมกันเท่านั้น หัว

ข้อต่อไปนี้ จะอธิบายถึงจำนวนผู้ใช้ว่า ควรจะเป็นเท่าไหร่าในแต่ละเทคโนโลยี
- Jet สนับสนุนจำนวนผู้ใช้พร้อมกันได้มากถึง 255 คน แต่ที่เหมาะสมและดีที่สุด คือไม่ควรเกิน 10 คน
- MSDE 5 คน
- SQL server ได้เป็นร้อยๆ คน

3. การ Backup dynamic และการสำรองข้อมูลกลับมาเหมือนเดิม (Restore) การ backup เป็นสิ่งสำคัญที่สุดของระบบฐานข้อมูลใดๆ ก็ตาม

การ backup สามารถรับประกันได้ว่า ข้อมูลนั้นสามารถกู้คืนมาเหมือนเดิมได้ เมื่อเกิดเหตุการณ์ฉุกเฉินขึ้น

4. การบริหารจัดการะยะไกล (Remote Administration) การบริหารจัดการระยะไกล คือ การที่ผู้บริหารฐานข้อมูลหรือผู้ดูแลฐานข้อมูล มีความ

สามารถจัดการหรือกระทำกับข้อมูลในฐานข้อมูลโดยที่ไม่ต้องนั่งที่หน้าเครื่อง server

5. การทำซ้ำ (Replication) หลายๆ ระบบฐานข้อมูล ต้องการข้อมูลเพื่อที่จะนำมาทำสำเนาจากฐานข้อมูลหนึ่งไปยังฐานข้อมูลอื่นๆ หัวข้อต่อไปนี้ เป็น

การอธิบายทางเลือกในการทำซ้ำกับแต่ละเทคโนโลยีฐานข้อมูล
- Jet สามารถทำสำเนาด้วยการ copy ไฟล์ ได้

6. ความปลอดภัย (security) ความปลอดภัยเป็นสิ่งสำคัญมากๆ ในหลายๆ ระบบฐานข้อมูล
- Jet ใช้รหัสผ่าน โดยใช้เฉพาะตอนเปิดฐานข้อมูลเท่านั้น เมื่อเปิดได้แล้วก็สามารถใช้ได้ทั้งหมด นอกจากนี้ยังสนับสนุนความปลอดภัยระดับ

User-Level

7. การทำตามกฎ SQL
SQL statement เป็นภาษาและ method มีการกำหนดมาตรฐานไว้แล้ว มาตรฐานเหล่านี้อนุญาตให้กระทำต่อกันระหว่างระบบฐานข้อมูลต่างๆ ที่แตกต่างกัน
2 @R04811
เทคโนโลยีการเข้าถึงข้อมูลในฐานข้อมูล
เทคโนโลยีการ interface ได้ให้รูปแบบการ interface แบบเดียวสำหรับการสื่อสารกับฐานข้อมูลที่แตกต่างกัน เทคโนโลยีการ interface สมัยใหม่ ทำให้เราเขียน code ได้อย่างง่าย และสามารถทำกระบวนการที่ซับซ้อนกับฐานข้อมูลชนิดใดๆ ก็ได้
เทคโนโลยีการ interface กับฐานข้อมูลมีหลายชนิด เช่น
- ODBC (Open Database Connectivity)
- RDO (Remote Data Objects)
- DAO (Data Access Object)
- ADO (ActiveX Data Object)
- OLE DB (Object-Linking and Embedding Database)
3 @R04812
รายละเอียดของแต่ละตัว ขอกล่าวถึงแต่เพียงย่อๆ
(คงต้องหาอ่านเพิ่มเติมในหนังสือ)

คำถามมีอยู่ว่า เมื่อไรและที่ไหนควรจะใช้เทคโนโลยีในการ Interface เหล่านี้ และใช้ชนิดไหน การที่จะตอบคำถามได้นั้น เราต้องเรียนรู้แต่ละเทคโนโลยีเหล่านี้ก่อน

DAO (Data Access Object)
DAO เข้าถึงข้อมูลด้วย model Object แทนที่จะเป็นการเรียกกลุ่ม function ใน DLL (Dynamic link library) ด้วยการใช้ model object ทำให้การเรียกดู หรือการกระทำข้อมูลในฐานข้อมูลได้ง่าย นอกจากนี้แล้ว object โมเดล DAO ได้รวมคลาสต่างๆ และ object นี้ยังห่อหุ้มด้วยโครงสร้างต่างๆ ของฐานข้อมูล access เช่น ตาราง คิวรี อินเด็กซ์ และอื่นๆ อีก นั่นหมายความว่า DAO อนุญาตให้เราแก้ไขโครงสร้างของฐานข้อมูล access ได้โดยตรง โดยปราศจากการใช้คำสั่ง SQL statement DAO สามารถติดต่อกับฐานข้อมูลได้ 2 แบบ คือ
1. Microsoft Jet 2. ODBC direct ติดต่อกับฐานข้อมูล RDBMS อื่นๆ โดยไม่ผ่าน MS jet

RDO (Remote Data Objec) มีจุดประสงค์สำหรับการเข้าถึงฐานข้อมูล SQL มากกว่าที่จะเป็นข้อมูล ISAM ดังนั้น RDO จึงเน้นไปทางด้าน Store procedure มากกว่า RDO ถูกพัฒนาขึ้นเพื่อให้นักพัฒนาโปรแกรมภาษา VB มีความสามารถเข้าถึงข้อมูล ODBC โดยไม่ต้องเขียน code ODBC API ด้วยตนเอง ดังนั้น RDO จึงถูกจัดให้เป็นการ interface ในระดับสูง

Universal Data Access (UDA)
UDA เป็นระบบเปิดและไม่จำเป็นต้องใช้ผลิตภัณฑ์ของผู้ผลิตฐานข้อมูลรายเดียว ในความจริงแล้ว UDA สามารถใช้กับ platform ฐานข้อมูลที่มีอยู่ทุกวันนี้ได้ทั้งหมด UDA ประกอบด้วยเทคโนโลยีหลักๆ 3 เทค คือ ODBC, OLE DB and ADO


ODBC (Open Database Connectivity)
เมื่อเทียบกับการ interface อื่นๆ แล้ว ODBC API ถูกจัดเป็นกลุ่มการ interface ระดับล่าง (Low level interface) ดังนั้น ODBC API ทำให้ app สามารถกระทำกับฐานข้อมูลในระดับล่าง ซึ่ง ODBC นั้นได้รับความยอมรับให้เป็นมาตรฐานในการ interface กับฐานข้อมูลแบบสัมพันธ์


OLE DB (Object-Linking and Embedding Database)
OLE DB เป็นวิธีการเข้าถึงข้อมูลชนิดใหม่จาก ms และเป็นเซตของ COM (Component Object Model) ซึ่งประกอบด้วยชุดของการ interface ที่เป็นมาตรฐาน OLE DB ถูกออกแบบมาเพื่อเข้าถึงข้อมูล data source ได้หลากหลายชนิด โดยไม่คำนึงถึงฐานข้อมูลว่าจะสัมพันธ์กันหรือไม่ ความยืดหยุ่นนี้ ทำให้ผู้พัฒนาใช้ลักษณะเด่นของ OLE DB ได้อย่างมีประสิทธิภาพ OLE DB จะแบ่งเป็น Consumer และ Provider

ADO (ActiveX Data Object)
ADO เป็นการ interface ข้อมูลในระดับสูง (High-level interface) ADO มีประสิทธิภาพสูงและมีความน่าเชื่อถือได้ในการเข้าถึงข้อมูล ADO ถูกออกแบบมาให้ง่ายต่อการ interface ระดับ app กับ OLE DB ที่มีประสิทธิภาพสูง ไม่ว่าจะเป็นฐานข้อมูลแบบสัมพันธ์หรือแบบไม่สัมพันธ์กัน เช่น Email, File System, Text, Graphic และอื่นๆ
ADO ใช้การ interface แบบ Dual interface นี้ทำให้ ADO สามารถใช้ภาษา script ได้ และ ADO ยังมีคุณลักษณะเด่นในการทำคิวรีและการจ้ดการข้อมูล เช่น การใช้คำสั่ง SQL statement นอกจากนี้แล้ว ADO ยังได้ให้การคิวรีแบบ Asynchronous ที่อนุญาตให้เราควบคุมการคิวรีที่จะถูกส่งกลับมายัง app ก่อนที่คิวรี่จะทำสำเร็จ การทำอย่างนี้อนุญาตให้เราให้สิทธิแก่ผู้ใช้สามารถยกเลิกหรือกระทำกับการคิวรีที่ใช้เวลานานได้

หมายเหตุ::
=================================================
ข้อมูลนี้อ้างอิงจากหนังสือ Advance Visual C++ ฉบับ Database Programming
=================================================
4 @R04832
ขอชมเชยในการร่วมความแสดงความคิดเห็นเกี่ยวกับบทความในครั้งนี้
ซึ่งอาจมีหลายท่านที่ได้ประโยชน์ในการพัฒนาระบบ จากบทความที่ให้มา อย่างน้อยก็เพิ่มอีกหนึ่งคน คือตัวดิฉันเอง
5 @R04833
ขอบคุณค่ะ
6 @R04834
ถ้าสามารถให้ ดาว ในกระทู้นี้ได้ ก็คงมอบให้ 5 ดาวเลยครับสำหรับคำตอบที่มาแบ่งปันให้เพื่อนๆ ที่นี่

ถ้าว่างๆ เมื่อไร ก็แวะนำความรู้ดีๆ มาฝากเพื่อนๆ และตัวผมด้วยอีกนะครับ

Outstanding Information!
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0564s