بتاريخ: 10 فبراير 200521 سنة comment_27077 السلام عليكم ورحمة الله وبركاتهأرجو من أخوانى فى المنتدى لمن يعلم الفارق بالتفصيل بين أنواع الفهارس الآتية أن يتفضل بشرحها :BitmapReverse keyB-treeUnique B-treeFunction basedNon_unique concatenatedpartitionedحبث أنى تعرضت لهم فى أسئلة عديدة وشروح مختلفة لكن الفارق بين بعضهم والآخر غير واضح حتى فى شرح ريجى ميللر والتست كنج كلها ... أرجو أن يكون الشرح مفسر ولا يقتصر الأمر على إعطائى reference تم تعديل 3 مارس 200521 سنة بواسطة Walid Azmy تقديم بلاغ
بتاريخ: 10 فبراير 200521 سنة كاتب الموضوع comment_27114 ياااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااه ه ه ه كل دى فروق :angry: :angry: تقديم بلاغ
بتاريخ: 10 فبراير 200521 سنة comment_27116 السلام عليكم يااخ وليدفي البدايه عايز اشكرك على المجهود الكبير اللي بتقوم بيه في الموقع وافاده المبتدئين مثليعلى فكره محدش رد عليك اصل محدش عارف الحل :angry: :angry: تقديم بلاغ
بتاريخ: 28 فبراير 200521 سنة comment_28471 السلام عليكم ورحمة الله وبركاته،، أخواني مازال هذا الموضوع من دون إجابة ، هل هناك من يستطيع إعداد شرح مفصل ووافي عن هذا الموضوع وجزاكم الله خيرا تقديم بلاغ
بتاريخ: 28 فبراير 200521 سنة كاتب الموضوع comment_28478 تعليقا على كلام أخى msh من السهل أن أقوم بمراجعة chapter 12 من كتاب fundamentals I وأعمل له ملخص فى هذه المشاركة وخلاص .. فالناحية النظرية ليست المشكلةلكن ليس هذا ما أريده وإنما أرغب من احد أخواننا الDBA فى المنتدى فى وضع سيناريوهات عملية لإستخدام كل فهرس أى وضع أمثلة واضحة من واقع عمله لأن مدير قاعدة البيانات يجب وأن يكون لديه مهارة تحديد أفضل الطرق لإستعادة البيانات من جدول معين حسب حجمه وظروفه ونسبة تكرار بيانات معينة فيه والفهارس أداة قوية لذلكأرجو الرد على الأقل لتقريب شرح Chapter 12 .. تم تعديل 28 فبراير 200521 سنة بواسطة Walid Azmy تقديم بلاغ
بتاريخ: 28 فبراير 200521 سنة comment_28515 السلام عليكم ورحمة الله وبركاته،، أضم صوتي لك أخي وليد وارجوا من الجميع المشاركة وطرح أمثلة عملية وأحببت أن أرفق ملف يتكلم عن الموضوع أتمنى أن يستفيد منه الجميع .تحياتي indexes.zip تقديم بلاغ
بتاريخ: 3 مارس 200521 سنة كاتب الموضوع comment_28661 مشكور أخى msh على إهتمامك والملف المرفقلكن وبما أننى أتكلم مع نفسى من البداية فى الموضوع فمضطر أرد على نفسى أيضا .... وهذا الشرح نتيجة نقاشات طويلة بينى وبين أخى عبد الله أسعد (bedooracle) أرجو الدعاء له بالخير والتوفيق فهو الوحيد الذى تفاعل معى وكانت لديه الحماسة لتغطية الموضوع معا بالشكل الوافى .. وسوف أهتم بالشرح هنا على انواع الفهارس من الناحية المادية لأنها هى التى يتعامل معها ال DBA بشكل فعلى وتؤثر فى أداء قاعدة البيانات وكثيرا ما تكون موضوع أسئلة امتحان fund 1 .. تاركا الأنواع المنطقيةlogical للكتاب حيث يمكن الرجوع اليه بشأن تعريفها.... ولنبدأ خطوة خطوة ... الفهارس (indexes) كما قلت يمكن تقسيمها بمنظور منطقى logical فتكون أنواعها كالتالى– Single column or concatenated– Unique or nonunique– Function-based– Domainويمكن تقسيمها بمنظور مادى من حيث الطريقة الفعلية التى تخزن فيها البيانات داخل الجداول فى الصفوف وكيفية البحث فيها عن الصفوف المطلوبة تبعا لجملة sql التى يتم إصدارها وتقسم هنا إلى – Partitioned or nonpartitioned– B-tree Normal or reverse key– Bitmapالفهارس partitioned يتم عملها على ال partitioned tables الجداول التى يتم توزيعها على أكتر من tablespace لتسهيل الإدارة ...... لكنى سأركز هنا على المشكلة التى تواجه الDBA فعليا وهى أيهما يختار عندما يتعامل مع قاعدة بيانات بشكل عملى Bitmap index أم B*tree ............؟الفارق الأساسى بين النوعين أن الbitmap يتعامل بشكل جيد مع الجداول التى تحوى قيم مميزة distinct values قليلة فى العمود الذى تم عمل الفهرس عليه ومثال على ذلك حقل جنس المواطن فهو ذكر أو أنثى أما الB*tree فيتعامل بكفاءة أكبر مع الحقول التى تحتوى على قيم مميزة كثيرة مثل حقل رقم الهاتف أو العنوان فقلما يتكرر القيمة فيه ..........وكلا النوعين يتعامل مع القيمة المميزة بحيث يعطيها ما يعرف بالkey value لكن يختلفا فى طريقة العثور على الkey value تلك حيث يستخدم الB*tree طريقة إسمها list of row IDs بحيث يعطى كل key value فى الفهرس rowid مقابل لها يقوم بالبحث فى قائمته عندما نصدر عبارة select إعتمادا على where إن وجدت ........ لكن لا زال السؤال هو كيف يسهم الB-tree فى البحث السريع عن البيانات وإستعادتها ؟لنفرض أن لدينا فى حقل مرتب الموظفين القيم الآتية :300 – 150 – 170 – 550 – 520 – 600 – 130 فيقوم مدير قاعدة البيانات بعمل فهرس B-tree على هذا العمود بحيث يقوم هذا الفهرس بالوقوف عند أول قيمة ووضع القيمة الأكبر على اليمين والأصغر على اليسار فتكون شكل الشجرة كالتالى : 300 550 150 600 520 170 130 هل رأينا شكل الشجرة فبدلا من أن نمشى سبع صفوف لنجد الموظف الذى يتقاضى 170 جنيه مشينا 3 صفوف أو درجات فقط ......... ستأخذ المرتبات 600 و 520 و170 و130 RowID واحد وليكن 3 من ضمن الlist الخاصة بال RowIDs ...... لكن ماذا لو لاحظ مدير قاعدة البيانات أن حقل راتب الموظفين فى تصاعد مستمر مثلا على الترتيب التالى : 122- 155- 174 – 206- 351 هذا سيعنى ان استخدام الB-tree العادى سيكون على الشكل التالى بوضع القيم على اليمين بإستمرار 122 155 174 206 351إذن الأمر غير مجدى فلقد مر الفهرس على خمسة درجات عندما بحث فى خمسة صفوف لكى يعيد قيمو الموظف الذى يتقاضى راتبا قدره 351 جنيه .. هنا يتخذ قراره السريع بلإستخدام الفهرس من النوع reverse key B-tree الذى يقوم بعكس قيم الحقل فى كل صف أى تصبح 122 (221) و155(551) وهكذا فنعود ونحصل على الشجرة الظريفة التى تختصر الطريق مرة أخرى ........ هذه هى المشاكل العملية التى نتكلم عنها والتى تصادف مدير قاعدة البيانات ..................لذلك تنصحة أوراكل بأن يستخدم هذا النوع من الفهارس فى حالة الحقول ذات القيم المميزة distict values الكبيرة لأنه سيختصر الوقت ....أما أخونا الbitmap فيستخدم فى العثور على الkey value وسيلة أخرى هى الmapping function يعنى إيه ..؟يقوم الBitmap Index بإعطاء كل key value أى قيمة مميزة RowID كما قلنا ويسمى كل سجل فى الجدول Bit فإذا طابق الحقل الRowId أعطاه القيمة 1ويقال هنا أنه تم ضبطه أى SET وإذا لم يطابقه أعطاه القيمة صفر فالجدول لكل Rowid هو عبارة عن أصفار ووحايد فلو كان الrowid يطابق كلمة محامى على أنها إحدى الkey values مثلا فى حقل الوظيفة وكان الحقل على الشكل التالى :محامى مهندسمحاسب مهندس طبيبمحامىمحامىطبيبطبيبمحامىكان الجدول بالنسبة للRowID (1000011001 ) وبعد ذلك يستخدم MAPPING FUNCTION بدلا من ال list of rowids التى كنا نستخدمها فى الB-tree وذلك لترجمة ( الواحد ) بالمكان الفعلى للصف كما يستخدم طريقة ضغط compression لضغط (الأصفار البينية) ...... لذلك تنصح أوراكل بإستخدام هذا النوع من الفهارس عندما تكون عدد القيم المميزة فى الحقل قليلة (few distict values) ويعرف هذا بال low cardinality إذا ما نظرنا للجدول على أن به مليونا صف مثلا والقيم المميزة ثلاثة أى أن البحث سيكون فى ثلاثةRowID فقط وتظهر هنا كفاءة الMAPPING FUNCTION والCOMPRESSION FUNCTIO .....وهناك فروق أخرى بينهما فى الجدول الموجود بالفصل رقم 12 من الكتاب مبنية على ما تم شرحهأرجو أن أكون قد وفقت فى الشرح تحياتى .. تم تعديل 3 مارس 200521 سنة بواسطة Walid Azmy تقديم بلاغ
بتاريخ: 3 مارس 200521 سنة comment_28662 السلام عليكم ورحمة الله وبركاته،، مشكور أخي على هذا الشرح الرائع وجزاك الله خيرا ، وأنتظر التعليقات وإن شاء الله يكون هذا الموضوع مفتاح لنقاش حول الفهارس أتمنى من الجميع المشاركة والتعليق وطرح أسئلة تتعلق بهذا الموضوع لكي يتم تغطيته تماما وشكرا لك أخي وليد مره أخرى تقديم بلاغ
بتاريخ: 3 مارس 200521 سنة كاتب الموضوع comment_28666 وهذه Slides رائعة تشرح ال bitmaps وال b-tree من حيث كيف يتم حساب حجم الفهارس فى سيناريوهات واحدة فى حالة إستخدام كلا منهما BitMap_Indexex.ace تقديم بلاغ
بتاريخ: 5 مارس 200521 سنة كاتب الموضوع comment_28816 مبرووووووووك عليك أخى عبد الله جائزة الوسام الذهبى للمنتدىوالله تستحق ذهب العالم على مشاركاتك المفيدة وتحية لإدارة المنتدى لتقديرها جهود أعضاؤها المميزين مثلك تقديم بلاغ
بتاريخ: 7 مارس 200620 سنة comment_62190 جزالك اللة خير ياريت تضع الملف تانى عشان انا محتاجة ومش عارف انزلة تقديم بلاغ
بتاريخ: 9 مارس 200620 سنة comment_62470 اخي عزمي ،،ممكن ترسل الملف BitMap_Indexex.ace ( 92.72k ) عدد مرات التحميل: 171 على ايميل [email protected] تقديم بلاغ
بتاريخ: 2 سبتمبر 200718 سنة comment_108993 الأخ وليد عزميأشكرك جزيل الشكر على ماتفضلت به من معلومات قيمه وشرح واضح ومفيد جداًلي طلب أخي العزيز ممكن ترسل لي الملف المرفق هذا BitMap_Indexex.ace ( 92.72k)OK حيث أنني لم استطع تحميله ارجو الرد بأسرع وقت ممكن حيث أنني بأمس الحاجه لهذا الملف[email protected]تقبل أطيب تحيه أخوك الفريدي1 تقديم بلاغ
بتاريخ: 2 سبتمبر 200718 سنة comment_108994 الأخ وليد عزميأشكرك جزيل الشكر على ماتفضلت به من معلومات قيمه ومفيده وشرح واضح جداًأخي العزيز لي طلب إذا تكرمت بإرسال الملف المرفق BitMap_Indexex.ace ( 92.72k )okعلى إيميلي ارجو الرد بأسرع وقت[email protected]أخوك الفريدي تقديم بلاغ
بتاريخ: 24 مايو 200817 سنة comment_129456 يا ريت بالله ترسله هوا انا كمان اكون شاكر لك [email protected]ويعطيكم الله العافيه على هذا الطرح الناجح والى الامام تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.