مسجد وصيف دوت نت
أهلا وسهلا بك أخى وأختى فى منتديات مسجد وصيف دوت نت
يسعدنا دائما أن تكونوا معنا - تفضل بالتسجيل فى منتديات مسجد وصيف دوت نت
مسجد وصيف دوت نت
أهلا وسهلا بك أخى وأختى فى منتديات مسجد وصيف دوت نت
يسعدنا دائما أن تكونوا معنا - تفضل بالتسجيل فى منتديات مسجد وصيف دوت نت
مسجد وصيف دوت نت
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
مسجد وصيف دوت نت

منتدى خواطر وتعارف مسجد وصيف
 
الرئيسيةالرئيسية  البوابةالبوابة  التسجيلالتسجيل  أحدث الصورأحدث الصور  دخولدخول  

 

 كل شىء عن جداول قاعدة البيانات ( نموذج عملى )

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

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:04


الآن لنحاول بناء الجدول الثاني في الأهميه و هو جدول المنتجات Products
يمكن أن نتصور أنه يحتوي البيانات التاليه
اسم المنتج ProductName
التعبئه QuantityPerUnit
سعر الوحده UnitPrice
حد اعادة الطلب ReorderLevel
الصنف فعال ( لازال قيد التعامل أم تم الغاؤه ) Discontinued
الآن
لابد لنا من رقم معرف للصنف أي ProductID و هذا الحقل هو الذي سيتم
التعامل معه لاحقا كمعبر عن الصنف و هو الذي سيكون الرابط بين جدول الأصناف
و بقية الجداول
نريد اضافة حقل آخر و هو تصنيف المنتج أي الزمره التي
يتبع لها هذا المنتج اذا كان لدينا مجموعة كبيره من المنتجات و نريد
تصنيفها في مجموعات و ليكن هذا الحقل اسمه CategoryID
أحدنا سيتخيل أنه طالما أن المجموعات ستكون اسماء مثل ( ألبسه - مأكولات - مواد غازيه ,, الخ ) , اذا حقل رمز المجموعه سيكون نص ,
الأفضل أن نصمم جدولا خاصا للمجموعات ولنسمه Categories , يحتوي الحقول التاليه
رقم معرف للمجموعه و مفتاح رئيسي CategoryID
اسم المجموعه CategoryName
بعض الحقول الاضافيه مثل : الوصف - صورة
الآن
النقطه الهامه جدا هنا هي أننا في جدول المنتجات سنجعل حقل رمز
المجموعه رقما و ليس نصا و سيأخذ قيمته من حقل CategoryID في جدول
Categories و ليس من حقل
CategoryName و سيكون الربط بين جدولي الأصناف و المجموعات على حقل رقم المجموعه في كلا الجدولين اي CategoryID .
الآن
ليقل أحدنا اذا كنا نريد تعبئة بيانات صنف جديد في جدول الأصناف , و ليكن
مثلا لحوم , نريد تعبئة حقل رقم المجموعه و هي مجموعة اللحوم في جدول
المجموعات , ال CategoryID لهذه المجموعه هو 6 , هل كلما أردنا أن نعرف رقم
مجموعه لصنف يجب أن نفتح جدول المجموعات و نستخرج رقم تلك المجموعه ثم
نضعه في حقل معرف المجموعه للصنف ؟ هذا سيكون عملا مملا و شاقا ,
نستطيع
اختصار كل هذا بتحويل حقل CategoryID في جدول الأصناف الى قائمه تحوي
حقلين مأخوذين من جدول المجموعات و هما : CategoryID - CategoryName
حيث
سنستطيع بكل سهوله اختيار اسم المجموعه المناسب من هذه القائمه و عمل ذلك
مشروح على الرابط التالي ففيه شرح مفصل عن مثال على كيفية عمل ذلك .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:06

السلام عليكم
أيها الاخوه , غالبا ما يكون لدينا جدول فيه أحد الحقول
مرتبط بحقل آخر في جدول ثاني , و نريد أن نستعرض البيانات التابعه لهذا
الحقل من الجدول الآخر ضمن نفس الجدول الذي نحن فيه ,
مثلا : لدينا قاعدة بيانات فيها جدولين :
جدول اسماء الدبلومات الجامعيه - و يتألف من حقلين :
رقم الدبلوم - اسم الدبلوم
جدول حركة الطلاب و يحتوي الحقول التاليه
رقم مسلسل - رقم الطالب - رقم الدبلوم
الآن نريد من خلال حقل رقم الدبلوم من هذا الجدول استعراض اسم الدبلوم من الجدول الثاني
و يتم ذلك كما يلي :
ضع المؤشر على اسم الحقل المطلوب و هو هنا اسم الدبلوم ( بعد تغييره الى رقم ) , تجد في الأسفل مربعين
الأول تنسيق – الثاني بحث , اضغط على زر البحث , ثم اختر مربع تحرير و سرد فتظهر مجموعة حقول
من
الحقل الثالث و الذي اسمه مصدر عناصر البيانات اضغط على النقاط الثلاث
بجنب بعض فيظهر لك صفحة تصميم استعلام جديد , اختر منها الجدول دبلومات و
اختر منه الحقلين : رقم الدبلوم – اسم الدبلوم
ثم اغلق الاستعلام من
مربع الاغلاق مباشرة و بدون حفظ , فتظهر رساله تفيد بأنه تم تغيير مصدر
عناصر البيانات هل تريد الحفظ , اختر نعم , فيرجع المؤشر الى الحقول الأولى
التي كنا فيها ,
من السطر الخامس , عدد الأعمده , اختر قيمتها تساوي 2 بدلا من 1
ثم من السطر السابع عرض الأعمده , اجعل القيمه كما يلي :

SQL كود
0cm;2.5cm
ثم احفظ , الجدول
افتح
الآن جدول المواد في صفحة ادخال بيانات و حاول ادخال أي سجل جديد , تجد في
حقل رقم الدبلوم يظهر لك اسم الدبلوم مباشرة مع أنه يحفظ رقم الدبلوم
و فيما يلي بيان تفصيلي بالرسم للشرح أعلاه


المرفقات :




الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:11


و بالتطبيق على مثالنا نجد أن حقل CategoryID في جدول الأصناف تحول الى قائمه منسدله تحوي حقلين هما رقم المجموعه و اسم المجموعه
لنفتح
جدول الأصناف في وضع عرض البيانات , و لنحاول ادخال صنف جديد , نجد عند
الوصول الى حقل رمز المجموعه أننا نختار اسم المجموعه ( و لاننسى أن اسم
المجموعه هو للعرض فقط بينما البرنامج يتعامل مع قيمة رقم المجموعه )
و
لنحاول تطبيق ذلك على حقل رقم المورد , اذ علينا انشاء جدول للموردين و
سنجعل حقل رقم المورد في جدول الأصناف يختار اسم المورد من جدول الموردين
بنفس الطريقه السابقه

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:12







لنصمم الآن جدول الموردين Suppliers و الذي يتألف من الحقول التاليه :
اسم العميل CompanyName
بقية البيانات التفصيليه المشابهة لجدول العملاء مثل العنوان و الهاتف و اسم الموظف المسؤول .. الخ
و
يجدر الملاحظه أننا لانكتفي باسم المورد و البيانات الخاصه به , بل نضع
رقما معرفا لذلك الجدول ( و هذه ناحيه يهملها البعض ) , اذ أن الرقم المعرف
للمورد هو الذي سيتم التعامل معه طيلة البرنامج , أم اسم المورد فما هو
الا بيان تفصيلي لهوية ذلك المورد , فاذا تغير اسم المورد مثلا من اسم شركه
الى اسم شركة أخرى نتيجة تصفيه أو نقل ملكيه أو ماشابه , يسهل تغيير اسم
المورد مع الحفاظ على جميع سجلات حركته السابقه .
أما لو جعلنا اسم
المورد هو المفتاح الرئيسي و هو الرابط مع الجداول الآخرى فسوف لن يتم
التعرف على أي من حركاته السابقه في حال تغير اسمه .
الآن نعود الى جدول
البضائع , و ننشأ حقل رقم المورد SupplierID و نحوله الى قائمه كما فعلنا
في الدرس السابق . بنفس الخطوات , ثم نفتح جدول البضائع في وضع ادخال
البيانات
و عند الوصول الى حقل رقم المورد نجد يظهر لنا اسم المورد للاختيار منه
يبقى لدينا حقلين في هذا الجدول و هما :
رصيد الصنف في المستودع UnitsInStock
الكميه تحت الطلب من هذا الصنف UnitsOnOrder
و الحقيقه ليس هناك أي داعي لوجود هذين الحقلين , لسببين :
الأول
: حسب القاعده الآولى التي شرحناها في بناء الجداول الحقول المحسوبه ( أي
التي تعتمد قيمتها على قيمة حقل آخر ) تستخرج من خلال معادله رياضيه في
النموذج أو من خلال استعلام , و لاداعي لعمل حقل لها ضمن الجدول
الثاني :
حتى لو تم عمل حقل لها في الجدول , فان قيمتها لن تتحدث الا من خلال كود
في النموذج يتم تفعيله في زمن ادخال بيانات الفاتوره , و لكن لو عاد اي شخص
للجدول فانه سيتمكن من تغيير تلك القيمه بدون أي قيد أو شرط
لذلك سنحاول ان شاء الله استخراج قيمة رصيد الصنف - الكميات تحت الطلب لدى وصولنا الى النماذج .
درسنا القادم سيكون حول تصميم جدول الطلبيات باذن الله , و ليضع كل منكم تصوره حول هذا الجدول ريثما نبدأ الدرس التالي
عمليا الطلبيات تتم على الشكل التالي :
يقوم مندوب المبيعات أو الموظف بتسجيل بيانات الطلبيه من العميل مباشره , بحيث يضع
في بيانات الطلبيه المعلومات التاليه :
اسم العميل - عنوانه - تاريخ الطلبيه - التاريخ المطلوب لشحن الطلبيه - تاريخ تسليم الطلبيه
اسم وكيل الشحن - عنوانه - الأصناف المطلوبه - الكميات - سعر الوحده - قيمة الصنف
القيمة الاجماليه للفاتوره - الخصم - أضافات ( ضرائب و رسوم ) - القيمة الصافيه للفاتوره
نلتقي في الدرس القادم ان شاء الله

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:13



