![]() |
|
سؤال بثقنية الربط في قواعد البيانات - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : سؤال بثقنية الربط في قواعد البيانات (/showthread.php?tid=25198) |
سؤال بثقنية الربط في قواعد البيانات - viv - 02-06-18 السلام عليكم ورحمة الله وبركاته اين الاكادميين . ماهي المساؤي او المشاكل التي ممكن ان تحدث بحال الربط بين جدولين عن طريق الاسم ، اسم الموظف مثلا او اسم القسم وما الى ذلك . طبعا الفائدة فيما بعد ستكون في بساطة الاستعلام الذي لن يحتاج الى الاتصال باكثر من جدول لجلب البيانات وبالتالي في سرعة تنفيذه كذلك حسب ما قراءت ان هذا من شانه ان يجعل هناك تراكم للبيانات لان الحقل النصي يحجز بايتات اكثر من الحقل الرقمي . هل هذا هو فقط السبب ...؟ ام ان هناك اسباب أخرى
RE: سؤال بثقنية الربط في قواعد البيانات - عبدالله الدوسري - 02-06-18 وعليكم السلام ورحمة الله وبركاته ماهي المساؤي او المشاكل التي ممكن ان تحدث لو كان السؤال ما هو الفرق في قوة الأداء بين الطريقتين لكن أفضل طبعاً الربط من خلال حقل رقمي INT أفضل بـ 10 مراحل إذا تم الربط بواسطة حق نصي , سيتم عمل ( index page ) فهرس بهذا الحقل , مثلاً الحقل النصي يحتوي على 20 حرف هذا يعني الضعف في المساحة يعني يساوي 40 bytes لكل سجل الحقل الرقمي 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 ) , لا أعرف كيف أشرح الـ collations ولكن هي مثل أنواع اللغات أو تعريف هيئة الحروف والرموز , يمكنك أن تفهمها على أنها خريطة تبين السياسة المتبعة من الحروف , عندك الإنجليزي والعربي و الصيني والياباني وجميع لغات العالم تقريباً لها collations خاص , أيظاً حالت الأحرف وحساسيتها واللهجة ( يؤثر في قوت الأداء بشكل عام ). يعني لو قمت ربط جدول بآخر من خلال حقل نصي ( سيكون مفهرس , وفهرسة الحقول النصية ستأخذ حجم أكبر ) لو قمت بعمل إستعلام عن سجل إبن بواسطة الحقل النصي للأب ، سيتم مقارنة الحقل النصي في جميع السجلات في الجدول الإبن والتي تطابق الحقل النصي في السجل الأب. دائماً نوع البيانات INT ( يفوز ) في : 1 - Duration : أقل في مدة الإجراء 2 - CPU : أقل إستخدام لوحدة المعالجة المركزية , ( في قواعد البيانات التي عليها حركة عمل كثيرة ومزدحمة بالإتصالات والإجراءات ) سيكون عامل مهم أن تفكر في التصميم الصحيح حتى لا يكون الـ CPU مشغول كثيراً في معالجة الإجراءات , لأن أي إستعلام يأخذ حيز من قدرة الـ CPU فإذا كانت هناك إستعلامات كثيرة تنفذ في نفس الوقت , الـ CPU سيتأخر في تنفيذ الإستعلامات إذا لم يتم تصميمها بالشكل المناسب, سيكون هناك طابور من الإستعلامات يقوم الـ CPU بتنفيذها واحد تلو الآخر. في الجداول الضخمة والتي تعتبر فعلاً كبيرة جداً , هنا يتم إعتبار INT الخيار الأفضل , لكن في الجداول الصيغرة والمتوسطة , لن يكون هناك فرق كبير , عندها يمكنك أن لا تفكر في قوة الأداء والذهاب إلى ما يسهل عليك العمل بدون التفكير في قوة الأداء عن نفسي أستخدم INT دائماً , حالات نادرة استخدم CHAR كمفتاح أساسي أو أن يكون مفهرس , بشرط لا يكون طويل , ثلاث أحرف مثلاً . RE: سؤال بثقنية الربط في قواعد البيانات - viv - 02-06-18 شكرا اخي الدوسري هذا بالضبط ما كنت بحاجة اليه اعتقد ال Collection شئ شبيه بهذا جعل البيانات في شكل عناقد تم البدء في الفرز فيها RE: سؤال بثقنية الربط في قواعد البيانات - viv - 02-06-18 في الطباعة ، يشير التجميع collations إلى طبقات متسلسلة لصفحات وثيقة متعددة الصفحات ، وكتاب ، وكتيب ، وما إلى ذلك في ترتيبها الصحيح والمنجز. يتم إجراء الترتيب أثناء عملية الإنهاء. وغالبًا ما يتبع ذلك ربط الصفحات معًا. وأبسط مثال على المقارنة هو مستند من ثلاث صفحات ، حيث تتبع الصفحة الأولى صفحة 2 ، تليها الصفحة الثالثة. هذا هو نفس التسلسل قراءة الصفحات. ما هو عكس ترتيب؟ بدلاً من ترتيب الصفحات التي تتبع الصفحة الأولى متبوعة بالصفحة الثانية ، تليها الصفحة الثالثة ، تكون الصفحات بترتيب عكسي. الصفحة الثالثة هي أولا ، تليها الصفحة الثانية ، تليها الصفحة الأولى. إن خيار طلب مستند متعدد الصفحات دون ترتيب (أي غير مهم) ، يعني ببساطة أن كل صفحة سيتم تسليمها في مجموعات أو حزم منفصلة. ستكون الصفحة الأولى في حزمة واحدة ، أو الصفحة الثانية في مجموعة مكدسة أخرى ، إلخ.
RE: سؤال بثقنية الربط في قواعد البيانات - محمد كريّم - 03-06-18 Collations في قواعد البيانات تعني شيء متعلق بالترميز مثلا قاعدة البيانات عندما يكون فيها حقل nvarchar يكون ترميزه unicode ويقبل كل حروف unicode عكس حقل varchar كذلك في حجم البيانات المخزنة فيه الاخير اقل من الاول الصحيح في البرامج العربية ان تحدد collation قاعدة البيانات عند انسائها الى arabic collation بالتالي تقبل الحروف العربية والانجليزية الغريب ان تكون القاعدة لها collation لاتيني ويجبر المطور على ارفاق حرف N عند التعامل مع البيانات بالنسبة للوصول السريع الى البيانات فكما تفضل اخي عبدالله ان يكون الفهرس رقمي ايضا مفهوم الكائنات objects يساعد على سرعة الوصول لكل خصائص الكائن بسرعة هذا مفهوم البرمجة الكائنية التوجه OOP أخي viv اعتقد انك تضيع وقتك قبل اللجوء الى لغة Linq RE: سؤال بثقنية الربط في قواعد البيانات - viv - 03-06-18 إقتباس : اعتقد انك تضيع وقتك قبل اللجوء الى لغة Linq لغة Ling اليست في النهاية يتم تحويلها الى جملة استعلام عادية ، فمحرك قاعدة البيانات لا يفهم Ling وانما يتم تحويلها له في جملة Sql عادية إقتباس :بالنسبة للوصول السريع الى البيانات فكما تفضل اخي عبدالله ان يكون الفهرس رقمي اجل هذا هو رأس الخيط ، في البرامج الكبيرة أو التي على شبكة كذلك لا غنى عن هذا الخيار |