Встречается на 33% собеседований по Python

Какие базы данных использовал в работе

В работе я использовал реляционные базы данных: MySQL, Oracle DB, PostgreSQL и SQLite. Реляционные базы данных — это система хранения и организации информации, имеющей установленные отношения, что обеспечивает возможность для быстрого доступа. Данные упорядочиваются с использованием табличных форм, содержащих сведения об их сущности: строки и столбцы представляют заранее установленные категории данных. Такой способ структурирования делает процедуру доступа к информации гибкой и быстрой, поэтому реляционные БД получили наибольшее распространение. Они поддерживают стандартный язык SQL, а также встроенные языки: DDL для описания данных и DML для работы с данными.

Как это работает

Реляционная модель организует данные в таблицы (отношения), где каждая строка — запись, а каждый столбец — атрибут. Связи между таблицами устанавливаются через ключи: первичные (PRIMARY KEY) и внешние (FOREIGN KEY). Это обеспечивает целостность данных и позволяет выполнять сложные запросы с помощью JOIN.

Пример простой схемы на Python с использованием SQLite:

python
import sqlite3

# Создание подключения к базе данных
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Создание таблицы пользователей
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE
)
''')

# Вставка данных
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ('Alice', 'alice@example.com'))
conn.commit()

# Выборка данных
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())
conn.close()

Сравнение использованных СУБД

СУБДОсобенностиТипичное применение
MySQLПопулярная, быстрая, открытаяВеб-приложения, CMS
Oracle DBМощная, масштабируемая, коммерческаяКрупные корпоративные системы
PostgreSQLРасширяемая, поддерживает JSON, строгая стандартамСложные приложения, геоданные
SQLiteВстраиваемая, файловая, без сервераМобильные приложения, прототипы

Подводные камни

  • Различия в синтаксисе: например, LIMIT в MySQL и PostgreSQL, но ROWNUM в Oracle.
  • Типы данных: AUTO_INCREMENT в MySQL, SERIAL в PostgreSQL, IDENTITY в Oracle.
  • Уровень поддержки транзакций и изоляции может отличаться.
  • SQLite не поддерживает конкурентную запись, что ограничивает её применение в высоконагруженных системах.

Когда использовать

Реляционные БД подходят, когда данные структурированы и требуют строгой целостности, а также когда нужны сложные запросы с объединениями. Для простых проектов или прототипов удобна SQLite, для веб-приложений — MySQL или PostgreSQL, для корпоративных решений — Oracle.

Коротко

  • Использовал MySQL, Oracle DB, PostgreSQL, SQLite — все они реляционные.
  • Данные хранятся в таблицах со связями через ключи.
  • SQL — стандартный язык для работы с такими БД.
  • Выбор СУБД зависит от требований проекта: от встраиваемой SQLite до масштабируемой Oracle.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы