整理情報処理エンジニアスキル7


📘 第7部:SQLアプリケーション-基本データベース、アプリケーションSQLの作成、プログラム化SQLの使用、データ操作プロセスの最適化


🎓 1.データベースの基本情報


▼▼事務処理


🏷️ 取引


📘 トランザクションの概念
DBMSが持つべき特性と、データベースシステムにおける許可されていないユーザの操作を保護するための基本ユニット.

🏷️ トランザクションのプロパティ

  • Atomicity:分解不能操作の最小単位
  • コンシステンシ:トランザクションが成功した後、データベースは常にコンシステンシ状態を維持する必要があります
  • 独立性(Isolation):トランザクション実行中に生成された演算の中間結果が他のトランザクションにアクセスできない特性
  • 永続性(Durability):成功したトランザクションの結果がデータベースに永続的に保存されるプロパティ
  • 🐥 ACID

    🏷▼取引の状態

  • アクティブ:初期状態、トランザクション実行時の状態
  • 部分完了状態:最後の文を実行した状態
  • 完了ステータス:トランザクションが正常に完了した後のステータス
  • 失敗状態:正常運転が継続できない場合
  • 取り消しステータス:トランザクションがキャンセルされ、データベースがトランザクション開始前のステータスに復元されます
  • 🐥 弓の腕
    ==今月分割払い(普通払い)大嫌いですよね~(完実季)

    🏷️ トランザクション制御

  • 発行:取引確定
  • ロールバック:トランザクションのキャンセル
  • チェックポイント:保存時間の設定
  • 🐥 転動体

    🏷️ パラレル制御技術の種類

  • ロック:シリアル化技術
  • 楽観的検証:データベース内のトランザクション
  • を反映するために、トランザクションを先に実行し、トランザクションの終了時に検証を実行する方法です.
  • タイムスタンプ順序:更新されたデータ間でトランザクションが実行される前に、タイムスタンプによって指定された時間にトランザクションを実行する方法
  • マルチバージョン同期制御:タイムスタンプとアクセスしようとするタイムスタンプを比較することにより、適切なシリアル可能なバージョンを選択してアクセスする技術
  • 🐥 ラクダ匹

    🏷️ リカバリ方法の種類


    📘 ログ・ベースのリカバリ・テクノロジー
  • 遅延リフレッシュ・リカバリ・テクノロジー:トランザクションが完了するまでデータベースに書き込まない
  • インスタント・アップデート・リカバリ・テクノロジー:トランザクション中に更新結果をデータベースに直接反映
  • 🐥 サーキットチェック
    📘 ≪チェックポイント・リカバリ・テクノロジー|Checkpoint Recovery Technology|oem_src≫:障害が発生した場合にのみ、チェックポイントの後に処理されるトランザクションが障害が発生する前の状態にリカバリされます.
    📘 シャドウ・ページング・リカバリ・テクノロジー:データベース・トランザクションの実行時にレプリカを作成およびリカバリ

    ✏️ DDL


    🏷️ DDLコンセプト


    データ定義言語

    🏷️ DDLターゲット


    📘 ≪ドメイン|Domain|ldap≫:属性が持つ原子値のセット.
    📘 ≪モード|Mode|emdw≫:データベース構造、制約などを含む基本構造.
  • 外部アーキテクチャ:データベースの論理構造/ユーザービュー
  • をユーザーまたは開発者の観点から見る
  • コンセプトアーキテクチャ:DBの全体論理構造/全体ビュー
  • 内部アーキテクチャ:DBの構造/記録フォーマットを物理記憶装置の観点から定義
  • 📘 表:データの格納スペース
    📘 ≪ビュー|View|emdw≫:1つ以上の物理テーブルの仮想テーブル.
    📘 ≪索引|Index|ldap≫:高速検索用のデータ構造
    🐥 屠維茵

    🏷️ 表の用語

  • tuple/行/記録/発行/ディレクトリ:横
  • レビュー/列/表示/差分:垂直
    (ドメイン:分析者が使用できる同じタイプの原子値の集合)
  • 🏷️ 索引のタイプ

  • シーケンシャル索引:データ順に生成された索引
  • ハッシュ索引:ハッシュ関数をキー値として使用してデータに直接アクセスする索引
  • ビットマップ索引:列に少ない値が格納されている場合、選択した索引
  • 関数ベースの索引:式または関数を使用して作成された索引
  • シングルインデックス:1つのカラムのみで構成されたインデックス
  • 連結索引:2つ以上の列からなる索引
  • クラスタインデックス:レコードをプライマリ・キーでグループ化して格納するインデックス
  • 🐥 順海比含団結克

    🏷️ DDLコマンド


    CRATE + ALTER + DROP + TRUNCATE
    🐥 クアルド
    ==クリスマスのために用意された2トラックの卵
    ❤️ 컬럼 추가
    ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE; 
    ❤️ 컬럼 수정
    ALTER TABLE 사원 MODIFY 전화번호 VARCHAR(11) UNIQUE; 
    ❤️ 컬럼 삭제
    ALTER TABLE 사원 DROP 생년월일;
    ❤️ 테이블 삭제
    DROP TABLE 사원;
    ❤️ 테이블 내 데이터 삭제
    TRUNCATE TABLE 사원;
    
    🧡 뷰 생성
    CREATE VIEW 사원뷰 AS
    SELECT 사번, 이름
    FROM 사원
    WHERE 성별 = 'M';
    🧡 뷰 교체
    CREATE OR REPLACE VIEW 사원 AS
    조회쿼리;
    🧡 뷰 삭제
    DROP VIEW 사원;
    
    💛 인덱스 생성
    CREATE INDEX 사번인덱스 ON 사원(사번);
    💛 인덱스 수정
    ALTER INDEX 사번인덱스 ON 사원(사번);
    💛 인덱스 삭제
    DROP INDEX 사번인덱스;
    

    ✏️ DML


    🏷️ DMLの概念


    データ操作言語

    🏷▼DML命令


    SELECT + INSERT + UPDATE + DELETE
    🐥 世業.
    私の友達のセインは私を背負って家に帰った.

    🏷️ WHERE節


    📘 図案:LIKE
  • %:0以上の文字列一致
  • []:1文字に一致
  • [^]:1文字と一致しない
  • :指定された位置に一致する文字
  • 🏷️ サイン


    📘 内部結合
    SELECT A.列、A.列2、B.列1、B.列2
    FROM表1 A JOIN表2 B
    ON接続条件
    WHERE検索条件
    📘 左外部ジョイン
    SELECT A.列、A.列2、B.列1、B.列2
    FROM表1 A LEFT JOIN表2 B
    ON接続条件
    WHERE検索条件

    🏷️ 集合演算子

  • UNION:重複行消去クエリの結果を持つ集約演算子
  • UNIOALL:重複行の結果が消去されていない集約演算子
  • INTERSECT:共通の結果を持つ2つのクエリの集約演算子
  • MINUS:集約演算子
  • は、2番目のクエリではなく1番目のクエリにのみ返されます.
    💚 데이터 삽입
    INSERT INTO 학생(학번, 성명, 학년, 수강과목)
    VALUES (6677,'장길산',3,'수학');
    💚 데이터 변경
    UPDATE 학생
    SET 주소 = '인천'
    WHERE 이름 = '장길산';
    💚 데이터 삭제
    DELETE FROM 학생
    WHERE 이름 = '장길산';

    ✏️ DCL


    🏷️ DCLの概念


    データコントローラ

    🏷️ DCLコマンド


    GRANT + REVOKE
    💙 권한 부여
    GRANT UPDATE ON 학생 TO 장길산;
    💙 권한 회수
    REVOKE UPDATE ON 학생 FROM 장길산;

    🎓 2.アプリケーションSQLの作成


    ▼▼▼集約SQLを書く


    🏷️ データ解析関数の概念


    複数行の標準データを収集して処理し、データ分析(要約や平均など)を行うための複数行関数.

    🏷▼組合せ関数


    📘 ROLLUP関数
    SELECT DEPT, JOB, SUM(SALARY)
    FROM DEPT_SALARY
    [WHERE~]
    GROUP BY ROLLUP(DEPT, JOB);
    [HAVING~][ORDER BY~]
    📘 CUBE関数CUBE関数:すべての連結可能な値に対して多次元統計を生成するグループ関数
    📘 GROUPING SETS関数:集約ターゲット列を個別に統計し、順序に関係のない結果を導出します.

    🏷️ ウィンドウ関数


    📘 ウィンドウ関数の概念
    標準SQLに追加された関数で、データベースを使用したオンライン分析処理
    OLAP関数とも呼ばれる
    📘 ウィンドウ関数の分類
  • ランキング関数:RANK、DENSE RANK、ROW NUMBER関数
  • 行順関数:FIRST VALUE、LAST VALUE、LEG、LEAD関数
  • グループ内比率関数:RATIO TO REPORT,PERCENT RANK関数
  • 🐥 じゅんこう料

    🏷️ ランキング関数

  • RANK:同じレベルのレコードが存在する場合は、下位(1位、2位、2位、4位)
  • を上回る
  • DENSE RANK:同ランキングで下位(1位、2位、2位、3位)を超えない
  • ROW NUMBER:連続番号(第1、第2、第3、第4)
  • 🎓 3.プロセス化SQLの使用


    ▼▼▼▼ステップSQL


    🏷️ プロシージャSQLタイプ

  • プロシージャ:クエリーのセット
  • カスタム関数:一連のSQLを実行し、実行結果を単一の値のSQL
  • に戻します.
  • トリガー:SQL
  • データベースでイベントが発生したときに自動的に関連タスクを実行

    ▼▼▼▼プロセス


    🏷️ 構成プロセス


    宣言+開始/終了+制御+SQL+例外+戻り
    🐥 ディビケンセイト
    =DBカンニングセット

    ▼▼カスタム関数


    🏷カスタム関数の構成


    宣言+開始/終了+制御+SQL+例外+実行
    🐥 デジタルカメラ
    =DBコンサルティング

    ▼トリガー


    🏷️ トリガの構成


    宣言子+イベント子+開始/終了子+制御子+SQL異常子
    🐥 ディビケンSE
    ==D~Bカンニングセット

    🎓 4.データ操作プロセスの最適化


    データ・オペレーション・プロセスのパフォーマンスの向上


    🏷️ オプティカル(光学式)ドライブの統計を確認


    📘 オプティカル(光学式)ドライブのコンセプト
    オプティカル(光学式)ドライブはDBMSのコア内部エンジンであり、最も高速で効率的なSQLの最適な処理パスを提供します.
    📘 オプティカル(光学式)ドライブのタイプ
    ルールベースの光学ドライブ(RBO)+コストベースの光学ドライブ(CBO)
    📘 ヒントの使用
    コンボは常に最適な実行計画を立てることができないため、明確なヒントを提供した.

    🎓 SQL文クリーンアップ

    < DDL 함수 >
    ❤️ 컬럼 추가
    ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE; 
    ❤️ 컬럼 수정
    ALTER TABLE 사원 MODIFY 전화번호 VARCHAR(11) UNIQUE; 
    ❤️ 컬럼 삭제
    ALTER TABLE 사원 DROP 생년월일;
    ❤️ 테이블 삭제
    DROP TABLE 사원;
    ❤️ 테이블 내 데이터 삭제
    TRUNCATE TABLE 사원;
    
    🧡 뷰 생성
    CREATE VIEW 사원뷰 AS
    SELECT 사번, 이름
    FROM 사원
    WHERE 성별 = 'M';
    🧡 뷰 교체
    CREATE OR REPLACE VIEW 사원 AS
    조회쿼리;
    🧡 뷰 삭제
    DROP VIEW 사원;
    
    💛 인덱스 생성
    CREATE INDEX 사번인덱스 ON 사원(사번);
    💛 인덱스 수정
    ALTER INDEX 사번인덱스 ON 사원(사번);
    💛 인덱스 삭제
    DROP INDEX 사번인덱스;
    
    < DML 함수 >
    💚 데이터 삽입
    INSERT INTO 학생(학번, 성명, 학년, 수강과목)
    VALUES (6677,'장길산',3,'수학');
    💚 데이터 변경
    UPDATE 학생
    SET 주소 = '인천'
    WHERE 이름 = '장길산';
    💚 데이터 삭제
    DELETE FROM 학생
    WHERE 이름 = '장길산';
    
    < DCL 함수 >
    💙 권한 부여
    GRANT UPDATE ON 학생 TO 장길산;
    💙 권한 회수
    REVOKE UPDATE ON 학생 FROM 장길산;