اشترك في مجموعة montadaphp.net حتى تصلك أخبار المنتدى  

بريدك الإلكتروني:

النتائج 1 إلى 6 من 6
  1. #1
    مطور منتديات mysmartbb
    تاريخ التسجيل
    22-05-2007
    المشاركات
    276
    معدل تقييم المستوى
    8

    افتراضي مفاهيم عامة عن قواعد البيانات

    بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين اما بعد ، ففي هذا الدرس بمشيئة الله تعالى سنتطرق الى مفاهيم عامة عن قواعد البيانات عموما وعن الـ Mysql خصوصاً ، لتكون بداية فهم لقواعد البيانات الهامة لأي لغة برمجة .



    في البداية سنتعرف على مصطلح الـ RDBMS ، ونعني بذلك قواعد البيانات العلائقية ، والتي من خصائصها سهولة الوصول الى البيانات المخزنة فيها ، وسرعة اتمام عمليات الاستعلام المختلفة ، وبالاضافة الى المميزات الأخرى فان هذه النوع يعتبر الأكثر استخداماً في جميع التطبيقات سواء المستخدمة فيي الانترنت أو ذات الطابع البرمجي الخاص ، وبطبيعة الحال فإن الـ Mysql من هذا النوع .



    ومن المهم معرفة بعض الاساسيات في الـ RDBMS ، والتي من شأنها تسهيل عملية فهمك التام لطريقة عملها والتعامل معها ..



    1- الجداول Tables :

    تعتبر أكبر جزء في قاعد البيانات ، وهي عبارة عن أعمدة وصفوف تحتوي على قيم معينة .



    2- الأعمدة Columns :

    لكل عمود في الجدول أسم خاص يختلف عن أسماء الأعمدة الأخرى في نفس الجدول ، ويجب ان يكون لكل عمود نوع خاص به يصف نوع البيانات التي ستخزن فيه ، وكم يظهر في الصورة ، فان عمود الرقم من النوع الرقمي Integer ، اما الحقلين الآخرين فهي نصوص Text .



    3- الصفوف Rows :

    كل صف من صفوف الجدول يحتوي على قيم مختلفة ويمثل معلومات متكاملة عن قطاع معين ، وفي مثالنا يمثل معلومات متكاملة عن سخص معين .



    4- القيم Values :

    وهي ما تحتوي عليه تقاطعات الصفوف بالاعمدة .



    5- المفاتيح Keys :

    وتعتبر من اساليب تسهيل الوصول الى المعومات في قواعد البيانات ، وفي مثالنا السابق نرى أن العمود Id يحتوي على ارقام متسلسلة لا تتكرر نهائياً بل أنها تتكون بشكل تلقائي عند ادراج أي صف جديد للجدول ، وبالتالي فإنها تعتبر المفتاح المناسب لكل صف من صفوف الجدول لضمان عدم الالتباس في اختيار الصفوف .



    فلو افترضنا أن لدينا جدولين في قاعدة بيانات ، يحتوي الجدول الأول على معلومات عن الدروس مفصلة على عدة حقول لتلك الدروس ، على سبيل المثال :

    الرقم ( id ) ، الدرس ( lesson ) ، رقم الكاتب ( Key_author ) ..

    ويحتوي الجدول الثاني على بيانات الأعضـاء كما يلي :

    الرقم ( Key_author ) ، الاسم ( name ) ..



    والمطلوب هو طريقة لربط الجدولين ، بحيث أن رقم الكاتب في جدول الدروس ( Key_author ) يدل على اسم الكاتب في جدول الاعضـاء ( name ) .



    بالتدقيق في المثال يتضح أن الحقلين ( أو العمودين ) Key_author في كلا الجدولين هو مفتاح الربط بينهما ، ولذلك يمكن الوصول الى اسم الكاتب اعتماداً على رقمه من جدول الدروس ، وبالتالي الربط بين الجدولين .



    لن اتحدث طويلاً عن مقدمات قواعد البيانات Mysql ، ولكن بهذه المقدمة البسيطة يمكن على الاقل تصور بعض الاساسيات حول قواعد البيانات عموماً والـ Mysql خصوصاً ، ومن وجهة نظري فالاهم هو كيفية التعامل مع قواعد البيانات بما يخدم احتاجاتنا مع الـ PHP ، ولذلك ساتطرق في هذ الدرس الى نقطة هامة جداً وهي ادارة قواعد البيانات ، وأعني بذلك عملية انشاء قواعد البيانات والجداول والتحكم في الحقول والبيانات وغيرها ، لتكون الاسـاس للتعامل مع قواعد البيانات لاحقاً عن طريق الـ PHP ، ولعمل ذلك يوجد عدة طرق من اهمها الطريقة التقليدية المباشرة بالاعتماد على نظام الدوس في ذلك وبدون استخدام أي برامج أخرى للادارة .



    الاتصال بالـ Mysql ، والتعامل معها :

    كما قلنا أن الطريقة التقليدية هي الاتصال بقواعد البيانات عن طريق سيرفر الـ Mysql وبدون استخدام أي مكونات أخرى ، ولعمل ذلك نحتاج أن نعرف مسار سيرفر الـ Mysql على الجهاز المستخدم بعد عملية التثبيت ، كما قمنا بذلك في درس المقدمة ، وعادة يكون المسـار كالتالي ( C:\mysql\bin ) ، وبذلك يمكن تشغيل البرنامج mysql.exe من داخل الـ Dos .



    عموماً طريقة الاتصال بقاعدة البيانات هي كالتالي :


    كود:
    mysql –h HostName –u UserName –p

    مع استبدال الـ HostName باسم السيرفر لديك ، سواء كان السيرفر على نفس الجهاز وفي هذه الحالية تكتب localhost ، أو أن السيرفر الذي تود الاتصال به ليس على نفس الجهاز وبذلك تكتب المسار الكامل لاسم الـسيرفر ( HostName ) ، ومع استبدال الـ UserName باسم المستخدم الخاص بالـ Mysql لديك ، بعد ذلك سيتم طلب كلمة المرور الخاصة بقاعدة البيانات بعد الضغط على Enter ، قم بادخالها وسيتم فتح الاتصال بالـ Mysql ، كما يمكن كتابة mysql فقط ليتم فتح الاتصال بقاعدة البيانات فقط اذا كنت تعمل على نفس الجهاز وليس جهاز أخر .



    سيظهر المؤشر الخاص باوامر الـ Mysql كالتالي :

    mysql>

    وبهذا نكون وصلنا الى المكان المطلوب لكتابة اوامر الـ Mysql والتحكم بها .



    الأمر الأول الذي سنقوم بكتابته يقوم باستعراض قواعد البيانات الموجودة على السيرفر والامر هو :



    كود:
    show databases;

    بعد كتابة هذا الأمر ( بعد مؤشر الـ mysql> ) ، سيتم استعراض قواعد البيانات في السيرفر الذي قمنا بالاتصال به ، وفي حالة عدم وجود أي قاعدة بيانات قمت باعدادها من قبل ، فان من الطبيعي أن تجد قاعدتي بيانات موجودة بشكل تلقائي عند تثبيت السيرفر Mysql ، وتلك القاعدتان هي test – mysql .



    ولمحاولة فهم الموضوع بشكل أكبر ، سنقوم بالتطرق الى مثـال يبين كيفية انشاء قاعدة بيانات ، وكيفية الدخول لها والتعامل معها وانشاء الجداول ، ومن ثم حذفها ..



    بعد استعراض قواعد البيانات بالأمر السابق ، سنقوم بانشاء قاعدة بيانات باسم PHP ، ولعمل ذلك قم بكتابة الأمر التالي :



    كود:
    create database PHP;

    لو قمنا بكتابة الأمر السابق ( show database ) سنرى أن قواعد البيانات أصبحت 3 باضافة القاعدة PHP الى القاعدتين mysql – test ، ولاستخدام اي منها نقوم بكتابة الأمر التالي في مثالنا مع القاعدة PHP :


    كود:
    use PHP;

    وهذه يعني الدخول في قاعدة البيانات PHP واستخدام المؤشر ( mysql> ) لكتابة الأوامر المتعلقة بالتعامل مع قاعدة بيانات بعينها .



    أول هذه الاوامر هو أمر انشاء جدول في قاعدة البيانات ، وهذه الأمر يحتاج الى تفصيل دقيق لبعض الخصائص مثل اسماء الحقول وانواع البيانات فيها ، وبعض الاشياء الأخرى ، عموماً قم بكتابة الأمر التالي وساقوم بشرح كافة التفاصيل بعد المثال :


    كود:
    create table users ( 
    
    id Int not null auto_increment Primary Key, 
    
    name text not null, 
    
    counter int 
    
    );

    شرح المثال :

    - قمنا بكتابة ( create table users ) وهذا يعني انشاء جدول باسم users .

    - القوس ) يعني بداية تسمية حقول الجدول وخصائص تلك الحقول .

    - السطر الأول من اسماء الحقول هو ( id ) والرمز ( int ) يعني وصف نوع البيانات التي ستخزن في الـحقل ( id ) ، وهي في هذه الحالة تعني نوع البيانات الرقمية ، اما الرمز ( not null ) فيعني عدم امكانية أن يكون هذا الحقل فـارغاً ، بل يجب أن يحتوي على قيمة ، والـ ( auto_increment ) يجعل الحقل يحتوي على قيم متسلسلة يستحيل تكرارها ، وسيبدأ من الرقم 1 ويبدأ بالزيادة بمقدار واحد في كل مرة يتم ادخال صف جديد الى هذا الجدول ، وفي النهاية الرمز ( Primary Key ) يعني أن الحقل هو المفتاح الرئيسي لهذا الجدول أو بمعني أنه سيتم التفريق بين صفوف الجدول اعتماداً على هذا الحقل ولهذا وضعنا ( auto_increment ) لضمان عدم اختلاط البيانات .

    - السطر الثاني يحتوي على اسم الحقل ( name ) ونوع البيانات ( text ) أي نصي ، ونفس الرمز السابق الذي ذكرناه وهو ( not null ) .

    - السطر الثالث يحتوي على اسم الحقل ( counter ) ونوع البيانات ( int ) ، ولاحظ أننا لم نذكر ( not null ) وبالتالي يمكن أن يكون هذا الحقل فارغاً لا يحتوي على أي قيمة ، ولن يكون هناك أي تعارض أو مشكلة بعكس الحقلين السابقتين .

    - في السطر قبل الأخير ، أي قبل علامة الاغلاق ( ، سيكون بدون فاصلة .

    - السطر الأخير يحتوي على اقفال عملية انشاء الجدول بالعلامة ); .



    عموماً هذا المثال يعطي نبذة بسيطة عن كيفية اجراء مثل هذه الاوامر ، وسنتطرق الى بقية الأوامر في الأسطر القليلة القادمة .



    يمكنك استعراض الجداول الموجودة في قاعدة بيانات عن طريق الأمر :



    كود:
    show tables;

    ولو قمت بتطبيق ذلك على المثال السابق فسترى أن الجدول users موجود في قاعدة البيانات PHP التي قمنا بانشاءها .



    يمكن كذلك استعراض خصائص الجدول السابق users الذي قمنا بانشاءه في المثال السابق ، عن طريق الأمر التالي

    كود:
    describe users;

    سترى أن حقول الجدول وخصائص كل جدول ظهرت لك بشكل واضح .



    - التعامل مع بيانات الجداول :

    بقي أن نذكر الطرق التي يمكن من خلالها ادخال البيانات الى الجدول users ، بل وكيفية التعامل مع تلك البيانات بالتعديل والحذف وغير ذلك ، وكما قلنا سابقاً أن هذه الاساسيات مفيدة جداً في البرمجة بلغة الـ PHP ، بل إن فهم هذه الطرق هو المفتاح الاساسي للتعامل مع قواعد البيانات عن طريق البي اتش بي ،



    عموماً أول تلك الأوامر هو اضافة صف جديد الى الجدول ، وهذا ما يبينه المثال التالي :




    كود:
    insert into users set 
    
    name = “Ahmad”; 
    
    counter = 3 
    
    ;

    مع ملاحظة أن users هو اسم الجدول ، name اسم الحقل ( العمود ) الأول ، counter اسم الحقل ( العمود ) الثاني ، كما تلاحظ أن الحقل id لم نتطرق له ، لاننا في اعدادنا للجدول ذكرنا أن الحقل id ( auto_increment ) أي ستضاف اليه القيم بشكل تلقائي وبشكل منظم ، كما قلنا في كل مرة يزيد العداد بقيمة 1 ، و بطبعية الحال يمكنك القياس على هذا المثال باستبدال ما يجب استبداله من اسم الجدول ( users ) واسماء الحقول ( name – counter ) وكذلك البيانات بما يناسب الذي تريد القيام به .



    هذا بالنسبة لاضافة بيانات جديدة الى جدول معين ، اما بالنسبة لاستعراض البيانات في الجدول فكما يلي :


    كود:
    select * from users;

    ومعني select ( اختر ) ، ولذلك ستجد أن جميع البيانات التي في الجدول users قد تم سردها ، واذا كنت ملتزماً بالمثال السابق حرفياً فستجد أن البيانات التي اضفناها في المثال السابق ظهرت على شكل صف من صفوف الجدول ، وبالتالي كلما اضفت صفاً جديداً الى الجدول وقمت باستعراض البيانات تجد أن بياناتك قد تم تخزينها ، وينطبق الكلام السابق حول الاستبدال هنا ايضا ، فيمكن استبدال اسم الجدول users باي اسم لجدول في قاعدة البيانات المستخدمة ، وللتاكد من اسماء الجداول قم باستخدام الطريقة السابق ذكرها وهي ( show tables ) .



    النقطة الأخيرة التي ساتطرق لها هي ما يجب معرفته حول الأمر select وهو كثرت استخدامه في التعامل عن طريق البي اتش بي ، وبالتالي يجب عليك فهم طريقة كتابته بشكل كامل ، بالاضافة الى خيارات الاختيار إن صح التعبير ، وهي ما يتم كتابته بعد الجملة السابقة من خيارات تحدد طريقة اختيار البيانات من شروط وترتيب وحدود وهذا ما ساذكره في الاسطر القليلة القادمة .



    فلفترض أن الجدول السابق يحتوي على أكثر من صف من البيانات بالشكل التالي :



    اما البيانات التي نود جلبها فهي كما يلي لكل نقطة على حدة :

    1- بيانات الاعضاء الذين ليس لهم أي موضوع .

    2- بيانات الاعضاء الذين لهم مواضيع أكثر من 5 مرتبين من الاكثر الى الاقل .

    3- بيانات العضو Ahmed .

    4- بيانات جميع الاعضاء مرتبين حسب الاسم .

    5- بيانات العضو الأكثر مواضيعاً .



    سنأخذ كل حالة على حدة ، أما الحالة الأولى فيمكن التعامل معها كما يلي :




    كود:
    select * from users where counter=0;

    الزيـادة التي قمنا بوضعها هي ( where counter=0 ) أي بحيث أن الحقل ( counter ) يساوي صفر ، وبالتالي سيتم اهمال أي صف من البيانات التي لا يحتوي الحقل ( counter ) فيها على القيمة صفر ، وسيتم جلب البيانات التي يحتوي هذا الحقل فيها على صفر .




    اخوكم ايهاب الغزال

  2. #2
    * أبو عمــر * الصورة الرمزية coder
    تاريخ التسجيل
    24-12-2006
    السن
    35
    المشاركات
    3,771
    معدل تقييم المستوى
    11

    افتراضي رد : مفاهيم عامة عن قواعد البيانات

    بارك الله فيك أخي الكريم
    رُبّ أخٍ لك لم تلِدهُ أُمُّكَ
    الطموح يعني الحلم، أوله صبر وتفاؤل، وأوسطه اجتهاد وإرادة، وآخره نتيجة رائعة بإذن الله.

  3. #3
    مطور منتديات mysmartbb
    تاريخ التسجيل
    22-05-2007
    المشاركات
    276
    معدل تقييم المستوى
    8

    افتراضي رد : مفاهيم عامة عن قواعد البيانات

    اسعدني مرورك الكريم

    اخوك

    ايهاب الغزال

  4. #4
    عضو شرف الصورة الرمزية HiMiTa
    تاريخ التسجيل
    29-05-2007
    المشاركات
    52
    معدل تقييم المستوى
    8

    افتراضي رد : مفاهيم عامة عن قواعد البيانات

    شكرا أخي إيهاب على الموضوع الذي لا أتذكر أين قرأته ربما في القرية php أو سوالف على العموم لك من كامل التقدير

  5. #5
    عضو شرف الصورة الرمزية enigma
    تاريخ التسجيل
    04-03-2007
    المشاركات
    689
    معدل تقييم المستوى
    8

    افتراضي رد : مفاهيم عامة عن قواعد البيانات

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


    من الذي يمكن أن يدلنا على تطبيق عملي، راجعت أكثر من منتدى وموقع تدريسي...
    للأسف كل المنتديات تضع حد وهو لا يتعدى الـ 10% من الأساسيات العامة
    كيف يمكن استغلال الجداول بشكل أفضل، ما هي الطرق. هل توجد طرق مفيدة


    طيب وسؤال آخر
    لو افترضنا أن لدي ثلاث جداول:
    المقالات
    الكتب
    البرامج
    لنقول أن كل جدول فيه 5 حقول
    id
    name
    date
    detail
    text
    على كل حال، هل عندما احتاج إلى حفظ عدد الزيارات لكل موضوع يجب أن تكون في كل جدول، حقول لذلك يعني:
    visit
    download
    وهكذا...
    ألا توجد طرق أفضل..؟ يعني المسألة طويلة، لو كان لدي 30 جدول ماذا أفعل، هل أقوم بإضافة حقول الزيارات، والتحميل في كل جدول



    وأيضاً:
    ألا توجد مواقع عربية، دروس، منتدى، مدونات تختص بقواعد البيانات؟
    هل توجد

  6. #6
    عضو شرف الصورة الرمزية islamcoming
    تاريخ التسجيل
    23-01-2008
    السن
    20
    المشاركات
    287
    معدل تقييم المستوى
    7

    افتراضي رد : مفاهيم عامة عن قواعد البيانات

    موضوع رائع رغم إحتوائه على بعض من التعقيدات فهو مفيد كمفاهيم وتعاريف عامة

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

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

المواضيع المتشابهه

  1. استخراج البيانات من قواعد البيانات لإستعمالها
    بواسطة hafe2t في المنتدى دروس قواعد البيانات MySQL & MySQLI & PDO
    مشاركات: 28
    آخر مشاركة: 14-07-2013, 02:22 AM
  2. درس مثال لتقريب مفاهيم المتغيرات و الفنكشن والكلاس
    بواسطة يوسف الحمود في المنتدى دروس للمبتدئين
    مشاركات: 9
    آخر مشاركة: 05-11-2012, 01:58 AM
  3. مشاركات: 33
    آخر مشاركة: 05-08-2012, 04:05 AM
  4. مشاركات: 5
    آخر مشاركة: 04-01-2011, 10:29 PM
  5. (قواعد البيانات)- إنشاء قاعدة البيانات والجدول
    بواسطة coder في المنتدى دروس قواعد البيانات MySQL & MySQLI & PDO
    مشاركات: 11
    آخر مشاركة: 12-12-2008, 06:38 PM

ضوابط المشاركة

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