メモ
仕事でITパスポートの資格を急遽2週間で取得することになったのでその勉強用の備忘録です。
いつも何か勉強するときは基本的に書きながら覚えるのでここでアウトプットします。
有益な情報かどうかは不明(笑)
前回のネットワーク、セキュリティに続き、今回はコンピュータ分野の用語やポイントの書き出し。
PCのパーツは詳しくないけどシステム構成やツールに関してはそこそこ得意。
出題範囲3分野ある中でテクノロジ系がメイン。
受験料値上げの情報が入ったので受験予定の方はご注意を
【いつ値上げ?】ITパスポートや情報処理技術者試験の受験料が5700円から7500円に価格改定
続きを見る
スポンサーリンク
コンピュータの構成
コンピュータの種類
PC:パーソナルコンピュータの略で、個人で使用するのが一般的
サーバ:特定のサービスを提供するためのコンピュータ。Web通信を行うためのWebサーバ、メールの送受信を管理するメールサーバなど
汎用コンピュータ:企業の経理や販売管理などの重要な基幹業務に使用されているコンピュータ。「メインフレーム」とも呼ばれる
スマートデバイス:情報を処理する機能に加えて、通信機能、カメラ、マイクなどを搭載している。スマホやタブレット端末など
ウェアラブルデバイス:時計型や眼鏡型など、身につけて使用する端末。本来の機能にプラスして、メールの受信や電話の着信、心拍数の表示などができる
コンピュータの構成
コンピュータはハードウェアとソフトウェアで構成されている。
ハードウェアの構成
入植装置:コンピュータの外部から内部にデータを取り込む装置。キーボード、マウス、タッチパネル、スキャナ、カメラなど
出力装置:コンピュータの内部のデータを外部に取り出す装置。ディスプレイ、プリンタ、プロジェクタなど
記憶装置:プログラムやデータを保管する装置。メインメモリ(主記憶装置)、ハードディスク(HDD)、USBメモリなど
演算装置:計算処理を行う装置。CPU
制御装置:記憶装置に保存されているプログラムやデータを読み出し、各装置を制御する装置。CPU
CPU
CPUはコンピュータの中核となる装置で、プロセッサとも呼ばれる。
記憶装置からプログラムやデータを読み出し、各装置を制御し、プログラムに書かれている命令を実行する。
CPUは制御装置、演算装置、レジスタから構成されている。
レジスタ
CPUの内部にある記憶領域で、データや命令を一時的に格納する。
メインメモリと比べると容量は小さいが、メモリの中で最も高速に動作する。
CPUが一度に処理できるビット数はレジスタのサイズによって決まり、ビット数が大きい方が一度に多くのデータを処理できる。
32ビットCPU、64ビットCPUがあるが、現在は64ビットCPUが主流。
クロック周波数
クロックとは、効率的に各装置を制御するために、装置間で動作するタイミングを合わせるための信号。
クロック周波数とは、1秒間に発生するクロック信号の数のことで、単位はHz(ヘルツ)で表す。
同じ64ビットの周波数のCPUでも、クロック周波数が大きいほど、高速に命令を実行できる。
例えば、1秒間に10億回のクロック信号が発生する場合には、クロック周波数は1GHz(ギガヘルツ)になる。
マルチコアプロセッサ
コア(CPUの核となる演算・制御装置)を複数持っているCPUがマルチコアプロセッサ。
コアは別々のプログラムを並行して実行できるので、コア数が多い方が処理能力は高い。
コアが2つのものをデュアルコアプロセッサ、コアが4つのものをクアッドコアプロセッサという。
GPU
画像処理に特化した演算装置。
3Dグラフィックの画像処理をCPUより短時間で行えるため、ゲームなどのリアルな映像表現に利用されている。
最近では、気象状況や地震のシミュレーションなどでの利用が増えている。
スポンサーリンク
記憶装置(メモリ)
半導体メモリ(ICメモリ)
半導体の回路で構成されたメモリで、回路を電気的に制御することでデータを記憶する。
ハードディスク(HHD)などの磁気ディスク装置や、DVD、Blu-rayのような光ディスク装置に比べ、データの読み書きが高速で、消費電力が少なく、振動に強いというメリットがある。
半導体にはRAM(Random Access Memory)とROM(Read Only Memory)の2種類がある。
RAM:電源を切断すると記憶内容が失われる揮発性メモリ
DRAM:処理速度は遅いが記憶容量は大きい。メインメモリに利用されている
SRAM:処理速度は高速だが記憶容量は小さい。キャッシュメモリに利用されている
ROM:電源を切断しても記憶内容が消去されない不揮発性メモリ。電気を使ってデータの消去や読み書きを行うものをフラッシュメモリといい、SSDやUSBメモリ、SDカードなどに利用されている
メモリの種類
メインメモリ(種類:半導体メモリ(DRAM)):プログラムが処理をしている間に使うデータなどを一時的に格納しておく装置。電源を切断すると記憶内容が失われる(揮発性)。キャッシュメモリの次に高速
キャッシュメモリ(種類:半導体メモリ(SRAM)):CPUとメインメモリと速度の違いを吸収して、処理を高速化するための揮発性メモリ。メインメモリから読み出したデータをキャッシュデータに貯めておき、同じデータにアクセスするときは、キャッシュメモリから読み出す。メインメモリより高速。複数のキャッシュメモリを搭載した場合、CPUに近い方から、一次キャッシュメモリ、二次キャッシュメモリと呼ばれ、一時キャッシュメモリの方がより高速で小容量
ハードディスク(種類:磁気ディスク):時期を利用してデータの読み書きを行う、一般的な補助記憶装置。記憶容量は、数十GB〜数TB
SSD(種類:半導体メモリ(フラッシュメモリ)):ハードディスクに代わる補助記憶装置。ハードディスクに比べ高速、省電力、衝撃や振動に強い。電源を切断しても記憶内容が消去されない(不揮発性)。記憶容量は数十GB〜数TB。メインメモリの次に高速
CD(種類:光ディスク):レーザー光を利用してデータの読み書きを行う補助記憶装置。記憶容量は650MBと700MBがある。
DVD(種類:光ディスク):CDの後継となる補助記憶装置。記憶容量は片面1層4.7GB、片面2層8.5GB。
Blu-ray(種類:光ディスク):DVDの後継となる補助記憶装置。記憶容量は片面1層25GB、片面2層50GB。
USBメモリ(種類:半導体メモリ(フラッシュメモリ)):USBコネクタとメモリ本体が一体化した補助記憶装置。記憶容量は、数十MB〜数百GB
SDカード(種類:半導体メモリ(フラッシュメモリ)):コンパクトでデジタルカメラ、携帯電話などで広く利用されている補助記憶装置。記憶容量は、数十MB〜数百GB
入出力デバイス
入出力インタフェース
USB:Universal Serial Busの略。コンピュータとキーボード、マウス、プリンタなどを接続するためのデータ転送路の標準規格の1つ。
データの転送速度はUSB2.0では480Mbps、USB3.2では20Gbps。接続する機器によってコネクタの形状が異なる
Type-A:パソコンに接続するための標準的なコネクタ
Type-B:プリンタやスキャナなど
Type-C:USB3.1で制定された上下左右対称のコネクタ。MacBookやノートパソコン、Androidスマホなど
HDMI:音声データと映像データを1本のケーブルで転送する規格。テレビとハードディスクレコーダーやゲーム機、パソコンとモニタやプロジェクタを接続する際など
Bluetooth:10~100m前後の近距離無線通信の規格。スマホとワイヤレスイヤホンを接続する際など
IrDA:赤外線を利用した近距離データ通信の規格。携帯電話同士のアドレス交換やデジタルカメラとプリンタ間でのデータ転送など
NFC:最長十数cm程度までの至近距離無線通信の世界標準規格。非接触型ICカードなどに採用されているRFID(ICタグ)と専用の読み取り装置間の通信に利用されている。
FeliCaはNFC規格の1つで、SuicaやPASMOなどの交通系ICカードでも使われている。
周辺装置を制御する仕組み
PCで周辺装置を制御するためのソフトウェアをデバイスドライバ(ドライバ)という。
デバイスドライバをPCにインストールすることで、周辺機器が利用できるようになる。
周辺機器を接続した際に、自動的にOSが認識してデバイスドライバのインストールと設定をしてくれる機能をプラグアンドプレイという。
スポンサーリンク
システムの構成
処理形態による分類
集中処理:メインとなる1台のコンピュータに複数のコンピュータを接続して、メインのコンピュータが全ての処理を行う形態。メインコンピュータが故障すると、システム全体が停止する
分散処理:複数のコンピュータを接続して、それぞれのコンピュータが処理を分担して行う形態。1台のコンピュータが故障してもシステム全体は停止しないが、複数のコンピュータで処理を分散しているため、運用管理が複雑
並列処理:一連の処理を複数の処理装置で同時に並行して行う形態。処理を高速化するための手法のひとつ
レプリケーション:"複製"の意味で、データをリアルタイムにコピーする技術のこと。デュプレックスシステムで採用されている。バックアップとの違いはリアルタイムに更新が反映される点
利用形態による分類
対話処理型:コンピュータと利用者が対話をするように、相互に処理を行う
リアルタイム処理:データの入力があった時点ですぐに処理を行う形態。インターネットショッピングでの決済など
バッチ処理:データをある程度貯めておいてから、一括で処理する形態。月末の請求書の集計処理など
仮想化(サーバの仮想化):1台のコンピュータ上で複数のサーバを仮想的に動作させる技術。別々のアプリケーションを動作させることが可能。仮想化によってサーバの運用・保守費用が削減できる。
デュアルシステム
同じシステムを2組用意して、並行して同じ処理を行い、結果を照合する。
結果を照合するため、高い信頼性が担保できる。
片方のシステムが故障した場合、故障したシステムを切り離して処理を継続できるので、24365で稼働するような、可用性が高い信頼性が求められるシステムで利用される。
デュプレックスシステム
同じシステムを2組用意して、一方をメインで使う。
もう一方は予備機として、メインのシステムが故障した際に切り替えて処理を継続させる。
いつでも切り替え可能なように、予備機を起動しておく方式をホットスタンバイといい、切り替え時に予備機の起動から行う方式をコールドスタンバイという。
クライアントサーバシステム
サービスを要求するPC(クライアント)と、サービスを提供するPC(サーバ)で構成された形態。
クライアントとサーバが処理を分担することで、サーバの負荷が軽減でき、効率的に処理できる。
メールを送受信する際には、クライアントのメールシステムとメールサーバのソフトウェアが連携して処理を行っている。
Webシステム
PCなどにソフトウェアをインストールせずに、Webブラウザを利用する。
サーバのソフトウェアで処理を行い、その結果は端末のWebブラウザを使用して表示される。
ピアツーピア(P2P)
クライアントやサーバの区別なく端末同士が直接データをやり取りする形態。
SkypeやLINEの無料通話、ビットコイン(仮想通貨)の送金などに利用されている。
クラスタ
「群れ」「集団」という意味で、複数のコンピュータを連携して、全体を1台の高性能なコンピュータのように利用する形態。
どれか1台に障害が発生しても正常なコンピュータに切り替えて稼働するため可用性が向上する。
また、複数のコンピュータに処理を分散することで、全体の処理能力も向上する。
RAID
複数のハードディスクをまとめて1台のハードディスクとして認識させ、処理速度や可用性を向上させる技術。
RAIDの種類は以下の通り。
RAID0:ストライピング機能(データを決まった長さで分割し、複数のディスクに縞模様を書くようにデータを分散して記録。同時に複数のディスクにアクセスできるため、処理速度が向上。1台に故障が発生すると、すべてのデータにアクセスできない)
RAID1:ミラーリング機能(複数のディスクに鏡のように同じデータを同時に記録。1台が故障しても、もう1台のディスクで処理が継続できるので、可用性が向上。)
RAID5:分散パリティ付きストライピング機能(データの他に、障害発生時の復旧用データ(パリティ)を複数のディスクに分散して記録。1台に故障が発生した場合、正常なデータとパリティを使って故障した故障したディスクのデータを復旧できるため、処理速度、可用性が向上。パリティのために1台分の容量が必要。)
NAS
Network Attached Storageの略で、ネットワークに直接接続して使用するハードディスク。
企業や家庭内のLANで共有ディスクやファイルサーバとして利用されている。
OSや通信機能が内蔵され、異なる種類のPCやサーバ間で利用できる。
シンクライアント
利用者の端末(クライアント)にソフトウェアやデータをもたせずにサーバで一括管理する形態。
サーバ側で処理された結果は、クライアントに転送される。
ソフトウェアやデータが管理しやすく、PCの盗難、紛失などによる情報漏洩のリスクも回避できるというメリットがある。
システムの評価指標〜性能
システムを評価する際の3つの視点
1.性能(処理の速さ)
2.信頼性(正常に稼働するか)
3.経済性(費用対効果など)
レスポンスタイム
利用者が処理を要求してから、結果が返ってくるまでにかかる時間。
例えば、利用者がボタンをクリックした時に、処理結果がクライアントに返され画面に表示されるまでの時間。
レスポンスタイムが短いほど、より性能が良い。
システムをつくるときには一般的に「画面遷移は2秒以内」といった利用者と合意した目標値が設定される。
完成したシステムのレスポンスタイムが目標の数値を超えてしまう場合はシステムの改善を行う必要がある。
月末の集計結果のバッチ処理による印刷など、時間がかかる処理の場合、処理を要求してから最後の1ページの印刷が完了するまでの時間を「ターンアラウンドタイム」といい、レスポンスタイムとは区別する。
スループット(処理能力)
システムが単位時間当たり、どのくらいの処理を実行できるかを表す指標。
スループットは多いほど性能が良い。
一般的には「アクセスのピーク時でも1時間で10万件を処理する」といった利用者の合意した目標値が設定され、できあがったシステムが目標のスループットに満たない場合は、システムの改善を行う必要がある。
ベンチマーク
「基準」という意味で、コンピュータの性能を評価するための指標。
システムの性能を比較する場合、実際にプログラムを動作させて実行時間を計測して評価する。
この評価方法をベンチマークテストという。
レスポンスタイムやスループットなどの性能に関する指標は、要件定義の際に目標値が設定され、テスト工程で目標値を満たしているかを実際のシステムで計測する。
システムの評価指標〜信頼性
運用時間における稼働率
システムが正常に稼働している割合を表す稼働率を求める計算式
稼働率=MTBF(平均故障間隔時間)/(MTBF(平均故障間隔時間)+MTTR(平均修復時間))
MTBF(平均故障間隔時間)
Mean Time Between Failuresの略で、システムに生じる故障と故障の時間感覚の平均。
つまり、システムが連続して正常に稼働している時間の平均値のこと。
MTTR(平均修復時間)
Mean Time To Repairの略で、システムが故障してから修復するまでにかかった時間の平均。
故障率
システムが障害などで正常に稼働していない割合。
これは、1から稼働率を引いた値になる。
故障率=1-稼働率
直列接続の稼働率
直列接続の場合には、1台でも故障している装置があれば、システムが稼働できない。
直列接続の時の稼働率
稼働率=装置Aの稼働率*装置Bの稼働率
並列接続の稼働率
並列接続の場合には、いずれか一方の装置が稼働していれば、システムは停止せずに、稼働し続けられる。
並列接続の時の稼働率
稼働率=1-(1-装置Aの稼働率)*(1-装置Bの稼働率)
並列接続は装置の二重化や冗長構成と呼ばれ、WebサーバやDBサーバの障害対策としてよく使われている仕組み。
直列接続の稼働率は、装置単体の稼働率より下がる。
並列接続の稼働率は、装置単体の稼働率より上がる。
システムの評価指標〜経済性
システム構築にかかる費用
初期コスト
システムの導入時にかかる費用で、イニシャルコストともいう。具体的には以下のようなものがある。
・サーバやネットワーク機器の購入費用
・システムの開発費用
・利用者の教育費用
システムをクラウドで構築した場合、サーバの購入やシステム開発が不要となり、初期コストを抑えることができる。
運用コスト
システムの運用を開始してからかかる費用で、ランニングコストともいう。具体的には以下のようなものがある。
・サーバやネットワーク機器などの電気代
・サーバやネットワーク機器などの老朽化による移行費用
・システムの管理、保守をするための人件費
システムをクラウドで開発した場合、システムの管理、保守は事業者が行うため、人件費と移行費用を削減できる。
その代わり、サービスの月額利用料が必要になる。
TCO(Total Cost of Ownership)
Ownershipは「所有権」という意味で、TCOはシステムを所有するためにかかるコストの総額という意味。
つまり、TCOはシステムの導入から運用までの総コストのことで、初期コストと運用コストを含めた全体の費用。
システムの経済性の評価は、TCOで判断する。
信頼性を確保する仕組み
信頼性を確保するための仕組み
フェールセーフ:Failは「失敗、故障」、Safeは「安全」。システムで故障や誤作動が発生した場合、システムを継続して稼働させるよりも、安全を優先する仕組み。例えば、地震発生時に、エレベーターを最寄りの階で停止させるなど。安全な状態に
フェールソフト:Softは「やわらかい、柔軟」。システムで故障や誤作動が発生した場合、故障した機能を切り離し、機能を縮小してシステムを稼働する仕組み。例えば、事故発生時に電車の路線の一部区間の運転を取りやめ、運転区間を縮小して運転を継続するなど。機能縮小
フォールトトレラント:Faurtは「欠点、過失」、Torerantは「耐性のある」。システムで故障や誤作動が発生した場合、予備の装置に切り替えて、機能を縮小せずにシステムを稼働する仕組み。24365で稼働するシステムで採用されている。障害に耐えて正常稼働を継続
フォールトアボイダンス:Avoidanceは「回避、逃避」。信頼性の高い機器を使用して障害を起こさないようにするという考え方。障害を回避
フールプルーフ:Foolは「ばかな」、Proofは「品質など試す試験」という意味。誤った操作をしても、システムや装置が故障や誤作動しない仕組み。例えば、洗濯機や電子レンジで、扉を閉めないと操作ボタンが押せない仕組みなど。誤った操作をしても故障しない
OS(オペレーティングシステム)
OS
代表的なOSは以下の種類
Windows:マイクロソフト社が開発したOS。32ビットOSまたは64ビットOSがある。PCのOSとしては世界最大シェア
MacOS:アップル社が開発したOS。UNIXをベースとしているため、ソフトウェアの開発にも向いている
Unix:AT&T社のベル研究所で開発されたOS。Linuxの基となるOS
Linux:Unixを改良して開発されたOS。プログラムコードが公開されているオープンソースソフトウェア
iOS:アップル社が開発したスマートデバイス向けOS。 iPhoneやiPadなどで採用されている
Android:Google社が開発した、スマートデバイス向けOS。現在、スマートデバイス向けOSとしては世界最大シェア。
BIOS
パソコンの起動時にOSより先に動作し、接続された装置・機器に対する制御などを行うプログラム。
コンピュータの起動時に予め設定されたパスワードを入力しなければOSが起動しないようにする機能をBIOSパスワードといい、PCの盗難や紛失時のセキュリティ対策として利用されている。
マルチブート
1台のPCに複数のOSをインストールし、コンピュータの起動時にどのOSを起動するかを選ぶことができる。
仮想化とは違い、起動できるOSは1つ。
最近では、WindowsとAndroidを切り替えて使用できるデュアルブート(デュアルOS)のタブレットが増えている。
OSの機能
OSの機能
OSの機能には以下のようなものがある。
ユーザ管理:コンピュータに利用者を追加(削除)したり、利用者情報の設定を変更する
ファイル管理:ハードディスクなどの記憶媒体にファイルの書き込みや読み込みを行う
入出力管理:マウスやプリンタ、イヤホンなどの周辺機器の制御や管理を行う
資源管理:各タスクに対し、CPUやメモリ、ハードディスクなどの資源を効率的に割り当てる
タスク管理:実行中のアプリケーションを管理する。タスクとは、OSから見たアプリケーションの実行単位のこと。例えば、メールソフトで文章を入力しながら、インターネットを利用してファイルをダウンロードするなどの複数のタスクを並行して実行することをマルチタスクという
メモリ管理:アプリケーションが動作する際に必要となるメモリ領域を管理する。アプリケーションは、ハードディスク→メインメモリ→キャッシュメモリ→レジスタの順でメモリに読み込まれて実行される
ファイル管理
ディレクトリ
Windowsのフォルダと同じで、ファイルを分割して階層的に管理。
階層の最上位ディレクトリをルートディレクトリといい、現在アクセスしているディレクトリをルートディレクトリという。
絶対パス
ルートディレクトリから目的のファイルまでの経路。
ディレクトリとディレクトリ、ディレクトリとファイルの間には区切り文字を使用する。
区切り文字はLinuxでは「/」、Windowsでは「¥」を使用する。
相対パス
カレントディレクトリから目的のファイルまでの経路。
1階層上のディレクトリは「..」、カレントディレクトリは「.」を使って表す。
ファイル拡張子
拡張子とは、ファイルの種類を判別するためにファイル名の末尾に付けられる文字列。
.exe:プログラムなどの実行ファイル
.zip:複数のファイルを圧縮してデータ量を縮小したもの。圧縮ファイル
.gif:256色以下の比較的色数の少ない静止画像ファイル
.jpeg/.jpg:デジタルカメラなどのフルカラー対応の画像ファイル
.mpeg/.mpg:動画圧縮のフォーマットで、MPEG-1、MPEG-2、MPEG-4、MPEG-7などの規格がある
.avi:マイクロソフトが開発した動画用ファイル形式。再生するには適切なコーデック(データを小さく圧縮したり、元に戻すことができるソフト)が必要
バックアップ
バックアップの種類
フルバックアップ:バックアップ対象の全てのデータを複製。バックアップ、復元にかかる時間は長い。データを復元する際は、フルバックアップデータの装置に複製するだけでよい
差分バックアップ:フルバックアップの取得以降に、追加や更新されたデータを複製。バックアップにかかる時間は、追加や更新が多ければ長い。データを復元する際は、フルバックアップと差分バックアップのデータを装置に複製する
増分バックアップ:前回のバックアップ(フルバックアップまたは増分バックアップ)取得以降に追加、更新されたデータのみを複製。バックアップにかかる時間は短い。データを復元する際は、フルバックアップと増分バックアップのデータを装置に複製する
バックアップ要件
システム要件や扱うデータの性質によってバックアップの要件は異なる。
タイミング:毎日、毎週末など
保存先:別のハードディスク、DVDなどのメディアなど
方法:日曜日はフルバックアップで、それ以外は増分バックアップを取得するなど
世代管理:最新のバックアップだけでなく、過去の状態を復元できる仕組み。(例えば、毎日フルバックアップを取得し、3世代分を保存している場合は、3週間前のデータに復元することができる)
オフィスツール
表計算ソフトで使う「セル」
1つひとつのマス目がセル。
A列1行目の位置(セル番地)を「A1」と表す。
複数のセルの集まり(セル範囲)の場合は、たとえば「左上端のセル番地がB1で、右下端のセル番地がC2」のセル範囲であれば「B1:C2」と表す。
セルの複写(コピー)
セルを複写する際に、元のセルにセル番地を含む式が入力されている場合が注意が必要。
セル番地が相対参照か絶対参照かによって複写の内容が異なる。
文章だけでは理解が難しいので、実際に表計算ソフトに入力して確かめるのが良い。
相対参照:複写元と複写先のセルの番地の差を維持するために、式の中のセル番地が変化する参照方法
絶対参照:複写元のセル番地の列番号と行番号の両方または片方を固定する参照方法
関数
合計(セル範囲):セル範囲に含まれる数値の合計を返す
平均(セル範囲):セル範囲に含まれる数値の平均を返す
最大(セル範囲):セル範囲に含まれる数値の最大を返す
最小(セル範囲):セル範囲に含まれる数値の最小を返す
IF(論理式,式1,式2):論理式の結果がtrue(論理式が成り立つ)のときは式1の値を、false(論理式が成り立たない)のときは式2の値を返す
個数(セル範囲):セル範囲に含まれるセルのうち、空白でないセルの個数を返す
整数部(算術式):算術式の値以下で最大の整数を返す
論理積(論理式1,論理式2,...):全ての論理式がtrueのとき、trueを返す
論理和(論理式1,論理式2,...):少なくとも1つがtrueのとき、trueを返す
否定(論理式):論理式がtrueのとき、falseを、falseのとき、trueをを返す
切上げ、四捨五入、切捨て(算術式,桁位置):算術式の値を指定した桁位置で、関数"切上げ"は切り上げた値を、関数"四捨五入"は四捨五入した値を、関数"切捨て"は切り捨てた値を返す。桁位置は少数第1位の桁を0とし、右方向を正として数えたときの位置とする
OSS(オープンソースソフトウェア)
OSSライセンスの条件
OSSは、ソースコードが無償で公開され、誰に対しても改良や再配布を行うことが認められているソフトウェア。
「オープンソースライセンス」という使用許諾契約に基づいて利用する必要がある。
OSSのライセンスは「The Open Source Initiative(OSI)」という非営利団体が管理しており、以下のような条件を満たす必要がある。
・自由に再配布できる
・派生ソフトウェアの配布を許可する
・使用分野に対する差別をしない
・ほかのソフトウェアを制限しない
・無償でソースコードを配布する
・個人やグループに対する差別をしない
・特定の製品に依存しない
・ライセンスは技術的に中立である
OSSライセンスの特徴
OSSライセンスは、制約条件の違いにより以下のように分かれている。
GNU GPL:もっとも制限の強いライセンス。GPLのコードを含むソフトウェアは配布の際にはソースコードの公開が必須
LGPL:GPLの制約を緩めたライセンス。LGPLライセンスのソフトウェアを利用してソフトウェアを開発しても、独自開発部分のソースコードの公開を強制しない
BSD:もっとも制限の弱いライセンス。改変したソフトウェアのソースコードを公開する必要はない
MPL:改変したソフトウェアのソースコードは公開する
OSSの種類
OS:Linux、Android
Webブラウザ:Firefox、Chromium
オフィスツール:LibreOffice、OpenOffice
メールクライアント:MySQL、PostageSQL、SQLite
Webサーバ:Apache
データベース方式
データベース管理システム
DBMSは、データベースを運用、管理するためのソフトウェアで、以下のような機能を持っている。
データ操作:データの検索、追加、更新、削除を行う機能
アクセス制御:利用者にDBの利用権限を設定し、アクセス権のない利用者がDBにアクセスできないようにする機能
同時実行制御(排他制御):同時に複数の利用者がDBを操作しても、データの矛盾が生じないようにする機能
障害回復:DBに障害が発生した場合に、障害が発生する前の状態にデータを復旧する機能
データベースの種類
リレーショナル(関係)データベース:最も普及しているDBで、データを表形式で表す。データの操作にSQLという言語を利用する
ツリー型(階層型)データベース:データがツリー(木)のような構造をしている。親データに対して複数の子データが存在する
ネットワーク型データベース:データ同士が網の目のような構造をしている。子データに対して複数の親データが存在できる
NoSQL:Not Only SQLの略で、SQLを使わずリレーショナル型データベース以外のものをまとめて呼ぶ。自由なデータ方式が特徴で画像や音声など色々なデータを大量に保存でき、ビッグデータを蓄える技術としても利用されている
データベース設計
データベースの構造
テーブル(表):データを2次元で管理する表のこと
レコード(行):テーブル内の1件文のデータのこと
フィールド(列):テーブル内の項目のこと
主キー:テーブル内のレコードを一意に識別するためのフィールド。1つのテーブルに主キーが同じレコードは複数存在できない。これを一意性制約という
外部キー:他のテーブルの主キーを参照しているフィールド。外部キーの値は重複してもよいが、参照するテーブルの主キーの値と同じでなければならない。これを参照整合性制約という
インデックス:データの検索速度を向上させるために、どのレコードがどこにあるかを示したもの。本の索引のようなもの
データの正規化
DBでは、関連する情報ごとにテーブルを分割してデータを管理する。
データの正規化とは、データの重複がないようにテーブルを適切に分割し、データの更新時に不整合を防ぐための仕組み。
もし商品の単価が複数のテーブルに存在していたら、単価が変更された時に複数のテーブルを変更する必要があり、修正漏れなどによりデータの不整合が発生する可能性がある。
このようなことを防ぐために、DBの設計では正規化を行い、どこのテーブルにどのデータを持たせるべきかを決定していく。
分割したテーブルとテーブルの関係はE-R図で表現する。
テーブルが実態(Entity)、テーブルの関係が関連(Relationship)になる。
データ操作
データ操作
リレーショナルデータベースを操作するための言語をSQL(Structured Query Language)という。
データ操作には以下の種類がある。
選択:目的とするテーブルから、指定された条件のレコードだけを取り出す
射影:目的とするテーブルから、指定されたフィールドだけを取り出す
挿入:目的のテーブルに、新たにレコードを追加する
更新:目的のテーブルにの指定された条件のレコードの値を更新する
削除:目的のテーブルから指定された条件のレコードを削除する
結合:複数のテーブルに対して、共通のレコードを使ってテーブルを連結し、新たな結果を取り出す
データの正規化によりDBのデータは複数のテーブルに分割されて格納されている。
必要な情報を取り出すためには、「複数のテーブルを結合してから取り出す」操作が必要になる
トランザクション処理
トランザクション処理
リレーショナルデータベースでは、通常、同時に複数の利用者による処理(トランザクション)が実行されている。
そのため、DBの一貫性を保つ仕組みが用意されている。
コミット:トランザクション内の全ての操作を確定すること。例えば、注文処理のときに、在庫テーブルの在庫数の更新操作と注文テーブルの挿入操作の両方が成功した場合、DBへの操作を確定する
ロールバック:トランザクション内の全ての操作を取り消すこと。トランザクションが注文処理のときに、在庫テーブルの在庫数の更新操作か注文テーブルの挿入操作のどちらかが失敗した場合、DBへの操作を取り消す
排他制御:同一のデータに対して、複数のトランザクションが同時に書き込むことを防止する仕組み。操作中のデータにロックをかけ、他のトランザクションから操作させないようにすることで、データの上書きなどが起きないようにする。操作の完了後、ロックを外して(アンロック)、他のトランザクションの操作を可能にする。
2つ以上のトランザクションがお互いロックをかけ合い、ロックの解除待ちになってしまう状態をデッドロックという。デッドロックが起きると性能が落ちるため、トランザクション内の処理の順番を決めるなどの回避策が必要となる
トランザクション処理や排他制御は、インターネットショッピングをはじめとするWebシステムでは欠かせない機能。
データの整合性を保つ仕組みとして理解しておく。