C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 《シーケンシャルファイル》?《ランダムファイル》?


(過去ログ 176 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■100967 / inTopicNo.1)  《シーケンシャルファイル》?《ランダムファイル》?
  
□投稿者/ RUNE (1回)-(2022/12/06(Tue) 12:50:24)

分類:[ハードウェア全般] 


最近議論の話題を見て、気づいた事がありました。
僕にとって
分かるような、実は永遠に分かってないような話ですけれども

《シーケンシャルファイル》と《ランダムファイル》って

Q1:
ファイルの中身(data)の保存フォーマットの規格の話でしょうか
それとも
ファイル単位の索引や場所管理の話でしょうか。


Q2:
どうして2種類の存在が必要なでしょうか。  ★★★これは根本的


Q3:

われわれ普段パソコンでファイルの保存と読み込みをする時に全然上記2種類の話を全然意識しないけれども、
どうして問題ないでしょうか。


Q4:例えば、普段パソコンや携帯でよく読み書きする画像ファイルは
いったいシーケンシャルファイルですか、それともラランダムファイルでしょうか。




ご存じの方よろしくお願いします


引用返信 編集キー/
■100968 / inTopicNo.2)  Re[1]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ ぶなっぷ (299回)-(2022/12/06(Tue) 13:23:04)
いろいろ意味がありそうな...

例えば、ファイルシステムとしてなら、
HDD/SSDをランダムとしての、テープのシーケンシャル
があります。

例えば、ファイル内部としてなら、
Write()でシーク位置を気にせずに書いていくのがシーケンシャルで
あらかじめ、固定領域を確保し、自身でシークしながら書いていくランダム
(Databaseなどで、1レコード分のデータを1Kbyteとするなら、200レコード目に飛ぶ
 際は、200*1K = 200KByteシークします)
などがあります。

引用返信 編集キー/
■100969 / inTopicNo.3)  Re[1]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ 774RR (892回)-(2022/12/06(Tue) 14:15:40)
「シーケンシャル」でしかアクセスできないなメディア(媒体)ってのはある、例えばカセットテープ DAT / LTO や CD / DVD
「ランダム」アクセスできるメディアってのもある、例えば HDD / SSD / FDD

A1. 文言「ファイル」のレベルだと抽象化してあるのでメディアの実態について意識する必要はない
A3. A4.「シーケンシャルファイル」「ランダムファイル」なんて用語は無い(少なくともオイラは使わない)
「シーケンシャルな装置」「ランダムな装置」って用語はある


A2. 装置の構造上そうなっているってだけ

引用返信 編集キー/
■100970 / inTopicNo.4)  Re[2]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ 伝説のカレー (54回)-(2022/12/06(Tue) 14:28:15)
シーケンシャルファイル、ランダムファイル、私は普段聞かない用語だなーと思ってググってみましたけどどうもメインフレームの用語っぽいですね

ファイル編成法
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%B7%A8%E6%88%90%E6%B3%95

順編成ファイルがシーケンシャルファイルで
直接編成ファイルがランダムファイルのことのようです

ここでいうファイルはメインフレームのファイルで

レコード:データの集合
ブロック:レコードの集合
ファイル:ブロックの集合

こんな感じに構造化されたデータのことです

以上を前提に答えるなら

> Q1:
> ファイルの中身(data)の保存フォーマットの規格の話でしょうか
> それとも
> ファイル単位の索引や場所管理の話でしょうか。

メインフレームにおけるファイルの中身(data)の保存フォーマットの話です

> Q2:
> どうして2種類の存在が必要なでしょうか。  ★★★これは根本的

データの性質やドライブの性質によって使い分けるんだと思います

> Q3:
> われわれ普段パソコンでファイルの保存と読み込みをする時に全然上記2種類の話を全然意識しないけれども、
> どうして問題ないでしょうか。

PCのファイルはバイナリの集合でメインフレームのファイルとは異なります

> Q4:例えば、普段パソコンや携帯でよく読み書きする画像ファイルは
> いったいシーケンシャルファイルですか、それともラランダムファイルでしょうか。

