Реляционные СУБД

Вопросы:

1. Что такое СУБД? Какие типы бывают?

2. Зачем нужны СУБД, если можно хранить информацию прямо на файловой системе?

3. Что такое отношения в реляционных СУБД? Какие имеют свойства?

4. Что такое таблица? А что такое отношение?

5. Что такое ключ и какие типы ключей существуют?

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

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

8. Что такое уникальный ключ?

9. Что такое ограничения?

10. Что такое целостность данных? Как РСУБД обеспечивает её?

11. Что такое согласованность данных? Как РСУБД обеспечивает согласованность данных?

12. Что подразумевается под нормализацией? Зачем она нужна? Какие формы нормализации существуют?

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

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

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

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

17. Что такое нормальная форма Бойса-Кодда?

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

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

20. Что такое доменно-ключевая нормальная форма?

21. Что такое шестая нормальная форма?

22. Что такое денормализация? зачем нужна?

23. Какие существуют способы денормализации?

24. Как определить до какого уровня нормализации надо прийти при проектировании бд?

25. Какие бывают связи между таблиц?

26. Как реализуется связь многие ко многим?

27. Зачем нужна связь 1 к 1 ? В чём её выгода? Зачем она нужна?

28. Какие типы данных можно хранить в реляционной бд?

29. В чём разница типов CHAR, VARCHAR, TEXT в SQL? Почему важно учитывать между ними разницу?

30. Совпадают ли значения NULL, 0, FALSE, пробела?

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

32. Что значит буква А в акрониме ACID?

33. Что значит буква C в акрониме ACID?

34. Что значит буква I в акрониме ACID?

35. Что значит буква D в акрониме ACID?

36. Что такое уровни изоляции? Какие есть? Зачем они нужны?

37. Какие бывают аномалии чтения?

38. Какой уровень изоляции выбран по умолчанию в РСУБД?

39. Как выбрать уровень изоляции транзакции для приложения?

40. Что такое индекс таблицы?

41. Как верхнеуровнего делятся индексы в РСУБД?

42. Когда использовать кластерный индекс? А когда использовать некластерный индекс?

43. Что такое кластерный индекс?

44. Что такое некластерный индекс? Какие виды бывают?

45. Что работает быстрее кластерный или некластрный индекс и почему?

46. Что такое B-Tree Индексы?

47. Какие минусы имеют b-tree индексы?

48. Что такое Hash Индексы?

49. Что такое Bitmap-Индексы?

50. Что такое GiST Индексы?

51. Что такое GIN (Generalized Inverted Index) Индекс?

52. Что такое Covering Индексы?

53. Что такое Function-Based Индексы?

54. Что такое BRIN индекс?

55. Когда использовать B-Tree Индексы, когда Bitmap Индексы, когда Hash Индексы, когда GiST, когда GIN, когда BRIN индекс, когда Partial Индексы, когда Function-Based Индексы, когда Covering Индексы?

56. Как физически таблица хранится в РСУБД? Какой структурой данных представлена?

57. Как архитектурно представлено ПО РСУБД?

58. В чем различия между ограничениями UNIQUE и UNIQUE индексом?

59. Что такое Covering запрос?

60. Стоит ли устанавливать одновременно кластерный индкс и некластерный? В каких ситуациях это надо?

61. Какие типы таблиц существуют в РСУБД?

62. Для каких случаев подходит таблица типа куча?

63. Что такое SQL-запрос? Как РСУБД выполняет SQL-запрос?

64. Что такое план выполнения SQL-запроса?

65. Как читать план выполнения запроса РСУБД? Какие главные моменты на которые надо обратить внимание?

66. Что такое Оценка стоимости (Cost) операции в плане выполнения SQL запроса?

67. Что такое типы соединений в плане выполнения SQL запроса Nested Loop, Hash Join, Merge Join? Для чего они нужны?

68. Какие есть основные признаки указывающие на необходимость оптимизации в выводе EXPLAIN?

69. Какие есть типы Table Scan у команды EXPLAIN?

70. Какие шаги необходимо предпринять, что бы ускорить SQL-запрос?

71. Какого рода статистика хранится в системных таблицах РСУБД?

72. Какие подводные камни есть при использовании индексов?

73. Что такое блокировка таблицы? Для чего она нужна?

74. Что делать если в рсубд много блокировок?

75. Какое количество блокировок считать приемлимым, а какое нет?

76. Что такое репликация?

77. Какие виды репликаций существуют?

78. Какие подводные камни репликации? Как учесть и бороться с ними?

79. Что такое партиционирование?

80. Что происходит с индексами при партиционировании таблицы?

81. Какие плюсы и минусы партиционирования? Какие подводные камни?

82. Как блокировки работают в условиях партиционирования?

83. Какие основные типы блокировок существуют?

84. Какого уровня бывают блокировки?

85. Что такое шардировариновние?

86. По какому принципу резделять бд при использовании шардирования?

87. Когда использовать шардирование, а когда использовать просто отдельную бд?

88. Какие типы шардирования существуют?

89. Какие есть минусы шардирование? Какие подводные камни?

90. Когда использовать репликацию, когда партиционирование, когда шардирование, когда создавать отдельную бд?

91. Что такое распределённые транзакции? Какие виды бывают? Когда применяются?

92. Что такое транзакции с двуфазной фиксацией (2PC) ?

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

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

95. Из каких подмножеств состоит SQL?

96. Какие операторы доступны в SQL?

97. Что такое JOIN? Как работает? Какие типы бывают?

98. В чём отличие разных JOIN? когда какой применять?

99. В чем разница между перекрестным (cross join) и естественным (natural join) соединением?

100. Какие операторы объединения таблиц существуют помимо JOIN?

101. Когда использовать JOIN, когда UNION, когда UNION ALL, когда INTERSECT, когда EXCEPT?

102. Как работает GROUP BY? Какие подводные камни?

103. Какие есть функции агрегации? Для чего нужны?

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

105. Как работает HAVING?

106. Что такое подзапрос? Когда использовать?

107. Как использовать ANY, ALL, EXIST?

108. Что такое представление? Когда надо использовать? Какие плюсы и минусы?

109. Чем подзапрос отличается от представления?

110. В чем разница между операторами DROP, DELETE, TRUNCATE?

111. Что такое тригеры? Когда использовать?

112. Какие подводные камни триггеров?

113. Что такое хранимые процедуры?Какие типы бывают? Когда применять?

114. Когда применять хранимые процедуры, а когда триггеры?

115. Где правильно хранить бизнес-логику на стороне субд или на стороне бэкенда?

116. Что такое SQL-инъекции?

117. Что такое курсор? Когда использовать?

118. Что такое Live Lock?