📌 Роли пользователей баз данных
- Пользователь БД – работает с данными в рамках предоставленных прав.
- Проектировщик – создает таблицы, права доступа и структуру БД.
- Программист – пишет код, в т.ч. хранимые процедуры.
- Администратор – обеспечивает стабильную и безопасную работу для всех пользователей.
🧑💼 Типы администраторов баз данных (DBA)
- Системный администратор – отвечает за резервное копирование, восстановление и производительность.
- Архитектор БД – разрабатывает и оптимизирует структуру и интерфейсы базы.
- Аналитик БД – проводит анализ, прогнозирование, сбор и загрузку данных.
- Администратор хранилища данных – следит за корректностью расчётов, доступом и логикой хранилища.
Дополнительно: программист БД, аналитик производительности, админ web-узла и др.
❓ Вопрос
Администратор базы данных (DBA) — это владелец базы данных?
👉 Нет, не обязательно.
💼 Кто такой владелец базы данных?
Владелец — это создатель базы данных или тот, кто официально назначен владельцем.
У него есть максимальные права на эту БД: он может:
- полностью управлять структурой,
- удалять всё или передавать права другим,
- менять администратора или ограничивать его действия.
📌 Пример в жизни:
Владелец — как хозяин квартиры. Он может:
- дать кому-то ключи,
- пустить администратора,
- продать квартиру или поменять замки.
🧑🔧 Кто такой администратор базы данных (DBA)?
Администратор — это специалист, который обслуживает базу данных. Он не обязательно её создавал и не обязательно её “владелец”.
💡 Его задача — следить, чтобы всё работало:
- база была доступна,
- данные защищены,
- пользователи имели нужные права,
- всё работало быстро и безопасно.
📌 Пример:
Администратор — это управляющий многоквартирным домом.
Он:
- следит за системой отопления,
- вызывает ремонтников,
- заботится о безопасности.
Но он не владеет домом — он работает в интересах владельцев.
⚖️ Разница: Владелец vs Администратор
| Характеристика | Владелец БД | Администратор БД (DBA) |
|---|---|---|
| Кто это? | Создатель или юридический владелец | Технический специалист |
| Может удалить базу? | ✅ Да | ❌ Не всегда |
| Отвечает за обслуживание? | ❌ Не обязательно | ✅ Да |
| Контролирует политику прав | ✅ Полностью | ✅ Частично или по поручению |
| Получает доступ по умолчанию | ✅ Всегда | ❌ Только если назначен |
🧠 Почему это важно понимать?
Потому что:
- Владелец — это чаще руководитель проекта, заказчик, главный пользователь.
- Администратор — это исполнитель, который настраивает, обновляет и охраняет базу.
Иногда в небольших проектах один человек может быть и владельцем, и админом, но в больших компаниях эти роли всегда разделены.
💬 Итого:
Администратор базы данных не обязан быть владельцем.
Он может управлять БД только в рамках полномочий, которые ему дал владелец или организация.
Владелец – это “глава”, админ – “техник”, обеспечивающий её работоспособность.
🔧 Задачи администрирования баз данных
- Первоначальная загрузка
Проектирование форм ввода, загрузка, контроль, создание модулей. - Защита от несанкционированного доступа
- Регистрация пользователей, назначение паролей.
- Ограничение доступа к данным (GRANT, REVOKE).
- Шифрование, тестирование защиты.
- Защита от потери данных
- Резервное копирование.
- Восстановление после сбоев.
- Работа с пользователями
- Обучение, консультирование, сбор обратной связи.
- Анализ эффективности и развитие системы.
🔐 Основные задачи администратора
- Настройка политики доступа.
- Обеспечение безопасности и производительности базы данных.
🛡 Потребности безопасности
- Конфиденциальность (Confidentiality)
– Доступ только уполномоченным.
– Управление черезGRANT,REVOKE. - Доступность (Availability)
– Обеспечение бесперебойного доступа.
– Использование RAID, резервное копирование. - Целостность (Integrity)
– Данные из надежных источников, не искажены.
– Включает действительность, согласованность, правильность.
⚠️ Риски безопасности
- Человеческий фактор → все аспекты (Ц, Д, К).
- Физические сбои (оборудование) → Целостность, доступность.
- Сбои в ОС → Ц, Д, К.
- Ошибки СУБД → К, Ц, Д.
📝 Домашнее задание
📘 Ключи в реляционных базах данных
🔑 1. Primary Key (Первичный ключ)
Определение: Поле (или комбинация полей), однозначно идентифицирующее каждую строку в таблице.
Особенности:
- Не может содержать
NULL - Должен быть уникальным
Пример:
В таблице Students поле StudentID может быть первичным ключом.
sqlКопироватьРедактироватьCREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100)
);
🌍 2. Foreign Key (Внешний ключ)
Определение: Поле, которое ссылается на первичный ключ в другой таблице.
Особенности:
- Обеспечивает ссылочную целостность
- Может содержать
NULL, если связь не обязательна
Пример:
sqlКопироватьРедактироватьCREATE TABLE Orders (
OrderID INT PRIMARY KEY,
StudentID INT,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
🧭 3. Unique Key (Уникальный ключ)
Определение: Поле, значения которого должны быть уникальны, но может содержать NULL.
Особенности:
- Может быть несколько уникальных ключей в таблице
NULLдопустим, в отличие от первичного ключа
Пример:
sqlКопироватьРедактироватьCREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Email VARCHAR(100) UNIQUE
);
🎯 4. Simple Key (Простой ключ)
Определение: Ключ, состоящий из одного поля.
Пример: EmployeeID — простой ключ.
🧩 5. Composite Key (Составной ключ)
Определение: Ключ, состоящий из двух или более полей, совместно образующих уникальное значение.
Пример:
sqlКопироватьРедактироватьCREATE TABLE CourseRegistrations (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID)
);
🧱 6. Compound Key (Сложный ключ)
Определение: По сути синоним Composite Key. Однако в некоторых источниках подчеркивают, что составные ключи включают поля, которые могут быть ключами по отдельности.
💡 7. Superkey (Суперкюч)
Определение: Любая комбинация полей, которая однозначно идентифицирует строку. Может содержать лишние поля.
Пример:(StudentID, Name) — суперкюч, если StudentID уже уникален.
🎓 8. Candidate Key (Кандидат в ключи)
Определение: Минимальный суперключ. Может быть выбран в качестве Primary Key.
Особенности:
- Все поля, которые могут быть Primary Key
- Не содержит лишних данных
Пример:StudentID и Email — оба кандидаты, если уникальны.
🧪 9. Alternate Key (Альтернативный ключ)
Определение: Любой кандидат, не выбранный как Primary Key.
Пример:
Если StudentID — Primary Key, то Email будет Alternate Key.
📌 Таблица-сравнение
| Тип ключа | Уникальность | NULL допустим | Составной | Связь между таблицами |
|---|---|---|---|---|
| Primary Key | ✅ Да | ❌ Нет | ✅ Может | ❌ Нет |
| Foreign Key | ❌ Нет | ✅ Может | ✅ Может | ✅ Да |
| Unique Key | ✅ Да | ✅ Может | ✅ Может | ❌ Нет |
| Simple Key | ✅ Да | ❌ Обычно нет | ❌ Нет | ❌ Нет |
| Composite Key | ✅ Да | ❌ Обычно нет | ✅ Да | ❌ Нет |
| Superkey | ✅ Да | ❌ Нет | ✅ Может | ❌ Нет |
| Candidate Key | ✅ Да | ❌ Нет | ✅ Может | ❌ Нет |
| Alternate Key | ✅ Да | ❌ Нет | ✅ Может | ❌ Нет |
🔄 COMMIT, ROLLBACK, ROLLFORWARD — это команды для управления транзакциями в базах данных
Что такое транзакция?
Представь, ты переводишь деньги через онлайн-банк. Сначала система должна:
- Списать деньги с одного счёта.
- Зачислить деньги на другой счёт.
Обе операции должны выполниться вместе — это и есть транзакция. Если произойдёт ошибка после первого шага, нужно всё отменить. А если всё прошло успешно, надо подтвердить.
Теперь разберём команды:
✅ COMMIT — «Подтвердить изменения»
Представь, ты делаешь покупки в интернет-магазине и нажимаешь кнопку «Оформить заказ». До этого момента ты мог что-то менять, отменять, выбирать. Но после нажатия кнопки — всё подтверждено, заказ отправлен, изменения сохранены.
Так и в БД: COMMIT говорит:
«Всё, что сделано до этого момента — сохранить навсегда.»
Зачем это нужно?
- Чтобы зафиксировать успешные действия.
- Чтобы другие пользователи видели эти изменения.
Пример в жизни базы данных:
Ты добавил 10 новых клиентов в таблицу. Всё проверил. Вводишь COMMIT — и они официально сохраняются в системе.
❌ ROLLBACK — «Откатить назад»
Это как кнопка «Отмена» или «Назад». Если ты заметил ошибку до сохранения (COMMIT), можно откатить все изменения и вернуть базу в исходное состояние.
Пример:
Ты случайно удалил таблицу или обновил не те строки — вводишь ROLLBACK, и система говорит:
«Окей, забудем, что ты это делал.»
Очень полезно при ошибках или неправильных операциях, пока ты их ещё не подтвердил.
🔁 ROLLFORWARD — «Восстановить данные после сбоя»
Это используется не вручную, а обычно при восстановлении после аварии.
Допустим:
- Ты делал резервное копирование в 10:00.
- В 12:00 что-то сломалось.
Ты можешь восстановить данные из резервной копии (состояние на 10:00), а затем ROLLFORWARD применит все изменения, которые произошли между 10:00 и 12:00, используя журнал транзакций.
То есть:
«Мы возвращаем базу в живое состояние, как будто ничего не случилось.»
🧠 Data Mining — поиск закономерностей в данных
Представь огромную таблицу в Excel с миллионами строк — кто, что, где и когда покупал.
Человек не сможет увидеть закономерности, но компьютер может!
Data Mining (в переводе — «добыча данных») — это процесс, при котором система автоматически ищет интересные связи, закономерности, повторяющиеся шаблоны.
📌 Примеры:
- Магазины: «Те, кто покупает кошачий корм, часто покупают и игрушки для кошек.»
- Банки: «Клиенты, взявшие кредит на авто, через год чаще берут страховку.»
Такой анализ помогает принимать решения, строить прогнозы, делать рекламу точнее.
🗄 Data Warehouse (Хранилище данных) — как большой склад для аналитики
Это не обычная база, где идут ежедневные операции.
Это — как огромный архив, куда стекаются данные из разных источников для анализа.
Представь:
- У компании есть отдел продаж, бухгалтерия, HR, склад.
- Все они работают в своих программах.
- Но руководству нужно видеть всё в одном месте: отчёты, тренды, сравнение по годам.
Data Warehouse:
- собирает данные из разных систем (например, раз в день),
- чистит, объединяет, структурирует,
- хранит в формате, удобном для отчётов.
📊 На основе этих данных можно строить:
- диаграммы,
- отчёты,
- прогнозы.
💡 В кратком виде:
| Термин | Что это | Пример |
|---|---|---|
| COMMIT | Сохраняет изменения | «Оформить заказ» |
| ROLLBACK | Откатывает изменения | «Отмена ввода» |
| ROLLFORWARD | Восстанавливает данные после сбоя | «Вернуть после аварии» |
| Data Mining | Поиск скрытых закономерностей в данных | «Анализ покупательских привычек» |
| Data Warehouse | Большое хранилище для аналитики | «Центр сбора данных всей компании» |

