Open3

SQLのお勉強

第1章 データベースの用途と役割

1-1-1 私たちとデータベースの関わり

  • エンドユーザが直接触れられないようなシステム設計がなされる
  • データが大量化することにより、データベースの意義も増しつつある
  • 任意のデータがデータベースにて管理されるようになる

1-1-2 データベースの機能

  • アドレス帳がデータベースの起源である
    • 人の名前、電話番号、メールアドレス、住所などを登録して管理する
    • 従来であればCSVファイルやスプレッドシート(二次元表)に登録していた
  • データベースの基本機能① データの検索と更新
    • ここでは広義の更新:登録、修正、削除
    • 一意性など、データのフォーマットに注意する必要がある
    • 検索などのデータベースの操作性能を向上させる必要がある
  • データベースの基本機能② 同時実行制御
    • 複数のユーザがデータベースの同じデータを更新しようとする際にどうするか?
    • 複数のユーザ間の更新を整合させるための機能を同時実行制御と呼ぶ
  • データベースの基本機能③ 耐障害性
    • 障害に強く、障害からの復旧が迅速である必要がある
    • データ消失問題への対策を行う
      • データの冗長化:複数の場所に分散して保持する
      • バックアップ:データを復旧するための事後策
  • データベースの基本機能④ セキュリティ
    • データベースの存在を意識することが少ないのはなぜか?
      • 理由①:ユーザがサーバ側を意識する必要がない
        • 通常はクライアントとサーバでの実装を分離し、ユーザはクライアント側での操作を行う
        • サーバ側を直接操作できる場合、セキュリティホールとなり得る
      • 理由②:データベースは機密性が高い

1-1-3 データベースの5つの分類

  • 階層型データベース
    • データを階層型に管理する
  • リレーショナルデータベース(関係型データベース)
    • 二次元表の形式でデータを管理する
    • 現在最も主流のデータベース
  • オブジェクト指向データベース、XMLデータベース
    • それぞれ、オブジェクト及びXMLという形式でデータを管理する
  • NoSQLデータベース
    • リレーショナルデータベースを操作するSQLを使わないデータベースのこと
    • SQLの一部の機能を捨てることで高速に動作する
    • (要調査)

第2章 リレーショナルデータベースとは

2-1-1 リレーショナルデータベースとは

  • 関係型データベース
    • 二次元表を表す時に用いられるのが「関係」(要調査)
    • データを二次元表の形式で管理することができる
  • 関係型データベースの革新性
    • 二次元表をソフトウェアによってうまく表現した(歴史的な革新性)
    • データ管理の方法が画期的(機能的な革新性)
      • データベースには検索と更新の操作が必要である
      • 従来のプログラミング言語では、操作のためにループ等の知識が必要であった
      • SQLを用いると、データベースの操作を直感的に行うことができる

2-1-2 SQL文の基礎知識

  • SQL(Structed Query Language)とは?
    • SQLは英語と同様の文法で書くことができるため、直感的
    • 先のデータベースの操作は、SELECT、INSERT、UPDATE、DELETE、の簡単な英語で表現
  • テーブル、行、列
    • テーブル:二次元表
    • 行、列:二次元表なので

2-1-3 リレーショナルデータベースを扱うための予備知識

  • DBMS(DataBase Management System)とデータベース
    • DBMS
      • データベースの機能を提供するソフトウェアのこと
      • SQL Server、Oracle、MySQL、PostgreSQL、などがある
    • データベース
      • 機能や構造を表す抽象的な概念
      • DBMSはデータベースを具体化したものと言える
  • ソフトウェア
    • システムは複数のソフトウェアを組み合わせて作られる
    • OS→ミドルウェア→アプリケーション
      • 上記のように大きく3つに階層的に分類することができる
      • OS
        • システムが動作する一番の土台がOS
        • UNIX(LinuxやMacOSはその派生)とWindowsが有名
      • ミドルウェア
        • OS上で動作するのがミドルウェア
        • データベースはミドルウェアに相当するが、基本的には主要な任意のOSに対応する
        • また、DBMSによって機能や操作性には違いがあるものの、標準規約に沿っているためにDBMSの移植性は高い
      • アプリケーション
        • 固有の機能を持つようにプログラムされたソフトウェア
        • スクラッチとパッケージ
          • スクラッチ:自分たちでプログラムを書く、細かいサービスを作れるが開発コストは大きい
          • パッケージ:インストールしてくる既製品、細かいサービスは作れないが開発コストは小さい
  • アプリケーションとデータベース
    • ユーザとデータベース(ミドルウェア)の間にアプリケーションが存在する
    • 利点:データベースのセキュリティを高められる、アプリケーションの開発に集中することができる
作成者以外のコメントは許可されていません