312 просмотров
От 20 февраля

Вопросы и ответы с собеседования по базам данных и SQL

1. Какие есть типы связей таблиц?

Базы данных могут содержать таблицы, которые связаны между собой различными связями. Связь (relationship) представляет ассоциацию между сущностями разных типов. При выделении связи выделяют главную или родительскую таблицу (primary key table / master table) и зависимую, дочернюю таблицу (foreign key table / child table). Дочерняя таблица зависит от родительской. Для организации связи используются внешние ключи. Внешний ключ представляет один или несколько столбцов из одной таблицы, который одновременно является потенциальным ключом из другой таблицы. Внешний ключ необязательно должен соответствовать первичному ключу из главной таблицы. Хотя, как правило, внешний ключ из зависимой таблицы указывает на первичный ключ из главной таблицы. Связи между таблицами бывают следующих типов: - Один к одному (One to one) - Один к многим (One to many) - Многие ко многим (Many to many)

2. Что такое связь "один к одному"?

Данный тип связей встречается не часто. В этом случае объекту одной сущности можно сопоставить только один объект другой сущности. Например, на некоторых сайтах пользователь может иметь только один блог. То есть возникает отношение один пользователь - один блог. Нередко этот тип связей предполагает разбиение одной большой таблицы на несколько маленьких. Основная родительская таблица в этом случае продолжает содержать часто используемые данные, а дочерняя зависимая таблица обычно хранит данные, которые используются реже. В этом отношении первичный ключ зависимой таблицы в то же время является внешним ключом, который ссылается на первичный ключ из главной таблицы. Например, таблица Users представляет пользователей и имеет следующие столбцы: - UserId (идентификатор, первичный ключ) - Name (имя пользователя) И таблица Blogs представляет блоги пользователей и имеет следующие столбцы: - BlogId (идентификатор, первичный и внешний ключ) - Name (название блога) В этом случае столбец BlogId будет хранить значение из столбца UserId из таблицы пользователей. То есть столбец BlogId будет выступать одновременно первичным и внешним ключом.

3. Что такое связь "один ко многим"?

Это наиболее часто встречаемый тип связей. В этом типе связей несколько строк из дочерний таблицы зависят от одной строки в родительской таблице. Например, в одном блоге может быть несколько статей. В этом случае таблица блогов является родительской, а таблица статей - дочерней. То есть один блог - много статей. Или другой пример, в футбольной команде может играть несколько футболистов. И в то же время один футболист одновременно может играть только в одной команде. То есть одна команда - много футболистов. К примеру, пусть будет таблица Articles, которая представляет статьи блога и которая имеет следующие столбцы: - ArticleId (идентификатор, первичный ключ) - BlogId (внешний ключ) - Title (название статьи) - Text (текст статьи) В этом случае столбец BlogId из таблицы статей будет хранить значение из столбца BlogId из таблицы блогов.

4. Что такое связь "многие ко многим"?

При этом типе связей одна строка из таблицы А может быть связана с множеством строк из таблицы В. В свою очередь одна строка из таблицы В может быть связана с множеством строк из таблицы А. Типичный пример - студенты и курсы: один студент может посещать несколько курсов, и соответственно на один курс могут записаться несколько студентов. Другой пример - статьи и теги: для одной статьи можно определить несколько тегов, а один тег может быть определен для нескольких статей. Но на уровне базы данных мы не можем установить прямую связь многие ко многим между двумя таблицами. Это делается посредством вспомогательной промежуточной таблицы. Иногда данные из этой промежуточной таблицы представляют отдельную сущность. Например, в случае со статьями и тегами пусть будет таблица Tags, которая имеет два столбца: - TagId (идентификатор, первичный ключ) - Text (текст тега) Также пусть будет промежуточная таблица ArticleTags со следующими полями: - TagId (идентификатор, первичный и внешний ключ) - ArticleIdId (идентификатор, первичный и внешний ключ) Технически мы получим две связи один-ко-многим. Столбец TagId из таблицы ArticleTags будет ссылаться на столбец TagId из таблицы Tags. А столбец ArticleId из таблицы ArticleTags будет ссылаться на столбец ArticleId из таблицы Articles. То есть столбцы TagId и ArticleId в таблице ArticleTags представляют составной первичный ключ и одновременно являются внешними ключами для связи с таблицами Articles и Tags.

5. Что такое ссылочная целостность данных?

Поддержи проект и получи доступ ко всему контенту всего за 290

6. Что такое нормализация базы данных?

Поддержи проект и получи доступ ко всему контенту всего за 290

7. Что такое первая нормальная форма?

Поддержи проект и получи доступ ко всему контенту всего за 290

8. Что такое вторая нормальная форма?

Поддержи проект и получи доступ ко всему контенту всего за 290

9. Что такое третья нормальная форма?

Поддержи проект и получи доступ ко всему контенту всего за 290

10. Что такое денормализация базы данных?

Поддержи проект и получи доступ ко всему контенту всего за 290

11. Что такое транзакции?

Поддержи проект и получи доступ ко всему контенту всего за 290

12. Какие есть уровни изоляции транзакций?

Поддержи проект и получи доступ ко всему контенту всего за 290

13. В чем разница между транзакцией и batch?

Поддержи проект и получи доступ ко всему контенту всего за 290

14. Какие есть уровни изолированности транзакций?

Поддержи проект и получи доступ ко всему контенту всего за 290

15. Что такое индексы в теории баз данных?

Поддержи проект и получи доступ ко всему контенту всего за 290

16. Какие есть типы индексов?

Поддержи проект и получи доступ ко всему контенту всего за 290

17. Что такое первичный ключ?

Поддержи проект и получи доступ ко всему контенту всего за 290

18. Что такое внешний ключ?

Поддержи проект и получи доступ ко всему контенту всего за 290

19. В чем разница между базой данных и схемой?

Поддержи проект и получи доступ ко всему контенту всего за 290

20. Что такое временые таблицы?

Поддержи проект и получи доступ ко всему контенту всего за 290

21. Что такое SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

22. Какие существуют типы данных в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

23. В чем разница между CHAR и VARCHAR?

Поддержи проект и получи доступ ко всему контенту всего за 290

24. Что такое self-join?

Поддержи проект и получи доступ ко всему контенту всего за 290

25. Что такое ограничения в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

26. Что такое псевдонимы в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

27. Что такое параллелизм в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

28. Зачем нужен оператор GROUP BY?

Поддержи проект и получи доступ ко всему контенту всего за 290

29. Зачем нужен оператор ORDER BY?

Поддержи проект и получи доступ ко всему контенту всего за 290

30. Из каких групп оператов состоит SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

31. Что такое внутренний и внешний JOIN?

Поддержи проект и получи доступ ко всему контенту всего за 290

32. Что такое коррелированные и некоррелированные подзапросы?

Поддержи проект и получи доступ ко всему контенту всего за 290

33. Что такое обобщенное табличное выражение (CTE)?

Поддержи проект и получи доступ ко всему контенту всего за 290

34. Зачем нужны операторы DELETE и TRUNCATE?

Поддержи проект и получи доступ ко всему контенту всего за 290

35. Зачем нужны операторы HAVING и WHERE?

Поддержи проект и получи доступ ко всему контенту всего за 290

36. Зачем нужен оператор UNION?

Поддержи проект и получи доступ ко всему контенту всего за 290

37. Зачем нужен оператор CASE?

Поддержи проект и получи доступ ко всему контенту всего за 290

38. Что делает операция MERGE в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

39. Какова роль ключевого слова WITH в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

40. В чем разница между операторами BETWEEN и IN?

Поддержи проект и получи доступ ко всему контенту всего за 290

41. Что такое хранимая процедура?

Поддержи проект и получи доступ ко всему контенту всего за 290

42. Какие бывают типы функций в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

43. В чем разница между функцией и хранимой процедурой?

Поддержи проект и получи доступ ко всему контенту всего за 290

44. Что такое оконная функция?

Поддержи проект и получи доступ ко всему контенту всего за 290

45. В чем разница между RANK, DENSE_RANK и ROW_NUMBER?

Поддержи проект и получи доступ ко всему контенту всего за 290

46. Что такое скалярные и табличные функции?

Поддержи проект и получи доступ ко всему контенту всего за 290

47. Какие операции и функции для работы с символами вы знаете?

Поддержи проект и получи доступ ко всему контенту всего за 290

48. Как работает оптимизатор SQL-запросов?

Поддержи проект и получи доступ ко всему контенту всего за 290

49. Что такое SQL-представление?

Поддержи проект и получи доступ ко всему контенту всего за 290

50. Какие бывают виды представлений в SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

51. В чем разница между представлением и таблицей?

Поддержи проект и получи доступ ко всему контенту всего за 290

52. Что такое триггер?

Поддержи проект и получи доступ ко всему контенту всего за 290

53. Что такое вложенный триггер

Поддержи проект и получи доступ ко всему контенту всего за 290

54. Какие есть стратегии резервного копирования и восстановления БД?

Поддержи проект и получи доступ ко всему контенту всего за 290

55. Что такое T-SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

56. Что такое ETL (Extract, Transform, Load) в контексте баз данных?

Поддержи проект и получи доступ ко всему контенту всего за 290

57. Что такое динамический SQL?

Поддержи проект и получи доступ ко всему контенту всего за 290

58. Что такое блокировка?

Поддержи проект и получи доступ ко всему контенту всего за 290

59. Какие есть типы блокировок?

Поддержи проект и получи доступ ко всему контенту всего за 290

60. В чем разница между блокировкой и deadlock?

Поддержи проект и получи доступ ко всему контенту всего за 290
Хочешь стать частью сообщества Девстанции?
Вступай в наш чат в Telegram

Также в этой категории

Шпаргалка
  10 вопросов

Всё о репликации баз данных

Описание понятий и процессов репликации БД

178 просмотров
От 8 октября 2023
Шпаргалка
  11 вопросов

Теория шардинга баз данных

О распределении данных между серверами

243 просмотра
От 10 октября 2023

Вам может быть интересно

Шпаргалка
  54 вопроса

Шпаргалка по вопросам о Go

Вопросы про Go на собеседовании

513 просмотров
От 30 января
Викторина
  12 вопросов

Викторина по Python - Middle/Senior

Продвинутые вопросы для собеседования Python-разработчика

22 просмотра
От 30 мая 2023
Шпаргалка
  28 вопросов

Паттерны проектирования с примерами

Раскрытие на примерах почти всех паттернов проектирования

232 просмотра
От 7 октября 2023
Шпаргалка
  13 вопросов

Общие принципы и понятия ООП

Вопросы для собеседования по теме ООП

197 просмотров
От 7 октября 2023
Шпаргалка
  34 вопроса

Шпаргалка по вопросам о Python

Вопросы для собеседования Python-разработчика

562 просмотра
От 30 января
Шпаргалка
  12 вопросов

Операционные системы: базовые понятия

Потоки, процессы, конкурентность и прочие понятия из мира ОС

202 просмотра
От 27 января

Топ тредов

Gravatar for 9tokio
Tokio:
то что раньше было бесплатным теперь платное - вот это я понимаю

Последнее сообщение:
Логотип Девстанции
Девстанция:
Спасибо за поддержку проекта :) Повышение качества контента - один из важнейших приоритетов. Этому м...
3 сообщения
212 просмотров

Логотип Девстанции
Девстанция:
Поиск людей для совместной разработки IT-стартапов

Последнее сообщение:
В этом треде пока нет сообщений
0 сообщений
107 просмотров

Логотип Девстанции
Девстанция:
Какой язык программирования выбрать в качестве первого?

Последнее сообщение:
Gravatar for 2kokke
Kokke:
Python или JS - универсально. Но по уму надо бы с чего-то строгого начинать и достаточно низкоуровне...
1 сообщение
139 просмотров

Все категории