SobesLab

Junior

  1. Что такое база данных? Junior

    База данных — это организованная совокупность данных, управляемая с помощью системы управления базами данных (СУБД), которая обеспечивает удобный доступ и манипуляцию с информацией, поддерживая разные структуры, такие как реляционные и нереляционные модели.

    Посмотреть ответ полностью
  2. Что такое СУБД? Junior

    Система управления базами данных (СУБД) — это программное обеспечение для хранения, управления и обработки данных, обеспечивающее удобный доступ, целостность и безопасность информации. Она использует язык SQL для выполнения операций с данными и может быть реляционной или нереляционной, в зависимости от структуры данных.

    Посмотреть ответ полностью
  3. Какие типы СУБД вы знаете? Junior

    Системы управления базами данных (СУБД) делятся на реляционные, нереляционные, объектно-ориентированные и графовые, каждая из которых имеет свои особенности, модели данных и области применения, что позволяет выбирать подходящий тип в зависимости от требований проекта.

    Посмотреть ответ полностью
  4. Что такое SQL? Junior

    SQL — это стандартный язык для работы с реляционными базами данных, который позволяет выполнять операции по созданию, изменению, удалению и извлечению данных, используя команды для определения структуры, манипуляции данными и управления доступом.

    Посмотреть ответ полностью
  5. В чем разница между SQL и MySQL? Junior

    SQL — это язык программирования для работы с реляционными базами данных, а MySQL — это популярная система управления базами данных, использующая SQL для выполнения запросов.

    Посмотреть ответ полностью
  6. Что означает NULL в SQL? Junior

    NULL в SQL обозначает отсутствие данных и используется для указания, что значение не задано, не применимо или неизвестно; его нельзя сравнивать обычными операторами, вместо этого применяются специальные операторы IS NULL и IS NOT NULL.

    Посмотреть ответ полностью
  7. Что такое DDL (Data Definition Language)? Junior

    DDL (язык определения данных) — это подмножество SQL, используемое для создания, изменения и удаления объектов базы данных, таких как таблицы и индексы, и включает команды CREATE, ALTER, DROP и TRUNCATE, позволяя управлять структурой базы данных.

    Посмотреть ответ полностью
  8. Что такое DML (Data Manipulation Language)? Junior

    DML (Data Manipulation Language) — это подмножество SQL, используемое для выполнения операций с данными в базе данных, таких как вставка, обновление и удаление записей; оно обеспечивает целостность данных через транзакции и точность операций с помощью условий.

    Посмотреть ответ полностью
  9. Что такое DCL (Data Control Language)? Junior

    DCL (Data Control Language) — это подмножество SQL, отвечающее за управление правами доступа и привилегиями пользователей к данным в базе данных, обеспечивая безопасность и контроль доступа через команды GRANT и REVOKE.

    Посмотреть ответ полностью
  10. Что такое TCL (Transaction Control Language)? Junior

    TCL (Transaction Control Language) — это подмножество SQL, управляющее транзакциями в базе данных, обеспечивая целостность и согласованность данных через команды, такие как COMMIT, ROLLBACK и SAVEPOINT.

    Посмотреть ответ полностью
  11. Что такое транзакция? Junior

    Транзакция — это последовательность операций, выполняемых как единое целое, обеспечивающая целостность данных: либо все операции завершаются успешно, либо никакие изменения не фиксируются. Главное — это свойства атомарности, согласованности, изолированности и долговечности, которые помогают избежать неконсистентности данных при выполнении связанных операций.

    Посмотреть ответ полностью
  12. Что такое нормализация данных? Junior

    Нормализация данных — это процесс организации данных в реляционных базах для уменьшения избыточности и повышения целостности, который включает несколько форм, таких как 1NF, 2NF и 3NF, и помогает структурировать данные для упрощения их управления и предотвращения дублирования.

    Посмотреть ответ полностью
  13. Что такое денормализация и зачем она применяется? Junior

    Денормализация — это процесс упрощения структуры данных в реляционных базах, который уменьшает количество связанных таблиц для ускорения выполнения запросов и оптимизации чтения, что особенно полезно в аналитических системах.

    Посмотреть ответ полностью
  14. Какие существуют типы отношений между таблицами? Junior

    Существует три основных типа отношений между таблицами: один к одному, один ко многим и многие ко многим. Эти отношения помогают эффективно структурировать данные, минимизировать избыточность и обеспечивать целостность данных в реляционных базах.

    Посмотреть ответ полностью
  15. Что такое первичный ключ? Junior

    Первичный ключ — это уникальный идентификатор для каждой записи в таблице реляционной базы данных, который обеспечивает целостность данных, не допускает пустых значений и может состоять из одного или нескольких полей.

    Посмотреть ответ полностью
  16. Что такое внешний ключ? Junior

    Внешний ключ — это ссылка между таблицами в реляционных базах данных, обеспечивающая целостность данных, позволяя одной таблице ссылаться на первичный ключ другой. Он помогает поддерживать согласованность записей и упрощает выполнение запросов, предотвращая создание несуществующих связей.

    Посмотреть ответ полностью
  17. В чем разница между первичным и внешним ключом? Junior

    Первичный ключ уникально идентифицирует записи в таблице и не может содержать NULL, тогда как внешний ключ ссылается на первичный ключ другой таблицы для создания связей и может содержать повторяющиеся значения или NULL.

    Посмотреть ответ полностью
  18. Что такое уникальный ключ? Junior

    Уникальный ключ — это ограничение в базе данных, обеспечивающее уникальность значений в определённом столбце или комбинации столбцов, что предотвращает дублирование записей. Он может содержать одно значение NULL и поддерживает индексацию для повышения производительности запросов.

    Посмотреть ответ полностью
  19. Чем отличается PRIMARY KEY от UNIQUE? Junior

    Первичный ключ уникально идентифицирует записи в таблице и не допускает NULL значений, в то время как уникальное ограничение также обеспечивает уникальность, но может содержать одно NULL значение и допускает несколько таких ограничений в таблице.

    Посмотреть ответ полностью
  20. Что такое составной ключ? Junior

    Составной ключ — это комбинация двух или более полей в таблице базы данных, которая обеспечивает уникальную идентификацию записей и поддерживает целостность данных. Он используется для предотвращения дубликатов и часто применяется в отношениях "многие ко многим". Правильное проектирование составного ключа важно для эффективного управления данными.

    Посмотреть ответ полностью
  21. Может ли таблица иметь более одного первичного ключа? Junior

    Таблица может иметь только один первичный ключ, который обеспечивает уникальную идентификацию каждой записи и не может содержать NULL-значения; для уникальности по нескольким полям используется составной первичный ключ.

    Посмотреть ответ полностью
  22. Может ли таблица иметь несколько внешних ключей? Junior

    Таблица может иметь несколько внешних ключей, что позволяет связывать её с несколькими другими таблицами, обеспечивая ссылочную целостность данных и поддерживая сложные взаимосвязи между ними.

    Посмотреть ответ полностью
  23. Что такое ограничение (constraint) в базе данных? Junior

    Ограничение в базе данных — это правило, которое обеспечивает целостность и корректность данных в таблице, контролируя ввод и изменения информации, включая типы, такие как NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY и CHECK.

    Посмотреть ответ полностью
  24. Приведите примеры ограничений в SQL. Junior

    Ограничения в SQL, такие как NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK и DEFAULT, обеспечивают целостность и корректность данных в базе, задавая правила для значений в столбцах таблиц и предотвращая ошибки при работе с базами данных.

    Посмотреть ответ полностью
  25. Для чего используется ограничение NOT NULL? Junior

    Ограничение NOT NULL в SQL предотвращает наличие значений NULL в определённых полях таблицы, что обеспечивает целостность данных, упрощает логику приложения и может улучшать производительность запросов.

    Посмотреть ответ полностью
  26. Для чего используется ограничение UNIQUE? Junior

    Ограничение UNIQUE в SQL гарантирует уникальность значений в одном или нескольких столбцах таблицы, предотвращая дублирование данных и поддерживая целостность информации. Оно допускает наличие нескольких значений NULL и может применяться к комбинации столбцов.

    Посмотреть ответ полностью
  27. Для чего используется ограничение CHECK? Junior

    Ограничение CHECK в SQL обеспечивает целостность данных, задавая условия для значений в столбцах таблицы, что помогает гарантировать соответствие данных определённым критериям и предотвращает ввод некорректной информации.

    Посмотреть ответ полностью
  28. Для чего используется ограничение DEFAULT? Junior

    Ограничение DEFAULT в SQL задает стандартное значение для столбца при добавлении новой записи, если явное значение не указано, что упрощает вставку данных и поддерживает целостность данных, предотвращая появление пустых значений.

    Посмотреть ответ полностью
  29. Что такое индекс в базе данных? Junior

    Индекс в базе данных — это объект, который ускоряет поиск и сортировку данных, действуя как указатель на строки таблиц. Он позволяет значительно сократить время выполнения запросов, но требует внимательного управления для оптимизации производительности и минимизации затрат на обновление.

    Посмотреть ответ полностью
  30. Как индексы влияют на производительность SELECT запросов? Junior

    Индексы в базе данных ускоряют выполнение SELECT запросов, позволяя быстро находить записи без полного сканирования таблицы, что значительно снижает время выполнения операций выборки и оптимизирует сортировку и группировку данных.

    Посмотреть ответ полностью
  31. Как наличие индексов влияет на скорость операций INSERT/UPDATE/DELETE? Junior

    Индексы ускоряют выборку данных, но могут замедлять операции вставки, обновления и удаления, так как требуют обновления соответствующих структур при каждом изменении. Важно оптимизировать количество и использование индексов в зависимости от потребностей базы данных.

    Посмотреть ответ полностью
  32. В чем разница между операторами DELETE и TRUNCATE? Junior

    DELETE используется для удаления конкретных строк из таблицы с возможностью указания условий и отката, в то время как TRUNCATE очищает всю таблицу быстро и без возможности восстановления, не вызывая триггеры и не проверяя ограничения.

    Посмотреть ответ полностью
  33. В чем разница между TRUNCATE и DROP? Junior

    TRUNCATE удаляет все строки из таблицы, сохраняя её структуру и быстро выполняясь, тогда как DROP полностью удаляет таблицу и все её данные без возможности восстановления.

    Посмотреть ответ полностью
  34. В чем разница между INNER JOIN, LEFT JOIN и RIGHT JOIN? Junior

    INNER JOIN возвращает только совпадающие строки из обеих таблиц, LEFT JOIN включает все строки из левой таблицы с соответствующими из правой или NULL, а RIGHT JOIN — все строки из правой таблицы с соответствующими из левой или NULL.

    Посмотреть ответ полностью
  35. Что такое FULL OUTER JOIN? Junior

    FULL OUTER JOIN в SQL объединяет строки из двух таблиц, возвращая все данные из обеих, даже если нет совпадений, при этом недостающие значения заполняются NULL. Это полезно для получения полной картины данных, особенно в аналитике, но может увеличивать объем возвращаемых данных и влиять на производительность.

    Посмотреть ответ полностью
  36. Что такое CROSS JOIN? Junior

    CROSS JOIN в SQL объединяет все строки из одной таблицы с каждой строкой другой, создавая декартово произведение. Это полезно для получения всех возможных комбинаций данных, но может привести к большому количеству строк и негативно сказаться на производительности, поэтому следует использовать с осторожностью.

    Посмотреть ответ полностью
  37. Что такое SELF JOIN? Junior

    SELF JOIN — это соединение таблицы с самой собой, позволяющее сравнивать строки или извлекать взаимосвязанные данные, например, для отображения сотрудников и их менеджеров. Используется псевдонимы для различия строк, что позволяет эффективно обрабатывать и извлекать связанные данные из одной таблицы.

    Посмотреть ответ полностью
  38. Что такое NATURAL JOIN? Junior

    NATURAL JOIN в SQL автоматически объединяет таблицы по всем столбцам с одинаковыми именами, упрощая запросы и устраняя дублирующие столбцы. Однако его следует использовать с осторожностью, чтобы избежать неожиданных результатов из-за изменения структуры таблиц.

    Посмотреть ответ полностью
  39. Чем JOIN отличается от UNION? Junior

    JOIN объединяет строки из разных таблиц на основе связанных столбцов, тогда как UNION комбинирует результаты нескольких SELECT запросов, возвращая уникальные строки.

    Посмотреть ответ полностью
  40. Что такое UNION и чем отличается UNION от UNION ALL? Junior

    Операция UNION в SQL объединяет результаты нескольких SELECT-запросов, удаляя дубликаты, тогда как UNION ALL также объединяет результаты, но сохраняет все дубликаты, что может улучшить производительность.

    Посмотреть ответ полностью
  41. Для использования UNION какие требования к результирующим наборам данных? Junior

    Для использования UNION в SQL необходимо, чтобы все объединяемые запросы возвращали одинаковое количество столбцов с совместимыми типами данных и в одном и том же порядке.

    Посмотреть ответ полностью
  42. Для чего используется ключевое слово DISTINCT? Junior

    Ключевое слово DISTINCT в SQL позволяет извлекать уникальные записи из таблиц, удаляя дубликаты в результатах запроса. Его следует использовать осознанно, так как это может снизить производительность запросов.

    Посмотреть ответ полностью
  43. Что делает оператор ORDER BY? Junior

    Оператор ORDER BY в SQL используется для сортировки результатов запросов по одному или нескольким столбцам в порядке возрастания или убывания, что помогает представлять данные в удобочитаемом виде.

    Посмотреть ответ полностью
  44. Как работает оператор LIKE? Какие существуют wildcard-символы? Junior

    Оператор LIKE в SQL используется для поиска строковых значений по шаблону с помощью символов подстановки: %, заменяющего любое количество символов, и _, заменяющего один символ. Это позволяет эффективно находить частичные совпадения, но следует учитывать производительность и регистронезависимость в зависимости от настроек базы данных.

    Посмотреть ответ полностью
  45. Для чего используется оператор GROUP BY? Junior

    Оператор GROUP BY в SQL используется для агрегирования данных, объединяя строки с одинаковыми значениями в указанных столбцах и позволяя применять агрегатные функции, такие как SUM, AVG и COUNT, что полезно для извлечения статистической информации из больших наборов данных.

    Посмотреть ответ полностью
  46. Назовите три агрегатные функции SQL и кратко опишите их. Junior

    Агрегатные функции в SQL, такие как COUNT, SUM и AVG, выполняют вычисления над наборами данных и возвращают одно значение, что позволяет получать сводную информацию из больших объемов данных. COUNT подсчитывает строки, SUM вычисляет сумму числовых значений, а AVG определяет среднее значение, игнорируя NULL.

    Посмотреть ответ полностью
  47. Что такое подзапрос (subquery)? Junior

    Подзапрос — это запрос внутри другого запроса, позволяющий выполнять сложные операции с данными, улучшая читаемость кода. Он может использоваться для извлечения, фильтрации или агрегации данных, и бывает коррелированным или некоррелированным в зависимости от того, ссылается ли он на внешние данные.

    Посмотреть ответ полностью
  48. Являются ли индексы и ключи одним и тем же? (ключ vs индекс) Junior

    Индексы и ключи — это разные концепции в базах данных: индексы ускоряют выборку данных, а ключи уникально идентифицируют записи и обеспечивают целостность данных.

    Посмотреть ответ полностью
  49. Как обеспечить уникальность записей в таблице? Junior

    Уникальность записей в таблице обеспечивается с помощью уникальных ключей, первичных ключей и уникальных индексов, что предотвращает дублирование данных и поддерживает целостность информации. Важно правильно выбирать поля для этих ограничений, учитывая производительность и необходимость уникальности.

    Посмотреть ответ полностью
  50. Чем база данных отличается от электронной таблицы (например, Excel)? Junior

    База данных — это структурированное хранилище данных, оптимизированное для работы с большими объемами и поддерживающее многопользовательский доступ, в отличие от электронной таблицы, которая более гибка, но ограничена по объему и функциональности.

    Посмотреть ответ полностью
  51. Что такое псевдоним (alias) таблицы или столбца в SQL? Junior

    Псевдоним в SQL — это временное имя для таблицы или столбца, которое улучшает читаемость запросов и упрощает работу с длинными именами. Он не изменяет реальные имена в базе данных, но делает код более понятным и компактным.

    Посмотреть ответ полностью
  52. Как ограничить количество строк, возвращаемых запросом? Junior

    Для ограничения количества строк в SQL можно использовать LIMIT в MySQL и PostgreSQL, TOP в SQL Server или FETCH FIRST в стандартном SQL. Эти методы позволяют контролировать объем возвращаемых данных, что особенно полезно при работе с большими таблицами.

    Посмотреть ответ полностью
  53. Какой порядок сортировки используется по умолчанию в ORDER BY? Junior

    По умолчанию в SQL данные сортируются в возрастающем порядке при использовании оператора ORDER BY, что означает упорядочение значений от наименьшего к наибольшему; при необходимости порядок можно изменить, добавив DESC для убывающей сортировки.

    Посмотреть ответ полностью
  54. В чем разница между COUNT(*) и COUNT(1)? Junior

    COUNT() подсчитывает общее количество строк в результате запроса, включая строки с NULL, тогда как COUNT(1) делает то же самое, но использует фиксированное значение 1 для каждой строки; в большинстве случаев они дают одинаковый результат, но COUNT() считается более интуитивно понятным.

    Посмотреть ответ полностью
  55. Чем отличаются типы данных CHAR и VARCHAR? Junior

    CHAR — это тип данных фиксированной длины, который всегда занимает заданное количество символов, даже если строка короче, тогда как VARCHAR — это тип переменной длины, который хранит только фактическое количество символов, что делает его более экономичным по памяти. Выбор между ними зависит от конкретных требований к данным: CHAR лучше использовать для фиксированных значений, а VARCHAR — для...

    Посмотреть ответ полностью
  56. Как проверить, является ли значение NULL (пустым) в SQL? Junior

    В SQL для проверки значения на NULL используются операторы IS NULL и IS NOT NULL, так как NULL обозначает отсутствие значения, что отличается от пустой строки или нуля. Эти проверки важны для корректной обработки данных и предотвращения неожиданных результатов в запросах.

    Посмотреть ответ полностью
  57. В чем разница между DELETE и DROP? Junior

    DELETE удаляет данные из существующих строк в таблице, не затрагивая её структуру и позволяя восстановление, в то время как DROP полностью удаляет объект базы данных вместе с его данными и структурой, восстановление после этой операции невозможно.

    Посмотреть ответ полностью
  58. Для каких задач используется SQL? Junior

    SQL — это язык программирования для работы с реляционными базами данных, который позволяет создавать и изменять структуру баз данных, управлять данными, выполнять запросы, настраивать доступ и управлять транзакциями.

    Посмотреть ответ полностью
  59. В чем разница между базой данных и СУБД? Junior

    База данных — это организованная структура для хранения данных, тогда как Система управления базами данных (СУБД) — это программное обеспечение, позволяющее управлять и взаимодействовать с этими данными. СУБД обеспечивает выполнение запросов, изменение данных и защиту информации.

    Посмотреть ответ полностью
  60. Что делает команда SELECT? Junior

    Команда SELECT в SQL используется для извлечения данных из таблиц, позволяет выбирать конкретные столбцы, фильтровать и сортировать результаты, а также выполнять агрегацию и группировку данных.

    Посмотреть ответ полностью
  61. Если одна таблица содержит m записей, а другая n записей, сколько строк вернёт их CROSS JOIN? Junior

    CROSS JOIN возвращает все возможные комбинации строк из двух таблиц, что приводит к количеству строк, равному произведению количества записей в обеих таблицах (m * n). Этот тип соединения следует использовать осторожно, так как он может создавать большие объемы данных.

    Посмотреть ответ полностью

Middle

  1. В чем разница между WHERE и HAVING? Middle

    WHERE фильтрует строки до агрегации, работая с отдельными записями, тогда как HAVING фильтрует результаты после агрегации и используется с агрегатными функциями.

    Посмотреть ответ полностью
  2. Что такое представление (view) в базе данных? Middle

    Представление в базе данных — это виртуальная таблица, формируемая на основе SQL-запроса, которая не хранит данные, а позволяет упрощать доступ к информации, обеспечивать безопасность и изолировать изменения в структуре базовых таблиц.

    Посмотреть ответ полностью
  3. Что такое хранимая процедура и для чего она используется? Middle

    Хранимая процедура — это набор SQL-операторов, хранящихся в базе данных, который позволяет выполнять сложные операции, улучшает производительность за счет снижения сетевого трафика и повышает безопасность, позволяя использовать параметры и обрабатывать ошибки.

    Посмотреть ответ полностью
  4. Что такое коррелированный подзапрос? Middle

    Коррелированный подзапрос — это вложенный запрос, который использует значения из внешнего запроса и выполняется для каждой строки внешнего запроса, что делает его зависимым от внешних данных. Они могут быть менее производительными, поэтому рекомендуется использовать их с осторожностью и рассматривать альтернативы, такие как JOIN.

    Посмотреть ответ полностью
  5. Что такое CTE (Common Table Expression)? Middle

    CTE (Common Table Expression) — это временная таблица в SQL, создаваемая с помощью оператора WITH, которая упрощает сложные запросы, улучшает читаемость кода и позволяет повторно использовать наборы данных в последующих запросах.

    Посмотреть ответ полностью
  6. В чем разница между кластеризованным и некластеризованным индексом? Middle

    Кластеризованный индекс сортирует и хранит данные в таблице по одному критерию, обеспечивая быстрый доступ, в то время как некластеризованный индекс хранит указатели на данные, что позволяет создавать несколько индексов на одной таблице, но требует дополнительных операций для доступа к данным.

    Посмотреть ответ полностью
  7. Что такое составной (комбинированный) индекс? Middle

    Составной индекс — это индекс в базе данных, который объединяет несколько столбцов и ускоряет выполнение запросов, использующих эти поля. Его эффективность зависит от порядка столбцов и их селективности, что позволяет оптимизировать фильтрацию и сортировку данных.

    Посмотреть ответ полностью
  8. Что такое покрывающий индекс? Middle

    Покрывающий индекс — это индекс, который включает все столбцы, необходимые для выполнения запроса, позволяя извлекать данные напрямую из индекса без обращения к основной таблице, что значительно ускоряет выполнение запросов и снижает затраты на операции ввода-вывода.

    Посмотреть ответ полностью
  9. Что такое план выполнения SQL-запроса и зачем он нужен? Middle

    План выполнения SQL-запроса — это инструкции, которые СУБД использует для извлечения данных, оптимизируя производительность запросов и позволяя диагностировать проблемы. Он описывает порядок операций, индексы и ресурсы, необходимые для выполнения запроса.

    Посмотреть ответ полностью
  10. Назовите свойства ACID транзакции. Middle

    Свойства ACID обеспечивают надежность транзакций в базах данных, гарантируя, что они атомарны, согласованы, изолированы и долговечны, что критически важно для сохранения целостности данных в многопользовательских системах.

    Посмотреть ответ полностью
  11. Что такое SQL-инъекция? Middle

    SQL-инъекция — это уязвимость веб-приложений, позволяющая злоумышленникам выполнять произвольные SQL-запросы к базе данных, что может привести к утечке или изменению данных. Защита от нее включает использование подготовленных выражений, фильтрацию входных данных и минимизацию привилегий.

    Посмотреть ответ полностью
  12. Как защититься от SQL-инъекций? Middle

    Защита от SQL-инъекций включает использование подготовленных выражений, ORM, фильтрацию входных данных, ограничение прав доступа к базе данных и применение брандмауэра приложений. Важно регулярно проводить аудиты безопасности и тестирование на уязвимости, а также не доверять входным данным и следить за актуальностью библиотек и фреймворков.

    Посмотреть ответ полностью
  13. Чем отличаются реляционные и нереляционные (NoSQL) базы данных? Middle

    Реляционные базы данных используют таблицы и требуют заранее определенной схемы, обеспечивая высокую согласованность данных, тогда как нереляционные базы (NoSQL) предлагают гибкость в структуре, не зависят от схемы и легче масштабируются, что делает их подходящими для работы с большими объемами неструктурированных данных.

    Посмотреть ответ полностью
  14. Что такое первая нормальная форма (1NF)? Middle

    Первая нормальная форма (1NF) требует, чтобы данные в таблице были атомарными, уникальными и без повторяющихся колонок, что помогает устранить избыточность и обеспечить целостность данных.

    Посмотреть ответ полностью
  15. Что такое вторая нормальная форма (2NF)? Middle

    Вторая нормальная форма (2NF) в нормализации баз данных помогает избежать избыточности и аномалий, требуя, чтобы все неключевые атрибуты зависели от всего первичного ключа, а не от его части. Это достигается путем организации данных и устранения частичных зависимостей.

    Посмотреть ответ полностью
  16. Что такое третья нормальная форма (3NF)? Middle

    Третья нормальная форма (3NF) в реляционных базах данных помогает уменьшить избыточность и обеспечить целостность данных, достигается при отсутствии транзитивных зависимостей между неключевыми атрибутами и первичным ключом.

    Посмотреть ответ полностью
  17. Что такое суррогатный ключ? Middle

    Суррогатный ключ — это автоматически генерируемый уникальный идентификатор записи в таблице базы данных, который не зависит от реальных данных и обеспечивает целостность, скорость обработки и гибкость в управлении записями.

    Посмотреть ответ полностью
  18. Что такое естественный (натуральный) ключ? Middle

    Естественный ключ — это атрибут или набор атрибутов, уникально идентифицирующих записи в таблице и имеющих смысл в реальном мире, что облегчает интерпретацию данных, однако он может изменяться и усложнять запросы.

    Посмотреть ответ полностью
  19. Что такое триггер в базе данных и для чего он используется? Middle

    Триггер — это автоматическая процедура, выполняемая в ответ на изменения данных в таблице, например, при вставке, обновлении или удалении записей. Он используется для автоматизации задач, поддержания целостности данных и аудита изменений, но требует осторожного использования из-за возможного влияния на производительность и сложности отладки.

    Посмотреть ответ полностью
  20. Что эффективнее использовать: оператор IN или EXISTS? Middle

    Оператор IN используется для проверки наличия значений в списке или подзапросе, тогда как EXISTS проверяет наличие записей в подзапросе и может быть более эффективным, особенно при сложной логике и большом объеме данных, так как останавливается при нахождении первого совпадения.

    Посмотреть ответ полностью
  21. Когда лучше использовать JOIN, а когда подзапрос (subquery)? Middle

    JOIN используется для объединения данных из нескольких таблиц по связанным полям и обычно более эффективен, в то время как подзапросы удобны для фильтрации и могут упростить логику запроса, особенно при работе с агрегатами.

    Посмотреть ответ полностью
  22. Что такое курсор в SQL и когда его целесообразно использовать? Middle

    Курсор в SQL — это объект для поэтапной обработки строк результата запроса, позволяющий выполнять операции над каждой строкой отдельно. Его целесообразно использовать при необходимости сложных вычислений или контроля потока выполнения, однако стоит избегать курсоров для больших наборов данных из-за возможного снижения производительности.

    Посмотреть ответ полностью
  23. Как реализовать связь "многие ко многим" между двумя таблицами? Middle

    Связь "многие ко многим" реализуется с помощью промежуточной таблицы, которая содержит ссылки на первичные ключи связанных таблиц, что позволяет связывать множество записей одной таблицы с множеством записей другой.

    Посмотреть ответ полностью
  24. В чем разница между COUNT(*) и COUNT(column)? Middle

    COUNT(*) подсчитывает все строки в таблице, включая NULL, тогда как COUNT(column) считает только ненулевые значения в указанном столбце.

    Посмотреть ответ полностью
  25. Что делает оператор INTERSECT? Middle

    Оператор INTERSECT в SQL находит уникальные строки, присутствующие во всех указанных выборках, что позволяет определить общие элементы между таблицами или запросами. Все объединяемые выборки должны иметь одинаковое количество столбцов с совместимыми типами данных.

    Посмотреть ответ полностью
  26. Что делает оператор EXCEPT (MINUS)? Middle

    Оператор EXCEPT (MINUS) в SQL используется для получения разности между двумя наборами данных, возвращая строки из первого набора, которые отсутствуют во втором. Оба набора должны иметь одинаковое количество столбцов с совместимыми типами данных.

    Посмотреть ответ полностью
  27. В чем разница между DISTINCT и GROUP BY при получении уникальных значений? Middle

    DISTINCT используется для получения уникальных значений из одного или нескольких столбцов, в то время как GROUP BY группирует строки с одинаковыми значениями для применения агрегатных функций, таких как COUNT() или SUM().

    Посмотреть ответ полностью
  28. Для чего используются команды GRANT и REVOKE? Middle

    Команды GRANT и REVOKE в SQL используются для управления доступом к объектам базы данных, позволяя предоставлять или отзывать права пользователей на выполнение операций, что обеспечивает безопасность данных и разделение обязанностей.

    Посмотреть ответ полностью
  29. Какие требования должны выполняться для использования UNION? Middle

    Для использования оператора UNION в SQL необходимо, чтобы количество и порядок столбцов в объединяемых запросах совпадали, а соответствующие столбцы имели совместимые типы данных; при этом UNION автоматически удаляет дубликаты, в то время как UNION ALL сохраняет их.

    Посмотреть ответ полностью
  30. Что такое оконные функции в SQL? Middle

    Оконные функции в SQL позволяют выполнять вычисления над наборами строк, связанные с текущей строкой, без группировки данных, что делает их полезными для анализа и отчетности. Они обеспечивают агрегацию, ранжирование и другие операции, сохраняя при этом все строки, что повышает гибкость работы с данными.

    Посмотреть ответ полностью
  31. В чем разница между функциями RANK() и DENSE_RANK()? Middle

    Функции RANK() и DENSE_RANK() в SQL присваивают уникальные ранги строкам, но RANK() создает пробелы между рангами при наличии одинаковых значений, тогда как DENSE_RANK() присваивает последовательные ранги без пробелов. RANK() полезен для учета количества равных значений, а DENSE_RANK() — для ситуаций, где важно избегать пробелов в рангах.

    Посмотреть ответ полностью
  32. Как найти вторую по величине (второй максимум) значение, например зарплату, в таблице? Middle

    Для нахождения второго по величине значения в таблице можно использовать подзапрос, оператор DISTINCT с сортировкой и LIMIT или оконные функции, такие как ROW_NUMBER(). Выбор метода зависит от наличия дубликатов и требований к производительности.

    Посмотреть ответ полностью
  33. Как найти сотрудников с зарплатой выше средней по своему отделу? Middle

    Чтобы найти сотрудников с зарплатой выше средней по отделу, нужно вычислить среднюю зарплату с помощью функции AVG() и GROUP BY, а затем соединить результаты с таблицей сотрудников, отфильтровав тех, чья зарплата превышает эту среднюю.

    Посмотреть ответ полностью
  34. Как выбрать записи из одной таблицы, не имеющие соответствующих записей в другой? Middle

    Чтобы выбрать записи из одной таблицы без соответствующих записей в другой, можно использовать методы LEFT JOIN с фильтрацией по NULL, оператор NOT EXISTS для проверки отсутствия записей или NOT IN для исключения значений из подзапроса; каждый из этих подходов имеет свои плюсы и минусы в плане производительности и удобства.

    Посмотреть ответ полностью
  35. Как найти дубликаты записей в таблице по определенному полю? Middle

    Для нахождения дубликатов в таблице по определенному полю используйте SQL-запрос с агрегатной функцией COUNT() и оператором GROUP BY, чтобы сгруппировать записи и отфильтровать группы с количеством больше одного с помощью HAVING.

    Посмотреть ответ полностью
  36. Как удалить дублирующиеся строки из таблицы, оставив только уникальные записи? Middle

    Удаление дублирующихся строк в SQL включает идентификацию дубликатов, использование операторов, таких как DISTINCT, создание временной таблицы для сохранения уникальных записей и удаление старой таблицы. Альтернативные методы, такие как ROW_NUMBER() и GROUP BY, позволяют более точно выбирать, какие записи оставить, при этом важно делать резервные копии и тестировать на небольших данных.

    Посмотреть ответ полностью
  37. Как вывести топ-3 самых высоких значений (например, зарплат)? Middle

    Для получения топ-3 самых высоких значений в SQL используется оператор ORDER BY для сортировки по убыванию и LIMIT для ограничения выборки. Это позволяет эффективно извлечь нужные данные, например, зарплаты, из таблицы.

    Посмотреть ответ полностью
  38. Как получить количество записей в каждой категории (группе)? Middle

    Чтобы получить количество записей в каждой категории, используется оператор GROUP BY с агрегатной функцией COUNT(), что позволяет сгруппировать данные по выбранному столбцу и подсчитать количество строк в каждой группе, например, в запросе к таблице товаров.

    Посмотреть ответ полностью
  39. Что делает условие EXISTS в SQL? Middle

    Условие EXISTS в SQL проверяет наличие строк в подзапросе, возвращая TRUE, если хотя бы одна строка найдена, и FALSE в противном случае; это позволяет эффективно выполнять операции, зависящие от наличия данных в других таблицах.

    Посмотреть ответ полностью
  40. Для чего используется функция ROW_NUMBER()? Middle

    Функция ROW_NUMBER() в SQL присваивает уникальный последовательный номер каждой строке результата запроса, что полезно для пагинации, создания уникальных идентификаторов и фильтрации дубликатов, позволяя группировать данные и определять порядок нумерации.

    Посмотреть ответ полностью
  41. Для чего применяется функция COALESCE? Middle

    Функция COALESCE в SQL используется для возврата первого ненулевого значения из списка, что позволяет эффективно обрабатывать NULL значения и упрощать код, заменяя отсутствующие данные более подходящими.

    Посмотреть ответ полностью
  42. Для чего используется оператор CASE в SQL? Middle

    Оператор CASE в SQL позволяет выполнять условные выражения, возвращая различные значения в зависимости от проверяемых условий, что делает его аналогом конструкций if-else в языках программирования; он полезен для агрегации, форматирования и фильтрации данных в запросах.

    Посмотреть ответ полностью
  43. Как выполнить JOIN более чем двух таблиц в одном запросе? Middle

    Для объединения более чем двух таблиц в SQL используется последовательный синтаксис JOIN, позволяющий комбинировать данные по общим ключам, с различными типами объединений, такими как INNER, LEFT, RIGHT и FULL JOIN, в зависимости от требований к результату.

    Посмотреть ответ полностью
  44. Можно ли использовать подзапрос в секции FROM? Если да, для чего это используется? Middle

    Подзапросы в секции FROM позволяют использовать результаты одного запроса как временную таблицу для основного запроса, что упрощает сложные SQL-запросы, улучшает их читаемость и позволяет выполнять сложные агрегации.

    Посмотреть ответ полностью
  45. Как найти записи, присутствующие в обеих (двух) таблицах? Middle

    Чтобы найти записи, присутствующие в обеих таблицах, можно использовать оператор INNER JOIN, который объединяет данные на основе заданных условий, или оператор INTERSECT, который возвращает пересечение двух наборов результатов. Первый метод более гибкий и позволяет выбирать дополнительные поля, а второй проще в использовании, если нужна только общая информация.

    Посмотреть ответ полностью
  46. Как вычислить накопительный итог (running total) по значениям столбца? Middle

    Накопительный итог в SQL можно вычислить с помощью оконных функций, подзапросов или временных таблиц, при этом оконные функции являются самым эффективным и современным способом, позволяющим быстро и просто получить результаты без группировки данных.

    Посмотреть ответ полностью
  47. Как вычислить процент (долю) каждого значения от общей суммы? Middle

    Для вычисления процента каждого значения от общей суммы в SQL используется функция SUM() для получения общей суммы и деление каждого значения на эту сумму с последующим умножением на 100; можно применять подзапросы или оконные функции для упрощения запроса и повышения его читаемости.

    Посмотреть ответ полностью
  48. Как получить текущую дату и время с помощью SQL? Middle

    В SQL текущую дату и время можно получить с помощью функций, таких как CURRENT_TIMESTAMP, NOW(), SYSDATETIME() и GETDATE(), в зависимости от используемой СУБД; они возвращают время с различной точностью и могут варьироваться по совместимости, поэтому рекомендуется использовать стандартные функции для повышения универсальности запросов.

    Посмотреть ответ полностью
  49. Чем отличаются типы числовых данных DECIMAL (NUMERIC) и FLOAT (REAL)? Middle

    DECIMAL (NUMERIC) — это тип данных с фиксированной запятой, обеспечивающий высокую точность, подходящий для финансовых расчетов, в то время как FLOAT (REAL) — тип данных с плавающей запятой, который предлагает широкий диапазон значений, но может потерять точность, что делает его более подходящим для научных вычислений.

    Посмотреть ответ полностью
  50. Какой тип данных используют для хранения больших двоичных объектов (BLOB)? Middle

    Для хранения больших двоичных объектов, таких как изображения и видео, в SQL используется тип данных BLOB, который позволяет управлять объемами до нескольких гигабайт. Существуют подтипы BLOB, различающиеся по размеру, и важно оптимально использовать этот тип, учитывая производительность и безопасность.

    Посмотреть ответ полностью
  51. Как конкатенировать (соединить) строки в SQL? Middle

    Конкатенация строк в SQL — это объединение строковых значений, которое осуществляется с помощью различных операторов и функций, таких как || в PostgreSQL, CONCAT() в MySQL и + в SQL Server; важно учитывать влияние NULL на результат и использовать функции для его обработки.

    Посмотреть ответ полностью
  52. Как преобразовать строку к верхнему/нижнему регистру в SQL? Middle

    В SQL для преобразования строк к верхнему или нижнему регистру используются функции UPPER() и LOWER(), которые позволяют управлять регистром текстовых данных, что полезно для форматирования, сравнения строк и подготовки данных для анализа.

    Посмотреть ответ полностью
  53. Как удалить пробелы в начале или конце строки в SQL? Middle

    Для удаления пробелов в начале и конце строки в SQL используются функции TRIM(), LTRIM() и RTRIM(), которые позволяют очищать данные и обеспечивать их корректность при обработке.

    Посмотреть ответ полностью
  54. Как определить, какой менеджер имеет самое большое количество подчинённых? Middle

    Для определения менеджера с наибольшим количеством подчинённых необходимо использовать SQL-запрос с агрегирующей функцией COUNT(), сгруппировав результаты по идентификатору менеджера и отсортировав их в порядке убывания, чтобы получить только одного менеджера с максимальным числом подчинённых.

    Посмотреть ответ полностью
  55. Что такое скалярная функция в SQL? Middle

    Скалярная функция в SQL принимает одно или несколько входных значений и возвращает одно значение, что позволяет использовать её в запросах, таких как SELECT и WHERE. Эти функции могут быть встроенными или пользовательскими, но их частое использование может негативно сказаться на производительности запросов.

    Посмотреть ответ полностью
  56. Чем база данных отличается от схемы? Middle

    База данных — это организованная коллекция данных, управляемая СУБД, тогда как схема описывает структуру и организацию этих данных, включая таблицы, поля и их связи.

    Посмотреть ответ полностью
  57. Чем представление (VIEW) отличается от таблицы? Middle

    Представление — это виртуальная таблица, формируемая на основе запросов к реальным таблицам, которая не хранит данные физически, а предоставляет доступ к ним в момент запроса, тогда как таблица хранит данные на диске и используется для их постоянного хранения.

    Посмотреть ответ полностью
  58. Каковы недостатки денормализации данных? Middle

    Денормализация данных улучшает производительность запросов, но приводит к избыточности, усложнению обновлений, рискам нарушения целостности данных и затруднениям в поддержке, что требует тщательной оценки и балансировки подходов.

    Посмотреть ответ полностью
  59. Как обновить данные в одной таблице на основе данных из другой таблицы? Middle

    Обновление данных в одной таблице на основе другой выполняется с помощью оператора UPDATE, используя подзапросы или JOIN для получения необходимых данных. Важно правильно определить таблицы, выбрать поля для обновления и использовать условия WHERE, чтобы избежать нежелательных изменений.

    Посмотреть ответ полностью
  60. Чем отличается COUNT(*) от COUNT(DISTINCT столбец)? Middle

    COUNT(*) возвращает общее количество строк в таблице, включая дубликаты и NULL, в то время как COUNT(DISTINCT столбец) считает только уникальные значения в указанном столбце, игнорируя дубликаты и NULL.

    Посмотреть ответ полностью
  61. Как получить n-ый по величине элемент из набора значений? Middle

    Для получения n-ого по величине элемента в SQL можно использовать подзапрос с DISTINCT, CTE с ROW_NUMBER(), или простую сортировку с LIMIT и OFFSET. Выбор метода зависит от объема данных и необходимости учитывать уникальность значений.

    Посмотреть ответ полностью
  62. Зачем нужны хранимые процедуры? Каковы их преимущества? Middle

    Хранимые процедуры — это предопределенные SQL-запросы, хранящиеся в базе данных и позволяющие оптимизировать выполнение операций, повышая производительность и безопасность приложений, инкапсулируя бизнес-логику и упрощая управление транзакциями.

    Посмотреть ответ полностью
  63. Создается ли индекс автоматически при объявлении внешнего ключа? Middle

    Индекс не создается автоматически при объявлении внешнего ключа; это ограничение обеспечивает целостность данных, но для улучшения производительности рекомендуется вручную создавать индекс на колонне внешнего ключа.

    Посмотреть ответ полностью
  64. Что произойдет при попытке удалить таблицу, на которую ссылаются внешние ключи? Middle

    При удалении таблицы с внешними ключами может возникнуть ошибка из-за защиты целостности данных, если не предусмотрены каскадные удаления или другие настройки. Каскадное удаление автоматически удаляет связанные записи, а другие настройки могут обнулять ссылки или блокировать удаление. Важно проверять зависимости и использовать транзакции для защиты данных.

    Посмотреть ответ полностью
  65. Какие действия могут быть заданы для внешнего ключа при удалении (CASCADE, SET NULL и др.)? Middle

    Внешний ключ в реляционных базах данных обеспечивает ссылочную целостность, позволяя задавать действия при удалении записей, такие как CASCADE (автоматическое удаление связанных записей), SET NULL (установка значений в NULL), NO ACTION и RESTRICT (блокировка удаления при наличии связанных записей), а также SET DEFAULT (установка значения по умолчанию).

    Посмотреть ответ полностью
  66. Чем отличается SQL от PL/SQL или T-SQL? Middle

    SQL — это декларативный язык для работы с реляционными базами данных, в то время как PL/SQL и T-SQL являются его процедурными расширениями для Oracle и Microsoft SQL Server соответственно, добавляющими возможности написания программного кода и обработки ошибок.

    Посмотреть ответ полностью
  67. Как можно реализовать отношение один-к-одному между двумя таблицами? Middle

    Отношение один-к-одному между двумя таблицами реализуется с помощью уникального первичного ключа в каждой таблице и внешнего ключа, который ссылается на первичный ключ другой таблицы, при этом важно установить уникальное ограничение на внешний ключ для обеспечения соответствия записей.

    Посмотреть ответ полностью
  68. Какие существуют операции над множествами (set operations) в SQL? Middle

    Операции над множествами в SQL, такие как UNION, INTERSECT, EXCEPT и JOIN, позволяют комбинировать результаты нескольких запросов для эффективного анализа и управления данными, обеспечивая гибкость в работе с различными источниками информации.

    Посмотреть ответ полностью
  69. Как найти пары записей (например, сотрудников) с одинаковым значением в определённом поле (например, с одинаковой зарплатой)? Middle

    Для нахождения пар записей с одинаковым значением в определённом поле в SQL используется группировка с оператором GROUP BY и фильтрация с помощью HAVING, что позволяет выявить дубликаты, например, сотрудников с одинаковой зарплатой.

    Посмотреть ответ полностью
  70. Как сгруппировать данные по кварталам даты (например, вычислить квартальную выручку)? Middle

    Для группировки данных по кварталам в SQL используются функции, такие как DATEPART(), EXTRACT() или QUARTER(), в зависимости от СУБД. Это позволяет извлечь квартал из даты и сгруппировать данные с помощью оператора GROUP BY, чтобы вычислить, например, квартальную выручку.

    Посмотреть ответ полностью

Senior

  1. Что такое материализованное представление? Senior

    Материализованное представление — это объект базы данных, который хранит результаты запроса в физическом виде, что позволяет ускорить доступ к данным и избежать повторных вычислений, в отличие от обычных представлений.

    Посмотреть ответ полностью
  2. Что такое репликация баз данных и для чего она нужна? Senior

    Репликация баз данных — это процесс копирования и синхронизации данных из одной базы данных в другие, обеспечивающий высокую доступность, балансировку нагрузки и резервное копирование. Она бывает синхронной и асинхронной, позволяя улучшить производительность приложений и снизить риск потери данных.

    Посмотреть ответ полностью
  3. Какие существуют стратегии резервного копирования баз данных? Senior

    Существует несколько стратегий резервного копирования баз данных: полное, инкрементное, дифференциальное и по расписанию, каждая из которых имеет свои преимущества и недостатки, влияя на скорость восстановления, объем хранимых данных и сложность процесса.

    Посмотреть ответ полностью
  4. Что такое партиционирование таблиц и зачем его применять? Senior

    Партиционирование таблиц — это метод деления больших таблиц на более мелкие сегменты для улучшения производительности, упрощения управления данными и оптимизации индексации. Он позволяет более эффективно обрабатывать запросы, архивировать устаревшие данные и повышать уровень параллелизма в операциях.

    Посмотреть ответ полностью
  5. В чем разница между хранимой процедурой и функцией? Senior

    Хранимая процедура — это набор SQL операторов, выполняющий операции с изменением данных и не обязательно возвращающий значение, в то время как функция предназначена для вычисления и всегда возвращает значение, и может использоваться в SQL выражениях.

    Посмотреть ответ полностью
  6. Что такое двухфазный коммит (two-phase commit)? Senior

    Двухфазный коммит — это протокол для обеспечения согласованности данных в распределённых системах, который гарантирует, что все участники транзакции либо успешно завершают её, либо откатывают изменения в случае ошибок, обеспечивая атомарность и целостность данных.

    Посмотреть ответ полностью
  7. Какие уровни изоляции транзакций существуют? Senior

    Уровни изоляции транзакций определяют видимость изменений между ними и помогают избежать проблем с целостностью данных. Основные уровни: Read Uncommitted, Read Committed, Repeatable Read и Serializable, каждый из которых имеет свои особенности и компромиссы между целостностью и производительностью. Выбор уровня зависит от бизнес-требований и контекста использования.

    Посмотреть ответ полностью
  8. Что такое оптимистичная блокировка? Senior

    Оптимистичная блокировка — это метод управления доступом к данным, который предполагает редкость конфликтов между транзакциями, позволяя им выполняться параллельно и проверяя изменения перед фиксацией, что повышает производительность и уменьшает блокировки.

    Посмотреть ответ полностью
  9. Что такое пессимистичная блокировка? Senior

    Пессимистичная блокировка — это метод управления доступом к данным, при котором записи блокируются заранее для предотвращения конфликтов между транзакциями, обеспечивая целостность данных, но может увеличивать время ожидания.

    Посмотреть ответ полностью
  10. Что такое взаимная блокировка (deadlock)? Senior

    Взаимная блокировка (deadlock) — это ситуация, когда две или более транзакций блокируют друг друга, ожидая освобождения ресурсов, что приводит к зависанию выполнения. Для предотвращения deadlock важно упорядочить запросы ресурсов, мониторить транзакции и устанавливать тайм-ауты.

    Посмотреть ответ полностью
  11. Как предотвратить ситуацию deadlock в базе данных? Senior

    Для предотвращения взаимной блокировки (deadlock) в базе данных важно установить строгий порядок доступа к ресурсам, использовать тайм-ауты для блокировок, минимизировать время их удержания и выбирать подходящий уровень изоляции транзакций. Регулярный анализ и мониторинг транзакций также помогут выявить и устранить узкие места, которые могут привести к deadlock.

    Посмотреть ответ полностью
  12. Что такое "грязное" чтение (dirty read)? Senior

    Грязное чтение — это аномалия в параллельных транзакциях, когда одна транзакция читает данные, измененные другой, но еще не зафиксированные, что может привести к ошибкам, если изменения будут отменены. Уровень изоляции транзакций, такой как Read Committed, помогает избежать этой проблемы, обеспечивая доступ только к зафиксированным данным.

    Посмотреть ответ полностью
  13. Что такое неповторяющееся чтение (non-repeatable read)? Senior

    Неповторяющееся чтение — это аномалия в многопользовательских системах баз данных, при которой транзакция получает разные результаты при повторном чтении одного и того же значения из-за изменений, внесенных другой транзакцией. Эта проблема может быть решена с помощью уровней изоляции транзакций, таких как Repeatable Read или Serializable, которые обеспечивают целостность данных.

    Посмотреть ответ полностью
  14. Что такое фантомное чтение (phantom read)? Senior

    Фантомное чтение — это ситуация в СУБД, когда одна транзакция видит изменения, внесенные другой транзакцией после её открытия, что может привести к неконсистентности данных. Для его предотвращения используются более строгие уровни изоляции, такие как Serializable.

    Посмотреть ответ полностью
  15. Что такое SAVEPOINT и как он используется? Senior

    SAVEPOINT в SQL позволяет создавать точки восстановления внутри транзакции, что дает возможность откатить изменения до определенного момента, не затрагивая всю транзакцию. Это особенно полезно в сложных операциях, позволяя контролировать и управлять изменениями на уровне отдельных шагов.

    Посмотреть ответ полностью
  16. Что делает команда COMMIT? Senior

    Команда COMMIT в SQL сохраняет все изменения, сделанные в текущей транзакции, делая их постоянными и доступными для других операций, что обеспечивает целостность данных; в случае ошибок можно использовать ROLLBACK для отмены изменений.

    Посмотреть ответ полностью
  17. Что делает команда ROLLBACK? Senior

    Команда ROLLBACK в SQL отменяет все изменения текущей транзакции, возвращая базу данных в предыдущее состояние, что обеспечивает целостность данных и предотвращает запись некорректной информации.

    Посмотреть ответ полностью
  18. Назовите основные методы оптимизации SQL-запросов. Senior

    Оптимизация SQL-запросов включает использование индексов для ускорения выборки, анализ с помощью команды EXPLAIN, правильное использование соединений, ограничение объема данных, нормализацию и кэширование результатов для повышения производительности и снижения нагрузки на базу данных.

    Посмотреть ответ полностью
  19. В чем суть теоремы CAP в контексте распределённых систем? Senior

    Теорема CAP описывает ограничения распределённых систем, утверждая, что одновременно можно гарантировать лишь два из трёх свойств: согласованность, доступность и устойчивость к разделению, что влияет на архитектурные решения при проектировании систем.

    Посмотреть ответ полностью
  20. Чем отличаются системы OLTP и OLAP? Senior

    Системы OLTP предназначены для обработки транзакций с высокой скоростью и обеспечением целостности данных, в то время как OLAP ориентированы на выполнение сложных аналитических запросов и анализ больших объемов данных, что позволяет принимать стратегические решения.

    Посмотреть ответ полностью
  21. Что такое шардинг базы данных и зачем он применяется? Senior

    Шардинг базы данных — это метод горизонтального масштабирования, который распределяет данные по нескольким серверам для повышения производительности, доступности и управления данными. Он позволяет делить большие объемы информации на управляемые части, улучшая обработку запросов и отказоустойчивость системы.

    Посмотреть ответ полностью
  22. Чем отличаются модели ACID и BASE? Senior

    ACID и BASE — это модели управления транзакциями в базах данных: ACID обеспечивает строгую согласованность и надежность в реляционных системах, а BASE подходит для распределенных систем с акцентом на доступность и производительность, допуская временную несогласованность данных.

    Посмотреть ответ полностью
  23. Какие виды NoSQL баз данных вы знаете? Senior

    Существует несколько видов NoSQL баз данных, включая документо-ориентированные, колонно-ориентированные, графовые, ключ-значение и многомодельные, каждая из которых предлагает гибкость и масштабируемость для различных требований приложений.

    Посмотреть ответ полностью
  24. Что такое журнал транзакций (transaction log) и для чего он нужен? Senior

    Журнал транзакций — это компонент СУБД, фиксирующий все изменения в базе данных, обеспечивая целостность данных и возможность восстановления после сбоев, а также поддержку свойств ACID транзакций.

    Посмотреть ответ полностью
  25. Что такое подготовленный запрос (prepared statement) и зачем он используется? Senior

    Подготовленный запрос — это механизм, позволяющий предварительно компилировать SQL-запросы с параметрами, что повышает безопасность, предотвращая SQL-инъекции, и улучшает производительность за счёт повторного использования плана выполнения.

    Посмотреть ответ полностью
  26. Может ли столбец с UNIQUE ограничением содержать несколько NULL значений? Senior

    Столбец с ограничением уникальности может содержать несколько NULL значений, так как NULL считается "неизвестным" и не нарушает уникальность, что позволяет избежать дублирования значений в таблице.

    Посмотреть ответ полностью
  27. Какие алгоритмы выполнения JOIN известны в СУБД? Senior

    Существует три основных алгоритма выполнения JOIN в SQL: вложенный цикл, хеш-объединение и слияние. Вложенный цикл прост в реализации, но менее эффективен для больших данных; хеш-объединение быстро находит соответствия, но требует дополнительной памяти; слияние эффективно для уже отсортированных данных, но нуждается в предварительной сортировке.

    Посмотреть ответ полностью
  28. Какие структуры данных используют индексы в реляционных СУБД? Senior

    Индексы в реляционных СУБД используют различные структуры данных, такие как B-деревья для упорядоченного хранения и быстрого поиска, B+-деревья для эффективных диапазонных запросов, хеш-индексы для быстрых точных совпадений и R-деревья для многомерных данных, что позволяет значительно улучшить производительность запросов.

    Посмотреть ответ полностью
  29. Как работает оптимизатор запросов в СУБД? Senior

    Оптимизатор запросов в СУБД преобразует SQL-запросы в эффективные планы выполнения, минимизируя время выполнения и использование ресурсов, используя парсинг, создание логического и физического плана, оптимизацию с учетом статистики и индексов.

    Посмотреть ответ полностью
  30. Что такое MVCC (Multiversion Concurrency Control)? Senior

    MVCC (Multiversion Concurrency Control) — это метод управления параллельным доступом к данным в СУБД, который позволяет нескольким транзакциям одновременно читать и изменять данные, создавая новые версии записей и обеспечивая изоляцию, что минимизирует конфликты и повышает производительность.

    Посмотреть ответ полностью
  31. Чем отличается колоночная модель хранения данных от строковой? Senior

    Колоночная модель хранит данные по колонкам, что эффективно для аналитических запросов и агрегации, в то время как строковая модель хранит данные построчно, что лучше подходит для транзакционных операций. Выбор модели зависит от требований к производительности и типам выполняемых операций.

    Посмотреть ответ полностью
  32. В чем разница между условием в секции ON и условием в WHERE при OUTER JOIN? Senior

    Секция ON определяет условия соединения таблиц и влияет на включение строк в результат при OUTER JOIN, в то время как секция WHERE фильтрует результаты после объединения, потенциально исключая строки с NULL значениями.

    Посмотреть ответ полностью
  33. Какие типы блокировок (locks) существуют в СУБД? Senior

    В СУБД существуют различные типы блокировок: эксклюзивные блокировки позволяют одной транзакции изменять данные, совместные блокировки позволяют нескольким транзакциям читать данные, а также блокировки на уровне строк, страниц и таблиц, каждая из которых обеспечивает разные уровни изоляции и параллелизма для защиты данных и предотвращения конфликтов.

    Посмотреть ответ полностью
  34. Что такое последовательность (SEQUENCE) в базе данных? Senior

    Последовательность (SEQUENCE) в базе данных — это объект для генерации уникальных чисел, часто используемых в качестве первичных ключей. Она позволяет настраивать начальные значения, шаги и диапазоны, независимо от таблиц, обеспечивая гибкость и уникальность идентификаторов.

    Посмотреть ответ полностью
  35. Как можно реализовать связь "многие ко многим" и чем она отличается от двух связей один-ко-многим? Senior

    Связь "многие ко многим" реализуется через промежуточную таблицу, которая связывает две основные таблицы, позволяя каждой записи одной таблицы ссылаться на множество записей другой таблицы и наоборот. В отличие от связи "один-ко-многим", где одна запись связывается с множеством записей другой таблицы через внешний ключ, в "многие ко многим" необходимо использовать дополнительную таблицу для...

    Посмотреть ответ полностью
  36. Что такое LATERAL JOIN и где он используется? Senior

    LATERAL JOIN в SQL позволяет подзапросам ссылаться на данные текущей строки другой таблицы, что делает его полезным для работы с зависимыми подзапросами и агрегацией данных. Этот тип соединения может использоваться с CROSS JOIN и INNER JOIN, обеспечивая более гибкие и читаемые запросы, но важно учитывать производительность и правильность синтаксиса.

    Посмотреть ответ полностью
  37. Что такое PIVOT (ротация таблицы) и где он применяется? Senior

    PIVOT в SQL позволяет преобразовывать строки в столбцы для удобного анализа и представления данных, применяя агрегатные функции к выбранным колонкам, что особенно полезно для создания сводных отчетов по категориям, таким как продажи или финансовые данные.

    Посмотреть ответ полностью
  38. Как вычислить медиану значений с помощью SQL? Senior

    Медиана — это значение, делящее набор данных на две равные части, и в SQL её можно вычислить различными способами, включая оконные функции, подзапросы и CTE, при этом важно учитывать оптимизацию запросов и обработку NULL значений.

    Посмотреть ответ полностью
  39. Что такое рекурсивный CTE и для чего он используется? Senior

    Рекурсивный CTE в SQL позволяет выполнять рекурсивные запросы для обработки иерархических или связанных данных, таких как организационные структуры и графы, используя основной и рекурсивный запросы для итеративного извлечения данных.

    Посмотреть ответ полностью
  40. Как хранить и обрабатывать JSON-данные в реляционной базе данных? Senior

    Хранение JSON-данных в реляционных базах данных можно реализовать через текстовые поля или специализированные типы данных, такие как JSONB в PostgreSQL, что позволяет эффективно выполнять запросы и индексацию. Важно использовать функции для извлечения и модификации данных, а также создавать индексы для повышения производительности.

    Посмотреть ответ полностью
  41. Что такое форма Бойса-Кодда (BCNF) в нормализации данных? Senior

    Форма Бойса-Кодда (BCNF) — это уровень нормализации данных, который устраняет избыточность и аномалии, обеспечивая, что для любой функциональной зависимости левая часть является суперключом, что повышает целостность данных в реляционных базах.

    Посмотреть ответ полностью
  42. Что такое распределённая база данных? Senior

    Распределённая база данных — это система, где данные хранятся на нескольких узлах, обеспечивая высокую доступность, отказоустойчивость и масштабируемость, при этом пользователи взаимодействуют с ними как с единой базой, несмотря на физическое распределение.

    Посмотреть ответ полностью
  43. Что означает концепция eventual consistency? Senior

    Концепция временной согласованности предполагает, что в распределенных системах данные могут временно находиться в несогласованном состоянии, но со временем все копии данных станут一致ными, что обеспечивает высокую доступность и масштабируемость, особенно в NoSQL базах данных.

    Посмотреть ответ полностью
  44. Чем отличается синхронная репликация от асинхронной? Senior

    Синхронная репликация обеспечивает немедленное обновление данных на всех узлах, что гарантирует их целостность, но увеличивает задержку и требует высокой надежности сети, тогда как асинхронная репликация позволяет быстрее обрабатывать транзакции, но может привести к несоответствию данных в случае сбоя.

    Посмотреть ответ полностью
  45. Что такое звёздная схема (Star Schema) в базе данных? Senior

    Звёздная схема — это метод организации данных в хранилищах, состоящий из центральной таблицы фактов и связанных таблиц измерений, который упрощает запросы и повышает производительность анализа данных.

    Посмотреть ответ полностью
  46. Чем отличается схема типа "Snowflake" от звёздной схемы? Senior

    Звёздная схема характеризуется простотой и высокой производительностью, но может иметь избыточность данных, тогда как схема типа "Снежинка" более нормализована, что снижает избыточность, но усложняет структуру и может замедлять выполнение запросов.

    Посмотреть ответ полностью
  47. Как получить 5 последних записей для каждой группы (например, 5 последних заказов каждого клиента)? Senior

    Для получения 5 последних записей для каждой группы в SQL можно использовать оконные функции, такие как ROW_NUMBER(), или подзапросы. Оконные функции позволяют эффективно группировать и сортировать данные, в то время как подзапросы могут быть менее производительными, но также решают задачу.

    Посмотреть ответ полностью
  48. Как определить максимальную глубину иерархии, например самую длинную цепочку "начальник-подчинённый" в таблице сотрудников? Senior

    Максимальную глубину иерархии "начальник-подчинённый" в таблице сотрудников можно определить с помощью рекурсивных запросов, используя Common Table Expressions (CTE) для итерирования по уровням иерархии, начиная с верхнего уровня и увеличивая глубину для каждого подчинённого.

    Посмотреть ответ полностью
  49. Как найти пользователей, которые приобрели все товары в заданной категории? Senior

    Для нахождения пользователей, купивших все товары в определенной категории, необходимо объединить таблицы пользователей, товаров и заказов, определить идентификаторы товаров в категории, а затем сгруппировать данные по пользователям, используя оператор HAVING для проверки, что количество уникальных приобретенных товаров совпадает с общим числом товаров в категории.

    Посмотреть ответ полностью
  50. В чем проблема использования оператора NOT IN с подзапросом, если подзапрос может возвращать NULL? Senior

    Использование оператора NOT IN с подзапросом, возвращающим NULL, может привести к неожиданным результатам, так как SQL не может определить, является ли значение NULL "неизвестным", что может привести к отсутствию возвращаемых строк. Для избежания этой проблемы рекомендуется использовать оператор NOT EXISTS или фильтровать NULL в подзапросе.

    Посмотреть ответ полностью
  51. Как найти самый длинный непрерывный период (последовательность) дат или записей? Senior

    Для нахождения самого длинного непрерывного периода дат в SQL определяют последовательности, используя оконные функции для выявления разрывов, затем группируют и подсчитывают длину каждой группы, выбирая максимальную.

    Посмотреть ответ полностью
  52. В каких случаях индекс может не использоваться оптимизатором запросов? Senior

    Индексы могут не использоваться оптимизатором запросов из-за низкой селективности, множественных условий, полного сканирования таблиц, использования функций в условиях, отсутствия нужных столбцов в индексе и устаревших статистик, что может привести к неэффективным запросам.

    Посмотреть ответ полностью
  53. Каковы потенциальные недостатки наличия слишком большого количества индексов в таблице? Senior

    Слишком большое количество индексов в таблице может замедлить операции записи, увеличить потребление памяти и усложнить поддержку, что в итоге негативно скажется на производительности запросов.

    Посмотреть ответ полностью

Смежные категории

Рекомендуемые категории