هذا الملف الكامل لقاعدة البيانات NorthWind لمن لم يتمكن من تحميله من الأكسس
علما بأنه موجود من القائمه الرئيسيه للأكسس - أدوات - أمثله لقواعد البيانات


المرفقات :



الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:15


موضوع كيفية تصميم جدول الطلبيات
في الحقيقه اذا تأملنا التوصيف السابق
ذكره في الدرس الأخير عن كيفية عمل الطلبيات نلاحظ أننا نحتاج أن تكون لكل
طلبية عميل سجل مستقل , أي أن التصنيف هنا سيسير حسب رقم الطلبية و الذي
سيكون هو المفتاح الرئيسي , و سنحتاج للحقول التاليه
رقم مسلسل للطلبيه OrderID
رقم العميل CustomerID رقم - و سيتم تحويله الى قائمه و يربط مع رقم العميل في جدول العملاء
تاريخ الطلبيه OrderDate
التاريخ المطلوب للتسليم لدى العميل RequiredDate
تاريخ الشحن ShippedDate
شركة
الشحن ShipVia , و عليه يتوجب انشاء جدول خاص لشركات الشحن يتكون من
رقم مسلسل - اسم الشركه الشاحنه - بعض البيانات التفصيليه مثل العنوان ..
الخ
اسم الموظف الذي قام بتسجيل بيانات الطلبيه EmployeeID , و عليه أيضا نحتاج انشاء
جدول خاص بالموظفين يتنكون من رقم مسلسل - اسم الموظف - بعض التفاصيل الأخرى
و
مهمتكم الآن هي انشاء كل من جدولي الشركات الشاحنه Shippers , و جدول
الموظفين Employees و من ثم عمل الجدول المبسط للطلبيات و الذي يتكون من
البيانات السابقة الذكر بعد اضافة حقلي رقم الشركه الشاحنه ShipVia - رقم
الموظف EmployeeID الى ذلك الجدول .
مع أن الجداول كلها مصممه و جاهزه
في المثال لديكم , الا أن التصميم من قبلكم أولا بأول سيؤدي الى زيادة
مهارتكم في تصميم الجداول و خاصة فيما يتعلق بتحويل الحقل الى قائمة اختيار
ستصبح شيئا بسيطا بالنسبه لمن يصمم بنفسه .
لقاؤنا في الدرس القادم بمشيئة الله لتصميم تلك الجداول

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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;
نفتح الجدول و نجد أن الاسم الكامل للموظف يظهر لنا

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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
و هكذا


المرفقات :





الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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 سنعرف اصنافها تلقائيا على أساس نفس هذا الرقم
في الجدول الفرعي .
و سيتضح هذا الأمر بدقة أكثر في حال تصميم نموذج الطلبيات و النموذج الفرعي له
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:22







قبل الانتقال الى التصميمات نلاحظ مايلي :
في الجدول Categories
على سبيل المثال لدينا الحقل CategoryID و هو الرقم المعرف لمجموعة الصنف ,
و كما ذكرنا في ملاحظه سابقه , كثير من الأخوه يختار مباشرة في مثل هذه
الحاله اسم المجموعه و معلومات عنها دون أن يضع الرقم المعرف , و الرقم
المعرف أفضل لنواحي الفهرسه و التصنيف و الفرز .
و نجعل هذا الرقم
مفتاحا أساسيا , يعني أن هذا الرقم هو الذي سيتم عليه عمليات الفهرسه و
الفرز و كذلك فان من خصائص المفتاح الأساسي أنه لايقبل التكرار
و هكذا نلاحظ بالنسبه لباقي الجداول لدينا الحقول CustomerID , EmployeeID , OrderID , ProductID , ShipperID , SupplierID
لكن لدينا في الجدول Order Details مفتاحين أساسيين هما OrderID , ProductID لماذا ؟
الحقيقه
أن الحقل OrderID يمكن أن يتكرر في هذا الجدول , اذ أنه عند تعبئة بيانات
عدة اصناف لنفس الطلبيه فان رقم الطلبيه سيتكرر معنا في كل سجل جديد تابع
لهذا الطلبيه , و لكن تم اضافة المفتاح الرئيسي الثاني و الذي هو رقم الصنف
ProductID حتى يمنع تكرر ادخال نفس الصنف أكثر من مره في طلبيه واحده و
هذا هو سبب جعل مفتاحين رئيسيين في جدول واحد
يمكننا أن نصع أكثر من مفتاحين رئيسييين في جدول واحد حسب الحاله التي لانرغب التكرار فيها .
مثلا
: لو كنا لانمانع في أن يتكرر رقم الصنف في الطلبيه الواحده و لكن بشرط أن
يكون سعر الوحده مختلفا مثلا , هنا نضع ثلاثة مفاتيح رئيسيه و هي رقم
الطلبيه – رقم الصنف – سعر الوحده , و هكذا

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:27





