منتديات اليسير للمكتبات وتقنية المعلومات » منتديات اليسير العامة » منتدى تقنية المعلومات » قواعد البيانات ولغة فيجوال سي - الجزء الأول: تصميم قاعدة البيانات

منتدى تقنية المعلومات هذا المنتدى مخصص للموضوعات الخاصة بتقنية المعلومات التي تتعلق بالمكتبات ومراكز مصادر المعلومات ومراكز مصادر التعلم.

إضافة رد
قديم Dec-05-2006, 08:25 AM   المشاركة1
المعلومات

AHMED ADEL
مكتبي متميز

AHMED ADEL غير متواجد حالياً
البيانات
 
العضوية: 18689
تاريخ التسجيل: Aug 2006
الدولة: الإمارات
المشاركات: 249
بمعدل : 0.04 يومياً


كتاب قواعد البيانات ولغة فيجوال سي - الجزء الأول: تصميم قاعدة البيانات

مصطلحات قواعد البيانات
الحقل (Field): وهو أصغر عنصر في قاعدة البيانات. ولكل حقل نوع، وحد أقصى لحجم البيانات التي يمكن أن يتضمنها. فإذا كانت لديك قاعدة بيانات تحتوي على معلومات عن زبائن شركتك مثلاً، فإنَّ الحقل "اسم الزبون" سيكون حقلاً نصياً، أي يمكنك كتابة النصوص فيه. وعليك أن تحدد أيضاً، الحد الأقصى لعدد الحروف التي يمكنك إدخالها في هذا الحقل (خمسون حرفاً، مثلاً). وتذكّر، بأنَّ كل حقل يجب أن يحتوي على معلومة واحدة، أي أنه لا يجب أن تكتب الاسم الأول للزبون، واسم عائلته في الحقل ذاته، وإنما يجب أن تخصص حقلين منفصلين لهذا الغرض. ولهذا فوائد كبيرة، فهو يسهل عليك البحث، والتصنيف، وغير ذلك.
السجل (Record): يطلق على صف كامل من الحقول اسم السجل.
الشكل 1 - انقر للتكبير
الجدول (Table): وهو يتكون من مجموعة من السجلات. ويمكنك أن تضع في قاعدة بياناتك جدولاً يحتوي على معلومات عن الزبائن، كأسمائهم، وأرقام هواتفهم، وعناوينهم البريدية، وغير ذلك، ويمكنك أن تصمم جدولاً ثانياً يحتوي على معلومات عن السلع التي اشتراها كل زبون.

ويوضح الشكل 1، مثالاً عملياً عن الحقول والسجلات والجداول.

الهدف
نهدف في الجزء الأول، إلى تصميم قاعدة بيانات لتنظيم أعمال إحدى المكتبات، وتحتوي قاعدة البيانات التي سنصممها على الحقول التالية:
1. اسم الكتاب.
2. رقم ISBN.
3. اسم المؤلف.
4. اسم دار النشر.
5. عدد الصفحات.
لكننا سنمضي أولاً بجولة سريعة على أنواع قواعد البيانات التي يمكننا استخدامها للوصول إلى هذا الهدف، لنختار بعد ذلك النوع الأنسب.
أنواع قواعد البيانات
1- قاعدة البيانات التي ينشئها المبرمج:
وأقصد بذلك أن تقوم بنفسك ببرمجة قاعدة البيانات، وتخزين المعلومات فيها برمجياً. فإذا أردنا إنشاء قاعدة البيانات المكتبة التي بينا حقولها سابقاً، باستخدام لغة سي ، يمكن أن نستخدم برنامج كالتالي:

#include

struct Library
{
char szBook [50];
char szISBN [50];
char szAuthor [30];
char szPublisher [30];
int nPages;
};

void main ( )
{
Library lib = {"Inside ATL", "123-0000-0000", "George Shepherd", "MS Press", 500};

ofstream dbFile ("Library.dat", ios::binary);
dbFile.Write ((char*) &lib, sizeof (lib));
}


