المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ماذا تعني relate كما هو موضح في الصورة وماذا نستفيد منها



عبادة مالك
09-06-2009, 01:29 PM
ماذا تعني relate كما هو موضح في الصورة وماذا نستفيد منها
http://www.gisclub.net/vb/images/uploads/6886_34174aa38f0626344.bmp

د. وسام محمد
09-06-2009, 08:15 PM
الفرق بين Join و Relate كلاهما يقومان بربط الجداول لكن Join تظهرهم في Data Table واحد بينما تظهر Relate الجداول المرتبطة في أكثر من نافذة Data Table مما يسمح بالعمل مع عدد كبير من الجداول بصورة اسهل من تلك في Join

عبادة مالك
09-06-2009, 08:35 PM
اشكرك الدكتور وسام لكنني قمت بتجربة ولكن لما ارى اي تغير في جداول attribute >>>
اي ماذا يحدث هل تتحد الجداول ام ماذا ..لانني جربت ولم الاحظ اي تغير في جداول attribute

د. وسام محمد
09-06-2009, 09:34 PM
في relate سيبقى كل جدول منفرد لكن اغلق الجداول المرتبطة بالجدول الرئيس الذي ربطت فيه الجداول الأخرى ثم قم باختيار أي سجلات من هذا الجدول الرئيس ثم قم بفتح الجداول المرتبطة من خلال المفتاح Options ومنه Related Tables وأنظر إلى هذه الجداول سوف تجد السجلات المقابلة لتلك التي اخترتها في الجدول الرئيس مضاءة

عبادة مالك
09-06-2009, 11:34 PM
اشكرك دكتور وسام ..نجحت العملية ولكن لي سؤال ؟
ماذا استفيد من ذلك ما فهمته انا هو عبارة عن مقارنة منظورة فقط تسهل علي رؤية الجداول بجانب بعضها البعض ..ام ان هنالك استفادة اخرى

د. وسام محمد
09-07-2009, 12:46 AM
لا ليست مجرد مقارنة بالنظر فحسب، فيمكن عمل أي عمليات على حقول الجداول الخارجية. تصور مثلاُ أن لديق شفافة او طبق تمثل المربعات السكانية ثم قمت بأختيار مجموعة من المربعات السكانية لواقعة في حي محدد ثم قمت بفتح الجدول المرتبط بهذه الطبقة والذي يمثل إجمالي دخل سكان كل مربع سكني، يمكنك عندئذا حساب متوسط الدخل في الحي عن طريق استخدام أداة Statistics...وكما يقول أصحاب النحو والقواعد : وقس عليه ما ورد :)

عبادة مالك
09-07-2009, 09:54 AM
اشكرك دكتور ...
ما فهمته منك وسوف اعرض ذلك على مثال ما :
ليكن لدي طبقة تحوي منازل وهذه المنازل موزعة على 4 جزر ....ولدي طبقة تمثل عدادات مياه الشرب ..وجدول هذه الطبقة تحوي قيم فواتير المياه
فمثلا اريد معرفة مجموع فواتير عدادات المياه لمنازل الجزيرة رقم 2 ..فاقوم بتعليم جميع منازل الجزيرة 2 ..واجري عمليه relate بين طبقة المنازل وطبقة عدادات المياه ..ومن ثم استطيع مشاهدة القيم والحقول ضمن جدول عدادات المياه التابعة لتلك الابنية في الجزيرة 2 ...واجري عليها العمليات الحسابية او ان اصدرها وهكذا

د. وسام محمد
09-07-2009, 10:43 AM
عملية Relate تكون في البداية، ثم أختار الجزيرة التي تشاء وانقر فوق المفتاح Option في نافذة الجدول ثم اختار من الRelated Tables الجدول الذي يحوي قراءات عدادات المياه وافتحه، تظهر سجلات الأبنية الواقعة في الجزيرة مضاءه.

مهندس مدنى جلال صبرى
09-09-2009, 07:09 PM
السلام عليكم و رحمة الله و بركاتة
اعتذر جدا عن التأخير فى الرد أخى عبادة لكن انت تعلم ظروف العمل و احيانا السفر
اشكر الدكتور وسام على المشاركة الفعالة و كلنا بنتعلم منك يا دكتور و لكننى كنت احب اضافة بعض المعلومات فى موضوع

Joining & Relating Tables

