管理人

SEとして働く管理人「まつ」がつぶやく個人運営サイトになります。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。

2022/12/25

論理積(AND)とは

論理積(AND) 論理積(読み:ろんりせき、英語: logical conjunction)とは論理演算の1つで、2つの与えられた命題がいずれも「真」のときは「真」、それ以外は「偽」となる演算です。 「A かつ B」と表現し、論理演算記号では(A・B)または(A∧B)という記号を使います。 例えば サッカーチームに所属している 野球チームに所属している という2つの命題の論理積は「サッカーチームに所属している」かつ「野球チームに所属している」です。 論理積のベン図 論理積をベン図であらわすと次のとおりです ...

2022/12/25

ド・モルガンの法則とは

ド・モルガンの法則 ド・モルガンの法則とは、次のような式が成り立つという法則のことです。 それでは、実際にベン図を使って「ド・モルガンの法則」を説明していきます。 ド・モルガンの法則その1「 A ⋃ B = A ⋂ B 」 まずは「A ⋃ B」をベン図であらわします。 「A ⋃ B」(A または B)のベン図は次のとおり。 この「A ⋃ B」の否定が「A ⋃ B」です。 「A ⋃ B」(A または Bではない)のベン図は次のとおり。   続いては「A ⋂ B」をベン図であらわします。 Aの否定「 ...

2023/8/4

二分探索とは

二分探索 二分探索(にぶんたんさく)とは、探索アルゴリズムの1つです。 配列やリストのような複数のデータが格納されている箱の中から、目的のデータを探し出すのが探索であり、この探索の代表的なアルゴリズムには「線形探索」「二分探索」「ハッシュ法」があります。 本記事では、探索対象の配列やリストを「昇順」または「降順」に並び替えて探索する「二分探索」について紹介しています。 二分探索の手順(データが見つかる場合の例) 二分探索は「昇順」または「降順」に並んでいる配列やリストに対して探索を行う手法です。探索対象を ...

2023/8/4

線形探索とは

線形探索 線形探索(せんけいたんさく)とは、探索アルゴリズムの1つです。 配列やリストのような複数のデータが格納されている箱の中から、目的のデータを探し出すのが探索であり、この探索の代表的なアルゴリズムには「線形探索」「二分探索」「ハッシュ法」があります。 本記事では、探索アルゴリズムの中でも最もシンプルな手法である「線形探索」について紹介しています。 線形探索の手順 線形探索は先頭から順に探索していく手法です。目的のデータが見つかる (配列に目的のデータがある場合)または、配列のデータをすべて確認(配列 ...

2022/12/25

エミュレータとは

エミュレータ エミュレータ(英:emulator)とは、特定のOSやハードウェア向けに開発されたソフトウェアを、本来とは異なる動作環境で疑似的に実行させるソフトウェアやハードウェアのことです。 エミュレータを利用してソフトウェアを動作させることをエミュレーション(英:emulation)といいます。 例えば、スマートフォン(Android)向けのアプリがあるとします。本来はAndroid端末でしか動作しないアプリでも、エミュレータを使用するとWindows上で動かすことができます。 その他にも、MacでW ...

2022/12/25

プログラミング言語とは

プログラミング言語 プログラミング言語とは プログラミング言語(英:programming language)とは、コンピュータに指示を伝えるための言語です。 コンピュータが理解できる言語は機械語です。そのため人間が理解できる「日本語」や「英語」でコンピュータに指示を伝えてもコンピュータは理解することができません。 そこで「コンピュータが理解できる機械語に変換しやすい」かつ「人間にも理解できる」形式で作られたのがプログラミング言語です。 プログラミング言語でプログラムを開発することをプログラミング(英:p ...

2023/8/4

言語プロセッサとは

言語プロセッサ 言語プロセッサとは、プログラミング言語で作られたプログラムの翻訳作業を行うソフトウェアの総称です。 プログラミング言語で作られたプログラムは、人が理解しやすい文字列や記号で記述されているため、コンピュータは理解できません。 そのため、コンピュータが理解できる機械語(バイナリデータ)に変換する必要があります。この機械語へ変換する翻訳作業を行うソフトウェアの総称のことを「言語プロセッサ」といいます。 主要な言語プロセッサには「コンパイラ」「アセンブラ」「インタプリタ」があります。 コンパイラ( ...

2023/8/4

有限オートマトンとは

オートマトン オートマトン(英:automaton)とは、自動人形という意味を持つ言葉であり、コンピュータの状態、遷移をモデル化したものです。 例えば、自動販売機は「お金を入れる」(入力)→「ボタンが点灯」(状態の遷移)、「点灯したボタンを押す」(入力)→「ジュースが出てくる」(状態の遷移)のような動作をします。 このように状態の遷移にともなう動作をモデル化してあらわすのがオートマトンです。 オートマトンにはいくつかの種類があり、その中でも代表的なモデルが「有限オートマトン」です。 有限オートマトン 有限 ...

2023/8/4

ストアドプロシージャとは

ストアドプロシージャ ストアドプロシージャ(英:stored procedure)とは、データベースを操作する一連の処理(SQL文)をひとつのプログラムにまとめものです。 ストアドプロシージャはデータベース管理システム(DBMS)側に保存され、外部からは「プロシージャ名」を指定することでを実行させることができます。 ストアドプロシージャのイメージ例 クライアントサーバシステムでは、クライアントからデータベースサーバにあるデータベースに対しSQL文を実行します。 以下の図例では、データベース機能を提供するデ ...

2023/8/4

ロックとは(占有ロックと共有ロック)

ロック(lock) 排他制御とは 排他制御とは、共有資源に対して複数のアクセスが同時に発生しても問題なく動作できる制御のことをいいます。 例えば、次のように複数の人が同時に共有資源であるファイルに書き込みを行った場合、排他制御をおこなっていれば、データの整合性が保たれます。(共有ファイルに「BBB」と「CCC」が両方追加される)   しかし、排他制御をおこなっていないと次のように整合性が保たれないデータになってしまう危険性があります。(後から更新した方のデータとなり、BBBが反映されていない) ...

2023/8/4

ロールフォワードとは

ロールフォワード ロールフォワード(英:roll forward)とは、データベースに障害が発生したときの回復手段の1つです。 ロールフォワードでは「バックアップファイル」と「ジャーナルファイル」というファイルを使いデータベースの状態を元に戻します。 バックアップファイルとジャーナルファイル データベースには業務で必要なデータが大量に保存されています。そのため、データベースが破損してしまうと大問題です。 データベースは障害に備えて定期的にバックアップを取ることが基本です。定期的に取得するバックアップは、デ ...

2022/12/25

【データベース】ロールバック(rollback)とは

ロールバック(rollback) ロールバック(英:rollback)とは、トランザクション処理においてデータ更新などに失敗した場合に、処理を破棄する(トランザクション開始前の状態に戻す)ことをいいます。 トランザクションとは、トランザクション開始~終了までの一連の処理のことです。 例えば、上記図のような処理があるとします。 商品購入 トランザクション開始 「在庫テーブル」で保持している商品の在庫を減らす 「注文テーブル」に購入者情報を登録 トランザクション終了 処理2~処理5までの一連の処理をトランザク ...

2022/12/25

【データベース】コミット(commit)とは

コミット(commit) データベースのコミットとは コミット(英:commit)とは、トランザクションの処理を確定させることです。トランザクションとは、一連の処理をひとまとめにしたものです。 例えば、次の図はトランザクションのイメージ例です。 利用者が商品を購入 処理開始(トランザクション開始) 「在庫テーブル」で保持している商品の在庫を減らす 「注文テーブル」に購入者情報を登録 処理終了(トランザクション終了) 処理2~処理5までの一連の処理をトランザクションといい、この一連の処理(トランザクション) ...

2023/8/4

【データベース】トランザクションとは

トランザクション管理 データベースのトランザクションとは トランザクション(英:transaction)とは、一連の処理をひとまとめにしたものです。 以下はトランザクションのイメージ図です。 上記図の例は、次のような流れです。 トランザクション開始 「在庫テーブル」で保持している商品の在庫を減らす 「注文テーブル」に購入者情報を登録 トランザクション終了 このようにトランザクション開始~終了までの一連の処理のことをトランザクションといいます。 そしてトランザクションを終了するときは、一連の処理を「確定させ ...

2021/3/1

【SQL】ビューを作成・削除する

ビュー(view)を作成する CREATE VIEWの基本構文 SQLの「CREATE VIEW」を使うことで、ビューを作成することができます。 パラメータ 説明 WITH READ ONLY 読み取り専用のビューを作成する WITH CHECK OPTION 更新可能なビューを作成する 「WITH READ ONLY」を指定することで、読み取り専用のビュー、「WITH CHECK OPTION」を指定することで更新可能なビューを作成することができます。 ただし、次の条件に一致する場合は、更新可能な「WI ...

2023/8/4

ビューとは(データベース)

ビュー(view) データベースのビューとは 関係データベースにおけるビュー(英:view)とは、1つ以上の表(テーブル)から必要な要素だけを取り出して作った仮想的な表のことです。 例えば、次のような3つの表があるとします。 「社員テーブル」は社員の情報を管理している表、「部署マスタ」は部署の情報を管理している表、「課マスタ」は課の情報を管理している表です。 データベースの表はデータを効率よく格納するために正規化されています。この正規化された表は、必ずしも使いやすいとは限りません。 例えば、次のような「営 ...

2022/12/25

【SQL入門】SQLの基本

【入門】基本的なSQL よく利用する基本的なSQL文を紹介しています。 データベースの作成・削除 項目 SQL文 データベースを作成する CREATE DATABASE データベースを削除する DROP DATABASE テーブルの作成・削除・定義変更 項目 SQL文 テーブルを作成する CREATE TABLE テーブルを削除する DROP TABLE テーブルの定義を変更する ALTER TABLE テーブルを再作成する TRUNCATE プライマリキーを追加・削除する PRIMARY KEY 一意制 ...

2021/3/1

【SQL】データベースを作成・削除する

データベースの作成(CREATE DATABASE) SQLの「CREATE DATABASE」を使うことで、データベースを作成することができます。 CREATE DATABASEの例 以下は「CREATE DATABASE」を使い「mydb」というデータベースを作成しています。※例はMySQLを使用。 ■テーブル作成前 > SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information ...

2022/10/31

【SQL】副問合せ(サブクエリ)の使い方

副問合せ(サブクエリ) 副問合せとは、SELECT文の中にSELECT文を入れ子状態に埋め込むことをいい、サブクエリとも呼ばれています。 副問合せは、SELECT句やFROM句、WHERE句、HAVING句で利用できます。 本記事では、副問合せの使い方について紹介しています。 また「user」テーブルと「department」テーブルには、次のようなデータが格納されていることを前提としています。 ■userテーブル ID (id) ※PK 商品名 (name) 住所(address) 年齢(age) 部署 ...

2023/8/4

DDLとDMLの違い

DDL、DML、DCLの違い DDL、DML、DCLの違いは次の通りです。 DDL(データ定義言語)とは DDLとは、データ定義言語と呼ばれるSQLの命令のことです。 データベースに新規テーブルを作成する「CREATE」文、テーブルを削除する「DROP」文、既存テーブルのカラム定義を変更する「ALTER」文などをデータ定義言語(英:Data Definition Language、略:DDL)といいます。 【主なデータ定義言語】 データ定義言語 説明 CREATE 新しいテーブルやビューなどのデータベース ...