بعد أن فرغنا من تصميم الجداول ننتقل الآن الى بناء العلاقات بين هذه الجداول
و من أحب الاستزاده أكثر يمكنه مراجعة الدرس التالي بداية

العلاقات بين
الجداول




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

Spreadsheets
أكثر من قواعد البيانات ، هو اهمال التوصيات الخاصة بتصميم الجداول و العلاقات
بينها


و وضع معظم البيانات فى جدول واحد كبير


و مثال علي ذلك
الجدول فى الصورة التالية ، و هو مثال ممتاز للتصميم الخاطئ


و هذا الجدول
المقصود منه تسجيل حركة الدورات التدريبية ، أي الدورات التي حصل عليها كل موظف فى
الشركة


[ كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-85
أي أن الموظف
ذو الرقم المبين قد حضر دورة معينة و
التي كودها و عنوانها و تواريخها كما هو مبين


و لنلاحظ أن
اللون الأصفر يمثل بيانات دورة الاكسيل رقم 1 و التي تكررت بالكامل 5 مرات فى جدول
لم تتعد سجلاته عشرة سجلات فهل ترون هذا منطقي ؟؟



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



و الآن ما هي عيوب هذا التصميم ؟؟




  • تكرار المعلومات
    و استهلاك مساحة تخزينية لا داعي لها ، و يتطلب أيضا مجهود فى ادخال بيانات مكررة


  • صعوبة التغيير ،
    فلو أردت تعديل بيانات دورة ما فلابد من تعديلها فى سجلات كل من حضروها


  • إحتمال الخطأ في
    بيانات الدورة من سجل لآخر أثتاء الادخال


  • صعوبة الحذف ،
    ماذا لو أردت حذف دورة ما ؟


  • و أخيرا تحديث
    البيانات ، فى كم سجل يتقوم بتحديث تاريخ البدء لدورة معينة لة اردت تغييره





التصيم القياسي للجدول


للتغلب
علي المشاكل أعلاه يتم فصل الجدول الاصلي المسمي

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


و يكون شكل
الجدولان كالتالي



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-86

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-87
و بعمل
علاقة بينها يمكن الحصول علي استعلام يناظر الجدول الأصلي مثلما فى الصورة

query1





كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-88

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-89


و سنعرض هنا فى
هذا الموضوع للعلاقات و تكوينها ، أما الاستعلام فسيأتي دوره لاحقا بإذن الله




المهم هو أننا
استطعنا تفادي
الخمسة عيوب السابقة عن طريق فصل الجداول الي جداول قياسية
، مما يمنع
تكرار البيانات أو
يمنع ما
يطلق عليه ب
DATA
REDUNDANCY







و الآن سنتحدث عن أنواع العلاقات المختلفة :


هناك ثلاث أنواع من العلاقات بين الجداول



  1. علاقات من نوع ا الي
    متعدد ( رأس بأطراف - ولكن لا أحب هذه التسمية !! و أفضل
    متعدد)



  2. علاقات من نوع ا الي 1



  3. علاقات من نوع
    متعدد الي
    متعدد


و لكي يسهل علينا وصف العلاقات ، سنعرف
بالاضافة الي حقل المفتاح حقل آخر يسمي الحقل الغريب Foreign Key
و الموجود فى الجدول الرئيسي و الذي سيتم ربطه بحقل المفتاح فى جدول فرعي.







علاقات من نوع واحد الي
متعدد

هذا هو النوع لأعم من العلاقات و فيه
تكون القيم فى حقل المفتاح يناظرها قيمة أو أكثر فى الحقل الغريب
فى الجدول الرئيسي



و لكن أي قيمة فى الحقل
الغريب فى الجدول الرئيسي يناظرها قيمة واحدة فقط فى حقل المفتاح فى
الجدول الفرعي


شكل
العلاقة



علاقات من نوع واحد الي
واحد

و فيه تكون القيم فى حقل
الربط فى الجدول الثاني يناظرها قيمة واحدة فى الجدول الأول و
العكس صحيح



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


شكل
العلاقة




علاقات من نوع متعدد الي
متعدد

و فيه تكون القيم فى حقل
الربط فى الجدول الثاني يناظرها قيم عديدة فى الجدول الأول
و العكس صحيح



هذا جزء من ملف التعليمات
بالانجليزية



This type of
relationship is only possible by defining a
third table (called a
junction table) whose

primary key
consists of two fields — the

foreign keys
from both Tables A and B.





هذا النوع من العلاقات لا
يمكن حدوثه الا بتعريف جدول جديد يسمي جدول
الوصلة ، و يكون
المفتاح فى جدول الوصلة هو الحقلين الغريبين فى كلا الجدولين المراد
ربطهما بهذا النوع من العلاقات



A many-to-many
relationship is really two one-to-many relationships with a third table.




اذا العلاقة من نوع متعدد الي متعدد هي حقيقة علاقتين من
نوع واحد الي متعدد مع جدول ثالث



For
example, the Orders table and the Products table have a many-to-many
relationship that's defined by creating two one-to-many relationships to
the Order Details table. One order can have many products, and each
product can appear on many orders.



مثال : جدول الطلبيات و المنتجات بينهما علاقة من نوع
متعدد الي متعدد يتم عملها عن طريق جدول تفاصيل الطلبيات .



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




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


شكل
العلاقة





إنشاء العلاقات المختلفة :








من قائمة



Tools

نختار Relationships



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-24

يظهر مربع حوار لاختيار الجداول المتاحة
فى القاعدة ، و نختار الجدول ثم نضغط ADD



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



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-64

و ان أردنا إضافة جدول بعد ذلك نختار أي
منطقة خالية فى شاشة البيانات و نختار show Table




و لحذف جدول من لوحة العلاقات نختاره و نضغط


زر Delete




كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-74

تظهر الجداول فى لوحة الجداول بدون
علاقات



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-66

لبناء علاقة واحد الي متعدد



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


فيظهر مربع الحوار كما هو مبين للتأكيد علي الحقول
المختارة لانشاء العلاقة


والمسمي
مربع تحرير العلاقات



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-67

و بالضغط علي زر Create
أو إنشاء يتم انشاء العلاقة بين الجدولين كما فى الشكل




و هذا هو
شكل العلاقة من نوع واحد الي مالانهاية



شرحها



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-65


بالضغط علي زر
Create New
فى
مربع تحرير العلاقات
يظهر مربع الحوار التالي لكي نضيف منها علاقات جديدة مع جداول
أخري



و فيه يتم تحديد كل من اسم الجدول و الحقل
للحقول المراد ربطها



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-70


بالضغط علي
زر
Join Type فى
مربع تحرير العلاقات

يظهر مربع الحوار التالي لكي
نحدد
نوع العلاقة بين الجدولين من حيث تواجد البيانات علي طرفي العلاقة

و هي اما:



  1. اختيار أن تظهر البيانات الموجودة علي
    الطرفين فقط دون الموجودة فى أحدهما فقط

  2. إختيار اظهار كل ما فى الجدول الرئيسي و ما يناظرها
    فقط من بيانات فى الفرعي

  3. إختيار اظهار كل ما فى الجدول الفرعي و ما يناظرها
    فقط من بيانات فى الرئيسي







كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-71

نتيجة الحالة 1


كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-68

نتيجة الحالة 2


كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-72

نتيجة الحالة 3


كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-73

هذا مثال علي
شكل علاقة من نوع واحد الي واحد





شرحها



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-25

و هذا مثال علي
شكل العلاقة من نوع متعدد اللي متعدد كما




شرحها



كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-69








Referential
Integrity


التكامل المرجعي للبيانات ، هو نظام
عبارة عن مجموعة قواعد يتبعها الأكسس لضمان أن العلاقة بين جدولين علاقة سليمة و
أنك ال تمسح أو تغير البيانات الخاصة بالعلاقة بدون قصد .


هذا يعني أن هناك علاقة ارتباطية
بين بيانات الجدولين عن طريق الحقلين فى طرفي العلاقة و باختيار هذا الخيار ، فاننا
نعني الآتي :


1- طرف العلاقة فى الجدول الرئيسي هو
حقل المفتاح أو علي الأقل حقل فريد فى الجدول الرئيسي (
Courses
)


2- الحقل الآخر الذي يمثل الطرف الثاني
من العلاقة فى جدول

EMPCOURSES
له نفس نوع البيانات


3-الجدولان موجودان فى نفس قاعدة
البيانات




و يتم تفعيل هذا الخيار بالنقر علي
العلاقة و اختيار خصائص من قائمة الماوس
المختصرة


ثم اختيار
Enforce referential Integrity





كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) L2-67


