データベースシステム覚え書き①

 や~連日暑いですね。私は数年ぶりにかき氷を食べたのですが・・・

ブルーハワイ.jpg

 まさかのビーカー。ブルーハワイが塩化銅水溶液に見えてならない!

DBMS
データベース・マネジメント・システム。
大企業などの膨大なデータを一括管理する(各事業所がそれぞれにデータベースを作ると効率が悪くミスも起きやすい)ためのデータベースシステム。
複数のユーザが同時にデータを更新しないように順番待ちをさせる(順序制御)、アクセス権を限られたユーザのみに設定する(権限確認)などの工夫ができる。

RDBMS
リレーショナル・データベース・マネジメント・システム。
リレーショナル理論を採用したDBMSのこと。
リレーションとは、学級名簿など、縦列(フィールド)と横列(行。レコード)の二次元の表形式のこと。簡単に言うとエクセルのような表(テーブル)。
ツリーやネットワークと違って、データ同士の関係は定義されず、各データをかなり柔軟に扱うことができる。
異なる表のデータはID(キー)をつけることでやりとりすることができる(リレーションシップ)。

SQL(シーケル)
ストラクチャード・クエリ・ラングエージの略。
とどのつまりデータベース言語。これを用いた命令文をSQL文という。
セミコロンで命令を一段落させるなど、C言語と重なる部分もあるが、文法のキーワードが大文字でも小文字でもOKだったり、文が長くなったら好きな場所で改行ができるなど柔軟性が高い。

CREATE文
データベースのテーブルを作成するためのコマンド。
C言語の構造体の宣言などと似ている。
もC言語と同様で、整数値はINT、文字列はCHARなど(かっこの数字は桁数)。※INTEGERはNULLも入れることができる整数型。
具体的な文法は以下のようになる(このように見やすいように改行してもだいじょうぶ)。

CREATE TABLE 商品表
(
 商品コード CHAR(4),
 商品名 CHAR(16),
 単価 INTEGER,
 PRIMARY KEY(商品コード)
);

SELECT文
データベースの特定の列を選択するためのコマンド。
具体的な文法は以下の通りで、セレクト~(どの列を選ぶのか)と、フロム~(どのテーブルから選ぶのか)のふたつのフレーズで構成される文を書く。

SELECT 商品コード、商品名 FROM 商品表 ;

※ちなみにセレクトなどのキーワードは小文字でも大丈夫だが、読みやすいと言うことで、大文字で記述するのが慣例になっている。

ファイル
以下のタイプがある。

マスターファイル
社員情報や商品情報など、元帳の役割を果たす基本ファイル。一度作成・登録すると、頻繁に修正をおこなう必要はないもの。

トランザクションファイル
売り上げ情報や在庫情報など、日々発生する変動的データを扱うファイル。

ワークファイル(テンポラリーファイル)
作業中一時的に作成されるファイル。

ヒストリカルファイル(ログファイル)
ファイルに対してアクセスした履歴情報を管理するファイル。

データの整理
わりと重要な部分。

非正規形
データが整理されておらず、重複するデータがセルに存在する。

発注番号 取引先コード 取引先名 商品コード① 商品名① 商品コード② 商品名②
H001 T123 リカード商会 S456 毛織物 S789 ぶどう酒

第1正規形
非正規形から重複データをなくしたもの。
ただし、部分関数従属性(同一の発注番号から参照するコードが二つ以上ある)は残っている。

発注番号 取引先コード 取引先名 商品コード 商品名
H001 T123 リカード商会 S456 毛織物
H001 T123 リカード商会 S789 ぶどう酒

第2正規形
第1正規形から部分関数従属性をなくしたもの。
それぞれのコードごとに別の表を作成している。
ただし最初のテーブルだけ、推移的関数従属性(発注番号→取引先コード→取引先名・・・とデータがたらい回しになっている部分)があり、中途半端。

発注番号 取引先コード 取引先名
H001 T123 リカード商会

発注番号 商品コード
H001    S456
H001    S789

商品コード 商品名
S456    毛織物
S789    ぶどう酒

第3正規形
第2正規形から推移的関数従属性をなくしたもの。
ここまで細かくテーブルを分割すると、部分的なデータの変更が非常に楽。また、データの重複や冗長性もない。

発注番号 取引先コード
H001    T123

取引先コード 取引先名
T123    リカード商会

発注番号 商品コード
H001    S456
H001    S789

商品コード 商品名
S456    毛織物
S789    ぶどう酒

キー
ふつうに鍵という意味。レコードを識別するフィールド(データ項目)で、例えばある条件にあったデータ項目だけを複数の各レコードから引き出したい場合に用いる。

主キー
プライマリー・キー。
あるレコードのテーブルからデータを引っぱってくる際に、最も頼りになる鍵のこと。
例えば生徒名簿では学籍番号がそれで、仮に同姓同名の生徒がいても学籍番号は重複がないユニークなデータ(一意制約)なので、欲しいデータをしっかりと特定して引っぱることができる。
そのため、データが空のNULL値は主キーとして認められない。

複合キー
コンパウンド・キー。複数の項目をまとめて一つのキーにしたもの。
うまくまとめれば主キーのような働きができる(欲しいデータをちゃんと特定できる)。

候補キー
主キーの候補となるいくつかのキーのこと。

データ編集
エクセルの経験があればわりとピンとくる。

ロック・アンロック制御
データベースを複数のユーザが同時に利用する場合(マルチ-ユーザ機能)における配慮。
ロックとは、ファイルやレコードに対して鍵をかけることで他のユーザの読み込みや書き込みを制限する機能。アンロックとはそれを解く機能。
これにより、複数ユーザの同時書き込みを解消している。
つまり、先に誰かがデータベースを編集している場合、他のユーザはそのデータを編集することができない(先の人の編集が終わるまで待つ)。

デッドロック
二人のユーザがAとBの二つのデータベースをそれぞれ同時に編集する際、各データベースの更新にお互いデータベースのデータが必要な場合(Aの更新にBが必要、Bの更新にAが必要など)、どちらのデータベースにもロックがかかり更新できず半永久的に待ちの状態になってしまうこと。

システム障害への対策
今までの苦労が水の泡にならないありがた~い機能。

ロールバック
システム障害が起きたとき、チェックポイントの部分から障害発生までのログファイルを確認し、この間にコミット(編集を確定)してないトランザクション(一連の処理の単位)については、ログファイル内の更新履歴を破棄して、トランザクション開始以前の状態に戻すこと。トランザクションの取り消し処理。

ロールフォワード処理
システム障害が起きたとき、チェックポイントの状態まで巻き戻したあと、障害発生時点でコミット済みのトランザクションについてログファイルを参照し、データベースへの反映(トランザクション)をもう一度行うこと。
Calendar
<< June 2020 >>
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
282930
search this site.
tags
archives
recent comment
recent trackback
others
にほんブログ村 科学ブログへ にほんブログ村 科学ブログ 恐竜へ カウンター
admin
  • 管理者ページ
  • 記事を書く
  • ログアウト