========== 情報基礎 ========== ここでは情報に関する基礎的な用語やコンピュータの仕組みについて解説していきます。 情報の基礎理論 ========================== **【2進数】** | 2進数とは、数を"0"と"1"の2つの文字の組み合わせで表現したものです。 | コンピュータの内部では「電圧が高い/低い」という2つの状態を使ってデータを管理しており、これを表現するために最適な方法が2種類の値を持つ2進数です。 **【16進数】** | 16進数とは、数を16個の文字を用いて表現したものです。16進数の1桁は、2進数の4桁に相当します。 | コンピュータでは、2進数8桁のデータをひとつの単位として扱うことが多いので、16進数はコンピュータ上のデータを扱う上で非常に効率が良くなります。16進数では、"0"から"9"までの数字のほかに"A"から"F"までのアルファベットを使って数を表現します。 =========== =========== =========== 2進数 10進数 16進数 =========== =========== =========== 0 0 0 1 1 1 10 2 2 11 3 3 100 4 4 101 5 5 110 6 6 111 7 7 1000 8 8 1001 9 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F 10000 16 10 11111 31 1F 100000 32 20 111111 63 3F 1000000 64 40 111111 127 7F 10000000 128 80 11111111 255 FF 100000000 256 100 =========== =========== =========== **【ビットとバイト】** | ビット(bit)は2進数一桁のことを言います。コンピュータが扱う、情報の最小単位です。1ビットでは2通りを表現することができ、一般的には「0」「1」で表記されます。nビットであれば、2のn乗の情報を扱うことができます。例えば、8ビットであれば2*2*2*2*2*2*2*2=256通り表現することができます。 | | バイト(Byte)は情報の大きさを表すのに使われる単位であり、1Byte = 8bitsです。一般的に1024Bを1kB(キロバイト)、1024kBを1MB(メガバイト)、1024MBを1GB(ギガバイト)、1024GBを1TB(テラバイト)とされています。 .. note:: 混同を防ぐために、ビットは小文字のb、バイトは大文字のBで表記します。 **【文字コード】** | 文字化けを経験したことがある人は多いと思います。 | その文字化けを生じる原因になっているのが、文字コードの違いです。 | 文字コードとは文字の表現形式で、ある"文字セット"に対する"符号化方法"の事です。 | **文字セット** とは、その名のとおり文字の集合体を表すもので、例えば以下の文字を複数組み合わせたものです。 | * 半角英数 | * 半角カナ | * 日本語 | * ラテン語 | 文字セットの具体例として、以下があります。 ================== ========================================================= **JIS X0201** | 半角英数、半角カナ、日本語の集合体 **Unicode** | 世界中で使われるすべての文字 ================== ========================================================= | **符号化方法** とは、文字セットの各文字に対して、どのようにして数値を当てはめるか定めたものです。 ================== ======================================================================================== **ASCII** | 半角英数の符号化方法。すべての文字は7ビットで表現される。 **Shift_JIS** | JIS X0201の符号化方法。半角英数と半角カナは1バイト、その他の日本語は2バイトで表現される。 **EUC** | JIS X0201の符号化方法。半角英数以外のすべての文字が2バイトで表現される。 **Unicode** | Unicode(文字セット)の符号化方法のひとつ。すべての文字が2バイトで表現される。 | 文字セットのUnicodeと文字コードのUnicodeは別の概念であることに注意すること。 **UTF-8** | Unicodeの符号化方法のひとつ。XMLの仕様では標準の文字コードとされている。 | 半角英数が1バイトで済むように工夫されているが、日本語を表現するためには3バイト必要である。 ================== ======================================================================================== ハードウェア ========================== コンピュータは主に以下の5パーツで構成されており、一般に五大装置と呼ばれています。 **【入力装置】** | コンピュータに処理させるデータやプログラム、操作などを入力するための装置です。 | 最も代表的なものはキーボードとマウスで、他にもタッチパネルなどが挙げられます。 **【出力装置】** | コンピュータで処理した結果や途中経過を出力するための装置です。 | 最も代表的なものにはディスプレイ、ステレオ装置、プリンタなどが挙げられます。 **【記憶装置】** | 記憶装置は、コンピュータ本体の中でシステムの稼働中に使用される"主記憶装置"とそれを補う形の"補助記憶装置"とに分けられます。 | 主記憶装置は一般的にメモリ(memory)と呼ばれる装置であるのに対し、補助記憶装置は、主記憶装置の容量不足を補うため | あるいはシステムが稼働していないときの保存のために、外部の媒体(メディア)に記憶しておく役割を持ちます。 | 補助記憶装置は種類が非常に豊富で、代表的なものにハードディスク、CD、DVD、フラッシュメモリなどがあります。 **【演算装置】** | 演算装置には、算術演算装置(arithmetic unit)と論理演算装置(logic unit)と呼ばれるものがあります。 | これらを一括して算術論理演算装置(Arithmetic and Logic Unit)といい、省略してALUと呼ぶこともあります。 | コンピュータはよく「計算機」と言われますが、実際にその計算を行っているのがこの演算装置です。 **【制御装置】** | コンピュータを動作させるプログラムを解析し、入力装置、出力装置、記憶装置、演算装置に制御信号を出す装置です。 | 演算装置とこの制御装置がコンピュータの心臓部であり、この2つをあわせて中央処理装置(CPU:Central Processing Unit | あるいは単に処理装置(プロセッサ:Processor)と呼びます。 ソフトウェア ========================== | ソフトウェア(software)という言葉は、先ほどあげた五大装置のようなハードウェア(hardware)と対比する言葉であり、それをもじった造語です。 | 一般的には、道具そのものをハードウェア、その道具の使い方をソフトウェアといいます。 | ITの分野でハードは「機械そのもの」、「ソフト」はプログラムなどの目には見えないものを指す場合がほとんどです。 OS ========================== **【OS】** | OSとは、Operateing Systemの略称です。コンピュータ資源(システム資源)を効率よく実行させるためのソフトウェアの集まりであり、コンピュータシステム全体を管理するソフトウェアなのです。 | 代表的なOSとして有名なものは、 * Windows * Mac OS * UNIX * Linux    等が挙げられます。 **【API】** | APIとはApplication Program Interfaceの略称で、ソフトウェア開発を容易にするためにあらかじめ提供されているプログラムの部品のことです。 | 多くのソフトウェアに共通して用いられるような機能等をあらかじめ用意しておくことで開発の負担を減らしたり、データをコンパクトにしたりきます。 **【プログラム】** | プログラム言語というのは、コンピュータに対する一連の動作の指示を記述するための人工言語の総称です。 | この一連の指示をプログラムと呼びます。 | プログラム言語は以下の4種類に大別されます。 * 汎用プログラム言語 * スクリプト言語 * 第4世代言語 * 特殊問題向き言語 | ちなみに、HTML等はプログラム言語ではありません。 | そしてそのプログラム言語はさら2種類、低水準言語と高水準言語に分けることができます。 | 低水準言語とはコンピュータが理解しやすい機械語、またはより機械語に近い形式で記述されるプログラム言語のことを指します。 | そして高水準言語とは、より人間の言語表現に近い形式で記述されるプログラム言語のことを指します。 | 有名なプログラム言語を大別すると以下のようになります。 * 汎用プログラム言語    低水準言語:アセンブラ語    高水準言語:C、JAVA * スクリプト言語    PHP、Perl、Javascript ディレクトリ構造 ========================== | ここではディレクトリにまつわることを解説します。 | **ディレクトリ** とは、パソコンで使われているMS-DOSやUNIXといったOSにおけるファイル管理の単位のことです。 | WindowsやMacではディレクトリよりも"フォルダ"という名称の方が親しみがあるかもしれません。 | ディレクトリにはファイルの管理情報が記録されており、ファイルの読み書きはこの管理情報を通じて行われます。 | 3種類のディレクトリを簡単に解説します。 **【ルートディレクトリ】** | 最上位のディレクトリのことです。ルートディレクトリは常に1つしかありません。 **【サブディレクトリ】** | ルートディレクトリの下層にある複数のディレクトリのことです。 | ユーザが自由に作成でき、サブディレクトリの中にはファイルやディレクトリをさらに作ることができます。 **【カレントディレクトリ】** | ユーザが現在の作業を行っているディレクトリのことです。ユーザの作業状況によってカレントディレクトリの位置は変化します。 | また、 **パス** というのも重要なワードです。 | ファイルやディレクトリまでの経路のことをパス(path)と呼んでいます。 | 目的のファイルやディレクトリを指定するときは、その位置をパス指定します。 | パスには主に2種類の記述があります。 **【絶対パス】** | パス指定のやり方の1つで、ルートディレクトリから指定します。 | カレントディレクトリに関係なく、位置が一意に決まります。 **【相対パス】** | パス指定のやり方の1つで、カレントディレクトリから指定します。 | カレントディレクトリからの相対的なパスなので、位置が一意に決まらない。 データベース ========================== | データベースが登場するまで、ファイルはプログラムごとに管理されていたため、 | 各ファイル間にかなりのデータの重複が見られ、データの更新のずれにより | ファイル間のデータの不一致といった問題を引き起こすことが多くありました。 | そこで、個別に作成していたファイルを整理し、一元化することでデータの共用化と | プログラムからの独立性を図り、データの質と安全性を向上させようという考えが生まれたのです。 | データベースで、データ構造やコンピュータ操作をどのようにするか決めたものをデータモデルです。 | データモデルには階層モデル、網モデル、関係モデルの3つがあります。 | 現在一般的に使用されているのは関係モデルであり、そのデーターベースをリレーショナルデータベースと呼んでいます。 **【関係モデル】** | 二次元の表構造によってデータ構造を表現したものです。 | 表の列を属性(attribute)、行を組(tuple)と呼び、属性と組で構成された表を関係(relational)と定義します。 ===== ===== ===== =====   列 列 列 ===== ===== ===== ===== 行 行 行 ===== ===== ===== ===== | 1つの表の中で各組すべて、その値がことなるものが主キー(primary key)です。 | この主キーの値は重複しない、空ではないという実態の完全性を持ち、 | 通常、通し番号(学籍番号とか商品番号など)が主キーに相当します。 | また、主キーが他の表の属性として使われているとき、その属性を外部キー(foreign key)といいます。 | 主キーと外部キーは、 | **「表Aに主キー、表Bに外部キーがある場合、Bの属性欄のデータはAの属性欄の値として必ず存在しなければならない」** | という参照の完全性が成立します。 | 使いやすさ、システムの柔軟性、拡張性などの利点から現在、 | 関係モデルのリレーショナルデータベース(Relational DataBase:RDB)は | パソコンをはじめさまざまなコンピュータ上で広く利用されています。 **【データベースマネージメントシステム】** | データベースを作成し、保守・管理するソフトウェアをDBMSといいます。 | DBMSには、データベースを定義する機能、データベースのデータを効率よく操作する機能、 | データベースのデータを保護する機能などがあります。 | このシステムによってデータベースをガードし、ユーザは直接データに触れることなく | 必要な情報を入手できるようになりました。また、DBMSの働きでユーザが自分のプログラムに | データやファイルに関する記述をする必要がなくなり、DBMSに直接対話することで、 | データベースへのデータの受け渡しが可能となりました。この対話は、データベース言語によって行われます。 **【SQL (Structured Query Language)】** | SQLはリレーショナルデータベースを操作するための言語で、 | データの定義言語(SQL-DDL)とデータの操作言語(SQL-DML)から成ります。 | SQLは独立言語方式で利用できるほか、Cなどの高水準言語にSQLを埋め込んで利用する親言語方式もあります。 | この単元でのポイントは、 | * データベースを操作するための言語のことをSQLという | * SQLにはデータ定義言語とデータ操作言語がある | * 他のプログラム言語などからも使うことができる | という点です。 ネットワークシステム ========================== プロトコル ------------ データの通信方法に関する取り決めを「プロトコル」と呼びます。 日常生活における「プロトコル」の例は、例えば信号です。 信号の「青」は「前に進んでも良い」という意味で 「赤」は「止まらなければならない」という意味だと あらかじめ規定しておき、各ドライバーがその取り決めを 理解して遵守することによって、交通の流れをスムーズに させたり事故を防いだりしていると解釈することができます。 OSI基本参照モデル ------------------ 「OSI基本参照モデル」とは、ネットワークでデータを通信するために必要な仕様の取り決めを、7つの層に分けて定義したものです。 **物理層** データをどのように信号化するか(例えば銅線のケーブルであれば電流の強弱, 光ケーブルであれば光の明るさなど)などを規定する **データリンク層** 2つの通信機器同士におけるデータの管理方法などを担当する **ネットワーク層** データの経路の制御を担当する **トランスポート層** 通信におけるデータの転送方法について規定する **セッション層** 通信が確実に行われるための **プレゼンテーション層** 送受信されるデータの形式などを管理する **アプリケーション層** Webページのアクセスやメールの送受信など、具体的なサービスのプロトコルなどを規定する TCP/IP -------- 米国防総省が開発したインターネットアーキテクチャです。これらから構成されています。 #. アプリケーション層 #. TCP #. IP #. ネットワークインターフェース層 TCP/IPを使って通信を行う際、送信先のコンピュータを特定するために用いられるID番号のことをIPアドレスと言います。 DHCPとは ---------- DHCPはDynamic Host Configuration Protocolの略です。 TCP/IP環境でネットワークを接続するとき、接続する各コンピュータにIPアドレスなどの必要な情報を自動的に割り当てるプロトコルです。 自分のノートPCをDHCPが有効なネットワークにつなぐと、自動的にIPアドレスが与えられ、すぐにインターネットに接続することができます。 WWW ----- WWWとは、World Wide Webの略です。 世界中のWWWサーバに登録されているWebページが、クモの巣のように互いに結びつき、誰でも情報を閲覧できるように公開した大規模なデータベースシステムです。 Webページどうしが縦横無尽にリンクされている状態を「クモの巣のよう」と表現しております。 通常、閲覧には「Internet Explorer」や「Fire Fox」といったWebブラウザが広く利用されています。 FTP ---- FTPは、File Transfer Protocol の略です。 TCP/IPにおけるファイル転送するためのプロトコルです。 インターネット上のファイルを公開しているサーバと やり取りするときなどに使います。 CUIで利用することはもちろん、GUIで利用することもできます。 Email ------ **POP** Post Office Protocolの略。 メール受信用プロトコルです。 現在は改良されたPOP3が主に使われています。 POPでのメールの受信は、ユーザがPOPサーバからメールをダウンロードしてくる、 という仕組みになっていて、一度ダウンロードしたメールはネットに繋がなくても見ることができます。 ダウンロードしたメールは原則としてサーバーには残りません。 **IMAP** Internet Message Access Protocolの略。 これもメール受信用プロトコルです。 IMAPで受信したメールはサーバーに蓄積され、ユーザーはサーバー上にある自分宛のメールに直接アクセスすることでメールを見ることができます。 ネットにさえつながれば、どの端末からもメールを読むことができるという利点があります。 **SMTP** Simple Mail Transfer Protocolの略。 メール送信用プロトコルです。 PCなどの端末から送信されたメールは指定したSMTPサーバに送られます。 そしてSMTPサーバはまた別のSMTPサーバに対してその送られてきたメールを送信し、 最終的に受信用のサーバであるPOPサーバやIMAPサーバに届けられる仕組みになっています。 **まとめ** メールを送信するときには送信用のプロトコルとサーバ 受信するときには受信用のプロトコルとサーバを用いてEmailのやりとりをします。 DNS ---- **ドメイン名とは** 数値で羅列されたIPアドレスを、わかりやすく文字に置き換えたものです。uheroの公式サイトの場合、IPアドレスは46.51.246.254、ドメイン名はwww.uhero.co.jpです。 **DNSとは** DNS(Domain Name System)とは、IPアドレスとドメイン名とを対応させ管理するシステムです。これによって、登録さえされていればIPアドレスでもドメイン名でも同じ扱いになります。基本的なドメイン名の命名規則は「ホスト名.組織名.組織属性.国コード」で表します。例えばユヒーロのドメイン名である「www.uhero.co.jp」では * www:ホスト名 * uhero:組織名 * co:組織属性 * jp:国コード となります。 URIとは --------- "Uniform Resource Identifier" の略で、情報資源を特定するためのIDです。 インターネットにおける情報の「住所」にあたります。 URLはURIの機能の一部を具体的に仕様化したものです。 イントラネット ------------------ イントラネットとはインターネット技術を利用して 企業などの内部ネットワーク(LAN)を構築し、 情報の共有化や外部への情報提供などを行うシステムです。 これまでイントラネットでは、専用のソフトウェアを使用して構築されることが多かったのですが、 既存のインターネットの技術を利用することにより、安く、使いやすいシステムを実現することが可能になりました。 ファイアウォール ----------------- インターネット上からLAN内部に不正侵入されないようにするための防衛機能です。 外部からの不正アクセスなどから内部ネットワークを守るセキュリティ対策機能として、 インターネットなどの外部ネットワークとLANなどの内部ネットワークの間に設置します。 プロキシサーバ(proxy server)の設定やルータのフィルタリング(filtering)機能によって、 インターネットと内部ネットワークの間にバリアセグメントを作り、内部ネットワークに 外部ネットワークからの不正侵入ができないようにします。 情報システムのセキュリティ ========================== **【プライバシーの保護】** | 情報システム上での個人情報の漏洩や不正使用を未然に防ぐことがプライバシーの保護です。 | プライバシーの保護策としては、個人情報の流出防止法といった法的規制のほかに次のような防止策があります。 **アクセス管理** | コンピュータシステムへの不正アクセスを防止するためにユーザが与えるアクセス権減を明確にし、管理することを言います。 | 個人の識別方法として、ユーザIDやパスワードが多く利用されています。 **認証** | 相手が本人であるか確認する、ということです。主にパスワード入力かコールバック、発信番号の自動検出機能、デジタル署名などが利用されています。 **暗号化** | ネットワーク上で買わされる個人情報や取引内容などのデータを第三者には理解できないように暗号に変換することをいいます。 **複合** | 暗号化されたデータを元に戻すことをいいます。 **【暗号方式】** **秘密鍵暗号方式** | 共通鍵暗号方式ともいいます。暗号化と複合化に同じ鍵を使い、当事者(送信者と受信者)以外には秘密にしておく方式です。 | 暗号化、複合化の速度が速く、グループの利用に適しています。欠点は鍵が盗まれてしまうとすぐにその鍵で複合化ができてしまうこと、 | そして相手の数だけ鍵を用意する必要があることです。 **公開鍵暗号方式** | 暗号化鍵と複合化鍵を別にし、暗号化鍵の法は公開して複合化鍵の方だけを受信者のみの秘密としておく方式です。 | 受信者側は秘密にしてある鍵一つだけで複合化できるので鍵の管理が楽になります。 | ネット上での取引や顧客のクレジット番号のやり取りなど多数対1の利用に適しています。 | 欠点としては、暗号化/複合化の速度がやや遅いこと、誰でも暗号化はすることができるので成り済ましの危険があることです。