PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tổng quan về pgModeler cho PostgreSQL

Khi một dự án đang được thiết kế, điều đầu tiên bạn cần nghĩ đến là mục đích của nó là gì ... giải pháp tốt nhất là gì và các giải pháp thay thế là gì. Trong kỹ thuật phần mềm, mọi thứ đều được thực hiện để phục vụ dữ liệu, cho dù đó là giao diện đồ họa hay logic nghiệp vụ, vì vậy không có gì lạ khi điểm khởi đầu tốt nhất có thể là lập kế hoạch cơ sở dữ liệu.

Tài liệu chính thức của cơ sở dữ liệu có thể rất phức tạp, dù nó có thể là công nghệ nào. Sử dụng các khái niệm tốt nhất cho một tình huống cụ thể không phải là một nhiệm vụ dễ dàng.

pgModeler là chương trình bạn có thể sử dụng để tăng năng suất của mình với PostgreSQL. Nó miễn phí, hoạt động trên Windows, Mac hoặc Linux và cung cấp cách làm việc với các lệnh DDL thông qua giao diện phong phú được xây dựng trên SVG.

Cài đặt

Cài đặt rất đơn giản, chỉ cần tải xuống từ trang web và chạy tệp. Một số hệ điều hành đã có pgModeler trong kho của chúng, đây là một giải pháp thay thế cho việc tải xuống.

pgModeler là một giải pháp mã nguồn mở và bạn có thể tìm thấy nó trên GitHub, nơi các bản phát hành mới được xuất bản.

Nó có tùy chọn phiên bản trả phí, nơi bạn có thể hỗ trợ dự án và sử dụng các tính năng mới nhất, chẳng hạn như khả năng tương thích với các phiên bản mới nhất của PostgreSQL.

Nếu bạn cần một mục nhập trên máy tính để bàn, hãy kiểm tra nó trong phần sau. Tệp này có thể được đặt tên là pgmodeler.desktop và bạn có thể đặt nó trên / usr / share / Applications /, nhưng đừng quên sao chép biểu trưng được giới thiệu trong blog này, lưu nó trên /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;

Giao diện đồ họa

Chương trình giảng dạy của các khóa học về công nghệ thông tin, bao gồm cả các trường cao đẳng, bao gồm các chuyên ngành mô hình hóa dữ liệu, với UML làm tiêu chuẩn cho thiết kế dự án và tài liệu.

Giao diện đồ họa của pgModeler cho phép làm việc với một loại sơ đồ dành riêng cho cơ sở dữ liệu, Sơ đồ mối quan hệ thực thể (ERD), tái tạo những gì bạn đã xây dựng bên trong cụm PostgreSQL của mình một cách liền mạch.

Có một số ngôn ngữ:

  • Tiếng Anh (en_US);
  • Tiếng Tây Ban Nha (es_ES);
  • Tiếng Pháp (fr_FR);
  • Tiếng Hà Lan (nl_NL);
  • Tiếng Bồ Đào Nha (pt_BR); và
  • Tiếng Trung (zh_CN).

In những gì bạn đã tạo cũng có sẵn và có thể tùy chỉnh về hình thức, thay đổi phông chữ và màu sắc của lược đồ, bảng, mối quan hệ, v.v.

Tính năng

Các tính năng của pgModeler chỉ đơn giản là công cụ giúp bạn điều hướng giữa các mô hình logic và vật lý.

Một mô hình logic, là một sơ đồ. Bạn có thể sử dụng nó để chuyển đổi ý tưởng của khách hàng thành một dự án được ghi chép đầy đủ mà người khác có thể hiểu trong tương lai và thực hiện các sửa đổi đối với nó.

Mô hình vật lý là tập lệnh, mã SQL. PostgreSQL hiểu điều đó và pgModeler cũng vậy.

Thông qua thuật toán thiết kế ngược của nó, bạn có thể kết nối với cụm PostgreSQL của mình và xem xét mô hình miền hiện tại của bạn với một góc nhìn khác hoặc xây dựng nó trước, sau đó tạo mô hình miền thực thi tập lệnh, được tạo bởi những gì bạn đã xây dựng trong sơ đồ.

Sơ đồ Mối quan hệ Thực thể

Khi bạn hiểu mục đích của nó, hãy xem sơ đồ trông như thế nào cho một dự án rất đơn giản, nơi bạn có thể hình dung mối quan hệ giữa bảng khách hàng và phim, có tên là cho thuê.

Lưu ý các dòng giữa các bảng, chúng dễ nhìn và quan trọng nhất là hiểu. Khóa chính và khóa ngoại là những điểm bắt đầu để hình dung các mối quan hệ và ở các cạnh của chúng, bản chất đang được hiển thị.

Có thể thấy các ràng buộc đại diện cho các khóa, như pk, fk và thậm chí là NOT NULL, là nn, có màu xanh lục ở bên phải mỗi bảng. Lược đồ được đặt tên là store và hình trên do chính chương trình tạo ra.

Trước đó chúng ta đã thấy rằng sơ đồ là mô hình logic, có thể được áp dụng vào một cụm PostgreSQL. Để áp dụng nó, một kết nối phải được thiết lập, ví dụ này, tôi đã tạo một cụm chạy bên trong vùng chứa Docker.

Giờ đây với kết nối cơ sở dữ liệu đã được định cấu hình và kiểm tra, việc xuất rất dễ dàng. Các mối quan tâm về bảo mật phải được xem xét tại thời điểm này, như thiết lập SSL với cụm của bạn.

Trong phần sau, pgModeler tạo lược đồ cửa hàng, bên trong cơ sở dữ liệu hoàn toàn mới có tên blog_db, như tôi muốn, không quên đề cập đến vai trò mới, với quyền đăng nhập.

Quá trình xuất đã kết thúc thành công! - Ok, có một sự nhầm lẫn, nhưng nó đã được kết thúc thành công, chắc chắn.

[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    |                                                   | {}

Kết luận

Mô hình miền còn được gọi là thế giới nhỏ và hiếm khi bạn thấy mô hình tương tự được áp dụng trên các dự án khác nhau. pgModeler có thể giúp bạn tập trung vào những gì thực sự quan trọng, tránh lãng phí thời gian liên quan đến cú pháp SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sẽ tốt hơn nếu sử dụng nhiều cơ sở dữ liệu với một lược đồ, hay một cơ sở dữ liệu với nhiều lược đồ?

  2. Điểm chuẩn Postgres-XL

  3. Có một lần truy cập hiệu suất sử dụng các kiểu dữ liệu thập phân (MySQL / Postgres)

  4. Tăng giá trị trong Postgres

  5. thiếu mục nhập mệnh đề FROM cho bảng Grupo cakephp