A cat is sitting on a database

Большинство сайтов и приложений используют базы данных для хранения информации. К примеру, сайт TesterToday хранит информацию об уровне пользователя в базе данных.

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

База данных — это хранилище, которое позволяет нам эффективно хранить, обрабатывать и управлять большими объёмами информации.

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

frontend backend and database schema

Сущность в базе данных — это конкретный объект, о котором хранится информация.

Любой объект имеет определённые свойства, например у 'Конфеты' есть Наименование, Вкус и Начинка.

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


Сущность 'Конфета'
Свойства объекта:
  1. Идентификатор: уникальный идентификатор
  2. Наименование: текст, описывающий название конфеты
  3. Вкус: текст, описывающий вкусовые качества конфеты
  4. Начинка: принимает значения "Да"/"Нет"
Пример заполнения
Идентификатор Наименование Вкус Начинка
1 Космическая свежесть Мятная Нет
2 Мятная туманность Цитрусово-мятная с легкой кислинкой Да

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


Табличная (реляционная)

Данные хранятся в виде таблиц, состоящих из строк и столбцов.

Схема базы данных:

table-database

Пример заполнения:


Таблица cat

id name age
1 Кот-астронавт 4

Таблица candy

id name taste filling cat_id
3 Космическая свежесть Мятная true 1

Таблицы cat и candy связаны при помощи идентификатора кота cat_id, указанного в таблице candy.

Связь может быть одного из трёх типов:

  • многие ко многим: вообразим, что коты делят конфету пополам, таким образом каждый из них имеет одну и ту же конфету, и не только одну!
  • один к одному: в случае, если коту нельзя иметь более одной конфеты
  • один ко многим: подразумевает, что каждый кот (один) может иметь какое-то количество конфет (много).

Между таблицами candy и cat установлена связь один ко многим. Каждая конфета, принадлежащая Коту-астронавту, имеет поле cat_id, которое содержит его идентификатор.

Базы данных с такой структурой называют реляционными, от англ. relation — отношение, связь.

Документоориентированная

Данные хранятся в виде коллекций документов, обычно в JSON формате.

Схема базы данных отсутствует.

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


Документ cat

document-database-reference-cat

Документ candy

document-database-reference-candy

В случае, если кот нам интересен только с конфетами, которыми он владеет, мы можем хранить его конфеты в embedded (вложенном) виде прямо в документе с котом.

document-database-embedded

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

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

МЕТОДЫ ТЕСТИРОВАНИЯ

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов