database)は、データベースの各種データモデル(特に表)をプレーンテキストのファイルで表す何らかの手段である。外部リンク概要[編集]「フラットファイル」とはプレーンテキストまたはテキストとバイナリの混合であり、通常1行が1レコードになっている[2]。レコード内はフィールドを区切り文字(デリミタ)で区切った構造になっており、例えばカンマで区切ったり、固定の文字数で区切ったりする。後者の場合は、規定の長さを満たすためにパディングを必要とする。一般にデリミタはフィールド内では使えない文字になるため、注意が必要である(フィールド内にデリミタと同じ文字があると、そこが区切りだと誤って解釈してしまうため)。レコード同士の間には構造的関連性はない。各行に名前と住所と電話番号をその順番で記述したファイルは、住所録のフラットファイルである。フラットファイルは人間が手で書いて紙上に作成することもでき、それも一種のフラットファイルデータベースである。タイプライターでもワードプロセッサでも作成できる。歴史[編集]計算機械の初期の用途として、単純なデータベースの実装があった。ハーマン・ホレリスは国勢調査のデータを穴を開けた紙製のカードで表し、機械を使って作表するというアイデアを思いついた(タビュレーティングマシン)。彼はこのコンセプトをアメリカ合衆国国勢調査局に売り込んだ。これにより、1890年のアメリカの国勢調査は史上初めて計算機械を使ってデータベース化されたと言える。そのデータベースは無数のパンチカードで構成されていた。ホレリスの企業はIBMの元となり、IBMは20世紀のデータ処理市場を支配し続けた。IBMの固定長フィールドの80桁のパンチカードは1970年代ごろまでデータ入力の一般的手段として使われ続けた。1980年代になると、DOSまたはMacintosh上で設定変更可能なフラットファイルデータベースがアプリケーションソフトウェアとして多数開発された。それらは、個人的なデータベースを簡単に設計でき、ワードプロセッサや表計算ソフトと同じ程度には売れていた。フラットファイルデータベース製品の例としては、初期のFileMaker、シェアウェアのPC-Fileなどがある。関係を表す能力は限定的だったが、複数ファイル間でデータを共有することができた。最近の実装[編集]FairComのC-treeは、企業向けの最近の実装例である。それ以外では、初心者が簡単にフラットファイルデータベースを利用できるようなソフトウェア製品は少ない。データベース機能(一部バージョンのWindowsでのみ利用可能)、クラリスワークスの名称でも知られているAppleWorks(Macintosh版とWindows版があった)にあった。ボーランドのParadoxやマイクロソフトのAccessのようなデータベースソフトが関係データベース的な機能を提供するようになり、同時に組み込みのプログラミング言語を使うようになっていった。一般に初心者が扱えるものではなく、プログラマがアプリケーションを組んで初めて利用可能となる。多くのアプリケーションソフトは内部的にフラットファイルデータベースを使って設定データを格納している。ユーザーが情報を入力したり引き出したりする形態のアプリケーションは内部でフラットファイルを使っていることがある。何らかのコレクションの管理ソフトや予定表などのソフトウェアである。小さな住所録ソフトも内部ではフラットファイルに情報を格納していることが多い。XMLはプレーンテキストのファイルにデータを格納する用途でよく使われるが、XMLは非常に構造的で、格納すべきデータについても定義されている。したがって、フラットファイルモデルとは全く異なる。用語[編集]「フラットファイルデータベース」という用語は、データベース論における狭い意味と、一般に使われる広い意味を持つ。厳密には、レコード長やデリミタがどうであれ、データ以外を含まない。広義には、単一のファイルで構成されるデータベースで、表形式になっているものの、各フィールドやレコード間にリンク(あるいは関係)が存在しないものを指す。データベースや関連ツールを表す用語は実装によって様々だが、概念は同じである。同じ概念を意味している。「ファイル」はMySQLの「表」と同じである。「レコード」と「フィールド」という基本用語はどんなフラットファイルデータベースの実装でもほぼ間違いなく使われている。データベースの例[編集]ここでは、フラットファイルデータベースの基本要素を例で解説する。データは行と列で配置され、1つのテーブルを構成する。ここでは単一のテーブルを使用して説明する。id(レコードを一意に識別するのに使われる。この形式のデータをテキストで表した例を以下に示す。Redsこのようなデータ表現はフラットファイルデータベースでは極めて一般的だが、テキスト表現からは分からない以下のような考慮すべき点がいくつかある。上のようなデータベースの表のそれぞれの列は、特定のデータ型でなければならない。そのような制限は通常、規約によって確立されるが、データが関係データベースシステムに転送されるまで正式に示されることはない。上の例では列と列の間は空白文字で区切られている。固定フィールド長のフォーマットになっているともいえる。他のデリミタ文字を使って列を区切る場合もある。CSV、マークアップ言語、プログラミング言語などを参照)。固定フィールド長でない場合、デリミタに出会うまで一文字ずつ調べる必要があり、若干のオーバーヘッドが生じる。カンマを代表とするデリミタを使うことでデータ量を減らすことができ(無駄な空白の連続がないため)、データ転送目的には重要だった。固定フィールド長でかつデリミタ文字を併用することは珍しいが、フィールドを素早く切り出すことができるという利点がある。上記の例での行あるいはレコードは、関係代数におけるタプルの定義に適っている(上の例では3-タプル)。1行目はフィールド名になっており、それが他の行のそれぞれの値を関係付けられる。データベース管理システムテキストファイルでの形式操作は非常に限られている。そのため、上記の例はデータベース管理システムに転送される前のデータの中間状態を表していると解釈するのが妥当である。フラットファイルデータベースであっても、実際にデータベースアプリケーションで利用する際にはフラットファイルのままデータを内部に保持するのではない。フラットファイルデータベースでありながら、ACIDトランザクションをサポートしている。TheIntegrationEngineer。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。