Основные принципы построения концептуальной модели данных.
- Сущности и связи: Выявление ключевых объектов (сущностей) предметной области и определение взаимосвязей между ними.
- Атрибуты: Описание характеристик сущностей и связей.
- Независимость от реализации: Модель описывает "что" хранится, а не "как", без привязки к конкретной СУБД.
- Понятность для бизнес-пользователей: Модель должна быть легко интерпретируемой для нетехнических специалистов.
Основные принципы построения логической модели данных.
- Преобразование сущностей и связей в таблицы и внешние ключи: Концептуальная модель трансформируется в реляционную структуру.
- Нормализация: Устранение избыточности и аномалий данных путем декомпозиции таблиц на основе нормальных форм.
- Определение первичных и внешних ключей: Обеспечение уникальности записей и целостности связей.
- Спецификация типов данных: Определение конкретных типов данных для каждого атрибута.
Основные принципы построения физической модели данных.
- Оптимизация производительности: Выбор индексов, партиционирование таблиц, кластеризация данных для ускорения запросов.
- Учет особенностей СУБД: Использование специфических функций и настроек конкретной СУБД.
- Физическое размещение данных: Определение табличных пространств, файлов данных.
- Целостность данных: Реализация ограничений целостности (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK).
Структуры данных СУБД, общий подход к организации представлений, таблиц, индексов и кластеров.
- Таблицы: Основные хранилища данных, состоящие из строк (записей) и столбцов (полей).
- Индексы: Структуры для быстрого поиска и извлечения данных, ускоряют операции чтения.
- Представления (Views): Виртуальные таблицы, основанные на запросах к одной или нескольким таблицам, упрощают доступ и обеспечивают безопасность.
- Кластеры: Методы физической организации данных на диске, группирующие связанные данные для ускорения доступа.
Основные принципы структуризации и нормализации базы данных.
- Нормализация: Процесс организации столбцов и таблиц в реляционной базе данных для уменьшения избыточности данных и улучшения целостности данных.
- Декомпозиция: Разделение больших таблиц на более мелкие и управляемые.
- Целостность: Обеспечение корректности и согласованности данных.
- Устранение аномалий: Предотвращение аномалий вставки, обновления и удаления.
Data Definition Language
- Часть SQL, используемая для определения (создания, изменения, удаления) структуры базы данных.
- Команды:
CREATE
, ALTER
, DROP
, TRUNCATE
, RENAME
.
- Пример:
CREATE TABLE Customers (CustomerID INT PRIMARY KEY, Name VARCHAR(255));
Data Control Language
- Часть SQL, используемая для управления доступом к данным и привилегиями.
- Команды:
GRANT
(предоставление прав), REVOKE
(отзыв прав).
- Пример:
GRANT SELECT ON Customers TO user1;
Методы организации целостности данных.
- Целостность сущностей: Каждая строка в таблице должна быть уникально идентифицируема (первичный ключ).
- Ссылочная целостность: Связи между таблицами должны быть корректными (внешние ключи).
- Целостность домена: Значения в столбце должны соответствовать определенному типу данных и ограничениям (CHECK-ограничения).
- Пользовательская целостность: Бизнес-правила, определяемые пользователем.
Технологии передачи и обмена данными в компьютерных сетях.
- TCP/IP: Основа большинства сетевых коммуникаций, обеспечивает надежную передачу данных.
- HTTP/HTTPS: Протоколы для обмена гипертекстом в вебе.
- FTP: Протокол для передачи файлов.
- API (REST, SOAP): Интерфейсы для взаимодействия между различными программными системами.
- JSON/XML: Форматы для обмена структурированными данными.
Введение в SQL и его инструментарий.
- SQL (Structured Query Language): Стандартизированный язык для управления реляционными базами данных.
- Основные функции: Определение, манипуляция, контроль и запрос данных.
- Инструментарий: СУБД (MySQL, PostgreSQL, SQL Server, Oracle), SQL-клиенты (DBeaver, DataGrip, SSMS), IDE с поддержкой SQL.
Data Manipulation Language
- Часть SQL, используемая для манипулирования данными (вставки, обновления, удаления, извлечения).
- Команды:
INSERT
, UPDATE
, DELETE
, SELECT
.
- Пример:
INSERT INTO Customers (CustomerID, Name) VALUES (1, 'Alice');
Data Retrieval
- Процесс извлечения данных из базы данных.
- Основная команда:
SELECT
.
- Модификаторы:
FROM
, WHERE
, GROUP BY
, HAVING
, ORDER BY
, JOIN
.
- Пример:
SELECT Name, Email FROM Customers WHERE City = 'New York';
Подготовка систем для установки SQL-сервера.
- Проверка системных требований: ОС, процессор, ОЗУ, дисковое пространство.
- Установка необходимых компонентов: .NET Framework, Visual C++ Redistributable и т.д.
- Конфигурация сети: Открытие портов, настройка брандмауэра.
- Создание учетных записей: Специальные учетные записи для служб SQL Server.
- Планирование размещения файлов: Расположение файлов данных, логов и tempdb.
Установка и настройка SQL-сервера.
- Запуск инсталлятора: Выбор типа установки (новая, обновление).
- Выбор компонентов: Выбор необходимых служб (Database Engine, SSIS, SSAS, SSRS).
- Конфигурация экземпляра: Именование экземпляра, настройка путей.
- Настройка служб: Указание учетных записей для служб.
- Конфигурация аутентификации: Windows Authentication, SQL Server Authentication.
- Настройка после установки: Конфигурация памяти, сети, резервного копирования.
Распределённые базы данных
- Базы данных, физически расположенные на нескольких узлах, но логически представляющие единую базу данных.
- Типы: Гомогенные (одинаковая СУБД) и гетерогенные (разные СУБД).
- Проблемы: Управление распределенными транзакциями, обеспечение согласованности данных, сложность администрирования.
- Преимущества: Масштабируемость, отказоустойчивость, доступность.
NoSQL СУБД
- Non-relational СУБД, предназначенные для работы с большими объемами неструктурированных или слабоструктурированных данных.
- Типы: Документ-ориентированные (MongoDB), колоночные (Cassandra), ключ-значение (Redis), графовые (Neo4j).
- Преимущества: Горизонтальное масштабирование, гибкая схема, высокая производительность для определенных типов задач.
- Отличия от SQL: Отсутствие строгой схемы, поддержка ACID-транзакций не всегда гарантируется, другой подход к запросам.
Transaction Control
- Управление транзакциями, обеспечивающее атомарность, согласованность, изолированность и долговечность (ACID-свойства) операций с данными.
- Команды:
BEGIN TRANSACTION
(или START TRANSACTION
), COMMIT
(подтверждение), ROLLBACK
(откат).
- Пример:
BEGIN TRANSACTION; UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1; UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 2; COMMIT;
Наборы инструкций, хранимые процедуры
- Хранимая процедура: Именованный блок SQL-кода, хранящийся в базе данных и выполняемый по запросу.
- Преимущества: Повышение производительности (компиляция один раз), безопасность, инкапсуляция логики, уменьшение сетевого трафика.
- Параметры: Могут принимать входные и возвращать выходные параметры.
Обработка событий, триггеры
- Триггер: Специальный вид хранимой процедуры, который автоматически запускается (срабатывает) в ответ на определенные события в базе данных (INSERT, UPDATE, DELETE).
- Назначение: Поддержание целостности данных, реализация бизнес-правил, аудит изменений.
- Типы:
BEFORE
(до события), AFTER
(после события).
Пользовательские функции
- Именованный блок SQL-кода, который принимает входные параметры, выполняет вычисления и возвращает одно скалярное значение или таблицу.
- Отличия от процедур: Функции могут использоваться в выражениях SQL-запросов (
SELECT
, WHERE
, HAVING
).
- Типы: Скалярные (возвращают одно значение), табличные (возвращают таблицу).
Импорт и экспорт данных
- Импорт: Перемещение данных из внешнего источника (CSV, XML, Excel, другая БД) в базу данных.
- Экспорт: Перемещение данных из базы данных во внешний файл или другую систему.
- Инструменты: SQL Server Integration Services (SSIS), bcp, SQLCMD, мастера импорта/экспорта в СУБД
Способы контроля доступа к данным и управления привилегиями.
- Аутентификация: Проверка личности пользователя (логин/пароль).
- Авторизация: Определение прав доступа пользователя к объектам базы данных (таблицам, представлениям, процедурам).
- Роли: Группировка привилегий для упрощения управления.
- GRANT/REVOKE: Команды DCL для предоставления/отзыва прав.
Алгоритм проведения процедуры резервного копирования. Модели восстановления данных.
- Алгоритм: Планирование (частота, тип), выбор места хранения, выполнение (полное, дифференциальное, журнальное), верификация, мониторинг.
- Модели восстановления (SQL Server):
- Full (Полная): Все изменения данных записываются в журнал транзакций. Возможно восстановление на любой момент времени.
- Bulk-Logged (Массовая регистрация): Оптимизирована для операций массовой загрузки данных, которые регистрируются минимально.
- Simple (Простая): Журнал транзакций автоматически усекается, восстановление возможно только до последнего полного или дифференциального бэкапа.
Аутентификация и авторизация пользователей.
- Аутентификация: Процесс подтверждения подлинности пользователя или процесса, который пытается получить доступ к системе. Обычно включает проверку логина и пароля.
- Авторизация: Процесс определения того, какие ресурсы пользователь имеет право использовать и какие операции он может выполнять после успешной аутентификации. Основывается на предоставленных привилегиях и ролях.