Українська
Підсумки
Висновки
Реляційна база даних зберігає дані в таблицях, пов’язаних первинними й зовнішніми ключами, а СКБД забезпечує цілісність даних обмеженнями. Схему проєктують за ER-діаграмою і нормалізують до третьої нормальної форми, щоб кожен факт зберігався один раз. Мова SQL має команди DDL для створення структури, DML для зміни даних і запит SELECT з умовами, сортуванням, групуванням і з’єднаннями таблиць. PostgreSQL 18 установлюється інсталятором EDB, а з базою даних працюють у psql, pgAdmin або DataGrip. У .NET доступ до даних забезпечує ADO.NET: постачальник Npgsql реалізує класи з’єднання, команди, читача й транзакції, а NpgsqlDataSource керує пулом з’єднань. Рядок з’єднання зберігається в секретах користувача, усі значення передаються параметрами, що захищає від SQL-ін’єкцій, а пов’язані зміни об’єднуються в транзакцію. Відокремлений режим з DataTable зручний для показу даних у DataGridView.
Питання для самоперевірки
- Що таке база даних і СКБД? Назвіть основні поняття реляційної моделі.
- Що таке первинний і зовнішній ключі? Чим сурогатний ключ відрізняється від природного?
- Як реалізуються зв’язки 1:1, 1:N і N:M?
- Які види цілісності даних забезпечує СКБД?
- Сформулюйте вимоги 1НФ, 2НФ і 3НФ. Які аномалії усуває нормалізація?
- Як встановити PostgreSQL у Windows? Для чого
psql, pgAdmin і DataGrip? - Які типи даних PostgreSQL використовують для цілих чисел, грошей, рядків і дат? Що таке стовпець ідентичності?
- Які обмеження можна задати в
CREATE TABLE? Що означаютьON DELETE CASCADEіRESTRICT? - Для чого потрібні індекси? Для яких стовпців PostgreSQL створює їх автоматично?
- Чим
WHEREвідрізняється відHAVING? Як працюють агрегатні функції зGROUP BY? - Чим відрізняються
INNER JOIN,LEFT JOINіFULL JOIN? Чому не можна перевіряти= NULL? - Які класи ADO.NET реалізує постачальник Npgsql? Для чого
NpgsqlDataSource? - Що таке пул з’єднань і як він впливає на роботу із з’єднаннями в програмі?
- Чим відрізняються методи
ExecuteNonQueryAsync,ExecuteScalarAsyncіExecuteReaderAsync? - Що таке SQL-ін’єкція? Чому параметризований запит від неї захищає?
- Що таке транзакція і властивості ACID? Як виконати транзакцію в Npgsql?
Корисні посилання
- Документація PostgreSQL: https://www.postgresql.org/docs/current/
- Підручник PostgreSQL (SQL для початківців): https://www.postgresql.org/docs/current/tutorial.html
- Встановлення PostgreSQL у Windows: https://www.postgresql.org/download/windows/
- Документація DataGrip: https://www.jetbrains.com/help/datagrip/
- Документація Npgsql: https://www.npgsql.org/doc/
- Параметри рядка з’єднання Npgsql: https://www.npgsql.org/doc/connection-string-parameters.html
- Огляд ADO.NET: https://learn.microsoft.com/dotnet/framework/data/adonet/ado-net-overview
- Секрети користувача: https://learn.microsoft.com/aspnet/core/security/app-secrets
- SQL-ін’єкції (OWASP): https://owasp.org/www-community/attacks/SQL_Injection