و باختيار هذا الخيار لا يمكنك
إضافة
دورة اسمها

xxxx
فى
جدول تسجيل حركات الدورات الا اذا كان هناك بالفعل دورة مسجلة بهذا الاسم فى جدول
الدورات ن و هذا يعتبر قيد مفيد جدا يقلل الخطأ فى ادخال البيانات


,و
بعد اختيار

Enforce referential
Integrity


يمكننا الاختيار بين
تطبيق الخيارات
الآتية





تفعيل
توالي ارتباطات التحديث للعلافة



باختيار
Cascade update related field


فبتحديث كود الدورة فى جدول ادورات ، يتم
التحديث لكل السجلا ت المناظرة فى جدول حركات الدورات





تفعيل
توالي ارتباطات الحذف للعلاقة



باختيار
Cascade delete related field


فبحذف دورة من جدول الدورات ، يتم حذف كل
الشجلات المناظرة لهذه الدورة فى جدول تسجيل حركة الدورات






و هكذا نكون أكملنا الحديث حول العلاقات و
أنواعها و طرق إنشاءها



و سيكون لنا حديث آخر بإذن الله حول الأسلوب
العلمي لبناء الجداول و العلاقات .


عدل سابقا من قبل المدير العام في الإثنين 7 يناير - 21:39 عدل 1 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:30


