プロジェクトを設計する際に最初に考えることは、その目的が何であるかということです...最良の解決策は何か、そして代替案は何か。ソフトウェアエンジニアリングでは、グラフィカルインターフェイスであろうとビジネスロジックであろうと、すべてがデータを提供するために行われるため、データベースの計画が最良の出発点になるのも不思議ではありません。
データベースの公式ドキュメントは、テクノロジーが何であれ、非常に複雑になる可能性があります。特定の状況に最適な概念を使用することは簡単な作業ではありません。
pgModelerは、PostgreSQLの生産性を向上させるために使用できるプログラムです。これは無料で、Windows、Mac、またはLinuxで動作し、SVG上に構築された豊富なインターフェイスを介してDDLコマンドを操作する方法を提供します。

インストールは非常に簡単で、サイトからダウンロードしてファイルを実行するだけです。一部のオペレーティングシステムでは、すでにpgModelerがリポジトリに含まれています。これはダウンロードの代わりになります。

pgModelerはオープンソースソリューションであり、GitHubで見つけることができます。新しいリリースが公開される場所。
有料版のオプションがあり、プロジェクトをサポートし、最新バージョンのPostgreSQLとの互換性など、最新の機能を使用できます。
デスクトップエントリが必要な場合は、以下で確認してください。このファイルにはpgmodeler.desktopという名前を付けることができ、/ usr / share / Applications /に配置できますが、このブログに表示されているロゴをコピーして、/ etc / pgmodeler/pgmodeler_logo.pngに保存することを忘れないでください。
[Desktop Entry]
Name=pgModeler
GenericName=PostgreSQL Database Modeler
Comment=Program with nice Qt interface for visual modeling PostgreSQL on Entity Relationship Diagram
Exec=pgmodeler
Icon=/etc/pgmodeler/pgmodeler_logo.png
Terminal=false
Type=Application
Categories=Qt;Database;Development;
大学を含む情報技術コースのカリキュラムには、プロジェクトの設計と文書化の標準としてUMLを使用した、データモデリングの分野が含まれています。
pgModelerのグラフィカルインターフェイスを使用すると、データベースに固有の一種の図であるエンティティリレーションシップダイアグラム(ERD)を操作して、PostgreSQLクラスター内に構築したものをシームレスに再現できます。
いくつかの言語が利用可能です:
- 英語(en_US);
- スペイン語(es_ES);
- フランス語(fr_FR);
- オランダ語(nl_NL);
- ポルトガル語(pt_BR);および
- 中国語(zh_CN)。
作成したものを印刷することもできます。また、スキーマ、テーブル、リレーションシップなどのフォントや色を変更したり、外観をカスタマイズしたりすることもできます。
pgModelerの機能は、論理モデルと物理モデルの間を移動するのに役立つ単なるツールです。
物理モデルはスクリプト、SQLコードです。 PostgreSQLはそれを理解しているので、pgModelerも理解しています。
リバースエンジニアリングアルゴリズムを使用して、PostgreSQLクラスターに接続し、既存のドメインモデルを別の視点で確認するか、最初に構築してから、生成されたスクリプトを実行するドメインモデルを作成できます。ダイアグラムに作成したものによって。

その目的を理解したら、レンタルという名前のテーブルの顧客と映画の関係を視覚化できる非常に単純なプロジェクトの図がどのように見えるかを見てみましょう。
テーブル間の線に注意してください。テーブルは見やすく、最も重要なのは理解しやすいことです。主キーと外部キーは、関係を視覚化するための開始点であり、それらのエッジには、カーディナリティが表示されています。

キーを表す制約は、pk、fk、および各テーブルの右側にある緑色のnnのようなNOTNULLですら。スキーマの名前はstoreで、上の図はプログラム自体によって生成されています。
先ほど、ダイアグラムは論理モデルであり、PostgreSQLクラスターに適用できることを確認しました。これを適用するには、接続を確立する必要があります。この例では、Dockerコンテナ内で実行されるクラスターを作成しました。

データベース接続を構成してテストしたので、エクスポートは簡単です。この時点で、クラスターでSSLを確立するなど、セキュリティ上の懸念を考慮する必要があります。
以下では、pgModelerは、ログイン権限を使用して、新しい役割について言及することを忘れずに、blog_dbという名前の完全に新しいデータベース内にストアスキーマを作成します。

エクスポートプロセスは正常に終了しました。 –わかりました、間違いがありますが、確かに正常に終了しました。

[email protected]:~$ psql -U thiago -w -d blog_db;
psql (10.10 (Debian 10.10-1.pgdg90+1))
Type "help" for help.
blog_db=> set search_path to store;
SET
blog_db=> \dt
List of relations
Schema | Name | Type | Owner
--------+----------+-------+--------
store | customer | table | thiago
store | film | table | thiago
store | rental | table | thiago
(3 rows)
blog_db=> \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
thiago | | {}
ドメインモデルはミニワールドとも呼ばれ、同じものがさまざまなプロジェクトに適用されることはめったにありません。 pgModelerは、SQL構文に関する時間の無駄を省き、本当に重要なことに集中するのに役立ちます。