متى نقوم بعمل Join و متى نقوم بعمل Relate ؟
نقوم بعمل Join بين الطبقة و الجدول عندما تكون العلاقة بينهما علاقة one-to-one or many-to-one و عملية ال Join تعتمد على وجود عمود مشترك بين الجدولين و يسمى Master Key فى الجدول الاساسى الذى يكون جدول الطبقة فى حالتنا و العمود الاخر يسمى Foreign Key و لا يهم ان يكون اسم العمود متطابق لكن يجب ان تتطابق نوع البيانات بين العمودين بمعنى ان يكون كلاهما String او كلاهما integers و هكذا.
مثال على علاقة One To One :

http://www.gisclub.net/vb/images/uploads/4504_155054aa7d08635470.JPG

مثال على علاقة Many To One :

تخيل لدينا طبقة من نوع Polygon و كل Polygon فيها مصنف على اساس نوع استخدام الاراضى لكن ال Attribute Table الخاص بهذة الطبقة يحتوى فقط على الكود الذى يدل على نوع استخدام الاراضى و هناك جدول اخر يحتوى على الكود و ايضا يحتوى على نوع استخدام الاراضى , فى هذة الحالة عندما نقوم بعمل Join تكون العلاقة Many to one لان عدد من صفوف جدول الطبقة التى بها Master Key تم اضافتة لصف واحد فقط من الجدول الاخر "طبعا نفس الصف"

http://www.gisclub.net/vb/images/uploads/4504_157784aa7d2dac1044.JPG

اما بالنسبة لعملية Relate فسوف نكملها ليلا انشاء الله لان المغرب يؤذن الان
السلام عليكم

عبادة مالك
09-09-2009, 08:18 PM
اشكرك ولكن لو يتم شرح الطريقة الثانية بشكل اخر اي طريقة Many To One
فلم افهم شيء منها ...فهل هنا اختلط رقم 2 مع 1 حسب نوع الاراضي ..ام ان هذه الارقام للجدول اليساري لا تعني نوع الاراضي ...
فما اعرفه اخي جلال اذا كان لدينا طبقة ما وتحوي بيانات في جدولها وعلى فرض انه لدي ملف اكسيل يحوي بيانات اضافية لتلك الطبقة .فيجب ان تكون الاسطر مرتبه بحيث ترتبط بشكل صحيح مع اسطر الجدول ضمن الارك ماب
بغض النظر عن نوع الحقل للاكسيل ...أي ما يهم هو ان يكون الربط صحيح ..
اتمنى توضيح عملية Many To One

مهندس مدنى جلال صبرى
09-16-2009, 11:40 PM
قبل الاجابة على السؤال أخى عبادة لى تعليق على كلامك فلقد ذكرت انت التالى :
" اذا كان لدينا طبقة ما وتحوي بيانات في جدولها وعلى فرض انه لدي ملف اكسيل يحوي بيانات اضافية لتلك الطبقة .فيجب ان تكون الاسطر مرتبه بحيث ترتبط بشكل صحيح مع اسطر الجدول ضمن الارك ماب
بغض النظر عن نوع الحقل للاكسيل ...أي ما يهم هو ان يكون الربط صحيح .."
بالنسبة لموضوع ان الاسطر يجب ان تكون مرتبة بغض النظر عن نوع الحقل للاكسيل فهذا غير صحيح حيث ان العمود المشترك بين الجدولين يجب ان يكون من نفس النوع سواء كان Text او Integer و خلافة و من ناحية الترتيب فلا اهمية لموضوع الترتيب لان العمود المشترك هذا تكون جميع القيم بة قيم غير متكررة "Unique Values" لذلك لا يهم الترتيب حيث ياتى البرنامج باول صف بجدول الاكسيل و ياخذ القيمة الموجودة بالعمود المشترك و التى بهذا الصف و يبحث عن نظيرها فى جدول الارك فى العمود المشترك فيكون وجد الصف المناظر فيضع بة القيم المأخوذة من الاكسيل و هكذا مع جميع الصفوف لذلك لا اهمية للترتيب.

مهندس مدنى جلال صبرى
09-17-2009, 12:01 AM
بالنسبة للعلاقة Many To One :