و لتطبيق هذا الشرح , حمل الملف المرفق و فيه بشكل رئيسي جدولين هما :
المؤلفين Authores - الكتب Books
في جدول الكتب لدينا حقل رقم المؤلف و يأخذ قيمته من رقم المؤلف في جدول المؤلفين
جدول المؤلفين يتكون من ثلاثة سجلات , و جدول الكتب يتكون من خمسه
سندع
هذين الجدولين بدون أي علاقة بينهما , و ننشأ الاستعلام 1 نجد نتيجة
الاستعلام لدينا 15 سجلا , أي 3 * 15 بمعنى أن كل سجل من جدول الكتب تم
تكراره بحسب عدد سجلات المؤلفين , و ذلك لأنه لاتوجد علاقة بين الجدولين
الآن لنحافظ على هذين الجدولين و ننسخهما أربعة مرات في كل مره تختلف شكل العلاقه و ذلك للتوضيح فقط .
الحاله
الثانيه الجدولين 1Authores - 1Books و سننشى بينهما علاقه , طبعا
العلاقه المفروض أن تكون بين حقلين متطابقين في التعريف ( نوع البيانات –
رقم الى رقم – نص الى نص و هكذا ) , ستكون العلاقه بين رقم المؤلف في كلا
الحقلين ( البعض يخطى و يجعل العلاقه بين رقم المؤلف و اسم المؤلف ! )
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Relat1

نعمل الاستعلام 2 بين الجدولين , نجده يتألف من خمسة سجلات فقط , و ذلك بسبب انشاء علاقه بين الجدولين منعت تكرار السجلات بينهما .
الآن
هذه العلاقه غير مقيده , بمعنى أنه لو فتحنا جدول المؤلفين 1Authores
وعدلنا قيمة حقل رقم المؤلف في السجل الثالث و جعلنا قيمتها 4 بدلا من 3 ,
يقبل التعديل , و لكن هذا التعديل لن ينعكس على جدول الكتب 1Books , و
لبيان ذلك نفتح ذلك الجدول و نجد أن حقل رقم المؤلف في السجل الثالث أصبح
فارغا و هو الذي كان يحوي سابقا القيمة 3
و لو عدنا الآن الى جدول المؤلفين و أعدنا القيمه من 4 الى 3 كما كانت , نجد تعود القيمه الى جدول الكتب .
الآن
لنحاول حذف سجل المؤلف رقم 3 بكامله من جدول المؤلفين , نجد أيضا أن السجل
الثالث في جدول الكتب اختفت فيه قيمة حقل رقم المؤلف .
الآن لو أردنا
عمل قيد على العلاقه بين الجدولين بحيث تمنع التعديل أو الحذف في جدول
المؤلفين حتى لاتنعكس على جدول الكتب , نلجأ الى النوع الثاني من العلاقات
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Relat2
بحيث لو جربنا حذف أي سجل من سجلات جدول المؤلفين أو تعديل رقمه لن يقبل هذا التعديل طالما وجدت سجلات مرتبطه به في جدول الكتب .
لو
كنا نريد السماح بتعديل رقم المؤلف بشرط أن ينعكس هذا التعديل تلقائيا على
السجلات التابعه له في جدول الكتب نلجأ الى النوع الثالث من العلاقات
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Relat3
الآن
لنحاول تغيير رقم المؤلف في جدول المؤلفين 3Authores من القيمه 3 الى 4
نجد أن السجل الثالث في جدول الكتب تغيرت قيمته تلقائيا الى القيمه الجديده
4
لكن لوأردنا حذف المؤلف بكامله من جدول المؤلفين لن يقبل الحذف بسب
منع الحذف في العلاقه لذلك نذهب الى تصميم العلاقه , الجدول 4Authores و
نضع اشارة صح على السماح بحذف السجلات المرتبطه و نحفظ التعديل
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Relat4
ثم نحاول حذف السجل 3 بكامله من جدول المؤلفين , نجد أنه تم حذف السجل الثالث من جدول الكتب الذي كان يعود لذلك المؤلف .


المرفقات :









الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:45


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

