【 IT用語 】「これ言えないと会話で詰むよ」を書き出した 【part5】

SQLやAPIの種類について。

## サーバーソフト

| 用語                                | 読み方・名称                             | 解説                                                    | 使用方法やサービス                                                                                   | 
| ----------------------------------- | ---------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | 
| Apache                              | アパッチ                                 | ApacheというWebサーバーソフトウェア(HTTPサーバー)のこと | サーバーソフトウェアの中でも全世界の約50%のシェアを占める。                                          | 
| Nginx                               | エンジンエックス                         | NginxというWebサーバー用のソフトウェア                  | シェアは、NginxはApacheに次いで第2位。Apacheに比べ処理速度が早いが、大量の動的コンテンツ処理は不向き | 
| IIS (Internet Information Services) | インターネットインフォメーションサービス | マイクロソフト製のWebサーバーソフトウェア               | シェアはApacheと並ぶ。マイクロソフト製なのでWindows Serverには最初からはいっている。                 | 

## SQL

| 用語                             | 読み方・名称                    | 解説                                                                                                                                     | 使用方法やサービス                                                                                                                                                                                                                                                                   | 
| -------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 
| SQL                              | エスキューエル                  | データベースを操作するための言語                                                                                                         | プログラミング言語の記述の中に、SQLの文を埋め込む「埋込み型」と、DBに対して指示を出して命令が実行されるという方式の「対話型」がある。                                                                                                                                                | 
| CRUD                             | クラッド                        | Create（生成）、Read（読み取り）、Update（更新）、Delete（削除）の頭文字を並べた用語のこと。                                             | 全てのコンピュータソフトウェアが持つ永続性の4つの基本機能のことで、ユーザインタフェースが備えるべき機能（情報の参照/検索/更新）を指す用語としても使われる。                                                                                                                          | 
| トランザクション                 | transaction                     | ソフトウェアの処理方式の一つで、互いに関連・依存する複数の処理をまとめ、一体不可分の処理単位として扱うこと                               | データベースシステムや業務用ソフトウェアなどでよく用いられる概念で、金融機関のコンピュータシステムにおける入出金処理のように、一連の作業を全体として一つの処理として管理するために用いる。一体として管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証される。 | 
| コミット                         | commit                          | ITの分野では、処理や変更などを確定させる、反映させるなどの意味でつかわれることが多い                                                     | git上で更新したファイルの内容をリポジトリに反映させる処理のこと。・トランザクション処理ですべての処理が成功し、データベースの状態を処理結果によって更新すること。                                                                                                                    | 
| ロールバック                     |  rollback / 後退復帰 / 後進復帰 | 情報システムの分野では、システム障害やデータの喪失、破損などが起きた際に、以前に正常に稼働していたある時点の状態に戻して復旧を試みること | トランザクション処理中、いずれかの処理が失敗し、完了済みの処理をすべてキャンセルしてトランザクション開始前の状態に戻すことをロールバックという                                                                                                                                       | 
| 排他制御（排他ロック）           |                                 | データベースシステムなどで記憶領域への同時アクセスを制限するロック機構の一つ。                                                           | データやファイルなどに同時アクセスにより、在庫数などに不整合が発生しないように、排他制御をすることで整合性を保ち想定通りの処理ができるようになる。                                                                                                                                   | 
| 楽観ロック ( 楽観的排他制御 )    |                                 | めったなことでは他者との同時更新は起きないであろう、という楽観的な前提の排他制御。                                                       | 楽観ロックを使用する場合は、バージョンを管理するためのカラムを用意し、更新時の条件として、データ取得時のバージョンとデータ更新時のバージョンを同じとすることで、データの整合性を保証することができる。                                                                               | 
| 悲観ロック（悲観的排他制御）<br> |                                 | 他者が同じデータに頻繁に変更を加えるであろう、という悲観的な前提の排他制御。                                                             | 悲観ロックを使用する場合、トランザクション開始直後に更新対象となるレコードのロックを取得し、ロックされたレコードは、トランザクションが、コミットまたはロールバックされるまで、他のトランザクションから更新されないため、データの整合性を保証することができる。                       | 
| 実行計画                         |                                 | より短い時間でSQLを実行できる方法を計算し、具体的な方法を「計画」としてまとめたもの。                                                    | 例としてSELECT文を実行するのに、カラムの値がヒットするまでフルスキャンするのか、対応づけられたINDEXを参照するのか、具体的な方法を示したもの。                                                                                                                                        | 
| チューニング                     |                                 | システムやプログラムなどを改良し、パフォーマンスの向上を図ること                                                                         | 情報システムやコンピュータ、ソフトウェアなどの設定や構成を調整し、目標の状態に近づけたり、性能を最大限引き出したりする作業を指すことが多い。                                                                                                                                         | 
| パフォーマンス                   | performance                     | 性能のこと                                                                                                                               | コンピュータなどの機器やソフトウェア、システムなどの処理性能や実行速度、通信回線・ネットワークなどの伝送速度・容量などのこと                                                                                                                                                         | 
| スロークエリ                     |                                 | 処理速度が遅いSQLのこと                                                                                                                  | 事業や実行する処理にもよるが、2秒以上かかっていたら大体遅い部類と言って良い。                                                                                                                                                                                                        | 
| クエリログ                       | General query log               | クライアントからの MySQL Server への接続・接続解除の情報、およびクライアントから実行された全ての SQL クエリを出力してくれるログのこと。  | SQL 実行エラーが発生した際に、どのような SQL が実行されたのかを正確に把握するのにつかわれる。                                                                                                                                                                                        | 

## ファイル／ディレクトリ

| 用語                   | 読み方・名称            | 解説                                                                                     | 使用方法やサービス                                                                                               | 
| ---------------------- | ----------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | 
| ファイル               | file                    | 情報システムにおいて、外部記憶装置を使って情報をひとつのかたまりとして扱うための単位     | ファイルは一つの単位となり、編集や削除、コピー、読み込み、書き込みなどの操作の対象となる。                       | 
| 拡張子                 | かくちょうし            | ファイルの種類を識別するためにファイルの名前（ファイル名）の末尾につけられる文字列。     | jpg、pdf、txt、mp3、htmlなど                                                                                     | 
| ディレクトリ           | directory / フォルダ    | ハードディスク上でファイルが記録されているデータの保管場所。いわゆる「フォルダ」のこと。 | 階層構造的にいくつでも自由に作成でき、これを木の幹から枝が伸びたかたちにたとえて、ディレクトリツリー構造と呼ぶ。 | 
| ルート・ディレクトリ   | root directory          | 階層型ファイル構造における「最上階層」のディレクトリのこと。                             | あらゆるファイルを格納している大元となるハードディスクやフロッピーディスクがこれに該当する。                     | 
| カレント・ディレクトリ | cd, chdir, 作業フォルダ | 階層型ファイルシステムを使用している時の、「現在の位置」であるディレクトリ               | UNIX系OSであれば「pwd」、Windows系であれば「cd」というコマンドを入力するとカレントディレクトリが表示される。     | 
| 絶対パス               | absolute path、フルパス | ルートディレクトリから目的地までの経路のこと。                                           | 絶対パスの書き方例：(ttp://webliker.info/wp-content/themes/template/img/common/logo.png)                        | 
| 相対パス               | relative path           | カレントディレクトリを基準にして、目的地までの経路のこと。                               | 相対パスの書き方例：( ../img/common/logo.png)                                                                    | 

## API

| 用語     | 読み方・名称                                                                         | 解説                                                                                                                                                                                                       | 使用方法やサービス                                                                                                                                                                                                                                                                             | 
| -------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| API      | Application Programming Interface (アプリケーション・プログラミング・インタフェース) | 自己のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたもの。                                                                                                                       | APIを使うことで、より多くの新しいサービスと開発が可能な他、データの二次利用、効率的な開発、サービス利用者の利便性アップ、セキュリティの向上のメリットがある                                                                                                                                    | 
| WEB API  | Web Application Programming Interface , (ウェブAPI)                                  | HTTPプロトコルを用いてネットワーク越しに呼び出すアプリケーション間、システム間のインターフェースのこと。                                                                                                   | Webサイトに外部のサイトの提供する機能や情報を組み込んだり、アプリケーションソフトからWeb上で公開されている機能や情報を利用する際などに用いられる。                                                                                                                                             | 
| REST API | REpresentational State Transfer                                                      | Webシステムを外部から利用するためのAPI                                                                                                                                                                     | 【RESTの4つの設計原則】<br>1. セッションなどの状態管理を行わない。<br>2. HTTPのGETやPOSTメソッドなど情報を操作する命令の体系が予め定義・共有されている。<br>3. すべての情報はURLやURIなどの汎用的な構文で一意に識別される。<br>4. 情報の内部に、別の情報や状態へのリンクを含めることができる。 | 
| SOAP     | Simple Object Access Protocol                                                        | 異なるコンピュータ上で、プログラム同士がネットワークを通じて連携して動作するための通信プロトコルの一つ。メッセージの記述にXMLを、データ伝送に主にHTTPを用い、Webサービスの提供や利用に適しているとされる。 | インターネット上に公開された認証機能や課金機能といった個々の機能を呼び出すために用いられる。                                                                                                                                                                                                   | 

| 用語               | 読み方・名称                                                 | 解説                                                                                                   | 使用方法やサービス                                                                                                 | 
| ------------------ | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | 
| エビデンス／証跡   | evidence (証拠、根拠、証言、痕跡などの意)                    | ステム開発のテスト工程などで、システムが正しく動作している、あるいは不具合が生じたことを示す証拠資料。 | 画面キャプチャ、データファイル、ログデータ、受信データ、テスト報告書。バグレポートなどが用いられる事が多い。       | 
| データパッチ       | patch (あて布の意), 修正プログラム,アップデート, 修正パッチ  | ソフトに変更を加えるために用意された、後付けのプログラム。                                             | ソシャゲなどで新しい機能が追加されたりすることをアップデート、不具合を修正することを修正パッチなどとよく使われる。 | 
| マクロ             | macro, マクロ言語                                            | アプリケーションソフトの操作を自動化する機能の一つ                                                     | 利用者が複数の操作手順を一連の手続きとして記録したもので、簡単な操作で繰り返し実行することができる。               | 
| VBA                | Visual Basic for Applications /  Excel VBA                   | Microsoft Officeに含まれるアプリケーションソフトの拡張機能のプログラミング言語。                       | 利用者が簡易なプログラムを記述して実行することで複雑な処理の自動化などを行なうことができる。                       | 
| Google Apps Script | GAS                                                          | Googleが提供しているJavaScriptをベースのプログラミング言語。                                           | Googleスプレッドシート等の各Googleサービスと連携可能で、データ分析・グラフ作成なども効率化が可能。VBAのGoogle版。  |