Closed3
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はデータベースを具体化したものと言える
- DBMS
- ソフトウェア
- システムは複数のソフトウェアを組み合わせて作られる
- OS→ミドルウェア→アプリケーション
- 上記のように大きく3つに階層的に分類することができる
- OS
- システムが動作する一番の土台がOS
- UNIX(LinuxやMacOSはその派生)とWindowsが有名
- ミドルウェア
- OS上で動作するのがミドルウェア
- データベースはミドルウェアに相当するが、基本的には主要な任意のOSに対応する
- また、DBMSによって機能や操作性には違いがあるものの、標準規約に沿っているためにDBMSの移植性は高い
- アプリケーション
- 固有の機能を持つようにプログラムされたソフトウェア
- スクラッチとパッケージ
- スクラッチ:自分たちでプログラムを書く、細かいサービスを作れるが開発コストは大きい
- パッケージ:インストールしてくる既製品、細かいサービスは作れないが開発コストは小さい
- アプリケーションとデータベース
- ユーザとデータベース(ミドルウェア)の間にアプリケーションが存在する
- 利点:データベースのセキュリティを高められる、アプリケーションの開発に集中することができる
このスクラップは2022/12/15にクローズされました