Курс обучения программированию на Java | Сайт проекта

< Курс обучения программированию на Java >

Вернуться к содержанию курса

Основы баз данных и SQL

Материалы для самоподготовки

Основные материалы - SQL

  1. Презентация Реляционные базы данных
  2. Презентация Проектирование БД
  3. Презентация Язык SQL
  4. Курс на w3schools
  5. Учебник SQL на русском
  6. Нормальные формы

Дополнительные материалы - SQL

  1. Документация MySQL
  2. Возможности MySQL Workbench
  3. Работа в MySQL

Практическая работа

Первое задание

Вам необходимо выполнить задания на сайте sql-ex.ru из следующих разделов:

Второе задание

  1. Вам необходимо создать схему БД «Интернет-аукцион» в соответствии со следующей EER-диаграммой: alt text
  2. Загрузить схему на сервер (MySQL)
  3. Заполнить таблицы произвольными данными.
  4. Написать запросы в соответствии:
    • Список ставок данного пользователя
    • Список лотов данного пользователя
    • Поиск лотов по подстроке в названии
    • Поиск лотов по подстроке в описании
    • Средняя цена лотов каждого пользователя
    • Максимальный размер имеющихся ставок на каждый лот
    • Список действующих лотов данного пользователя
    • Добавить нового пользователя
    • Добавить новый лот
    • Удалить ставки данного пользователя
    • Удалить лоты данного пользователя
    • Увеличить стартовые цены товаров данного пользователя вдвое
  5. Создать дамп базы данных.
  6. Прикрепить запросы и дамп к цели в гроу.

Вопросы для самоконтроля

DB basics - SQL

  1. Что такое «база данных»?
  2. Что такое «система управления базами данных»?
  3. Что такое «реляционная база данных»?
  4. Что такое «первичный ключ» (primary key)? Каковы критерии его выбора?
  5. Что такое «внешний ключ» (foreign key)?
  6. Какие существуют операторы SQL?
  7. Что означает NULL в SQL?
  8. Что такое «представление» (view) и для чего оно применяется?
  9. Каков общий синтаксис оператора SELECT?
  10. Что такое JOIN?
  11. Какие существуют типы JOIN?
  12. Что лучше использовать JOIN или подзапросы?
  13. Для чего используется оператор HAVING?
  14. чем различие между операторами HAVING и WHERE?
  15. Для чего используется оператор ORDER BY?
  16. Для чего используется оператор GROUP BY?
  17. Как GROUP BY обрабатывает значение NULL?
  18. В чем разница между операторами GROUP BY и DISTINCT?
  19. Перечислите основные агрегатные функции.
  20. В чем разница между COUNT(*) и COUNT({column})?
  21. Что делает оператор EXISTS?
  22. Для чего используются операторы IN, BETWEEN, LIKE?
  23. Для чего применяется ключевое слово UNION?
  24. Какие ограничения на целостность данных существуют в SQL?
  25. Может ли значение в столбце, на который наложено ограничение FOREIGN KEY, равняться NULL?
  26. Что такое «нормализация»?
  27. Какие существуют нормальные формы?
  28. Что такое «денормализация»? Для чего она применяется?
  29. Какие существуют типы связей в базе данных? Приведите примеры.
  30. Что такое «индексы»? Для чего их используют? В чём заключаются их преимущества и недостатки?
  31. В чем отличие между кластерными и некластерными индексами?
  32. Что такое «транзакция»?
  33. Назовите основные свойства транзакции.
  34. Какие существуют уровни изолированности транзакций?
  35. Какие проблемы могут возникать при параллельном доступе с использованием транзакций?