Ответ
Система управления базами данных (СУБД) — это комплекс программных средств, который позволяет создавать базы данных, управлять ими и взаимодействовать с данными, которые в них хранятся. СУБД выступает в роли посредника между пользователем (или приложением) и физической базой данных на диске.
Основные функции СУБД:
- Управление данными: Предоставление языка для определения, изменения и извлечения данных (например, SQL).
- Целостность данных: Обеспечение соблюдения правил и ограничений (например, уникальность ключей, внешние ключи).
- Управление транзакциями: Гарантия атомарности, согласованности, изоляции и долговечности операций (принцип ACID).
- Контроль доступа: Управление правами пользователей на чтение и изменение данных.
- Резервное копирование и восстановление: Создание бэкапов и восстановление данных после сбоев.
Классификация по модели данных:
- Реляционные (SQL): Данные хранятся в виде таблиц со строгой схемой. Примеры:
PostgreSQL
,MySQL
,SQLite
,Oracle
. - Нереляционные (NoSQL): Гибкие модели данных, оптимизированные под разные задачи.
- Документные:
MongoDB
,Couchbase
- Ключ-значение:
Redis
,Memcached
- Колоночные:
Cassandra
,HBase
- Документные:
Пример работы с СУБД SQLite через Python:
import sqlite3
# 1. Подключение к файлу БД (файл будет создан, если не существует)
conn = sqlite3.connect('company.db')
cursor = conn.cursor()
# 2. Создание таблицы (DDL - Data Definition Language)
cursor.execute('''
CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
position TEXT NOT NULL
)
''')
# 3. Вставка данных (DML - Data Manipulation Language)
cursor.execute("INSERT INTO employees (name, position) VALUES (?, ?)", ('Alice', 'Developer'))
cursor.execute("INSERT INTO employees (name, position) VALUES (?, ?)", ('Bob', 'Manager'))
conn.commit() # Сохранение изменений
# 4. Выборка данных (DQL - Data Query Language)
cursor.execute("SELECT name, position FROM employees WHERE position = ?", ('Developer',))
for row in cursor.fetchall():
print(row)
# 5. Закрытие соединения
conn.close()