高校「情報Ⅰ」単語帳 - 実教出版「高校情報Ⅰ JavaScript」 - 情報システムとデータの管理

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

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

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

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

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

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

情報システム部門

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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年頃からブロックチェーンを金融取引などへ適用する試験的な取り組みなどが活発になっているが、今のところ暗号通貨のように既存の技術や制度では実現できない、あるいは決定的に優位性のある用途は見つかっていない。

データベース 【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)と総称される。

データベースサーバ 【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)という。

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

射影 ⭐⭐

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

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などの新しい改訂版が発行されている。

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)と呼ばれる。

キー

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

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

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

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

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

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