データベースの経験が少ない(もしくはゼロ)の方が入門するためにおすすめの本として紹介されていた
「おうちで学べるデータベースの基本」を読み、そのほかDBに関しての記事を調べて個人的にまとめたもので、自分用のメモとして、アウトプットとして残したいと思います。
この本は実際に自分のPCで確認しながらDBについて学ぶことができるため理解深まりやすいかと思いました。
データベースとは
情報の集合や表の集まりと捉えるとわかりやすいかと思われます。
歴史的背景として始まりはアドレス帳です。
膨大な量のデータ、情報の中から条件を指定して構造化したり抽出する。
データの「追加、読込、更新、削除、検索、分析」などの処理を目的として蓄積された情報のことです。
また、後述するDBMSとはデータベース管理システムでデータベースを構築するなど扱うことのできるソフトウェアのことだが同一視されることがある。
データベースの種類5つ
階層型データベース
リレーショナルデータベース
オブジェクト指向データベース
XMLデータベース
NoSQLデータベース
RDB(リレーショナルデータベース)とNoSQLデータベース
RDBは、テーブル形式でデータを整理し、SQL(Structured Query Language)を使用してデータを操作します。最も一般的な例はMySQLやPostgreSQLなどです。
MySQLやPostgreSQLなどデータベースソフトごとにSQLの文法は多少違っていたりします(「方言」と表現されます)。柔軟で複雑なデータの検索、処理などが行えるが負荷がかかると速度が遅くなるというメリットデメリットがあります。
一方、NoSQLデータベースは、スキーマレスであり、柔軟なデータモデルを提供します。これにはドキュメント指向(MongoDBなど)、キーバリューストア(Redisなど)、カラムファミリー(Cassandraなど)などが含まれます。NoSQLは大量のデータや非構造化データの処理に適しており、スケーラビリティと高速処理が求められる場合によく使用されます。データの独立性・一貫性が保証されないことがデメリットです。
DBMS(Data Base Management System)とは
データベース管理システムの意で、データベースを管理、運用するためのソフトウェア
代表的なDBSMは
1.Oracle Database.
2.MySQL.
3.Microsoft SQL Server.
4.PostgreSQL.
5.MongoDB.
6.IBM Db2.
SQL(エスキューエル:Structured Query Language)について
直訳すると「問い合わせのための構造化言語」となるかと思います。
SQLとは膨大なデータ(表)を効率よく管理できるツールです。
データベースに対する基本操作は、主に下記4つです。
- データの抽出(Create)
- データの追加(Read)
- データの更新(Update)
- データの削除(Delete)
それぞれの操作の頭文字をとって「CRUD(クラッド)」と呼ばれてます。
どの操作をする場合も、SQLで命令を記述する必要があります。
また管理コマンド(SQL以外のDBMSに対して実行するコマンド:造語)というものがあり
①DBMSはSQL文以外にも「管理コマンド」を用意している
②「管理コマンド」の種類や文法は、DBMSによって異なる
SQL文は必ずSELECT INSERT DELETE UPDATE のいずれかの単語から始まる。
それ以外の単語から始まったら管理コマンドである。
階層について
最上位がインスタンス(サーバなど)
階層は上から順にインスタンス→データベース→スキーマ→オブジェクトである。
階層構造になっているが3層派(Oracle / MySQL)と
4層派(SQL Server / PostgreSQL)と2派になっている。
3層はデータベースとスキーマの階層を実質的に省略している。
こういった違いにより慣れているDBでそうではないDBを操作した場合に
どこの階層にいるのかわからなくなることもある。
「*」「;」「’」などの記号の意味
-
「* (アスタリスク)」は、「すべて」という意味。
SELECT文のカラムに「」を指定すると、すべての行を取得するという意味になります。
さまざまなOSやソフトウェアでも同様の使われ方をすることがあります。 -
「;(セミコロン)」は、SQL一文の終わりを意味。
必ずSQL文の最後につけるようにする。
単一のSQL文では無くても動くことがあるが、
「 ; (セミコロン)」が無いとエラーになる場合があります。 -
「’(シングルコーテーション)」は、SQLのINSERT文やUPDATE文に指定する値、またはWHERE句の条件に指定する値は、型を意識する必要があります。
文字列や日付型を指定する場合は、対象の値を「’」で指定する必要があります。
「’」を文字列の中で扱いたい場合は「’’」と「’」を2回続けて囲う。
例「I'm」や「彼は’〇〇’と言った」などは「I’’m」、「彼は’’〇〇’’と言った」
参考文献
今後読みたい本
下記2冊を購入したので読みます。
達人に学ぶDB設計 徹底指南書
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
データベースに関しては下記に記載されている本を読みたいです。
データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
https://zenn.dev/levtech/articles/9ab9eea13a826d