بتأمل تصميم العلاقات بين جداول قاعدة NorthWind نجد أن شكل العلاقه مثلا بين الجدولين
Products – Categories على حقل رقم الشريحه في كلا الجدولين أي CatigoruID
يأخذ الشكل الثاني أي تقييد بمعنى أن كل صنف يتم ادخال بياناته من جديد
لابد من ملْ حقل رقم الشريحه فيه , و لكن لم يتم اختيار تتابع التحديث أو
تتابع الحذف , أي الشكلين الثالث و الرابع من العلاقات المشروحه في الدرس
السابق و ذلك لمنع المستخدم من تغيير رقم الشريحه أو الغاؤها طالما أن
هناك أصنافا تتبع هذ الشريحه
و كذلك الحال شكل بقية العلاقات حيث يربط :
جدولي الموردين و الأصناف , على حقل رقم المورد في كلا الجدولين
جدولي الأصناف و تفصيل الطلبيات , على حقل رقم الصنف في كلا الجدولين
جدولي الطلبيات و الموظفين , على حقل رقم الموظف في كلا الجدولين
جدولي الطلبيات و شركات الشحن , على حقل رقم الشاحن في كلا الجدولين
جدولي
الطلبيات و العملاء , على حقل رقم العميل في كلا الجدولين , مع ملاحظة أنه
هنا تم اختيار نوع العلاقه الثالثه أي السماح بتعديل كود العميل في جدول
العملاء , وينتقل هذا التأثير الى جدول الطلبيات بحيث يتم تعديل كل طلبيات
هذا العميل حسب رقمه الجديد , و طبعا مع عدم السماح بحذف رقم العميل , لأنه
في هذه الحالى سيؤدي الى حذف طلبياته كامله , و هذا خطأ
و ذلك لأنه
محاسيبا سيتم تسجيل كل الطلبيات بقيمها و حركاتها في المستودع , ففي حال
الغاء التعامل مع هذا العميل لا يجب حذف سجله من جدول العملاء لأن ذلك
سيؤدي الى حذف سجلات محاسبيه و قيود مخزنيه تؤدي الى خلل في أرصدة المستودع
و في الميزان المحاسبي
لذلك اذا كنا نريد الغاء هذا العميل من لائحة
التعامل , يفضل اضافة حقل صح أو خطأ الى جدول العملاء , فاذا رغبنا بعدم
استمرار التعامل معه يتم التأشير على حقل عدم التعامل و بالتالي لايدرج
اسمه ضمن العملاء الفعالين ( هذا يتم عن طريق استعلام )
العلاقه
الأخيره و هي بين جدولي الطلبيات و تفضيل الطلبيات , الربط على رقم الطلبيه
في كلا الجدولين , و هنا نختار تتابع الحذف , اي مثلا لو اردنا الغاء
طلبيه فيجب الغاء تفصيل طلبياتها من جدول تفصيل الطلبيات , و الا ستكون
هناك أصناف وهميه تخرج من المستودع لطلبيع ملغاة , لذلك نختار تتابح الحذف ,
ففي حال الغاء طلبيه تلغى تلقائيا كل الصناف التي سجلت لها على جدول تفصيل
الطلبيات .







الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:47


طبعا الخطوه التاليه في الدروس هي شرح أنواع الاستعلامات ,
الجدول
, اي جدول يحتوي كامل المعلومات المدخله فيه , فلو أخذنا على سبيل المثال
جدول الطلبيات , سيحتوي بعد فترة عددا كبيرا من السجلات , و لكن لو أردنا
معرفة فقط الطلبيات الخاصه بالعميل رقم 4 , علينا بالاستعلام , نعمل
استعلام نختار فيه جدول الطلبيات , نجد في صفحة تصميم الاستعلام في الأسفل
بعد اسماء الحقول نجد معايير , هنا نضع رقم العميل
في معيار الحقل رقم العميل ثم نشغل الاستعلام فتظهر لنا البيانات الخاصه بالعميل رقم 4 فقط
و
لو أردنا معرفة الطلبيات في تاريخ 01/01/2005 مثلا , نضع في حقل معايير
الحقل رقم الطلبيه تاريخ 01/01/2005 , تظهر لنا البيانات الخاصه بذلك
التاريخ , و هكذا
و للاستعلامات أنواع عديده سنشرحها ان شاء الله حال الطلب ,
و
لكني أرتأي أن ابدأ بالنماذج البسيطه حيث سيتم بواسطتها ادخال البيانات , و
أي نموذج يستدعي وجود استعلام سنخرج قليلا عن موضوع النماذج و نشرح
الاستعلام .
و لنبدأ بشرح النماذج البسيطه و نأخذ على سبيل المثال نموذج العملاء و كيفية تصميمه
من الصفحه الرئيسيه لقاعدة البيانات – نماذج , نختار جديد ثم معالج النماذج
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form1

في اسفل تلك القائمه يوجد سهم لاختيار الجدول الذي سنبني عليه النموذج , نفتحه و نختار منه جدول العملاء ثم موافق
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form2
هنا
تظهر لائحة الحقول التي يحتويها الجدول , و علينا اختيار الحقول التي نرغب
أن تكون في النموذج و هذا الاختيار للعرض فقط , اي أننا غير ملزمين
باختيار جميع الحقول , سنختار فقط الحقول التي نرغب أن نتعامل معها أي التي
سندخل فيها البيانات , و لنفرض هنا أننا اخترنا جميع الحقول
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form3

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form4

هنا تظهر لنا عدة اشكال لتصميم النموذج , اما عمودي أو جدولي أو صفحة بيانات أو توافقي
أو جدول محوري أو مخطط محوري , و سنختار النوع الأول المحوري


كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form5
هنا
تظهر لنا عدة اشكال للنموذج نستطيع اختيار أحدها , و يمكن تعديله لاحقا
اذا ظهر أنه غير مناسب , و لنتوافق مع مثال قاعدة البيانات سنختار الشكل
InterNational


كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Form6

و
هنا يطلب تسمية النموذج الذي نرغب و يأخذ تسميه افتراضيه هي نفس تسمية
الجدول , و لنكن نحرص أن لانضع فراغات بين الأسماء اذا كان الاسم مركب مثل
CustomerSubform ثم انهاء

هذا النموذج بشكله المبسط , و سنشرح فيه بعض التنسيقات الاضافيه لاحقا ان شاء الله







الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 21:48


نفتح النموذج في وضع التصميم , نجده يتألف من ثلاثة أقسام :
Form Header راس النموذج
Detaild المحتويات
FormFooter تذييل النموذج
ضمن راس النموذج نجد عنوان النموذج Customers
و في قسم المحتويات نجد الحقول التي اخترناها لتكون ضمن النموذج و سنعود الى هذا القسم بالتفصيل
أما في التذييل فيمكن أن نضع حقول مثل مجموع , توقيت و تاريخ ,, الخ
بالاطلاع على قسم المحتويات نجد كل حقل يتألف من مكونين , مربع عنوان و مربع نص
مربع العنوان لايحتوي اي يبيانات و هو فقط للدلاله على اسم العنصر الذي يشير اليه مثل اسم العميل
أما مربع النص فهو الذي يحتوي القيم المأخوذه من الجدول الأساسي
نستطيع التحكم بخصائص مربع النص من خلال الآتي
نضع المؤشر على مربع النص CompanyName اسم الشركه , ثم نضغط بالفأره باليمين نجد قائمة في نهايتها خصائص Properties
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) FormPorb2
نضغط عليها فتفتح لنا قائمة بها عدة عناصر
كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) FormProb3
الأول : تنسيق 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 و تتضمن جميع القوائم السابقه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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


و هو ليس نوع جديد ، و لكنه تطبيق لاستخدام استعلامات الاختيار ، و لكن هذه المرة لتعريف حقل أو معيار لحقل




و طبعا هذا تعريف عام ، كبداية للحديث ، و يلي ذلك عرض الموضوع بالتفصيل بإذن الله

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 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 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:42


الجزء االثاني - محتوبات الموضوع :


إنشاء إستعلام إختيار باستخدام المعالج
تمثيل العلاقات المختلفة بجمل الاس كيو ال
استعلام الجداول المحورية
إٍستعلام إيجاد القيم المتكررة
إستعلام إيحاد القيم الغير متماثلة
المجموعات فى الأكسس



الموضوع من هنا
و المثال التطبيقي مرفق


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q2.zip 71.14K
    3878 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:43


قبل ان نكمل باقي الأنواع بإذن الله
لنستعرض سريعا هذه التصنيف من هنــــــــــا
لنعرف أين نحن و ماذا تبقي لتغطية الاستعلامات بإذن الله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:44







من هنـــــــــــــــــــــــا


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


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q3.zip 117.46K
    3262 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:45







من هنـــــــــــــــــــــــا


و مرفق المثال


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q4.zip 62.72K
    3761 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:45







من هنا




مرفق المثال


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q5.zip 80.55K
    3980 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:46


من هنا


مرفق المثال


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q6.rar 15.49K
    2158 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:47


استعلام انشاء جدول





من هنا
و المثال :


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q7.rar 13.29K
    2109 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:48


شرح استعلامات التوحيد



من هنا


مرفق المثال


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q8.rar 62.51K
    2749 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
المدير العام

المدير العام


عدد الرسائل : 6594
السٌّمعَة : 7
نقاط : 6350
تاريخ التسجيل : 25/01/2007

كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Empty
مُساهمةموضوع: رد: كل شىء عن جداول قاعدة البيانات ( نموذج عملى )   كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Emptyالإثنين 7 يناير - 23:49


باقي أنواع استعلامات الاس كيو ال
SQL - Specific Queries



من هنا


مرفق المثال


المرفقات :





  • كل شىء عن جداول قاعدة البيانات ( نموذج عملى ) Zip
    Q9.rar 67.87K
    2809 عدد مرات التحميل


الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://ibnimos.yoo7.com
 
كل شىء عن جداول قاعدة البيانات ( نموذج عملى )
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» Runtime GetDataBack for FAT 3.32لااسترجاع البيانات
» من قلب الغربه :نموذج امتحان سعودي واجابات الطلبه !!!!!!!
» تتيح اللجنة العليا للانتخابات قاعدة بيانات الناخبين للاستعلام
» اليوم السابع ينشر نموذج بطاقة إبداء الرأى فى استفتاء تعديل الدستور
» ويكيليكس: مبارك طلب من البشير إنشاء قاعدة عسكرية مصرية بالسودان لضرب أي سدود إثي

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
مسجد وصيف دوت نت :: منتدى البرامج التعليميه-
انتقل الى: