Flask入門|データベースの基本を理解しよう【チャプター5-01】

一つ前の章ではフォームについて学習しました。
今回からは データベース について見ていきましょう。
Chapter1:Flask入門編
Chapter2:Jinja2入門編
Chapter3:フィルター編
Chapter4:フォーム編
Chapter5:データベース編
・Chapter5-1:データベースとは何か ◁今回はここ
・Chapter5-2:データベースを作ろう
・Chapter5-3:データベースを操作しよう
・Chapter5-4:SQLAlchemyを使おう
・Chapter5-5:内部結合と外部結合を理解しよう
・Chapter5-6:relationshipを理解しよう
・Chapter5-7:Flask-SQLAlchemyを使おう
・Chapter5-8:Flask-Migrateを使おう
Chapter6:Flaskの便利機能編
Chapter7:アプリ開発編
ここまでFlaskを使ってWebページを表示させたり、フォームから入力を受け取ったりする方法を学んできました。
しかしWebアプリケーションは単に情報を「見せる」だけでなく、データを保存し、必要に応じて取り出す ことができてこそ、真の力を発揮します。
例えばブログアプリでは記事の内容を保存し、あとで一覧表示したり、編集したりします。
ショッピングサイトでは商品情報や注文履歴など、さまざまなデータを管理しています。これらの情報を効率よく管理するために使われるのが 「データベース」 です。
この章では、プログラミング初心者でも理解できるように、次のような内容を丁寧に解説していきます。
- データベースとはそもそも何か?
- リレーショナルデータベース(RDB)とは何か?
- データを扱うための言語「SQL」とは何か?
- 軽量で使いやすいデータベース「SQLite」とは?
- VSCodeでSQLiteの中身を見るためのツール「SQLite Viewer」の導入方法
これからのFlask学習では、データベースを使ったアプリ開発が中心になります。
特にこのサイトでは、SQLiteというデータベースを使っていきます。そのため、ここでしっかりとデータベースの基礎を押さえておきましょう。
本記事は 有料記事(100円)ですが、現在は期間限定で無料公開中です。
データベースの仕組みとリレーショナルデータベース(RDB)の特徴を理解しよう
データベースの意味と役割とは?
データベース(Database)とは、一言で言うと「データを整理して保存しておくための箱」です。
日常生活で例えるなら、紙の家計簿や電話帳のようなものです。これらも、あるルールに従って情報を整理し、必要なときにすぐ取り出せるようになっています。
プログラミングの世界でも、たとえば次のような情報を扱う際にデータベースが使われます。
- ユーザーのアカウント情報
- 投稿された記事やコメント
- 商品の一覧や在庫状況
- 注文履歴やメッセージのやりとり
このように、Webアプリやスマホアプリでは、あらゆる情報をデータベースに保存し、必要なときに取り出して使っています。
リレーショナルデータベース(RDB)の仕組みとメリットを解説
データベースにもいくつか種類がありますが、最も一般的に使われているのがリレーショナルデータベース(RDB:Relational Database)です。
RDBは、表(テーブル)形式でデータを管理する仕組みです。
表計算ソフト(ExcelやGoogleスプレッドシート)を思い浮かべるとイメージしやすいでしょう。
テーブルとは?
RDBではデータを、行(レコード)と列(カラム)で構成される「テーブル」という単位で管理します。
例えば「ユーザー情報」を管理するテーブルは次のようになります:
id | 名前 | メールアドレス |
---|---|---|
1 | 山田太郎 | taro@example.com |
2 | 鈴木花子 | hanako@example.com |
- 各列(カラム)は「名前」や「メールアドレス」などの項目を表します。
- 各行(レコード)は、1人分のユーザー情報を表しています。
リレーショナル(関係型)とは?
RDBの特徴は複数のテーブルを「関連付けて使える」ことです。
たとえば「注文内容」と「料理の金額」を別々のテーブルで管理し、それらを関連付けることで「誰がいくら支払うか」を導くことができます。
id | 名前 | 注文内容 |
---|---|---|
1 | 太郎 | ハンバーグ |
2 | 二郎 | ステーキ |
3 | 三郎 | ハンバーグ |
料理 | 金額 |
---|---|
ハンバーグ | 1,500 |
ステーキ | 1,800 |
パスタ | 1,000 |
このように、リレーショナルデータベースはデータの整理整頓と再利用性に優れたデータベースなのです。
このWebサイトでは、Flaskでアプリを開発していく中で リレーショナルデータベース(RDB)を一貫して使用していきます。
SQLとSQLiteの基本を学ぼう|初心者向け解説
SQLでできることと基本文法を学ぼう
SQL(エスキューエル、またはシークェル)はデータベースを操作するための言語です。
正式には「Structured Query Language(構造化問い合わせ言語)」と呼ばれます。
SQLを使うことで、データベース内のテーブルに対して次のような操作ができます:
- データを登録する(INSERT)
- 登録されたデータを取り出す(SELECT)
- データを変更する(UPDATE)
- データを削除する(DELETE)
このようにSQLは、データベースに「何をしてほしいか」を指示する命令文のようなものです。
例えば「ユーザー一覧を取得したい」「新しい注文を追加したい」といった操作は、すべてSQLで記述できます。
SQLの基本構文(例)
以下は、ユーザーの一覧を取り出すSQLの例です:
SELECT * FROM users;
この命令は「usersという名前のテーブルから、すべての列(*)のデータを取得せよ」という意味になります。
こうした基本的な構文を使用することで、データの操作が自由自在に行えるようになります。
SQLiteの特徴とFlaskでの利点
SQLite(エスキューライト)は、非常に軽量かつ扱いやすいRDB(リレーショナルデータベース)の管理システムです。
特徴としては以下の点が挙げられます:
- インストール不要:Pythonに標準で搭載されているため、すぐに使える
- ファイルベース:データベース全体が一つの
.db
ファイルに保存される - 動作が軽い:小規模なWebアプリや学習目的には最適
特にFlaskとの相性が良く、学習環境や個人開発においては最も手軽に使えるRDBとして広く利用されています。
Flaskと相性抜群のSQLiteを使おう
この学習サイトでは、今後Flaskを使って本格的なWebアプリを開発していきます。その中で、データを保存・取得するために SQLiteを一貫して使用していきます。
他にも MySQL や PostgreSQL などが有名ですが、設定や運用の手間がかかるため、初心者の方にはハードルが高いものです。
SQLiteはインストールの手間もなく、Pythonの標準ライブラリで完結するため、初心者でもすぐに学習を始められる理想的な選択肢です。
この後の章では、実際にSQLiteを使ってデータベースを作成し、SQL文で操作してみる練習を行っていきます。
VSCodeにSQLite Viewerを導入してデータを確認しよう
前章まででデータベースやSQL、SQLiteについての基本的な知識を学びました。
では、実際にデータベースの中身を見たり、操作したりするにはどうしたらよいでしょうか?
Flaskアプリを開発する際は、Pythonコードを書いてデータベースを操作しますが、視覚的にデータベースの中を確認したい場面もよくあります。
そんなときに役立つのが、Visual Studio Code(VSCode)の拡張機能「SQLite Viewer」です。
このツールを使うとSQLiteのデータベースファイル(.db
ファイル)を開いて、中身を表形式で確認したり、簡単なクエリ(SQL文)を実行したりできます。
次回以降のレッスンはこれがある前提で進みますので、ここでインストールしておきましょう。
SQLite Viewerのインストール手順(VSCode)
- VSCodeを起動します。
- 左側のサイドバーにある「拡張機能(四角が4つ並んだアイコン)」をクリックします。
- 検索バーに「
SQLite Viewer
」と入力します。 - 「SQLite Viewer(製作者:Florian Klampferなど)」が表示されたら、[インストール]ボタンをクリックします。
補足:似た名前の拡張機能が複数ある場合は、「SQLite Viewer」または「SQLite」など、評価数の多いものを選ぶと安心です。
SQLite Viewerでの基本的な使い方
拡張機能のインストールが終わると、次のような操作ができるようになります:
.db
ファイルを右クリック → 「Open Database」や「Open with SQLite Viewer」などを選択- データベース内のテーブル一覧が表示される
- 各テーブルをクリックすると中身(レコード)が表で表示される
- SQL文を入力してクエリを実行することも可能
このように、コードを書かなくてもデータの中身が視覚的に確認できるため、学習中の理解が深まるだけでなく、開発時のデバッグにも非常に役立ちます。
SQLite Viewerの導入が完了すれば、次回から実際にデータベースを作成し、データを登録したり取得したりする操作へと進んでいくことができます。
まとめ|Flaskで使うデータベースの基礎をしっかり整理
この章では、Webアプリ開発において欠かせない「データベース」の基本について学びました。
今回学んだポイントをもう一度振り返ってみましょう:
- データベースとは?
情報を整理して保存するための箱のようなもので、アプリが扱うさまざまなデータを記録・管理できる。 - リレーショナルデータベース(RDB)とは?
表形式(行と列)でデータを管理し、複数の表(テーブル)同士を関連付けて使える便利なデータベースの形式。 - SQLとは?
データベースに対して「検索」「登録」「更新」「削除」といった操作を指示するための言語。 - SQLiteとは?
軽量で設定不要、Pythonに標準で備わっているRDBで、Flaskとの相性も抜群。これからの学習で中心的に使用する。 - SQLite Viewer(VSCode拡張機能)
データベースの中身を視覚的に確認したり、簡単な操作をGUIで行える便利なツール。
Webアプリの本格開発に向けた第一歩として、今回学んだ内容は非常に重要です。
最初は少し難しく感じるかもしれませんが、一つずつ手を動かしていけば、必ず理解できるようになります。
次回はいよいよ、実際にSQLiteを使って自分の手でデータベースを作成してみましょう。
ぜひワクワクした気持ちで次のステップに進んでください!
FAQ|FlaskとSQLiteによるデータベースの基本理解
- Q1. データベースとファイル保存は何が違うのですか?
-
ファイル保存は単純なテキストやCSVなどの記録に使いますが、データベースは複雑な情報を効率よく検索・整理・関連付けできる仕組みです。Webアプリではデータベースの方が圧倒的に管理しやすくなります。
- Q2. SQLiteはFlask初心者に向いているのはなぜですか?
-
SQLiteはインストール不要で、Pythonに標準搭載されているためすぐに使い始められます。小規模なアプリ開発や学習用途に最適で、他のRDBに比べて設定がシンプルです。
- Q3. VSCodeでSQLiteの中身を確認するにはどうすればいいですか?
-
VSCodeの拡張機能「SQLite Viewer」をインストールすれば、.dbファイルを視覚的に確認できます。簡単な操作でテーブル内容を一覧表示したり、SQLクエリを試すこともできます。