23 Окт 2022
13 мин
11915

Что такое база данных

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

Содержание

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

Если компания небольшая, данные можно сохранить в Google Sheets, файлах Excel или даже в печатном виде в папках. Но если это крупная компания с миллионами операций в день, Excel уже не подойдет: в одном файле помещается максимум около миллиона строк.

Файлы Excel и Google Sheets при сотнях тысяч строк начинают сильно тормозить — работать с информацией в них уже неудобно. Тут на помощь приходят базы данных (БД). В статье разберем виды БД, свойства и популярные системы управления базами данных.

База данных: что это

База данных простыми словами — это место, где хранятся данные в электронном виде.

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

На курсе «Python-разработчик» целый блок посвящен изучению баз данных. Вы узнаете, как работать с SQLite, PostgreSQL и SQLAlchemy. Сделаете проект, где компания сможет выбирать поставщика товаров, исключить поставку одинаковых товаров от разных поставщиков, искать и сортировать информацию.

Чем база данных отличается от таблиц Excel и Google Sheets

Внешне Excel, Google Sheets и базы данных похожи, но разница есть. В БД можно:

  • Хранить больше записей и быстро их обрабатывать.
  • Установить отношения между несколькими таблицами — связи, благодаря которым одновременно обрабатывают данные в нескольких таблицах одной БД. Еще связи нужны, чтобы обеспечить целостность данных и чтобы в базе не было потерянных записей. Если удалить из БД клиента, информация о нём удаляется во всех связанных таблицах. Если добавить — добавляется.
  • Работать с расширенным набором функций: поиск, фильтрация, сортировка, агрегация и т. д.

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

Свойства базы данных

Свойства баз данных:

  • Быстродействие. Excel и Google Sheets тормозят, когда много данных. В них сложнее найти нужное. В БД проще и быстрее — и ничего не тормозит.
  • Простота получения и обновления данных. За два клика можно обновить или добавить данные в базу.
  • Безопасность. В большинстве БД можно настраивать разные уровни доступа к таблицам. Например, давать разрешение читать и редактировать не всем пользователям, а только некоторым.
  • Многопользовательский доступ. С БД одновременно могут работать несколько человек.
  • Объем хранимых данных. База данных дает возможность сохранять миллионы различных записей.

Как хранится информация в БД

По способу хранения данных БД делятся на:

  • Централизованные — вся информация хранится на одном компьютере. Это может быть автономный ПК или сервер, к которому есть доступ у пользователей.
  • Распределенные — информация распределена по разным компьютерам. Используется в локальных и глобальных компьютерных сетях.

База данных — это информационный склад. Сам по себе этот склад не может найти и обработать нужную клиенту информацию.

Приходите на курс «Java-разработчик» — это не только подробные знания и практические навыки по базам данных. Еще 440 часов обучения от топовых экспертов в области, 5 проектов в портфолио, помощь в составлении резюме и диплом установленного образца. Благодаря этому вы легко найдете работу.

Типы баз данных

Существует огромное множество типов баз данных. Наиболее часто используют следующие типы:

  • реляционные,
  • нереляционные,
  • документоориентированные,
  • графовые,
  • колоночные (столбцовые),
  • key-value,
  • сетевые,
  • иерархические.

✔️ Реляционные. Состоят из множества таблиц, а между таблицами есть связи.

Две основные характеристики реляционной базы:

  1. Информация лежит в некотором количестве таблиц и распределена по ним по смыслу.
  2. Таблицы не существуют независимо друг от друга — они связаны определенными столбцами.

Чаще всего специалисты пользуются реляционными базами данных. Это базы, состоящие из множества таблиц, между которыми есть связи. Реляционные БД используют везде, где есть необходимость в сохранении огромных объемов информации: в IT-компаниях, банках, магазинах и так далее.

Обычно данные в реляционной БД хранят во вложенных таблицах. Информацию вносят с помощью записей.

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

