|
| كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) | |
| | كاتب الموضوع | رسالة |
---|
المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 20:59 | |
|
الخطوه الأهم في تصميم اي قاعدة بيانات هي وضع مخطط العمل , و لكي نعرف مخطط العمل لابد من الاحاطه بالهدف المطلوب من انشاء قاعدة البيانات . لدينا شركة NorthWind أو الرياح الشماليه , شركة تقوم بشراء وبيع البضائع , عملية الشراء غير مطروقه في هذه القاعده , و انما الاهتمام كله موجه لعملية البيع ( و طبعا بالامكان تصميم مايلزم لعمليات الشراء ) . عملية البيع تتم بناء على طلبيات مسبقه من العملاء , بحيث يتم تحديد الأصناف المطلوب ارسالها للعميل و الأسعار ووسيلة الشحن وموعد الشحن المطلوب و رقم الموظف الذي قام بتسجيل بيانات الطلبيه . بالنسبه للبضائع لابد من مراعاة أن يكون هناك مخزون متوفر حيث أن البضائع التي تم بيعها للعملاء ستخفض الرصيد الموجود بالمخازن , و طبعا في حال انخفاض هذا الرصيد عن حد اعادة الطلب , فيجب اعداد طلبية شراء لتغذية المخزون , و لكن كما ذكرنا عملية الشراء غير متطرق اليها في هذه القاعده . اذا يمكننا الآن أن نضع تصورا للجدول التي ينبغي انشاؤها حيث : - طالما لدينا بضائع يتم بيعها اذا لابد من انشاء جدول خاص بالبضائع Product - لدينا عملاء اذا نحتاج الى جدول للعملاء Customers - لدينا طلبيات اذا نحتاج الى جدول خاص للطلبيات اذ لكل عميل طلبيه مستقله Orders
هذه هي الجداول الرئيسيه التي نحتاجها و سنقوم بتصميمها الآن . قبل البدء بتصميم الجداول لابد من الاشاره الى بعض التوصيات في بناء الجداول و هي : أولا : الجدول هو المادة التخزينيه للبيانات الرئيسيه , اذ يجب أن يحتوي على القيم التي لاتتأثر بغيرها اي على سبيل المثال اذا كانا نريد حساب المعادله التاليه
SQL كود القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثانيا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا الجدول الرئيسي لدينا هو جدول الطلبيات , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و حيث أننا نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك احتجنا أن تكون بيانات العميل في جدول مستقل تجتمع فيه بياناته الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . ثالثا : يفضل أن تكون استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء العربيه يسبب ارباكات أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك رابعا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList لنبدأ الآن بتصميم الجدول الأسهل في هذه القاعده و هو جدول العملاء , و لنتصور أنه يحتوي الحقول التاليه : اسم العميل CompanyName العنوان Address المدينه City الدوله Country المنطقه Region الرمز البريدي PostalCode الهاتف Phone الفاكس Fax و سنحتاج اضافة لذلك بيانات عن الشخص الذي سنتصل به مثل اسمه ContactName و عمله الوظيفي ContactTitle و طبعا قبل كل ذلك نحتاج الى كود العميل CustomerID و هو الذي سيكون صلة الربط مع الجداول الأخرى و المفتاح الرئيسي لهذا الجدول قاعدة البيانات هذه موجوده بشكل جاهز مع الأكسس من قائمة الأدوات - أمثله , يمكن تنزيلها للاطلاع عليها , و لكن من أراد أن يستفيد أكثر فليحاول التصميم بنفسه لزيادة مهارته و ليبدأ بتصميم جدول العملاء و سنتابع ان شاء الله بقية الجداول في الدرس التالي
عدل سابقا من قبل المدير العام في الإثنين 7 يناير - 21:34 عدل 2 مرات | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:04 | |
| الآن لنحاول بناء الجدول الثاني في الأهميه و هو جدول المنتجات Products يمكن أن نتصور أنه يحتوي البيانات التاليه اسم المنتج ProductName التعبئه QuantityPerUnit سعر الوحده UnitPrice حد اعادة الطلب ReorderLevel الصنف فعال ( لازال قيد التعامل أم تم الغاؤه ) Discontinued الآن لابد لنا من رقم معرف للصنف أي ProductID و هذا الحقل هو الذي سيتم التعامل معه لاحقا كمعبر عن الصنف و هو الذي سيكون الرابط بين جدول الأصناف و بقية الجداول نريد اضافة حقل آخر و هو تصنيف المنتج أي الزمره التي يتبع لها هذا المنتج اذا كان لدينا مجموعة كبيره من المنتجات و نريد تصنيفها في مجموعات و ليكن هذا الحقل اسمه CategoryID أحدنا سيتخيل أنه طالما أن المجموعات ستكون اسماء مثل ( ألبسه - مأكولات - مواد غازيه ,, الخ ) , اذا حقل رمز المجموعه سيكون نص , الأفضل أن نصمم جدولا خاصا للمجموعات ولنسمه Categories , يحتوي الحقول التاليه رقم معرف للمجموعه و مفتاح رئيسي CategoryID اسم المجموعه CategoryName بعض الحقول الاضافيه مثل : الوصف - صورة الآن النقطه الهامه جدا هنا هي أننا في جدول المنتجات سنجعل حقل رمز المجموعه رقما و ليس نصا و سيأخذ قيمته من حقل CategoryID في جدول Categories و ليس من حقل CategoryName و سيكون الربط بين جدولي الأصناف و المجموعات على حقل رقم المجموعه في كلا الجدولين اي CategoryID . الآن ليقل أحدنا اذا كنا نريد تعبئة بيانات صنف جديد في جدول الأصناف , و ليكن مثلا لحوم , نريد تعبئة حقل رقم المجموعه و هي مجموعة اللحوم في جدول المجموعات , ال CategoryID لهذه المجموعه هو 6 , هل كلما أردنا أن نعرف رقم مجموعه لصنف يجب أن نفتح جدول المجموعات و نستخرج رقم تلك المجموعه ثم نضعه في حقل معرف المجموعه للصنف ؟ هذا سيكون عملا مملا و شاقا , نستطيع اختصار كل هذا بتحويل حقل CategoryID في جدول الأصناف الى قائمه تحوي حقلين مأخوذين من جدول المجموعات و هما : CategoryID - CategoryName حيث سنستطيع بكل سهوله اختيار اسم المجموعه المناسب من هذه القائمه و عمل ذلك مشروح على الرابط التالي ففيه شرح مفصل عن مثال على كيفية عمل ذلك . | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:06 | |
| السلام عليكم أيها الاخوه , غالبا ما يكون لدينا جدول فيه أحد الحقول مرتبط بحقل آخر في جدول ثاني , و نريد أن نستعرض البيانات التابعه لهذا الحقل من الجدول الآخر ضمن نفس الجدول الذي نحن فيه , مثلا : لدينا قاعدة بيانات فيها جدولين : جدول اسماء الدبلومات الجامعيه - و يتألف من حقلين : رقم الدبلوم - اسم الدبلوم جدول حركة الطلاب و يحتوي الحقول التاليه رقم مسلسل - رقم الطالب - رقم الدبلوم الآن نريد من خلال حقل رقم الدبلوم من هذا الجدول استعراض اسم الدبلوم من الجدول الثاني و يتم ذلك كما يلي : ضع المؤشر على اسم الحقل المطلوب و هو هنا اسم الدبلوم ( بعد تغييره الى رقم ) , تجد في الأسفل مربعين الأول تنسيق – الثاني بحث , اضغط على زر البحث , ثم اختر مربع تحرير و سرد فتظهر مجموعة حقول من الحقل الثالث و الذي اسمه مصدر عناصر البيانات اضغط على النقاط الثلاث بجنب بعض فيظهر لك صفحة تصميم استعلام جديد , اختر منها الجدول دبلومات و اختر منه الحقلين : رقم الدبلوم – اسم الدبلوم ثم اغلق الاستعلام من مربع الاغلاق مباشرة و بدون حفظ , فتظهر رساله تفيد بأنه تم تغيير مصدر عناصر البيانات هل تريد الحفظ , اختر نعم , فيرجع المؤشر الى الحقول الأولى التي كنا فيها , من السطر الخامس , عدد الأعمده , اختر قيمتها تساوي 2 بدلا من 1 ثم من السطر السابع عرض الأعمده , اجعل القيمه كما يلي : SQL كود0cm;2.5cm ثم احفظ , الجدول افتح الآن جدول المواد في صفحة ادخال بيانات و حاول ادخال أي سجل جديد , تجد في حقل رقم الدبلوم يظهر لك اسم الدبلوم مباشرة مع أنه يحفظ رقم الدبلوم و فيما يلي بيان تفصيلي بالرسم للشرح أعلاه المرفقات : | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:11 | |
| و بالتطبيق على مثالنا نجد أن حقل CategoryID في جدول الأصناف تحول الى قائمه منسدله تحوي حقلين هما رقم المجموعه و اسم المجموعه لنفتح جدول الأصناف في وضع عرض البيانات , و لنحاول ادخال صنف جديد , نجد عند الوصول الى حقل رمز المجموعه أننا نختار اسم المجموعه ( و لاننسى أن اسم المجموعه هو للعرض فقط بينما البرنامج يتعامل مع قيمة رقم المجموعه ) و لنحاول تطبيق ذلك على حقل رقم المورد , اذ علينا انشاء جدول للموردين و سنجعل حقل رقم المورد في جدول الأصناف يختار اسم المورد من جدول الموردين بنفس الطريقه السابقه | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:12 | |
|
لنصمم الآن جدول الموردين Suppliers و الذي يتألف من الحقول التاليه : اسم العميل CompanyName بقية البيانات التفصيليه المشابهة لجدول العملاء مثل العنوان و الهاتف و اسم الموظف المسؤول .. الخ و يجدر الملاحظه أننا لانكتفي باسم المورد و البيانات الخاصه به , بل نضع رقما معرفا لذلك الجدول ( و هذه ناحيه يهملها البعض ) , اذ أن الرقم المعرف للمورد هو الذي سيتم التعامل معه طيلة البرنامج , أم اسم المورد فما هو الا بيان تفصيلي لهوية ذلك المورد , فاذا تغير اسم المورد مثلا من اسم شركه الى اسم شركة أخرى نتيجة تصفيه أو نقل ملكيه أو ماشابه , يسهل تغيير اسم المورد مع الحفاظ على جميع سجلات حركته السابقه . أما لو جعلنا اسم المورد هو المفتاح الرئيسي و هو الرابط مع الجداول الآخرى فسوف لن يتم التعرف على أي من حركاته السابقه في حال تغير اسمه . الآن نعود الى جدول البضائع , و ننشأ حقل رقم المورد SupplierID و نحوله الى قائمه كما فعلنا في الدرس السابق . بنفس الخطوات , ثم نفتح جدول البضائع في وضع ادخال البيانات و عند الوصول الى حقل رقم المورد نجد يظهر لنا اسم المورد للاختيار منه يبقى لدينا حقلين في هذا الجدول و هما : رصيد الصنف في المستودع UnitsInStock الكميه تحت الطلب من هذا الصنف UnitsOnOrder و الحقيقه ليس هناك أي داعي لوجود هذين الحقلين , لسببين : الأول : حسب القاعده الآولى التي شرحناها في بناء الجداول الحقول المحسوبه ( أي التي تعتمد قيمتها على قيمة حقل آخر ) تستخرج من خلال معادله رياضيه في النموذج أو من خلال استعلام , و لاداعي لعمل حقل لها ضمن الجدول الثاني : حتى لو تم عمل حقل لها في الجدول , فان قيمتها لن تتحدث الا من خلال كود في النموذج يتم تفعيله في زمن ادخال بيانات الفاتوره , و لكن لو عاد اي شخص للجدول فانه سيتمكن من تغيير تلك القيمه بدون أي قيد أو شرط لذلك سنحاول ان شاء الله استخراج قيمة رصيد الصنف - الكميات تحت الطلب لدى وصولنا الى النماذج . درسنا القادم سيكون حول تصميم جدول الطلبيات باذن الله , و ليضع كل منكم تصوره حول هذا الجدول ريثما نبدأ الدرس التالي عمليا الطلبيات تتم على الشكل التالي : يقوم مندوب المبيعات أو الموظف بتسجيل بيانات الطلبيه من العميل مباشره , بحيث يضع في بيانات الطلبيه المعلومات التاليه : اسم العميل - عنوانه - تاريخ الطلبيه - التاريخ المطلوب لشحن الطلبيه - تاريخ تسليم الطلبيه اسم وكيل الشحن - عنوانه - الأصناف المطلوبه - الكميات - سعر الوحده - قيمة الصنف القيمة الاجماليه للفاتوره - الخصم - أضافات ( ضرائب و رسوم ) - القيمة الصافيه للفاتوره نلتقي في الدرس القادم ان شاء الله
| |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:13 | |
| هذا الملف الكامل لقاعدة البيانات NorthWind لمن لم يتمكن من تحميله من الأكسس علما بأنه موجود من القائمه الرئيسيه للأكسس - أدوات - أمثله لقواعد البيانات المرفقات : | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:15 | |
| موضوع كيفية تصميم جدول الطلبيات في الحقيقه اذا تأملنا التوصيف السابق ذكره في الدرس الأخير عن كيفية عمل الطلبيات نلاحظ أننا نحتاج أن تكون لكل طلبية عميل سجل مستقل , أي أن التصنيف هنا سيسير حسب رقم الطلبية و الذي سيكون هو المفتاح الرئيسي , و سنحتاج للحقول التاليه رقم مسلسل للطلبيه OrderID رقم العميل CustomerID رقم - و سيتم تحويله الى قائمه و يربط مع رقم العميل في جدول العملاء تاريخ الطلبيه OrderDate التاريخ المطلوب للتسليم لدى العميل RequiredDate تاريخ الشحن ShippedDate شركة الشحن ShipVia , و عليه يتوجب انشاء جدول خاص لشركات الشحن يتكون من رقم مسلسل - اسم الشركه الشاحنه - بعض البيانات التفصيليه مثل العنوان .. الخ اسم الموظف الذي قام بتسجيل بيانات الطلبيه EmployeeID , و عليه أيضا نحتاج انشاء جدول خاص بالموظفين يتنكون من رقم مسلسل - اسم الموظف - بعض التفاصيل الأخرى و مهمتكم الآن هي انشاء كل من جدولي الشركات الشاحنه Shippers , و جدول الموظفين Employees و من ثم عمل الجدول المبسط للطلبيات و الذي يتكون من البيانات السابقة الذكر بعد اضافة حقلي رقم الشركه الشاحنه ShipVia - رقم الموظف EmployeeID الى ذلك الجدول . مع أن الجداول كلها مصممه و جاهزه في المثال لديكم , الا أن التصميم من قبلكم أولا بأول سيؤدي الى زيادة مهارتكم في تصميم الجداول و خاصة فيما يتعلق بتحويل الحقل الى قائمة اختيار ستصبح شيئا بسيطا بالنسبه لمن يصمم بنفسه . لقاؤنا في الدرس القادم بمشيئة الله لتصميم تلك الجداول | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:18 | |
| الآن لنبني جدول شركات الشحن Shippers , يتألف هذا الجدول من الحقول التاليه رقم مسلسل ShipperID اسم الشركه CompanyName رقم الهاتف Phone أما جدول الموظفين Employees فيتكون من الحقول التاليه رقم مسلسل EmployeeID بالنسبه للأسماء ممكن نجعلها في حقل واحد , لكن الأفضل و من أجل عمليات البحث يتم تقسيمها الى حقلين أو ثلاثة ( الاسم الأول – اللقب – اسم الأب ) و يمكن أن ندمج تلك الأسماء مع بعض في حقل واحد من خلال استعلام , و سيأتي شرح ذلك بعد اسطر الاسم الأول FirstName الاسم الثاني LastName الوضع الوظيفي Title , و من الأفضل هنا عمل جدول مستقل للوضع الوظيفي Title بحيث يتكون من رقم مسلسل - اسم الوضع الوظيفي , ثم يعمل له ربط على جدول الموظفين على الحقل title توجد حقول اضافيه كثيره للموظفين عباره عن بيانات شخصيه مثل العنوان و الهاتف و الجنسيه ,, الخ يمكن اضافتها جميعا حسب ماورد في الملف , لكن يهمنا هنا شرح ثلاثة حقول من جدول الموظفين , الأول حقل الملاحظات Notes , و هذا يتم تنسيقه على اساس مذكره memo لكي يتسع لحجم كبير من الكتابه الثاني : حقل صورة الموظف Photo , في حال أردنا استعراض صورة الموظف من على مجلداتنا نعمل الآتي : 1-تنسيق حقل الصوره على اساس كائن اتباط تشعبي OLE OBJECT 2-يتم تخزين مسار الصوره من على الكمبيوتر في حقل الصوره , فلو كان لدينا مثلا صورة موجوده على المستندات كما يلي C:\MY DOCUMENTS\MyPhoto نضع المسار الكامل في حقل الصوره في الجدول , و بهذا يتم حفظ هذا المسار و استدعاؤه تلقائيا من خلال النموذج 3- لدينا حقل الاشاره الى ReportsTo , أي مدير الموظف , و هذا الاسم موجود ضمن جدول الموظفين أصلا , و سنأخذ قيمته من جدول الموظفين , أي سنحوله الى قائمه كما تعلمنا في الحقول الممائله السابقه , لكن هنا يختلف شي واحد و هو أننا سنشير الى حقل الاسم الكامل للموظف أي الاسم الأول و الأخير في حقل واحد , اثناء تحويل الحقل الى قائمه نعمل استعلام , صح ؟ طيب في صفحة الاستعلام هذه سنضيف حقل جديد اسمه name و نجعل قيمته كما يلي
SQL كود Name: [LastName] & ", " & [FirstName] و نجعل هذا الحقل الجديد هو الحقل الثاني في الاستعلام بحيث يكون هو الظاهر لنا أثناء اختيار اسم الموظف ثم نغلق الاستعلام و نجد أن مصر الصف للحقل report to هو
SQL كود SELECT Employees.EmployeeID, [LastName] & ", " & [FirstName] AS Name FROM Employees ORDER BY Employees.LastName, Employees.FirstName; نفتح الجدول و نجد أن الاسم الكامل للموظف يظهر لنا | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:20 | |
| لنلقي مزيدا من الضوء على كيفية دمج الحقلين : الاسم الأول و الاسم الأخير في المعادله السابقه نبدأ بنفس الخطوات التي سبق شرحها أثناء عملية تحويل الحقل الى قائمة اختيار , حيث نضع المؤشر على اسم الحقل ثم ننتقل الى خصائص الحقل في الأسفل لدينا General – Lookup من Lookup نحول ال Display Contral من Check Box الى Combo Box ثم ننتقل الى حقل Row Source نضغط الأزرار الثلاثة على يمينه فتفتح لنا صفحة تصميم استعلام جديد – نختار منها جدول الموظفين نفسه ( حيث أن اسم المدير المطلوب ادراج اسمه هو موظف فعليا و اسمه موجود في جدول الموظفين ) . الآن نختار في الحقل الأول للاستعلام رقم الموظف كحقل معرف , نجعل الحقل الثاني في الاستعلام فارغا , ثم نختار الحقلين الاسم الأول و الاسم الأخير في الحقلين الثالث و الرابع من الاستعلام . الآن اذا كان الموظف اسمه الأول أحمد و الثاني حسن , نريد دمج هذين الاسمين ليكونا في حقل واحد قيمته أحمد حسن بدلا من أن يكونا في حقلين . الحل يكون بدمج قيمتي الحقلين في حقل جديد و ليكن اسمه Name سيأخذ مكانه في الحقل الثاني الفارغ من الاستعلام و يأخذ قيمة دمج الحقلين التاليه الآن لنجيب على بعض الأسئله التي قد تخطر ببال أحدنا : أولا : كيف تم الدمج بين الحقلين ؟ الجواب : اذا أردنا دمج حقلين معناها أن قيمة جديده ستنشأ من خلال هذا الدمج غير موجوده في الجدول , اذا سنعطيها تسميه جديده أي حقل جديد لكن هذا الحقل ضمن الاستعلام و ليس حقلا من الجدول , ثم نسند اليه القيمه الجديده و علامة الاسناد هي SQL كود: مثلا لو كان لدينا حقلين Quantity , Price و نريد معرفة القيمه Value طبعا المعادله الأساسيه الرياضيه هي : Value=Quantiti * Price لكن في الاستعلام اذا أردنا تسمية حقل جديد فلابد من اسناد قيمه اليه و اشارة الاسناد هي علامةSQL كود: و تكون معادلة ادراج القيمه كمايلي : SQL كودValue:Quantiti * Price علامة & تقوم بدمج أي حقلين أو أكثر ( يمكن دمج عدة حقول في حقل واحد ) لكن بشرط أن هذا الدمج يكون من خلال الاستعلام أو النموذج أو التقرير و لكن لايمكن أن يكون في الجدول مطلقا . مثال لنختار ملف بيانات صغير غير ملف NorthWind ( الملف المرفق ) نجعل فيه الجدول Address فيه اسماء الآشخاص الثلاثيه ( الأول – الثاني – الثالث ) و رقم الهاتف و رمز المنطقه ) , ننشآ الاستعلام PhoneNumbers لدمج الحقلين رقم الهاتف و رمز المنطقه , طبعا سنضطر الى تسمية حقل جديد و ليكن FullPhone و نستخدم علامة & لدمج قيمتي الحقلين كما يلي : SQL كودFullPhone: [code] & [phone] نشغل الاستعلام و نلاحظ كيف تم الدمج لو أردنا ادراج علامة فصل بين الحقلين - لابد من وضعها بين الحقلين رمز المنطقه و الهاتف كما يلي SQL كودSeparetPhone: [code] & "-" & [phone] لماذا ؟ نلاحظ أن الاضافه على المعادله التي قبلها هي علامة - , و طالما أن هذه عباره عن نص و ليس رقم لذلك كان لابد من وضعها بين علامة " " , جربوا دمج الأسماء , الأول مع الثاني يكون : SQL كودSName: [firstname] & [midname] نلاحظ أن الاسمين دمجا مع بعض تماما , و نحتاج الى مسافه بينهما , اذا : SQL كودS1Name: [firstname] & " " & [midname] الان نريد دمج الأسماء الثلاثه مع بعض SQL كودTName: [firstname] & " " & [midname] & " " & [LATname]
نعود الى مثالنا في قاعدة NorthWind نجد أنه لأجل معرفة الاسم الكامل للمدير نضع SQL كودName: [LastName] & ", " & [FirstName]
أما لماذا وضعناه في الحقل الثاني و ليس الثالث أو الرابع مثلا ؟ جوابه بعد قليل . نغلق الاستعلام الذي أنشأناه لاختيار اسم المدير فيعود بنا المؤشر الى صفحة تصميم الحقل Reportto نجد الحقل الثالث في الاستعلام هو مصدر الصف RowSource أي جملة الاستعلام الذي تم انشاؤه سابقا . بعده نجد حقل Bound Column و هذا يعبر عن ترتيب الحقل في الاستعلام الذي يجب أن يعطي قيمة الحقل الاساسيه في الجدول أي Reportto هذا الحقل سيأخذ قيمته من قيمة الحقل EmployeeID في الاستعلام و ترتيبه الأول , لذلك نضع الرقم واحد عند هذا الحقل لو كنا نريد مثلا وضع قيمة الحقل الثاني في الاستعلام ( و هذا خطأ و لكن للمثال فقط ) لكان يجب أن نضع الرقم 2 في حقل Bound Column و لو كنا نريد أن نضع قيمة الاسم الأول أ ي العمود الثالث في الاستعلام لكان يجب وضع القيمه 3 و هكذا بعد حقل Bound Column لدينا الحقل Column Count و هذا يقول لك كم عمودا تريد أن يظهر لديك عندما تفتح القائمه التي سيتم انشاؤها , ؟ اذا أردنا فقط رقم الموظف لكان يجب وضع الرقم 1 , و اذا كنا نريد الحقلين الأول و الثاني أي رقم الموظف و الاسم الكامل نضع الرقم 2 , و اذا أردنا أول ثلاثة أعمده نختار 3 و هكذا . العمود الذي بعده اسمه Column Head أي هل تريد أن يظهر لك اسم العمود من القائمه أم لا ؟ يعني اذا اخترت رقم الموظف و اسمه , هل تريد عند فتح القائمه أن يظهر لك الأرقام و الاسماء فقط اختر لا , و اذا أردت أن يظهر لك راس العمود و تحته الأرقام و الأسماء اختر نعم الحقل التالي Coulmn Width كم تريد عرض كل حقل من الحقول المختاره في الاستعلام يمكنك أن تختار العرض المطلوب لكل حقل و بين كل قيمه علامة فاصله منقوطه ; مثلا لو اخترت 2.5cm فهذا يدل على قيمة أول حقل و هو رقم الموظف أي سيظهر حقل رقم الموظف بهذا العرض و بعده بقية الحقول المختاره نختار 0cm للدلاله على أننا لانريد اظهار رقم الموظف أي نريد فقط أن يظهر لنا حقل الاسم الكامل , لو كان لدينا ثلاثة حقول و نريد اظهار الثالث فقط نجعل القيمه كما يلي : 0cm; 0cm و هكذا المرفقات : | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:21 | |
| الآن نعود الى ما كنا بصدده قبل درسين و هو انشاء جدول الطلبيات , حيث اضطررنا للعروج قليلا عن ذلك الجدول بهدف تصميم جدولي شركات الشحن – الموظفين , للاستفاده منهما في تصميم حقلي شركات الشحن و رقم الموظف . سنضيف الآن الى جدول الطلبيات حقلا باسم EmployeeID و يحول الى قائمه و يأخذ قيمه من رقم الموظف في جدول الموظفين و الثاني ShipVia و يأخذ قيمته من رقم شركة الشحن في جدول شركات الشحن و بذلك يكون لدينا جدول الطلبيات Orders مكونا مما يلي : رقم مسلسل للطلبيه OrderID رقم العميل CustomerID تاريخ الطلبيه OrderDate التاريخ المطلوب للتسليم لدى العميل RequiredDate تاريخ الشحن ShippedDate رقم الموظف EmployeeID الشاحن ShipVia
سؤال , هل هذا الجدول كاف لتسجيل بيانات طلبية مبيعات ؟ طبعا لا , ينقص شي مهم جدا ألا و هو الأصناف المراد تحضيرها للبيع , و لكن كيف ستدخل هذه الأصناف في جدول الطلبيات ؟ من السهل أن نقول : نضيف حقلا لاسم الصنف الى جدول الطلبيات و حقلا آخر للكمية المطلوبه و حقلا ثالثا لسعر الوحده . حسنا و لكن ماذا اذا كانت الفاتورة تتكون من صنفين أو ثلاثة , سنضيف لكل صنف ثلاثة حقول آخرى , طيب ماذا لو كانت الطلبيه مؤلفة من ألف صنف مثلا , هل سنضيف ثلاثة آلاف حقل للجدول ؟ هذا الحل غير مجدي و غير مقبول أيضا من الناحية البرمجيه , اذ أنه في مثل هذه الحاله حيث طالما عدد الحقول غير محدد لذا من الأنسب اللجوء الى طريقه أخرى تستوعب ادخال عدد غير محدود من الأصناف على نفس هذه الفاتوره , و ذلك عن طريق انشاء جدول آخر فرعي لجدول الطلبيات و ليكن اسمه Order Details و هنا ستدخل الأصناف عبر هذا الجدول سجلا بسجل و ليس حقلا بحقل كما كان حلا غير مقبول . سيتكون جدول Order Details من الحقول التاليه : رقم الصنف ProductID رقم , و سيتحول الى قائمه و يأخذ قيمته من حقل رقم الصنف في جدول الأصناف الكميه Quantity سعر الوحده UnitPrice الخصم الفرعي على الصنف Discount اجمالي الصنف و الذي هو عباره عن الكميه مضروبا بسعر الوحده لن يكون حقلا من الجدول , اذ أن قيمته غير ثابته و تتأثر بتغير كل من حقلي الكميه و سعر الوحده , لذلك سيتم استنتاج القيمه بواسطة انشاء مربع نص في نموذج الطلبيه تسند اليه معادلة القيمه , لنتخيل شكل ادخال الأصناف على الطلبيه من خلال نموذج الطلبيات , لنأخذ مثلا شكل أي فاتوره من أي متجر نشتري منه , نجد لدينا غالبا ثلاثة أقسام للفاتوره , قسم الترويسه و فيها بيانات مثل اسم المتجر و عنوان المحل و رقم الفاتوره و تاريخها و اسم الزبون , ثم يوجد قسم جدولي لتسجيل بيانات الأصناف و كمياتها و سعر الوحده و اجمالي الصنف , و تذيل الفاتورة بمجموع عام للقيمه مضافا اليها نفقات أخرى مثل ضرائب أو تكلفة نقل ,, الخ ثم صافي قيمة الفاتوره , و ختم المتجر و على هذا الأساس سيتم عمل نموذج الطلبيات ( و الذي بنفس الوقت سيكون فاتورة العميل في حال الشحن ) , بحيث البيانات التفصيليه في ترويسة الفاتورة سيكون مصدرها جدول الطلبيات Orders بينما القسم الجدولي و الخاص بأصناف الفاتورة سيكون مصدر بياناته الجدول Order Details و هذا مايعبر عنه بالنموذج الفرعي و الذي سيتم الحديث عنه لاحقا , الآن سؤال , لنفرض أننا لانقوم بادخال البيانات عن طريق النموذج و انما عن طريق الجداول مباشرة سنقوم بداية بادخال البيانات الخاصة بترويسة الفاتورة رقم 340 مثلا في جدول Orders حيث سيكون لدينا OrderID = 340 سنذهب الآن الى جدول Order Details لادخال البيانات الخاصة بأصناف نفس الطلبيه , سندخل رقم الصنف و الكميه و سعر الوحده , طبعا هذا الجدول معبأ ببيانات أصناف تعود لطلبيات سابقه , و لكن كيف سيتم الاشارة في ذلك الجدول الى أن هذه الأصناف تعود للطلبيه رقم 340 و ليس الى غيرها ؟ هنا لابد من انشاء حقل جديد ضمن جدول Order Details و يسمى OrderID يتم ربطه مع نفس اسم الحقل في الجدول Orders ( العلاقات سيتم التحدث عنا لاحقا ) و يأخذ نفس القيمه أي 340 في حال تم الربط بين الجدولين على الحقل OrderID اذا سيتم تلقائيا ربط اصناف كل طلبيه بالسجل الرئيسي في جدول الطلبيات , أي بمجرد استعلمنا عن الطلبيه رقم 340 سنعرف اصنافها تلقائيا على أساس نفس هذا الرقم في الجدول الفرعي . و سيتضح هذا الأمر بدقة أكثر في حال تصميم نموذج الطلبيات و النموذج الفرعي له | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:22 | |
|
قبل الانتقال الى التصميمات نلاحظ مايلي : في الجدول Categories على سبيل المثال لدينا الحقل CategoryID و هو الرقم المعرف لمجموعة الصنف , و كما ذكرنا في ملاحظه سابقه , كثير من الأخوه يختار مباشرة في مثل هذه الحاله اسم المجموعه و معلومات عنها دون أن يضع الرقم المعرف , و الرقم المعرف أفضل لنواحي الفهرسه و التصنيف و الفرز . و نجعل هذا الرقم مفتاحا أساسيا , يعني أن هذا الرقم هو الذي سيتم عليه عمليات الفهرسه و الفرز و كذلك فان من خصائص المفتاح الأساسي أنه لايقبل التكرار و هكذا نلاحظ بالنسبه لباقي الجداول لدينا الحقول CustomerID , EmployeeID , OrderID , ProductID , ShipperID , SupplierID لكن لدينا في الجدول Order Details مفتاحين أساسيين هما OrderID , ProductID لماذا ؟ الحقيقه أن الحقل OrderID يمكن أن يتكرر في هذا الجدول , اذ أنه عند تعبئة بيانات عدة اصناف لنفس الطلبيه فان رقم الطلبيه سيتكرر معنا في كل سجل جديد تابع لهذا الطلبيه , و لكن تم اضافة المفتاح الرئيسي الثاني و الذي هو رقم الصنف ProductID حتى يمنع تكرر ادخال نفس الصنف أكثر من مره في طلبيه واحده و هذا هو سبب جعل مفتاحين رئيسيين في جدول واحد يمكننا أن نصع أكثر من مفتاحين رئيسييين في جدول واحد حسب الحاله التي لانرغب التكرار فيها . مثلا : لو كنا لانمانع في أن يتكرر رقم الصنف في الطلبيه الواحده و لكن بشرط أن يكون سعر الوحده مختلفا مثلا , هنا نضع ثلاثة مفاتيح رئيسيه و هي رقم الطلبيه – رقم الصنف – سعر الوحده , و هكذا
| |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:27 | |
|
عدل سابقا من قبل المدير العام في الإثنين 7 يناير - 21:39 عدل 1 مرات | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:30 | |
| و لتطبيق هذا الشرح , حمل الملف المرفق و فيه بشكل رئيسي جدولين هما : المؤلفين Authores - الكتب Books في جدول الكتب لدينا حقل رقم المؤلف و يأخذ قيمته من رقم المؤلف في جدول المؤلفين جدول المؤلفين يتكون من ثلاثة سجلات , و جدول الكتب يتكون من خمسه سندع هذين الجدولين بدون أي علاقة بينهما , و ننشأ الاستعلام 1 نجد نتيجة الاستعلام لدينا 15 سجلا , أي 3 * 15 بمعنى أن كل سجل من جدول الكتب تم تكراره بحسب عدد سجلات المؤلفين , و ذلك لأنه لاتوجد علاقة بين الجدولين الآن لنحافظ على هذين الجدولين و ننسخهما أربعة مرات في كل مره تختلف شكل العلاقه و ذلك للتوضيح فقط . الحاله الثانيه الجدولين 1Authores - 1Books و سننشى بينهما علاقه , طبعا العلاقه المفروض أن تكون بين حقلين متطابقين في التعريف ( نوع البيانات – رقم الى رقم – نص الى نص و هكذا ) , ستكون العلاقه بين رقم المؤلف في كلا الحقلين ( البعض يخطى و يجعل العلاقه بين رقم المؤلف و اسم المؤلف ! )
نعمل الاستعلام 2 بين الجدولين , نجده يتألف من خمسة سجلات فقط , و ذلك بسبب انشاء علاقه بين الجدولين منعت تكرار السجلات بينهما . الآن هذه العلاقه غير مقيده , بمعنى أنه لو فتحنا جدول المؤلفين 1Authores وعدلنا قيمة حقل رقم المؤلف في السجل الثالث و جعلنا قيمتها 4 بدلا من 3 , يقبل التعديل , و لكن هذا التعديل لن ينعكس على جدول الكتب 1Books , و لبيان ذلك نفتح ذلك الجدول و نجد أن حقل رقم المؤلف في السجل الثالث أصبح فارغا و هو الذي كان يحوي سابقا القيمة 3 و لو عدنا الآن الى جدول المؤلفين و أعدنا القيمه من 4 الى 3 كما كانت , نجد تعود القيمه الى جدول الكتب . الآن لنحاول حذف سجل المؤلف رقم 3 بكامله من جدول المؤلفين , نجد أيضا أن السجل الثالث في جدول الكتب اختفت فيه قيمة حقل رقم المؤلف . الآن لو أردنا عمل قيد على العلاقه بين الجدولين بحيث تمنع التعديل أو الحذف في جدول المؤلفين حتى لاتنعكس على جدول الكتب , نلجأ الى النوع الثاني من العلاقات
بحيث لو جربنا حذف أي سجل من سجلات جدول المؤلفين أو تعديل رقمه لن يقبل هذا التعديل طالما وجدت سجلات مرتبطه به في جدول الكتب . لو كنا نريد السماح بتعديل رقم المؤلف بشرط أن ينعكس هذا التعديل تلقائيا على السجلات التابعه له في جدول الكتب نلجأ الى النوع الثالث من العلاقات
الآن لنحاول تغيير رقم المؤلف في جدول المؤلفين 3Authores من القيمه 3 الى 4 نجد أن السجل الثالث في جدول الكتب تغيرت قيمته تلقائيا الى القيمه الجديده 4 لكن لوأردنا حذف المؤلف بكامله من جدول المؤلفين لن يقبل الحذف بسب منع الحذف في العلاقه لذلك نذهب الى تصميم العلاقه , الجدول 4Authores و نضع اشارة صح على السماح بحذف السجلات المرتبطه و نحفظ التعديل
ثم نحاول حذف السجل 3 بكامله من جدول المؤلفين , نجد أنه تم حذف السجل الثالث من جدول الكتب الذي كان يعود لذلك المؤلف . المرفقات :
| |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:45 | |
| طبعا قبل شرح كيفية تصميم العلاقات بين جداول قاعدة NorthWind لابد من الاشاره الى أن العلاقه تكون بين حقلين من جدولين - يكون لهما نفس نوع البيانات , أي لاتربط حقل نصي مع حقل رقمي , أو حقل له تنسيق رقم صحيح مع حقل له تنسيق رقم مزدوج و هكذا - أحد الحقلين يفضل أن يكون مفتاحا رئيسيا
بتأمل تصميم العلاقات بين جداول قاعدة NorthWind نجد أن شكل العلاقه مثلا بين الجدولين Products – Categories على حقل رقم الشريحه في كلا الجدولين أي CatigoruID يأخذ الشكل الثاني أي تقييد بمعنى أن كل صنف يتم ادخال بياناته من جديد لابد من ملْ حقل رقم الشريحه فيه , و لكن لم يتم اختيار تتابع التحديث أو تتابع الحذف , أي الشكلين الثالث و الرابع من العلاقات المشروحه في الدرس السابق و ذلك لمنع المستخدم من تغيير رقم الشريحه أو الغاؤها طالما أن هناك أصنافا تتبع هذ الشريحه و كذلك الحال شكل بقية العلاقات حيث يربط : جدولي الموردين و الأصناف , على حقل رقم المورد في كلا الجدولين جدولي الأصناف و تفصيل الطلبيات , على حقل رقم الصنف في كلا الجدولين جدولي الطلبيات و الموظفين , على حقل رقم الموظف في كلا الجدولين جدولي الطلبيات و شركات الشحن , على حقل رقم الشاحن في كلا الجدولين جدولي الطلبيات و العملاء , على حقل رقم العميل في كلا الجدولين , مع ملاحظة أنه هنا تم اختيار نوع العلاقه الثالثه أي السماح بتعديل كود العميل في جدول العملاء , وينتقل هذا التأثير الى جدول الطلبيات بحيث يتم تعديل كل طلبيات هذا العميل حسب رقمه الجديد , و طبعا مع عدم السماح بحذف رقم العميل , لأنه في هذه الحالى سيؤدي الى حذف طلبياته كامله , و هذا خطأ و ذلك لأنه محاسيبا سيتم تسجيل كل الطلبيات بقيمها و حركاتها في المستودع , ففي حال الغاء التعامل مع هذا العميل لا يجب حذف سجله من جدول العملاء لأن ذلك سيؤدي الى حذف سجلات محاسبيه و قيود مخزنيه تؤدي الى خلل في أرصدة المستودع و في الميزان المحاسبي لذلك اذا كنا نريد الغاء هذا العميل من لائحة التعامل , يفضل اضافة حقل صح أو خطأ الى جدول العملاء , فاذا رغبنا بعدم استمرار التعامل معه يتم التأشير على حقل عدم التعامل و بالتالي لايدرج اسمه ضمن العملاء الفعالين ( هذا يتم عن طريق استعلام ) العلاقه الأخيره و هي بين جدولي الطلبيات و تفضيل الطلبيات , الربط على رقم الطلبيه في كلا الجدولين , و هنا نختار تتابع الحذف , اي مثلا لو اردنا الغاء طلبيه فيجب الغاء تفصيل طلبياتها من جدول تفصيل الطلبيات , و الا ستكون هناك أصناف وهميه تخرج من المستودع لطلبيع ملغاة , لذلك نختار تتابح الحذف , ففي حال الغاء طلبيه تلغى تلقائيا كل الصناف التي سجلت لها على جدول تفصيل الطلبيات .
| |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:47 | |
| طبعا الخطوه التاليه في الدروس هي شرح أنواع الاستعلامات , الجدول , اي جدول يحتوي كامل المعلومات المدخله فيه , فلو أخذنا على سبيل المثال جدول الطلبيات , سيحتوي بعد فترة عددا كبيرا من السجلات , و لكن لو أردنا معرفة فقط الطلبيات الخاصه بالعميل رقم 4 , علينا بالاستعلام , نعمل استعلام نختار فيه جدول الطلبيات , نجد في صفحة تصميم الاستعلام في الأسفل بعد اسماء الحقول نجد معايير , هنا نضع رقم العميل في معيار الحقل رقم العميل ثم نشغل الاستعلام فتظهر لنا البيانات الخاصه بالعميل رقم 4 فقط و لو أردنا معرفة الطلبيات في تاريخ 01/01/2005 مثلا , نضع في حقل معايير الحقل رقم الطلبيه تاريخ 01/01/2005 , تظهر لنا البيانات الخاصه بذلك التاريخ , و هكذا و للاستعلامات أنواع عديده سنشرحها ان شاء الله حال الطلب , و لكني أرتأي أن ابدأ بالنماذج البسيطه حيث سيتم بواسطتها ادخال البيانات , و أي نموذج يستدعي وجود استعلام سنخرج قليلا عن موضوع النماذج و نشرح الاستعلام . و لنبدأ بشرح النماذج البسيطه و نأخذ على سبيل المثال نموذج العملاء و كيفية تصميمه من الصفحه الرئيسيه لقاعدة البيانات – نماذج , نختار جديد ثم معالج النماذج
في اسفل تلك القائمه يوجد سهم لاختيار الجدول الذي سنبني عليه النموذج , نفتحه و نختار منه جدول العملاء ثم موافق
هنا تظهر لائحة الحقول التي يحتويها الجدول , و علينا اختيار الحقول التي نرغب أن تكون في النموذج و هذا الاختيار للعرض فقط , اي أننا غير ملزمين باختيار جميع الحقول , سنختار فقط الحقول التي نرغب أن نتعامل معها أي التي سندخل فيها البيانات , و لنفرض هنا أننا اخترنا جميع الحقول
هنا تظهر لنا عدة اشكال لتصميم النموذج , اما عمودي أو جدولي أو صفحة بيانات أو توافقي أو جدول محوري أو مخطط محوري , و سنختار النوع الأول المحوري
هنا تظهر لنا عدة اشكال للنموذج نستطيع اختيار أحدها , و يمكن تعديله لاحقا اذا ظهر أنه غير مناسب , و لنتوافق مع مثال قاعدة البيانات سنختار الشكل InterNational
و هنا يطلب تسمية النموذج الذي نرغب و يأخذ تسميه افتراضيه هي نفس تسمية الجدول , و لنكن نحرص أن لانضع فراغات بين الأسماء اذا كان الاسم مركب مثل CustomerSubform ثم انهاء
هذا النموذج بشكله المبسط , و سنشرح فيه بعض التنسيقات الاضافيه لاحقا ان شاء الله | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 21:48 | |
| نفتح النموذج في وضع التصميم , نجده يتألف من ثلاثة أقسام : Form Header راس النموذج Detaild المحتويات FormFooter تذييل النموذج ضمن راس النموذج نجد عنوان النموذج Customers و في قسم المحتويات نجد الحقول التي اخترناها لتكون ضمن النموذج و سنعود الى هذا القسم بالتفصيل أما في التذييل فيمكن أن نضع حقول مثل مجموع , توقيت و تاريخ ,, الخ بالاطلاع على قسم المحتويات نجد كل حقل يتألف من مكونين , مربع عنوان و مربع نص مربع العنوان لايحتوي اي يبيانات و هو فقط للدلاله على اسم العنصر الذي يشير اليه مثل اسم العميل أما مربع النص فهو الذي يحتوي القيم المأخوذه من الجدول الأساسي نستطيع التحكم بخصائص مربع النص من خلال الآتي نضع المؤشر على مربع النص CompanyName اسم الشركه , ثم نضغط بالفأره باليمين نجد قائمة في نهايتها خصائص Properties
نضغط عليها فتفتح لنا قائمة بها عدة عناصر
الأول : تنسيق Format من خلال هذه القائمه نستطيع تنسيق الألوان و نمط الخط و تنسيق الأرقام و التاريخ .. الخ Format تنسيق شكل الأرقام و التاريخ فقط Decimal Places عدد الخانات العشريه Visisble ( مرئي ) القيمة الافتراضيه نعم نريده مرئي , لكن أحيانا نضطر لادراج مربعات نص لانريد اظهارها للمستخدم , لذلك نجعل قيمة هذا الحقل لا , فيبقى موجودا في النموذج وله حسابه لكن لن يظهر للمستخدم Display When هنا تحديد فيما اذا كنا نريد اظهار مربع النص دائما , أم عند الطباعه فقط . أو يظهر على الشاه فقط و يختفى في الطباعه Scroll Bar تثبيت زر سحب و افلات Can Grow هل النص قابل للتمدد ( اذا كانت البيانات أكبر من حجم مربع النص ) Can Shrink هل النص قابل للانكماش ( اذا كانت البيانات أصغر من حجم مربع النص ) Left – Top – Width – Hight للتحكم باحداثيات مربع النص ثم بعد ذلك مجموعة خصائص لتغيير نمط الخلفيه و الألوان .. الخ يمكنكم تنسيقها للحصول على مربعات نص جذابه . القائمه الثانيه Data بيانات هذه القائمه تحتوي : Control Source مصدر البيانات , نجد هنا أن قيمة هذا الحقل هي CompanyName في جدول العملاء , لو أردنا تغيير هذا الحقل يمكن ذلك , نفتح السهم بجانب الاسم و نجد أسماء بقية الحقول المختاره في النموذج ,نستطيع اختيار مثلا ContactName و بذلك سيعرض هذا الحقل اسم الشخص المراد الاتصال به بدلا من اسم الشركه , Input Mask قناع الادخال بالنسبه للتاريخ و الرقم Default Value القيمة الافتراضيه للحقل Validation Rule قاعدة التحقق من الصحه هنا بمجرد ادخال أي قيمه في هذا الحقل يتم اختبا رالقاعده , و تصلح هذه القاعده أكثر بالنسبه للأرقام و التواريخ Validation Text الرساله التي ستظهر في حال مخالفة القاعدة Enabled أحيانا نضطر لعرض مربعات نص غير متاحه للمستخدم , أي لاظهار قيمه معينه دون أن يكون للمستخدم حق التأشير عليها أو الوصول اليها , لذلك نجعل قيمته لا Locked مقفل , في حال أردنا منع المستخدم من التعديل على هذا الحقل حتى و لو كان متاحا نجعل قيمة هذا الحقل نعم الأحداث Events , و هذه قائمه هامه جدا و تتعلق بالأوامر التي نريد اعطاؤها للبرنامج لتنفيذ ها عند حدث معين مثل عند النقر على زر مربع النص أو عند الخروج منه أو قبل الدخول اليه ,, الخ , و هذا بحد ذاته مبحث مستقل له تعليمات و قواعد خاصه . قائمة Other مختلف وتتضمن عدة حقول , و ما يهمنا منها هو حقل الاسم Name و يجب الانتباه جيدا الى هذا الحقل اذ أنه هو الذي يتعامل معه النموذج , القيمة الافتراضيه لهذا الحقل هي نفس قيمة مصدر بيانات العنصر , أي CompanyName لكن لو قمنا مثلا بتغيير مصدر بيانات هذا النص الى ContactName كما فعلنا سابقا , فان أي قيمه تدخل في هذا الحقل , تدخل في حقل ContactName في الجدول , لكن النموذج سيتعامل مع هذا الحقل على أساس أنه CompanyName , و هذا أمر هام جدا لدى تنفيذ أوامر الفيجوال بيسيك , فالحرص يكون على اسم الحقل و ليس على مصدر البيانات . و اخيرا قائمة الكل All و تتضمن جميع القوائم السابقه | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 23:37 | |
| الاستعلامات
الاستعلامات هي أهم كائنات قواعد البيانات ، من خلال الاستعلام يمكنك عمل الكثير كما سنري بإذن الله
و لدينا عشرة أنواع من الاستعلامات خمسة منها لها واجهة رسومية يمكن استخدامها لتكوين الاستعلام باستخدام الفأرة أو كتابة الاستعلام يدويا و الخمسة الأخري سنكتب فيها جمل ال SQL مباشرة و الأصل فى الاستعلامات أنها جميعا فى النهاية عبارة عن جمل و تعبيرات SQL
و قبل أن نعرض الي تعريف الانواع العشرة ، تعالوا نتعرف الي ما تعنيه هذه الحروف الثلاثة SQL
Structured Query Language
السي كيو ال هو لغة التعامل مع قاعدة البيانات
و ينقسم الي 3 أقسام
لغة معالجة البيانات DML Data manipulation language
لغة تعريف البيانات DDL Data Definition language
لغة التحكم فى البيانات DCL Data Control language
لغة معالجة الييانات
ادراج بيانات تحديث بيانات حذف بيانات استرجاع بيانات
لغة تعريف البيانات
هي إنشاء قاعدة البيانات
فى البداية كان يتم انشاء قاعدة البيانات باستخدام جمل SQL ثم بعد ظهور نظم ادارة قواعد البيانات مثل الاكسس أصبحت هذه العملية تتم من خلال واجهة رسومية سهلة الاستخدام قادرة علي انشاء و التحكم أيضا فى قواعد البيانات
و هذه اللغة مسئولة عن :
إنشاء جدول الغاء جدول تعديل جدول العلاقات
لغة التحكم
تتولي معالجة صلاحيات المستخدمين
و هذه العمليات أيضا أصبحت تتم من خلال الواجهة الرسومية لنظم ادارة قواعد البيانات
و نعود ثانية الي الأكسس : :d سنبدأ فى هذا الموضوع بتعريف أنواع الاستعلامات ، كتعريف عام قبل أن نعرض اليها بالتفصيل بإذن الله تعالي:
1. استعلامات الاختيار : select query 2. استعلامات الجداول المحورية : ؛Cross Tab Query 3. استعلام تحديث : Update Query 4. استعلام إضافة : Append Query 5. استعلام حذف : Delete Query 6. استعلام إنشاء جدول : Make Table Query 7. استعلامات التوحيد : Union Query 8. استعلامات التمرير : Pass-Trough Queries 9. استعلامات تعريف البيانات : Data definition queries 10. الاستعلامات الفرعية : Sub-query
استعلامات الاختيار : select query
تكوين مجموعة من السجلات المبنية علي جدول أو أكثر من بحيث تمثل كل الببيانات أو المجموعة من السحلات التي تحقق شروط معينة. بالاضافة الي امكانية التحكم فى ترتيب السجلات .
– مثل جميع الطلاب الذين تتعدي درجاتهم 90 و بلدهم القاهرة و عدد أيام الغياب لديهم أقل من خمسة – مع كون الشروط الثلاثة نخص بيانات مسجلة فى ثلاث جداول مختلفة.
و كما تكلمنا سابقا ، يمكن عمل ذلك باحدي طرق تصفية الجداول ، و لكن هنا سيكون لدينا كائن استعلام محفوظ ، يمكن استخدامه فى أي وقت .
أيضا يمكن استخدامه لتجميع البيانات التي تشترك فى خواص معينة ، أي تلخيص البيانات و في هذه الحالة يطلق عليها استعلام تجميع
استعلامات الجداول المحورية : ؛Cross Tab Query
و هي أداة تحليلية تستخدم لتحليل البيانات بناء علي الخاصية المطلوبة ، فيتم فيها تجميع البيانات التي تجمعها خاصية معينة و تحليلها بالنسبة لخاصية أخري و تقديم الاحصائية المناظرة
بمعني : لو لدينا بيانات عدد من الطلاب ، و تقديرهم و الجنسية ، و نريد احصائية تكون الصفوف فيها هي البلد و الأعمدة هي التقدير و محتويات الجدول عدد الطلاب الذين ينتمون الي كل بلد و كل تقدير أو مثلا بدلا من العدد نريد البيانات مجموع المصروفات المناظر ، أو أكبر تاريخ ميلاد لكل بلد و لكل تقدير فنحن نتحدث عن تطبيق مباشر للاستعلامات من نوع Cross Tab
استعلام تحديث : Update Query
تحديث كل أو بعض قيم بيانات فى جدول بشروط او بدون
استعلام إضافة : Append Query اضافة سجلات الي جدول بشرط و بدون
استعلام حذف : Delete Query حذف كل أو بعض السجلات من جدول بشرط أو بدون
استعلام إنشاء جدول : Make Table Query إنشاء جدول جديد يحوي بيانات مختارة
استعلامات السي كيو ال المحددة SQL Specific Queries
استعلامات التوحيد : Union Query
مثل استعلامات الاختيار ـ، و لكن تتميز عليها بامكانية توحيد أو ضم بينات أكثر من جدول فى نفس الحقل فمثلا لو لدينا جدول به أوامر البيع و آخر به أوامر التوريد ، و كلاهما به حقل رقم الامر و القيمة و أردنا أن ننشيء استعلام واحد يجمع بيانات الجدولين بحيث يكون به ثلاث حقول الاول يوضح نوع الامر و الثاني رقمه و الثالث القيمة و تكون القيمة موجبة فى حالة اوامر التوريد و سالبة فى حالة اوامر الصرف ، فنحن نتحدث عن تطبيق مباشر لاستعلامات التوحيد
استعلامات التمرير : Pass-Trough Queries
تستخدم لارسال أوامر بلغة اس كيو ال ، الي خادم قاعدة بيانات مباشرة من خلال ال ODBC ، و قد يكون لها مردود باعادة عرض سحلات و قد لا يكون لها ، و تفاصيل كتابة الاوامر فيها تعتمد علي قاعدة البيانات التي سنقوم بالتمرير اليها
و نمر سريعا علي تعريف ال ODBC :
Open Database Connectivity (ODBC): A standard method of sharing data between databases and programs. ODBC drivers use the standard Structured Query Language (SQL) to gain access to external data.)امكانية الاتصال بين قواعد البيانات ، و مشاركة البيانات بينها ، و تعتمد علي لغة الاستعلامات البنائية ( اس كيو ال) النمطية للتعامل مع البيانات
استعلامات تعريف البيانات : Data definition queries
و هي تستخدم لانشاء و حذف و تعديل الجداول و الفهارس
الاستعلامات الفرعية : Sub-query
و هو ليس نوع جديد ، و لكنه تطبيق لاستخدام استعلامات الاختيار ، و لكن هذه المرة لتعريف حقل أو معيار لحقل
و طبعا هذا تعريف عام ، كبداية للحديث ، و يلي ذلك عرض الموضوع بالتفصيل بإذن الله | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 23:41 | |
| إستعلامات الاختيار - 1 Select Queries - Part1
فى هذا الموضوع ستبدأ بإذن الله الحديث عن أول و اهم انواع الاستعلامات ،ـ و الاكثر استخداما الا و هو استعلام الاختيار Select Query و سنخصص له حلقتين بإذن الله و هذه اولاهما و محتوياتها كالتالي :
إنشاء استعلامات الاختيارمن وضع التصميم Creating Select Queries From Design View وضع عرض البيانات Datasheet View ترتيب السجلات Sorting Records وضع الشروط Conditions لقيم المستنتجة و اجراء الحسابات استخدام دالة داخل الاستعلام Using a Funcion in the Query تجميع أو تلخيص البيانات Grouping Records
و الموضوع من هنا و المثال المرفق : المرفقات :
الملف المرفق Q1.zip 20.67K 3638 عدد مرات التحميل
| |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 23:43 | |
| قبل ان نكمل باقي الأنواع بإذن الله لنستعرض سريعا هذه التصنيف من هنــــــــــا لنعرف أين نحن و ماذا تبقي لتغطية الاستعلامات بإذن الله | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| موضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) الإثنين 7 يناير - 23:45 | |
| | |
| | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | المدير العام
عدد الرسائل : 6594 السٌّمعَة : 7 نقاط : 6350 تاريخ التسجيل : 25/01/2007
| | | | | كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) | |
|
مواضيع مماثلة | |
|
| صلاحيات هذا المنتدى: | لاتستطيع الرد على المواضيع في هذا المنتدى
| |
| |
| |