高校「情報Ⅰ」単語帳 - 全用語 - 情報システムとデータの管理

情報システム 【ITシステム】 ⭐⭐⭐

情報を記録、処理、伝達するための仕組み。現代では、コンピュータやソフトウェア、ネットワークなどを組み合わせて情報を管理する「コンピュータシステム」あるいは「ITシステム」とほぼ同義として用いられる。IT関連の文脈であることが明らかな場合は「システム」と略されることが多い。

「システム」(system)とは、様々な要素を組み合わせて全体としてある特定の機能を発揮する仕組みのことを指し、「情報システム」は情報を取り扱うために様々な要素をまとめて構築したシステムである。

この素朴な定義に照らせば、電子的手段に依らずに紙などを用いて情報を記録・管理する仕組みや、個人が所有・利用するパソコンなども情報システムの一種ということになるが、現代社会で一般に情報システムという場合には、企業や官公庁などの組織が事業や業務の遂行のために構築した、ある程度の規模の設備の集合体のことを指すことが多い。

狭義の情報システムは、コンピュータや通信機器などとそれらに付随する装置や備品(記憶媒体など)、コンピュータ上で実行するオペレーティングシステム(OS)やミドルウェア、アプリケーションソフトなどのソフトウェア、記憶装置に保管されるデータ、機器間や組織内外を結ぶ通信回線やネットワークなどの総体を指す。

広義には、これらの要素に加えて、開発や運用のための人員や組織、操作や管理のための手順や規則の体系(を書き表した文書類)など、情報やシステムを取り扱うための組織内の「仕組み」全体が含まれる。

情報システム部門

大企業など大きな組織が情報システムを導入・運用する際には、その調達や運用に責任を持つ専任の「情報システム部門」が設置されることが多い。本業の業務部門を補佐する間接部門の一部であり、俗に「情シス」と略されることがある。

企業にせよ、官公庁や教育機関、非営利団体にせよ、現代の組織運営や事業遂行に情報システムは欠かすことのできない役割を果たすようになっており、重要性は高まっている。専任の役員クラスの役職である「CIO」(Chief Information Officer:最高情報責任者)を置く組織も増えている。

サービス

役務、業務、奉仕、貢献などの意味を持つ英単語。人や組織の間でやり取りされる財のうち物理的実体を伴わないもの。外来語としては無料で供される役務や物品という意味もある。

ITの分野では、人や組織が提供する役務といった一般の外来語としての意味に追加して、コンピュータなどの機器やソフトウェアが、利用者や他の機器、ソフトウェアなどに対して提供する機能や働きのことをサービスということがある。

Windowsのサービス

Windowsでは、利用者や実行中のソフトウェアの求めに応じて即座に何らかの機能を提供できるよう、起動された状態でシステムに常駐するプログラムのことをサービスという。

システムやデータの管理や監視のための機能や、多くのソフトウェアが共通して必要とする汎用的な機能などを実装したもので、通常は操作画面などを持たず、利用者が直接操作することはほとんどない。

Windowsがオペレーティングシステム(OS)の機能の一部として標準的に提供するもののほかに、個々のアプリケーションソフトが提供するものがある。起動時に自動的に実行されるよう設定されており、コントロールパネルの「サービス」アプリから実行、停止、再起動を行うことができる。起動時の自動実行の有無も切り替えることができる。

集中処理 【集中型システム】

コンピュータシステムの処理方式の一つで、データの処理を一台のコンピュータ(あるいは一か所の施設)で集中的に行う方式。

データの入出力などを行なう端末やコンピュータが様々な箇所に複数(規模によっては多数)配置されるが、そこではデータの処理は行わず、中央のコンピュータ(施設)にデータを運搬あるいは送信し、集中的に処理を実行する。

管理が容易でコスト効率が高く、セキュリティを確保しやすいが、システム全体の性能や容量が中央コンピュータのそれに制約されるほか、中央コンピュータに障害などが発生すると全体が停止するリスクがある。

一方、端末などに処理能力を持たせたり、複数の大型コンピュータや施設を設置するなどして、複数のコンピュータや施設で分散して並列に処理を行う方式を「分散処理」(decentralized processing)という。

分散処理 【分散システム】

コンピュータが行う処理や取り扱うデータなどを分割し、複数のコンピュータシステムに割り振ってそれぞれが独立に実行すること。HPCクラスタやグリッドコンピューティングなどの方式が含まれる。

複数の実行主体で矛盾なく処理を分担できるよう特別に設計されたソフトウェアを用い、処理やデータを細かい単位で複数のシステムに割り当てて同時並行に進める。単体では平凡な性能のコンピュータでも、多数を連携させて分散することにより全体としては巨大な演算性能を得ることができる。

一か所の施設などに同じ機種やOSで稼働するコンピュータを集め、ネットワークで接続して連携させたものを「クラスタシステム」あるいは「コンピュータクラスタ」と呼び(性能目的の場合は特にHPCクラスタと呼ばれる)、インターネットなどを通じて広域的に、あるいは様々な機種のコンピュータを束ねて処理を依頼する方式を「グリッドコンピューティング」(grid computing)という。

一方、一台のコンピュータに複数のマイクロプロセッサ(CPU/MPU)を搭載(あるいは一つのプロセッサに複数のプロセッサコアを内蔵)し、複数のプログラムやデータを同時に処理することは「マルチプロセッシング」(multiprocessing)あるいは「並列処理」(parallel processing/並列コンピューティング/parallel computing)という。

個々の処理やデータの関連性や相互依存性が強く、ノード間のデータ送受信や全体の調整・統合処理が頻繁に必要となる科学技術シミュレーションなどは並列処理が向いており、相互の関連性が低くノード間の緊密な連携が不要な暗号解読などの処理には分散処理が向いている。

スタンドアローン 【スタンドアロン】

機器やソフトウェア、システムなどが、外部に接続あるいは依存せずに単独で機能している状態のこと。

コンピュータや情報機器などについて用いる場合は、通信機能・回線を通じて他の機器やネットワークと接続せずに、孤立した状態で使用することを指すことが多い。周辺機器がコンピュータと接続しなくても一部の機能を単体で使用可能なことを表す場合にも用いられる。

ソフトウェアについて用いる場合は、別のソフトウェアや装置の機能に依存せず、単体で実行・使用可能であることを指す場合がある。実行しているコンピュータがネットワークに接続されていないという意味で用いられることもある。

ネットワークについて用いる場合もあり、インターネットなど外部の別のネットワークに接続されていない閉じられたネットワークのことや、様々な機能や用途、通信方式が混在、相乗りしていない状態を指してスタンドアローンであると表現することがある。

MTBF 【Mean Time Between Failures】

機器やシステムなどの信頼性を表す指標の一つで、稼働を開始(あるいは修理後に再開)してから次に故障するまでの平均稼働時間。例えば、この値が10年ならば「10年の稼働時間の間に平均1回故障する」ことを表す。

ある期間における(あるいは複数の同じ機器における)機器の稼働時間の和を、その間に発生した故障の回数で除して求められる。例えば、あるシステムの運用状況を1年間調べた結果、総稼働時間が8000時間で故障による停止が4回起こっていた場合、平均故障間隔は8000/4で2000時間となる。

一般に平均故障間隔が大きいほど故障から次の故障までの間隔が長く、長期間安定的に利用できる。平均故障間隔は何度も繰り返し修理して使用する前提の指標であり、故障、破損したら修理できず破棄・交換される機器の場合には、同様の指標のことを「MTTF」(Mean Time To Failure:平均故障時間)と呼ぶ。

機器やシステムの種類や用途によっては、始動してから停止せず稼働させ続ける連続動作時の平均故障間隔と、始動・停止を繰り返す間欠動作時の平均故障間隔を別に求めて表示することもある。多くの機器では連続動作の方が使用環境としては過酷なため平均故障間隔が短くなるが、始動時や停止時に大きな負荷のかかる機器(蛍光灯やハードディスクなど)では間欠動作時の方が平均故障間隔が短くなることもある。

平均故障間隔が数か月から数年以上に及ぶ機器などの場合、実際にそれより長い期間、同じ機器を試験し続けることは現実的でないため、大量の(新品の)機器を用意して並列に試験し、稼働時間と故障回数を合算して算出することが多い。この場合、いずれの機器も新品状態から短い期間しか観察されないため、長年使用し続けた時に生じる摩耗や劣化による故障を正しく反映しない場合もある。

MTTR・稼働率との関係

これに対し、一回の故障・修理にかかる平均時間のことは「MTTR」(Mean Time To Repair)という。平均故障間隔を、平均故障間隔とMTTRの和で除したものは全時間に対する稼働時間の割合、すなわち稼働率(operating ratio)となる。

例えば、ある装置の平均故障間隔が999時間、MTTRが1時間であれば「平均999時間稼働するごとにトラブルで停止し、平均1時間の復旧時間を挟んで稼働を再開する」ことを意味するため、稼働率は999/(999+1)で0.999(99.9%)となる。

MTTR 【Mean Time To Repair】

機器やシステムなどの保守性を表す指標の一つで、故障などで停止した際に、復旧にかかる時間の平均。例えば、この値が10時間ならば「修理に平均10時間かかる」ことを表す。

ある期間のうち、故障などで停止してから稼働を再開するまでにかかった時間(ダウンタイム)の和を停止回数で除して求められる。例えば、あるシステムが調査期間中に10回停止し、停止時間の合計が100時間だった場合、平均修理時間は100/10で10時間となる。

平均修理時間が小さいほど復旧までの時間が短いことを表し、機器やシステム自体の保守性(serviceability)や運用組織の即応性や熟練度が高いことを意味する。平均修理時間の算出には稼働時間の長さは考慮されないため、対象の信頼性の高さ、堅牢性などは別の指標で測る必要がある。

MTBF・稼働率との関係

これに対し、故障(後の再始動)から次の故障までの平均稼働時間を「MTBF」(Mean Time Between Failure)という。MTBFを、MTBFと平均修理時間の和で除したものは全時間に対する稼働時間の割合、すなわち稼働率(operating ratio)となる。

例えば、ある装置のMTBFが999時間、平均修理時間が1時間であれば「平均999時間稼働するごとにトラブルで停止し、平均1時間の復旧時間を挟んで稼働を再開する」ことを意味するため、稼働率は999/(999+1)で0.999(99.9%)となる。

ベンチマーク 【ベンチマークテスト】

性能や成績などの評価手法の一つで、同種の他の対象と同じ条件で測定値を求め、相対的な比較を行う方式。また、その際に比較に用いる対象や指標のこと。

ITの分野では、ICチップやコンピュータシステムなどの性能比較でよく用いられる手法だが、IT以外の分野でも、金融商品や企業業績、工業製品などで標準的な比較手法の一つとしてよく知られる。

機器やシステムの性能を比較する場合、テスト用に開発されたコンピュータプログラム(ベンチマークソフト)を実際に実行してみて、実行時間を計測してそれぞれの被検体の性能とする。ソフトウェアの比較の場合には、同じ機材を用いてテスト用に用意されたデータや入力を処理させてみて、実行時間を計測する。

半導体チップやコンピュータ、ソフトウェア、情報システムなどは構成要素が多く構造が複雑なため、外形的な仕様や諸元の値からは具体的な性能を知ることが難しい。このため、ベンチマークによって同じ製品の前の世代や同世代の別の開発元の製品などと相対的な比較を行うことで性能を評価することが多い。

ベンチマークはある特定のプログラムやデータを処理したときの性能に過ぎず、別の対象や条件のもとでは、当然異なった結果が得られる。メーカーが製品の性能アピールに用いるような一般的なベンチマークプログラムは様々な分野や状況に共通する最大公約数的な使用環境を想定して開発されることが多いため、分野や用途によってはまったく当てはまらないこともある。具体的に使用するアプリケーションが決まっているのであれば、それを用いてベンチマークテストを行うのが望ましいとされる。

オンラインリアルタイム処理

コンピュータシステムの処理方式の一種で、端末が通信回線を通じてホストコンピュータなどに接続して、処理要求を即座に送信して実行、完了すると結果を返す方式。

処理要求が発生すると通信回線を通じて即座に送信する方式をオンライン処理(オンラインシステム)というが、オンラインリアルタイム処理ではさらに、受け付けた処理要求を即座に実行し、端末に結果を送り返す。

処理の即時性が要求される座席予約システムや、金融機関のATM(現金自動預払機)による入出金などで用いられる。一方、オンライン処理用のシステムで要求を受け付けるが、実行は定期的にバッチ処理でまとめて行うシステムを「センターカット処理」あるいは「オンラインバッチ処理」という。

クラウドコンピューティング 【クラウドシステム】

コンピュータの機能や処理能力、ソフトウェア、データなどをインターネットなどの通信ネットワークを通じてサービスとして呼び出して遠隔から利用すること。

「クラウド」(cloud)とは「雲」という意味で、IT業界ではシステム構成図などを描く際にネットワークの向こう側にある外部のコンピュータやシステムなどをまとめて雲の形の絵記号で記す慣例があることから、このように呼ばれるようになった。

従来のコンピュータ利用方式では、利用者が直接操作する端末や、同じ建物内にあるサーバなど、システム利用側が自ら保有、設置する機器上でソフトウェアやデータを管理していたが、クラウドコンピューティングではシステム本体は専門の管理施設に集約し、利用者はインターネット等の広域回線網を介してこれを使用する。

コンピュータや通信回線の性能が向上したことから実用的になった利用方式で、通常は機器を設置、運用する専門の事業者(クラウドプロバイダー)が契約者に機器やシステム、ソフトウェアの使用権を貸与するクラウドサービスの形で提供される。

