JavaRush /Курсы /SQL & Hibernate /Знакомство с базами данных

Знакомство с базами данных

SQL & Hibernate
1 уровень , 0 лекция
Открыта

История появления баз данных: БД и СУБД

Давным-давно в одной американской стране, в крупной IТ-компании однажды возникла задача хранения ну очень больших объемов данных. Что же в этом сложного, спросишь ты? Ведь у крупных компаний есть деньги, а значит, можно купить жестких дисков побольше — и все дела.

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

В общем, все как обычно: заказчики захотели что-то такое, чего не существует, и решение с покупкой жестких дисков в этот раз не прокатило.

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

Но заказчиков такая презентация не устроила, и дальше посыпались придирки:

  • Где деньги, Лебовски?
  • Чем же База Данных лучше, чем старое доброе хранение данных в виде набора файлов?
  • Нам нужно действительно хорошее решение, а не вот это вот все!
  • И на это ушел весь бюджет?

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

  • Создавать, менять и удалять Базы Данных
  • Вносить изменения в базы данных, а именно: добавлять новые записи, удалять старые и менять их
  • А также супер быстро выполнять различные выборки любых данных

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

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

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

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

Популярные СУБД и MySQL

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

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

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

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

Oracle Database

Компания Oracle выпустила свою первую базу данных еще в 1979 году (43 года назад). Она сразу носила название Oracle 2.0, чтобы убедить клиентов, что продукт не новый, а проверенный временем.

Текущая версия базы — Oracle 21c, где буква c — от слова cloud, что как бы намекает, что компания Oracle идет в ногу со временем и ее решения отлично совместимы со всеми облачными технологиями.

Microsoft SQL Server

Компания Microsoft зарабатывает кучу денег, продавая не Windows, а серверные решения для среднего и крупного бизнеса. Microsoft Office, Microsoft SharePoint, Microsoft Server и т. д. И, конечно же, для всего этого нужна хорошая база данных. Поэтому куча компаний, используя продукты и решения Microsoft, вынуждены использовать ее базу данных.

СУБД от Microsoft называется просто SQL Server, так что если услышишь на собеседовании вопрос “работали ли вы с SQL Server?”, то знай, что имеется в виду не абстрактная СУБД, а именно Microsoft SQL Server.

PostgreSQL

Это хорошая бесплатная СУБД, которая часто используется не только мелкими и средними компаниями, но и серьезными корпорациями. Это одна из баз данных, которую предлагает Amazon AWS как DB-as-service.

MySQL

MySQL — это очень популярная бесплатная СУБД с открытым исходным кодом. Она хорошо документирована, быстро работает, поддерживает большой набор функций. На сегодняшний день доступна 8-я версия этой СУБД.

В 2008 ее купила компания Sun, которую в 2009 купила компания Oracle. И это пошло ей только на пользу — продукт постоянно развивается и улучшается.

Мы будем учиться работать с базами данных именно на примере MySQL Community Server 8.0.

Таблицы в базе данных: колонки и столбцы

Разные СУБД могут хранить данные в разных форматах, поэтому мы возьмем самый простой и классический вариант – СУБД MySQL.

И сразу вопрос: как хранить, например, какие-нибудь бухгалтерские документы? Самый простой вариант – это хранить каждый документ в виде Excel-файла. Тогда все связанные друг с другом документы можно хранить в одной папке. Примерно так работает и MySQL.

Еще одна аналогия: в языке Java у тебя в проекте есть классы и пакеты, но в то же время классы и пакеты на диске представлены в виде файлов и папок. Что-то похожее есть и в MySQL.

Данные MySQL хранят в виде таблиц, которые объединены в базы данных, но в то же время таблицы и база представлены на диске в виде файлов и папки. База данных — это папка, а файлы в ней — таблицы.

Каждая таблица состоит из колонок и строк. Пример:

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

Можно провести аналогию между таблицей в MySQL и классом в Java. Таблица — это класс, у таблицы, как и у класса, есть уникальное имя. Колонки таблицы — это поля класса, у колонок, как и у полей, есть уникальное имя и тип. Строки таблицы — это экземпляры класса в Java.

Класс может существовать без объектов, а таблица — без строк. В Java можно создать новый объект, а в MySQL в таблицу можно добавить новую строку. У объекта можно поменять значения полей, а в MySQL можно поменять значения в строке.

Правильнее даже сказать, что таблица — это не класс, а коллекция объектов определенного класса. Если в MySQL у нас есть таблица Employee с данными по сотрудникам, то в Java мы бы пользовались коллекцией ArrayList .

И, конечно, сразу возникает вопрос: а как получить определенные данные из этой коллекции?

Комментарии (36)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Alexander Dayneka Уровень 19
20 марта 2024
Всем привет, тем кто ищет задач по данной теме вот вам сайт https://sql-academy.org/ru Это сборник задач по SQL идет +- вровень с лекциями с нашего любимого джава раш. Если это оказалось вам полезно накидайте лайков для ачивок)))
9 мая 2025
claymore Уровень 21
23 октября 2023
На данный момент, я начинающий, и не знаю там всех тонкостей работы с БД. Но если что, сходу, отвечая на часто задаваемый вопрос: С БД можно работать и без ultimate idea, в обычной community, более того и вовсе не нужно скачивать какой нибудь дополнительный плагин, типа DB Navigator(аналог встроенного в ultimate), или еще чего то.. подобные фишки это просто UI для удобства...
Madina Baizhanova Уровень 29
22 августа 2023
Станислав Future Уровень 39
20 апреля 2023

Сейчас никого не удивишь базой данных из кластера в пару тысяч серверов
а я вот удивился
LuneFox Уровень 41 Expert
15 июня 2024
Срочно надо переписывать статью! "Сейчас только одного человека удивишь базой данных из кластера в пару тысяч серверов"
Роман Уровень 88
29 декабря 2024
блин, ну я тоже удивился, так что исправьте на "двух" пожалуйста
BlackGrizzli Team Уровень 46
18 февраля 2023
А вы знали, чтобы работать с DATABASE в idea нужна платная версия), ну или триал полной версии и успеть за месяц все освоить)
Войтов Роман Уровень 41
3 марта 2023
Поговаривают что если зайти на один интересный сайт, который начинается на "ru" заканчивается на "racker.org", то там в поиске можно набить IntellijIDEA и скачать не совсем актуальную но вполне рабочую и даже бесплатную Ultimate Edition
BlackGrizzli Team Уровень 46
3 марта 2023
Это же хорошо)
Alexander Katsuragi Уровень 9 Expert
13 марта 2023
Как бесплатный и честный вариант - Jetbrains EAP, можно получить ультимейт версию идеи бесплатно.
EM1LJAN Уровень 26
14 июня 2023
есть плагины которые позволяют работать с базой данных без ultimate, но работоспособность data jpa не проверял еще
20 июля 2023
Попробуйте поставить отдельный UI для работы с БД. Они как правило бесплатные. Например для работы с Postgres SQL очень хорошо справляется DBeaver.
1 октября 2023
можно каждый месяц на новую почту подписку делать) и пользоваться на здоровье) то же самое и спринга нету и tomcat и многого другого в бесплатной версиии
NodeOne Уровень 41 Expert
10 октября 2023
JPA Baddy если хочется в IDE с базой работать.
Иван Уровень 16
11 ноября 2023
Это не соответствует действительности.
TemaCode Уровень 51
30 декабря 2022
ехх, жалко без задачек, в любом случае Спасибо разработчикам и с Наступающим Новым Годом!
30 декабря 2022
иди на сайт sql-ex, там можно люто прокачаться
TemaCode Уровень 51
1 января 2023
ну спасибо Кэп, а то я не знал-))
Gans Electro Уровень 4
6 января 2023
звучит как рофл, или как сарказм
Dregid Уровень 40
29 декабря 2022
Главное чтобы не было также как и с JSP)
Kostiantyn Buhaiov Уровень 1
31 декабря 2022
а что там с JSP а то я еще не дошел)
Dregid Уровень 40
31 декабря 2022
Задачек нету)
Vladimir Уровень 40 Master
22 января 2023
Задачи по SQL тут найдешь.
Dregid Уровень 40
23 января 2023
Зачем мне еще SQL?) Я уже давно все что мне нужно получил на sql-academy и на sql-ex. Лишнюю практику (хотя она таковой не бывает) можно на тех же сайтах получить. Здесь же была разведка.
Fl1s Уровень 51
13 августа 2023
Стоит проходить sql-academy?
Dregid Уровень 40
15 августа 2023
Да, стоит. Там сейчас обновили бесплатный курс и его теперь намного приятней проходить чем раньше
Arima- Уровень 25
28 декабря 2022
Жду задачи
Konstantin Ionov Уровень 19
25 декабря 2022
Надеюсь задачки будут к этому модулю.Респект)
Serg_am Уровень 1
24 декабря 2022
Не верю своим глазам!))) Разработчикам жму руку, молодцы!) Еще бы задачки к этому курсы, вас можно было бы расцеловать!😄