و يتضح لنا من خلال النص البرمجي السابق، أنَّ برمجة قاعدة بيانات خاصة لتظم معلومات عن الكتب الموجودة في إحدى المكتبات، هو عمل مجهد ومتعب وغير عملي. ويضاف إلى ذلك، أنَّ المبرمج هو الشخص الوحيد الذي يستطيع الدخول على قاعدة البيانات هذه، و هذا عيب كبير. وقد تظن بأنَّ هذا يعتبر نقطة قوة، لا نقطة ضعف، لكن لنفرض أنه بعد مرور سنة من إكمالك لقاعدة البيانات الخاصة بالمكتبة، قرر أصحاب المكتبة تمكين مستخدمي موقع المكتبة على إنترنت من البحث عن الكتب الموجودة في المكتبة، فماذا ستفعل عندئذ؟
قد تكون برمجة قاعدة بيانات خاصة بك أمراً مفيداً عندما يتعلق الأمر بتخزين إعدادات برنامجك، لكن عندما تريد تكوين قاعدة بيانات ضخمة، كالتي تحتوي على معلومات عن الكتب الموجودة في إحدى المكتبات، فإنَّ برمجة قاعدة بيانات خاصة بك، أمر متعب ومجهد وهو مضيعة للوقت بكل ما في الكلمة من معنى!

2- منظمات السجلات (Record Managers):
توجد عدة برامج من هذا النوع في الأسواق، ومن أشهرها برنامج "Btrieve". وتوفر منظمات السجلات طريقة أسهل لبرمجة قواعد البيانات.
يوفر برنامج Btrieve نوعاً من العزل بين برنامجك، وقاعدة البيانات. أي أنك لا ترسل الأوامر مباشرةً إلى قاعدة البيانات، وإنما إلى برنامج Btrieve أولاً، وهو يخاطب بدوره قاعدة البيانات. ويوفر Btrieve مجموعة جيدة من الأوامر البرمجية التي تمكنك من إضافة، ومسح، وتغيير حقل معين، أو البحث عن كلمة أو عبارة في قاعدة البيانات. وبهذا يقدم لك حلاً جيداً، حيث لا تحتاج إلى كتابة كل شيء من البداية، لكنه مع ذلك يحتوي على نقطة ضعف مهمة، وهي أنه يخزن هيكل قاعدة البيانات ضمن النص البرمجي، وبذلك لا يستطيع أحد غيرك التعامل مع قاعدة البيانات التي برمجتها.
ولفهم ما أقصده بهيكل قاعدة البيانات، انظر إلى المثال التالي:

typedef struct
{
BTI_CHAR Book[50];
BTI_CHAR ISBN[50];
BTI_CHAR Author[30];
BTI_CHAR Publisher[30];
BTI_WORD Pages;
} LIBRARY_STRUCT;


إنَّ النوع BTI_CHAR هو النوع الذي يستخدمه Btrieve لتعريف المتغيرات النصية.
والجدير بالذكر، أنَّ العديد من المؤسسات تستخدم برنامج Btrieve في برمجة قواعد البيانات الخاصة بها، لكنني أعتقد أنه حل ناقص وهو غير مناسب لتصميم قاعدة البيانات التي نريد.

3- قواعد البيانات المكتبية (Desktop Databases):
ومن أشهر برامجها: مايكروسوفت أكسيس، وMicrosoft FoxPro ، Eenterprise Paradox. ومن أهم مزاياها أنها تخزن هيكل قاعدة البيانات ضمن الملف الخاص بهذه القاعدة، وبذلك يمكن لعدد كبير جداً من البرامج التعامل مع الملفات المصممة باستخدام أحد هذه البرامج. كما أنها توفر وظائف فعّالة لحفظ واسترداد البيانات، وللبحث ضمن قاعدة البيانات، وللحفاظ على أمنها. ولبرامج قواعد البيانات المكتبية لغات برمجية خاصة بها، وكذلك أنواع بيانات (Data types) خاصة بها.
ويمكن لبرامج سي استخدام أوامر الـ ODBC، (Open DataBase Connectivity)، أو إحدى التقنيات الأخرى للتخاطب مع قواعد البيانات المكتبية، وسنتناول هذا بالتفصيل في الجزء الثاني.
ومن المزايا المهمة التي توفرها برامج قواعد البيانات المكتبية، بعض الوظائف الجاهزة التي تقوم بعمليات حسابية. فيمكنك مثلاً، حساب مجموع الأرقام الموجودة في حقول معينة بإرسال أمر واحد.
لكن قواعد البيانات المكتبية مصممة بالأصل، كما يوحي أسمها، للاستخدام ضمن الحواسيب الشخصية بشكل رئيس، أي أنها غير مناسبة للاستخدام ضمن الشبكات المحلية. فلنفرض مثلاً أن مجموعة من المستخدمين يستخدمون قاعدة بيانات قمت بتصميمها باستخدام برنامج مايكروسوفت أكسيس، وتحتوي على معلومات عن الكتب الموجودة في إحدى المكتبات، وأنَّ هؤلاء المستخدمين مرتبطين بشبكة داخلية، وأنَّ قاعدة البيانات موجودة على المزود (Server) الذي ترتبط به حواسيبهم. ولنفرض بأنَّ أحدهم أراد أن يحصل على جميع أسماء المؤلفين الذين يحملون الاسم "أحمد"، ولنفرض وجود مائة مؤلف يحملون هذا الاسم، فإن نظام قاعدة البيانات لن يقوم بإجراء البحث على المزود، ويقوم بعدها بإرجاع النتائج فقط إلى الحاسوب الزبون (Client)، بل سيرحل جميع البيانات إلى الحاسوب الزبون أولاً، ليجري بعدها البحث. وهذا حل غير عملي بالنسبة للشبكات الداخلية.
خلاصة القول، بأنَّ قواعد البيانات المكتبية تمثل حلاً مناسباً جداً لتصميم قواعد البيانات للحواسيب الشخصية، لكن إذا كنت تريد أن تصمم قاعدة بيانات ضخمة، وتريد أن تسخدمها ضمن شبكة محلية، فليس أمامك سوى اللجوء إلى قواعد البيانات العلائقية!

