delphi4arab منتديات دلفي للعرب
سؤال بثقنية الربط في قواعد البيانات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : سؤال بثقنية الربط في قواعد البيانات (/showthread.php?tid=9477)

الصفحات: 1 2


سؤال بثقنية الربط في قواعد البيانات - Delphi4Us - 01-06-2018

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

[صورة: e88ca35ad73efa5.jpg]

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


RE: سؤال بثقنية الربط في قواعد البيانات - محمد عبد العزيز - 01-06-2018

إقتباس :ماهي المساؤي او المشاكل التي ممكن ان تحدث بحال الربط بين جدولين عن طريق الاسم
ماذا يحدث عند تغيير الاسم ؟ بعد شهرين اكتشف المستخدم انه كتب الاسم خطأ وعليه تحريره


RE: سؤال بثقنية الربط في قواعد البيانات - Delphi4Us - 01-06-2018

إقتباس :ماذا يحدث عند تغيير الاسم ؟ بعد شهرين اكتشف المستخدم انه كتب الاسم خطأ وعليه تحريره
سيتم تحديث الاسم بالجداول الطرفية نتيجة العلاقة CasCade
كما سيتم حذف البيانات الخاصة به في الجداول الطرفية نتيجة العلاقة  CasCade


RE: سؤال بثقنية الربط في قواعد البيانات - Mr.DOS - 02-06-2018

سلام عليكم
شيئ اكيد الربط يكون رأس لاطراف (الحقل الغريب) حتى يسهل عليك عمل استعلامات عديدة وبالطرق المنهجية
ناهيك عن تحديث ما قد يطرأ على الجدول كما تفضل الاستاذ كا تغير في الاسم ؟ 


إقتباس :سيتم تحديث الاسم بالجداول الطرفية نتيجة العلاقة CasCade
كما سيتم حذف البيانات الخاصة به في الجداول الطرفية نتيجة العلاقة  CasCade

وماذا عن العمليات والاحداث ؟ هل سيتم حذفها ايضا


RE: سؤال بثقنية الربط في قواعد البيانات - Delphi4Us - 02-06-2018

إقتباس :وماذا عن العمليات والاحداث ؟ هل سيتم حذفها ايضا
ما اقصده هو ان نفس الشئ الذي سيحدث بحال الربط بحقل ID هو ما سيحدث بحال الربط بحقل الاسم

العمليات والاحداث حذفها من عدمه هذه يقررها المبرمج .

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


RE: سؤال بثقنية الربط في قواعد البيانات - S.FATEH - 02-06-2018

السلام عليكم خبراء قواعد البيانات لا ينصحون باستخدام الحقول التي ستتغير حقول اساسية


RE: سؤال بثقنية الربط في قواعد البيانات - ferrero - 02-06-2018

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


RE: سؤال بثقنية الربط في قواعد البيانات - Delphi4Us - 02-06-2018

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

إقتباس :[size=small]على أمل (أن لا يتغير) [/size]
هذه لم افهمها هل تقصد ان يعدل المبرمج في رأيه ويقرر الغاء حقل الاسم مثلا بعد عمل المنظومة وامتلائها بالبيانات ...؟

إقتباس :[size=small]السلام عليكم خبراء قواعد البيانات لا ينصحون باستخدام الحقول التي ستتغير حقول اساسية[/size]
كيف ستتغير ارجوا التوضيح .
حقل نصي سيتغير فيما بعد الى رقمي او كيف ...؟
كلكم تقولون حقول تتغير يبدوا انني الوحيد الاطرش بهذه الزفة .


RE: سؤال بثقنية الربط في قواعد البيانات - ferrero - 02-06-2018

نحن نعلم تماما ان اسماء مثل
فلفل ـ طماطم ، جزر .. الخ ، فهي اسماء فريدة وستبقى على حالها بهذا الاسم ولن تتفير لا اليوم ولا بعد 100 قرن
اذا كان الحقل المراد تعيينه كمفتاح اساسي على هذا المنوال (يمكن ، بل ينصح بإستخدامه كمفتاح اساسي)،
لكن اسماء أشخاص أو شركات قد تتشابه وقد تتغير كذلك ولكنها نادرة والاحتمال وارد
مثلا YAHOO اصبحت او ستصبح ALTABA


RE: سؤال بثقنية الربط في قواعد البيانات - Delphi4Us - 02-06-2018

إقتباس :[size=small]مثلا YAHOO اصبحت او ستصبح ALTABA[/size]
حسنا اين المشكلة ، عندما تغير في الاسم الى ALTABA سوف يتغير بمكان مكان في قاعدة البيانات
المهم طالما ان الحقل هذا لن يقبل ALTABA مرتين 

على العموم الاجابة بعد  البحث وهو ما كنت ابحث عنه من معلومة

الحقل الرقمي INT دائماً وأبداً سيأخذ حجم 4 bytes

بينما الحقل النصي , مثلاً (nvarchar(128 سيأخذ 254 bytes الضعف.

كل هذة البيانات سيقوم محرك قاعدة البيانات أين كان SQL Server أو Access بإدارتها.
وإدارة هذة البيانات طبعاً حجم البيانات عامل مؤثر في سرعة معالجتها ,
طبعاً معالجة 4 bytes أسرع بكثير جداً من معالجة 254 bytes.
وأيضاً المقارنة بين 4 bytes وبين 4 bytes أخرى ,,, أسرع بكثير من المقارنة بين 254 bytes وبين 254 bytes أخرى.

عند إجراء الإستعلامات , المقارنة بين رقمين من نوع INT فعال جداً وسريع. 

بينما المقارنة بين حقلين نصيين سيكلف الكثير من الوقت والكثير من الإجراءات على الـ CPU ( وحدة المعالجة المركزية ) , وذلك لأن النصوص تعتمد على الـ ( collations )

دائماً نوع البيانات INT ( يفوز  ) في :
1 - Duration : أقل في مدة الإجراء
2 - CPU : أقل إستخدام لوحدة المعالجة المركزية , 
( في قواعد البيانات التي عليها حركة عمل كثيرة ومزدحمة بالإتصالات والإجراءات ) سيكون عامل مهم أن تفكر في التصميم الصحيح حتى لا يكون الـ CPU مشغول كثيراً في معالجة الإجراءات , لأن أي إستعلام يأخذ حيز من قدرة الـ CPU فإذا كانت هناك إستعلامات كثيرة تنفذ في نفس الوقت , الـ CPU سيتأخر في تنفيذ الإستعلامات إذا لم يتم تصميمها بالشكل المناسب, سيكون هناك طابور من الإستعلامات يقوم الـ CPU بتنفيذها واحد تلو الآخر.


في الجداول الضخمة والتي تعتبر فعلاً كبيرة جداً , هنا يتم إعتبار INT الخيار الأفضل ,
لكن في الجداول الصيغرة والمتوسطة , لن يكون هناك فرق كبير , عندها يمكن  أن لا نفكر في قوة الأداء والذهاب إلى ما يسهل علينا العمل بدون التفكير في قوة الأداء