インターネットから誰でも利用できるようなサービスやシステムを「パブリッククラウド」、大企業などが自社ネットワーク上で社員などが利用するために内部的に構築・運用するものを「プライベートクラウド」、両者を組み合わせたものを「ハイブリッドクラウド」という。クラウドと対比して従来型のシステムを指す場合は「オンプレミス」(on-premises)型という。

クラウド

雲、大群、集団などの意味を持つ英単語。全体像の不明確なもやもやした塊・集まりを比喩的に表すことが多い。IT分野では、まとまった計算資源を通信ネットワークを介して遠隔から利用するシステム形態のことをクラウドという。

従来は手元のコンピュータに導入して利用していたようなソフトウェアやデータ、あるいはそれらを提供するための機器や回線といった技術的な基盤を、インターネットなどのネットワークを通じて必要に応じて利用者に提供する方式を意味する。

IT業界ではシステム構成図などを描く際に通信回線の向う側にある外部のネットワークやコンピュータ、情報システムなどをまとめて雲の形の絵記号で記す慣例があることから、このように呼ぶようになった。クラウドと対比して、従来型の自前施設内に設置した機器やシステムを指す場合は「オンプレミス」(on-premises)という。

提供方式

サービスの提供者は大規模なデータセンターなどに多数のサーバコンピュータや通信機器などを用意し、遠隔からインターネットなどの広域回線網(WAN)を経由して契約者にシステムを操作させる。利用者は登録後すぐに用意されたシステムの提供する機能や資源にアクセスして使用することができる。

利用者は機器やソフトウェアの「買い切り」をせず、通信回線のように利用期間や利用実績に応じて料金を支払いサービスを利用する。オープンなサービスの場合はネット環境さえあればどのような場所や端末からでも自分用の操作画面やデータにアクセスできる。

課金体系

一般消費者向けサービスの場合は、登録や基本機能の使用を無料として、追加機能や容量に毎月一定額を課金するフリーミアムモデルを取るものが多い。

法人向けサービスの場合は、月額基本料金に使用実績(外部へのデータ転送量など)に応じた従量課金を組み合わせた料金体系のサービスが多い。

企業などで情報システムを運用する場合、自社内設置(オンプレミス)だと固定的に設備(その多くは税法上の資産)や人員を抱えることになるが、金額が同水準でもサービス料の形で支払う方が財務・会計の都合上好ましい場合も多い。

パブリッククラウドとプライベートクラウド

クラウドを運用するシステムのうち、広く一般の利用に供され、インターネットを通じてオープンにアクセスできるようになっているものを「パブリッククラウド」(public cloud)という。

契約者はインターネットを通じて事業者のサーバにアクセスして設定や管理などを行い、自らの業務のため、あるいは自らの製品やサービスの顧客のためにシステムを運用する。一般消費者向けサービスや、Webサイトやネットサービスの公開・提供のために用いられるクラウドサービスなどはこの形態を取る。

一方、特定のネットワークや登録利用者からのアクセスのみを受け付け、インターネットや公衆網からは切り離されて運用されているものを「プライベートクラウド」(private cloud)という。

企業や官公庁などが内部的に使用する情報システムの運用などに適した形態で、オンプレミス型の従来システム同様、組織内の施設や設備を用いて内部ネットワーク上に構築される。クラウド事業者が専用回線やVPNを経由して外部から切り離されたクラウド環境を提供する場合もあり、「仮想プライベートクラウド」(virtual private cloud)等と呼ばれる。

SaaS/PaaS/IaaS

クラウドは提供する機能や資源の種類により、大きく分けて「SaaS」「PaaS」「IaaS」の三つに分類することが多い。

「SaaS」(Software as a Service:サービスとしてのソフトウェア)は特定の機能を持つアプリケーションソフトをWebブラウザなどを通じて遠隔から操作できるようにしたサービスを指す。従来、オペレーティングシステム(OS)の一部として実装されてきた機能や、パッケージソフトなどの形で販売・公開されていたものをインターネットを通じてサービスとして提供する。オンラインストレージやWebブラウザで使用できるオフィスソフトなどが該当する。

「PaaS」(Platform as a Service:サービスとしてのプラットフォーム)はソフトウェアの実行環境を遠隔から操作できるようにしたサービスを指す。コンピュータにOSやミドルウェア、プログラミング言語処理系などを導入済みの環境を契約者に遠隔から操作させるサービスで、利用者は必要なアプリケーションを導入して使用する。従来のホスティングサービス(レンタルサービス)に近く、ネットサービス運用などのために用いられることが多い。

「IaaS」(Infrastructure as a Service:サービスとしてのインフラ)は仮想化されたコンピュータ自体を遠隔から操作できるようにしたもので、利用者はOSなどのソフトウェアをすべて自前で用意して導入・運用する。ハードウェアに近い階層から自由に操作・設定できるようにしたサービスで、企業などの情報システム運用などに適している。

“cloud” と “crowd”

日本語のカタカナ表記では同音異義語になる単語として “crowd” があり、こちらは群衆、大衆、観衆、人混み、押し寄せる、群がる、などの意味がある。Webサイトやネットワークサービスなどにおける「不特定多数の利用者の集団」などといった意味合いで用いられることが多い。

相互に繋がりのない(または薄い)利用者が少しずつ情報を出し合って全体として有益な知見を生み出したり、労力や資金を出し合って大きなプロジェクトを形成するといった文脈で用いられるが多い。「クラウドソーシング」(crowd sourcing)や「クラウドファンディング」(crowd funding)などの「クラウド」はこの “crowd” である。

データセンター 【DC】

外部へ機能やサービスを提供するためのサーバコンピュータなどを設置、運用のための施設。特に、インターネットへ向けてサービスを提供するためのものをインターネットデータセンター(IDC)という。

一般の商業ビルの一フロアや一室をコンピュータ設置専用に用いる場合と、データセンター専用のビルを建築して用いる場合があり、一般企業の情報システム部門などでは前者が、IT関連の事業者やサーバの設置・運用を受託する専門の事業者の場合は後者の形態が多い。近年では一般の企業も自社内での運用(オンプレミス)をやめ専門事業者に委託する例が増えている。

構内には大量のコンピュータや通信装置、ケーブルなどがあり、これらが専用の棚型の什器(19インチラックなど)などを用いて高密度に配置されている。一般のオフィスとは異なり、人間がコンピュータを操作するための机や椅子、入出力装置(ディスプレイ、マウス、キーボードなど)などは無いか、管理者のために簡素な設備がわずかに設置されているのみとなっている。

専用施設の特徴として、大容量の受電・配電設備、予備電源(無停電電源装置やディーゼル発電機など)、大容量の回線を引き込める通信設備、機器の発する膨大な熱を効率的に除去する専用の空調設備、災害に強い立地や高度な耐震・免震構造、入退室の厳密な管理や記録などがある。

ホスティングとハウジング(コロケーション)、マネージドサービス

データセンターの運用に特化し、外部からサーバなどの設置・運用を受託する事業者も存在する。このうち、契約者が事業者の設置したサーバなどをリースやレンタルなどの形で借り受け、通信回線を通じて外部から利用する形態を「ホスティング」(hosting)、契約者自身が用意した機材を事業者のセンター内に設置し、管理も契約者側の人員が遠隔操作や入室して行う方式を「ハウジング」(housing)あるいは「コロケーション」(colocation)という。

また、両者の中間的な形として、契約者が機器を持ち込んで設置するが、日常的な管理・運用は事業者側が請け負う「マネージドサービス」(managed serive)と呼ばれる契約形態もある。

コンテナ型データセンター

貨物コンテナにデータセンターとして必要な電源、空調、通信、什器などの機材(場合によってはコンピュータ自体も)をコンパクトに収納し、必要な場所に運搬して利用する形態をコンテナ型データセンター(data center container)という。

2000年代後半頃から見られるようになったもので、外装は貨物コンテナそのものであるため、トレーラーやコンテナ船、国によっては貨物鉄道などで運搬することができる。必要な場所に必要な数だけ持ち運んで、通信回線や電源を引き込めば即席のデータセンターを開設することができる。

スケールアウト 【水平スケール】

コンピュータシステムの性能を増強する手法の一つで、コンピュータの台数を増やすことでシステム全体の性能を向上させること。処理を並列化、分散化できるシステムで適用される。

同じ構成・機能のコンピュータを複数台設置し、処理を分担することで全体としての性能を向上させる。安価なコンピュータを多数追加することで性能を向上させられるためコスト面で有利な場合が多く、また、システム全体として一台のコンピュータでは不可能な規模や性能を実現することもできる。ただし、物理的な機器が増えるため設置面積や消費電力、装置の故障・交換頻度などの面では不利となる。

一方、コンピュータの構成部品を増設・交換するなどして性能や容量を拡張する手法のことを「スケールアップ」(scale up)という。処理の分散化が難しく単体のコンピュータの性能が重要なシステムで適用される。

GPS 【Global Positioning System】 ⭐⭐

人工衛星を利用して自分が地球上のどこにいるのかを正確に割り出すシステム。米軍の軍事技術の一つで、地球周回軌道に30基程度配置された人工衛星が発信する電波を利用し、受信機の緯度・経度・高度を10m前後の誤差で割り出すことができる。

基本的な原理

GPS衛星には極めて高精度な原子時計が搭載されており、自らの軌道上での現在位置と現在時刻を定期的に電波で発信している。受信機がこの電波を受信すると、発信時刻と受信時刻の差から電波が届くのにかかった時間がわかり、光速(約30万km/s)を掛ければ衛星までの距離を知ることができる。

軌道上には多数のGPS衛星がおり、受信機は複数の衛星までの距離を知ることができる。3つの衛星までの距離が分かれば、それぞれの衛星から距離を半径とする球面が交わる点が現在位置ということになる。実際には受信機の時計が正確でないことが多いため、これを補正するために4つ目の衛星からの情報が必要となる。

主な用途

元来は米軍による軍事用の技術だが、民間や外国でも基本的には自由に利用できることから、航空機や船舶の航行システム、自動車のカーナビゲーションシステム、測量システム、登山用ナビゲーション機器、デジタルカメラの撮影位置記録などに応用されてきた。

近年では受信機の小型化、低価格化が進み、ほぼすべてのスマートフォンやタブレット端末などに標準でGPS機能が内蔵されている。アプリやネットサービスと組み合わせ、地図やナビゲーション、見守り、紛失物発見、オンラインゲーム、SNSなどのサービスに利用されている。

GPS衛星 (NAVSTAR衛星)

GPSに用いられる人工衛星は米国防総省が管理しており、正式には「NAVSTAR」(NAVigation Satellite Timing And Ranging)と呼ばれる。高度約2万kmの6つの軌道面にそれぞれ4つ以上、計24個以上が配置され、約12時間周期で地球を周回している。

約7年半で寿命を迎えるため、毎年のように新しい衛星を打ち上げて軌道に投入しており、概ね30個前後の衛星が常時運用されている。GPS衛星は高性能の原子時計を内蔵しており、1.2/1.5GHz帯の電波で時刻を含むデータを地上に送信している。

暗号化と精度

GPS衛星の発信する電波に含まれる信号には、軍事用に暗号化されたものと民間用に暗号化されていないものの2種類がある。暗号化されたデータは極めて高精度で、米軍しか利用することができない。誤差は数cmから数十cmと言われており、精密誘導兵器などに利用されている。

民生用に利用できるものは暗号化されていないデータで、誤差は10m程度となる。1990年代までは民生用のデータは故意に精度を落として誤差100m程度で運用されていたが、2000年以降は精度低下措置は有事の際に地域を限定して行う方針となった。2007年以降は恒久的に低下措置は行わない方針となっており、誤差10m程度の状態が定着している。

補助手段による精度向上

補助的な手段を加えることで精度向上や位置特定までの時間を短縮する技術がある。このうち、位置の分かっている固定の地上局からFM電波を発信し、GPS衛星の代用とする技術を「DGPS」(Differential GPS)という。日本では全国の沿岸に27局が整備されたが2019年に廃止された。

スマートフォンなどでは、移動体通信ネットワークの基地局が常時GPS衛星の情報を受け取り、端末の要求に応じて提供する仕組みがあり、「A-GPS」(Assisted GPS/補助GPS)という。端末が自前で受信するよりも素早く初回の測位を行うことができる。基地局からの電波を用いてGPSと同じ原理で端末の位置を割り出す仕組みもあり、GPSと併用されている。

国によっては、GPS衛星と互換性のある高精度の信号を発信する衛星を独自に打ち上げ、自国領や周辺地域に限って精度向上を図っている場合もある。インドでは静止衛星を利用した「NavIC」を、日本では準天頂衛星を利用した「QZSS」を運用している。QZSSは対応機器であればセンチメートル級の極めて高精度な信号を利用できる。

他の衛星測位システム

GPSおよびGPS衛星は米国政府が保有・運用しているため、各国政府は社会インフラや軍事インフラとしての位置情報の取得技術を米政府に依存する状態に危機感を覚え、同種の衛星測位システムの開発および運用に乗り出している。

ロシアでは1996年から「GLONASSグロナス」を、中国では2012年から「北斗ほくと/ベイドゥ」を、欧州連合(EU)では2016年から「Galileoガリレオ」を運用している。インドの「NavIC」や日本の「QZSS」のように運用地域を限定した衛星測位網を構築している国もある。これらすべてを総称して「GNSS」(Global Navigation Satellite System)と呼ぶこともある。

GIS 【Geographical Information System】

地図や地形データ、航空・衛星写真などの空間情報と、地理的な位置に関連する様々なデータを統合的に扱うことができる情報システム。

地図データと他のデータを相互に関連づけたデータベースと、それらの情報の検索や解析、表示などを行うソフトウェアから構成される。データは地図上に図形や記号、色分けなど駆使して分かりやすく表示され、解析対象の分布や密度、配置などを視覚的、直感的に把握することができる。

企業では地図上に人口分布や商店の配置などを当てはめ、商圏分析や顧客開拓、出店計画などに応用している。行政では都市計画やインフラ整備、固定資産管理、資源管理、災害対策、犯罪分析などでよく用いられる。

人工衛星により機器の現在位置を検知するGPS(全地球測位システム)と組み合わせたシステムもよく用いられ、カーナビゲーションシステムやスマートフォン向けの地図アプリ、ローカル検索などが広く普及している。

ETC 【Electronic Toll Collection】

有料道路の料金所などに設置された通信機と自動車に搭載した端末(車載器)で無線通信を行い、走行しながら自動的に料金の支払いなどを処理するシステム。

利用者は出入り口や本線料金所でETCに対応したゲート(ETCレーン)を速度を落として通り抜けるだけでよく、発券機や窓口を利用する必要がない。全国の高速道路、自動車専用道路で整備・導入が順次進められており、主要な有料道路のほとんどの出入り口には一つ以上のETC専用レーンあるいはETCゲート・有人窓口併設レーンが設けられている。

道路運営者側はETC普及により段階的に料金所の窓口・係員を削減して道路運用コスト低減が可能となり、料金所周辺の渋滞緩和の効果も期待できる。経路や混雑状況、時間帯などに応じて料金の割引などを行い、交通量の誘導・分散を行う試みも実施されている。

世界数十ヶ国で導入されているが、各国が独自の方式を規定しており、同じ国の中でも道路の運営主体によってシステムが異なる国もある。車載器ごとに支払者を固定する方式と、車載器にIDカードなどを差し込み、カードの持ち主を支払者にする方式がありる。

日本ではクレジットカード会社が発行する接触式ICカード(ETCカード)を専用の車載器に差し込む仕組みになっており、料金は紐付けられたクレジットカードの口座に請求される。機器の技術規格が統一されているため、利用者は一枚のカードがあれば(車載器のある)どの車でも、全国のどの道路でも同じように支払いを行うことができる。

ITS 【Intelligent Transport Systems】

道路交通に情報技術や通信技術を応用し、交通問題の軽減、交通の効率化や高度化などをはかる技術や製品、サービスなどの総称。自動車や道路、標識や信号機などの道路設備、駐車場、公共交通、歩行者などに関連する、情報システムを応用した機器やサービス、制度などが含まれる。

日本では1995年に当時の警察庁、運輸省、建設省、郵政省、通産省が共同で全体構想を策定した。この中ではITS全体を、ナビゲーションシステムの高度化、自動料金収受システム、安全運転の支援、交通管理の最適化、道路管理の効率化、公共交通の支援、商用車の効率化、歩行者等の支援、緊急車両の運行支援の9分野に整理している。

現在までに、VICS(道路交通情報通信システム)やETC(電子料金収受システム)、バスロケーションシステム、自動ブレーキシステム、車線維持支援システム、事故自動通報システムのように実用化や普及が進んでいるものが数多くある一方、トラックの自動隊列走行のように実験段階のものや、構想段階で足踏み状態の技術や施策もある。

VICS 【Vehicle Information and Communication System】

刻々と変化する道路状況や交通情報などを電波などで自動車に知らせるシステムのこと。財団法人道路交通情報通信システムセンターが運用しており、カーナビゲーションシステムなどから利用できる。

同センターが関係機関から交通や道路に関する情報を収集し、全国に配置された設備から電波などで発信している。VICS規格に対応した車載機器を内蔵した自動車は、近隣の設備から情報を受け取ってカーナビの画面などに重ね合わせて表示する。

提供される情報には、混雑や渋滞、所要時間の情報、事故や工事、故障車、路上障害物などの情報、速度や車線規制、通行止め、高速出入り口の閉鎖などの一時的な規制に関する情報、駐車場やサービスエリア、パーキングエリアの所在や混み具合の情報などがある。

情報の発信方式としては、全国のFMラジオ放送の電波に人間の聞こえない形式の信号を重ね合わせて送信するFM多重放送、高速道路などに設置された電波ビーコン、一般道に設置された光ビーコンなどがある。各発信設備は周辺や進行方向の情報のみを提供している。

VICSの利用自体は無料だが、カーナビなどが対応機種である必要があり、通信方式に応じた受信装置(アンテナや配線など)が必要になる。電波ビーコンは初期には2.4GHz帯の電波を用いていたが、2010年代からは5.8GHz帯のDSRC方式を用いる「ITSスポット」が整備され、これを利用した情報サービスは「ETC2.0」と呼ばれる。

IoT 【Internet of Things】 ⭐⭐⭐

コンピュータなどの情報・通信機器だけでなく、世の中に存在する様々な物体(モノ)に通信機能を持たせ、インターネットに接続したり相互に通信することにより、自動認識や自動制御、遠隔計測などを行うこと。

自動車の位置情報をリアルタイムに集約して渋滞情報を配信するシステムや、人間の検針員に代わって電力メーターが電力会社と通信して電力使用量を申告するスマートメーター、大型の機械などにセンサーと通信機能を内蔵して稼働状況や故障箇所、交換が必要な部品などを製造元がリアルタイムに把握できるシステムなどが考案されている。

これまでの情報システムとの違いとして、個々の機器の取り扱うデータ量や処理量、通信量は少ないが機器の数が桁違いに膨大であることや、従来のコンピュータ製品が人の周りや特定の場所(建物や部屋)に集中しているのに対しIoT機器は世の中の様々な場所に分散して配置される点などがある。

こうした特徴を反映し、低コストで生産でき低消費電力で稼働するICチップや、多数の機器からデータを集約して解析したり、同時に多数の機器を制御するソフトウェア技術、低消費電力で遠距離通信が可能な無線技術、環境中から微小なエネルギーを取り出す技術(エナジーハーベスティング)などの研究・開発が進められている。

LPWA (Low Power Wide Area)

IoTに必須の要素として、装置の消費電力が少なく、多数の機器を一つのネットワークに収容できる広域的な無線通信技術があり、これを「LPWA」(Low Power Wide Area)と総称する。そのような通信方式で構築されたネットワークは「LPWAN」(Low Power Wide Area Network)とも呼ばれる。

IoTを実現するには、携帯電話網など従来からある広域無線技術に比べ、十~数十kmといった遠距離や広い範囲をカバーでき、乾電池などの乏しい電源でも数か月から数年は稼働できることが求められる。一方、人間がスマートフォンなどの通信機器に求めるような高速なデータ伝送能力は必ずしも必要なく、数十~数百kbps(キロビット毎秒)程度あれば実用に供することができる。

このような特性を備えた新しい通信方式をLPWAと呼び、具体的な規格として「Sigfox」「LoRa」「Wi-Fi HaLow」「Wi-SUN」「LTE-M」「NB-IoT」「RPMA」などの方式が提唱されている。

M2M/センサネットワークとの違い

以前から、機器同士を直接繋いで自律的にシステムを運用する「M2M」(Machine to Machine)や、通信可能なセンサーを分散配置して高度な監視や制御を可能にする「センサネットワーク」(WSN:Wireless Sensor Network)などの概念が存在し、これらはかなりの部分がIoTと重複している。

ただし、IoTはインターネットへの接続を前提とするのに対し、これらの技術は閉じた専用ネットワークや独自プロトコル(通信規約)での運用を想定している場合が多い。また、M2Mやセンサネットワークは特定の目的のために機械同士が情報のやり取りすることで処理が完結する仕組みであることが多いのに対し、IoTは接続された機器と人や外部の情報システムとの相互関係がより重視される傾向がある。

IoE (Internet of Everything)

「ありとあらゆるものが接続されたインターネット」という意味で、モノのインターネットと、人やデータ、情報、ソフトウェアなどが中心の従来からあるインターネットが統合された姿を指す。

とはいえ、従来のインターネットとの違いは多数のモノが接続されている点であるため、実際上はIoTとほぼ同義として用いられることが多い。主に米シスコシステムズ(Cisco Systems)社が提唱している用語である。

POSシステム 【Point Of Sales system】 ⭐⭐⭐

小売店などで客に商品を販売する際に何がいくつ売れたかを単品ごとに端末に入力し、売上や在庫などの情報をリアルタイムに管理するシステム。

専用のキャッシュレジスター(POSレジ)を用いて商品パッケージのバーコードを読み取り、販売した日時や数量などと共にシステムに入力する。むき出しの生鮮品などバーコードを貼付できない商品は端末に設けられたボタンやタッチパネルで販売員が商品を指定する。

得られたデータはネットワークを通じてストアコンピュータ(ストアコントローラ)と呼ばれる管理用コンピュータに登録され、同じ企業が複数店舗を展開している場合やフランチャイズチェーンの場合は本部のITシステムに情報が集積される。

POSシステムを通じて得られた情報は、売上や利益、税金など各種の会計上の計算、在庫や発注の管理、売上動向の把握や解析、販売促進施策の計画や効果測定など、様々な用途や目的のために活用される。

商品に付けられるバーコードを、メーカーなどがあらかじめ包装などに印刷やシールで掲載した状態で納品する方式を「ソースマーキング」、店内で専用の端末からシールを印刷して貼付する方式を「インストアマーキング」という。

現金自動預払機 【ATM】

金融機関などが設置・運用している機械の一つで、顧客が通帳やカードなどを使い、現金の預け入れや引き出し、別の口座への送金などができるもの。

最も一般的なものは銀行が設置しているもので、自行の顧客や提携している他行の顧客が預金通帳やキャッシュカードなどを用いて、自分の預金口座への入出金や、他の口座や他行への振り込みや振り替え、残高照会、通帳記入などを行なうことができる。

対面の窓口で行う手続きの一部を機械で置き換えたもので、支店や出張所の店内の一角に並んでいるほか、都市部の駅前などにはATMのみが置かれた簡易な出張所が設置されることもある。提携している一般の店舗や商業施設に置かれたり、駅や公共施設に置かれているものもある。

証券会社や貸金業者、クレジットカード会社などが設置しているものもあり、口座への入出金、キャッシング、支払い、返済など、その金融機関に関連する現金の出し入れを行なうことができる。現金の払い出しのみが可能な機器は「キャッシュディスペンサー」(CD:Cash Dispenser)と呼ばれるが、これを含めて現金自動預払機と総称されることもある。

ブロックチェーン

一定の形式や内容のデータの塊を改竄困難な形で時系列に連結していく技術。内容が随時追加されていくデータ群を複数の独立した対等な主体の間で安全に共有することができる。仮想通貨(暗号通貨/暗号資産)の開発を通じて誕生し、他の用途へも応用されている。

ブロックチェーンを用いて記録されたデータはインターネットなどを通じて参加者間で複製、共有されるが、途中の一部を改竄しても全体を整合性のある状態にすることは困難な性質があり、特定の管理者や管理システムが存在しなくても真正なデータを共有することができる。

この性質を応用し、ネットワークに参加する二者間の取引を記録した台帳データを参加者間で共有しつつ、取引の発生に応じて追記していく分散型台帳を実現することができる。この台帳によって値の移動を追跡、検証可能な方法で記録したものを一種の通貨として利用する試みを暗号通貨という。

ハッシュ値とPoW(Proof of Work)

各ブロックには記録されるデータと共に、一つ前のブロックのデータから算出したハッシュ値が添付される。ハッシュ値はデータの長さによらず固定長の短いデータで、元になるデータが少しでも変化すると規則性なくまったく異なる値になるという性質がある。

これにより、チェーンの途中にあるブロックの内容を改変すると、次のブロックに記録されたハッシュ値と一致しなくなる。これを整合するように改変しても、今度はその次のブロックのハッシュ値と一致しなくなるため、後続のすべてのブロックを連結し直さなければならない。

単にハッシュ計算をやり直して連結し直すだけならばデータ量によってはすぐにできる場合もあるが、多くのブロックチェーン技術ではハッシュ値が特定の条件を満たすようブロックに短いデータ(nonce:ナンスという)を追加する。適切なナンス値を発見するには多数の候補値を用意して条件を満たすまで何度も繰り返しハッシュ値を算出し直す膨大な総当り計算が必要となる。

あるブロックのハッシュ値が条件を満たすことができるナンス値が発見されると、ようやくブロックを閉じて連結することができる。この工程を「PoW」(Proof of Work)と呼び、ビットコインなどのシステムではナンス値を算出した利用者に報酬として新たに暗号通貨を発行する仕組みになっている(コインのマイニングと呼ばれる)。

算出に時間がかかるナンス値が各ブロック毎に用意されていることにより、攻撃者が途中のブロックを改竄しても、後続のすべてのブロックのナンス値の割り出しをやり直さなければ正しいチェーンを得ることができず、改竄を極めて困難にすることができる。システムによってはPoWの代わりにPoS(Proof of State)など別の仕組みを用いる場合もある。

歴史

2008年に「Satoshi Nakamoto」(サトシ・ナカモト)という日本人風の名を名乗る匿名の人物(身元が分からず個人なのか集団や機関なのかも不明)が暗号通貨ネットワークの「ビットコイン」(Bitcoin)を立ち上げ、同時に公開された論文の中でその原理をブロックチェーンの語で紹介したのが最初である。

その後、ビットコインを模した暗号通貨が数多く作られ、インターネット上の交換所を通じて現金との間で、あるいは暗号通貨間で活発に取引が行われている。現在は主に投資用の資産として売買されており、通貨としての機能、すなわちモノやサービスの売買の決済、支払い手段としてはほとんど普及していない。

台帳に取引記録以外の情報を載せることで様々な仕組みを構築することもでき、ある種のプログラムを搭載して条件に応じて自動的に実行する「スマートコントラクト」などが提唱されている。2015年頃からブロックチェーンを金融取引などへ適用する試験的な取り組みなどが活発になっているが、今のところ暗号通貨のように既存の技術や制度では実現できない、あるいは決定的に優位性のある用途は見つかっていない。

認証局 【CA】

電子商取引事業者などに、暗号通信などで必要となるデジタル証明書を発行する機関。信頼の起点となる「ルート認証局」(root CA)と、証明書の発行を担う「中間認証局」(intermediate CA)がある。

ルート認証局は上位の認証局による認証を受けず、自分の正当性を自ら証明する。他の認証局に対してデジタル証明書を発行し、認証局に対する信頼の拠り所となる。ルート証明書の信頼性は、厳しい監査を受けることや、認証業務運用規程(CPS)を公開すること、運用実績や知名度など、デジタル証明書以外の方法で示される。

ルート認証局以外の認証局が中間認証局で、上位の認証局からデジタル証明書を発行してもらうことで、自らの正当性を証明する。中間認証局の多くは一般にデジタル証明書を販売する事業者で、Webサーバに導入するSSLサーバ証明書などはここから購入する。

通常、Webブラウザなどデジタル証明書を利用するソフトウェアには、ソフトウェアの発行元や利用者が信頼できるルート認証局の証明書が同梱されている。Webサイトなどに接続した時に、相手の提示した証明書が信用できるかどうかは、発行元の認証局を調べ、さらにその認証局を認証している上位局を調べ…といった具合に辿っていき、最終的に自分の手元にあるルート証明書に一致するルート認証局にたどり着けば、信用できると確認できる。

なお、商用認証局から証明書の交付を受けるには費用がかかるため、Webサイトなどの中には、自らがルート認証局となって証明書を発行し、暗号化通信などを利用するサイトもある。そのようなサイトの場合、あらかじめ同梱されたルート認証局の認証は受けていないことになるため、Webブラウザなどがその旨警告するようになっている。

登録局 (RA:Registration Authority)

デジタル証明書の発行申請を受け付け、本人確認を行い、認証局(CA:Certificate Authority)に発行を申請する機関を登録局(RA:Registration Authority)という。主に大規模なPKI(公開鍵認証基盤)で設置されるもので、自らは証明書を発行する機能・権限はなく、末端の利用者に対して発行や失効の手続きを受け付ける窓口となる機関である。

登録局から申請に応じて証明書を発行するのはCAの役割だが、登録局からの要請に基いて(自らは本人確認など登録局が行う業務は行わず)証明書の発行のみを行うCAのことを発行局(IA:Issuing Authority)ということがある。

検証局 (VA:Validation Authority)

デジタル証明書の失効リスト(CRL)を集中管理して、証明書の有効性をチェックする機関を検証局(VA:Validation Authority)という。認証局(CA)と違い、デジタル証明書の発行は行わず、検証機能に特化しているためこのように呼ばれる。クライアントからの問い合わせに応じて、CAの公開鍵で署名の正当性を検証したり、証明書の有効期限を確認したりする。

トレーサビリティ 【追跡可能性】

過程や来歴などが追跡可能である状態のこと。一般の外来語としては、消費財や食品などの生産・流通の過程を履歴として統一的に記録し、消費者などが後から確認できること、および、そのような制度やシステムを意味することが多い。

ITの分野では、システム開発などの各工程で制作される様々な文書やプログラムなどについて、対応関係や変更履歴などを記録し、追跡や検証ができる状態をトレーサビリティという。

例えば、要件定義と仕様書、仕様書とソースコード、仕様書とテスト仕様書などの間で、前工程で規定された項目が後工程の成果物に漏れなく反映されているかをチェックできるようにすることなどを指す。

アドミニストレータ 【アドミン】

管理者、行政官、管財人などの意味を持つ英単語で、ITの分野ではコンピュータや通信機器、オペレーティングシステム(OS)などを管理する人や役職のことをこのように呼ぶ。管理に必要なシステム上の特権的・優越的な権限を与えられた人やユーザーアカウントを指すこともある。

企業などでコンピュータなどの情報・通信機器やシステムを使用する場合、利用者はそれぞれ固有のユーザーアカウントを与えられ、所属や役職に応じた使用権限のもとで操作を行うことが多い。このうち、その機器やシステムを管理するために、重要な変更を加える操作や設定などを行う権限が付与された管理者ユーザーのことをアドミニストレータという。

また、組織内で情報システムの整備や維持、利用者へのサポートなどの業務を担当する職員を「システムアドミニストレータ」(system administrator/シスアド、シス管などと略される)と呼ぶことがあり、これを略してアドミニストレータという場合もある。

万能の権限を持つ管理者ユーザーとして、UNIX系OSでは慣習的に “root” (ルート)という名前のアカウントが用意されていることが多い。Windowsでは、管理者権限を持つ組み込みアカウント(ビルトインアカウント)として “Administrator” が用意されており、Administratorユーザーが所属する管理者グループとして “Administrators” が用意されている。

IPA(情報処理振興機構)の実施する情報処理技術者試験にはかつて、システム管理者の知識・能力を認定する「初級システムアドミニストレータ試験」(初級シスアド)「上級システムアドミニストレータ試験」(上級シスアド)という区分があった。

データベース 【DB】 ⭐⭐⭐

複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。現代では専用の管理システムで構築・運用するデータの集合体を指すことが多い。

コンピュータ上でソフトウェアによって管理され、特定の構造や形式に従って同種のデータ群を蓄積したものを指すことが多い。「データベース」の語は文脈によって、実際に蓄積されたデータの集合体そのものを指す場合と、これを管理する「データベース管理システム」(DBMS:Dababase Management System)を指す場合、両者やデータを利用するアプリケーションソフトなどを含めたシステム全体を指す場合がある。

DBMSは管理者が設定した一定の形式や構造に従ってデータをストレージ装置などに記録・蓄積するシステムで、大量のデータを系統立てて保管することができる。必要に応じて検索、抽出、加工することができるため、企業の情報システムのデータ管理の中核として利用されることが多い。

リレーショナルデータベース

データベースにはデータをどのような構造や方式で格納、管理するかによって様々な種類がある。今日最も一般的に利用されるのは「リレーショナルデータベース」(RDB:Relational Database/関係データベース)と呼ばれるもので、一件のデータを複数の属性の値の組として表現し、組を列挙することでデータを格納していく。属性を列、組を行とする表(テーブル)の形で示されることが多い。

RDBの操作は「SQL」(Structured Query Language)と呼ばれる専用の問い合わせ言語で行われることが多い。命令語と操作対象、条件などを連ねてDBMSに指示を与える言語で、テーブルの作成や削除、テーブルへのデータの追加や上書き、削除、DBMS自体の設定の変更などの操作を行うことができる。

リレーショナルデータベースを管理するためのDBMSのことを「リレーショナルデータベース管理システム」(RDBMS)という。Microsoft AccessやFileMaker Proのようなデスクトップアプリケーションから、企業などの情報システムで専門の技術者が運用するOracle DatabaseやMicrosoft SQL Server、MySQL、PostgreSQLなどのサーバアプリケーションまで様々な規模、機能の製品がある。

DBMS 【Database Management System】 ⭐⭐⭐

データベースを管理し、利用者や外部のソフトウェアからの要求に応えてデータの操作を行う専門のソフトウェア。

ハードディスクなどのストレージ装置(外部記憶装置)内に専用の管理領域を設け、データを記録するための構造体の作成や消去、構造の修正、データの書き込み、上書き、削除などを行う。条件を指定してデータを検索したり、特定のデータの集合を抽出したりする機能も提供する。

管理者や利用者が直接操作してこれらの操作を行うほかに、外部のソフトウェアからの接続を受け付け、指示を受けてこれらの操作を行うのもデータベース管理システムの重要な機能である。データの管理にデータベース管理システムを利用することで、個別のアプリケーションソフトがデータの記録・管理機能を自前で実装する必要がなくなり、自らの役割に専念することができる。

基本的な機能の他にも、誤ったデータの記録を拒否して整合性を維持する機能や、権限のない利用者による不正なデータの盗み見や改竄を防ぐ機能、関連する複数の操作を一体的に矛盾なく実行する「トランザクション処理」機能、障害に備えてデータを複製(バックアップ)したり過去のある時点の状態を復元する機能を備えたものもある。

DBMSの種類

データベース管理システムにはデータの記録形式(データモデル)によっていくつかの種類がある。最も広く普及しているのは「リレーショナルデータモデル」(関係データモデル)と呼ばれる方式でデータを格納する「「リレーショナルデータベース管理システム」(RDBMS:Relational Database Management System)で、単にデータベース管理システムと言えばRDBMSを指すことが多い。

代表的なRDBMS製品としては、米オラクル(Oracle)社の「Oracle Database」、米マイクロソフト(Microsoft)社の「SQL Server」、米IBM社の「Db2」などがあり、オープンソースソフトウェアとして配布されている「MySQL」や「PostgreSQL」「MariaDB」なども人気が高い。

パソコンなど利用者の操作環境上で単体のアプリケーションとして動作し、グラフィック表示(GUI)の操作・編集システムと共に提供される製品は「デスクトップデータベース」とも呼ばれる。個人やグループ単位の小規模なデータ管理に用いられ、「Microsoft Access」や米クラリス(Claris)社の「FileMaker Pro」などがよく知られる。

近年では「KVS」(Key-Value Store:キーバリューストア)や「列指向データベース」「グラフ指向データベース」「ドキュメント指向データベース」など非リレーショナル型のデータベース管理システムの増えている。RDBMSの問い合わせ言語であるSQL(Structured Query Language)に囚われないという意味で「NoSQL」(Not only SQL)と総称される。

DBMS 【Database Management System】

データベースを管理し、利用者や外部のソフトウェアからの要求に応えてデータの操作を行う専門のソフトウェア。

ハードディスクなどのストレージ装置(外部記憶装置)内に専用の管理領域を設け、データを記録するための構造体の作成や消去、構造の修正、データの書き込み、上書き、削除などを行う。条件を指定してデータを検索したり、特定のデータの集合を抽出したりする機能も提供する。

管理者や利用者が直接操作してこれらの操作を行うほかに、外部のソフトウェアからの接続を受け付け、指示を受けてこれらの操作を行うのもデータベースソフトの重要な機能である。データの管理にデータベースソフトを利用することで、個別のアプリケーションソフトがデータの記録・管理機能を自前で実装する必要がなくなり、自らの役割に専念することができる。

基本的な機能の他にも、誤ったデータの記録を拒否して整合性を維持する機能や、権限のない利用者による不正なデータの盗み見や改竄を防ぐ機能、関連する複数の操作を一体的に矛盾なく実行する「トランザクション処理」機能、障害に備えてデータを複製(バックアップ)したり過去のある時点の状態を復元する機能を備えたものもある。

DBMSの種類

データベースソフトにはデータの記録形式(データモデル)によっていくつかの種類がある。最も広く普及しているのは「リレーショナルデータモデル」(関係データモデル)と呼ばれる方式でデータを格納する「「リレーショナルデータベース管理システム」(RDBMS:Relational Database Management System)で、単にデータベースソフトと言えばRDBMSを指すことが多い。

代表的なRDBMS製品としては、米オラクル(Oracle)社の「Oracle Database」、米マイクロソフト(Microsoft)社の「SQL Server」、米IBM社の「Db2」などがあり、オープンソースソフトウェアとして配布されている「MySQL」や「PostgreSQL」「MariaDB」なども人気が高い。

パソコンなど利用者の操作環境上で単体のアプリケーションとして動作し、グラフィック表示(GUI)の操作・編集システムと共に提供される製品は「デスクトップデータベース」とも呼ばれる。個人やグループ単位の小規模なデータ管理に用いられ、「Microsoft Access」や米クラリス(Claris)社の「FileMaker Pro」などがよく知られる。

近年では「KVS」(Key-Value Store:キーバリューストア)や「列指向データベース」「グラフ指向データベース」「ドキュメント指向データベース」など非リレーショナル型のデータベースソフトの増えている。RDBMSの問い合わせ言語であるSQL(Structured Query Language)に囚われないという意味で「NoSQL」(Not only SQL)と総称される。

データベースサーバ 【DBサーバ】

複数のサーバが役割分担をしているような階層型システムにおいて、データベース管理システム(DBMS)が稼動しているサーバのこと。

3階層システムのようにサーバの役割を層状に分割したモデルにおいて最下層のデータ層を担うサーバであり、システムが永続的に取り扱うデータを一元的に管理し、保存や更新、削除、バックアップ、一貫性の確保などを行う。上位のアプリケーション層(ビジネスロジック層)のサーバ(アプリケーションサーバなど)からの要求を受け、DBMSを介してストレージへデータの記録や書き換え、削除を行ったり、条件に従ってデータを検索して返したりといった操作を行う。

ソフトウェアとしてはDBMS本体と、外部から接続・操作するためのインターフェース、データ管理用のプログラムなどで構成され、大容量のストレージ装置が内蔵あるいは接続されたサーバコンピュータ上で稼働する。大規模システムなどでは専用の独立したコンピュータ上で運用し、ネットワークを介して他のサーバと接続されるが、小規模な場合にはアプリケーションサーバやWebサーバなどと同じコンピュータ上で運用されることもある。

リレーショナルデータベース 【RDB】 ⭐⭐⭐

データベースの構造の一つで、一件のデータを複数の属性の値の組として表現し、組を列挙することでデータを格納していく方式。属性を列、組を行とする表(テーブル)の形で示されることが多い。最も普及している方式で、単にデータベースといった場合はこれを指すことが多い。