4- مزودات قواعد البيانات العلائقية (Relational Database Server):
تشبه قواعد البيانات العلائقية نسبياً قواعد البيانات المكتبية، فهي تخزّن المعلومات الخاصة بهيكل قاعدة البيانات ضمن الملف الخاص بقاعدة البيانات، كما أنها تملك لغة برمجة خاصة، وأنواع خاصة لتعريف البيانات (Data Types). لكنها تتفوق على قواعد البيانات المكتبية في التعامل مع الشبكات الداخلية.
من عيوب قواعد البيانات المكتبية، أنه كلما زاد حجم قاعدة البيانات قلت كفاءتها، وهذا العيب غير موجود في قواعد البيانات العلائقية. وبعكس قواعد البيانات المكتبية، فإنه يمكن لمزودات قواعد البيانات العلائقية معالجة ملايين السجلات في المزود الذي يحتوي على قاعدة البيانات العلائقية، ثم إرجاع النتيجة فقط إلى الحاسوب الزبون.
وكما هو الحال مع قواعد البيانات المكتبة، فإنه يمكن للغات البرمجة التعامل مع قواعد البيانات العلائقية من خلال بعض الأوامر الجاهزة والمبرمجة لهذا الغرض. وسنبين في الجزء الثاني من هذا المقال أسلوب التعامل مع قاعدة بيانات من خلال لغة فيجوال سي .
لغة البرمجة المعتمدة في أنظمة قواعد البيانات العلائقية هي SQL، Structured Query Language. وربما يكون أشهر برنامجين لتصميم قواعد البيانات العلائقية هما: Microsoft SQL Server و Oracle.
هل لمزودات قواعد البيانات العلائقية مساوئ؟ نعم! فهي مرتفعة الثمن جداً، وصعبة التركيب، وتحتاج إلى خبرة واسعة لإدماجها ضمن البرامج التجارية.

أيُّ تقنية أختار؟
لا بد من أنَّ هذا السؤال يدور في أذهنة الكثير من القراء، وأحاول هنا الإجابة عليه.
إذا كنت بحاجة إلى قاعدة بيانات لحفظ إعدادات برنامجك، فأنصحك ببرمجة قاعدة بيانات صغيرة خاصة لهذا الغرض. أما إذا كنت تريد إنشاء قاعدة بيانات مثل تلك الخاصة بتنظيم عمل إحدى المكتبات أو تسجيل البيانات الخاصة بمبيعات إحدى الشركات، فيمكنك الاختيار بين برامج منظمات السجلات، وبين برامج تصميم قواعد البيانات المكتبية، التي تمثل في نظري حلاً ممتازاً، وأنصحك باستخدام برنامج مايكروسوفت أكسيس، فهو يحاول الاقتراب قدر الإمكان من أنظمة قواعد البيانات العلائقية. وهو يوفر إضافة إلى ذلك سهولة الاستخدام، ويُمكِّنُك من استخدام أوامر لغة SQL، التي تعتبر مفيدة جداً، كما سنرى في الجزء الثاني. أما إذا كنت بحاجة إلى قاعدة بيانات ضخمة، وتحتاج لتكون على مزود خاص بها، فليس أمامك سوى اللجوء إلى قواعد البيانات العلائقية.
وسنعتمد في هذا المقال التعليمي على قاعدة بيانات ننشئها باستخدام برنامج مايكروسوفت أكسيس، وسنتعامل في الجزء الثاني مع قاعدة البيانات هذه باستخدام لغة فيجوال سي .

