مقدمة عن قواعد البيانات
مـنتديات لــــــــــمة حـــــاسوب الاهـــــلية :: [¦ الأقسام البرمجيه - Forums software ¦] :: قسم ال Databases
صفحة 1 من اصل 1
مقدمة عن قواعد البيانات
مقدمه عن قواعد البيانات
قواعد البيانات بحر كبير , كل ما تراه من الانظمه الحاليه
والمتطوره, اساس نجاحها قواعد البيانات ولكن تتسائل ماهي قواعد البيانات ؟ قواعد
البيانات عباره عن قاعدة بها جداول توجد بها المعلومات الي تقوم بتخزينها , غير
واضح صحيح ؟ انظر حولك في البيت, هل يوجد لديك مكتب, اعتبره قاعدة البيانات, في هذا
المكتب يوجد ادراج تضع بها اورقاك واشياء الشخصيه, درج للاقلام , درج للكتب , و درج
للاوراق وهذه هي اماكن التخزين في قاعدة البيانات وماتسمى بي الجداول.
متطلبات قبل البدأ :
لا يوجد
اهداف الدرس:
- مقدمه عن قواعد البيانات
- قواعد البيانات مقابل نظام الملفات
- لماذا قواعد البيانات
- قاعدة البيانات MySQL
- معرفات قواعد البيانات
- انواع الاعمده في قواعد البيانات
- امثله على قواعد البيانات
- العلاقات في قواعد البيانات
- طرق ربط العلاقات في قواعد البيانات
- تصميم قاعدة بيانات
مقدمه عن قواعد البيانات
:
قواعد البيانات بحر كبير , كل ما تراه من الانظمه
الحاليه والمتطوره, اساس نجاحها قواعد البيانات ولكن تتسائل ماهي قواعد البيانات ؟
قواعد البيانات عباره عن قاعدة بها جداول توجد بها المعلومات الي تقوم بتخزينها ,
غير واضح صحيح ؟ انظر حولك في البيت, هل يوجد لديك مكتب, اعتبره قاعدة البيانات, في
هذا المكتب يوجد ادراج تضع بها اورقاك واشياء الشخصيه, درج للاقلام , درج للكتب , و
درج للاوراق وهذه هي اماكن التخزين في قاعدة البيانات وماتسمى بي الجداول.
قواعد البيانات مقابل
نظام الملفات :
لو تسآلت لماذا نستخدم قواعد البيانات ؟ لماذا لا
نستخدم ملف ونضع فيه معلوماتنا, الاجابه بسيطه. طرق التخزين , المساحه , سهولة
الاستعلام
طرق التخزين
:
:
في الملفات نقوم بالتخزين بطريقه صعبه , فلو قلنا
كل سطر يحوي على معلومات مستخدم لدينا بالموقع , وفي هذا السطر فواصل تفصل كل
معلومه على حده مثل ( الاسم , العمر , كلمة المرور ) تخيل معي كيف ستقوم بقرائة هذا
الملف وماهي الطريقة التي ستستخرج بها المعلومات , طريقه طويله لتقوم بعمل هذا كله
ولكن مع قواعد البيانات فهي سهله جدا , فقط تقوم بتعيين نوع الحقل الذي تريده وتضع
به القيم وهي تقوم بعمل الباقي من ترتيب ومن استخراج ومن وضع كل قيمه لوحدها وغيرها
من الشروط مثل عدم التكرار.
المساحه :
تخيل موقع الياهو الذي يملك اكثر من مليون مستخدم
, كم ملف سوف يقوم بإستيعاب جميع هؤلاء المستخدمين ؟ وكم سوف تكون احجام الملفات ؟
هل هو شي منطقي ؟ غير ان استخراج معلومه ما سوف يكون بطيئ جدا فهو غير منطقي اساسا,
لكن مع قواعد البيانات فهو مسهل بطريقه ممتازه, مرتب بطريقه جيده, ولا يأخذ حيزا
كبيرا مثل الملفات , وعند القراء يكون اسرع.
سهولة
الاستعلام :
الاستعلام :
لو نرجع الى مثالنا , الملف الذي يحوي على اسماء
المسجلين بالموقع , تخيل انهم 1000 مستخدم , كل مستخدم في سطر بالملف, لو اردت ان
تقارن الاسم في الملف بالاسم الذي ادخله المستخدم فسوف تحتاج الى تقوم بقراء الملف
كاملا اي 1000 سطر, لكي تقوم بإيجاد المعلومه المطلوبه , سوف تقول ماذا لو كان
المستخدم في اول الملف , اذن ماذا لو كان في اخر الملف وكان رقم 1000 ؟ اعتقد ان
الصوره وضحت. لكن مع قواعد البيانات فالاستعلام سهل جدا عن طريق اللغه المسماه
SQL , فهي لغة منطقيه جدا وطريقتها سهله جدا فمجرد ان
تقول اختر من الجدول ( مستخدمين ) القيمه التي تساوي ( اسم
المستخدم المدخل ) فقط , وسوف يقوم الاستعلام بأخبارك هل يوجد اسم المستخدم
ام لا .
لماذا قواعد البيانات :
اعتقد ان الكلام الذي قرأته بالاعلى اقنعك ان نظام
قواعد البيانات افضل بكثير واخبرك لماذا نحتاج الى قواعد البيانات, ولكن ذلك لا
يعني اننا لو اردنا عمل شي بسيط جدا ان نستعمل نظام قواعد البيانات, بل سيكون كافيا
نظام الملفات ولكن في حالات نادره , ولا اظن ان هناك احد يستخدم نظام الملفات الى
الان. من خصائص قواعد البيانات التالي:
السرعه
السهوله
التنظيم
تقليل التكرار
تقليل المعلومات الغير مفيده
وغيرها الكثير التي لا حصر لها , ويمكن ان تذهب
الى Google وان تكتب في محرك البحث why to use
database , وسوف تحصل على المعلومات الكافيه التي تحتاجها.
قاعدة البيانات
MySQL:
هناك كثير من قواعد البيانات موجوده الان , ويمكن
انك قرأت عنها في الدرس الاول الذي يتكلم عن لغة PHP .
ولكن لو لاحظت ان اغلب مبرمجين PHP يستخدمون هذه القاعده
لخصائصها , فهي مجانيه , مفتوحة المصدر , سريعه , سهله. ولكن احد عيوبها انها لا
تدعم العلاقات الا بطريقه معينه. وسوف نتكلم عن العلاقات في اخر الدرس.
معرفات قواعد البيانات:
لدينا 3 معرفات في قواعد البيانات وهي : قاعدة
البيانات , الجدول , العمود
قاعدة
البيانات :
البيانات :
وهي المحتوى ( الحقيبه ) التي يكون
بها جميع معلوماتنا , ويمكنك انشاء اكثر من قاعدة بيانات
بها جميع معلوماتنا , ويمكنك انشاء اكثر من قاعدة بيانات
الجدول :
كل حقيبه لديها حافظات ( جيب ) واحد
للاقلام , وواحد للاوراق وواحد للكتب ,, وهذه ما اعنيه بالجداول
للاقلام , وواحد للاوراق وواحد للكتب ,, وهذه ما اعنيه بالجداول
العمود :
العمود هنا تخيله كأنه التفرعات
لحافظات , فحافظات الاقلام ( جيب الاقلام ) يحتوي على اربع خانات لحفظ الاقلام
واكثر , قلم احمر وقلم اخضر وقلم ازرق وقلم اسود
لحافظات , فحافظات الاقلام ( جيب الاقلام ) يحتوي على اربع خانات لحفظ الاقلام
واكثر , قلم احمر وقلم اخضر وقلم ازرق وقلم اسود
انواع
الاعمده في قواعد البيانات :
الاعمده في قواعد البيانات :
الانواع
الرقميه :
الرقميه :
TINYINT
SMALLINT
MEDUIMINT
INT
INTEGER
BIGINT
الانواع
العشريه :
العشريه :
FLOAT
DOUBLE
REAL
DECIMAL
NUMERIC
الوقت
والتاريخ :
والتاريخ :
DATE
TIME
DATETIME
TIMESTAMP
YEAR
النصوص
العاديه :
العاديه :
CHAR
VARCHAR
الكتابات و (
BLOB ) :
BLOB ) :
TINYBLOB
TINYTEXT
BLOB
TEXT
MEDUIMBLOB
MEDUIMTEXT
LONGBLOB
LONGTEXT
الخيارات
والتعدديه:
والتعدديه:
ENUM
SET
امثله على
قواعد البيانات:
قواعد البيانات:
جدول يقوم
بتخزين معلومات المستخدمين:
بتخزين معلومات المستخدمين:
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
جدول يقوم
بتخزين معلومات الكتب الي تباع:
بتخزين معلومات الكتب الي تباع:
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
العلاقات
في قواعد البيانات :
في قواعد البيانات :
من اهم الاشياء التي يجب ان نراعيها
في قواعد البيانات هي عدم التكرار , اي نجعل كل شي فريد من نوعه, لن استطيع شرح هذا
كله الان , ولكن سوف اتكلم عن العلاقات في قواعد البيانات بشكل مختصر , لدينا ثلاث
انواع من العلاقات :
في قواعد البيانات هي عدم التكرار , اي نجعل كل شي فريد من نوعه, لن استطيع شرح هذا
كله الان , ولكن سوف اتكلم عن العلاقات في قواعد البيانات بشكل مختصر , لدينا ثلاث
انواع من العلاقات :
العلاقه
المسماه بي 1:1 او واحد لواحد ( One : One )
المسماه بي 1:1 او واحد لواحد ( One : One )
لنأخذ مثال على هذه العلاقه , تخيل
ان لدينا متجر , وفي هذا المتجر يوجد عامل واحد فقط, فالعلاقه تكون ان الموظف ينتمي
الى متجر واحد و المتجر يحوي على موظف واحد فقط لاحظ الصوره التاليه:
ان لدينا متجر , وفي هذا المتجر يوجد عامل واحد فقط, فالعلاقه تكون ان الموظف ينتمي
الى متجر واحد و المتجر يحوي على موظف واحد فقط لاحظ الصوره التاليه:
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
العلاقه
المسماه بي M:1 او واحد لكثير ( Many : One )
المسماه بي M:1 او واحد لكثير ( Many : One )
تخيل ان لدينا رسام , هذا الرسام
يقوم برسم عدة لوحات , ولكن كل لوحة من عمل رسام واحد فقط لاحظ الصوره التاليه :
يقوم برسم عدة لوحات , ولكن كل لوحة من عمل رسام واحد فقط لاحظ الصوره التاليه :
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
العلاقه
المسماه بي N:M او كثير لكثير ( Many : Many )
المسماه بي N:M او كثير لكثير ( Many : Many )
لو لدينا طلاب ولدينا مواد , فكل
طالب يمكنه ان يأخذ ماده او اكثر , وكل ماده يمكن ان يأخذها اكثر من طالب اليس ذلك
صحيحا ؟ ولكن هذه العلاقه ليست جيده لانها لن تحل مشكلة التكرار , ولكن نقوم بحلها
عن طريق شي يسمى ( Bridge Entity ) او ( الجسر ) لاحظ
الصورتين التاليه:
طالب يمكنه ان يأخذ ماده او اكثر , وكل ماده يمكن ان يأخذها اكثر من طالب اليس ذلك
صحيحا ؟ ولكن هذه العلاقه ليست جيده لانها لن تحل مشكلة التكرار , ولكن نقوم بحلها
عن طريق شي يسمى ( Bridge Entity ) او ( الجسر ) لاحظ
الصورتين التاليه:
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
ولكي نقوم بحل هذه العلاقه او ايجاد
طريقه اخرى لها نستخدم الجسر مثل الصوره التاليه:
طريقه اخرى لها نستخدم الجسر مثل الصوره التاليه:
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
طرق ربط العلاقات في
قواعد البيانات :
كل جدول نقوم بإنشاءه يجب ان نجعل
له ما يسمى المفاتح الرئيسي ( PRIMARY KEY ) وهذا
المفتاح لا يتم تكراره في الجدول , حيث ان كل مستخدم لديه رقم رئيسي نعرفه به ,
ونحدد به اسمه ومعلوماته الاخرى ولكي نقوم بربطه في علاقة , في الجدول المربوط به
نجعل هذه القيمه على شكل مفتاح اجنبي ( FOREIGN KEY )
لاحظ معي الصوره التاليه :
له ما يسمى المفاتح الرئيسي ( PRIMARY KEY ) وهذا
المفتاح لا يتم تكراره في الجدول , حيث ان كل مستخدم لديه رقم رئيسي نعرفه به ,
ونحدد به اسمه ومعلوماته الاخرى ولكي نقوم بربطه في علاقة , في الجدول المربوط به
نجعل هذه القيمه على شكل مفتاح اجنبي ( FOREIGN KEY )
لاحظ معي الصوره التاليه :
[وحدهم المديرون لديهم صلاحيات معاينة هذه الصورة]
لاحظ ان العمود CustomerID
في جدول CUSTOMERS هو مفتاح رئيسي
ولا يمكن تكراره , ولكنه في جدول ORDERS على شكل (
FOREIGN KEY ) ويمكن تكراره , لان عدة طلبات يمكن عملها
عن طريق مستخدم واحد , ولكن كل طلب مربوط بمستخدم واحد فقط.
في جدول CUSTOMERS هو مفتاح رئيسي
ولا يمكن تكراره , ولكنه في جدول ORDERS على شكل (
FOREIGN KEY ) ويمكن تكراره , لان عدة طلبات يمكن عملها
عن طريق مستخدم واحد , ولكن كل طلب مربوط بمستخدم واحد فقط.
تصميم
قاعدة بيانات:
قاعدة بيانات:
في تصميم قاعدة البيانات يجب علينا
ان نقوم بأشياء كثيره , اولها ان نقوم بتحليل ومعرفة ماذا نريد من هذه القاعده ,
كيفية عملها , كيفية ترتيب المعلومات المفيده لنا بالقاعده , ويجب ان نقوم برسم
القاعده على الورق اولا لكي نستنتج هل منطقنا صحيح في تصميم هذه القاعده ام لا.
ويجب ان نحل مشكلة التكرار , فتخيل لو لدينا جدول يحتوي على معلومات العميل
ومعلومات الموظف الذي قام بخدمته , في كل مره ندرج مستخدم يجب ان ندرج العميل مره
اخرى ولو قام العميل بتغيير اسمه او رقمه , فسنحتاج الى تغيير كل الصفوف التي يوجد
بها هذا العميل , ولكن لو جعلنا العميل في جدول والموظف في جدول , فسيكون لكل عميل
صف واحد في جدول العملاء ولكل موظف صف واحد في جدول الموظفين ثم نربطهما ببعض. فلو
غير عميل رقم هاتفه سوف نقوم بالتعديل مره واحده فقط.
ان نقوم بأشياء كثيره , اولها ان نقوم بتحليل ومعرفة ماذا نريد من هذه القاعده ,
كيفية عملها , كيفية ترتيب المعلومات المفيده لنا بالقاعده , ويجب ان نقوم برسم
القاعده على الورق اولا لكي نستنتج هل منطقنا صحيح في تصميم هذه القاعده ام لا.
ويجب ان نحل مشكلة التكرار , فتخيل لو لدينا جدول يحتوي على معلومات العميل
ومعلومات الموظف الذي قام بخدمته , في كل مره ندرج مستخدم يجب ان ندرج العميل مره
اخرى ولو قام العميل بتغيير اسمه او رقمه , فسنحتاج الى تغيير كل الصفوف التي يوجد
بها هذا العميل , ولكن لو جعلنا العميل في جدول والموظف في جدول , فسيكون لكل عميل
صف واحد في جدول العملاء ولكل موظف صف واحد في جدول الموظفين ثم نربطهما ببعض. فلو
غير عميل رقم هاتفه سوف نقوم بالتعديل مره واحده فقط.
مواضيع مماثلة
» الأساسيات في التعامل مع قواعد البيانات
» مقدمة عن لغة ASP.Net و تعريف باللغة
» الدرس الأول في الأسمبليassembly (مقدمة)
» مقدمة عن لغة الجـافـا وبيئة التشغيل
» مقدمة عن لغة ASP.Net و تعريف باللغة
» الدرس الأول في الأسمبليassembly (مقدمة)
» مقدمة عن لغة الجـافـا وبيئة التشغيل
مـنتديات لــــــــــمة حـــــاسوب الاهـــــلية :: [¦ الأقسام البرمجيه - Forums software ¦] :: قسم ال Databases
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى