Этот раздел объединяет инструменты для повседневного администрирования сервера, управления доступом и обеспечения сохранности данных.
-**Раздел “Server Status”.** В разделе отображается общая информация о сервере и подключении к нему. Информация логически сгруппирована. Можно выделить следующие группы:
- Общая информация (например, название хоста, номер порта, версия БД).
- Настройки сервера (например, включен ли брандмауэр, используется ли SSL)
- Каталоги сервера
- Сводка по используемым ресурсам компьютера (ОЗУ, процессор и т. д.)
- Настройки соединения SSL (если SSL включена).
-**Раздел “Client Connections”.** Предназначен для мониторинга и контроля всех активных сессий пользователей.
- Отображение списка подключенных клиентов (ID процесса, пользователь, хост, текущая база данных).
- Анализ выполняемых в данный момент SQL-запросов и времени их работы.
- Возможность принудительного завершения зависших или опасных процессов (кнопка _Kill Connection_).
-**Раздел “Users and Privileges”.** Основной центр управления безопасностью и правами доступа.
- Создание, редактирование и удаление учетных записей пользователей.
- Настройка глобальных прав (администрирование) и специфических прав на конкретные таблицы или схемы.
- Управление паролями и аутентификацией.
-**Раздел “Status and System Variables”.** Позволяет просматривать и изменять внутренние настройки конфигурации «на лету».
- Мониторинг динамических показателей (счетчики ошибок, количество выполненных транзакций, время работы).
- Просмотр системных переменных (настройки памяти, кодировок, лимиты подключений).
- Поиск и редактирование параметров конфигурации без прямого редактирования текстовых файлов.
-**Раздел “Data Export”.** Мастер создания резервных копий (дампов) базы данных.
- Выбор конкретных схем и таблиц для выгрузки.
- Настройка формата экспорта (один файл `.sql` или папка с отдельными файлами для каждой таблицы).
- Возможность включения в бэкап структуры таблиц, данных, а также процедур и триггеров.
-**Раздел “Data Import/Restore”.** Инструмент для восстановления данных из ранее созданных копий.
- Загрузка данных из отдельных SQL-файлов или из подготовленных папок с проектами.
- Выбор целевой схемы для развертывания данных.
- Визуальный мониторинг процесса импорта с выводом логов ошибок, если структура данных не совпадает.
---
### Раздел “Instance” (“Экземпляр БД”)
Этот раздел предназначен для управления жизненным циклом сервера и его конфигурацией на уровне операционной системы.
-**Раздел “Startup / Shutdown”.** Позволяет управлять состоянием службы базы данных.
- Дистанционный или локальный запуск и остановка сервера.
- Просмотр текущего статуса службы (работает/остановлена) и времени непрерывной работы (Uptime).
-**Раздел “Server Logs”.** Предоставляет интерфейс для чтения журналов (логов) сервера без необходимости искать их в файловой системе Linux.
-**Error Log**: просмотр ошибок и предупреждений сервера.
-**General Log**: история всех выполненных запросов (если включено).
-**Slow Query Log**: список запросов, которые выполнялись дольше заданного времени.
-**Раздел “Options File”.** Графический редактор основного конфигурационного файла (`my.cnf`).
CHANGE COLUMN `created` `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;
```
-**ENUM('M', 'F')** используется для того, чтобы больше никакие значения, кроме 'M'/'F' не могли быть введены в это поле. База данных не позволит записать туда что-то кроме 'M' или 'F' (или пустоты, если разрешено). Это экономит место и защищает от ошибок.
- Использование типа **TIMESTAMP** со значением по умолчанию **CURRENT_TIMESTAMP()** позволяет автоматически фиксировать дату и время создания каждой записи.
- При добавлении новых строчек без явного указания значения для данного поля, СУБД самостоятельно подставляет текущую системную дату и время сервера.
- Это избавляет разработчика от необходимости передавать временную метку из приложения, гарантируя целостность хронологии данных.
- Для пользователей, которые не хотят делиться личной информацией, поля `gender, bday` и `postal_code` определены как `NULL` со значением по умолчанию `NULL`. Это позволяет создать профиль, указав только минимально необходимые данные (ID, имя/никнейм и email). Поле `rating` также имеет значение `NULL` по умолчанию, так как у пользователя может еще не быть рейтинга.
Данный запрос выполняет создание дочерней таблицы с установлением логической связи «один ко многим» (у одного пользователя может быть несколько резюме), так как поле `userid` без флага `unique`.
-**Первичный ключ (`PRIMARY KEY`)**. Поле `resumeid` является идентификатором записи с автоприращением (`AUTO_INCREMENT`).
-**Внешний ключ (`FOREIGN KEY`)**. Поле `userid` в таблице `resume` ссылается на поле `id` в родительской таблице `users`.
-**Индексация**. При настройке внешнего ключа создается индекс `userid_idx` для ускорения операций поиска и объединения таблиц по идентификатору пользователя.
-**Ограничение (`CONSTRAINT`)**. Установлено правило целостности данных, которое связывает две таблицы на уровне ядра СУБД.
Выбор режима **CASCADE** для действий `ON DELETE` и `ON UPDATE` определяет автоматизированное поведение базы данных:
1. Если из таблицы `users` будет удалена запись (например, пользователь с `id = 4`), СУБД автоматически найдет и безвозвратно удалит все связанные с ним записи в таблице `resume` (где `userid = 4`). Это предотвращает появление «записей-сирот», которые ссылаются на несуществующих пользователей.
2. Если в таблице `users` изменится значение первичного ключа `id` (например, с `4` на `40`), СУБД автоматически обновит значение `userid` во всех связанных строках таблицы `resume`. Это позволяет сохранять целостность связей при технических изменениях идентификаторов.
У одного пользователя может быть несколько резюме, так как в таблице **resume** поле **userid** не было обозначено уникальным, минимального количества резюме нет.
## Задание 10
Удаление записи пользователя с **userid** 6 из таблицы **users**:
```mysql
DELETE FROM `simpledb`.`users` WHERE (`id` = '6');
```
Из таблицы **resume** запись с резюме этого пользователя соответственно удалилась:
![[Pasted image 20260311025040.png]]
Изменим **id** пользователя с 5 на 50:
```mysql
UPDATE `simpledb`.`users` SET `id` = '50' WHERE (`id` = '5');