الانضمام
ببعض الطرق، الانضمام مثل لصق من حيث أنه يضيف أعمدة إلى ملف ، لكنه يستخدم طريقة فريدة للقيام بذلك. أ الانضمام هي عملية مرتبطة عادة بـ قواعد البيانات العلائقية حيث البيانات من عدة الجداول مع حقل مفتاح مشترك يتم دمجه لتشكيل النتيجة المرجوة.
• الانضمام يقوم البرنامج بنفس العملية. يقوم بجمع البيانات من ملفات متعددة بناءً على حقل مفتاح مشترك.
لمعرفة كيفية استخدام عملية الانضمام في قاعدة بيانات علائقية ، دعنا نتخيل قاعدة بيانات صغيرة جدًا تتكون من جدولين ، يحتوي كل منهما على سجل واحد. يحتوي الجدول الأول ، المسمى العملاء ، على ثلاثة حقول: رقم العميل (CUSTNUM) ، والاسم الأول للعميل (FNAME) ، والاسم الأخير للعميل (LNAME):
كوستنوم | اسم الملف | LNAME |
======== | ===== | ====== |
4681934 | جون | سميث |
يُطلق على الجدول الثاني اسم "الطلبات" ويحتوي على أربعة حقول: رقم الطلب (رقم الطلب) ، ورقم الزبون (CUSTNUM) ، والكمية (QUAN) ، والصنف المطلوب (ITEM).
ترتيب | كوستنوم | QUAN | البند |
======== | ======= | ==== | ==== |
3014953305 | 4681934 | 1 | القطعة الزرقاء |
لاحظ أن كلا الجدولين يشتركان في الحقل CUSTNUM. هذا مهم ، لأنه يسمح بعلاقة بين الجداول.
سيسمح لنا إجراء عملية ربط بدمج الحقول في الجدولين لتحقيق نتيجة مفيدة ، مثل إعداد فاتورة. باستخدام القيم المطابقة في حقول CUSTNUM في كلا الجدولين ، يمكن أن تنتج عملية الصلة ما يلي:
اسم الملف | LNAME | QUAN | البند |
===== | ===== | ==== | ==== |
جون | سميث | 1 | القطعة الزرقاء |
لإظهار الانضمام البرنامج ، سنحتاج إلى إنشاء ملفين بمفتاح مشترك. للقيام بذلك ، سوف نستخدم الخاص بنا توزيعات حسب تاريخ. txt ملف. من هذا الملف ، سننشئ ملفين إضافيين ، أحدهما يحتوي على تواريخ الإصدار (والذي سيكون مفتاحنا المشترك لهذا العرض التوضيحي) وأسماء الإصدار:
[me @ linuxbox ~] $ cut -f 1,1،XNUMX distros-by-date.txt> distros-names.txt [me @ linuxbox ~] $ الصق distros-date.txt distros-names.txt> distros- key-names.txt
[me @ linuxbox ~] $ رئيس توزيعات أسماء المفاتيح.txt
11/25/2008 فيدورا 10/30/2008 أوبونتو 06/19/2008 SUSE
05/13/2008 فيدورا 04/24/2008 أوبونتو 11/08/2007 فيدورا 10/18/2007 أوبونتو
[me @ linuxbox ~] $ cut -f 1,1،XNUMX distros-by-date.txt> distros-names.txt [me @ linuxbox ~] $ الصق distros-date.txt distros-names.txt> distros- key-names.txt
[me @ linuxbox ~] $ رئيس توزيعات أسماء المفاتيح.txt
11/25/2008 فيدورا 10/30/2008 أوبونتو 06/19/2008 SUSE
05/13/2008 فيدورا 04/24/2008 أوبونتو 11/08/2007 فيدورا 10/18/2007 أوبونتو
10/04/2007 سوس
05/31/2007 فيدورا 04/19/2007 أوبونتو
10/04/2007 سوس
05/31/2007 فيدورا 04/19/2007 أوبونتو
والملف الثاني الذي يحتوي على تواريخ الإصدار وأرقام الإصدارات:
[me @ linuxbox ~] $ cut -f 2,2،XNUMX distros-by-date.txt> توزيعات vernums.txt [me @ linuxbox ~] $ لصق distros-date.txt distros-vernums.txt> distro s-key-vernums.txt
[لي @ لينوكس بوكس | ~] $ رئيس توزيعات مفتاح vernums.txt |
11/25/2008 | 10 |
10/30/2008 | 8.10 |
06/19/2008 | 11.0 |
05/13/2008 | 9 |
04/24/2008 | 8.04 |
11/08/2007 | 8 |
10/18/2007 | 7.10 |
10/04/2007 | 10.3 |
05/31/2007 | 7 |
04/19/2007 | 7.04 |
لدينا الآن ملفان بمفتاح مشترك (حقل "تاريخ الإصدار"). من المهم الإشارة إلى أنه يجب فرز الملفات في حقل المفتاح لـ الانضمام للعمل بشكل صحيح.
[me @ linuxbox ~] $ الانضمام إلى توزيعات-مفتاح-أسماء. txt توزيعات-مفتاح-vernums.txt | رئيس
11/25/2008 فيدورا 10
10/30/2008 أوبونتو 8.10
06/19/2008 SUSE 11.0 تحديث
05/13/2008 فيدورا 9
04/24/2008 أوبونتو 8.04
11/08/2007 فيدورا 8
10/18/2007 أوبونتو 7.10
10/04/2007 SUSE 10.3 تحديث
05/31/2007 فيدورا 7
04/19/2007 أوبونتو 7.04
[me @ linuxbox ~] $ الانضمام إلى توزيعات-مفتاح-أسماء. txt توزيعات-مفتاح-vernums.txt | رئيس
11/25/2008 فيدورا 10
10/30/2008 أوبونتو 8.10
06/19/2008 SUSE 11.0 تحديث
05/13/2008 فيدورا 9
04/24/2008 أوبونتو 8.04
11/08/2007 فيدورا 8
10/18/2007 أوبونتو 7.10
10/04/2007 SUSE 10.3 تحديث
05/31/2007 فيدورا 7
04/19/2007 أوبونتو 7.04
لاحظ أيضًا أنه بشكل افتراضي ، الانضمام يستخدم مسافة بيضاء كمحدد لحقل الإدخال ومسافة واحدة كمحدد لحقل الإخراج. يمكن تعديل هذا السلوك عن طريق تحديد الخيارات. انظر الانضمام صفحة الرجل للحصول على التفاصيل.