Doğrudan erişim dosyası ile dizinlenmiş sıralı dosya arasındaki temel fark nedir?


cevap 1:

Çok değil. Kavramlar, delikli kartların veya manyetik (veya kağıt) bandın metaforunu, disk bloklarını (doğrudan veya dolaylı olarak erişilebilir) içerebilecek daha genel bir dosya kavramına sığdırmaya çalışmanın sonuçlarıdır.

1960'lara hoş geldiniz.

Günümüzde çoğu modern dosya sistemi, bayt dizisi gibi ele alınabilir; burada herhangi bir bayt, dosya tanımlayıcıdaki özel konumlandırma işlemleriyle doğrudan ele alınabilir. Kısacası, çoğu modern dosya sistemi doğrudan erişimli (bayt veya sabit boyutlu kayıtlar) dosyalara sahip olabilir.

Sıralı dosya, işlemlerin sıralı erişim için optimize edildiği dosyadır - bir (veya daha fazla) kayıt ileri gitme, bir (veya daha fazla) kayıt geri git. Kötü yazılmış bir korku filminde delikli kartların veya kasetin ölümsüz bir canavar gibi geri dönüşünün metaforu.

Her iki durumda da, değişken uzunluktaki kayıtlar söz konusu olduğunda işler daha karmaşık hale gelir ve genellikle ekstra meta veriler (kayıt uzunluğu gibi) veya dizin anahtarları içerir.

Bilgisayarınızın belleği bir dosyanın içeriğini belleğe sığdırmadığında (program ve diğer gerekli verilerle birlikte) ve disk sürücüleriniz küçük olduğunda (gigabayt veya terabayt değil) megabayt) ve (zorunlu olarak) sıralı bantlar olan harici ortamlarda muazzam miktarda depolama. Kavramlar bilgisayar tarihçileri / arkeologlar veya eski tasarımları anlamaya çalışan insanlar için de yararlıdır. Gerçekten eski tasarımlar.

Bir taş bıçak yapmak için gereken beceriler gibi.


cevap 2:

Temel fark, bir veri parçasının alınması en az bir disk erişimi ve diğerinin en az iki erişim gerektirmesidir. Dizinlenmiş sıralı bir dosyayla, verilerin verilebilmesi için dizine erişilmesi gerekir.

1980'lerin başında COBOL yazarken bunun için endişelenmeyi hatırlıyorum. Günümüzde veritabanı yönetim sistemlerinin bunu halletmesine izin veriyoruz.