第1章
コンピュータの絶対的な3つの基礎
1.コンピュータはプログラムの解釈と実行
2. プログラムは命令とデータの集合体
3. コンピュータの都合は、人間の感覚と異なることがある*1
ICとは外部から入力されたデータを演算し、その結果を外部に出力するもの。
命令とは入力、演算、出力をコンピュータに指示するもの。
データとは、命令の対象となる入力情報によって得られる出力情報
コンピュータとは、プログラムを動作させるもの。
*1 代表例は、すべての情報を数値に置き換えること。色や秘密鍵などは数値に置き換えられる。
2章
CPUとは、人間でいうと脳に相当する部分。内部で演算を行い、メモリーとI/Oをコントロールする。
メモリーとは、命令とデータを記憶するためのもの。駐車場みたいイメージ。
I/Oとは、パソコン本体、キーボード、マウス、ディスプレイなどの周辺機器を接続し、データの受け渡しを可能にするもの。
クロック信号とは、CPUを動作させるためのもの。電圧の高低を繰り返す。信号みたいイメージ。
クロック・ジェネレータとは、クロック信号を出力するもの。この中には水晶があり、振動数に応じてクロックを発生させる。
ディップ・スイッチとは、プログラムの入力を可能にする装置。
LEDとは、プログラムの動作結果を出力する装置
アドレス・ピンとは、CPUに付いており、データの入出力先を指定させることを可能にするもの。
データ・ピンとは、データの入出力を可能にするもの。
レジスタとは、CPUとI/Oの中でデータを記憶するもの。倉庫みたいなもの。
ポートとは、I/Oが外部装置とデータを受け渡すことを可能にするもの。荷物の荷下ろしを行う場所みたいなもの
制御ピンとは、ICの機能をコントロールするための電気信号を入出力するためのもの。
コンデンサとは、電気をためるもの。
第3章
マシン語とは、0と1が並んだプログラミン言語
メモリーのアドレス空間とは、メモリーの中にあるデータの格納場所を指定するアドレスの範囲。荷物置き場みたいなイメージ。
アセンブリ言語とは、マシン語を英語でわかりやすくしたものをニーモニックと呼び、
そのニーモニックを使用したプログラム言語。
オペコードとは、「○○せよ」という命令のこと。
オペランドとは、命令対象となる「○○を」の部分を意味する
第4章
フローチャートとは、プログラムの流れを表した図のこと。地図みたいイメージ。
プログラムの種類は3つある。小さい番地から大きな番地に向かって進む「順次進行」、途中で枝分かれする「条件分岐」、何度も実行する「繰り返し」の3つ。
アルゴリズムとは、与えられた問題を解く順序。
第6章
変数とは、データの入れ物
配列とは、複数のデータを格納するためのメモリー領域をまとめて確保し、全体に1つの名前を付けたもの。旅行客が荷物置き場に荷物を置くイメージ。
データ構造とは、データの置き方。
スタックとはデータを山のように積んでいく
キューとは、データを行列のように並ばせる
リストとは、データの並びを任意に変更できる
2分木とは、データの並びを2またにわける。
第7章
OOPとは、いろいろな意見が本には書かれているが、その1つに「部品を組み合わせてプログラムを構築する」ものとある。
クラスとは、金型みたいなもの。
オブジェクトとは、金型で生成されたもの。
第8章
データベースとは、データを貯めて、利用しやすいように整理したもの。ファイルみたいイメージ。
リレーショナル・データベースとは、データを複数のテーブルに分けて管理し、テーブル同士の関係を記録したもの。
データベース・アプリケーションとは、データベースを利用するためのプログラム。
DBMSとは、簡単にデータファイルを読み書きできるようにし、データを矛盾なく安全に保つ。例えば、SQL文をデータベースに送信したら、MySQLというDBMSがそのSQL文を受け取り、データベースに送る。
スタンドアロン型システムとは、1台のPC上にデータファイル、DBMS、アプリケーションが配置されている状況で行うシステム開発。
ファイル共有型システムとは、1台のPC上にデータファイルを配置し、DBMS、アプリケーションが配置された複数のPCから共有して行うシステム開発。
クライアント/サーバー型システムとは、1台のPC上にデータファイル、DBMSを配置し、アプリケーションが配置された複数のPCから利用するシステム開発。
Webサーバーとは、データファイルとDBMSが配置されたPCのこと
クライアントとは、アプリケーションが配置されたPC
Webシステムとは、サーバーとクライアントの間がインターネットで接続されているもの。クライアントにはWebブラウザだけが配置されている。
データベースを設計する
Step1: 必要なデータを洗い出す
Step2: データの属性を決め、テーブルを作成
レコードとは、テーブルに登録される1行のデータのまとまり。
カラムまたはフィールドとは、列のこと。属性の設定対象となる。
Step3: テーブルを分割し、整理する
正規化とは、テーブルを複数に分け、個々のテーブルの関係を設定し、データベースの構造を整理すること。
キーとは、テーブルとテーブルを関係づけるためのカラム。
主キーとは、各テーブルに、カラムの中にある値が分かればレコードを特定できるキー。他のレコードと重複しないもの。
外部キーとは、他のテーブルの主キーのこと。
リンク・テーブルとは、2つのテーブル間に追加されたテーブルのこと。1対多に分けることができ、芋づる式に情報を探すことが可能。
インデックス・テーブルとは、カラムの値とそのカラムを持つレコードの位置を記録したもの。高速に検索や並べ替えを行うことを可能にする。
Step4:ユーザー・インターフェイスの設計
データベースの操作の種類は、CRUDと呼ばれるものがある。
Create(登録)、REFER(取得)、UPDATE(更新)、DELETE(削除)の頭文字をとったもの。データベース・アプリケーションはレコードのCRUDができれば良い
SQL文とはDBMSにCRUDを指示する文。
トランザクションとは、複数のSQL文になったもの。
データ・オブジェクトとは、WindowsアプリケーションからDBMSにSQL文を送るソフトウエア部品。JavaでMySQLを使用する場合、JDBC。
トランザクション制御とは、2つのSQL文を送信し、何らかのトラブルにより1つのSQL文をしか成功しなかったという問題を防ぐための考え。この問題を避けるためにSQL文では、3つの命令が用意されている。1つは、トランザクション開始することをDBMSに伝えるBEGIN TRANSACTION命令、トランザクションの終了を伝えるCOMMIT、最後はトランザクションの途中でトラブルが発生した場合、トランザクション開始前の状態に戻すROLL BACK。
第9章
LANとは、小規模なネットワーク。つまりグループ化されたコンピュータ群。
WANとは、企業間を結ぶ大規模なネットワーク。
MACアドレスはメーカ名+商品番号で規定されたもの。ハードウェア的に設定するもの。
IPアドレスは上位階層から地域、プロバイダーなどのグループごとに割り当てられる
数値。このグループに分けることで宛先までの道のりがスムーズになる。ソフトウエア的に設定するもの。
ホストとは、IPアドレスが設定されたコンピュータ
ネットワーク・アドレスとは、IPアドレスの中でLANを表す部分。
ホスト・アドレスとは、個々のコンピュータを表す部分。
サブネット・マスクとは、IPアドレスのどこまでがネットワークアドレスで、どこからがホスト・アドレスなのかを区別するためのもの。ソフトウエア的に設定するもの。
ルーターとは、経路の案内人みたいなもの。どこに情報を送信したら良いか決める役割を持つ。
DNSサーバーとは、コンピュータに付けられた名前のホスト名+ドメイン名を組み合わせて作られたFQDNをIPアドレスに変換するもの。FWDNは、例えば、www.....comみたいなもの。また、ドメイン名とは特定のネットワークを教えてくれるもの。
ARPとは、IPアドレスをMACアドレスに変換するもの。
キャッシュとは、メモリー内に一時的にデータを記録しておくこと。
TCPとは、データの送信者と受信者がお互いに相手の確認を取りながら、確実にデータを渡すプロトコル。
IPとは、IPアドレスから送信先を指定し、データを送るプロトコル。
パケットとは、MACやIP、TCP等の情報が付加されたもの。TCPによって送信される。
第10章
平文とは、暗号化されていない文。
文字コードとは、個々の文字にあてられたコード
鍵とは、暗号化、復号化する際に使用される値。
公開鍵暗号方式とは、データを送る際はインターネット上で公開している受信者側のpublic keyを使ってデータを暗号化し、送られた側は自分のprivate keyを使って復号化を行う手法。
RSAとは、公開鍵暗号方式を実現するためのアルゴリズム。
電子署名とは、データの送信者を証明するもの。平文を構成するすべての文字コードを使用し、何らかの計算式で算出された値をprivate keyで暗号化し、public keyで複合化する手法。
第11章
XMLは、コンピュータが独自のタグ(例)で簡単に情報を識別できるようにしたもの。分散コンピューテイングにより得られた結果やぷろぐらむw呼び出す情報を送受信する際に使用される。
分散コンピューテイングとは、ネットワークで接続された複数のコンピュータにプログラムを分散して配置し、連動させることでコンピュータ・システム全体を機能させるもの。