シーケンシャルファイル、ランダムファイルはメインフレームのファイルの形式です
PCのファイルはメインフレームのファイルとは異なるのでどちらでもないです

という感じかなーと思いました

引用返信 編集キー/
■100971 / inTopicNo.5)  Re[1]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ KOZ (366回)-(2022/12/06(Tue) 14:36:37)
No100967 (RUNE さん) に返信

ランダムファイルも、シーケンシャルファイルも、RDB が主流となった現在では使われなくなりました。

・ランダムファイル
 1レコードを何バイトと決めて、レコード番号でレコードにアクセスします。
メインフレームの話がちょっと出てますが、PC の場合は、メインフレームで言う相対編成ファイルに当たります。

・シーケンシャルファイル
 1レコードを何バイトと決めるのは変わりがありませんがレコードを順次読み込みます。

どちらもファイルとしては同じものです。
ただオープンするときにどちらかを指定すると、システムのキャッシュがそのアクセス方式に最適化されます。

「CreateFileW 関数」
https://learn.microsoft.com/ja-jp/windows/win32/api/fileapi/nf-fileapi-createfilew

FILE_FLAG_RANDOM_ACCESS/FILE_FLAG_SEQUENTIAL_SCAN がそれに当たります。

RDB と大きく違うのは、レコード中の何バイト目〜何バイトには何を格納するかをアプリケーションが決めるところです。

画像ファイルなどは別の概念であり、上の2つには当てはまりません。

引用返信 編集キー/
■100973 / inTopicNo.6)  Re[2]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ shu (1283回)-(2022/12/06(Tue) 15:50:10)
2022/12/06(Tue) 15:50:52 編集(投稿者)

No100967 (RUNE さん) に返信

シーケンシャルファイル、ランダムファイル
というよりまずは
シーケンシャルアクセス、ランダムアクセスについて理解したほうがよいと思います。
シーケンシャルアクセスというのは先頭から順番に処理を行っていく為のアクセス方法
ランダムアクセスは先頭からのアクセスではなくランダムな場所の必要な情報へのアクセスを行う方法
となります。

シーケンシャルアクセスは先頭より順番に読み込んでいけばいいのでデータの形式さえ決まっていれば読み込む
ことが出来ますが、欲しい情報がデータの後部にあると取得するまでに時間がかかってしまいます。

ランダムアクセスはアクセスしたい場所によらずすばやくファイルポジションを取得しないと効率が悪くなってしまいます。なので
項目値の幅が固定でないCSVファイルのようなものにアクセスするには一度全体を読み込んで行の位置、行の文字数などの情報を作成しないと
いけない為、向いておりません。そこで既出のように固定長ファイルが使われます。
引用返信 編集キー/
■100974 / inTopicNo.7)  Re[3]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ RUNE (2回)-(2022/12/06(Tue) 20:39:38)
皆様

お回答ありがとうございます。

良い勉強になりました。

用語の使い方不正確にお詫び申し上げます。

《シーケンシャルファイル》と《ランダムファイル》は、《シーケンシャルなアクセス》と《ランダムなアクセス》に置き換えたいのです。

装置に絡んで複雑になるので、
現代のPCで、LINAX系のOSとHDDやSSD外部媒体に限定する場合、
特殊な指定などをしない限り《ランダムなアクセス》に決まりですね。

こう考えば、大丈夫でしょうか。


またよろしくお願いします。

引用返信 編集キー/
■100975 / inTopicNo.8)  Re[4]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ 774RR (893回)-(2022/12/07(Wed) 10:31:09)
現代 PC 用の OS に限って言うと Yes
一般人が普通にパーソナルコンピュータを使う用途ではランダムアクセスが重要視される
(ランダムアクセス性能は OS の起動時間とかに直結する)

シーケンシャルアクセスしかできない装置(LTO とか) は特定目的にはとても便利なんだけどねー
それが個人宅でどうしても必要となるのは逸般人かもしれない

