1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLとRDMMSとは

Posted at

RDBMS

-特徴
・2次元テーブルで表現
・表のデータの関連付けによる巨大なデータベース
・オンライントランザクション処理

-オープンソースのRDBMS
・PostgreSQL
・MySQL
・Firebirdなど

SQLの機能

データ操作はもちろん、表の作成やユーザー権限の操作もできる

制御機能

1.データベース定義言語(DDL)
データを格納する表を作成するときなどに使う言語

オブジェクトの作成:CREATE
オブジェクトの削除:DROP
ユーザー権限を付与:GRANT
ユーザー権限の削除:REVOKE

2.データベース操作(DML)

データを操作
データ検索:SELECT
テーブルに追加:INSERT
データを更新:UPDATE
データの削除:DELETE

3.トランザクション管理
回復や同時実行のための最小端子として保障される一連の処理の操作

     start → 処理1 → 処理2 → end

特性4つ(ACID)

 A:原始性(Atomicity)
 -すべての処理は、有効になるか無効になるかの2択
 
 C:一貫性(Consistency)
 -実行前と実行後のデータの整合性を持つ
 
 I:隔離性(Isolation)
 -トランザクションA,トランザクションBが同時に行われる場合、
  Aが変更完了した後、Bが実行可能になる。
  
  D:持続性(Durability)
  -トランザクションで実行されるデータは、終了まで変化しない。
  

1.トランザクション開始の宣言:BEGIN TRAN
-処理の確定or取り消しまでに発行されるDML文を扱う
2.処理の確定 :COMMITE
3.処理の取り消し :ROLLBACK
-データ更新処理を検知する必要があるため、複数のDML文が発行される。
このときのエラー検知には、TRA~CATCH文を利用

BEGIN TRY
  BEGIN TRANSACTION    #トランザクションの開始

    (DML文の発行)

  COMMIT TRANSACTION    #トランザクションを確定
END TRY

BEGIN CATCH          #例外処理
  ROLLBACK TRANSACTION   #トランザクションを取り消し
END CATCH

コミット

-トランザクションによるデータの変更処理が正常に終了した場合に、
その変更処理を有効な結果と確定し、データに反映すること

処理→処理→処理→COMMIT

ロールバック

トランザクションによるデータの変更処理の途中でなんらかの障害が発生した場合に、それまでの変更処理を無効にし、実行される前の状態に戻すこと

start→処理→処理-✖️-処理

           ↓

         start

排他制御

-トランザクション実行中に、トランザクションが対象としているデータをロックすることで、
データの整合性を確保する仕組み
-トランザクション完了時にロックを解除し、データへのアクセスを可能にする

ロック

トランザクションの特性の一つ隔離性
*共有ロック
-SELECT文によるデータの参照時のロック
-他のトランザクションからデータの参照は可能にするが、変更は不能とする
*排他ロック
-INSERT文、UPDATE文、DELETE文時のロック
-他のトランザクションからデータの参照も変更も不能とする

サブクエリ

-SQL文の中に埋め込み、データ抽出条件として利用
-WHERE句やJOIN句の内側に記述するクエリのことを言う
-複数のクエリを組み合わせて、1つのクエリが生成した出力で、
他のクエリの出力を制御することができる。
ex)

WHERE句 
  SELECT 受注番号 FROM 受注表
         WHERE 商品コード IN
         (SELECT 商品コード FROM 商品表
          WHERE 単価 = 400);
HAVING句 
  SELECT 顧客コード,COUNT(DISTINCT 受注番号) FROM 受注表
         GROUP BY 顧客コード
         HAVING 受注個数 <
         (SELECT MIN(受注個数) FROM 受注表
          WHERE 顧客コード = '002');
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?