データベースは、オペレーティング システムのファイル システムの抽象化であり、開発者が永続的なデータを作成、読み取り、更新、削除するアプリケーションを簡単に構築できるようにするものです。 たとえば、Googleは道路に関するデータを保存し、ある場所から別の場所へ車で移動するための道順をMapsアプリケーションで提供しています。 データが構造化された形で保存されているため、道順を示すことができるのです。
データベースは、構造化されたストレージの信頼性と速度を向上させます。 また、新しいアプリケーションを構築するたびにデータをどうするかを考えなければならないのではなく、データがどのように保存され、取得されるべきかの精神的な枠組みを与えます。
Relational databases
Python Web 開発で最もよく使われるデータベースストレージの抽象化は、リレーショナルテーブルのセットです。
Relational Databases は、一連のテーブルにデータを格納します。 テーブル間のInterconnectionsbetweenは、外部キーとして指定されています。
データベースストレージの実装は、複雑さが異なります。 このようなPostgreSQL、MySQL、Oracle、およびMicrosoft SQL Serverのような他のデータベースは、Webアプリケーションのデータストレージに有用である追加の高度なfeaturesthを提供しながら、よりcomplicated永続化スキームを持っています。 これらのadvancedfeaturesは、これらに限定されるものではありません。
- マスターデータベースと 1 つまたは複数の読み取り専用のスレーブインスタンス間のデータレプリケーション
- JavaScript Object Notation (JSON) などの半構造化データを効率的に格納できる高度な列タイプ
- シャーディング
- 。 8144>
- データベーススキーマおよびテーブルの監視、統計、およびその他の有用な実行時情報
通常、Web アプリケーションは、PostgreSQL などの単一のデータベースインスタンスと簡単なスキーマから開始します。 時間の経過とともに、データベース スキーマはスキーマ マイグレーションを使用してより複雑な構造へと進化し、レプリケーション、シャーディング、監視などの高度な機能は、アプリケーション ユーザーのニーズに基づいてデータベース使用率が増加すると、より有用になります。
Most common databases for Python web apps
PostgreSQL と MySQL は Python Web アプリケーションのデータを保存するための最も一般的なオープンソースデータベースの 2つです。 SQLite は Python に組み込まれていますが、一度に 1 つの接続によってのみアクセスできるように構築されています。
PostgreSQL データベース
PostgreSQL は Python Web アプリケーションで動作するために推奨されるリレーショナルデータベースです。
MySQL database
MySQL は Python アプリケーションのためのもう一つの実行可能なオープンソースデータベース実装です。 MySQL は PostgreSQL よりも初期学習が少し簡単ですが、機能は豊富ではありません。
Find out about Python applications with a MySQL backed on the dedicatedMySQL page.
Connecting to a database with Python
To work with a relational database using Python, you need to use a codelibrary. リレーショナルデータベース用のライブラリとしては、
-
psycopg2(source code)for PostgreSQL.
-
MySQLdb(source code)for MySQLが代表的なものでしょう。 このドライバの開発はほとんど凍結されているので、バックエンドとしてMySQLを使用している場合は、別のドライバを評価するのが賢明です。
-
cx_Oracle forOracle Database(ソースコード)。Oracleは2017年にiropenソースドライバコードをSourceForgeからGitHubに移動しました。
SQLite support is built into Python 2.7+ therefore a separate libraryis not necessary. 単に “import sqlite3” で、単一ファイルベースのデータベースとのインターフェイスを開始します。
Object-relational Mapping
Object-relational Mappers (ORMs) は、開発者が SQL クエリの代わりに Python コードを書くことによってバックエンドからデータにアクセスするのを許可します。 各 Web アプリケーション フレームワークでは、ORM の統合を異なる方法で処理します。 オブジェクト リレーショナル マッピング (ORM) のページ全体がありますので、このテーマを理解するためにお読みください。
Database third-party services
多くの企業が、ホスト サービスとして拡張可能なデータベース サーバーを運営しています。ホストされたデータベースは、プロバイダーによっては、自動バックアップとリカバリ、強化されたセキュリティ設定、および簡単な垂直スケーリングを提供できることがよくあります。 このインスタンスは、ストレージとパフォーマンスのニーズに応じて、より大きな構成にも小さな構成にもスケールアップすることができます。
BitCan は、MySQL と MongoDB のホスティングデータベースを、広範なバックアップサービスとともに提供するサービス企業である。
SQL resources
データベースと対話する主な方法としてオブジェクトリレーショナルマッパー(ORM)を使用することを計画しているかもしれませんが、スキーマを作成しORMによって生成されたSQLコードを理解するには、SQLの基本を学ぶ必要があります。 以下のリソースは、以前にSQLを使用したことがない場合、SQLのスピードアップに役立ちます。
-
Select Star SQLは、SQLを学習するための対話型の本です。 また、「某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが、某大手メーカーが……」というように、某大手メーカーが某大手メーカーが……」というように、「某大手メーカーが某大手メーカーが某大手メーカーが」「…なんちゃって」というように、「…」が付くようです(笑)。
-
SQL Tutorialは、すべての主要なリレーショナルデータベース実装で使用できるSQLの基本を教えます。
-
Life of a SQL queryでは、SQLクエリを実行するとデータベース内で概念的および技術的に何が起こるかを説明しています。
-
Writing better SQLは、クエリを読みやすくするための短いコードスタイリングガイドです。
-
SQL Intermediateは、PostgreSQLでのカウント、クエリー、ビューの使用に関してUS Consumer Financial Protection Bureauからオープンデータを例として用いた基本に忠実でないチュートリアルです。
General database resources
-
How does a relational database workは、ソート、検索、マージや、PostgreSQLなどの確立したリレーショナルデータベースを使用しているときに当たり前だと思っているその他の操作についての詳細な長文の投稿です。
-
Databases 101 は、主なリレーショナル・データベース・コンセプトの素晴らしい概要を提供し、非開発者にも入門として関係します。
-
Five Mistakes Beginners Make When Working With Databases では、なぜデータベースに画像を保存してはいけないのか、またスキーマを正規化するにはなぜ慎重にならなければいけないのか、説明しています。
-
DB-Engines は、最も人気のあるデータベース管理システムをランク付けします。
-
DB Weekly は、データベース関連の一般記事とリソースを毎週取りまとめます。
-
Designing Highly Scalable Database Architectures は、リレーショナル データベース アーキテクチャにおける水平および垂直スケーリング、レプリケーション、キャッシングについて説明しています。 著者のチームが使用したアプローチは、4 ステップのデュアル書き込みパターンで、購読のデータが格納される方法を慎重に進化させ、新しい、より効率的なストレージ モデルに移行することができました。
-
SQL is 43 years old – here’s 8 reasons we still use it todaylistsなぜSQLは、thelanguageが50周年に近づいてもほぼすべての開発者によって一般的に使用されているのかを説明しています。
-
SQL keys in depthprovides a great explanation for what primary keys are and how youshould use them.
-
Exploring a data set in SQLis a good example of how SQL alone can be used fordata analysis.
-
Extploring a data set in SQLis a good example for datasign.This is the good example of how SQL alone can be used fordata analysis. このチュートリアルでは、Spotifyのデータを使用して、データセットから学びたいことを抽出する方法を紹介します。
-
データベース統合テスト戦略では、現実世界のあらゆるプロジェクトで出てくる難しいトピックを扱います。
-
GitLab は、1 月 31 日のデータベース停止の事後報告を、顧客に対して透明性を保ち、他の開発チームがデータベースシステムをどのように混乱させ、回復する方法を見つけたかを知るための方法として提供しました。
-
PostgreSQL vs. MS SQL Server は、データアナリストによる、2つのデータベースサーバーの違いについての1つの視点です。
-
psycopg2ライブラリがアプリケーションの依存関係にあることを確認します。
-
PostgreSQLインスタンスに接続するためにWebアプリケーションを設定します。
-
データベースのテーブルを構築するか、 ORM を使っている場合は ORM のモデルを PostgreSQL インスタンスと同期します。
-
Webアプリケーションからデータベース内のデータの作成、読み込み、更新、削除を開始します。