引用返信 編集キー/
■100979 / inTopicNo.9)  Re[4]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ furu (187回)-(2022/12/07(Wed) 11:42:33)
No100967 (RUNE さん) に返信
> われわれ普段パソコンでファイルの保存と読み込みをする時に全然上記2種類の話を全然意識しないけれども、
> どうして問題ないでしょうか。
Excelファイル, Wordファイル, CSVファイル, 画像ファイル,
プログラムソースファイル, プログラム実行ファイルなどなど
普段パソコンで使っているファイルは
ファイルの全データを一気に読み込んでいるので
《シーケンシャルなアクセス》とか《ランダムなアクセス》とか
関係ないからだと思います。

銀行の振込用データ(全銀協規定フォーマット)は固定長フォーマットですが
普段パソコンで内容確認や変更作業では
テキストエディタで全データを読み込んで作業してしまいます。

No100974 (RUNE さん) に返信
> 装置に絡んで複雑になるので、
> 現代のPCで、LINAX系のOSとHDDやSSD外部媒体に限定する場合、
> 特殊な指定などをしない限り《ランダムなアクセス》に決まりですね。
ファイルアクセスとして《ランダムなアクセス》が必要になるのは
データベースや固定長フォーマット(フラットフォーマット)ファイルで
それ専用のシステムを使っている場合です。
引用返信 編集キー/
■100986 / inTopicNo.10)  Re[5]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ RUNE (4回)-(2022/12/07(Wed) 17:29:44)
No100979 (furu さん) に返信

furu さま


素晴らしい説明で、僕はやっと本質的な事を理解できたような気がします。

1.テープのような媒体はしょっちゅう高速に順転、逆転できないので、止む無く必ずシーケンシャルアクセスであること。

2.丸ごと読み込むファイルは、《シーケンシャルなアクセス》とか《ランダムなアクセス》とか
関係ない。


これですっきりしましたが、
最後のご説明文に戸惑っています。
=======================
ファイルアクセスとして《ランダムなアクセス》が必要になるのは
データベースや固定長フォーマット(フラットフォーマット)ファイルで
それ専用のシステムを使っている場合です。
=======================

PCのWordファイルや画像ファイル等は固定長フォーマット(フラットフォーマット)ファイルではないため、
《ランダムアクセス》できないでしょうか。


もう一度ご説明をお願いしても宜しいでしょうか。



引用返信 編集キー/
■100987 / inTopicNo.11)  Re[6]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ furu (188回)-(2022/12/07(Wed) 18:03:30)
No100986 (RUNE さん) に返信
> PCのWordファイルや画像ファイル等は固定長フォーマット(フラットフォーマット)ファイルではないため、
> 《ランダムアクセス》できないでしょうか。
《ランダムアクセス》できますけどやる意味無いです。

Wordファイルの10000バイト目に4バイトで
必ず全体の文字数が入っているとわかっていて
全体の文字数だけ知りたいなら
10000バイト目から4バイトだけを《ランダムアクセス》する
プログラムを作成すれば
かなり高速に効率的に全体の文字数わかります。
引用返信 編集キー/
■100989 / inTopicNo.12)  Re[1]: 《シーケンシャルファイル》?《ランダムファイル》?
□投稿者/ HattariB (52回)-(2022/12/07(Wed) 20:03:48)
No100967 (RUNE さん) に返信
> 《シーケンシャルファイル》と《ランダムファイル》って
> Q1:
《シーケンシャルファイル》≒巻物
《ランダムファイル》≒冊子

> Q2:
必要ではなくて必然


> Q3:
意識しなくても良いように作られてきたから


> Q4:例えば、普段パソコンや携帯でよく読み書きする画像ファイルは
> いったいシーケンシャルファイルですか、それともラランダムファイルでしょうか。
全体像を認識するための要件を満たしそうなのに着目すると、
JPEGはランダムっぽくて、
BMPとか、PNGとかJPEG2000とかはシーケンシャルっぽぃかも。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -