基本情報技術者試験

試験に出る問題と用語 その2

SQL

データの整列
SELECT命令で読みだしたデータを整列させることができます。 ORDER BYの後に、整列の対象となる列名を指定します。さらに、昇順の場合は
ASC、降順の場合はDESCを指定します。

SELECT命令の中で集約関数を使うことができます。集約関数には、合計値を求めるSUM関数、最大値を求めるMAX関数、最小値を求めるMIN関数、平均値を求めるAVG関数、データの登録件数を求めるCOUNT関数などがあります。

グループ化 SELECT命令で読みだしたデータを、列の値が同じものどうしでグループ化できます。GROUP BYの後に、グループ化する列の名前を指定します。グループ化した出たに条件を指定するときは、WHEREではなくHAVINGを使います。

ポイント!
グループ化する前のデータの抽出条件はWHEREで指定します。
グループ化した後のデータの抽出条件はHAVINGで指定します。

ビュー
ビューはSELECT命令に名前を付けて、データベースに保存したものです。CREATE VIEW命令で、ビューを作成します。作成されたビューはSELECT命令のFROMの後に指定して、表と同様に使えます。ビューを使うと、SELECT命令の条件をシンプルにできる効果があります。

副問い合わせ
SELECT命令のWHEREの後に指定する条件の中で、別のSELECT命令を使うことができます。このようなSELECT命令を副問い合わせ(サブクエリ)と呼びます。副問い合わせではないSELECT命令を主問い合わせ(メインクエリ)と呼びます。

ポイント!
通常のSELECT命令を主問い合わせと呼びます。
WHEREの後の条件の中にあるSELECT命令を副問い合わせと呼びます。

関係代数


SELECT命令を使って、条件に一致した特定の行を読み出すことを選択と呼びます。SELECTの後に列の名前を指定して、特定の列を読み出すことを射影と呼びます。複数の表を結びつけてデータを読み出すことを結合と呼びます。これらの操作を関係代数と呼びます。

SQLの主なデータ型


CHAR型    :固定長文字列(文字数を固定的に決める)
VARCHAR型:可変長文字列(最大文字数を指定した任意の長さ)
DATE型  :日付(年月日)
INTEGER型  :整数

トランザクション処理


トランザクションのACID特性
データベースに対するひとまとまりの処理をトランザクションと呼びます。1つのトランザクションが、複数のSQL文から構成されることもあります。この場合には、もしもすべてのSQL文の実行が終わっていない状態で処理を中断してしまうと、データベースの内容に矛盾が生じてしまいます。

複数のSQL文から構成されていても、トランザクションは、1つのまとまった処理であり、それ以上分割することはできません。これをトランザクションの原子性(Atomicity)と呼びます。
トランザクションには「原子性」のほかにも、一貫性(Consistency)得率性(Isolation)耐久性(Durability)、という特性があり、これらをまとめてACID(アシッド)特性と呼びます。

原子性(A)トランザクションは、それ以上分割できない
一貫性(C)データベースに設定された値の範囲や参照整合性などの制約条件を守る
独立性(I)トランザクションの途中の中途半端な状態を、外部から読み出せない
耐久性(D)トランザクションが完了したら、その結果が確実にきろくされる

ロールバックとロールフォワード


トランザクションを構成するすべてのSQL文の実行が完了することをコミット(commit)すると呼びます。もしも、トランザクションを開始して、まだコミットしていない状態でシステム障害が発生すると、原子性が保てなくなり、データベースの内容に矛盾が生じてしまいます。
 この場合には、DBMSがロールバック(roll back)という処理を行って、データベースの内容を、トランザクションの開始前の状態に戻します。トランザクションは、それ以上分割できないものなので、中途半端な状態で終われないからです。コミットできないなら、トランザクションの開始前の、何も処理していない状態に戻します。
 さらに、DBMSには、ロールバックによって取り消されたトランザクションを再実行する機能もあり、これをロールフォワード(roll forward)と呼びます。ロールフォワードは、システムの障害時だけでなく、システムの故障時からのデータ復旧でも行われます。
 ロールバックとロールフォワードを実施するときには、トランザクション開始前およびコミット後の状態を保存したファイルが使われます。これをジャーナルファイルログファイルと呼びます。

データにロックをかける


排他制御によって、他のトランザクションを実行させないようにすることをロックと呼びます。ほかのトランザクションがはいってこないように、鍵(lock)をかけるイメージです。ロックの形式には、データの登録、更新、削除のときにかける専有ロックと、データの読み出しの時にかける共有ロックがあります。
 データに専有ロックをかけると、他のトランザクションから一切の処理ができなくなります。これは、他のトランザクションから専有ロックも共有ロックも受け付けないという意味です。これによって、他の誰からも見られることなく、安心してデータを操作できます。
 データに共有ロックをかけると、他のトランザクションから登録、更新、削除ができなくなりますが、読み出しはできます。これはほかのトランザクションから専有ロックを受け付けないが、溶融ロックなら受け付けるという意味です。データを見ているだけなので、他の誰かが見ても矛盾は生じません。

デッドロック


ロックをかけるときには、注意が必要です。ロックがかけられたデータを、他のトランザクションが利用したいときには、ロックが解除されるのを待つことになります。たとえば、トランザクションAがロックしたデータの解除をトランザクションBが待ち、トランザクションBがロックしたデータの解除をトランザクションAがまった状態になると、どちらも処理を進められません。この状態をデッドロック(dead lock)と呼びます。


ネットワーク

プロトコル


LANとWANでは、その中で使われている通信規約が異なります。根とワークの通信規約をプロトコル(protocol)と呼びます。LANとWANのプロトコルの違いを意識することが、ネットワークに関する様々な問題を解くポイントになります。
 
現在主流のLANのプロトコルは、イーサネット(ethernet)です。インターネットのプロトコルは、TCP/IPを基本として、その上にWebサーバを閲覧するHTTPなどのプロトコルがあります。

回線交換方式

1対1の通信を行う場合において回線を占有しながら通信を行う通信方式
回線占有中は他の通信機器と通信を行うことができない

パケット交換方式

複数:複数で回線を共有して通信を行う方式
回戦が占有されないため同時に複数の機器が相互に通信することが可能
パケット単位でデータ転送を行うことで通信効率・耐障害性を確保する

伝送速度と回線利用率

ネットワークの能力は、単位時間あたりに伝送できるデータ量で示し、これを伝送速度と呼びます。伝送速度の単位は、bpsです。bpsはbit per socondの略で、1秒間に何ビットのデータを伝送できるかを示します。
ただし、ネットワークは、伝送速度の100%の能力を利用できるとは限りません。能力の何パーセントを利用できるかを示したものを回線利用率と呼びます。

サーバとクライアント


ネットワークに接続されたコンピュータは、その用途からサーバクライアントに分類できます。サーバは、何らかのサービスを提供するコンピュータです。クライアントは、サービスを利用するコンピュータです。
 インターネットで利用されるサーバには、Webページの閲覧というサービスを提供するWebサーバや、メールの送受信というサービスを提供するメールサーバなどがあります。

ネットワークとネットワークの間をつなぐルータ


ネットワークとネットワークの間をつなぐには、ルータと呼ばれる装置を使います。ルータは、データに付加された宛先IPアドレスを見て、適切なネットワークにデータを中継します。
 ただし、実際には、ルータ1つだけで、企業と企業の間を直接つなぐことは、ほとんどありません。インターネットの接続業者であるプロバイダを利用するのが一般的です。

DNSサーバとDHCPサーバ

DNSサーバーとは、ドメイン名とIPアドレスを変換する仕組みを提供するサーバーです。

インターネット上でパケットの送受信に使われているプロトコルであるIP(Internet Protocol)は、パケットの宛先や送信元をIPアドレスで表します。ただIPアドレスは数字の羅列であり、人間にとって覚えやすいものとは決して言えません。そこで考案されたのがDNS(Domain Name System)で、人間にも覚えやすい「www.ntt.com」などのドメイン名で通信先を指定することを可能にしています。

ただ実際にIPで通信する際に使われるのはIPアドレスであるため、ドメイン名をIPアドレスに変換する必要があります。この処理を担っているのがDNSサーバーです。

DHCPサーバ
DHCP(Dynamic Host Configuration Protocol)サーバ機能とは、LAN上のパソコンなどが起動すると、その都度、IPアドレスなどのネットワーク利用に必要な設定情報を、本商品から各パソコンなどに自動的に割り当てる機能です。
これにより、各クライアントでネットワークの詳細な設定を行わなくても、LANやインターネットに接続することができます。

エンジニアファーストの会社 株式会社CRE-CO 中村 実

この記事が気に入ったらサポートをしてみませんか?