データベース
顧客に関するデータや商品の在庫数などさまざまなデータを共有利用するために1つにまとめたデータの集合体が「データベース」
「社員データ」「顧客データ」など業務上さまざまなデータを支店ごとに管理することができる。
データベースとDBMSは異なる
データベースはデータの集合体。
そのため、 同一データに対して同じタイミングで複数ユーザーから利用要望がでる可能性がある
もしこの要望を無秩序に実行させてしまうと、データ変更処理に矛盾が発生する可能性がある。そのようなことがないように、データを使用する順序を制御し、「データ保護」を行う必要があります。
また、全ユーザーが全データにアクセスできてしまうと、個人情報など機密情報についても自由に参照、変更を行えてしまうので、 ユーザーごとにアクセス制御 を行う必要がある。
また、データの復旧の仕組みも必要になる。
このようなデータベースを適切に使用するための管理を行ってくれるソフトウェアが 「データベース管理システム」(Database Management System: DBMS) です。
ユーザーからのデータベースに対する要望は、必ずDBMSを介して行われます。
そのため、データを処理する前に、DBMSがユーザーのデータ利用の順番制御や権限確認を行ってくれる。
特徴
① アクセス権限の有無をチェックする
② アクセス権限がある場合: データベースにアクセス
③ アクセス権限がない場合: アクセス不可
リレーショナルデーターベース
データベースには大きく分けて「階層型」「ネットワーク型」「リレーショナル型」がある。
(現在、主に使われているのはリレーショナル型)
リレーショナルデータベースを管理しているDBMSは 「リレーショナルデータベース管理システム」(RDBMS) とよばれる
[特徴]
①データは2次元の表形式で表現される
②リレーションが可能
リレーショナルデータベースでは、すべてのデータを表形式で表現します。表は列と行で構成され、列は必ず1つの意味を保ちます。
リレーショナルデータベース内にあるデータの参照または変更は「SQL」(Structured Query Language)というデータベース言語によって行います。
複数の表を組み合わせる
リレーショナルデータベースのもう1つの大きな特徴は 複数の表を結合(リレーション)を利用できることです
このような場合に、リレーショナルデータベースでは共通の情報を持つ列を使用して表を一時的に結合(リレーション)することができる。複数の表のリレーションもSQLによって行うことができる。
複数の表にする理由
ディスク領域の無駄や更新の手間という問題が発生を抑える。 => 正規化
トランザクションの仕組みと利点
トランザクションとは、データベースにおいて 「作業を完了するための一連の作業単位」 のこと
トランザクションは、ユーザーが明示的にSQLのCOMMITコマンドを実行することで終了すると、そのトランザクションで行った変更内容が完全にデータベースに確定される。
COMMIT前ならROLLBACKコマンドで変更を取り消すことができる。
なぜトランザクション単位で確定しなければならないのか。
COMMITコマンド実行前にデータベースに障害が発生した場合などを考慮した安全策です。