リレーショナルデータモデル(関係データモデル)と呼ばれる数学的なモデルに基づいてデータを秩序立てて格納したデータ集合である。一件の登録単位は複数の属性(attribute)の組(tuple)で、同じ属性を持つ組を何件も集めたデータの集合体をリレーション(関係)という。

これは実際には縦横に項目が並んだ表(テーブル)の形で整理される。リレーションが表に相当し、属性を縦方向に並んだ列(column)、組を横方向に並んだ行(row)として表す。システムによっては行を「レコード」(record)、列を「フィールド」(field)と呼ぶこともある。

実際のデータベースは「顧客マスタ」「製品マスタ」「受注明細」のように複数の表の集合として管理されることが多い。「受注明細の顧客IDは顧客マスタを参照する」といったように複数の表にまたがって同じ属性を配置し、対応付けて管理することができ、複雑なデータや大規模なデータを柔軟に取り扱うことができる。

RDBMSによる管理

リレーショナルデータベースはRDBMS(Relational Database Management System:リレーショナルデータベース管理システム)と呼ばれる専用のソフトウェアによって作成・運用されることが多い。データベースの管理はRDBMSが行い、他のソフトウェアは必要なときにRDBMSへ接続して操作を依頼する。

RDMBSへの指示には「SQL」(Structured Query Language)という問い合わせ言語が標準的に用いられ、データベースの作成や削除、テーブルへのデータの追加や更新、指定した条件を満たすデータ集合の抽出などの操作を行なうことができる。

著名なRDBMSとしては、米オラクル(Oracle)社の「Oracle Database」、米マイクロソフト(Microsoft)社の「SQL Server」、米IBM社の「Db2」などの商用ソフトウェア製品、オープンソースで配布されている「MySQL」「MariaDB」「PostgreSQL」などが知られる。

個人や小集団で利用する「Microsoft Access」や米クラリス(Claris)社の「FileMaker Pro」のようなデスクトップデータベース製品や、RDBMSをクラウドサービスとして提供する米アマゾンドットコム(Amazon.com)社の「Amazon RDS」「Amazon Aurora」などもある。

歴史

リレーショナルデータベースの基礎となる理論は1969年に米IBM社のエドガー・コッド(Edgar F. Codd)氏が提唱したリレーショナルデータモデル(relational data model)で、これを元に開発されたRDBMSが1980年頃から当時の大型コンピュータ向けのソフトウェアとして普及し始めた。

1990年代以降は他の方式を圧倒し、企業などが情報システムでデータの記録や管理を行う際の標準的な手法として広まった。近年では、用途によっては「NoSQL」(Not only SQL)と総称される非リレーショナル型の方式が導入される事例も増えている。

テーブル

卓、台、表などの意味を持つ英単語。一般の外来語としては洋風の脚の長い大きな卓のことを指すが、ITの分野では要素を縦横に碁盤目状に並べて整理した表の意味で使われることが多い。

文書作成ソフトやWebページなどでは、内部が格子状に分かれた表のことをテーブルという。要素の垂直方向の集合を列(column:カラム)、水平方向の集合を行(row)という。

上端の行や左端の列に項目名などを入れ、他の各項にはそれぞれが属する行や列に該当する内容を書き入れる。一つの項目が複数行や複数列にまたがる場合には、これを連結して大きな項目にできる機能が提供されることもある。

プログラミングの分野でも、表のように複数の異なる要素間の対応関係を管理するためのデータ構造や格納領域をテーブルという。この場合は必ずしも2次元の格子状に整理された構造を指すとは限らない。

データベースのテーブル

リレーショナルデータベース(RDB)ではデータの格納領域をテーブルという。内部は行と列に分かれ、列が要素の種類や形式を表しており、データの挿入や削除、編集は各列の要素を組み合わせた行単位で行う。列は属性(attribute)とも呼ばれ、行は組(tuple)、レコード(record)とも呼ばれる。

レコード

記録(する)、記録物、登録(する)、録音(する)、録画(する)などの意味を持つ英単語。一般の外来語としては音声信号を記録した薄い樹脂製の円盤(アナログレコード)や、運動競技の最高記録などのことを指すことが多い。

データベースのレコード

リレーショナルデータベース(RDB)において、あるテーブル(表)に格納された、一組の値の連なりのことをレコードあるいは行(row)、組(tuple)などという。

RDBのテーブルは格納すべきデータの名前(属性名、フィールド名)と形式(データ型)を列挙して定義される。テーブル上のデータを操作(挿入や削除、更新など)する際には、定義で列挙された値の組を一件の記録単位として行う。この一組の値の集合をレコードと呼ぶ場合がある。一方、テーブル内の各レコードの特定のフィールドの値を並べたデータ集合は列(カラム/column)、属性(attribute)などという。

データ構造のレコード

いくつかのプログラミング言語では、データベースのレコードのように、固有の識別名やデータ型、形式を持つ複数の変数を一つにまとめたデータ構造のことをレコード型と呼ぶ場合がある。

レコード型の値の内部には、異なる型の変数や別のデータ構造(配列など)などを含めることができ、全体をまとめて一つの変数として関数などの引数や返り値に指定したり、丸ごと複製や代入を行ったりすることができる。

レコードをプログラム上で扱うには、まずレコードの構造の定義を行い、定義したレコードの実体を宣言して値を代入する。この過程は開発者がその言語に新しいデータ型を組み込むようなものであるため、言語によっては「ユーザー定義型」のように呼ぶ場合もある。ちなみにC言語では同じ仕組みを構造体と呼ぶ。

フィールド

野原、競技場、領域、現場、などの意味を持つ英単語。ITの分野では、異なる種類のデータなどが集まってできた何らかの構造体における個々の項目や要素を意味する用例が多い。

オブジェクトのフィールド

例えば、オブジェクト指向プログラミングにおいて、オブジェクトやインスタンスの持つ固有のデータのことをフィールドということがある。言語によっては「プロパティ」(property)あるいは「メンバ変数」(member variable)と呼ぶ場合もある。

テーブルのフィールド

リレーショナルデータベースや表計算ソフトなど、データの集合を表(テーブル)の形で表すシステムでは、行やレコードを構成する個々の要素やデータ項目をフィールドという。複数行の同じフィールドを並べたものを列という。

ユーザーインターフェースのフィールド

ソフトウェアの操作画面上で、入力フォームなどを構成する個々の入力項目や書き込み欄などのことをフィールドという。特に、利用者が任意の内容を入れることができる要素をこのように呼ぶことが多く、例えば文字を入力する欄を「テキストフィールド」(text field)という。

動画やディスプレイのフィールド

インターレース走査(飛び越し走査)の映像や表示機器などで、一回の走査で書き換える画面半分のことをフィールドという。上から奇数番目あるいは偶数番目のラインの集合のことで、2フィールドの走査で画面全体が1フレーム書き換わる。毎秒60フィールドの書き換え速度の場合、毎秒30フレームの書き換えが行われる。

フレームやパケットのフィールド

プロトコル(通信規約)などで定義されたフレームやパケットなどのデータの送受信単位において、ヘッダなど制御用のデータ領域に配置された個々のパラメータのための領域をフィールドという。

データ先頭からの距離(何ビット目/何バイト目)と長さ、内容の形式などで定義され、データの宛先や送信元のアドレスなど、データの送受信に必要な制御用の情報が記録される。

ビュー 【ビュー表】

見る(こと)、視点、視界、視野、景色、眺望、見方、見解、見識、眺める、などの意味を持つ英単語。ITの分野ではデータなどの「見え方」「表示の仕方」の意味で用いられることが多い。

CGのビュー

コンピュータグラフィックスやビデオゲームの分野で、空間をどのような視点から眺めて画面に表示するかをビューという。真上から見下ろした「トップビュー」(top-down view)、斜め上から見下ろした「クォータービュー」(isometric view)、真横から眺める「サイドビュー」(side view)などがよく知られる。

データベースのビュー表

データベース管理システム(DBMS)で、一つまたは複数のテーブルから特定の条件に基づいて一部のデータを抜き出し、あたかも一つの新しいテーブルのように表したものをビューという。

データベース以外のデータ解析システムなどでも、データ群を指定された条件によって整理して表示し、その設定に名前をつけて保存することにより繰り返し呼び出せるようにしたものをビューということがある。

ソフトウェア開発におけるビュー

ソフトウェア開発において、システム全体を機能によって分割する際に、利用者への表示や操作の受け付け(ユーザーインターフェース)を担当する部分のことをビューということがある。

よく知られる設計モデルのMVC(Model-View-Controller)では、モデル(Model)、ビュー(View)、コントローラ(Controller)の三つに分割して整理する。ビューは他の二要素からの指示を受けて利用者への表示・出力(の変更)を行い、システムによっては利用者の操作・入力内容をコントローラに伝達する役割を果たす。

リレーションシップ

関連、関係、結び付き、関連付け、血縁関係、間柄などの意味を持つ英単語。ITの分野では、顧客との関係性のことや、データ間の関連付けのことを指すことが多い。

データベースのリレーションシップ

リレーショナルデータベース管理システム(RDBMS)で、複数のテーブルの間で特定のフィールドを関連付ける機能をリレーションシップという。

これにより、テーブル間で同じ情報が重複するのを避けることができ、あるフィールドの入力を別のテーブルの特定のフィールドの項目から選択するようにしたり、複数のテーブルを連結して情報をまとめたりすることができる。

例えば、受注テーブルの顧客コードに、顧客テーブルの顧客コードを関連付ければ、顧客テーブルに登録されていない顧客コードを受注テーブルに誤って入力してしまうことを防ぐことができる。関連付けられた他のテーブル上のフィールド(この例では顧客コード)を「外部キー」(foreign key)という。

一般的なリレーションシップでは外部キーの各項目が複数のレコードに繰り返し登場することがあり、このような関係を「一対多リレーションシップ」という。外部キーの各項目が一つのレコードにしか現れないよう制約する「一対一リレーションシップ」もあるが、使われる場面は少ない。また、両テーブルのフィールドが互いに相手方へ(一対多の)リレーションシップを張った状態を「多対多リレーションシップ」という場合がある。

主キー 【プライマリキー】

リレーショナルデータベース(RDB)のテーブル内でレコードを一意に識別することができるように指定される項目(列/カラム)。

レコードを構成する項目の中から一つあるいは複数の組み合わせ(複合主キー)が主キーとして選択・設定される。主キーに選ばれた列はすべてのレコードが異なる値を持たなければならず、NULL値とすることもできない。レコードの中で主キーとして選択可能な項目(や項目の組み合わせ)のことを「候補キー」(candidate key)、候補キーのうち主キー以外のものを「代理キー」(alternate key)ということがある。

あらかじめ異なる値が格納されており、内容が更新・追加されないことが分かっている場合は、人間にとって意味のあるデータそのものを主キーとすることもあるが、レコードが動的に追加・生成されるテーブルでは、識別のためだけに通し番号のような項目を設け、これを主キーに設定することが多い。氏名の同姓同名のように意図せず重複してしまうことを避けるためである。

データベース管理システム(DBMS)などには、主キーのために一意の番号を自動生成するデータ型や機能(オートナンバー型、シリアル型などと呼ばれる)が用意されている場合がある。

外部キー 【FK】

リレーショナルデータベース(RDB)で、テーブルのある列に、別のテーブルの特定の列に含まれる項目しか入力できないようにする制約。また、その際に指定する列。標準のSQLではFOREIGN KEY句を用いて設定できる。

ある列に入力するデータに制約を課し、別のテーブルのある列に登録済みのデータしか入力できないようにする。参照先のデータの変更に追随して自動的に参照元も書き換えるよう指定したり、参照先の削除や変更を禁じるよう指定することもできる。

例えば、受注テーブルの顧客コードの列に、顧客テーブルの顧客コードの列を外部キーとして設定すれば、顧客テーブルに登録されていない顧客コードを受注テーブルに誤って入力してしまうことを防ぐことができる。既存顧客の一覧から一つを選択して入力するような形にすることもできるようになる。

SQLでの記述

テーブル作成時には、CONSTRAINT句を用いて「CREATE TABLE テーブル定義 CONSTRAINT 制約名 FOREIGN KEY(列名) REFERENCING 参照先テーブル名(列名) 参照操作」という形式で記述する。列名は参照元、参照先ともに複数指定することができ、その場合は各列の値の組み合わせに対して制約を課す。既存のテーブルにALTER TABLE文で外部キーを追加することもできる。

「参照操作」は参照先のデータの更新や削除をどう扱うかを指定するキーワードである。「CASCADE」なら参照先の更新や削除に参照元を自動的に追随させ、「RESTRICT」なら参照されている値の(参照先での)更新や削除を禁じる。「NO ACTION」もRISTRICT同様に参照先の変更時にエラーを発するが、そのチェックはトランザクションの最後に行われる。

「SET NULL」は参照先が削除されたときに参照元にNull値をセットし、「SET DEFAULT」は列のデフォルト値をセットする。参照操作を更新時に適用するか削除時に適用するかは「ON UPDATE CASCADE ON DELETE RESTRICT」のように「ON UPDATE」および「ON DELETE」で指示することができる。

複合主キー 【複合キー】

データベースのテーブルに設定される主キーを、複数の項目(カラム)の組み合わせとして定義する方式。

主キーに設定されたカラムの値は一意(各レコードの値がすべて異なる)である必要があるため、例えば同姓同名の可能性がある氏名などは適さない。組み合わせれば一意になることが保証あるいは想定される複数の項目を組み合わせて主キーとするのが複合キーである。

主キーとしての一意性の確保のためだけに通し番号のような項目を新たに設ける手法に比べ、本来存在する意味のある項目のみでテーブルを構成できる利点がある。

ただし、処理が複雑になり性能が落ちたり、複合キーに設定されたカラムの内容が変更できなくなるといった制約やデメリットもある。また、通し番号の一意性は機械的に保証されるの対し、複合キーが本当に一意になるかは設計者次第であるため、運用開始後に同姓同名のような重複事例が発覚する場合もある。

射影 ⭐⭐

物体にある角度から光を当て、ある面にその影を映すこと。また、そのようにして映しだされた影(の形)。数学のいくつかの分野で射影演算という操作が定義されている。

ITの分野では、関係演算やリレーショナルデータベースの操作において、ある関係(表)から指定した条件に従って特定のいくつかの属性(列)を抜き出す操作や、そのような操作の結果得られる関係(表)のことを射影演算ということが多い。

例えば、表「名簿」が「識別番号」「氏名」「住所」「電話番号」の4属性で構成されるとして、そこから「識別番号」と「氏名」のみで構成される表を抜き出す操作(および得られた表)を射影演算という。SQL文では「SELECT 識別番号,氏名 FROM 名簿」のように表現される。

SQL 【Structured Query Language】

リレーショナルデータベース(RDB:Relational Database)の管理や操作を行うための問い合わせ言語の一つ。業界標準として広く普及しており、様々なデータベース管理システム(DBMS:Databese Management System)で利用できる。

DBMSへ利用者や外部のソフトウェアから命令を発行するために用いる言語で、データベースへのテーブルの追加や設定変更、削除、テーブル間の関係の定義や削除、テーブルへのデータの追加、更新、削除、データベースやシステムの設定変更などを行うための命令語と構文、文法などを定めている。

主なSQL文

データを操作する命令文としては、テーブルや制約条件などの定義を行うCREATE文、削除を行うDROP文、設定変更を行うALTER文、テーブルにレコードを挿入するINSERT INTO文、削除するDELETE文、更新(上書き)するUPDATE文、条件を元に抽出するSELECT文などがある。

データベースを管理する命令文としては、利用者に権限を付与するGRANT文、剥奪するREVOKE文、トランザクション処理を開始するBEGIN文、完了するCOMMIT文、取り消すROLLBACK文などがある。一部の命令文では文の一部に別の文(サブクエリ/副問い合わせ)を含めることができ、複雑な処理を記述することができる。

これらの命令のうち、CREATE文などデータ構造や関係の定義に関するものを「データ定義言語」(DDL:Data Definition Language)、SELECT文などデータの操作に関するものを「データ操作言語」(DML:Data Manipulation Language)、GRANT文などシステムの管理や制御に関するものを「データ制御言語」(DCL:Data Control Language)にそれぞれ分類することもある。

SQL文の実行

DBMSの管理ツールなどとして対話的にSQL文を実行する環境が用意されていることが多く、管理者や利用者が当座の目的のためにその場でSQL文を入力して実行させることができる。

また、関連する複数の命令文からなる一連の処理を一つの手続きとしてあらかじめデータベースに保存しておき、一定間隔や利用者からの指示などにより実行する「ストアドプロシージャ」(stored procedure)と呼ばれる仕組みが提供される。このうち、何らかの操作やイベントを契機に自動的に起動するよう設定されたものは「トリガー」(データベーストリガー)と呼ばれる。

SQL自体はプログラミング言語ではなく、複雑な処理は実行できないため、外部のコンピュータプログラムからDBMSに命令を発行する仕組みも用意されている。Oracle Databaseの「PL/SQL」のようにDBMS自身がプログラム実行環境となる独自の言語を用いる場合が多い。

プログラミング言語で記述されたソースコード中に命令文を記述し、その言語による記述に自動変換して実行する「埋め込みSQL」(Embedded SQL)や、様々な言語から共通して利用できるプログラミングインターフェース(API)を定義した「ODBC」(Open Database Connectivity)などの仕組みもある。JDBCのようにプログラミング言語側でSQL文発行のための仕組みを整えている場合もある。

歴史

SQLの元になったのは1970年代に米IBM社がRDBMS「System R」を開発する際に、その制御・操作用言語として考案した「SEQUEL」(Structured English Query Language/「シークェル」と読む)である。1980年代以降、他社のRDBMSもSQLを採用するようになり、事実上の標準として普及した。

当初はメーカーやシステムにより仕様が大きく異なっていたため標準化を求める声が強まり、1986年にANSI(米国国家規格協会)によって標準規格「SQL86」が制定された。ISO(国際標準化機構)とIEC(国際電気標準会議)の情報分野の合同委員会JTC 1はこの規格を1987年にISO/IEC 9075として国際標準化している。

ちなみに、ANSI規格のSQLという名称は公式には何の略でもないとされる。その後、同規格はSQL92、SQL99などと改訂され、近年もSQL:2008やSQL:2011、SQL:2016などの新しい改訂版が発行されている。

トランザクション

商取引、売買、執行、取扱、議事録などの意味を持つ英単語。ITの分野では、取引記録など一般的な意味の他に、ソフトウェアがデータを処理する際、互いに関連・依存する複数の処理をまとめ、一体不可分の処理単位として扱うことを指す場合が多い。

トランザクション処理

データベースシステムや業務用ソフトウェアなどでよく用いられる概念で、金融機関のコンピュータシステムにおける入出金処理のように、一連の操作を全体として一つの処理として管理することを「トランザクション処理」(transaction processing)という。

ひとまとめのトランザクションとして登録された複数の操作は、必ず「すべて成功」か「すべて失敗」のいずれかとなるようシステムによって実行状態が管理される。処理の開始後、途中でいずれかの操作が失敗したら、それまでに行われた操作を取り消して最初からやり直す制御が自動的に行われる。

例えば、口座間の資金を移動をシステムで処理する場合に、出金と入金を個別に処理すると、片方の口座から出金した後に、もう一方の口座へ入金する前に障害が発生してシステムが停止してしまうと、出金した資金が宙に浮いてしまう。

このような事態を避けるため、出金と入金を一つのトランザクションとして管理する。出金後に障害で停止したら、復旧後に記録を参照して出金操作を取り消し、処理開始前の状態にデータベースの記録状態などを差し戻す。その後、必要に応じてもう一度出金から処理をやり直す。

トランザクションを管理するシステムが備えるべき性質は「ACID特性」としてまとめられている。処理がすべて成功か失敗のいずれかであることを保証する “Atomicity” (原子性/不可分性)、実行前後でデータの整合性が保たれる “Consistency” (一貫性/整合性)、トランザクションの実行が外部に影響を与えない “Isolation” (独立性/隔離性)、完了時に結果が恒久的に記録され、結果が失われない “Durability” (永続性/耐久性)の4つである。

取引、手続きの意

なお、情報システム分野では、複数の操作をまとめたトランザクション処理の意味以外にも、英単語の本来の意味に沿った「取引」などの意味でトランザクションということがある。例えば、商取引のデータを扱うシステムなどで、取引に関係する対象(商品、取引先など)に関するデータを「マスターデータ」、一件ごとの取引や手続き、操作などに関するデータを「トランザクションデータ」と呼ぶことがある。この場合の「トランザクション」はトランザクション処理の意味ではなく、現実世界で執行された取引などのことを表している。

ロールバック 【後退復帰】

後退、巻き戻し、撤退、引き下げ、巻き返し、反撃などの意味を持つ英単語。情報システムの分野では、システム障害やデータの喪失、破損などが起きた際に、以前に正常に稼働していた特定の時点の状態に戻して復旧を試みることを指す。

ある時点の正常な状態のデータやプログラム、設定などを複製してまとめて保管しておき、障害などが発生した時にこれをシステムに書き戻してその時点の状態に戻す処理をロールバック処理という。

トランザクション処理のロールバック

特にデータベースシステムのトランザクション処理でよく用いられる概念である。トランザクション開始前の状態を保存しておき、コミットする前に途中で中断された場合に完了済みの処理をすべてキャンセルし、開始前のデータを書き戻して復旧する。トランザクションは途中で終了すると結果に矛盾が生じることがあるため、このような制御が行われる。

一方、障害発生時にすでにコミットされたトランザクションの場合には、ある時点(チェックポイント)で複製したデータを書き戻し、これにトランザクションログに記録された処理を適用していき、コミット時の状態に戻す。この復帰方式を「ロールフォワード」(roll forward)という。

分散データベース

データを複数のコンピュータシステムに分散して配置するデータベース。データベース管理システム(DBMS)などの機能を利用して、複数のコンピュータが相互にデータを複製するなどの方法でデータを分散する。

同じ施設の複数のサーバなどに、あるいは、地理的に離れた施設に設置されたサーバなどにレプリケーション機能などでデータを分散して管理する。データの転送や複製は利用者やアプリケーションからは透過的に行われ、どのサーバに接続しても単一のデータベースであるかのように振る舞う。

複数のコンピュータでデータ管理を行うことで、可用性を高めることができる。一部の機器が停止しても他の機器を用いて外部に対するサービス提供を継続することができ、装置の故障などでデータを喪失する危険も減少する。

また、データの読み出しは複数のシステムで並列に行うことができるため、台数を増やせば全体としての性能を向上させることができる。世界的に利用されるサービスでは、データを地理的に分散させることで利用者や端末に近い場所からサービスを提供することができ、通信遅延の低減や回線資源の節約に繋がる。

一方、分散システム一般の性質として、CAP定理により一貫性(Consistency)、可用性(Availability)、分断耐性(Partition-tolerance)の3つのうちいずれか2つしか同時に確保することができないため、厳密な整合性が求められるような処理には向いていない。また、システム構成が複雑になれば、その分だけ管理・運用にかかるコストや手間、セキュリティ上の懸念は増大する。

NoSQL 【Not only SQL】

データベース管理システム(DBMS)の分類を表す用語で、現在最も普及しているリレーショナルデータベース(RDB/RDBMS)とは異なる方式の総称。RDBでデータの問い合わせや操作に用いるSQL言語を使わずに管理することからこのように呼ばれる。

トランザクション処理やテーブルの結合といったRDBやSQLが得意とする機能が利用できない代わりに、大規模な並列分散処理や柔軟なデータ構造の定義など、リレーショナル型では不可能だったり苦手な機能を実現したものが多い。

代表的な方式として、標識(key)と内容(value)を一対一に対応付けて保存する「キーバリューストア」(KVS:Key-Value Store)がよく知られる。NoSQLの中で分散型KVSが最も種類が多く広く普及しており、KVSを指してNoSQLと呼ぶ用例が見られるほどである。

KVS以外の方式としては、柔軟で複雑な構造のデータをそのまま格納する「ドキュメント型データベース」(文書指向データベース)、表中の同じ列のデータをまとめて記録する「カラム型データベース」(列指向データベース)、グラフ構造でデータ間の繋がりを表現できる「グラフ指向データベース」などがある。

KVS 【Key-Value Store】

データ管理システムの種類の一つで、保存したいデータに対し、対応する一意の標識を設定し、これらをペアで格納する方式。標識を指定すると、対応するデータを取り出すことができる。

保存したい値(value)に対して標識となるキー(key)を設定し、両者をセットでストレージなどに書き込む。読み出し時にはキーを指定すると対応する値を取り出すことができる。既存のキーを指定して書き込むと新たな値で上書きされる。

値やキーに指定できるデータの種類は処理系によって異なり、キーは参照や識別がしやすいよう数値や文字列などが用いられることが多い。値には単純なデータ型やバイト列を指定できることが多いが、複雑なデータ構造やオブジェクトなどを格納できるものもある。構造的なデータを一定の決まった手順で文字列やバイト列に変換(シリアライズ)して保存する処理系もある。

一意のキーに値を対応付けて保存するデータ構造は多くプログラミング言語で連想配列、辞書(ディクショナリ)、ハッシュ、マップなどの名称で提供されてきており、キーバリュー型データベースはこの仕組みを永続的なデータ管理システムに応用したものと考えることもできる。

伝統的なリレーショナルデータベース(RDB)に代わるデータ管理システムは「NoSQL」(RDBの操作を行うSQL言語を用いないという意味)と総称され、キーバリュー型データベースはそのなかでも最も手軽で汎用的な方式として広く浸透している。複数のサーバや記憶装置などに分散してデータを保存できる機能を持ったものもあり、「分散KVS」(distributed KVS)と呼ばれる。

KVS 【Key-Value Store】

データ管理システムの種類の一つで、保存したいデータに対し、対応する一意の標識を設定し、これらをペアで格納する方式。標識を指定すると、対応するデータを取り出すことができる。

保存したい値(value)に対して標識となるキー(key)を設定し、両者をセットでストレージなどに書き込む。読み出し時にはキーを指定すると対応する値を取り出すことができる。既存のキーを指定して書き込むと新たな値で上書きされる。

値やキーに指定できるデータの種類は処理系によって異なり、キーは参照や識別がしやすいよう数値や文字列などが用いられることが多い。値には単純なデータ型やバイト列を指定できることが多いが、複雑なデータ構造やオブジェクトなどを格納できるものもある。構造的なデータを一定の決まった手順で文字列やバイト列に変換(シリアライズ)して保存する処理系もある。

一意のキーに値を対応付けて保存するデータ構造は多くプログラミング言語で連想配列、辞書(ディクショナリ)、ハッシュ、マップなどの名称で提供されてきており、キー・バリュー形式はこの仕組みを永続的なデータ管理システムに応用したものと考えることもできる。

伝統的なリレーショナルデータベース(RDB)に代わるデータ管理システムは「NoSQL」(RDBの操作を行うSQL言語を用いないという意味)と総称され、キー・バリュー形式はそのなかでも最も手軽で汎用的な方式として広く浸透している。複数のサーバや記憶装置などに分散してデータを保存できる機能を持ったものもあり、「分散KVS」(distributed KVS)と呼ばれる。

