Курс призначений для початківців-адміністраторів, які супроводжують додатки для сервера бази даних PostgreSQL та сервера додатків WildFly або подібних йому. Також будуть розглянуті основні концепції побудови додатків масштабу підприємства та розміщення їх на сервері додатків для організації транзакційного доступу до бази даних PostgreSQL. Слухачі дізнаються про PostgreSQL та WildFly-інфраструктуру, як управляти сервером бази даних, сервером додатків та розміщеними на ньому завданнями.
Після закінчення курсу слухачі зможуть:
- керувати інфраструктурою сервера бази даних PostgreSQL (PG);
- розміщувати на сервері додатка для управління даними;
- розгортати сервер додатків WildFly для взаємодії з PG.
Аудиторія
Курс призначений для адміністраторів баз даних та додатків, які активно використовують базу даних. Курс також буде корисний розробникам SQL та Java, а також керівникам ІТ-підрозділів через те, що розглядається багато конкретних прикладів побудови та супроводу додатків на підприємстві.
Для ефективного навчання на курсі, слухачі повинні володіти такими знаннями і навичками:
- основи мови Java або однієї з мов OOП.
- Вступ до PostgreSQL
- Коротка історія
- Призначення та функціональність, управління базою даних
- Місце бази даних в триланкової архітектурі обчислень масштабу підприємства
- Архітектура PostgreSQL
- Загальна будова сервера бази даних, основні компоненти
- Управління транзакціями
- Відмінність бізнес-транзакцій від транзакцій бази даних
- Двофазний та однофазний commit
- Як сервер додатків допомагає базі даних
- Бази даних та схеми, системний каталог та метадані бази даних
- Як влаштовані табличні простори бази даних PG
- Встановлення PostgreSQL
- Підготовка операційної системи CentOS для розміщення на ній бази даних
- Використання ARM-процесорів для роботи PG
- Компіляція бази даних з вихідних кодів
- Підготовка каталогів для розміщення в них баз даних та табличних просторів
- Завдання адміністратора
- Основні утиліти адміністратора для управління базою даних - інсталяція
- Запуск PG з командного рядка та як сервіс операційної системи
- Розширення сервера PG
- Використання psql, pgcli, pgadmin на прикладах
- JDBC-драйвер для роботи з базою даних, доступ до PG з java-додатків, основні інтерфейси
- Приклади доступу
- Розгортання сервера WildFly та його конфігурування для роботи з PG, пул з'єднань
- Завантаження простого додатка на сервер додатків та його тестування спільно з базою даних
- Налаштування віддаленої взаємодії з PG-конфігурацією
- Бази даних. Створення. Кластер бази даних
- Схеми та простори імен всередині бази даних
- Користувачі
- Спеціальні схеми та їх призначення
- Часові схеми та таблиці, особливості взаємодії з сервером додатків
- Порядок авторизації користувача в базі даних
- Налаштування пулу з'єднань сервера додатків для авторизації конкретного користувача
- Табличні простори та каталоги
- Управління табличними просторами
- Табличні простори та метадані
- Системний каталог надає доступ до метаданих сервера
- Організація SQL-доступу
- Загальні об'єкти кластера бази даних
- Правила іменування об'єктів в PG
- Спеціальні типи даних у визначенні первинних та зовнішніх ключів системного каталогу
- Визначення місця розміщення табличних просторів на фізичних носіях
- Основні об'єкти БД
- Таблиці та типи даних
- Створення таблиць та розміщення даних в конкретних табличних просторах
- Опис колонок
- Обмеження цілісності в PG, перевірки, зовнішні та первинні ключі, NOT NULL, UNIQUE
- Системні стовпці
- Зміна та видалення таблиць
- Права та ролі в базі даних, привілеї
- Політики захисту рядків
- Уявлення
- Матеріалізовані представлення
- Схеми в базі даних
- Вибірка даних з таблиць
- З'єднання, агрегування та угруповання, підзапити - правила роботи команди SELECT, команди DML
- PL/pgSQL-процедурна мова
- Легкий огляд
- Переваги та недоліки
- Підтримувані типи даних
- Структура блоку
- Оголошення змінних, параметрів , процедурних блоків
- Спадкування типів даних бази даних
- Тип запису даних
- Огляд операторів
- Явні та неявні курсори
- Динамічний SQL
- Статус виконання команди - GET DIAGNOSTICS
- Обробка винятків
- Індекси - призначення
- Зберігання даних за стовпчиками та рядками
- Типи індексів та їх створення
- Складові та унікальні індекси
- Функціональні індекси
- Індексування частини рядків таблиці
- Транзакції в базі даних PG
- Рівні ізоляції транзакцій
- Багатоверсійність рядків в таблицях
- Блокування на рівні рядків та таблиць
- Розподілені транзакції та XA-драйвер PG-сервер додатків
- ORM та JPA-сервера додатків для взаємодії з базою даних PG
- Приклади використання
- Розподілені транзакції PG та механізми JMS-сервера додатків
- Перегляд інформації про блокування
- Конфігурація сервера, файл postgresqlconf
- Імена та типи параметрів, зміни
- Управління параметрами через SQL, перегляд параметрів, команда SHOW
- Управління параметрами через командний рядок при старті сервера
- Вкладені конфігураційні файли. Управління продуктивністю PG
- Методи доступу до даних, доступ до даних на основі індексу, індексний перегляд даних
- Бітові карти для перегляду даних, Nested loop, Hash join, Merge Join
- Плани виконання запитів - explain
- Управління планом виконання запитів за допомогою команди SET поточного сеансу
- Оптимізація запитів, збір та оновлення статистики, управління методами доступу, використання механізмів хешування
- Під’єднання та автентифікація
- Конфігураційний файл pg_hbaconf
- Програми createuser та dropuser
- Членство в ролі
- Методи автентифікації - trust, password, ident
- Використання автентифікації на рівні сервера додатків, декоратори та інтерсептори на основі EJB-компонент
- Ролі бази даних, операційної системи та сервера додатків
- Моніторинг роботи системи
- Стандартні інструменти Unix
- Конфігурація системи збору статистики, перегляд статистики через подання словника метаданих
- Додаткові функції для перегляду статистичної інформації
- Компіляція сервера з наданням трасування під час виконання
- Моніторинг використання дискового простору
- Журнал випереджувального запису (WAL) та асинхронне підтвердження транзакцій, налаштування WAL
- Супровід PostgreSQL
- Логічне резервування
- Фізичне резервування