تنظيم الملفات والوصول إليها
| English | العربية |
|---|---|
| file organisation/faɪl ˌɔːɡənaɪˈzeɪʃn/ | تنظيم الملفات |
| access method/ˈækses ˈmeθəd/ | طريقة الوصول |
| serial file/ˈsɪərɪəl faɪl/ | ملف تسلسلي |
| sequential file/siːˈkwenʃl faɪl/ | ملف متتابع |
| key field/kiː fiːld/ | حقل المفتاح |
| direct access/daɪˈrekt ˈækses/ | الوصول المباشر |
| sequential access/siːˈkwenʃl ˈækses/ | الوصول المتتابع |
| random file/ˈrændəm faɪl/ | ملف عشوائي |
لماذا استغرق عمل البنك الليلي ليلة كاملة
- حتى 1980s، كانت حسابات البنوك محفوظة على شريط مغناطيسي. لا يمكن قراءة الشريط إلا من طرف واحد إلى الآخر، لذا كانت العمليات اليومية مرتبة خلال الليل، وكان يتم قراءة الملف الرئيسي بأكمله من البداية إلى النهاية مرة واحدة لتطبيقها.
- إذا طلبت رصيد عميل واحد في منتصف النهار، كان الجواب: لن يكون متاحاً إلا غداً. تنظيم الملف، وليس سرعة الكمبيوتر، حدد ما يمكن للبنك تقديمه.
- الأقراص الصلبة مكنت منظماً مختلفاً: احسب موقع السجل من مفتاحه وقفز إليه. هذا ما يسمح لصرف الآلي بالإجابة في ثانية.
- هذه الدرس حول تنظيم الملفات، طريقتي الوصول الرئيسيتين، وكيفية الاختيار مما يقوم به البرنامج بشكل رئيسي.
ثلاث تنظيمات
- الملف التسلسلي يحفظ السجلات في الترتيب الذي تمت إضافتها، بدون فرز. الإلحاق سريع؛ البحث يعني القراءة من البداية. يستخدم للسجلات وسجلات التدقيق.
- الملف المتتابع يحفظ السجلات مرتبة حسب حقل مفتاح. البحث أسرع، لأنه يمكنك التوقف مبكراً أو استخدام البحث الثنائي؛ الإدراج بطيء، لأن السجلات اللاحقة يجب أن تتحرك.
- الملف العشوائي، أو ملف الوصول المباشر، يحفظ كل سجل في موضع محسوب من مفتاح سجله، عادةً بدالة هاش. البحث بالمفتاح سريع جداً؛ القراءة بالترتيب المفتاحي مزعجة. يستخدم لجداول البحث الكبيرة وحسابات العملاء.

تسلسلي: ترتيب الوصول، لا شيء أكثر

متتابع: نفس السجلات، بترتيب المفتاح
طريقتا الوصول
- الوصول المتسلسل يقرأ من بداية الملف حتى السجل المطلوب. وهو الوصول الوحيد الذي يسمح به الملف التسلسلي، وكيفية معالجة الملف المتسلسل في المعالجة الدفعية.
- الوصول المباشر يقفز مباشرة إلى موقع معروف دون قراءة ما يسبقه. وهو كيفية قراءة الملف العشوائي، ويمكن أيضاً قراءة الملف المتسلسل بشكل مباشر عندما يكون موقع المفتاح معروفاً أو مؤشراً عليه.
- لذا فإن تطابق المنهج هو: الوصول المتسلسل للملفات التسلسلية والمتسلسلة؛ الوصول المباشر للملفات المتسلسلة والعشوائية.