دعنا نضع قاعدة و هى ان الكلمة الاولى من اى علاقة " فى حالتنا تكون Many " تكون خاصة بجدول الارك بمعنى انها Spatial Data و الكلمة الثانية من العلاقة " One " تكون خاصة بالجدول الاخر مثلا جدول الاكسيل بمعنى انها Non Spatial Data و عندما نطبق هذة القاعدة على "Many To One" نجد انة لدينا عدد من الصفوف داخل جدول الارك "جدول الطبقة" سوف نربطه بصف واحد فقط من جدول الاكسيل فمثلا فى الصورة السابقة التى كان عليها المثال نجد ان الجدول الايسر هو جدول طبقة الارك و الجدول الايمن هو جدول الاكسيل و جدول طبقة الارك بة حقل LU_Code و الذى يعنى Land_Use_Code وهو عبارة عن ارقام و ليست وصف لنوع استخدام الارض و الجدول الاخر بة حقل LU_Code ايضا و هو الرابط بين الجدولين و حقل اخر Description و بة وصف نوع الارض بالكلام و ليس ارقام لذلك عند الربط ناتى على طبقة الارك و نستخدم خاصية ال Join فيقوم البرنامج باخذ القيمة الاولى من جدول الارك من العمود المشترك و هذة القيمة هى الرقم 2 ثم يذهب الى جدول الاكسيل و يبحث فى نفس العمود المشترك عن هذة القيمة "2" و ياتى بكامل الصف الذى يحتوى على هذة القيمة و يذهب بة الى الارك و يكمل بة الصف الاول فنجد ان الصف الاول بة حقل مكتوب بة نوع استخدام الارض و هو Agriculture و يعيد البرنامج الموضوع مرة اخرى مع باقى صفوف طبقة الارك.

http://www.gisclub.net/vb/images/uploads/4504_273204ab1521a9af19.JPG

عبادة مالك
09-17-2009, 12:59 AM
قبل الاجابة على السؤال أخى عبادة لى تعليق على كلامك فلقد ذكرت انت التالى :
" اذا كان لدينا طبقة ما وتحوي بيانات في جدولها وعلى فرض انه لدي ملف اكسيل يحوي بيانات اضافية لتلك الطبقة .فيجب ان تكون الاسطر مرتبه بحيث ترتبط بشكل صحيح مع اسطر الجدول ضمن الارك ماب
بغض النظر عن نوع الحقل للاكسيل ...أي ما يهم هو ان يكون الربط صحيح .."
بالنسبة لموضوع ان الاسطر يجب ان تكون مرتبة بغض النظر عن نوع الحقل للاكسيل فهذا غير صحيح حيث ان العمود المشترك بين الجدولين يجب ان يكون من نفس النوع سواء كان Text او Integer و خلافة و من ناحية الترتيب فلا اهمية لموضوع الترتيب لان العمود المشترك هذا تكون جميع القيم بة قيم غير متكررة "Unique Values" لذلك لا يهم الترتيب حيث ياتى البرنامج باول صف بجدول الاكسيل و ياخذ القيمة الموجودة بالعمود المشترك و التى بهذا الصف و يبحث عن نظيرها فى جدول الارك فى العمود المشترك فيكون وجد الصف المناظر فيضع بة القيم المأخوذة من الاكسيل و هكذا مع جميع الصفوف لذلك لا اهمية للترتيب.

.....................
اشكرك اخي جلال وما شاء الله عنك ...
أي وحسب كلامك وسوف اعرض ما فهمته بمثال ::
ليكن لدينا جدول اكسيل وعلى فرض العمود المشترك هو ارقام صحيحة ذات الترتيب التالي
1
6
2
4
5
3

وضمن الارك ماب attribute وعلى فرض ان العمود المشترك له الترتيب التالي

1
2
3
4
5
6
..........
الان اتناء الربط نختار العمودين لكن الترتيب في كليهما ليس بنفسه ...وبما ان القيم غير متكررة فاثناء الربط يقوم البرنامج تلقائيا بوضع السطر رقم 1 التابع لملف الاكسيل بجانب السطر رقم 1 التابع للارك ماب ..وايضا البقية كذلك ف2 مقابل 2 وليس 2 مقابل 6 كما في مثالي
أليس كذلك