تصميم قاعدة البيانات باستخدام برنامج مايكروسوفت أكسيس
أستخدم الإصدارة 2002 أو إكس بي من برنامج أكسيس، فإذا كنت تستخدم إصدارة أقدم، فربما تلاحظ وجود بعض الفروق البسيطة في الخطوات التي سأشرحها، لكن لا تهتم لذلك.
1. افتح برنامج مايكروسوفت أكسيس، ثم اختر البند "جديد" (New) من القائمة "ملف" (File). انقر على البند "قاعدة بيانات فارغة" (Blank Database).
2. عندئذ سيظهر الإطار "ملف قاعدة بيانات جديدة" (File New Database)، يسمح لك بإدخال اسم ملف قاعدة البيانات الجديدة، وتحديد مكان حفظه على القرص الصلب. ولنطلق على مثالنا الاسم "Library.mdb". بعد كتابة الاسم وتحديد مكان حفظ الملف، انقر على الزر "إنشاء" (Create).
3. انقر نقراً مزدوجاً على البند "إنشاء جدول في طريقة عرض التصميم" (Create Table in Design view). عندها سيتم فتح النافذة "جدول1: جدول" (Table1 : Table)، حيث يحتوي هذا الإطار على ثلاثة أعمدة:
- اسم الحقل (Field Name): يمكنك هنا كتابة اسم الحقل الذي تريد أن تضيفه إلى جدولك.
- نوع البيانات (Data Type): يمكنك هنا اختيار نوع البيانات التي يحق للمستخدم أن يدخلها في الحقل من القائمة المسندلة.
- الوصف (Description): هذا الحقل اختياري، ويمكنك أن تكتب فيه شرحاً موجزاً. وسنترك هذا الحقل فارغاً.
قم بتعبئة العمودين اسم الحقل، ونوع البيانات، حسب الجدول رقم 1. وستلاحظ عندما تختار نوع البيانات (Data Type) من القائمة المنسدلة، فإنه ستظهر صفحتي خصائص في النصف الأسفل من النافذة "جدول1: جدول" (Table1 : Table)، هما: "عام" (General) و "بحث" (Lookup). ويمكنك من خلال صفحة الخصائص عام (General) التحكم بالحد الأقصى للمعلومات التي يمكن إدخالها في الحقل المعني، وذلك من خلال البند حجم الحقل (Field Size).

No. Field Name Data Type Field Size
1. Book Text 50
2. ISBN Text 50
3. Author Text 30
4. Publisher Text 30
5. Pages Number Integer
الجدول 1

انقر على أيقونة الحفظ (Save). فيظهر مستطيل الحوار "حفظ باسم" (Save As)، الذي يطلب منك أن تكتب اسماً للجدول، ولنطلق عليه الاسم "Books"، مثلاً. بعد إدخال هذا الاسم انقر على الزر "حفظ" (Save)، فيظهر مستطيل حوار يسألك إذا كنت تريد إضافة حقل للترقيم الذاتي إلى جدولك الحالي. وإضافة هذا الحقل ليس إلزامياً، إلا أنه مفضل. لذا انقر على الزر "نعم" (Yes). انظر إلى الشكل 2، الذي يمثّل الشكل النهائي للجدول "Books"، بعد انتهاء تصميمه.
قم بإغلاق الجدول، وذلك بالنقر على علامة (x).
الشكل 2 - انقر للتكبير
انقر نقراً مزدوجاً على اسم الجدول (Books)، وذلك لإضافة بعض المعلومات إليه، حيث يمكنك أن تكتب المعلومات التي تريدها، ويمكنك الاكتفاء بكتابة ثلاثة أو أربعة بنود فقط. انظر إلى الشكل 3، الذي يُظهر الجدول (Books) بعد أن أضفت بعض المعلومات إليه.
الشكل 3 - انقر للتكبير
تحويل هيئة قاعدة البيانات إلى هيئة Office 97
إذا كنت تستخدم الإصدارة السادسة من فيجوال سي ، عليك أن تحويل هيئة ملف قاعدة البيانات إلى الهيئة الخاصة بـأكسيس 97، وذلك لأن الإصدارة السادسة من فيجوال سي لا تستطيع التعامل مع الإصدارات الأحدث من مايكروسوفت أكسيس97. أما إذا كنت تستخدم الإصدارة السابعة، والتي تعرف باسم فيجوال سي .NET، فلا داع لهذا التحويل.
لإجراء التحويل قم بما يلي:
افتح القائمة "أدوات" (Tools)، ثم القائمة الفرعية "أدوات مساعدة لقواعد البيانات" (Database Utilities)، ثم القائمة الفرعية "تحويل قاعدة البيانات" (Convert Database)، ثم اختر البند لتنسيق ملف Access 97" (To Access 97 File Format…). فتفتح النافذة "تحويل قاعدة البيانات إلى" (Convert Database Into)، لإدخال الاسم الذي تريد أن تطلقه على الملف بعد تحويله إلى هيئة Access 97، يمكنك أن تسمي الملف في مثالنا "Library97.mdb".
انقر على الزر "حفظ" (Save) بعد إدخال لهذا الاسم، فتظهر رسالة تخبرك، بأنَّ أي وظائف خاصة بأكسيس 2000، أو إكس بي، تحتويها قاعدة البيانات الخاصة بك، ستفقد بعد إجراء التحويل. انقر على الزر "موافق" (Ok). والحقيقة أننا لم نستخدم أية وظائف خاصة بالإصدارات الأحدث من أكسيس، لذا لا داعي للقلق!
نكون بذلك أنهينا تصميم قاعدة البيانات، وأدخلنا بعض المعلومات فيها، ووصلنا إلى نهاية الجزء الأول!
المصدر : http://www.pcmag-arabic.com/print.ph...ulFyFyJhbcvzUA












