# Архитектура ИС (Клиент-Сервер, Трехзвенная) с точки зрения подключения к СУБД.

#### Архитектура Клиент-Сервер (2-звенная)

Клиент напрямую обращается к СУБД, формирует SQL и получает данные. Может быть толстый или тонкий клиент.  ￼

##### Толстый и тонкий клиент

| Тип клиента        | Характер    | Где логика                    | Обработка запросов к СУБД                                         |
| ------------------ | ----------- | ----------------------------- | ----------------------------------------------------------------- |
| **Толстый клиент** | Fat Client  | Бизнес-логика + UI на клиенте | Клиент формирует SQL и напрямую обращается к СУБД                 |
| **Тонкий клиент**  | Thin Client | Логика минимальна             | Клиент формирует простые SQL-запросы и напрямую обращается к СУБД |


##### Схемы

###### Толстый клиент (2-звенная)

```
Пользователь → (логика, запросы SQL) Клиент 
           → (SQL) → Сервер СУБД
                     ← результаты
```

###### Тонкий клиент (2-звенная)

```
Пользователь → UI-только клиент
           → минимальная логика на клиенте
           → SQL → Сервер СУБД
                     ← результат
```

###### Общая логика
```
[ Клиент ]
     |
  SQL запрос
     |
[ Сервер СУБД ]
```

⸻

#### Трёхзвенная архитектура (3-tier)

Это расширение клиент-серверной модели.
Вводится промежуточный уровень приложения (API), который обрабатывает бизнес-логику и взаимодействует с СУБД вместо клиента. Клиент общается только с API.￼


##### Схема (3 уровня)

```
[ Клиент (UI) ]
     |
   API/HTTP
     |
[ Сервер приложений ]
     |
 JDBC/ODBC/ORM
     |
[ Сервер СУБД ]
```

| Уровень                     | Что делает                          | К СУБД подключается?  |
| --------------------------- | ----------------------------------- | --------------------- |
| **Клиент**                  | Интерфейс пользователя              | Нет прямого доступа |
| **Сервер приложений / API** | Бизнес-логика и обработка данных    | Да                  |
| **Сервер СУБД**             | Хранит данные и отвечает на запросы | —                     |

> Клиент никогда не общается напрямую с СУБД — только через API сервера приложений.  ￼

Преимущества:
- Лучшая безопасность
- Обновления логики на сервере без изменения клиентов
- Меньшая нагрузка на сеть
- Масштабируемость
- Разделение ответственности

#### Сравнение архитектур

| Характеристика                     | 2-звенная  | 3-звенная               |
| ---------------------------------- | ---------- | ----------------------- |
| Кол-во уровней                     | 2          | 3                       |
| К клиенту можно подключиться к БД? | Да         | Нет                     |
| Бизнес-логика                      | На клиенте | На сервере приложений   |
| Обновление UI                      | Труднее    | Легче                   |
| Масштабируемость                   | Ниже       | Выше                    |
| Безопасность доступа к данным      | Ниже       | Выше                    |
| СУБД-API                           | Прямой     | Через сервер приложений |