عشوائي: المفتاح يخبرك أين تبحث
مسار الوصول إلى الملف
اتبع ملفاً من التخزين إلى البرنامج وعده بأمان.
ملف تسلسلي يخزن السجلات:
تحتفظ الملفات التسلسلية بالسجلات بترتيب الوصول — سريعة للإضافة، بطيئة للبحث. الملفات المتسلسلة مرتبة بالمفتاح.
طابق كل تنظيم ملفات مع كيفية تخزينها للسجلات.
تسلسلي = ترتيب الوصول؛ متسلسل = مرتب؛ عشوائي = موقع مشفّر؛ مرتب-متسلسل مؤشر = مرتب + مؤشر.
ملف عشوائي (مباشر) يضع كل سجل:
يتم تحويل المفتاح (غالباً عبر دالة تجزئة) إلى موقع، لذا فإن البحث بمفتاح واحد سريع جداً.
ما الفرق بين ملف تسلسلي وملف متسلسل؟
ترتيب الوصول مقابل الترتيب بالمفتاح. هذا الفرق الوحيد هو ما يجعل الملف المتسلسل قابلاً للبحث المبكر وبطيئاً للإدراج.
مثال محلول: اختر التنظيم
- برنامج رواتب يقرأ سجل كل موظف مرة واحدة شهرياً، بترتيب رقم الموظف، لإصدار قسائم الأجور. أي تنظيم/access، ولماذا؟
- تنظيم متسلسل مع وصول متسلسل: كل سجل يتم معالجته، لذلك لا فائدة من القفز حول، وتخزينها بترتيب المفتاح يعني أن قسائم الأجور تخرج مرتبة بدون خطوة فرز.
- آلة الصراف الآلي يجب أن تستخرج حساباً واحداً برقمه في أقل من ثانية. تنظيم عشوائي مع وصول مباشر: الموقع يُحسب من رقم الحساب، لذا يكفي قراءة واحدة بدلاً من البحث عبر ملايين السجلات.
- تطبيق خادم ويب يضيف سطراً واحداً لكل طلب إلى سجل. تسلسلي: الإضافة فقط هي المهمة، والإضافة في النهاية هي أسرع شيء يفعله الملف التسلسلي.
يمكن قراءة الملف المتسلسل بالوصول المتسلسل وأيضاً بالوصول المباشر.
الوصول المتسلسل يخدم الملفات التسلسلية والمتسلسلة؛ الوصول المباشر يخدم الملفات المتسلسلة والعشوائية. ملف تسلسلي واحد فقط محدود بطريقة واحدة.
ضع خطوات جلب حساب واحد من ملف عشوائي بالترتيب.
لا يحدث بحث على الإطلاق: يتم تحويل المفتاح إلى موقع وقراءة مرة واحدة. التحقق الأخير يلتقط الاصطدام.
المقايضات، جنباً إلى جنب
| تسلسلي | متسلسل | عشوائي | |
|---|---|---|---|
| ترتيب السجلات | كما أضيفت | مُرتبة حسب المفتاح | مَحسوب من المفتاح |
| إضافة سجل | سريع، إضافة | بطيء، تتحرك السجلات | سريع، إذا كان الشغرة فارغة |
| إيجاد سجل واحد | بطيء، قراءة الكل | أسرع، يمكن التوقف مبكراً | الأسرع، قراءة واحدة |
| القراءة بترتيب المفتاح | تحتاج فرز | طبيعي | تحتاج فرز |
- الإجابة الصحيحة تُستنتج دائماً من العملية المهيمنة: ماذا يفعل هذا البرنامج أكثر من غيره؟
تنظيم الملف المتسلسل مناسب لمعالجة كل سجل على التوالي.
يناسب الوصول المباشر البحث عن سجل واحد.
طابق كل موقف مع التنظيم المناسب للملف.
الإضافة فقط، معالجة كل شيء بالترتيب، أو البحث عن سجل واحد: العملية السائدة تحدد التنظيم.
مثال محلول: تبرير تغيير
- ملف كتب مكتبة هو ملف تسلسلي. البحث عن عنوان واحد بطيء. اقترح تغييراً وبرره.
- إعادة التنظيم كملف عشوائي، بتشفير رقم ISBN إلى عنوان، بحيث تصبح عملية البحث قراءة مباشرة واحدة بدلاً من مسح الملف بالكامل.
- إذا كانت المكتبة تطبع أيضاً كتالوجاً بترتيب العنوان، فإن التنظيم المتسلسل بالعنوان يخدم الغرضين بشكل معقول: الكتالوج لا يحتاج فرز والبحث يمكن أن يتوقف مبكراً أو يستخدم البحث الثنائي.
- سمِّ التنظيم، وسمِّ طريقة الوصول، ورابطهما بعملية يذكرها السؤال.
لإعداد تقارير بترتيب المفاتيح، أفضل تنظيم للملف هو:
ملف متسلسل مرتب بالفعل بترتيب المفاتيح، لذا فإن قراءته تسلسليًا تعطي تقريرًا بترتيب صحيح.
يتم اختيار تنظيم ملف بالنظر إلى عملية ____ الخاصة بالبرنامج.
كل تنظيم سريع في شيء وبطيء في آخر، لذا فإن العملية الأكثر تكراراً هي التي تحدد.
ما يجب أن يكون عليه المفتاح، ولماذا يفشل التشفير
- الوصول المباشر يحتاج إلى مفتاح، ويجب أن يكون المفتاح فريداً لسجل واحد. اللقب ليس مفتاحاً؛ رقم الزبون هو.
- التشفير يحول ذلك المفتاح إلى عنوان سجل في عملية حسابية واحدة، sehingga تصل قراءة واحدة إلى السجل بغض النظر عن حجم الملف.
- يمكن أن يؤدي مفتاحان مختلفان إلى نفس العنوان. هذه اصطدام، وهي ليست خطأ في الخوارزمية: بل هي حتمية عند وجود مفاتيح ممكنة أكثر من العناوين المتاحة.
- التصحيح المذكور في نموذج الإجابة هو منطقة فائضة، أو تخزين مؤشر عند العنوان نحو سلسلة من السجلات التي تشترك فيه. وبالتالي يكلف الاصطدام قراءة إضافية واحدة، وليس فقدان السجل.
- لذا فإن المقارنة الصادقة هي: يعطي التشفير وصولاً شبه ثابت حتى امتلاء الملف، ويتدهور أدائه مع تراكم الاصطدامات. الوصول المتسلسل لا يتدهور أبداً ولكنه لم يكن سريعاً قط.
تتجزأ سجلان في نفس العنوان. أي مما يلي صحيح؟ حدد كل الخيارات الصحيحة.
لا يوجد شيء مفقود؛ يكلف الاصطدام قراءة إضافية واحدة. وهو لا مفر منه نظرياً، لأن عدد المفاتيح الممكنة دائماً أكبر من العناوين.
علامات ضائعة
- التسلسلي هو ترتيب الوصول؛ المتسلسل هو المُرتب according to a key. هما ليسا مرادفين، والامتحان يختبر هذا الفرق تحديداً.
- التنظيم هو كيفية وضع السجلات؛ الوصول هو كيف يصل البرنامج إلى سجل واحد. السؤال يسمي أحدهما أو الآخر.
- الملف المتسلسل يدعم كلا طريقتي الوصول؛ الملف التسلسلي يدعم الوصول المتسلسل فقط.
- برر من العملية المهيمنة، لا من "إنه أسرع". قل أسرع في ماذا، ولماذا.
لقد فهمت الأمر
- تسلسلي: ترتيب الإضافة، إضافة سريعة، بحث بطيء، يُستخدم للسجلات · متسلسل: مُرتب according to a مجال مفتاح، جيد للمعالجة الدفعية والإخراج بترتيب · عشوائي: الموقع مَحسوب from the مفتاح السجل، قراءة واحدة لإيجاد سجل
- الوصول المتسلسل يقرأ من البداية؛ الوصول المباشر يقفز إلى موقع
- الوصول المتسلسل يخدم الملفات التسلسلية والمتسلسلة؛ الوصول المباشر يخدم الملفات المتسلسلة والعشوائية
- اختر من العملية المهيمنة: معالجة كل شيء، البحث عن واحد، أو الإضافة فقط