キー

鍵、要、手がかり、等の意味を持つ英単語。ITの分野では、暗号化に用いる短い符号(暗号鍵)を指すほか、何かを構成する主要な要素、手がかりや標識となる要素を比喩的にキーと呼ぶことが多い。

データ検索やデータベースなどの分野で、複合的なデータの識別や同定、検索、比較、整列(並べ替え)などに用いられるデータのことをキーということがある。

コンピュータの入力装置の一つにキーボード(keyboard)があり、平たい板状の装置の表に多数の小さなボタンが並んだ構造になっている。この一つ一つのボタンのことをキーと呼び、それぞれ固有の文字や機能が割り当てられている。

情報セキュリティの分野では、錠(lock)に対する鍵(key)の意味から派生して、データの暗号化や復号を行うための符号や、認証を行うための識別符号や秘密の情報などをキーということがある。

暗号鍵(cipher key)は平文を暗号文に変換する際に計算手順に与えるパラメータで、同じ平文を同じ暗号方式で暗号化しても鍵が違えば異なる暗号文が得られる。暗号文を平文に復号する際には暗号化に用いた暗号鍵(公開鍵暗号の場合は対になるもう一方の鍵)が必要となる。

データモデル ⭐⭐

情報システムが取り扱う現実世界の対象をデータ集合として表現するため、対象を表す情報を抽象化して一定の構造や形式で記述したもの。データベースの設計・作成などのために行われる。

業務などで使用するシステムは様々な現実の存在を反映したデータを取り扱うが、システムの利用目的に照らして必要な情報(だけ)を、コンピュータプログラムによる自動処理に適した構造や形式で記録する必要がある。

現実の存在をどのようにデータとして表現するかを定めた取り決めがデータモデルで、データベースを用いたシステム開発などの際に設計作業の一環として作成される。データモデルを作成することを「データモデリング」(data modelling)という。

データモデルの表現形式や構築法には様々な手法があるが、例えば「ERモデル」(Entity-Relationship Model)を用いる場合、対象のうち名詞として表されるものを「実体」(entity)、実体間の関連性を「関係」(relation)、実体や関連の持つ性質を「属性」(attribute)として整理する。作成したモデルはER図などの形で図示して関係者間で共有することが多い。

人間による世界解釈からコンピュータの記憶装置上でのデータ構造へ落とし込んでいくため、対象全体を大まかにモデル化した「概念データモデル」、システム上で取り扱うデータをすべて詳細に定義した「論理データモデル」、論理データモデルをコンピュータ上の具体的な記録形式に変換した「物理データモデル」の三段階で詳細化する方式が用いられることがある。

企業などの情報システムではデータモデルが表すデータの格納先としてリレーショナルデータベース(RDB)が用いられることが多く、データモデルをもとに具体的なデータベーススキーマなどを設計し、データベース管理システム(DBMS)上でテーブルの構築などをしていく。

関係モデル 【リレーショナルモデル】

データの集合を表現する数学的なモデルの一つ。データ群を複数の項目の「関係」(relation)として捉えるもので、リレーショナルデータベース(RDB)の理論上の基礎となっている。

リレーショナルモデルでは、一件のデータを複数の値を紐付けた「組」(tuple)として表現する。それぞれの値は「属性」(attribute)に所属しており、組の中では属性名を使って指し示すことができる。各属性はどのような値を取りうるかを定めた定義域(domain)を持つ。

この「組」と「属性」で整理されたデータ集合全体のことを「関係」(relation)と呼ぶ。関係のことを、属性のみが定義された、データの入れ物としての「関係変数」(relation variable)と、関係変数に具体的に0個以上の組を代入した「関係値」(relation value)に分けて考える場合もある。

リレーショナルモデルは集合論に基づいており、関係代数による関係同士の演算が可能である。基本的な演算として「和」(和集合を求める)、「差」(差集合を求める)、「交差」(積集合を求める)、「直積」(デカルト積を求める)、「制限」(条件に合う集合を抽出する)、「射影」(特定の属性だけ抽出する)、「結合」(条件に従って組み合わせる)、「商」(直積の逆演算)などがある。

RDBのテーブル

リレーショナルデータベースでは「テーブル」(table)と呼ばれる2次元の表を用いてリレーショナルモデルを具体的なデータ構造として記録する。リレーショナルモデルにおける組はテーブルにおける「行」(row)に、属性は「列」(column)に、定義域は「データ型」(data type)に、それぞれほぼ相当する。

ただし、テーブルと関係は厳密には同じ概念ではない。例えば、関係における組や属性の並びに順序は無いがテーブルでは順序が設定される、関係では行の重複(すべての値が同一である組を複数持つ)はできないがテーブルではできる、関係では値の不存在は許されないがテーブルではできる(Null値)、などの点が異なっている。

ネットワーク型データベース 【ネットワーク型データモデル】

データベースの種類の一つで、データを互いに結びついた網(ネットワーク)状の構造に整理して格納するもの。

一連の属性から成るデータのまとまり(レコード)を格納単位とし、レコード間は親子関係を持つが、各レコードは親レコードも子レコードも複数持つことができるため、必要に応じて関連する他の種類のレコードを参照することができる。

1970年代に考案された方式で、それ以前に主流だった「階層型データベース」ではレコード間を親子関係(親は必ず一つ)で結びつける木構造で管理していたが、ネットワーク型は親レコードを複数持つことができるため、現実世界のデータの関係に即した柔軟なモデリングが可能となった。

1980年代になるとデータの組を行と列を組み合わせた表のような形式で表現する「リレーショナルデータベース」が台頭し、商用データベース製品の主流の方式として定着したため、ネットワーク型が顧みられることはなくなった。2010年代には、データの繋がりを網状に表現できるという点はネットワークモデルに似ているが、より抽象度や柔軟性が高い「グラフデータベース」が登場し、リレーショナル型が苦手とする分野で活躍している。

階層型データベース 【階層型データモデル】

データベースの種類の一つで、データを階層的な木構造に整理して格納するもの。単一の頂点(ルート)から枝分かれする木のようにデータが連なっている。

起点であるルートノードに複数の子ノード(の記憶装置上での所在)が登録され、子ノードはさらに複数の子ノードを持つことができる。どのノードにとっても親ノードは一つで、親をたどっていくとルートノードに行き着く。

特定のノードを指定して内容を読み書きする操作を高速に行なうことができ、記憶領域の利用効率も良いが、データ全体から条件を指定してノードを絞り込む操作は苦手(標準的な方法がなくアプリケーション次第)で、子が複数の親を持つことができないなど柔軟性にも欠ける。

リレーショナルデータベース(関係データベース)の発明以前から存在する米IBM社のメインフレーム向けデータ管理システム「IMS」(Information Management System)が有名だが、SNMPで用いられるMIB(Management Information Base)なども一種の階層モデルであると考えることができる。

階層型データベース 【階層型データモデル】

データベースの種類の一つで、データを階層的な木構造に整理して格納するもの。単一の頂点(ルート)から枝分かれする木のようにデータが連なっている。

起点であるルートノードに複数の子ノード(の記憶装置上での所在)が登録され、子ノードはさらに複数の子ノードを持つことができる。どのノードにとっても親ノードは一つで、親をたどっていくとルートノードに行き着く。

特定のノードを指定して内容を読み書きする操作を高速に行なうことができ、記憶領域の利用効率も良いが、データ全体から条件を指定してノードを絞り込む操作は苦手(標準的な方法がなくアプリケーション次第)で、子が複数の親を持つことができないなど柔軟性にも欠ける。

リレーショナルデータベース(関係データベース)の発明以前から存在する米IBM社のメインフレーム向けデータ管理システム「IMS」(Information Management System)が有名だが、SNMPで用いられるMIB(Management Information Base)なども一種の階層型データベースであると考えることができる。

ネットワーク型データベース 【ネットワーク型データモデル】

データベースの種類の一つで、データを互いに結びついた網(ネットワーク)状の構造に整理して格納するもの。

一連の属性から成るデータのまとまり(レコード)を格納単位とし、レコード間は親子関係を持つが、各レコードは親レコードも子レコードも複数持つことができるため、必要に応じて関連する他の種類のレコードを参照することができる。

1970年代に考案された方式で、それ以前に主流だった「階層型データベース」ではレコード間を親子関係(親は必ず一つ)で結びつける木構造で管理していたが、ネットワーク型は親レコードを複数持つことができるため、現実世界のデータの関係に即した柔軟なモデリングが可能となった。

1980年代になるとデータの組を行と列を組み合わせた表のような形式で表現する「リレーショナルデータベース」が台頭し、商用データベース製品の主流の方式として定着したため、ネットワーク型が顧みられることはなくなった。2010年代には、データの繋がりを網状に表現できるという点はネットワーク型データベースに似ているが、より抽象度や柔軟性が高い「グラフデータベース」が登場し、リレーショナル型が苦手とする分野で活躍している。

グラフデータベース

データベースの構造の一つで、データそのものに加え、データ同士の繋がりの情報を格納するデータベース。リレーショナルデータベースが苦手なデータ間の関係性をたどる操作を高速に処理することができる。

ここで言う「グラフ」は円グラフや棒グラフといったデータ集合を図で表したものではなく、コンピュータ科学のグラフ理論で取り扱われるデータ構造の一つである。データの集まりを「ノード」(node)「プロパティ」(property)「エッジ」(edge)の3要素の組み合わせとして表現する。

ノードは意味のあるデータ集合の単位(例:ユーザー情報)で、何らかの属性を表すプロパティ(例:ID、氏名、メールアドレス)を持つ。ノードは他のノードと何らかの繋がり(例:友達関係、フォロー関係)を持っており、ノード間の繋がりをエッジという。

構造と特徴

グラフ指向型データベースはデータ集合をグラフ構造に従って格納するデータベースで、各ノードのプロパティとエッジの情報を保管する。ノードを指定してプロパティの書き込みや読み出しを行ったり、あるノードから繋がっている別のノードを素早く参照することができる。

例えば、SNSのユーザー情報で、あるユーザーの友達、友達の友達、友達の友達の友達…と繋がりをたどって関連ノードを挙げていく処理を一般的なリレーショナルデータベースで行うと負荷が大きく時間がかかるが、グラフ指向型データベースでは瞬時に関連ノードを割り出して参照することができる。

一方、リレーショナルデータベースが得意な、プロパティについての条件を指定してノードを検索したり、ノード全体を対象に特定のプロパティの値を集計するといった使い方は難しい。実用上は、大規模で複雑な「繋がり」を含むデータ構造を取り扱う場合に特化して用いられる。

種類と応用

グラフ指向型データベースを実装するための代表的なデータモデルとして「プロパティグラフ」と「RDFグラフ」(RDF:Resource Description Framework)がある。著名な製品としては「Neo4j」「JanusGraph」などがよく知られる。「Amazon Neptune」「Azure Cosmos DB」のようにクラウド上でグラフ指向型データベースを提供するサービスもある。

グラフ指向型データベースの主な応用分野として、SNSなどのソーシャルメディアにおけるユーザー間の繋がりの管理や分析、ECサイトなどで「おすすめ」を表示するリコメンデーション機能、移動や配送などにおける最適な経路の探索、金融機関などで取引情報を分析して不正を検知する機能などが挙げられる。

バックアップ ⭐⭐

応援、予備(の)、代替(の)、支援、支持、擁護、後援、渋滞、後退などの意味を持つ英単語。ITの分野では、機器の故障などに備えて用意された代替設備や予備品、データの複製などのことを意味することが多い。

単にバックアップといった場合は、データの破損や損失に備えてデータの写しを取って保管する「データバックアップ」のことを指す場合が多い。データをコピーする作業や工程のことをバックアップという場合と、作成されたデータの複製(を記録した装置など)のことをバックアップという場合がある。

コンピュータの記憶装置に保存されたデータを別の装置や記憶媒体へ複製して別に保管するもので、機器の故障や破損、人為ミス、不正行為などによってデータの消失や改変などが起こった場合に、複製した時点のデータに復旧させることができる。

また、「バックアップ回線」「バックアップサーバ」などのように、通常時に使用している機器などが何らかの原因で正常に稼働できなくなった時に、その機能を肩代わりするための機器や設備、施設などのことをバックアップということもある。

リストア 【レストア】

修復する、復元する、元に戻す、回復させる、復活させる、復興する、返還する、などの意味を持つ英単語。IT分野ではシステムやデータを復元、復旧することを指すことが多い。

データのリストア

ストレージ装置が破損するなどしてデータが失われた際に、以前に取っておいたデータの複製を書き戻すなどして復元することをリストアという。これに対し、データの損失の備えて複製を取ること(や、そのようにして得られた複製)を「バックアップ」(backup)という。

データベース(DBMS)などでは、データを更新するたびに変更記録(ログ)を保管する仕組みになっているものがあり、ある時点のバックアップデータに戻す操作をリストア、これにバックアップ取得以降の変更記録を適用して最新化する操作を「リカバリー」(recovery)として区別する場合がある。

システムのリストア

コンピュータに導入されたオペレーティングシステム(OS)やアプリケーションソフトに不具合が生じ正常に起動・動作しなくなった場合に、正常な状態に復元したり、初期の状態に戻したりすることをリストアということがある。

この作業は一般的にはリカバリーと呼ばれることが多い。ファイルなど個別の内容をバックアップから復旧することをリストア、ソフトウェア全体(OSの場合はシステム全体)を初期状態や特定時点の状態に戻す操作をリカバリーとして使い分ける場合もある。

リカバリー 【リカバリ】

復旧、復帰、回復、修復、復元、などの意味を持つ英単語。ITの分野では、故障や何らかの不具合で機能不全に陥った機器やシステム、ソフトウェアを復旧したり初期化することを表すことが多い。