Таблица выглядит как лист в Google Sheets или Excel. Она состоит из определенного количества строк и столбцов. У каждого столбца бывает свое имя. В каждом из столбцов содержатся данные, относящиеся к заголовку столбца.

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

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

Если создать реляционную базу данных, например, для такси, то она может содержать такие таблицы:

  • заказы такси;
  • таксисты;
  • клиенты (или пассажиры);
  • автомобили.

База данных такси содержит четыре таблицы, в каждой из которых — определенное количество столбцов. Например, в таблице «Клиенты» три столбца: «ID клиента», «Телефон клиента» и «Город клиента».

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

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

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

✔️ Нереляционные БД. Нереляционные системы баз данных — базы данных, в которых информация содержится в виде документов JSON — стандартный текстовый формат, в котором данные структурированы на основе определенного языка программирования — джаваскрипт. Это язык программирования, который используется, например, для механизма обновления ленты новостей в соцсетях, анимации, интерактивных карт и многого другого. А в случае БД помогает структурировать данные.

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

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

Примеры таких БД — MongoDB, Couchbase, Firebase.

✔️ Key-value базы данных. В такой базе данных удобно хранить информацию, которая легко представляется в виде пары «ключ — значение». Ключ — это специальное поле в таблице с уникальной информацией. Эти поля используют для хранения уникальных идентификаторов объектов, например ID клиента или кода товара. Значение указывает на характеристики ключа.

Самый главный плюс key-value-баз — они быстро выдают значение по ключу. Поэтому такие БД часто используют в задачах, когда ответ от базы важно получать в режиме онлайн.

Key value базы

Пример БД key-value

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

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

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

✔️ Столбцовые. В столбцовые (или колоночные) БД данные записывают в столбцы, а не в строки.

Колоночные БД удобны, когда нас интересует информация не во всех столбцах, а в каких-то конкретных. Искать по конкретным столбцам быстрее, чем по строкам.

Допустим, у нас есть таблица, где 100 миллионов записей за год. В колонке «Дата» будут храниться только 366 записей, потому что в году 366 дней — включая високосные. Можно заменить 100 миллионов отсортированных записей в этом поле на 366 пар значений вида <Дата, количество раз> — и в таком виде хранить их в базе. Такая запись занимает в 100 тысяч раз меньше места и ускоряет выполнение запросов.

Денис Кондратьев, программист с опытом 17 лет, разработчик компьютерных игр, рассказывает о сетевых и иерархических типах баз данных.

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

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

Представьте сетевую базу данных для больницы. У вас есть таблицы «Пациенты», «Врачи» и «Больницы». Пациент может наблюдаться у нескольких врачей: то есть может быть несколько родительских записей. А один врач может наблюдать разных пациентов: у врача несколько дочерних записей. Так врачи и пациенты образуют связанную структуру, или сеть отношений. Еще у больницы множество врачей и пациентов, а врач может быть связан с несколькими больницами. Это создает дополнительные связи в сети.

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

Рассмотрим систему управления файлами на компьютере. Местоположение каждого файла уникально в иерархической структуре каталогов или папок. Например, папка «Мои документы» может содержать подпапки «Фотографии», «Видео» и «Текстовые документы». В этих подпапках есть собственные файлы или дополнительные подпапки. В этом примере «Мои документы» — родительский элемент для «Фотографий», «Видео» и «Текстовых документов», а эти элементы, в свою очередь, могут быть родительскими элементами для своих файлов или подпапок.

Эта структура напоминает иерархическую базу данных, где у элемента есть только один «родитель», но может быть несколько «детей» или подэлементов.

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

Как получить информацию из БД и связать данные между собой

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

Чтобы обозначить связи в БД, используют primary key и foreign key.

Primary key — это столбец (или группа столбцов) в таблице с уникальными значениями. Если брать пример с той же базой такси — primary key каждой таблицы там обозначен светло-зеленым цветом.

Реляционная БД

Пример реляционной БД такси

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

Foreign key — это такой столбец в таблице, в котором содержится primary key из другой таблицы. На картинке foreign key выделены серым. ID автомобиля является primary key в таблице с автомобилями, но во всех других таблицах (например, в таблице с таксистами) ID автомобиля будет являться foreign key.

Выстраивание связей между таблицами — не единственная функция foreign и primary key. Еще они могут помочь контролировать корректность записей в таблицах. Например, если мы хотим добавить запись с новым таксистом в таблицу с таксистами и неправильно написали ID автомобиля, то база данных сообщит об этом. База не найдет соответствующий ID автомобиля в таблице с автомобилями и выдаст сообщение, что где-то произошла ошибка.

Примеры использования баз данных

Базы данных сейчас используют почти везде: это один из надежных способов ничего не потерять.

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

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

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

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

СУБД — система управления базами данных. Это инструменты, с помощью которых запрашивают данные в базе, изменяют или создают базы. В компаниях наиболее популярны такие бесплатные СУБД:

  • Это реляционная СУБД. Ее используют в Google, LinkedIn, Amazon, Meta* и других крупных и средних компаниях.
  • Это объектно-реляционная СУБД. Она поддерживает большое количество разных языков программирования и типов данных. Для этой СУБД можно использовать существующие расширения или писать собственные — создавать скрипты для новых объектов.
  • Это нереляционная документоориентированная СУБД. Может работать с огромными массивами данных весом от 1 Тб.
  • Redis (Remote Dictionary Server). Это открытая NoSQL-система управления базами данных. То есть она не использует язык запросов SQL, а запрашивает данные с помощью других языков программирования и конструкций. Redis полезна, чтобы хранить игровые сессии, рейтинговые таблицы, состояние игроков, статистику игр и других временных или постоянных данных, которые нужно обрабатывать быстро.

Полезные материалы для изучения баз данных

Рассказывает Денис Кондратьев, программист с опытом 17 лет, разработчик компьютерных игр.

Новичкам полезно изучить:

📌 Книги

«Базы данных: Введение в теорию и методологию» А. С. Маркова, К. Ю. Лисовского. В книге — обзор теории баз данных и как их применять на практике.

Database System Concepts А. Силбершатца, Г. Ф. Корта и С. Сударшана. Это классический учебник, который подробно рассказывает о концепциях баз данных.

📌 Онлайн-курсы

Introduction to Databases на Coursera от Стэнфордского университета. Этот курс включает различные виды баз данных: реляционные, иерархические, сетевые и объектно-ориентированные.

Databases на edX от Harvard University. В курсе — про важные концепции: SQL, реляционные базы данных и т. д.

📌 Любой курс по разработке от Skypro.

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

📌 Веб-сайты и блоги

W3Schools — множество учебников и руководств по SQL и другим темам, связанным с базами данных.

Stack Overflow — ответы на вопросы о базах данных и SQL.

Database Journal — статьи, советы, учебники и новости о различных типах баз данных.

📌 Интерактивные платформы для обучения

Codecademy — интерактивные курсы по SQL и работе с базами данных.

SQLZoo — интерактивные упражнения для изучения SQL.

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

Денис Кондратьев
программист, разработчик компьютерных игр

Если хотите анализировать сложные данные, стать продвинутым пользователем Excel и научиться работать с SQL, пройдите курс «Аналитик данных». Освоите профессию с нуля, даже если совсем нет опыта в IT. Мы не только дадим знания, но и доведем до новой работы — или вернем вам деньги за курс. Гарантию прописываем в договоре.

Коротко: что такое база данных

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

*Meta — организация, запрещенная в РФ.

Получите пошаговый план развития в карьере после записи на курс

    Оставляя заявку, вы принимаете условия соглашения

    Учёба ради учёбы — это не прикольно. На наших курсах вы ставите конкретные цели и достигаете их в заданные сроки. Начинайте карьеру с первых достижений!

    Добавить комментарий