Привет! Кажется, что наступила осень 🍁 Что же может радовать в этот период, кроме кофе и одеяла? Крутые проекты!!! ❤️ И возможности, которые всегда открыты!
Коллеги, пока я немного отдыхаю после конференции, крутого открытого вебинара, и готовлю новый материал, который уже завтра начнет появляться здесь, настоятельно рекомендую:
1. Посмотреть вебинар:
📅 Интеграции: пошаговый план работы на проекте
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
*до 14 сентября 23:59Мск,
*посети повтор вебинара в удобное время.
2. Посмотреть практическое обучение по Postman - инструмент по тестированию API для задач на проектирование интеграций 🚀
3. Разобраться, как связаны представление данных в REST API и база данных 😊
Укутываемся в плед, пьём вкусный кофе или чай, и врываемся в продуктивную рабочую атмосферу⚡️
Коллеги, пока я немного отдыхаю после конференции, крутого открытого вебинара, и готовлю новый материал, который уже завтра начнет появляться здесь, настоятельно рекомендую:
1. Посмотреть вебинар:
📅 Интеграции: пошаговый план работы на проекте
🔗 ЗАРЕГИСТРИРОВАТЬСЯ
*до 14 сентября 23:59Мск,
*посети повтор вебинара в удобное время.
2. Посмотреть практическое обучение по Postman - инструмент по тестированию API для задач на проектирование интеграций 🚀
3. Разобраться, как связаны представление данных в REST API и база данных 😊
Укутываемся в плед, пьём вкусный кофе или чай, и врываемся в продуктивную рабочую атмосферу
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10⚡2👍2
Привет! Делаем маппинг для интеграционного сценария "Оплата заказа в онлайн-зоомагазине" 🐕
Я уже немного рассказала про модель БД для проекта PetCo - определила список сущностей. В картинке к этому посту я показываю физическую модель данных для него. Пока без лишних деталей.
Модель БД мне необходима, т.к. интеграция связана с сервером - бэкендом PetCo и его базой данных. Данные, получаемые из внешних систем PetStore и Raif Pay мне придется хранить в базе данных PetCo, чтобы понимать, как потом соотносить товары, заказы и платежи между этими системами.
Давайте обратим внимание на важные детали в модели БД, чтобы перейти к маппингу:
✔️ На этой картинке представлены таблицы реальной базы данных: сущности, который мы храним в БД, и их свойства (поля)
Например, таблица user - таблица с информацией о сущности "пользователь".
А email, name и т.д. - ее свойства.
✔️ Связи с системой PetStore в таблицах product и order
✔️✔️ Нам нужно синхронизировать каталог продуктов product (животные и товары), чтобы для готовых заказов не ходить во внешнюю систему PetStore для отображения состава заказа в наших приложениях. Чтобы устанавливать соответствие между товарами, в нашей БД нужно хранить уникальный идентификатор товара в PetStore - external_id, который будем получать по API.
✔️✔️ Нужно хранить соответствие по заказам между PetCo и PetStore.
Все аналогично: храним уникальный идентификатор заказа в PetStore - external_id.
✔️✔️ Аналогисно с платежом и raif_url и raif_payment_result
✔️ Есть промежуточная таблица между заказом и товаром - это список товаров в заказе. Старндартная таблица, чтобы убрать связь многие-ко-многим и сделать модель базы данных реляционной.
✔️ Количество товаров на складе в нашей системе лучше не хранить. Т.к.можем создать ситуацию, когда в нашей системе неактуальные данные по остаткам животных или товаров в зоомагазине - неконсистентные данные. За проверку остатков должно отвечать API PetStore, когда мы оформляем у них заказ как во внешней системе.
Вопросы по БД? В комментарии.
Продолжаем?🔥
Я уже немного рассказала про модель БД для проекта PetCo - определила список сущностей. В картинке к этому посту я показываю физическую модель данных для него. Пока без лишних деталей.
Модель БД мне необходима, т.к. интеграция связана с сервером - бэкендом PetCo и его базой данных. Данные, получаемые из внешних систем PetStore и Raif Pay мне придется хранить в базе данных PetCo, чтобы понимать, как потом соотносить товары, заказы и платежи между этими системами.
Давайте обратим внимание на важные детали в модели БД, чтобы перейти к маппингу:
✔️ На этой картинке представлены таблицы реальной базы данных: сущности, который мы храним в БД, и их свойства (поля)
Например, таблица user - таблица с информацией о сущности "пользователь".
А email, name и т.д. - ее свойства.
✔️ Связи с системой PetStore в таблицах product и order
✔️✔️ Нам нужно синхронизировать каталог продуктов product (животные и товары), чтобы для готовых заказов не ходить во внешнюю систему PetStore для отображения состава заказа в наших приложениях. Чтобы устанавливать соответствие между товарами, в нашей БД нужно хранить уникальный идентификатор товара в PetStore - external_id, который будем получать по API.
✔️✔️ Нужно хранить соответствие по заказам между PetCo и PetStore.
Все аналогично: храним уникальный идентификатор заказа в PetStore - external_id.
✔️✔️ Аналогисно с платежом и raif_url и raif_payment_result
✔️ Есть промежуточная таблица между заказом и товаром - это список товаров в заказе. Старндартная таблица, чтобы убрать связь многие-ко-многим и сделать модель базы данных реляционной.
✔️ Количество товаров на складе в нашей системе лучше не хранить. Т.к.можем создать ситуацию, когда в нашей системе неактуальные данные по остаткам животных или товаров в зоомагазине - неконсистентные данные. За проверку остатков должно отвечать API PetStore, когда мы оформляем у них заказ как во внешней системе.
Вопросы по БД? В комментарии.
Продолжаем?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤1
Маппинг - сопоставление данных. Что и с чем сопоставлять? 🔑
Есть несколько компонентов системы PetCo, которые участвуют в сценарии оплаты заказа:
✔️ Мобильное приложение / веб-приложения,
✔️ Backend PetCo,
✔️ Backend PetStore (кассовый),
✔️ Raif Pay - платежная система.
Данные, которые надо сопоставлять (маппить) для постановок задач:
🟠 Мобильное приложение / веб-приложения:
на UI.
🟠 Backend PetCo:
в БД сервера,
и в интеграционном методе API, к которому обращаются мобильное или веб-приложение:
🟠 Backend PetStore (кассовый)
в API внешней системы PetStore, БД для нас закрыта.
🟠 Raif Pay - платежная система:
в API внешней системы Raif Pay, БД для нас закрыта.
Когда и в каких случаях рекомендуется описывать маппинг:
🟢 Для задачи на мобильное или веб-приложение:
Маппинг между API PetCo и UI.
🟢 Для задачи на интеграционный API PetCo c Raif Pay:
Маппинг между API PetCo, БД PetCo и API Raif Pay.
🟢 Для задачи на интеграционный API PetCo c PetStore (смена статуса заказа в PetStore на оплаченный:
Маппинг между API PetCo, БД PetCo и API PetStore.
Это три отдельные таблицы маппинга данных, для трех разных постановок задач в рамках интеграции систем. Теперь надо пример 👇
Есть несколько компонентов системы PetCo, которые участвуют в сценарии оплаты заказа:
✔️ Мобильное приложение / веб-приложения,
✔️ Backend PetCo,
✔️ Backend PetStore (кассовый),
✔️ Raif Pay - платежная система.
Данные, которые надо сопоставлять (маппить) для постановок задач:
🟠 Мобильное приложение / веб-приложения:
на UI.
🟠 Backend PetCo:
в БД сервера,
и в интеграционном методе API, к которому обращаются мобильное или веб-приложение:
🟠 Backend PetStore (кассовый)
в API внешней системы PetStore, БД для нас закрыта.
🟠 Raif Pay - платежная система:
в API внешней системы Raif Pay, БД для нас закрыта.
Когда и в каких случаях рекомендуется описывать маппинг:
🟢 Для задачи на мобильное или веб-приложение:
Маппинг между API PetCo и UI.
🟢 Для задачи на интеграционный API PetCo c Raif Pay:
Маппинг между API PetCo, БД PetCo и API Raif Pay.
🟢 Для задачи на интеграционный API PetCo c PetStore (смена статуса заказа в PetStore на оплаченный:
Маппинг между API PetCo, БД PetCo и API PetStore.
Это три отдельные таблицы маппинга данных, для трех разных постановок задач в рамках интеграции систем. Теперь надо пример 👇
❤6
Проектирование интеграционного метода для получения статуса заказа через RaifPay 💻
🧩 Для получения статуса заказа после его создания подходит метод GET https://pay-test.raif.ru/api/payment/v1/orders/{orderId}, который возвращает полную информацию о заказе по идентификатору.
🧩 GET https://pay-test.raif.ru/api/payment/v1/orders/{orderId}
path Parameters:
+ orderId
header Parameters:
+ Authorization (Bearer secretKey)
Ответ (успешный):
Мобильному и веб-приложению не рекомендуется обращаться напрямую к API Raif Pay, т.к. запрос подписывается секретным ключом Bearer secretKey - общий для всех запросов ото всех пользователей в Raif Pay. Хранить его в мобильном приложении или получать с сервера для использования в запросах к RaifPay с клиента опасно. Есть риск его утери и использования в целях мошенничества.
С целью безопасности, интеграция систем PetCo и Raif Pay реализуется через бэкенд-приложение PetCo.
🟢 Для реализации этой интеграции необходимо разработать интеграционный API-метод в PetCo.
На вход методу предаются: id заказа в PetCo, авторизация пользователя PetCo (при наличии).
Результат вызова метода: сведения об актуальном статусе заказа в Raif Pay, получаемые в систему PetCo. Если статус в Raif Pay обновляется, то его необходимо синхронизировать с PetCo и перезаписать в БД PetCo. Вернуть пользователю API PetCo актуальный статус.
🟢 Дизайн метода REST API предлагается сделать так:
GET ..../order/{orderId}
path Parameters:
+ orderId
header:
+ Authorization (при наличии)
Ответ (успешный):
{
"id": "id в PetCo",
"number": 23245,
"externalId": "...",
"userId": "...",
"amount": 12500.5,
"comment": "Покупка кота",
"status": "NEW",
"date": "2019-08-24T14:15:22+03:00",
"expirationDate": "2019-08-24T14:15:22+03:00",
"products":
[ { "id": ...., "name": ... }, { "id": ...., "name": ... } ]
}
🧩 Для получения статуса заказа после его создания подходит метод GET https://pay-test.raif.ru/api/payment/v1/orders/{orderId}, который возвращает полную информацию о заказе по идентификатору.
🧩 GET https://pay-test.raif.ru/api/payment/v1/orders/{orderId}
path Parameters:
+ orderId
header Parameters:
+ Authorization (Bearer secretKey)
Ответ (успешный):
{
"amount": 12500.5,
"comment": "Покупка кота",
"status": {
"value": "NEW",
"date": "2019-08-24T14:15:22+03:00"
},
"expirationDate": "2019-08-24T14:15:22+03:00"
}Мобильному и веб-приложению не рекомендуется обращаться напрямую к API Raif Pay, т.к. запрос подписывается секретным ключом Bearer secretKey - общий для всех запросов ото всех пользователей в Raif Pay. Хранить его в мобильном приложении или получать с сервера для использования в запросах к RaifPay с клиента опасно. Есть риск его утери и использования в целях мошенничества.
С целью безопасности, интеграция систем PetCo и Raif Pay реализуется через бэкенд-приложение PetCo.
🟢 Для реализации этой интеграции необходимо разработать интеграционный API-метод в PetCo.
На вход методу предаются: id заказа в PetCo, авторизация пользователя PetCo (при наличии).
Результат вызова метода: сведения об актуальном статусе заказа в Raif Pay, получаемые в систему PetCo. Если статус в Raif Pay обновляется, то его необходимо синхронизировать с PetCo и перезаписать в БД PetCo. Вернуть пользователю API PetCo актуальный статус.
🟢 Дизайн метода REST API предлагается сделать так:
GET ..../order/{orderId}
path Parameters:
+ orderId
header:
+ Authorization (при наличии)
Ответ (успешный):
{
"id": "id в PetCo",
"number": 23245,
"externalId": "...",
"userId": "...",
"amount": 12500.5,
"comment": "Покупка кота",
"status": "NEW",
"date": "2019-08-24T14:15:22+03:00",
"expirationDate": "2019-08-24T14:15:22+03:00",
"products":
[ { "id": ...., "name": ... }, { "id": ...., "name": ... } ]
}
🔥10
GetAnalyst_Маппинг_Получение_актуального_статуса_заказа_GetAnalyst.pdf
183.9 KB
Пример описания маппинга данных для интеграционных методов 🤝 Таблицы внутри
🔥18
Я слышу и вижу сплошное:
🔹 В вакансиях аналитиков нужны знания API!
🔹 В вакансиях аналитиков нужны знания по интеграциям и архитектуре систем!
🔹 Аналитики должны понимать принципы микросервисной архитектуры!
Согласна. Важно. Нужно.
Но при этом всем базы данных кажутся чем-то второстепенным. Однако понимание БД — это ключевой навык каждого системного аналитика. И даже если в вакансии этого требования нет, то это умение все равно должно быть. Почему? Давайте разберемся.
БД — это фундамент системы, который влияет на реализацию всех требований.
✨ Функциональные требования
Пример про Интернет-магазин. Когда вы выбираете товар, смотрите его описание, фото, отзывы других покупателей – все эти данные хранятся в БД.
БД – это как склад магазина. Если на «складе» нет нужной информации или она представлена, неверно, покупка не состоится.
✨ Нефункциональные требования
После добавления товара в корзину сайт долго грузится или вылетает. Возможно, проблема в том, как БД обрабатывает большой поток данных.
Таким образом, струтктура БД влияет на скорость, стабильность и масштабируемость функциональности Интернет-магазина.
🔗 Интеграции и REST
Мы все больше используем API для интеграции разных систем. Но без данных, API – просто мост в пустоту. То, что вы видите в посте выше про маппинг данных, яркий пример того, что API — проводник в данные системы.
API — программный интерфейс, который позволяет избегать прямых SQL-запросов к БД с целью усиления безопасности системы, и обращается к ее данным.
Сервис бронирования отелей. Когда вы ищете свободный номер на выбранные даты, ваш запрос через API направляется к БД. Именно БД «расскажет» информацию, какие номера доступны.
Продолжение 👇
🔹 В вакансиях аналитиков нужны знания API!
🔹 В вакансиях аналитиков нужны знания по интеграциям и архитектуре систем!
🔹 Аналитики должны понимать принципы микросервисной архитектуры!
Согласна. Важно. Нужно.
Но при этом всем базы данных кажутся чем-то второстепенным. Однако понимание БД — это ключевой навык каждого системного аналитика. И даже если в вакансии этого требования нет, то это умение все равно должно быть. Почему? Давайте разберемся.
БД — это фундамент системы, который влияет на реализацию всех требований.
✨ Функциональные требования
Пример про Интернет-магазин. Когда вы выбираете товар, смотрите его описание, фото, отзывы других покупателей – все эти данные хранятся в БД.
БД – это как склад магазина. Если на «складе» нет нужной информации или она представлена, неверно, покупка не состоится.
✨ Нефункциональные требования
После добавления товара в корзину сайт долго грузится или вылетает. Возможно, проблема в том, как БД обрабатывает большой поток данных.
Таким образом, струтктура БД влияет на скорость, стабильность и масштабируемость функциональности Интернет-магазина.
🔗 Интеграции и REST
Мы все больше используем API для интеграции разных систем. Но без данных, API – просто мост в пустоту. То, что вы видите в посте выше про маппинг данных, яркий пример того, что API — проводник в данные системы.
API — программный интерфейс, который позволяет избегать прямых SQL-запросов к БД с целью усиления безопасности системы, и обращается к ее данным.
Сервис бронирования отелей. Когда вы ищете свободный номер на выбранные даты, ваш запрос через API направляется к БД. Именно БД «расскажет» информацию, какие номера доступны.
Продолжение 👇
❤10👍2
База данных – это не просто место хранения информации. Это основа, на которой строится вся система. Глубокое понимание БД поможет нам создавать более точные требования к системам не упускать из вида особенности проектирования, делать системы масштабируемыми, надежными, быстрыми и эффективными.
Держите руку на пульсе и...! 🔍 Welcome to the new project!
В программе:
🌟 Определение и назначение БД.
🌟 Концептуальный, логический и физический уровень на практике. Работа с требованиями.
🌟 SQL-запросы.
🌟 Индексы, требования к обратной совместимости, связь с API и нефункциональными требованиями.
Я готова проектировать. Готовы принимать участие? ❤️
Держите руку на пульсе и...! 🔍 Welcome to the new project!
В программе:
🌟 Определение и назначение БД.
🌟 Концептуальный, логический и физический уровень на практике. Работа с требованиями.
🌟 SQL-запросы.
🌟 Индексы, требования к обратной совместимости, связь с API и нефункциональными требованиями.
Я готова проектировать. Готовы принимать участие? ❤️
❤61
🌟Самая важная теория по БД для старта работы на проекте🌟
мини-гайд для аналитиков
Погрузимся в технические детали БД на примере системы для онлайн-зоомагазина PetCo.
1️⃣ База данных (БД):
Структурированный набор данных, хранящийся в электронном виде на сервере.
Основные типы: реляционные, NoSQL.
Пример: БД нашего зоомагазина PetCo содержит информацию о товарах, заказах, клиентах и поставщиках.
2️⃣ Сущности в БД:
Это объекты реального мира с определенным набором свойств.
Технически: таблицы с определенным набором атрибутов.
Пример: В зоомагазине у нас есть таблица Животные с атрибутами ID, Вид, Цена, Поставщик.
3️⃣ Реляционная БД:
БД, где данные организованы в виде таблиц со связями.
Сравнивайте со страницами в EXCEL-документе. Каждая страница - отдельная таблица в БД, которая иногда может ссылаться на соседнюю страницу.
От английского relations - связи, отношения.
Пример: В таблице Заказы есть колонка ID_животного, которая связывается с ID в таблице Животные, указывая, какое животное было куплено.
4️⃣ Этап проектирования БД:
Это момент определения структуры данных и связей в системе. Обычно выполняется после того, как завершена работа с описанием бизнес-процессов. Помогает в разработке функциональных требований.
Оценка разработки системы может быть основана на количестве сущностей в системе и количестве операций над ними.
Пример: Прежде чем добавить в систему раздел с товарами для животных, мы спроектируем новую таблицу Товары и определим, как она будет связана с другими таблицами, какая функциональность будет доступна для товаров разным ролям пользователей (CRUD-модель).
⬇️⬇️⬇️
мини-гайд для аналитиков
Погрузимся в технические детали БД на примере системы для онлайн-зоомагазина PetCo.
1️⃣ База данных (БД):
Структурированный набор данных, хранящийся в электронном виде на сервере.
Основные типы: реляционные, NoSQL.
Пример: БД нашего зоомагазина PetCo содержит информацию о товарах, заказах, клиентах и поставщиках.
2️⃣ Сущности в БД:
Это объекты реального мира с определенным набором свойств.
Технически: таблицы с определенным набором атрибутов.
Пример: В зоомагазине у нас есть таблица Животные с атрибутами ID, Вид, Цена, Поставщик.
3️⃣ Реляционная БД:
БД, где данные организованы в виде таблиц со связями.
Сравнивайте со страницами в EXCEL-документе. Каждая страница - отдельная таблица в БД, которая иногда может ссылаться на соседнюю страницу.
От английского relations - связи, отношения.
Пример: В таблице Заказы есть колонка ID_животного, которая связывается с ID в таблице Животные, указывая, какое животное было куплено.
4️⃣ Этап проектирования БД:
Это момент определения структуры данных и связей в системе. Обычно выполняется после того, как завершена работа с описанием бизнес-процессов. Помогает в разработке функциональных требований.
Оценка разработки системы может быть основана на количестве сущностей в системе и количестве операций над ними.
Пример: Прежде чем добавить в систему раздел с товарами для животных, мы спроектируем новую таблицу Товары и определим, как она будет связана с другими таблицами, какая функциональность будет доступна для товаров разным ролям пользователей (CRUD-модель).
⬇️⬇️⬇️
❤13❤🔥4👍1
5️⃣ Уровни проектирования БД:
✔️ Концептуальный: Определение сущностей БД и их отношений.
Пример: В PetCo нам нужны таблицы для животных, покупателей и заказов.
✔️ Логический: Определение таблиц, атрибутов и связей.
Пример: Решаем, какие данные будем хранить о каждом животном (возраст, порода, цена), какие таблицы будут созданы для описания каждой сущности.
✔️ Физический: Определение способа хранения данных и оптимизации. Определение требований к типам данных, обязательности, уникальности, значениям по умолчанию. На этом этапе мы точно знаем с чем работаем: SQLite, PostgreSQL, mongoDB и т.д.
Пример: Выбираем тип индексации для быстрого поиска животных по породе.
Или определяем, что ФИО пользователя это три отдельных поля типа данных varchar (для PostgreSQL) до 128 символов.
6️⃣ ER-диаграмма (Entity-Relationship):
Графическое представление сущностей БД и связей. Нотация моделирования баз данных.
7️⃣ SQL-запросы:
Специальный язык запросов для управления данными.
Пример:
SELECT Имя FROM Животные WHERE Вид = 'Кошка' AND Цена < 1000;
- запрос вернет имена всех кошек, которые стоят меньше 1000. Переводите ключевые слова с английского 😉
8️⃣ Система управления базами данных (СУБД):
Программный комплекс, позволяющий создавать, обрабатывать и управлять БД.
Пример: PostgreSQL, Oracle или MySQL – это СУБД, с помощью которых можно управлять данными в нашем зоомагазине.
Работать будем с PostgreSQL.
9️⃣ Отличие БД от СУБД:
БД – это непосредственно сами данные и их структура, в то время как СУБД – инструменты и методы для работы с этими данными.
Пример: Если сравнивать с книгой, то БД – это текст книги, а СУБД – это издательство и набор инструментов для публикации и распространения этой книги.
Для успешной работы на проекте Зоомагазина важно глубокое понимание базы данных: от подходов к формированию структуры до SQL-запросов. Это меняет понимание систем и подход к работе с требованиями, когда вы осознаете, что "под капотом", на сервере.
Наша цель на проекте PetCo освоить навык проектирования БД с нуля до SQL-запросов и добавить вам еще больше практического опыта в копилку 🙌
✔️ Концептуальный: Определение сущностей БД и их отношений.
Пример: В PetCo нам нужны таблицы для животных, покупателей и заказов.
✔️ Логический: Определение таблиц, атрибутов и связей.
Пример: Решаем, какие данные будем хранить о каждом животном (возраст, порода, цена), какие таблицы будут созданы для описания каждой сущности.
✔️ Физический: Определение способа хранения данных и оптимизации. Определение требований к типам данных, обязательности, уникальности, значениям по умолчанию. На этом этапе мы точно знаем с чем работаем: SQLite, PostgreSQL, mongoDB и т.д.
Пример: Выбираем тип индексации для быстрого поиска животных по породе.
Или определяем, что ФИО пользователя это три отдельных поля типа данных varchar (для PostgreSQL) до 128 символов.
6️⃣ ER-диаграмма (Entity-Relationship):
Графическое представление сущностей БД и связей. Нотация моделирования баз данных.
7️⃣ SQL-запросы:
Специальный язык запросов для управления данными.
Пример:
SELECT Имя FROM Животные WHERE Вид = 'Кошка' AND Цена < 1000;
- запрос вернет имена всех кошек, которые стоят меньше 1000. Переводите ключевые слова с английского 😉
8️⃣ Система управления базами данных (СУБД):
Программный комплекс, позволяющий создавать, обрабатывать и управлять БД.
Пример: PostgreSQL, Oracle или MySQL – это СУБД, с помощью которых можно управлять данными в нашем зоомагазине.
Работать будем с PostgreSQL.
9️⃣ Отличие БД от СУБД:
БД – это непосредственно сами данные и их структура, в то время как СУБД – инструменты и методы для работы с этими данными.
Пример: Если сравнивать с книгой, то БД – это текст книги, а СУБД – это издательство и набор инструментов для публикации и распространения этой книги.
Для успешной работы на проекте Зоомагазина важно глубокое понимание базы данных: от подходов к формированию структуры до SQL-запросов. Это меняет понимание систем и подход к работе с требованиями, когда вы осознаете, что "под капотом", на сервере.
Наша цель на проекте PetCo освоить навык проектирования БД с нуля до SQL-запросов и добавить вам еще больше практического опыта в копилку 🙌
❤13👍3
В процессе разработки выясняется, что в требованиях опять что-то не учли. Что может быть хуже? 😱
Может, коллеги! Когда через пол года вам же приходится возвращаться к задаче и вы понимаете, что требования к развитию системы по словам разработчиков нереализуемы.
Меня, как начинающего системного аналитика, это выводило из себя. Как так?! Элементарная же задача! А потом мне показывают БД. И тут я всё понимаю. Да, действительно, пришло время делать выбор: дорого переделывать или "костыли" подойдут.
Один раз столкнувшись с такой ситуацией, больше не хочется оставлять без внимания базу данных. Даже если проектирование БД в компании находится в зоне ответственности разработчиков.
Написала для вас статью:
📚Проектирование БД и почему важен SQL для системного аналитика: гайд по улучшению качества требований
🌟 Как в разработке систем возникают ситуации "костыли" или "переделываем", и почему обычно это связано с непродуманной структурой БД.
🌟 Как проектирование БД на ранних стадиях работы с проектом влияет на качество требований.
🌟 Дам пошаговый план проектирования БД.
🌟 SQL-запросы: почему нужно уметь читать.
В конце статьи рекомендации: что почитать и посмотреть 🔗
Может, коллеги! Когда через пол года вам же приходится возвращаться к задаче и вы понимаете, что требования к развитию системы по словам разработчиков нереализуемы.
Меня, как начинающего системного аналитика, это выводило из себя. Как так?! Элементарная же задача! А потом мне показывают БД. И тут я всё понимаю. Да, действительно, пришло время делать выбор: дорого переделывать или "костыли" подойдут.
Один раз столкнувшись с такой ситуацией, больше не хочется оставлять без внимания базу данных. Даже если проектирование БД в компании находится в зоне ответственности разработчиков.
Написала для вас статью:
📚Проектирование БД и почему важен SQL для системного аналитика: гайд по улучшению качества требований
🌟 Как в разработке систем возникают ситуации "костыли" или "переделываем", и почему обычно это связано с непродуманной структурой БД.
🌟 Как проектирование БД на ранних стадиях работы с проектом влияет на качество требований.
🌟 Дам пошаговый план проектирования БД.
🌟 SQL-запросы: почему нужно уметь читать.
В конце статьи рекомендации: что почитать и посмотреть 🔗
❤13👍6🔥3
Сколько времени нужно учиться системному аналитику, чтобы хорошо зарабатывать и чувствовать себя уверенно в больших проектах? Согласитесь, вопрос звучит как испытание 🤔 И, честно говоря, нет универсального ответа на него.
Давайте поговорим на моем примере. Моё обучение никогда не прекращается. Я обучаюсь новому не просто 1-2 раза в год, это для меня стало частью жизни. И здесь речь идет не о том, чтобы просто копить знания, но о том, чтобы их применять, чтобы расти как профессионал.
В мире, где изменения происходят мгновенно, постоянное развитие не просто желание, но и необходимость. Сила духа и уверенность в себе дают нам энергию двигаться вперёд, преодолевать препятствия и достигать новых вершин в личной и профессиональной жизни.
👥 Личное развитие:
Все мы сталкиваемся с ситуациями, требующими проявления нашей уверенности, будь то высказывание своего мнения или принятие важного решения. Эти моменты становятся тестом для нашего духа.
🛠 Профессиональное развитие:
В каждой профессии важно сочетание Hard skills 🏋♀️ и Soft skills 👥. Для системного аналитика, например, важны навыки проектирования БД. Этот "твёрдый" навык помогает понимать требования к данным, структурировать их и задавать правильные вопросы заказчикам.
🌍 Информация и ее анализ:
В эпоху данных важность правильной структуризации и понимания информации, обработки данных становится критически важной.
Каждый новый навык или опыт, который вы приобретаете, делает вас сильнее и более конкурентоспособным. Не бойтесь новых вызовов и идите вперёд к новым вершинам! 🌟
Давайте поговорим на моем примере. Моё обучение никогда не прекращается. Я обучаюсь новому не просто 1-2 раза в год, это для меня стало частью жизни. И здесь речь идет не о том, чтобы просто копить знания, но о том, чтобы их применять, чтобы расти как профессионал.
В мире, где изменения происходят мгновенно, постоянное развитие не просто желание, но и необходимость. Сила духа и уверенность в себе дают нам энергию двигаться вперёд, преодолевать препятствия и достигать новых вершин в личной и профессиональной жизни.
👥 Личное развитие:
Все мы сталкиваемся с ситуациями, требующими проявления нашей уверенности, будь то высказывание своего мнения или принятие важного решения. Эти моменты становятся тестом для нашего духа.
🛠 Профессиональное развитие:
В каждой профессии важно сочетание Hard skills 🏋♀️ и Soft skills 👥. Для системного аналитика, например, важны навыки проектирования БД. Этот "твёрдый" навык помогает понимать требования к данным, структурировать их и задавать правильные вопросы заказчикам.
🌍 Информация и ее анализ:
В эпоху данных важность правильной структуризации и понимания информации, обработки данных становится критически важной.
Каждый новый навык или опыт, который вы приобретаете, делает вас сильнее и более конкурентоспособным. Не бойтесь новых вызовов и идите вперёд к новым вершинам! 🌟
👍13🔥8👏4❤1
Привет, коллеги!
Мы с вами продолжаем работать над проектом PetCo, с которым уже работали в рамках интеграций.
🐈🐕 PetCo - это веб-сайт и мобильные приложения для сети зоомагазинов, интегрированные с собственным Backend-приложением PetStore и платежной системой Raif Pay.
Моя первая задача - внимательно прочитать готовые требования или описания процессов и выделить из них сущности (ж) и свойства (к).
К анализу беру тексты требований из сообщения 🔗Про проект.
Читайте внимательно. Обращайте внимание на разметку текста.
-----
Цель проекта:
Создать интегрированное решение, объединяющее 🔓 веб-сайт, мобильные приложения и административную панель 🔶сети зоомагазинов PetCo с собственным Backend-приложением и платежной системой Raif Pay, с возможностью онлайн-оплаты для 🔹клиентов зоомагазина PetCo.
Основные требования:
🟢 Функциональность веб-сайта и мобильных приложений:
- Возможность просмотра ♦️ассортимента, выбора животных или товаров, и оформления 💠заказа.
- Синхронизация 🧺корзины и 💠истории заказов между сайтом и приложениями.
🟢 Административная панель (админка):
- Интерфейс для учета и управления ассортиментом животных, товаров.
- Отслеживание и обработка 💠заказов.
- 📃Аналитика продаж, популярности определенных животных, товаров и другие отчеты.
🟢 Интеграция с Backend-приложением:
- Синхронизация данных о товарах, ценах и наличии животных и товаров между всеми платформами для клиентов магазина и backend-приложением.
- Автоматизированный обмен данными о заказах и статусах заказов.
- Возможность управления ♦️каталогом (‼️) через административную панель.
🟢 Интеграция с платежной системой Raif Pay:
- Обеспечение безопасности 💵платежных данных клиентов.
- Проведение 💵 платежей за заказы в Интернет-зоомагазине.
- Автоматическое получение обновлений о статусах оплаты из платежной системы.
-----
Этот этап "вычитки требований". Вы уже видите первичные сущности и свойства, которые удалось определить из короткого описания проекта.
Структурированный результат и вопросы заказчику в продолжении 👇
Мы с вами продолжаем работать над проектом PetCo, с которым уже работали в рамках интеграций.
🐈🐕 PetCo - это веб-сайт и мобильные приложения для сети зоомагазинов, интегрированные с собственным Backend-приложением PetStore и платежной системой Raif Pay.
Моя первая задача - внимательно прочитать готовые требования или описания процессов и выделить из них сущности (ж) и свойства (к).
К анализу беру тексты требований из сообщения 🔗Про проект.
Читайте внимательно. Обращайте внимание на разметку текста.
-----
Цель проекта:
Создать интегрированное решение, объединяющее 🔓 веб-сайт, мобильные приложения и административную панель 🔶сети зоомагазинов PetCo с собственным Backend-приложением и платежной системой Raif Pay, с возможностью онлайн-оплаты для 🔹клиентов зоомагазина PetCo.
Основные требования:
🟢 Функциональность веб-сайта и мобильных приложений:
- Возможность просмотра ♦️ассортимента, выбора животных или товаров, и оформления 💠заказа.
- Синхронизация 🧺корзины и 💠истории заказов между сайтом и приложениями.
🟢 Административная панель (админка):
- Интерфейс для учета и управления ассортиментом животных, товаров.
- Отслеживание и обработка 💠заказов.
- 📃Аналитика продаж, популярности определенных животных, товаров и другие отчеты.
🟢 Интеграция с Backend-приложением:
- Синхронизация данных о товарах, ценах и наличии животных и товаров между всеми платформами для клиентов магазина и backend-приложением.
- Автоматизированный обмен данными о заказах и статусах заказов.
- Возможность управления ♦️каталогом (‼️) через административную панель.
🟢 Интеграция с платежной системой Raif Pay:
- Обеспечение безопасности 💵платежных данных клиентов.
- Проведение 💵 платежей за заказы в Интернет-зоомагазине.
- Автоматическое получение обновлений о статусах оплаты из платежной системы.
-----
Этот этап "вычитки требований". Вы уже видите первичные сущности и свойства, которые удалось определить из короткого описания проекта.
Структурированный результат и вопросы заказчику в продолжении 👇
🔥8❤3👍2
Структурированный результат по сущностям и свойствам:
🔓 Роли и доступы
✔️ Тип приложения: веб-сайт, мобильные приложения и административную панель
✔️ Роль: админ, клиент, продавец, остальное уточнять у заказчика
🔶 Магазин
✔️ Адрес: т.к. сеть, то магазинов много, либо складов. Уточнить, есть ли склады.
🔹 Клиент
🧺 Корзина для заказа
♦️Ассортимент = каталог (‼️сделать единую терминологию)
✔️ Тип: животные, товары для животных.
✔️ Цена (в какой валюте? Если руб, то как храним: руб.коп или просто копейки?)
✔️ Наличие
✔️ Данные о товарах: уточнить у заказчика что подразумевает под "данные"
💠Заказ = история заказов
✔️ Статус: для отслеживания.
✔️ Дата и время: для истории.
📃 Отчет
✔️ Тип: продажи, популярность животных / товаров, другие (уточнять!)
💵 Платеж
✔️ Платежные данные клиента
✔️ Статус: из платежной системы RaifPay
----------
Исходя из этого структурированного представления данных я понимаю, что вопросов заказчику очень много.
🧠 С ходу по 1-2 вопроса минимум к каждой сущности:
Обратите внимание, что я, как системный аналитик работаю на двух фронтах. Максимально избегаю технических формулировок для заказчика.
Роли и доступы
❓Какие сотрудники должны иметь доступ к админке?
❓Правильно понимаю, что клиентов надо регистрировать в системе, чтобы они могли видеть историю покупок?
Магазин
❓Что кроме адреса необходимо хранить о магазине в системе?
❓Какие данные в вашей кассовой системе petStore есть о магазинах сети?
Клиент
❓Какие данные храним о клиенте?
❓Регистрируем с подтверждением по СМС или по почте?
Корзина для заказа
❓Есть ли ограничение на количество товаров или животных в одном заказе?
Ассортимент
❓Какие параметры надо отображать клиентам интернет-зоомагазина для каждого типа?
❓Есть ли типы ассортимента кроме животных и товаров? Возможно услуги?
Заказ = история заказов
❓Как номеруем заказы Интернет-зоомагазина и синхронизируем с вашим кассовой системой petStore?
Отчет
❓Очень много вопросов 😂
Платеж
❓ Какие данные о платежах из платежной системы нам важно хранить?
❓Будем ли поддерживать возврат (статус "возвращен") для заказов? Это нужно, чтобы также проанализировать данные о платежах к сохранению.
Коллеги, предлагаю и вам попрактиковаться в комментариях. Какие вопросы вы видете по этим требованиям и списку сущностей 👇
🔓 Роли и доступы
✔️ Тип приложения: веб-сайт, мобильные приложения и административную панель
✔️ Роль: админ, клиент, продавец, остальное уточнять у заказчика
🔶 Магазин
✔️ Адрес: т.к. сеть, то магазинов много, либо складов. Уточнить, есть ли склады.
🔹 Клиент
🧺 Корзина для заказа
♦️Ассортимент = каталог (‼️сделать единую терминологию)
✔️ Тип: животные, товары для животных.
✔️ Цена (в какой валюте? Если руб, то как храним: руб.коп или просто копейки?)
✔️ Наличие
✔️ Данные о товарах: уточнить у заказчика что подразумевает под "данные"
💠Заказ = история заказов
✔️ Статус: для отслеживания.
✔️ Дата и время: для истории.
📃 Отчет
✔️ Тип: продажи, популярность животных / товаров, другие (уточнять!)
💵 Платеж
✔️ Платежные данные клиента
✔️ Статус: из платежной системы RaifPay
----------
Исходя из этого структурированного представления данных я понимаю, что вопросов заказчику очень много.
🧠 С ходу по 1-2 вопроса минимум к каждой сущности:
Обратите внимание, что я, как системный аналитик работаю на двух фронтах. Максимально избегаю технических формулировок для заказчика.
Роли и доступы
❓Какие сотрудники должны иметь доступ к админке?
❓Правильно понимаю, что клиентов надо регистрировать в системе, чтобы они могли видеть историю покупок?
Магазин
❓Что кроме адреса необходимо хранить о магазине в системе?
❓Какие данные в вашей кассовой системе petStore есть о магазинах сети?
Клиент
❓Какие данные храним о клиенте?
❓Регистрируем с подтверждением по СМС или по почте?
Корзина для заказа
❓Есть ли ограничение на количество товаров или животных в одном заказе?
Ассортимент
❓Какие параметры надо отображать клиентам интернет-зоомагазина для каждого типа?
❓Есть ли типы ассортимента кроме животных и товаров? Возможно услуги?
Заказ = история заказов
❓Как номеруем заказы Интернет-зоомагазина и синхронизируем с вашим кассовой системой petStore?
Отчет
❓Очень много вопросов 😂
Платеж
❓ Какие данные о платежах из платежной системы нам важно хранить?
❓Будем ли поддерживать возврат (статус "возвращен") для заказов? Это нужно, чтобы также проанализировать данные о платежах к сохранению.
Коллеги, предлагаю и вам попрактиковаться в комментариях. Какие вопросы вы видете по этим требованиям и списку сущностей 👇
👍8❤1
Есть три уровня моделей БД:
1. Концептуальный
2. Логический
3. Физический
Каждый из них имеет свое назначение, и создается на определенных стадиях работы над проектом.
Не все уровни обязательны. Каждый из них помогает в работе системному аналитику по-своему:
+ собрать полные требования,
+ найти неочевидные вопросы для заказчика,
+ спроектировать масштабируемую систему,
+ сократить расходы на инфраструктуру,
+ повысить скорость обработки запроов пользователей...
Разбирать на практике будем все уровни 🙌
1. Концептуальный
2. Логический
3. Физический
Каждый из них имеет свое назначение, и создается на определенных стадиях работы над проектом.
Не все уровни обязательны. Каждый из них помогает в работе системному аналитику по-своему:
+ собрать полные требования,
+ найти неочевидные вопросы для заказчика,
+ спроектировать масштабируемую систему,
+ сократить расходы на инфраструктуру,
+ повысить скорость обработки запроов пользователей...
Разбирать на практике будем все уровни 🙌
❤12👍7👎1
Концептуальная модель БД 🎓 (1 из 3-х уровней проектирования БД)
Нужна, чтобы наглядно показать все сущности в будущей системе и связи мужду ними.
Она служит основой для создания физической модели базы данных - реальной БД. Это первый подход, взгляд на данные сверху.
Практическое применение концептуальной модели базы данных может быть связано с созданием новой системы или полной переделкой существующей (например, когда от монолитной архитектуры переходят к сервисной или микросервисной).
Что будет в нашей концептуальной модели?
Список сущностей:
▫️Роли и доступы
▫️Магазин (не показала на схеме, так что маленькое задание для вас к логическому уровню остается)
▫️ Клиент
▫️ Корзина для заказа
▫️Ассортимент
▫️Заказ
▫️Отчет
▫️Платеж
Связи (на картинке пока без кратностей, будем ставить кратности сразу на логическом уровне):
🔵 Один клиент может сделать несколько заказов. Но один заказ принадлежит только одному клиенту.(связь "один-ко-многим")
🔵 Один администратор может сделать много отчетов. Но один отчет создается одним администратором. (связь "один-ко-многим")
🔵 В корзине по заказу может быть много товаров. Один товар может быть в нескольких разных корзинах по заказу, у разных пользователей. (связь "многие-ко-многим")
На концептуальном уровне мы пока говорим только про сущности, свойств пока нет. На этом уровне я думаю о том, какие данные глобально нужно хранить. Извлекаю сущности из требований и кладу в картинку.
Я очень лояльно отнеслась к концептуальному уровню. На прикрепленной к посту картинке даже не показала кратности связей ("один-ко-многим" и другие), хотя они должны быть. И пока подробно вам про них не рассказала.
Если быть честной, то я всегда пропускаю концептуальный уровень и сразу строю модель БД на логическом уровне. Но без понимания, как строить концептуальную модель, я бы не смогла это сделать.
Нужна, чтобы наглядно показать все сущности в будущей системе и связи мужду ними.
Она служит основой для создания физической модели базы данных - реальной БД. Это первый подход, взгляд на данные сверху.
Практическое применение концептуальной модели базы данных может быть связано с созданием новой системы или полной переделкой существующей (например, когда от монолитной архитектуры переходят к сервисной или микросервисной).
Что будет в нашей концептуальной модели?
Список сущностей:
▫️Роли и доступы
▫️Магазин (не показала на схеме, так что маленькое задание для вас к логическому уровню остается)
▫️ Клиент
▫️ Корзина для заказа
▫️Ассортимент
▫️Заказ
▫️Отчет
▫️Платеж
Связи (на картинке пока без кратностей, будем ставить кратности сразу на логическом уровне):
🔵 Один клиент может сделать несколько заказов. Но один заказ принадлежит только одному клиенту.(связь "один-ко-многим")
🔵 Один администратор может сделать много отчетов. Но один отчет создается одним администратором. (связь "один-ко-многим")
🔵 В корзине по заказу может быть много товаров. Один товар может быть в нескольких разных корзинах по заказу, у разных пользователей. (связь "многие-ко-многим")
На концептуальном уровне мы пока говорим только про сущности, свойств пока нет. На этом уровне я думаю о том, какие данные глобально нужно хранить. Извлекаю сущности из требований и кладу в картинку.
Я очень лояльно отнеслась к концептуальному уровню. На прикрепленной к посту картинке даже не показала кратности связей ("один-ко-многим" и другие), хотя они должны быть. И пока подробно вам про них не рассказала.
Если быть честной, то я всегда пропускаю концептуальный уровень и сразу строю модель БД на логическом уровне. Но без понимания, как строить концептуальную модель, я бы не смогла это сделать.
👍10🔥3👎1
Практическое применение концептуальной модели базы данных может быть связано с созданием новой системы или реорганизацией существующей 🚀
Если необходимо создать новую систему, то на этапе проектирования системные аналитики создают концептуальную модель базы данных, чтобы описать все объекты и связи между ними. Кроме того, на этапе анализа требований она может использоваться для определения функциональности системы и ее возможностей.
Если речь идет о доработке существующей системы, то концептуальная модель базы данных может использоваться для определения проблем, которые могут возникнуть при внесении изменений в систему. Например, если в системе существует связь между двумя объектами, то изменение одного объекта может повлиять на другой.
Системные аналитики должны понимать, как изменения в функциональности меняют БД и влияют на всю систему. Как их можно сделать их наиболее безболезненно и ничего не упустить из виду.
Концептуальная модель базы данных полезна для системных аналитиков, так как она:
▫️показывает полный список сущностей и связей между ними,
▫️помогает определить влияние на систему при ее изменении,
▫️наводит на правильные вопросы заказчикам, которые могут быть с ходу не очевидны.
В прикрепленном видео разбор - как я построить на основе требований концептуальную модель БД.
P.S. А теперь представьте как много всего можно найти и проверить, когда читаешь ТЗ или описания бизнес-процессов 😍
Если необходимо создать новую систему, то на этапе проектирования системные аналитики создают концептуальную модель базы данных, чтобы описать все объекты и связи между ними. Кроме того, на этапе анализа требований она может использоваться для определения функциональности системы и ее возможностей.
Если речь идет о доработке существующей системы, то концептуальная модель базы данных может использоваться для определения проблем, которые могут возникнуть при внесении изменений в систему. Например, если в системе существует связь между двумя объектами, то изменение одного объекта может повлиять на другой.
Системные аналитики должны понимать, как изменения в функциональности меняют БД и влияют на всю систему. Как их можно сделать их наиболее безболезненно и ничего не упустить из виду.
Концептуальная модель базы данных полезна для системных аналитиков, так как она:
▫️показывает полный список сущностей и связей между ними,
▫️помогает определить влияние на систему при ее изменении,
▫️наводит на правильные вопросы заказчикам, которые могут быть с ходу не очевидны.
В прикрепленном видео разбор - как я построить на основе требований концептуальную модель БД.
P.S. А теперь представьте как много всего можно найти и проверить, когда читаешь ТЗ или описания бизнес-процессов 😍
YouTube
Проектирование БД: концептуальный уровень
Подробности в канале: https://t.me/getanalysts/1003
🐈🐕 PetCo - это веб-сайт и мобильные приложения для сети зоомагазинов, интегрированные с собственным Backend-приложением PetStore и платежной системой Raif Pay.
Моя первая задача - внимательно прочитать…
🐈🐕 PetCo - это веб-сайт и мобильные приложения для сети зоомагазинов, интегрированные с собственным Backend-приложением PetStore и платежной системой Raif Pay.
Моя первая задача - внимательно прочитать…
❤9
У вас бывает такое, когда хочется всё и сразу? 😄
🏅 Прочитал книгу за пару ночей — всё понял и внедрил на практике.
🏅 Прошёл обучение — получил повышение.
🏅 Выложил резюме, а на утро увидел десятки откликов от работодателей.
Да, так тоже бывает, но не у всех и не всегда.
Раньше я очень переживала, что долго иду к своим целям.
Завышенные ожидания мешали мне видеть мои регулярные шаги.
Хотелось, чтобы если провожу вебинар, то чтобы сразу тысячи регистраций и сотни зрителей, начала читать книгу и за час освоила все 500 страниц 😅
Что я от этого получала? Одни разочарования. И демотивацию, потому что цель большая, а результат, хоть и есть, но он очень маленький.
Только с годами стало понятно, что каждый шаг, даже самый маленький, это успех и это путь к большой цели. Я стала оценивать каждый успех, каждый маленький прогресс. Делить большое на микро-цели. Слона нельзя проглотить целиком (очень жаль!!!).
А ещё поняла, что важно не только достигать, но и наслаждаться процессом достижения целей.
Книга, которую прочитала, урок, который я извлекла из своих ошибок, так или иначе, помогали мне или помогут в ближайшем будущем. Это мой опыт.
Иногда результаты приходят сразу, а иногда приходится ждать.
Главное — понимать, что и зачем делаешь.
ДЕЛАТЬ — ключевое к развитию👌
Когда читаешь новую книгу, важно воспринимать, что не обязательно знания пригодятся сейчас, возможно, они окажутся классной инвестицией в будущем.
Очередная прочитанная статья, обучение, разговор с коллегой или начальником может принести нам что-то новое и полезное, даже если мы не заметим этого в моменте.
Поэтому никогда не стоит отказываться от нового.
Продолжайте учиться, даже если результаты не приходят сразу🙌
🏅 Прочитал книгу за пару ночей — всё понял и внедрил на практике.
🏅 Прошёл обучение — получил повышение.
🏅 Выложил резюме, а на утро увидел десятки откликов от работодателей.
Да, так тоже бывает, но не у всех и не всегда.
Раньше я очень переживала, что долго иду к своим целям.
Завышенные ожидания мешали мне видеть мои регулярные шаги.
Хотелось, чтобы если провожу вебинар, то чтобы сразу тысячи регистраций и сотни зрителей, начала читать книгу и за час освоила все 500 страниц 😅
Что я от этого получала? Одни разочарования. И демотивацию, потому что цель большая, а результат, хоть и есть, но он очень маленький.
Только с годами стало понятно, что каждый шаг, даже самый маленький, это успех и это путь к большой цели. Я стала оценивать каждый успех, каждый маленький прогресс. Делить большое на микро-цели. Слона нельзя проглотить целиком (очень жаль!!!).
А ещё поняла, что важно не только достигать, но и наслаждаться процессом достижения целей.
Книга, которую прочитала, урок, который я извлекла из своих ошибок, так или иначе, помогали мне или помогут в ближайшем будущем. Это мой опыт.
Иногда результаты приходят сразу, а иногда приходится ждать.
Главное — понимать, что и зачем делаешь.
ДЕЛАТЬ — ключевое к развитию👌
Когда читаешь новую книгу, важно воспринимать, что не обязательно знания пригодятся сейчас, возможно, они окажутся классной инвестицией в будущем.
Очередная прочитанная статья, обучение, разговор с коллегой или начальником может принести нам что-то новое и полезное, даже если мы не заметим этого в моменте.
Поэтому никогда не стоит отказываться от нового.
Продолжайте учиться, даже если результаты не приходят сразу🙌
👍25🔥6
Сегодня открываем предзапись на практическую программу
📚 Проектированию БД и основы SQL.
Более 40+ часов теории и 6 онлайн-встреч на которых работаем с проектом по проектированию БД (20+ сущностей, которые предстоит положить в модель, а затем часть из них самостоятельно создать в СУБД).
Результат:
🌟 ER-модели БД в draw.io.
🌟 Справочник команд ChatGPT.
🌟 Постановки задач в Jira
🌟 Проект в SQLite, понимание PostgreSQL.
🌟 Опыт работы с DBeaver для подключение к PostgreSQL, MySQL и не только.
До 22 сентября можно заполнить 🔗эту анкету, чтобы попасть на программу по специальным условиям 🌟
📚 Проектированию БД и основы SQL.
Более 40+ часов теории и 6 онлайн-встреч на которых работаем с проектом по проектированию БД (20+ сущностей, которые предстоит положить в модель, а затем часть из них самостоятельно создать в СУБД).
Результат:
🌟 ER-модели БД в draw.io.
🌟 Справочник команд ChatGPT.
🌟 Постановки задач в Jira
🌟 Проект в SQLite, понимание PostgreSQL.
🌟 Опыт работы с DBeaver для подключение к PostgreSQL, MySQL и не только.
До 22 сентября можно заполнить 🔗эту анкету, чтобы попасть на программу по специальным условиям 🌟
👍5
Я начала строить ER-диаграмму концептуального уровня базы данных. В видео рассказала, как найти необходимые элементы в прекрасном бесплатном инструменте draw.io. Сейчас хочу немного остановиться с проектированием.
Прежде чем идти дальше, давай поговорим подробнее о том, что такое ER-диаграмма. Словосочетание кажется сложным, о нём спрашивают на собеседованиях. Иногда аналитики путаются и дают неверный ответ. Причина проста: нотаций моделирования с аббревиатурами типа UML, BPMN, ER, C4 и других много 😕
Начинаем строить сильную ассоциацию с ER-диаграммой в вашем сознании, и очень прошу не путать её с диаграммой классов UML ‼️
Вопросы с собеседований на системного аналитика, касающиеся ER-диаграммы:
1. Основы ER-диаграмм
▫️Какую нотацию используют для моделирования баз данных?
▫️Что такое ER-диаграмма и для чего она используется?
▫️Какие основные компоненты ER-диаграммы вы можете выделить?
▫️Что такое сущность и атрибут в контексте ER-диаграммы?
▫️Какие инструменты используют для создания ER-диаграмм?
2. Типы связей
▫️Можете объяснить разницу между “один-к-одному”, “один-ко-многим” и “многие-ко-многим” отношениями?
▫️Приведите примеры каждого из этих типов отношений.
▫️Что такое связующая таблица и в каких случаях она используется?
3. Атрибуты и ключи
▫️Что такое первичный ключ и какова его роль в ER-диаграмме?
▫️Что такое внешний ключ и какова его роль?
▫️Какие атрибуты могут быть производными, и как их представить на ER-диаграмме?
Хотите с ходу отвечать и рассказывать с конкретными примерами? Последовательно читайте сообщения в канале 😉
Прежде чем идти дальше, давай поговорим подробнее о том, что такое ER-диаграмма. Словосочетание кажется сложным, о нём спрашивают на собеседованиях. Иногда аналитики путаются и дают неверный ответ. Причина проста: нотаций моделирования с аббревиатурами типа UML, BPMN, ER, C4 и других много 😕
Начинаем строить сильную ассоциацию с ER-диаграммой в вашем сознании, и очень прошу не путать её с диаграммой классов UML ‼️
Вопросы с собеседований на системного аналитика, касающиеся ER-диаграммы:
1. Основы ER-диаграмм
▫️Какую нотацию используют для моделирования баз данных?
▫️Что такое ER-диаграмма и для чего она используется?
▫️Какие основные компоненты ER-диаграммы вы можете выделить?
▫️Что такое сущность и атрибут в контексте ER-диаграммы?
▫️Какие инструменты используют для создания ER-диаграмм?
2. Типы связей
▫️Можете объяснить разницу между “один-к-одному”, “один-ко-многим” и “многие-ко-многим” отношениями?
▫️Приведите примеры каждого из этих типов отношений.
▫️Что такое связующая таблица и в каких случаях она используется?
3. Атрибуты и ключи
▫️Что такое первичный ключ и какова его роль в ER-диаграмме?
▫️Что такое внешний ключ и какова его роль?
▫️Какие атрибуты могут быть производными, и как их представить на ER-диаграмме?
Хотите с ходу отвечать и рассказывать с конкретными примерами? Последовательно читайте сообщения в канале 😉
👍18❤4