0
0

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 3 years have passed since last update.

[備忘録] データベースについて軽く勉強してみた

Last updated at Posted at 2020-08-20

はじめに

これはデータベース勉強する上の超個人用メモです。笑笑

データベース

excelの表みたいな感じの大量データを管理するもの。
以下のような感じ笑笑

個人テーブル

個人識別ID 名前 出身地
1 星野みなみ 千葉県
2 堀未央奈 岐阜県
3 齋藤飛鳥 東京都
4 寺田蘭世 東京都

所属テーブル

個人識別ID 所属
1 乃木坂1期生
2 乃木坂2期生
3 乃木坂1期生
4 乃木坂2期生

カラム

各テーブルの各項目にあたる列のこと。(列は縦だよ)

例: 個人識別ID、名前、出身地、所属

レコード

各テーブルの1件分のデータにあたる行のこと。(行は横だよ)

例: (1 星野みなみ 千葉県)、(1 乃木坂1期生)

主キー

テーブルのデータを必ず1件特定できるカラム。
主キーに設定したカラムは、重複した値は設定不可。

例: 個人識別ID

外部キー

複数テーブルを連携させる時、テーブル同士で共通しているカラム。

例: 個人識別ID

ユニークキー

意味合い的には主キーと同じ。
しかし、主キーは1つのカラムのみしか設定できないのに対して、ユニークキーは複数のカラムを設定可能。

RDB (Relational DataBase)

RDBとは、複数テーブルでデータを管理する方式。
この方式により、データの重複をなくすことができ、データ検索能力が高くなる。

SQL (Structured Query Language)

RDB等でデータ操作(データの挿入・選択・更新・削除)を行うために使用する言語。
いわば、データベース専用プログラミング言語となる。

正規化

データの重複や繰り返し項目をなくしていき、よりデータの取り扱いがしやすいようにデータベースを設計すること。

非正規形

image.png

第1正規形

個人識別ID 名前 出身地 所属
1 星野みなみ 千葉県 乃木坂1期生
2 齋藤飛鳥 東京都 乃木坂1期生
3 寺田蘭世 東京都 乃木坂2期生
4 堀未央奈 岐阜県 乃木坂2期生

第2, 3正規形

個人テーブル

個人識別ID 名前
1 星野みなみ
2 堀未央奈
3 齋藤飛鳥
4 寺田蘭世

出身テーブル

個人識別ID 出身地
1 千葉県
2 岐阜県
3 東京都
4 東京都

所属テーブル

個人識別ID 所属
1 乃木坂1期生
2 乃木坂2期生
3 乃木坂1期生
4 乃木坂2期生

トランザクション

トランザクションとは、データベースでの一連の処理をひとまとまりにした処理単位。

コミット

トランザクションの処理でエラーが出ずに無事完了すること。

プレゼンテーション1-1.jpg

ロールバック

もし、トランザクションの処理途中でエラーが出た場合、トランザクションのその処理が行われる前の状態まで戻ること。
その処理はいかにも最初からなかったような感じになる。

プレゼンテーション1-2.jpg

ロールバックの反対で、ロールフォワードというのもある。

トランザクションACID特性

原子性 (ATOMICITY)

トランザクションは、処理が完全に実行されるか、全く実行されないかのどちらかしかないという性質。

一貫性 (CONSISTENCY)

トランザクションの処理の実行前後で整合性を持ち、一貫したデータであるという性質。

独立性 (ISOLATION)

あるトランザクションが別のトランザクションに影響を及ぼすことはないという性質。

耐久性 (DURABILITY)

一度データベースにデータが格納されたら、データは失われることはないという性質。

排他的制御

共有ロック

データを参照する時にかけるロックのこと。
共有ロックをかけている時は、他のトランザクションはデータ参照は可能だが、データ更新は不可である。

占有ロック

データを更新する時にかけるロックのこと。
占有ロックをかけている時は、他のトランザクションはデータ参照・更新は不可である。
つまり、占有ロックをかけているトランザクションのみデータに触れることが可能。

デッドロック

複数のトランザクションの処理が、同じデータベースの同じ場所にアクセスしようとして、お互いの処理を妨げてしまい、どちらのトランザクションの処理も膠着してしまうこと。

例: あるトランザクションAが「データAを使用する処理➡データBを使用する処理」で処理したいと考えていて、別のトランザクションBが「データBを使用する処理➡データAを使用する処理」で処理したいと考えていると仮定する。
また、2つのトランザクション処理は同タイミングで行うと仮定する。

プレゼンテーション2-1.jpg

おわりに

ネットワーク編
https://qiita.com/N46_myHearter/items/9f1b75d2432063dc11e7

情報セキュリティ編
https://qiita.com/N46_myHearter/items/421e214bb58e7108c9a9

努力・感謝・笑顔、うちらは乃木坂上り坂 46。笑笑

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?