ストレージ(外部記憶装置)について言う場合は、媒体の破損などでデータが正常に読み出せなくなった機器から可能な限りデータを取り出して保全したり、故障した装置を新しいものと交換して残りの装置からデータを復元する作業(RAID等の場合)などを表す。

ソフトウェアについて言う場合は、プログラムや設定の不具合で正常に動作しなくなったオペレーティングシステム(OS)などを消去し、再び導入(インストール)し直して初期状態に戻すことなどを指す。この場合、導入済みのソフトウェアや保存された設定情報、データなどは消去されるため、必要であれば利用者が別の装置への保全などを行わなければならない。

ファイル ⭐⭐

コンピュータにおけるデータの管理単位の一つで、ストレージ装置(外部記憶装置)などにデータを記録する際に利用者やオペレーティングシステム(OS)から見て最小の記録単位となるデータのまとまり。

利用者がコンピュータを用いて記憶媒体にデータを保存、読み込み、移動、削除などする際に一つのまとまりとして取り扱うデータの集合を表し、OSの一部であるファイルシステム(file system)によって管理される。

ハードディスクやSSD、USBメモリ、光学ディスク(CD/DVD/Blu-ray Disc)などの記憶装置・記憶媒体を利用する際に用いられるほか、コンピュータと周辺機器の間やコンピュータ間の通信においてもデータの送受信単位として利用される。

ディレクトリとパス

ファイルシステムは記憶媒体内でファイルの作成や削除、上書き、移動、複製などを管理する仕組みで、複数のファイルをまとめて一つの集まりとして扱う「ディレクトリ」(directory)や「フォルダ」(folder)などの入れ物(領域)を作成することもできる。

ディレクトリやフォルダの中に別のディレクトリやフォルダを作成し、入れ子状にすることもでき、記憶媒体全体を階層構造に整理して管理する。装置内でのファイルの位置は、「C:¥Windows¥System32¥cmd.exe」のように最上位から順にディレクトリ名を繋げた「パス」(path)という記法で表される。

ファイル名

ファイルにはそれぞれ固有のファイル名が付けられ、これを用いて識別・指定される。多くのOSではファイル名の末尾にファイルの種類や形式を表す「拡張子」(extension)と呼ばれる数文字の英数字の符号が付与される。

コンピュータの操作画面ではファイルは記憶媒体内での位置(パス)やファイル名で表示され、キーボードなどからパスやファイル名を指定して操作する。グラフィック表示を用いるGUI(Graphical User Interface)を備えたOSでは、ファイルは種類によって異なるアイコン(絵文字)とファイル名によって表示され、マウス操作やタッチ操作でアイコンを指し示して操作を行う。

ファイル属性

ファイルはファイルシステムに記録される際に様々な属性や付加情報(メタデータ)と共に記録される。作成日時や最終更新日時、最終アクセス日時、作成者(所有者)、各利用者やグループのアクセス権限などが記録、設定される。

また、多くのOSではファイルに「読み取り専用」属性を付与でき、解除されるまで削除や上書きができなくなる。「隠しファイル」に設定されたファイルは通常の動作モードではファイル一覧画面などに表示されなくなる(ファイル名を直に指定すれば操作はできる)。

ファイル形式

ファイルに記録されるデータの形式や書式(ファイルフォーマット)は作成したソフトウェアによって様々だが、大きく分類すると「バイナリファイル」(binary file)と「テキストファイル」(text file)に分かれる。

バイナリファイルは特に制約なくあらゆるビットパターンを記録できる自由な形式で、その形式に対応したソフトウェアでなければ何が記録されているか知ることができない。テキストファイルはデータを文字情報として記録したファイルで、文字コード規格で規定されたコードに従ってデータを文字列に置き換えて記録する。対応ソフトがなくてもどのような文字が記録されているかは見ることができる。

ディレクトリ ⭐⭐

電話帳(phone~)、住所録、名鑑、要覧、指導書、規則集などの意味を持つ英単語。IT関連では、多数の対象をその所在などの情報と共に一覧できるよう整理したものを意味することが多い。

ファイルシステムのディレクトリ

ストレージ(外部記憶装置)のファイルシステムなどで、複数のファイルを格納し、ファイルを分類・整理することができる保管場所のことをディレクトリということがある。OSによっては同様の仕組みを「フォルダ」(folder)ということもある。

ストレージ内部を論理的に区切って名前をつけて区別する仕組みで、ディレクトリ名によって識別される。ディレクトリ内には任意のファイルを置くことができるほか、別のディレクトリを作成して入れ子状にすることができる。ディレクトリ内に作られたディレクトリは「サブディレクトリ」(subdirectory)あるいは「子ディレクトリ」などと呼ばれる。

ディレクトリの入れ子関係は、システムやストレージ領域の全体を表すディレクトリを頂点とする階層構造(あるいは木構造)として表すことができ、これを根本から先端に向かって枝分かれする樹木の形になぞらえて「ディレクトリツリー」と呼ぶことがある。

UNIX系OSでは、ストレージや他のシステム資源全体を包含する「ルートディレクトリ」(root directory)を頂点として、Windowsでは各ドライブごとにその内部を包含する「ドライブルート」(drive root)を頂点として、それぞれディレクトリの位置を指し示す。

ストレージ内でのディレクトリやファイルの所在は、「/foo/var/hoge.txt」のようにルートからの経路を順に並べた「パス」(path)によって表す。UNIX系OSでは区切り文字として「/」(スラッシュ)を用いるが、Windowsでは「C:\foo\var\hoge.txt」のように「\」(バックスラッシュ)を用いる。日本語版では同じ文字コードを共有している円マーク(¥)になる。

ディレクトリサービス (directory service)

情報システムの一種で、ネットワーク上に存在する機器やサービスについての情報や、利用者の識別や権限に関する情報を一元管理する仕組みのことを「ディレクトリサービス」(directory service)あるいは単にディレクトリという。

原義の電話帳に近い役割をコンピュータネットワーク上で果たすシステムで、登録利用者のアカウント情報(ユーザー名やパスワード、各種の権限など)、ネットワーク上のサーバコンピュータが提供する機能、共有データ(共有ファイル、共有ディレクトリなど)、プリンタなどの周辺機器についての情報を集めて単一のデータベースに登録して管理する。

利用者はディレクトリにアクセスすることでネットワーク上の資源の所在を知ることができ、個々の資源に対して権限の確認をしなくても、一度のログイン操作で許可された資源を自由に利用できるようになる。米マイクロソフト(Microsoft)社がWindows Serverなどで提供しているActive Directory(アクティブディレクトリ)が特に有名である。

Web API 【Web Application Programming Interface】

HTTPなどのWeb技術を応用して、あるコンピュータで動作しているソフトウェアの機能を、ネットワークを通じて他のコンピュータから利用できるようにする仕組み。

API(Application Programming Interface)とは、コンピュータプログラムが提供する機能を他のプログラムから呼び出して利用するための規約で、処理要求や応答のデータ形式、双方のやり取りの手順などで定義される。

Web APIはWebサーバ上で動作しているプログラムが外部に機能を提供するためのAPIで、Webサイトに別のサイトの提供する機能やデータを組み込んだり、アプリケーションソフトからWeb上で提供されているサービスの機能やデータを利用するために用いられる。

Web APIで機能を公開しているサーバに対して、インターネットなどを通じて依頼内容をHTTPリクエストの形で送信すると、処理結果がHTTPレスポンスの形で送られてくる。呼び出し側が挙動や入力データを指定する引数はURLパラメータ(クエリ文字列)などの形でURLの一部として指定することが多い。

送受信されるデータの形式はAPIの種類や目的によって様々だが、WebコンテンツやWebサービスで馴染み深いHTMLやJSON、XML、プレーンテキストなどがよく用いられる。応答として画像ファイルやPDFファイル、CSVファイルなど、内容を特定形式のファイルにまとめて送る仕組みもよく見られる。

RESTful APIとSOAP

Web APIの構成法としてよく知られるものに「SOAP(Simple Object Access Protocol/ソープ)と「REST」(Representational State Transfer/レスト)がある。

SOAPはXMLとHTTPを基本として、Web APIで用いるメッセージの形式や通信手順(プロトコル)などを規定した標準規格で、用途や目的ごとに詳細な拡張仕様が規定されている。2000年代初頭にWebサービス実装の有力な規格として期待されたが、仕様の複雑さや規模の大きさが敬遠されあまり普及しなかった。

RESTはシンプルさを重視するAPIの設計原則で、セッションなどの状態管理の仕組みを持たない(ステートレスである)など、4つの原則で構成される。これをWeb APIの設計に適用したものを「RESTful API」(レストフルAPI)あるいは「REST API」という。

RESTfulなWeb APIではHTTPやURLなどWeb技術の仕様をなるべくそのまま取り込み、HTTPメソッドによる動作の指定、HTTPステータスコードによる結果の通知、URLだけで機能や対象の一意な指定や識別を行う、実行状態を保存せず同じ入力に対しては常に同じ出力を返すなどの特徴がある。

REST自体は原則を示しているだけで個別の用途に応じた仕様の策定などは開発者に任されるため、似た目的のためにそれぞれ互換性のないAPI仕様が乱立するなどの問題はあるものの、仕様がシンプルで開発や利用が容易なことから広く普及している。

JSON 【JavaScript Object Notation】

JavaScriptにおけるオブジェクトの表記法を応用したテキスト(文字)ベースのデータ形式。多数の要素が複雑な構造で組み合わせられたデータを簡潔な表記で書き表すことができる。JavaScriptプログラム上ではコードとして実行するだけで読み込みが完了する。

JavaScriptではオブジェクト定義の構文として、キーと値のペアを列挙したデータ構造を用いる。これは他のプログラミング言語では連想配列、ハッシュ、マップ、辞書(ディクショナリ)などと呼ばれるものに近い。

JSONでは、これと配列を利用して複合的なデータ構造を記述することができる。配列やオブジェクトの値として別の配列やオブジェクトを入れ子の形で記述でき、深い階層構造を持つ複雑なデータを表すことができる。

値として利用できるデータ型はJavaScriptに用意されているプリミティブデータ型で、整数型、浮動小数点数型、文字列型、ブール型(真偽値)、null(値無し)、配列、オブジェクトである。

配列は [“A”,“B”,“C”] のように全体を角括弧で囲み、値をカンマ区切りで列挙していく。オブジェクトは { Key1:“Value1”, Key2:“Value2”} のように全体を中括弧で囲み、キーと値をコロン(:)で区切って表記したペアをカンマ区切りで列挙していく。

JSONはJavaScriptでの扱いが簡単なため、WebサービスやAjaxなどでプログラム間でのデータ交換フォーマットとして多用されている。また、数多くのプログラミング言語でJSONを簡単扱えるようにする追加機能などが公開されており、設定ファイルやデータ交換などでXMLに代わって普及している。

歴史

JSONはもともとJavaScriptの構文規則の一部だが、2001年にダグラス・クロックフォード(Douglas Crockford)氏がこれをデータ形式のように扱うことできることを「発見」し、これをJSONと命名した。

2006年には独立したデータ形式としてIETFがRFC 4627として規格化した。JavaScriptの標準化を行っていたEcma Internationalが2011年にECMAScript 5.1の一部として標準化、2013年にはECMA-404として独立した規格が発行された。両団体間で一部の仕様が異なる問題があったため、2017年にRFC 8259およびECMA-404の改訂版として仕様が統一された。

XML 【Extensible Markup Language】

文書やデータの意味や構造を記述するためのマークアップ言語の一つ。汎用性、拡張性が高く、用途に応じて独自のマークアップ言語を定義することができる。

マークアップ言語とは「タグ」(tag)と呼ばれる特定の記法の文字列で地の文に情報の意味や構造、装飾などを埋め込んでいく人工言語のことで、XMLは利用者が独自のタグを定義できることから、マークアップ言語を作成するためのメタ言語とも言われる。

XMLの表記法

XMLにおけるタグはHTMLやSGMLなどと同じように「<」(小なり記号)と「>」(大なり記号)に囲まれた文字列で、「<」に続く先頭部分が要素名(タグ名)を表し、続いてスペース区切りで属性が「 属性名="値"」という形式で列挙される。

タグには「<要素名>」という形式の開始タグと「</要素名>」という形式の終了タグがあり、両者に挟まれた領域が要素の内容(タグによる指定の有効範囲)となる。内容を含まず単体で完結したタグもあり、「<要素名 属性群 />」のようにタグの末尾を「/」とする。

用途と関連規格

XMLにより統一的な記法を用いながら独自の意味や構造を持ったマークアップ言語を作成することができるため、ソフトウェア間の通信・情報交換に用いるデータ形式や、様々な種類のデータを保存するためのファイルフォーマットなどの定義に使われている。

XMLを応用して特定の種類やデータや用途のために定義された標準的なマークアップ言語もある。ベクター画像を記述するための「SVG」(Scalable Vector Graphics)、数式を記述するための「MathML」、Webページを記述するHTMLをXMLの仕様を満たす形式に改めた「XHTML」、各種のオフィスソフトの文書を記述するための「Office Open XML」および「ODF」(OpenDocument Format)などである。

また、XMLを様々な場面で利用しやすいよう、関連技術の規格も数多く存在する。文書を表示する際の書式や装飾などを指定する「XSL」(Extensible Stylesheet Language」や「XSLT」(XSL Transformations)、ハイパーリンク機能を実現する「XLink」や「XPointer」、XMLベースの言語の仕様を記述するためのスキーマ言語である「XML Schema」や「RELAX」、XMLをプログラムで利用するためのAPIである「DOM」(Document Object Model)や「SAX」(Simple API for XML)などである。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる