Postgresql графічний клієнт pgadmin

СЕРГІЙ СУПРУНОВ

PostgreSQL: графічний клієнт pgAdmin

У попередній статті, присвяченій СУБД PostgreSQL (див. Липневий номер журналу), згадувався графічний клієнт pgAdmin. У цій статті розглянемо його основні функції та можливості.

Для тестування з сайту www.pgadmin.org був викачаний пакет pgAdmin III версії 1.0.2 для Windows 2000 / XP (у вигляді msi-архіву). Розмір дистрибутива складає менше 5,5 Мб. Установка пакета на операційну систему Windows XP Professional утруднень не викликала. Після традиційного питання про згоду з умовами ліцензійної угоди (пакет поширюється безкоштовно) і декількох секунд інсталяційних процедур програма була готова до роботи.

При першому запуску було запропоновано вибрати потрібну мову інтерфейсу. Серед кількох десятків підтримуваних мов знайшовся і український.

Відкрилося далі головне вікно (рис. 1) своїми обрисами викликало в пам'яті образ входить до складу СУБД Oracle клієнта PL / SQL Developer. Правда, деякий аскетизм панелі інструментів навіював думку, що у функціональному плані відмінності будуть більш помітні, і ніяк не на користь pgAdmin.

Postgresql графічний клієнт pgadmin

СУБД PostgreSQL версії 7.4.1 у мене була запущена на іншій машині (під управлінням FreeBSD), що і було зазначено при додаванні сервера (рис. 2). Поясню відсутність пароля: моя робоча машина прописана в файлі pg_hba.conf (файл настройки доступу PostgreSQL) як довірений хост, що дозволяє з'єднуватися з сервером БД, як мені заманеться. Своя рука - владика. Природно, на робочому сервері така недбалість не вітається.

Postgresql графічний клієнт pgadmin

Тепер зліва буде дерево баз даних, праворуч відображається інформація по виділеному об'єкту і нижче - SQL-команда, за допомогою якої виділений об'єкт міг бути створений (рис. 3).

Postgresql графічний клієнт pgadmin

Для загального уявлення створимо нову таблицю. Для чого тиснемо праву кнопку миші над гілкою «Таблиці», вибираємо «Новий об'єкт» - «Нова таблиця» і починаємо вводити її властивості (рис. 4).

Postgresql графічний клієнт pgadmin

Далі, на вкладці «Колонки» збираємо (інше визначення до цього процесу підібрати важко) структуру таблиці, послідовно додаючи поля (рис. 5). Для кожного поля має бути задано ім'я і тип даних. Додатково можна вказати значення за замовчуванням і / або зазначити поле як «NOT NULL», заборонивши тим самим залишати його без певного значення.

Postgresql графічний клієнт pgadmin

На наступній вкладці можна задати обмеження (первинний і вторинний ключі, UNIQUE і CHECK).

Вкладка «Безпека» дозволяє роздати іншим користувачам права доступу до створюваної таблиці.

Остання закладка - «SQL» - дозволяє подивитися, яким SQL-запитом все це буде створено.

Засмутила неможливість виправити помилку на стадії створення таблиці. Наприклад, якщо ви неправильно поставили тип даних для поля, то виправити це можна, тільки вилучивши поле і створивши нове. Надалі, якщо повернутися до властивостей вже створеної таблиці, кнопка «Змінити» присутній, а от під час створення нової - немає ... А для обмежень немає навіть цього - тільки видаляти і створювати заново.

Ще один недолік - про помилку дізнаєшся тільки при спробі зберегти зроблені зміни.

Як вже було побіжно відмічено, що існують таблиці можна змінювати. Та й було б дивно, якби така можливість була відсутня. Інтерфейс той же самий (за винятком згаданої вище кнопки «Змінити»). На вкладці «SQL» буде формуватися код, який необхідно виконати для здійснення бажаних змін.

Код формується, як і слід було очікувати, досить просто, без «хитринки». Наприклад, якщо дати вказівку при створенні таблиці задати власника, то в код буде просто додана команда «ALTER TABLE ... OWNER ...» після того, як таблиця буде створена командою «CREATE TABLE ...». Хоча по-хорошому це можна зробити однією командою.

Для роботи з наповненням таблиць служить інструмент «Перегляд даних» (рис. 6). Виконаний у стилі «старого доброго» MS Access, він дозволяє переглядати вміст таблиці, додавати нові рядки, змінювати і видаляти існуючі. Причому зміна даних можливо тільки в разі, якщо таблиця створена з встановленим прапором «Має OID». Як не дивно це виглядає, але в обох випадках інструмент називається саме «Перегляд даних» (в англомовному варіанті «View Data»), незважаючи на можливість редагування, хоча заголовок вікна говорить «pgAdmin III Edit data», і теж в обох випадках. Таким чином, цей недолік, допущений при проектуванні інтерфейсу, здатний ввести в оману, і відразу відшукати можливість роботи з даними таблиць досить важко.

Postgresql графічний клієнт pgadmin

Ширші можливості по роботі з запитами надає «Інструмент запитів» (рис. 7). Тут вже є куди ввести будь-який SQL-запит і подивитися його результат. Закладка «Повідомлення» внизу вікна дозволяє ознайомитися з такою інформацією, як кількість обраних запитом записів і час виконання запиту. Дуже корисна функція - «Пояснити запит» (рис. 8), що виводить послідовність дій, які буде виконувати PostgreSQL, обробляючи цей запит, з розрахунком часу, що витрачається на кожну операцію - незамінний інструмент для оптимізації запитів. У пункті меню «Запит» - «Налаштування режиму пояснення» можна включити і детальний розбір кожного запиту.

Postgresql графічний клієнт pgadmin

Postgresql графічний клієнт pgadmin

Функція обслуговування БД дозволяє виконати дефрагментацію і аналіз структури бази даних або окремих таблиць. Регулярна дефрагментація потрібна для підвищення швидкості доступу до даних, а аналіз поставляє службову інформацію оптимізатора СУБД, на підставі якої останній здатний обробляти запити більш ефективно.

Ну і нарешті, у вікні «Налаштування» ви можете зробити деякі налаштування інтерфейсу, такі як вибір мови та шрифту, на свій смак, а також налаштувати log-файл.

Включення опції «Показати» - «Системні об'єкти» призведе до відображення баз template0 і template1, а також в кожній користувальницької БД, крім схеми public, яке береже призначені для користувача дані, будуть видні і службові схеми: information schema, pg_catalog, pg_temp_1, pg_toast (рис. 9). Природно, що для роботи з системними об'єктами потрібно володіти відповідними правами.

Postgresql графічний клієнт pgadmin

Важко сказати, недолік це чи особливість реалізації, але pgAdmin жорстко прив'язує ім'я користувача до конкретного сервера. Тобто при необхідності під'єднатися до БД з іншими правами доводиться створювати кілька «серверів», що вказують на одну СУБД, але з різними користувачами (рис. 10). Хоча в цьому є і певні переваги, тому що можна підтримувати одночасно кілька підключень з різними правами. До слова, подивитися всі підключення до СУБД можна, вибравши «Сервіс» - «Стан сервера».

Postgresql графічний клієнт pgadmin

На закінчення зазначимо, що в клієнті доступний файл допомоги. Правда, він англійською мовою, але тим не менш досить докладно, просто і з великою кількістю ілюстрацій описує роботу з клієнтом, його налаштування, а також містить докладну довідку по PostgreSQL 7.4. Здалося кілька незручним, що розгорнуте вікно допомоги завжди знаходиться поверх робочого вікна, закриваючи частину даних. Хоча завжди можна відкрити довідку окремо (відповідний пункт присутній у групі «pgAdmin III» меню «Пуск»), і тоді ніщо не буде заважати перемикатися між вікнами коханої комбінацією.

Отже, мої загальні враження - клієнт добротний, не рахуючи дрібних недоліків; підтримує практично всі функції розробки та адміністрування. Широкі можливості по аналізу запитів, наочне представлення структури БД і її складових, інтуїтивно зрозумілий, не обтяжений нічим зайвим, та ще й російськомовний інтерфейс роблять pgAdmin зручним інструментом для роботи з базами PostgreSQL, особливо для початківців. Крім версії для Windows, є пакети для Linux (Debian, RPM, Slackware packages), для FreeBSD. При бажанні пакет може бути зібраний і з вихідних текстів.

Додаткову інформацію (в тому числі і російською мовою) можна отримати на сайті проекту.