عبادة مالك
09-17-2009, 01:25 AM
استفسار اخر
انت قلت سابقا عندما شرحت many to one :
(عندما نقوم بعمل Join تكون العلاقة Many to one لان عدد من صفوف جدول الطبقة التى بها Master Key تم اضافتة لصف واحد فقط من الجدول الاخر "طبعا نفس الصف")
هنا التبس وتشوش الامر
..من خلال شرحك لم ارى فرق بين one to one او many to one
ففي كلى الحالتين يرتبط صف من الاكسيل مع صف من الارك ماب ...
لكن في عبارتك انفة الذكر أفهم منها أن عدة اسطر من الاكسيل ارتبطت مع سطر واحد فقط من الارك ماب
هكذا افهم من عبارتك ؟؟؟

مهندس مدنى جلال صبرى
09-17-2009, 02:06 AM
.....................
اشكرك اخي جلال وما شاء الله عنك ...
أي وحسب كلامك وسوف اعرض ما فهمته بمثال ::
ليكن لدينا جدول اكسيل وعلى فرض العمود المشترك هو ارقام صحيحة ذات الترتيب التالي
1
6
2
4
5
3

وضمن الارك ماب attribute وعلى فرض ان العمود المشترك له الترتيب التالي

1
2
3
4
5
6
..........
الان اتناء الربط نختار العمودين لكن الترتيب في كليهما ليس بنفسه ...وبما ان القيم غير متكررة فاثناء الربط يقوم البرنامج تلقائيا بوضع السطر رقم 1 التابع لملف الاكسيل بجانب السطر رقم 1 التابع للارك ماب ..وايضا البقية كذلك ف2 مقابل 2 وليس 2 مقابل 6 كما في مثالي
أليس كذلك

نعم كلامك صحيح مئة بالمائة أخ عبادة
:)

مهندس مدنى جلال صبرى
09-17-2009, 02:21 AM
استفسار اخر
انت قلت سابقا عندما شرحت many to one :
(عندما نقوم بعمل Join تكون العلاقة Many to one لان عدد من صفوف جدول الطبقة التى بها Master Key تم اضافتة لصف واحد فقط من الجدول الاخر "طبعا نفس الصف")
هنا التبس وتشوش الامر
..من خلال شرحك لم ارى فرق بين one to one او many to one
ففي كلى الحالتين يرتبط صف من الاكسيل مع صف من الارك ماب ...
لكن في عبارتك انفة الذكر أفهم منها أن عدة اسطر من الاكسيل ارتبطت مع سطر واحد فقط من الارك ماب
هكذا افهم من عبارتك ؟؟؟

فى كلا الحالتين يذهب صف واحد من الاكسيل الى طبقة الارك ماب لكن على حسب الحالة يختلف عدد صفوف جدول الارك الذى يذهب الية الصف الواحد من الاكسيل بمعنى :
1- فى حالة ont to one يذهب صف واحد فقط من الاكسيل الى صف واحد فقط من جدول الارك
2- فى حالة Many to one يذهب صف واحد فقط من الاكسيل الى عدد من الصفوف فى جدول الارك

المثال الذى ذكرتة انت أخى عبادة فى مشاركتك قبل الاخيرة هو مثال واضح و صريح على حالة one to one و المثال اخر فى الصورة تم ارفاقها " جدول ال Land use " هى مثال على العلاقة Many to one .

عبادة مالك
09-17-2009, 03:07 AM
2- فى حالة Many to one يذهب صف واحد فقط من الاكسيل الى عدد من الصفوف فى جدول الارك
أي انت تقصد هنا ان هنالك تكرار لنفس الرقم ضمن عمدود الارك ماب
ارك ماب :
1
2
2
2
اكسيل
1
2
3
....فهنا تكرر ضمن جدول الارك ماب رقم 2 تكرر 3 مرات ..وبالتالي سوف يذهب صف واحد من الاكسيل الى عدة صفوف من الارك ماب اي الصف 2 من الاكسيل الى صفوف 2 من الارك ماب ..
لكن ألم تقل انه يجب ان تكون القيم uniqe اي غير متكررة ..
الظاهر الامور اختلطت لدي
فانا ضعيف في قواعد البيانات وسوف اجري عدة دورات ان شاء الله

عبادة مالك
09-17-2009, 03:09 AM
اعتذر منك اخي جلال الان تبين ذلك ..لم انتبه في مثالك many to one ان الرقم 1 ضمن الارك ماب قد تكرر مرتين
انا اعتذر والفكرة واضحة جدا وسهلة ..
واسال الله ان يجعل ذلك في ميزان حسناتك