التوقيع
*لا إله إلا أنت سبحانك إني كنت من الظالمين*

كن كالنخيل عن الأحقاد مرتفع ،،، بالطوب يرمى فيقذف أطيب الثمر

http://arablibrariannet.blogspot.com/
  رد مع اقتباس
قديم Dec-05-2006, 09:05 AM   المشاركة2
المعلومات

د.محمود قطر
مستشار المنتدى للمكتبات والمعلومات
أستاذ مساعد بجامعة الطائف
 
الصورة الرمزية د.محمود قطر

د.محمود قطر غير متواجد حالياً
البيانات
 
العضوية: 13450
تاريخ التسجيل: Oct 2005
الدولة: مصـــر
المشاركات: 4,379
بمعدل : 0.65 يومياً


افتراضي شكراً لهذا الجهد الطيب

أخي الفاضل / أحمد عادل
شكراً على هذا الجهد الطيب في العرض ، وتبسيط خطوات تصميم وإنشاء قاعدة بيانات .
يرجى المداومة في نشر كل ما يساعد أعضاء وزوار منتديات اليسير بهذا الصدد ، لرفع مهارات منتسبي المكتبات والمعلومات ، ولا يكون الـ IT طلسماً أو لغزاً لايستطع زملاؤنا فك رموزه ..
وفقكم الله .. أنتم و"كتيبة الشباب" في هذا المجال .
تحيايت ومحبتي للجميع












التوقيع
تكون .. أو لا تكون .. هذا هو السؤال
  رد مع اقتباس
قديم Oct-21-2012, 07:15 PM   المشاركة3
المعلومات

البنس
مكتبي جديد

البنس غير متواجد حالياً
البيانات
 
العضوية: 123782
تاريخ التسجيل: Oct 2012
الدولة: الجـزائر
المشاركات: 9
بمعدل : 0.00 يومياً


افتراضي

شكرا وجزاك الله كل خير ......حقيقتا لم افهم شيئ ........اريد شرح الامثلة يعني لو في امثلة تكون احسن ......كيفية عمل قاعدة البيانات لنظام مكتبة مدرسية على الورق ثم خطوة بخطوة على البرمجة ....في الجداول












  رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع تقييم هذا الموضوع
تقييم هذا الموضوع:

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مكتبة اليسير ( إقرأ ما تريد .. وضع كتاب جديد !) د.محمود قطر عروض الكتب والإصدارات المتخصصة في مجال المكتبات والمعلومات 66 Apr-05-2014 03:17 PM
حــزمة البـرمجيات CDS/ISIS عبدالعزيز الخبتي منتدى الأنظمة الآلية في المكتبات ومراكز المعلومات 9 Apr-20-2012 04:43 PM
ماهي المصادر البشرية التي يمكن أن تساعد المستفيدين في تحديد الوصول إلى مصادر الداخلية جآء الأمل منتدى الإجراءات الفنية والخدمات المكتبية 18 Oct-13-2011 12:29 PM
قواعد البيانات في المكتبات وكيف يتم تكوينها عبدالعزيز الخبتي منتدى الإجراءات الفنية والخدمات المكتبية 12 Jan-06-2011 09:59 PM


الساعة الآن 10:28 PM.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. جميع الحقوق محفوظة لـ : منتديات اليسير للمكتبات وتقنية المعلومات
المشاركات والردود تُعبر فقط عن رأي كتّابها
توثيق المعلومة ونسبتها إلى مصدرها أمر ضروري لحفظ حقوق الآخرين