<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Просто о системном анализе</title><author><name>Просто о системном анализе</name></author><id>https://teletype.in/atom/sys-analyst</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/sys-analyst?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/sys-analyst?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-24T18:15:03.084Z</updated><entry><id>sys-analyst:auth</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/auth?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Идентификация, аутентификация и авторизация</title><published>2025-11-06T06:54:40.883Z</published><updated>2025-11-06T06:54:40.883Z</updated><summary type="html">Идентификация, аутентификация и авторизация — это три последовательных этапа обеспечения безопасности.</summary><content type="html">
  &lt;p id=&quot;6tPV&quot;&gt;&lt;strong&gt;&lt;em&gt;Идентификация, аутентификация и авторизация&lt;/em&gt;&lt;/strong&gt; — это три последовательных этапа обеспечения безопасности. &lt;/p&gt;
  &lt;ul id=&quot;Gf1X&quot;&gt;
    &lt;li id=&quot;91sO&quot;&gt;&lt;strong&gt;Идентификация&lt;/strong&gt; — это предоставление системе своей личности (например, логина).&lt;/li&gt;
    &lt;li id=&quot;XNwG&quot;&gt;&lt;strong&gt;Аутентификация&lt;/strong&gt; — это подтверждение этой личности (например, паролем или кодом из СМС).&lt;/li&gt;
    &lt;li id=&quot;H24J&quot;&gt;&lt;strong&gt;Авторизация&lt;/strong&gt; — это предоставление пользователю прав на выполнение определенных действий после успешной аутентификации. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;3jiC&quot;&gt;Этапы процесса&lt;/h2&gt;
  &lt;ol id=&quot;T6S2&quot;&gt;
    &lt;li id=&quot;mevK&quot;&gt;&lt;strong&gt;Идентификация&lt;br /&gt;&lt;/strong&gt;Пользователь сообщает системе, кто он такой.&lt;/li&gt;
    &lt;ul id=&quot;mtty&quot;&gt;
      &lt;li id=&quot;1CHW&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Ввод логина или адреса электронной почты.&lt;/li&gt;
      &lt;li id=&quot;7oIN&quot;&gt;&lt;strong&gt;Назначение:&lt;/strong&gt; Система узнает, с каким пользователем предстоит работать.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;2OsJ&quot;&gt;&lt;strong&gt;Аутентификация&lt;br /&gt;&lt;/strong&gt;Система проверяет, действительно ли пользователь является тем, за кого себя выдает.&lt;/li&gt;
    &lt;ul id=&quot;zGxZ&quot;&gt;
      &lt;li id=&quot;hob4&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Ввод пароля, PIN-кода, предоставление биометрических данных.&lt;/li&gt;
      &lt;li id=&quot;0GvV&quot;&gt;&lt;strong&gt;Назначение:&lt;/strong&gt; Подтверждение подлинности введенных данных.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;bLnD&quot;&gt;&lt;strong&gt;Авторизация&lt;br /&gt;&lt;/strong&gt;Система определяет, какие действия пользователь имеет право совершать.&lt;/li&gt;
    &lt;ul id=&quot;3Jxo&quot;&gt;
      &lt;li id=&quot;GGsE&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Доступ к чтению писем, но не к их удалению; снятие наличных, но не пополнение счета.&lt;/li&gt;
      &lt;li id=&quot;o2wp&quot;&gt;&lt;strong&gt;Назначение:&lt;/strong&gt; Предоставление или ограничение прав доступа к ресурсам и функциям.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;

</content></entry><entry><id>sys-analyst:oop-princip</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/oop-princip?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Принципы ООП (объектно-ориентированного программирования)</title><published>2025-10-21T18:48:19.449Z</published><updated>2025-10-21T18:48:19.449Z</updated><category term="arhitektura-it" label="Архитектура IT"></category><summary type="html">Основные принципы объектно-ориентированного программирования (ООП) — это абстракция, инкапсуляция, наследование и полиморфизм. Эти принципы позволяют создавать более гибкий, модульный и эффективный код, моделируя реальные объекты в программе и их взаимодействие.</summary><content type="html">
  &lt;p id=&quot;hL1p&quot;&gt;Основные принципы объектно-ориентированного программирования (ООП) — это абстракция, инкапсуляция, наследование и полиморфизм. Эти принципы позволяют создавать более гибкий, модульный и эффективный код, моделируя реальные объекты в программе и их взаимодействие.&lt;/p&gt;
  &lt;h3 id=&quot;E9Sf&quot;&gt;1. Абстракция&lt;/h3&gt;
  &lt;ul id=&quot;aQfz&quot;&gt;
    &lt;li id=&quot;p4LF&quot;&gt;&lt;strong&gt;Суть:&lt;/strong&gt; Выделение ключевых характеристик и поведения объектов, которые важны для решения конкретной задачи, и скрытие несущественных деталей.&lt;/li&gt;
    &lt;li id=&quot;K2EV&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; При использовании телевизора нам не нужно знать, как он работает внутри, достаточно знать, как управлять им с помощью пульта.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;xKxZ&quot;&gt;2. Инкапсуляция&lt;/h3&gt;
  &lt;ul id=&quot;ViQt&quot;&gt;
    &lt;li id=&quot;rABg&quot;&gt;&lt;strong&gt;Суть:&lt;/strong&gt; Сокрытие внутренней реализации объекта и предоставление доступа к его данным и методам только через определенный, контролируемый интерфейс.&lt;/li&gt;
    &lt;li id=&quot;O3aT&quot;&gt;&lt;strong&gt;Преимущества:&lt;/strong&gt; Это защищает данные от некорректных изменений и позволяет легко модифицировать внутреннюю структуру объекта, не затрагивая остальной код.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;n9vr&quot;&gt;3. Наследование&lt;/h3&gt;
  &lt;ul id=&quot;YZNz&quot;&gt;
    &lt;li id=&quot;Wf5t&quot;&gt;&lt;strong&gt;Суть:&lt;/strong&gt; Способность создавать новые классы (потомков) на основе существующих (родителей), перенимая их свойства и методы, но добавляя или изменяя их под свои нужды.&lt;/li&gt;
    &lt;li id=&quot;5rN8&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Класс «Собака» может наследовать общие свойства от класса «Животное» (например, иметь имя), но добавить свои уникальные характеристики (например, лаять).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;huIJ&quot;&gt;4. Полиморфизм&lt;/h3&gt;
  &lt;ul id=&quot;nq3x&quot;&gt;
    &lt;li id=&quot;YWqh&quot;&gt;&lt;strong&gt;Суть:&lt;/strong&gt; Возможность использовать один и тот же метод для объектов разных классов, при этом каждый объект будет выполнять действие по-своему, в соответствии со своей реализацией.&lt;/li&gt;
    &lt;li id=&quot;90kn&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Метод «издать звук» у разных животных будет вызывать разное звучание: кошка мяукать, а собака лаять.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>sys-analyst:togaf</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/togaf?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>TOGAF</title><published>2025-09-29T10:17:05.528Z</published><updated>2025-09-29T10:17:05.528Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/84/e7/84e7de09-fbb6-4966-a538-fe5c8371016b.png"></media:thumbnail><category term="arhitektura-it" label="Архитектура IT"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/61/ba/61ba75e2-e7a3-498d-8acc-981b760749d7.png&quot;&gt;TOGAF (The Open Group Architecture Framework) — это международный стандарт и фреймворк для построения архитектуры предприятия, разработанный консорциумом The Open Group. Он предоставляет методологию, инструменты и процесс, известный как Метод разработки архитектуры (ADM), который помогает организациям согласовывать свои бизнес-цели с ИТ-системами. TOGAF поддерживает проектирование, планирование, внедрение и управление корпоративной архитектурой, используя четыре основных домена: бизнес, данные, приложения и технологии.</summary><content type="html">
  &lt;p id=&quot;RFEq&quot;&gt;&lt;strong&gt;TOGAF&lt;/strong&gt; (&lt;a href=&quot;https://www.opengroup.org/togaf&quot; target=&quot;_blank&quot;&gt;The Open Group Architecture Framework&lt;/a&gt;) — это международный стандарт и фреймворк для построения архитектуры предприятия, разработанный консорциумом The Open Group. Он предоставляет методологию, инструменты и процесс, известный как Метод разработки архитектуры (ADM), который помогает организациям согласовывать свои бизнес-цели с ИТ-системами. TOGAF поддерживает проектирование, планирование, внедрение и управление корпоративной архитектурой, используя четыре основных домена: бизнес, данные, приложения и технологии. &lt;/p&gt;
  &lt;figure id=&quot;cPkR&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/61/ba/61ba75e2-e7a3-498d-8acc-981b760749d7.png&quot; width=&quot;782&quot; /&gt;
    &lt;figcaption&gt;Картинка с сайта The Open Group&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;CUew&quot;&gt;Основные компоненты и принципы TOGAF&lt;/h2&gt;
  &lt;p id=&quot;IvYB&quot;&gt;&lt;strong&gt;Метод разработки архитектуры (ADM)&lt;br /&gt;&lt;/strong&gt;Это основной процесс TOGAF, который описывает итеративный подход к созданию и управлению архитектурой предприятия. &lt;/p&gt;
  &lt;p id=&quot;4zbk&quot;&gt;&lt;br /&gt;&lt;strong&gt;Фреймворк контента&lt;br /&gt;&lt;/strong&gt;Определяет стандартные элементы и строительные блоки, используемые при описании архитектуры. &lt;/p&gt;
  &lt;p id=&quot;aM18&quot;&gt;&lt;br /&gt;&lt;strong&gt;Принципы модульности, масштабируемости, расширяемости и гибкости&lt;br /&gt;&lt;/strong&gt;Эти принципы обеспечивают комплексный подход к проектированию, позволяющий адаптироваться к изменяющимся потребностям. &lt;/p&gt;
  &lt;h3 id=&quot;gpvC&quot;&gt;Четыре домена архитектуры&lt;/h3&gt;
  &lt;p id=&quot;S3ab&quot;&gt;&lt;strong&gt;1. Бизнес-архитектура&lt;br /&gt;&lt;/strong&gt;Определяет стратегию предприятия, структуру управления и ключевые бизнес-процессы. &lt;/p&gt;
  &lt;p id=&quot;qDjG&quot;&gt;&lt;strong&gt;2. Архитектура данных&lt;br /&gt;&lt;/strong&gt;Описывает структуру данных организации и ресурсы для управления ими. &lt;/p&gt;
  &lt;p id=&quot;HAoE&quot;&gt;&lt;strong&gt;3. Архитектура приложений&lt;br /&gt;&lt;/strong&gt;Представляет собой карту корпоративных приложений, описывая их роль в бизнес-процессах и взаимодействие. &lt;/p&gt;
  &lt;p id=&quot;QBUV&quot;&gt;&lt;strong&gt;4. Архитектура технологий&lt;br /&gt;&lt;/strong&gt;Описывает аппаратное и программное обеспечение, необходимое для поддержки бизнес- и ИТ-архитектуры. &lt;/p&gt;
  &lt;h3 id=&quot;vaji&quot;&gt;Зачем используется TOGAF&lt;/h3&gt;
  &lt;p id=&quot;2TIY&quot;&gt;&lt;strong&gt;1. Согласование бизнеса и ИТ&lt;/strong&gt;&lt;br /&gt;Помогает организациям связать свои ИТ-системы и процессы со стратегическими целями бизнеса.&lt;/p&gt;
  &lt;p id=&quot;LnYv&quot;&gt;&lt;strong&gt;2. Структурированный подход&lt;br /&gt;&lt;/strong&gt;Предоставляет стандартизированный подход к проектированию и управлению архитектурой.&lt;/p&gt;
  &lt;p id=&quot;Cfbx&quot;&gt;&lt;strong&gt;3. Управление изменениями&lt;br /&gt;&lt;/strong&gt;Позволяет организациям эффективно управлять изменениями и адаптироваться к новым требованиям. &lt;/p&gt;
  &lt;p id=&quot;CVry&quot;&gt;&lt;strong&gt;4. Общий язык&lt;br /&gt;&lt;/strong&gt;Обеспечивает общий язык и терминологию для всех участников процесса архитектуры. &lt;/p&gt;

</content></entry><entry><id>sys-analyst:c4</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/c4?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Архитектура C4</title><published>2025-09-29T09:16:54.046Z</published><updated>2025-09-29T10:17:27.159Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/29/14/29141f06-927b-4051-bde4-06f63027592b.png"></media:thumbnail><category term="arhitektura-it" label="Архитектура IT"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a2/ad/a2adfd91-51b8-4b73-ad00-c33d941a107c.png&quot;&gt;C4 — это иерархическая система диаграмм для визуализации архитектуры программного обеспечения, созданная Саймоном Брауном, которая предлагает четыре уровня детализации: Контекст, Контейнеры, Компоненты и Код. Служит для описания систем и их взаимосвязей.</summary><content type="html">
  &lt;p id=&quot;IHis&quot;&gt;C4 — это иерархическая система диаграмм для визуализации архитектуры программного обеспечения, созданная Саймоном Брауном, которая предлагает четыре уровня детализации: Контекст, Контейнеры, Компоненты и Код. Служит для описания систем и их взаимосвязей.&lt;/p&gt;
  &lt;figure id=&quot;0Edl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a2/ad/a2adfd91-51b8-4b73-ad00-c33d941a107c.png&quot; width=&quot;715&quot; /&gt;
    &lt;figcaption&gt;Картинка из Интернета&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2hSL&quot;&gt;Разберём каждый уровень отдельно:&lt;/p&gt;
  &lt;h2 id=&quot;WqOo&quot;&gt;1. Контекст (&lt;strong&gt;C&lt;/strong&gt;ontext)&lt;/h2&gt;
  &lt;p id=&quot;bifB&quot;&gt;Самый общий уровень, показывающий программную систему в её окружении, взаимодействие с пользователями (людьми) и внешними системами.&lt;/p&gt;
  &lt;h2 id=&quot;RSUT&quot;&gt;2. Контейнеры (&lt;strong&gt;Containers)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;tobC&quot;&gt;Показывает основные подсистемы (приложения, базы данных, микросервисы) внутри программной системы и их взаимодействие друг с другом).&lt;/p&gt;
  &lt;h2 id=&quot;FhRG&quot;&gt;3. &lt;strong&gt;Компоненты (Components)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;GEBO&quot;&gt;Детализирует каждый контейнер, разбивая его на более мелкие, логически связанные функции с чётко определёнными интерфейсами.&lt;/p&gt;
  &lt;h2 id=&quot;bATN&quot;&gt;4. &lt;strong&gt;Код (Code)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;aaMk&quot;&gt;Самый детальный уровень, на котором отображаются элементы кода (классы, интерфейсы, функции), реализующие компоненты.&lt;/p&gt;
  &lt;h2 id=&quot;0OkM&quot;&gt;Преимущества модели C4&lt;/h2&gt;
  &lt;ul id=&quot;GPsm&quot;&gt;
    &lt;li id=&quot;eunD&quot;&gt;&lt;strong&gt;Масштабируемость:&lt;/strong&gt; &lt;br /&gt;Позволяет &amp;quot;приближать&amp;quot; или &amp;quot;отдалять&amp;quot; детали, показывая систему с разной степенью детализации.&lt;/li&gt;
    &lt;li id=&quot;FWfv&quot;&gt;&lt;strong&gt;Понятность:&lt;/strong&gt; &lt;br /&gt;Простота нотации делает диаграммы понятными для разных специалистов, от бизнес-аналитиков до разработчиков.&lt;/li&gt;
    &lt;li id=&quot;sSmr&quot;&gt;&lt;strong&gt;Иерархичность:&lt;/strong&gt; &lt;br /&gt;Чёткое разделение на уровни помогает постепенно раскрывать сложность системы, не перегружая диаграммы лишней информацией.&lt;/li&gt;
    &lt;li id=&quot;hGDK&quot;&gt;&lt;strong&gt;Гибкость:&lt;/strong&gt; &lt;br /&gt;Модель не навязывает строгие формальные нотации и может использовать различные инструменты для создания диаграмм, включая UML и Miro.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>sys-analyst:job-description</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/job-description?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>&quot;Прожарка&quot; описания вакансий</title><published>2024-12-22T12:17:54.718Z</published><updated>2024-12-22T12:17:54.718Z</updated><summary type="html">Написано коммуникабельным, легкообучаемым и стрессоустойчивым пользователем ПК.</summary><content type="html">
  &lt;p id=&quot;l7bD&quot;&gt;&lt;em&gt;Написано коммуникабельным, легкообучаемым и стрессоустойчивым пользователем ПК.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;h9LP&quot;&gt;Вот заметил, что в HR-среде появился новый формат -  &amp;quot;Прожарка резюме&amp;quot;. Это очень правильно. Ибо много раз замечал, что прекрасные высококвалифицированные работники просто не понимают, как себя сначала эффектно &lt;em&gt;&lt;strong&gt;подать&lt;/strong&gt;&lt;/em&gt;, а потом по дороже &lt;em&gt;&lt;strong&gt;продать&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
  &lt;p id=&quot;b5O1&quot;&gt;Но порой очень интересно читать не только чужие резюме, но и описание вакансий. Поскольку мой синдром самозванца привёл к тому, что последнее время числюсь в &amp;quot;системных аналитиках&amp;quot;, давайте рассмотрим типичную вакансию на такую должность с высшей степени средней заработной платой по рынку.&lt;/p&gt;
  &lt;p id=&quot;WNvf&quot;&gt;Итак вот небольшая цитата требований к соискателю:&lt;/p&gt;
  &lt;ul id=&quot;ng0Q&quot;&gt;
    &lt;li id=&quot;xE74&quot;&gt;&lt;strong&gt;Опыт работы в роли системного аналитика от 3 лет;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;RWTu&quot;&gt;Опыт работы с web-сервисами. Знаешь варианты интеграций между системами &lt;strong&gt;(JSON, XML, REST, SOAP, Kafka, MQ);&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;0sEG&quot;&gt;Опыт описания бизнес процессов(UML, BPMN)&lt;/li&gt;
    &lt;li id=&quot;Jpzm&quot;&gt;Опыт написания функциональных требований/бизнес-требований/технических спецификаций на разработку;&lt;/li&gt;
    &lt;li id=&quot;1iSS&quot;&gt;Опыт с микросервисной архитектурой или был опыт переноса с монолита на микросервисы.&lt;/li&gt;
    &lt;li id=&quot;c5Pq&quot;&gt;Опыт работы с БД на уровне построения&lt;strong&gt; сложных запросов &lt;/strong&gt;и готов это продемонстрировать на собеседовании.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;j5CG&quot;&gt;Давайте пройдёмся по пунктам.&lt;/p&gt;
  &lt;p id=&quot;xZRC&quot;&gt;1. &amp;quot;&lt;strong&gt;Опыт работы в роли системного аналитика от 3 лет&lt;/strong&gt;&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;ojGc&quot;&gt;Тут вопросов нет, тут всё понятно. Но только меня бесит слово &amp;quot;роль&amp;quot; в этом предложении? Вот к этому слову множество вопросов. Неужели нельзя просто написать: &amp;quot;Опыт работы системным аналитиком от 3 лет&amp;quot; ? Или это - слишком просто для такой сложной вакансии? Или хотят отсечь тех, кто уже в IT, но роль системного аналитика пока не выбрал или выбрал достаточно поздно?&lt;/p&gt;
  &lt;p id=&quot;MW9n&quot;&gt;2. &amp;quot;Опыт работы с web-сервисами&amp;quot;&lt;/p&gt;
  &lt;p id=&quot;remv&quot;&gt;Вы меня извините, а что это такое? Вот у меня формулировки не было, полез искать. Вот что нашёл в wiki: &amp;quot;идентифицируемая уникальным  веб-адресом (URL-адресом) программная система со стандартизированными интерфейсами&amp;quot;. Стало понятнее? Вот и мне - тоже. Но звучит очень круто. Неопытного соискателя должно отпугнуть (может быть, на это и расчёт?).&lt;/p&gt;
  &lt;p id=&quot;81jf&quot;&gt;Но вот особенно радует следующее предложение.&lt;/p&gt;
  &lt;p id=&quot;LINK&quot;&gt;3. &amp;quot;Знаешь варианты интеграций между системами &lt;strong&gt;(JSON, XML, REST, SOAP, Kafka, MQ)&lt;/strong&gt;&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;E6LF&quot;&gt;Как там было у Алёны Апиной: &amp;quot;&lt;em&gt;Я тебя слепила из того, что было&lt;/em&gt;&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;kCBn&quot;&gt;Давайте разбираться.&lt;/p&gt;
  &lt;ul id=&quot;LmmX&quot;&gt;
    &lt;li id=&quot;bKyM&quot;&gt;JSON и XML - стандарты передачи данных. &lt;/li&gt;
    &lt;li id=&quot;6FS7&quot;&gt;SOAP - протокол передачи данных.&lt;/li&gt;
    &lt;li id=&quot;eaal&quot;&gt;REST - &amp;quot;&lt;em&gt;архитектурный стиль&lt;/em&gt;&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;6L3W&quot;&gt;Kafka - брокер сообщений.&lt;/li&gt;
    &lt;li id=&quot;3T9G&quot;&gt;MQ... Тут, как мне кажется, имелся ввиду &amp;quot;IBM WebSphere MQ&amp;quot; - семейство сетевого ПО. Ну или &amp;quot;Rabbit MQ&amp;quot; - брокер сообщений. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;hjKJ&quot;&gt;Тут почему-то внезапно к соискателю перешли на &amp;quot;ты&amp;quot;. Типа знаешь вот это вот всё? Применял на практике? От аббревиатуры MQ не падаешь в обморок? Можешь объяснить разницу между &lt;s&gt;ежом и ужом&lt;/s&gt; SOAP и REST?&lt;/p&gt;
  &lt;p id=&quot;Q0hG&quot;&gt;NB. Уже давно не удивляет, как в IT-среде любят мешать всё в кучу, не разбираясь, что есть что. Но первые 10-15 лет очень бесило, например, как стандарт &amp;quot;ISO 8583&amp;quot; называли &amp;quot;&lt;em&gt;протоколом&lt;/em&gt;&amp;quot;. А типа аббревиатура &lt;strong&gt;&lt;em&gt;ISO &lt;/em&gt;&lt;/strong&gt;вам ничего не говорит?! &lt;/p&gt;
  &lt;p id=&quot;8Eoe&quot;&gt;4. Опыт описания бизнес процессов(UML, BPMN)&lt;/p&gt;
  &lt;p id=&quot;1lz3&quot;&gt;Для начала давайте переведу на русский.&lt;/p&gt;
  &lt;p id=&quot;ZB7N&quot;&gt;UML - это &lt;em&gt;Unified Modeling Language&lt;/em&gt; (унифицированный язык моделирования).&lt;/p&gt;
  &lt;p id=&quot;nvXo&quot;&gt;BPMN - это &lt;em&gt;Business Process Model and Notation (&lt;/em&gt;нотация и модель бизнес-процессов).&lt;/p&gt;
  &lt;p id=&quot;40N7&quot;&gt;То есть, язык моделирования и нотация и модель бизнес-процессов. Умолчу о том, что UML позволяет строить 12 видов диаграмм. И далеко не все из них можно использовать для описания бизнес-процессов (например, все структурные диаграммы: классов, объектов и компонент).&lt;/p&gt;
  &lt;p id=&quot;API1&quot;&gt;Но да, что-то про бизнес-процессы и их описание. &lt;/p&gt;
  &lt;p id=&quot;elDp&quot;&gt;5. Опыт написания функциональных требований/бизнес-требований/технических спецификаций на разработку.&lt;/p&gt;
  &lt;p id=&quot;NnBg&quot;&gt;Так и хочется спросить: &amp;quot;А вам не надо будет описывать &lt;strong&gt;&lt;em&gt;нефункциональные &lt;/em&gt;&lt;/strong&gt;требования? Вы точно в это уверены?&amp;quot;. Но к этой строчке претензий других нет, тут всё по делу.&lt;/p&gt;
  &lt;p id=&quot;RRig&quot;&gt;6. Опыт с микросервисной архитектурой или был опыт переноса с монолита на микросервисы.&lt;/p&gt;
  &lt;p id=&quot;RTKj&quot;&gt;Только мне странно, что вместо пафосного определения &amp;quot;&lt;em&gt;миграция&lt;/em&gt;&amp;quot; было использовано простое русское слово &amp;quot;&lt;em&gt;перенос&lt;/em&gt;&amp;quot;?&lt;/p&gt;
  &lt;p id=&quot;nKcU&quot;&gt;Но меня больше задело само определение и союз &amp;quot;или&amp;quot; в нём. Типа был опыт переноса был, но при этом опыта с микросервисной архитектурой не было. А это, извините, как? Может быть лучше было написать так: &amp;quot;Опыт работы с микросервисной архитектурой, опыт миграции из монолитного решения на микросервисы&amp;quot;?&lt;/p&gt;
  &lt;p id=&quot;rwKF&quot;&gt;7. Опыт работы с БД на уровне построения&lt;strong&gt; сложных запросов &lt;/strong&gt;и готов это продемонстрировать на собеседовании.&lt;/p&gt;
  &lt;p id=&quot;viG9&quot;&gt;Вот меня уже много лет удивляют требования к системным аналитикам про сложные SQL-запросы. Вас не удивляет? А зря! Да, какие-то элементарные знания SQL, конечно же, аналитику нужны, кто спорит! Например, чтобы найти что-то в базе данных, или посчитать число записей, или отсортировать что-то по каким-то условиям. Но вот &amp;quot;&lt;em&gt;сложные запросы&lt;/em&gt;&amp;quot;... Вы точно системного аналитика ищите? Часто в своём опыте приходилось и приходится иметь дело с SQL. Но вот ни разу не страдал от того, что не могу мгновенно без шпаргалки сочинить сложный запрос. Да и нужны бывают такие запросы в работе раз в год по праздникам. Плюс теперь есть искусственный интеллект, который за 5 минут тебе почти любой запрос напишет (если умеешь им пользоваться, конечно).   &lt;/p&gt;
  &lt;p id=&quot;sFtq&quot;&gt;P.S. Кстати, вы не знаете, почему очень часто в описании вакансии размер заработной платы указывают в самую последнюю очередь (если вообще указывается). Прямо как в роликах автоблогеров, которые так любят называть стоимость автомобиля в конце ролика.&lt;/p&gt;

</content></entry><entry><id>sys-analyst:tls</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/tls?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Коротко про TLS</title><published>2024-01-30T11:24:23.659Z</published><updated>2024-01-30T11:24:23.659Z</updated><category term="tls" label="tls"></category><summary type="html">HTTPS – это защищённая версия протокола HTTP, которая шифрует передаваемые данные между клиентом и сервером. HTTPS не является отдельным протоколом. Это обычный HTTP, который работает через шифрованный протокол TLS. В отличие от HTTP с TCP-портом 80, для HTTPS по умолчанию используется TCP-порт 443.</summary><content type="html">
  &lt;p id=&quot;9pdC&quot;&gt;&lt;strong&gt;HTTPS &lt;/strong&gt;– это защищённая версия протокола HTTP, которая шифрует передаваемые данные между клиентом и сервером. HTTPS не является отдельным протоколом. Это обычный HTTP, который работает через шифрованный протокол TLS. В отличие от HTTP с TCP-портом 80, для HTTPS по умолчанию используется TCP-порт 443.&lt;/p&gt;
  &lt;p id=&quot;Cu4X&quot;&gt;Протокол &lt;strong&gt;TLS &lt;/strong&gt;(Transport Layer Security) — криптографический протокол, который обеспечивает защищённый обмен данными между сервером и клиентом. TLS расположен на уровень ниже протокола HTTP в модели OSI. Это означает, что в процессе выполнения запроса сперва происходят все “вещи”, связанные с TLS-соединением и уже потом, все что связано с HTTP-соединением. TLS пришёл на смену устаревшего протокола SSL.&lt;/p&gt;
  &lt;h2 id=&quot;1gVT&quot;&gt;Зачем нужно шифрование&lt;/h2&gt;
  &lt;p id=&quot;yit3&quot;&gt;В HTTP данные передаются в незашифрованном виде. Злоумышленник может просто перехватить пакет. HTTPS призван защитить соединение, чтобы данные никто не мог перехватить.&lt;/p&gt;
  &lt;h2 id=&quot;xP6F&quot;&gt;Принцип работы TLS&lt;/h2&gt;
  &lt;p id=&quot;bUhe&quot;&gt;Чтобы защитить данные, TLS создаёт во время передачи специальный канал, где их нельзя прочитать или изменить без секретного ключа. Ключ — это подсказка, как именно читать сообщение.&lt;/p&gt;
  &lt;p id=&quot;TPm8&quot;&gt;В зависимости от количества ключей в TLS используется один из двух классов шифрования: симметричное и асимметричное.&lt;/p&gt;
  &lt;p id=&quot;0392&quot;&gt;&lt;strong&gt;Симметричное &lt;/strong&gt;шифрование — это когда используется один и тот же ключ для шифрования и дешифрования данных. Оно работает эффективно и быстро, но требует предварительного обмена ключом между клиентом и сервером, в ходе которого ключ могут перехватить.&lt;/p&gt;
  &lt;p id=&quot;D0a6&quot;&gt;&lt;strong&gt;Асимметричное &lt;/strong&gt;шифрование использует два ключа: публичный для шифрования и приватный для дешифровки. Публичный ключ можно свободно распространять, а приватный должен быть хорошо защищён. Асимметричное шифрование безопаснее, но требует больше вычислительных ресурсов и работает медленнее, чем симметричное.&lt;/p&gt;
  &lt;p id=&quot;uu3g&quot;&gt;В протоколе TLS симметричное шифрование используют для шифрования непосредственно сообщений, а асимметричное шифрование — во время рукопожатия, то есть в начале сессии для обмена ключами и аутентификации.&lt;/p&gt;
  &lt;p id=&quot;Xtb2&quot;&gt;А ещё в TLS используется &lt;strong&gt;хеширование&lt;/strong&gt;. В отличие от шифрования, хеширование предполагает одностороннее кодирование: данные пропускаются через хеш-функцию и получается код. Сам код обратно раскодировать уже нельзя, но зато другой участник может легко убедиться в целостности данных, в том, что их никто не подменил. Для этого нужно снова вызвать хеш-функцию и сравнить значение полученного хеша с переданным.&lt;/p&gt;
  &lt;p id=&quot;JKGu&quot;&gt;Таким образом, нужно использовать HTTPS, если нужно обеспечить &lt;strong&gt;безопасность данных&lt;/strong&gt;, передаваемых между клиентом и сервером. Например, если вы обрабатываете личные данные, пароли, данные кредитных карт или другую чувствительную информацию.&lt;/p&gt;
  &lt;p id=&quot;ec7l&quot;&gt;В противном случае, если нет требований по защите данных и проверки их целостности, то лучше использовать обычный HTTP, так как он работает проще и быстрые.&lt;/p&gt;

</content></entry><entry><id>sys-analyst:rest</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/rest?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Как понять, что нужно использовать REST? </title><published>2024-01-18T08:26:34.806Z</published><updated>2024-01-18T08:46:25.625Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/44/f7/44f750cd-0c5b-48f4-b553-33d7b74f4a94.png"></media:thumbnail><category term="api" label="API"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/11/65/11656cfd-f8b9-406a-af51-6a63ef9a401a.png&quot;&gt;REST - самый популярный способ разработки веб-сервисов. По итогам опросов, проводимых Postman, использование немного снизилось за последние два года — с 92% до 86%. Но простота, масштабируемость и легкость в интеграциях с веб-сервисами закрепляют позицию REST на первом месте.</summary><content type="html">
  &lt;figure id=&quot;l12x&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/11/65/11656cfd-f8b9-406a-af51-6a63ef9a401a.png&quot; width=&quot;1017&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;G5Dd&quot;&gt;REST - самый популярный способ разработки веб-сервисов. По итогам опросов, проводимых Postman, использование немного снизилось за последние два года — с 92% до 86%. Но простота, масштабируемость и легкость в интеграциях с веб-сервисами закрепляют позицию REST на первом месте.&lt;/p&gt;
  &lt;p id=&quot;Mt0l&quot;&gt;Как любой инструмент или подход, REST не всегда лучший выбор для всех сценариев.&lt;/p&gt;
  &lt;p id=&quot;xl81&quot;&gt;REST точно не нужен в следующих случаях:&lt;/p&gt;
  &lt;p id=&quot;yuoG&quot;&gt;➖Онлайн взаимодействие: для приложений, требующих постоянного соединения для быстрого обмена данными в онлайн режиме (онлайн-игры, чаты). WebSocket или другие протоколы реального времени подойдут лучше.&lt;/p&gt;
  &lt;p id=&quot;icMJ&quot;&gt;➖Различные наборы данных под каждого клиента: если клиенты (например, мобильное приложение и веб-сайт) требуют разных наборов данных, GraphQL может предоставить больше гибкости, позволяя клиентам запрашивать только те данные, которые им нужны.&lt;/p&gt;
  &lt;p id=&quot;sXVR&quot;&gt;➖Бинарный Протокол: если требуется эффективность и минимальные затраты на передачу данных, то протоколы, такие как gRPC, использующие бинарные форматы передачи данных, могут быть более эффективными.&lt;/p&gt;
  &lt;p id=&quot;JcxQ&quot;&gt;➖Служебная Информация: если ваш API должен передавать много служебной информации вместе с данными (например, метаданными или инструкциями обработки), SOAP может быть более подходящим, так как он предоставляет стандартизированный способ включения такой информации в сообщения.&lt;/p&gt;
  &lt;p id=&quot;kZfT&quot;&gt;➖Обратная Совместимость: если ваша система уже имеет существующие интеграции на основе другого протокола (например, SOAP), и переход на REST может вызвать сбои или требует значительной переработки, может быть рационально продолжить использовать текущий протокол.&lt;/p&gt;

</content></entry><entry><id>sys-analyst:uml-3</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/uml-3?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>Виды UML-диаграмм</title><published>2023-08-31T08:57:05.906Z</published><updated>2024-01-18T08:49:11.463Z</updated><category term="uml" label="UML"></category><summary type="html">В UML используются следующие виды диаграмм:</summary><content type="html">
  &lt;p id=&quot;DoIG&quot;&gt;В UML используются следующие виды диаграмм:&lt;/p&gt;
  &lt;p id=&quot;OaQ6&quot;&gt;&lt;strong&gt;Structure Diagrams (Структурные диаграммы):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;hxQg&quot;&gt;
    &lt;li id=&quot;ycnk&quot;&gt;Class diagram (Диаграмма классов)&lt;/li&gt;
    &lt;li id=&quot;l7zX&quot;&gt;Component diagram (Диаграмма компонентов)&lt;/li&gt;
    &lt;li id=&quot;7U0E&quot;&gt;Composite structure diagram (Диаграмма композитной/составной структуры)&lt;/li&gt;
    &lt;ul id=&quot;L1y0&quot;&gt;
      &lt;li id=&quot;RZaS&quot;&gt;Collaboration (UML2.0, Диаграмма кооперации)&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;54r1&quot;&gt;Deployment diagram (Диаграмма развёртывания)&lt;/li&gt;
    &lt;li id=&quot;mBYw&quot;&gt;Object diagram (Диаграмма объектов)&lt;/li&gt;
    &lt;li id=&quot;kLYI&quot;&gt;Package diagram (Диаграмма пакетов) &lt;/li&gt;
    &lt;li id=&quot;pJKn&quot;&gt;Profile diagram (UML2.2, Диаграмма профилей)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Lyeb&quot;&gt;&lt;strong&gt;Behavior Diagrams (Диаграммы поведения):&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;2orc&quot;&gt;
    &lt;li id=&quot;ag48&quot;&gt;Activity diagram (Диаграмма деятельности)&lt;/li&gt;
    &lt;li id=&quot;IGlm&quot;&gt;State Machine diagram (Диаграмма состояний)&lt;/li&gt;
    &lt;li id=&quot;o8JX&quot;&gt;Use case diagram (Диаграмма прецедентов или диаграмма вариантов использования)&lt;/li&gt;
    &lt;li id=&quot;lVAq&quot;&gt;&lt;strong&gt;Interaction Diagrams (Диаграммы взаимодействия):&lt;/strong&gt;&lt;/li&gt;
    &lt;ul id=&quot;AdH9&quot;&gt;
      &lt;li id=&quot;gRKH&quot;&gt;Communication diagram (UML2.0) / Collaboration (UML1.x) (Диаграмма коммуникации / Диаграмма кооперации)&lt;/li&gt;
      &lt;li id=&quot;ZpB8&quot;&gt;Interaction overview diagram (UML2.0) (Диаграмма обзора взаимодействия)&lt;/li&gt;
      &lt;li id=&quot;Xl7p&quot;&gt;Sequence diagram (Диаграмма последовательности)&lt;/li&gt;
      &lt;li id=&quot;HRRZ&quot;&gt;Timing diagram (UML2.0) (Диаграмма синхронизации)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;zfyY&quot;&gt;Ниже дано краткое описание диаграммы каждого вида.&lt;/p&gt;
  &lt;h2 id=&quot;jvi3&quot;&gt;1. Диаграмма классов&lt;/h2&gt;
  &lt;p id=&quot;sNvX&quot;&gt;&lt;em&gt;Диаграмма классов&lt;/em&gt; (Class diagram) — статическая структурная диаграмма, описывающая структуру системы, демонстрирующая классы системы, их атрибуты, методы и зависимости между классами.&lt;/p&gt;
  &lt;p id=&quot;DPTL&quot;&gt;Существуют разные точки зрения на построение диаграмм классов в зависимости от целей их применения:&lt;/p&gt;
  &lt;ul id=&quot;ROwi&quot;&gt;
    &lt;li id=&quot;E3bK&quot;&gt;концептуальная точка зрения — диаграмма классов описывает модель предметной области, в ней присутствуют только классы прикладных объектов;&lt;/li&gt;
    &lt;li id=&quot;g2EL&quot;&gt;точка зрения спецификации — диаграмма классов применяется при проектировании информационных систем;&lt;/li&gt;
    &lt;li id=&quot;86oA&quot;&gt;точка зрения реализации — диаграмма классов содержит классы, используемые непосредственно в программном коде (при использовании объектно-ориентированных языков программирования).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;4cxk&quot;&gt;2. Диаграмма компонентов&lt;/h2&gt;
  &lt;p id=&quot;vTlZ&quot;&gt;&lt;em&gt;Диаграмма компонентов&lt;/em&gt; (Component diagram) — статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонентов могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п.&lt;/p&gt;
  &lt;h2 id=&quot;Vi0j&quot;&gt;3. Диаграмма композитной/составной структуры&lt;/h2&gt;
  &lt;p id=&quot;SW1O&quot;&gt;&lt;em&gt;Диаграмма композитной/составной структуры&lt;/em&gt; (Composite structure diagram) — статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.&lt;/p&gt;
  &lt;p id=&quot;7Mry&quot;&gt;Подвидом диаграмм композитной структуры являются &lt;em&gt;диаграммы кооперации&lt;/em&gt; (Collaboration diagram, введены в UML 2.0), которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделировании шаблонов проектирования.&lt;/p&gt;
  &lt;p id=&quot;iX0V&quot;&gt;Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.&lt;/p&gt;
  &lt;h2 id=&quot;ZCph&quot;&gt;4. Диаграмма развёртывания&lt;/h2&gt;
  &lt;p id=&quot;4Hg3&quot;&gt;&lt;em&gt;Диаграмма развёртывания&lt;/em&gt; (Deployment diagram, диаграмма размещения) — служит для моделирования работающих узлов (аппаратных средств, &lt;em&gt;node&lt;/em&gt;) и артефактов, развёрнутых на них. В UML 2 на узлах разворачиваются артефакты (&lt;em&gt;artifact&lt;/em&gt;), в то время как в UML 1 на узлах разворачивались компоненты. Между артефактом и логическим элементом (компонентом), который он реализует, устанавливается зависимость манифестации.&lt;/p&gt;
  &lt;h2 id=&quot;R4ZX&quot;&gt;5. Диаграмма объектов&lt;/h2&gt;
  &lt;p id=&quot;u6vF&quot;&gt;&lt;em&gt;Диаграмма объектов&lt;/em&gt; (Object diagram) — демонстрирует полный или частичный снимок моделируемой системы в заданный момент времени. На диаграмме объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений их атрибутов и связей между объектами.&lt;/p&gt;
  &lt;h2 id=&quot;u0cA&quot;&gt;6. Диаграмма пакетов&lt;/h2&gt;
  &lt;p id=&quot;wAGC&quot;&gt;&lt;em&gt;Диаграмма пакетов&lt;/em&gt; (Package diagram) — структурная диаграмма, основным содержанием которой являются пакеты и отношения между ними. Жёсткого разделения между разными структурными диаграммами не проводится, поэтому данное название предлагается исключительно для удобства и не имеет семантического значения (пакеты и диаграммы пакетов могут присутствовать на других структурных диаграммах). Диаграммы пакетов служат, в первую очередь, для организации элементов в группы по какому-либо признаку с целью упрощения структуры и организации работы с моделью системы.&lt;/p&gt;
  &lt;h2 id=&quot;XwYI&quot;&gt;7. Диаграмма деятельности&lt;/h2&gt;
  &lt;p id=&quot;VzZP&quot;&gt;&lt;em&gt;Диаграмма деятельности&lt;/em&gt; (Activity diagram) — диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью (&lt;em&gt;activity&lt;/em&gt;) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий (&lt;em&gt;action&lt;/em&gt;), соединённых между собой потоками, которые идут от выходов одного узла к входам другого.&lt;/p&gt;
  &lt;p id=&quot;6v4K&quot;&gt;Диаграммы деятельности используются при моделировании бизнес-процессов, технологических процессов, последовательных и параллельных вычислений.&lt;/p&gt;
  &lt;h2 id=&quot;CBT3&quot;&gt;8. Диаграмма автомата&lt;/h2&gt;
  &lt;p id=&quot;xT3c&quot;&gt;&lt;em&gt;Диаграмма автомата&lt;/em&gt; (State Machine diagram, диаграмма конечного автомата, диаграмма состояний) — диаграмма, на которой представлен конечный автомат с простыми состояниями, переходами и композитными состояниями.&lt;/p&gt;
  &lt;p id=&quot;BBMa&quot;&gt;&lt;em&gt;Конечный автомат&lt;/em&gt; (State machine) — спецификация последовательности состояний, через которые проходит объект или взаимодействие в ответ на события своей жизни, а также ответные действия объекта на эти события. Конечный автомат прикреплён к исходному элементу (классу, кооперации или методу) и служит для определения поведения его экземпляров.&lt;/p&gt;
  &lt;h2 id=&quot;LpJs&quot;&gt;9. Диаграмма прецедентов (Диаграмма вариантов использования)&lt;/h2&gt;
  &lt;p id=&quot;dPg6&quot;&gt;&lt;em&gt;Диаграмма прецедентов&lt;/em&gt; или &lt;em&gt;диаграмма вариантов использования&lt;/em&gt; (Use case diagram) — диаграмма, на которой отражены отношения, существующие между акторами и вариантами использования.&lt;/p&gt;
  &lt;p id=&quot;Bw5C&quot;&gt;Основная задача — представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы.&lt;/p&gt;
  &lt;h2 id=&quot;v2zc&quot;&gt;10. Диаграммы коммуникации и последовательности&lt;/h2&gt;
  &lt;p id=&quot;7O3F&quot;&gt;&lt;em&gt;Диаграммы коммуникации и последовательности&lt;/em&gt; транзитивны, выражают взаимодействие, но показывают его различными способами и с достаточной степенью точности могут быть преобразованы одна в другую.&lt;/p&gt;
  &lt;p id=&quot;kmaZ&quot;&gt;&lt;em&gt;Диаграмма коммуникации&lt;/em&gt; (Communication diagram, в UML 1.x — диаграмма кооперации, collaboration diagram) — диаграмма, на которой изображаются взаимодействия между частями композитной структуры или ролями кооперации. В отличие от диаграммы последовательности, на диаграмме коммуникации явно указываются отношения между элементами (объектами), а время как отдельное измерение не используется (применяются порядковые номера вызовов).&lt;/p&gt;
  &lt;p id=&quot;JQN7&quot;&gt;&lt;em&gt;Диаграмма последовательности&lt;/em&gt; (Sequence diagram) — диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления. В частности, на ней изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются.&lt;/p&gt;
  &lt;p id=&quot;AIPh&quot;&gt;&lt;em&gt;Диаграмма сотрудничества&lt;/em&gt; — этот тип диаграмм позволяет описать взаимодействия объектов, абстрагируясь от последовательности передачи сообщений. На этом типе диаграмм в компактном виде отражаются все принимаемые и передаваемые сообщения конкретного объекта и типы этих сообщений.&lt;/p&gt;
  &lt;p id=&quot;il1q&quot;&gt;По причине того, что диаграммы Sequence и Collaboration являются разными взглядами на одни и те же процессы, Rational Rose позволяет создавать из Sequence диаграммы диаграмму Collaboration и наоборот, а также производит автоматическую синхронизацию этих диаграмм.&lt;/p&gt;
  &lt;h2 id=&quot;UD1x&quot;&gt;11. Диаграмма обзора взаимодействия&lt;/h2&gt;
  &lt;p id=&quot;y92U&quot;&gt;&lt;em&gt;Диаграмма обзора взаимодействия&lt;/em&gt; — разновидность диаграммы деятельности, включающая фрагменты диаграммы последовательности и конструкции потока управления.&lt;/p&gt;
  &lt;p id=&quot;FIoV&quot;&gt;Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.&lt;/p&gt;
  &lt;h2 id=&quot;8htl&quot;&gt;12. Диаграмма синхронизации&lt;/h2&gt;
  &lt;p id=&quot;vZbz&quot;&gt;&lt;em&gt;Диаграмма синхронизации&lt;/em&gt; (Timing diagram) — альтернативное представление диаграммы последовательности, явным образом показывающее изменения состояния на линии жизни с заданной шкалой времени. Может быть полезна в приложениях реального времени.&lt;/p&gt;

</content></entry><entry><id>sys-analyst:sql-2</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/sql-2?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>SQL. Часть 2. Выводим не всё и по порядку</title><published>2023-08-30T09:17:38.705Z</published><updated>2023-08-30T09:17:38.705Z</updated><category term="sql" label="sql"></category><summary type="html">Порой выводить результаты запроса надо в каком-то порядке или не все, а какую-то часть. Для это можно использовать следующее.</summary><content type="html">
  &lt;p id=&quot;C3lP&quot;&gt;&lt;em&gt;Порой выводить результаты запроса надо в каком-то порядке или не все, а какую-то часть. Для это можно использовать следующее.&lt;/em&gt;&lt;/p&gt;
  &lt;h2 id=&quot;pHFV&quot;&gt;Ключевое слово ORDER BY&lt;/h2&gt;
  &lt;p id=&quot;dCQQ&quot;&gt;Ключевое слово ORDER BY используется для сортировки результирующего набора в порядке возрастания или убывания. По умолчанию упорядочение по ключевым словам сортирует записи в порядке возрастания. Для сортировки записей в порядке убывания используйте ключевое слово «описание».&lt;/p&gt;
  &lt;p id=&quot;3Z27&quot;&gt;&lt;u&gt;Примеры&lt;/u&gt;:&lt;/p&gt;
  &lt;blockquote id=&quot;QSR9&quot;&gt;SELECT * FROM Customers ORDER BY Country&lt;/blockquote&gt;
  &lt;p id=&quot;kBXu&quot;&gt;Эта инструкция выбирает всех записи из таблицы «Customers», отсортированной по столбцу «Country» (по алфавиту). Если надо вывести те же данные, но в порядке, обратном алфавитному, надо использовать описание &amp;quot;DESC&amp;quot; (сортировка по убыванию). &lt;/p&gt;
  &lt;blockquote id=&quot;Gsek&quot;&gt;SELECT * FROM Customers ORDER BY Country DESC&lt;/blockquote&gt;
  &lt;p id=&quot;BKPx&quot;&gt;Для сортировки по возрастанию можно использовать описание &amp;quot;ASC&amp;quot; (используется по умолчанию).&lt;/p&gt;
  &lt;p id=&quot;0rt6&quot;&gt;Заметим, что можно соритровать информацию по нескольким столбцам:&lt;/p&gt;
  &lt;blockquote id=&quot;ADXE&quot;&gt;SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC&lt;/blockquote&gt;
  &lt;p id=&quot;Vb4g&quot;&gt;Эта инструкция выбирает все записи из таблицы «Customers», отсортированных по алфавиту значения поля в столбце «Country» и в обратном алфавитном порядке по значению поля в столбце  «CustomerName».&lt;/p&gt;
  &lt;h2 id=&quot;GY72&quot;&gt;Предложение SELECT Top/Limit&lt;/h2&gt;
  &lt;p id=&quot;iAv1&quot;&gt;Предложение SELECT Top/Limit используется для указания количества возвращаемых записей. Предложение SELECT Top/Limit полезно для больших таблиц с тысячами записей. Возврат большого количества записей может повлиять на производительность. Кроме того, такие данные просто тяжело читать.&lt;/p&gt;
  &lt;blockquote id=&quot;utTb&quot;&gt;Почему Top/Limit? Некоторые версии SQL (например, MySQL) не поддерживает предложение &amp;quot;Top&amp;quot;, но поддерживают предложение &amp;quot;Limit&amp;quot; (и наоборот).&lt;/blockquote&gt;
  &lt;p id=&quot;HIT8&quot;&gt;&lt;u&gt;Примеры&lt;/u&gt;:&lt;/p&gt;
  &lt;p id=&quot;zALA&quot;&gt;1. SELECT * FROM Customers LIMIT 100&lt;/p&gt;
  &lt;p id=&quot;dCtI&quot;&gt;2. SELECT TOP 100 * FROM Customers &lt;/p&gt;
  &lt;p id=&quot;KazZ&quot;&gt;Выводятся первые 100 записей из таблицы «Customers» отсортированные по умолчанию.&lt;/p&gt;
  &lt;p id=&quot;hDkl&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;5CFF&quot;&gt;Теперь соединим оба описываемых параметра в одном примере:&lt;br /&gt; SELECT TOP 10 * FROM Customers  ORDER BY Country &lt;/p&gt;
  &lt;p id=&quot;Yh3u&quot;&gt;По данному запросу выводятся 100 первых записей из таблицы «Customers» отсортированные по алфавиту названия страны.&lt;/p&gt;

</content></entry><entry><id>sys-analyst:sql-1</id><link rel="alternate" type="text/html" href="https://teletype.in/@sys-analyst/sql-1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sys-analyst"></link><title>SQL. Основные команды и операторы. Часть 1</title><published>2023-08-29T11:05:09.044Z</published><updated>2025-10-13T18:26:44.776Z</updated><category term="sql" label="sql"></category><summary type="html">SQL является стандартным языком для хранения, редактирования, удаления и извлечения данных в базах данных.</summary><content type="html">
  &lt;p id=&quot;Lfp7&quot;&gt;SQL является стандартным языком для хранения, редактирования, удаления и извлечения данных в базах данных.&lt;/p&gt;
  &lt;p id=&quot;zyLm&quot;&gt;SQL расшифровывается как &amp;quot;структурированный язык запросов&amp;quot;. SQL позволяет обращаться к базам данных и управлять ими. SQL стал стандартом американского Национального института стандартов (ANSI) в 1986, и международной организации по стандартизации (ISO) в 1987.&lt;/p&gt;
  &lt;h2 id=&quot;N8ya&quot;&gt;Самые используемые команды SQL&lt;/h2&gt;
  &lt;h3 id=&quot;ekKu&quot;&gt;DML — язык изменения данных (Data Manipulation Language)&lt;/h3&gt;
  &lt;ul id=&quot;i7A4&quot;&gt;
    &lt;li id=&quot;QHB5&quot;&gt;&lt;strong&gt;SELECT&lt;/strong&gt; - Извлекает данные из базы данных;&lt;/li&gt;
    &lt;li id=&quot;xqFA&quot;&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; - обновляет данные в базе данных;&lt;/li&gt;
    &lt;li id=&quot;FWn7&quot;&gt;&lt;strong&gt;DELETE&lt;/strong&gt; - Удаление данных из базы данных;&lt;/li&gt;
    &lt;li id=&quot;K7tg&quot;&gt;&lt;strong&gt;INSERT INTO&lt;/strong&gt; - Вставка новых данных в базу данных;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;X8gv&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Ij4s&quot;&gt;DDL — язык определения данных (Data Definition Language)&lt;/h3&gt;
  &lt;ul id=&quot;yRZG&quot;&gt;
    &lt;li id=&quot;myEQ&quot;&gt;&lt;strong&gt;CREATE DATABASE&lt;/strong&gt; - создает новую базу данных;&lt;/li&gt;
    &lt;li id=&quot;RCNh&quot;&gt;&lt;strong&gt;ALTER DATABASE&lt;/strong&gt; - изменяет базу данных;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;sdUV&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;izMN&quot;&gt;
    &lt;li id=&quot;kacs&quot;&gt;&lt;strong&gt;CREATE TABLE&lt;/strong&gt; - Создание новой таблицы;&lt;/li&gt;
    &lt;li id=&quot;JgBD&quot;&gt;&lt;strong&gt;ALTER TABLE&lt;/strong&gt; - изменяет таблицу;&lt;/li&gt;
    &lt;li id=&quot;RsqF&quot;&gt;&lt;strong&gt;DROP TABLE&lt;/strong&gt; - Удаление таблицы;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;GddJ&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;Dw9O&quot;&gt;
    &lt;li id=&quot;9sEc&quot;&gt;&lt;strong&gt;CREATE INDEX&lt;/strong&gt; - создает индекс (ключ поиска);&lt;/li&gt;
    &lt;li id=&quot;fx5O&quot;&gt;&lt;strong&gt;DROP INDEX&lt;/strong&gt; - Удаляет индекс.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;49ue&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;eseK&quot;&gt;DCL — язык управления данными (Data Control Language)&lt;/h3&gt;
  &lt;ul id=&quot;6SZI&quot;&gt;
    &lt;li id=&quot;BoYz&quot;&gt;GRANT - Наделяет пользователя правами;&lt;/li&gt;
    &lt;li id=&quot;b7IR&quot;&gt;REVOKE - Отменяет права пользователя.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;2fsi&quot;&gt;Ограничения (constraints)&lt;/h2&gt;
  &lt;p id=&quot;ntQ3&quot;&gt;Ограничения могут устанавливаться как на уровне колонки, так и на уровне таблицы.&lt;/p&gt;
  &lt;p id=&quot;HJBa&quot;&gt;Среди наиболее распространенных ограничений можно назвать следующие:&lt;/p&gt;
  &lt;ul id=&quot;oIH6&quot;&gt;
    &lt;li id=&quot;nal9&quot;&gt;&lt;code&gt;NOT NULL&lt;/code&gt; — колонка не может иметь нулевое значение;&lt;/li&gt;
    &lt;li id=&quot;rQnG&quot;&gt;&lt;code&gt;DEFAULT&lt;/code&gt; — значение колонки по умолчанию;&lt;/li&gt;
    &lt;li id=&quot;JPwG&quot;&gt;&lt;code&gt;UNIQUE&lt;/code&gt; — все значения колонки должны быть уникальными;&lt;/li&gt;
    &lt;li id=&quot;CVx7&quot;&gt;&lt;code&gt;PRIMARY KEY&lt;/code&gt; — первичный или основной ключ, уникальный идентификатор записи в текущей таблице;&lt;/li&gt;
    &lt;li id=&quot;8nnk&quot;&gt;&lt;code&gt;FOREIGN KEY&lt;/code&gt; — внешний ключ, уникальный идентификатор записи в другой таблице (таблице, связанной с текущей);&lt;/li&gt;
    &lt;li id=&quot;L0CB&quot;&gt;&lt;code&gt;CHECK&lt;/code&gt; — все значения в колонке должны удовлетворять определенному условию;&lt;/li&gt;
    &lt;li id=&quot;GC35&quot;&gt;&lt;code&gt;INDEX&lt;/code&gt; — быстрая запись и извлечение данных.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;94P8&quot;&gt;Любое ограничение может быть удалено с помощью команды &lt;code&gt;ALTER TABLE&lt;/code&gt; и &lt;code&gt;DROP CONSTRAINT&lt;/code&gt; + название ограничения. Некоторые реализации предоставляют сокращения для удаления ограничений и возможность отключать ограничения вместо их удаления.&lt;/p&gt;
  &lt;h2 id=&quot;ltCK&quot;&gt;Целостность данных&lt;/h2&gt;
  &lt;p id=&quot;lmYG&quot;&gt;В каждой СУБД существуют следующие категории целостности данных:&lt;/p&gt;
  &lt;ul id=&quot;odO6&quot;&gt;
    &lt;li id=&quot;oTZD&quot;&gt;целостность объекта (Entity Integrity) — в таблице не должно быть дубликатов (двух и более строк с одинаковыми значениями);&lt;/li&gt;
    &lt;li id=&quot;apdz&quot;&gt;целостность домена (Domain Integrity) — фильтрация значений по типу, формату или диапазону;&lt;/li&gt;
    &lt;li id=&quot;x5kE&quot;&gt;целостность ссылок (Referential integrity) — строки, используемые другими записями (строки, на которые в других записях имеются ссылки), не могут быть удалены;&lt;/li&gt;
    &lt;li id=&quot;06Da&quot;&gt;целостность, определенная пользователем (User-Defined Integrity) — дополнительные правила.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;osRr&quot;&gt;Нормализация БД&lt;/h2&gt;
  &lt;p id=&quot;SZHV&quot;&gt;Нормализация — это &lt;strong&gt;процесс эффективной организации данных&lt;/strong&gt; в БД. Существует две главных причины, обуславливающих необходимость нормализации:&lt;/p&gt;
  &lt;ul id=&quot;xn83&quot;&gt;
    &lt;li id=&quot;D38u&quot;&gt;предотвращение записи в БД лишних данных, например, хранения одинаковых данных в разных таблицах;&lt;/li&gt;
    &lt;li id=&quot;JLos&quot;&gt;обеспечение &amp;quot;оправданной&amp;quot; связи между данными.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;BJuA&quot;&gt;Нормализация предполагает соблюдение нескольких форм. Форма — это формат структурирования БД. Существует три главных формы: первая, вторая и, соответственно, третья. Я не буду вдаваться в подробности об этих формах, при желании, вы без труда найдете необходимую информацию.&lt;/p&gt;
  &lt;h2 id=&quot;SsKb&quot;&gt;Типы данных&lt;/h2&gt;
  &lt;p id=&quot;RW37&quot;&gt;Каждая колонка, переменная и выражение в &lt;code&gt;SQL&lt;/code&gt; имеют определенный тип данных (data type). Основные категории типов данных:&lt;/p&gt;
  &lt;h3 id=&quot;vrTf&quot;&gt;Точные числовые&lt;/h3&gt;
  &lt;figure id=&quot;Eqo4&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e7/47/e7477877-693e-416c-911c-92982bb1bace.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;o9cI&quot;&gt;Приблизительные числовые&lt;/h3&gt;
  &lt;figure id=&quot;iwGq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d7/dc/d7dc764e-697c-4ace-a909-b6a66c3ba241.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;7Lx1&quot;&gt;Дата и время&lt;/h3&gt;
  &lt;figure id=&quot;39VA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8d/a6/8da6c20d-2795-4fdc-9db4-6fc71c7b8d02.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;LRP8&quot;&gt;Строковые символьные&lt;/h3&gt;
  &lt;figure id=&quot;W24Z&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/08/6208738b-10a6-40e5-ae98-8b068658efd1.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;244r&quot;&gt;Строковые символьные (юникод)&lt;/h3&gt;
  &lt;figure id=&quot;FMR7&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c5/be/c5becd4d-8815-45c4-bfe6-9cf105864648.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;llsw&quot;&gt;Бинарные&lt;/h3&gt;
  &lt;figure id=&quot;g0Zy&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/dd/a1/dda1ed3a-2f9f-498c-8183-7d4ad2bfc2a7.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;n1g6&quot;&gt;Смешанные&lt;/h3&gt;
  &lt;figure id=&quot;a3EL&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/37/4d/374d8e02-c5d1-4ac7-b7c9-474796390b58.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Dqnv&quot;&gt;Синтаксис SQL&lt;/h2&gt;
  &lt;h3 id=&quot;CCw3&quot;&gt;Логические операторы&lt;/h3&gt;
  &lt;figure id=&quot;KmfO&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/dd/3b/dd3bb0e0-4dfb-45a4-834c-76774e0b6031.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;Yb7X&quot;&gt;Встроенных функций для чисел&lt;/h3&gt;
  &lt;ul id=&quot;Gi9k&quot;&gt;
    &lt;li id=&quot;7KWo&quot;&gt;&lt;code&gt;AVG&lt;/code&gt; — вычисляет среднее значение;&lt;/li&gt;
    &lt;li id=&quot;Jt76&quot;&gt;&lt;code&gt;SUM&lt;/code&gt; — вычисляет сумму значений;&lt;/li&gt;
    &lt;li id=&quot;a22e&quot;&gt;&lt;code&gt;MIN&lt;/code&gt; — вычисляет наименьшее значение;&lt;/li&gt;
    &lt;li id=&quot;wJyM&quot;&gt;&lt;code&gt;MAX&lt;/code&gt; — вычисляет наибольшее значение;&lt;/li&gt;
    &lt;li id=&quot;4sPd&quot;&gt;&lt;code&gt;COUNT&lt;/code&gt; — вычисляет количество записей в таблице.&lt;/li&gt;
    &lt;li id=&quot;XmHZ&quot;&gt;&lt;code&gt;ROUND&lt;/code&gt; — округляет число;&lt;/li&gt;
    &lt;li id=&quot;aF39&quot;&gt;&lt;code&gt;TRUNCATE&lt;/code&gt; — обрезает дробное число до указанного количества знаков после запятой;&lt;/li&gt;
    &lt;li id=&quot;E3lP&quot;&gt;&lt;code&gt;CEILING&lt;/code&gt; — возвращает наименьшее целое число, которое больше или равно текущему значению;&lt;/li&gt;
    &lt;li id=&quot;o1Za&quot;&gt;&lt;code&gt;FLOOR&lt;/code&gt; — возвращает наибольшее целое число, которое меньше или равно текущему значению;&lt;/li&gt;
    &lt;li id=&quot;fHdL&quot;&gt;&lt;code&gt;POWER&lt;/code&gt; — возводит число в указанную степень;&lt;/li&gt;
    &lt;li id=&quot;M16E&quot;&gt;&lt;code&gt;SQRT&lt;/code&gt; — возвращает квадратный корень числа;&lt;/li&gt;
    &lt;li id=&quot;1jZP&quot;&gt;&lt;code&gt;RAND&lt;/code&gt; — генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;yleS&quot;&gt;Встроенных функций для строк&lt;/h3&gt;
  &lt;ul id=&quot;kJEm&quot;&gt;
    &lt;li id=&quot;7vDn&quot;&gt;&lt;code&gt;CONCAT&lt;/code&gt; — объединение строк;&lt;/li&gt;
    &lt;li id=&quot;DMXJ&quot;&gt;&lt;code&gt;LENGTH&lt;/code&gt; — возвращает количество символов в строке;&lt;/li&gt;
    &lt;li id=&quot;aZDs&quot;&gt;&lt;code&gt;TRIM&lt;/code&gt; — удаляет пробелы в начале и конце строки;&lt;/li&gt;
    &lt;li id=&quot;xq9s&quot;&gt;&lt;code&gt;SUBSTRING&lt;/code&gt; — извлекает подстроку из строки;&lt;/li&gt;
    &lt;li id=&quot;SNTG&quot;&gt;&lt;code&gt;REPLACE&lt;/code&gt; — заменяет подстроку в строке;&lt;/li&gt;
    &lt;li id=&quot;S82L&quot;&gt;&lt;code&gt;LOWER&lt;/code&gt; — переводит символы строки в нижний регистр;&lt;/li&gt;
    &lt;li id=&quot;XV9e&quot;&gt;&lt;code&gt;UPPER&lt;/code&gt; — переводит символы строки в верхний регистр и т.д.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;CDmM&quot;&gt;Встроенные инструменты для работы с временем и датой&lt;/h3&gt;
  &lt;p id=&quot;I0Ym&quot;&gt;Возвращает текущую время и дату: &lt;/p&gt;
  &lt;pre id=&quot;92Ts&quot;&gt;SELECT CURRENT_TIMESTAMP;&lt;/pre&gt;
  &lt;p id=&quot;LX0T&quot;&gt;&lt;code&gt;CURRENT_TIMESTAMP&lt;/code&gt; — это и выражение, и функция (&lt;code&gt;CURRENT_TIMESTAMP()&lt;/code&gt;). Другая функция для получения текущей даты и времени — &lt;code&gt;NOW()&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;ErHq&quot;&gt;&lt;strong&gt;Функции для разбора даты и времени:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;NtVY&quot;&gt;
    &lt;li id=&quot;bjdb&quot;&gt;&lt;code&gt;DAYOFMONTH(date)&lt;/code&gt; — возвращает день месяца в виде числа&lt;/li&gt;
    &lt;li id=&quot;7Ptr&quot;&gt;&lt;code&gt;DAYOFWEEK(date)&lt;/code&gt; — возвращает день недели в виде числа&lt;/li&gt;
    &lt;li id=&quot;AHtX&quot;&gt;&lt;code&gt;DAYOFYEAR(date)&lt;/code&gt; — возвращает номер дня в году&lt;/li&gt;
    &lt;li id=&quot;9RRu&quot;&gt;&lt;code&gt;MONTH(date)&lt;/code&gt; — возвращает месяц&lt;/li&gt;
    &lt;li id=&quot;emAq&quot;&gt;&lt;code&gt;YEAR(date)&lt;/code&gt; — возвращает год&lt;/li&gt;
    &lt;li id=&quot;KO2R&quot;&gt;&lt;code&gt;LAST_DAY(date)&lt;/code&gt; — возвращает последний день месяца в виде даты&lt;/li&gt;
    &lt;li id=&quot;d7Ou&quot;&gt;&lt;code&gt;HOUR(time)&lt;/code&gt; — возвращает час&lt;/li&gt;
    &lt;li id=&quot;vHVf&quot;&gt;&lt;code&gt;MINUTE(time)&lt;/code&gt; — возвращает минуты&lt;/li&gt;
    &lt;li id=&quot;prtN&quot;&gt;&lt;code&gt;SECOND(time)&lt;/code&gt; — возвращает секунды и др.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;fmwe&quot;&gt;&lt;strong&gt;Функции для манипулирования датами:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Blmq&quot;&gt;
    &lt;li id=&quot;8QY6&quot;&gt;&lt;code&gt;DATE_ADD(date, interval)&lt;/code&gt; — выполняет сложение даты и определенного временного интервала&lt;/li&gt;
    &lt;li id=&quot;xhV1&quot;&gt;&lt;code&gt;DATE_SUB(date, interval)&lt;/code&gt; — выполняет вычитание из даты определенного временного интервала&lt;/li&gt;
    &lt;li id=&quot;uciv&quot;&gt;&lt;code&gt;DATEDIFF(date1, date2)&lt;/code&gt; — возвращает разницу в днях между двумя датами&lt;/li&gt;
    &lt;li id=&quot;xiq3&quot;&gt;&lt;code&gt;TO_DAYS(date)&lt;/code&gt; — возвращает количество дней с 0-го дня года&lt;/li&gt;
    &lt;li id=&quot;gi7Q&quot;&gt;&lt;code&gt;TIME_TO_SEC(time)&lt;/code&gt; — возвращает количество секунд с полуночи и др.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;tKjl&quot;&gt;Для форматирования даты и времени используются функции &lt;code&gt;DATE_FORMAT(date, format)&lt;/code&gt; и &lt;code&gt;TIME_FORMAT(date, format)&lt;/code&gt;, соответственно.&lt;/p&gt;
  &lt;h3 id=&quot;HioJ&quot;&gt;Инструкция &amp;quot;SELECT&amp;quot;&lt;/h3&gt;
  &lt;p id=&quot;iLYP&quot;&gt;Инструкция SELECT используется для выбора данных из базы данных.&lt;/p&gt;
  &lt;p id=&quot;v8GQ&quot;&gt;Возвращаемые данные хранятся в результирующей таблице, называемой результирующим набором.&lt;/p&gt;
  &lt;p id=&quot;weFI&quot;&gt;SELECT &lt;em&gt;column1&lt;/em&gt;,&lt;em&gt; column2, ...&lt;/em&gt;&lt;br /&gt;FROM &lt;em&gt;table_name&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;heS6&quot;&gt;Где:&lt;/p&gt;
  &lt;ul id=&quot;KCWM&quot;&gt;
    &lt;li id=&quot;PIDO&quot;&gt;&lt;em&gt;column1&lt;/em&gt;,&lt;em&gt; column2 -&lt;/em&gt;  имена столбцов;&lt;/li&gt;
    &lt;li id=&quot;n8S2&quot;&gt;&lt;em&gt;table_name&lt;/em&gt; -  имя таблицы.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;CdVK&quot;&gt;1. Можно использовать синтаксис SELECT * FROM &lt;em&gt;table_name.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;WAis&quot;&gt;По выполнению этого запроса выводится вся таблица полностью.&lt;/p&gt;
  &lt;p id=&quot;lsFi&quot;&gt;2. Можно использовать некоторое условие (condition). Например, для запроса:&lt;/p&gt;
  &lt;blockquote id=&quot;Gc02&quot;&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;name &lt;/em&gt;&amp;lt;&amp;gt; &amp;#x27;example&amp;#x27;&lt;/blockquote&gt;
  &lt;p id=&quot;NmHP&quot;&gt;будут выводиться только те сроки таблицы &lt;em&gt;table_name, поле name у которых не равно значению &amp;quot;example&amp;quot;.&lt;/em&gt;&lt;/p&gt;
  &lt;h2 id=&quot;EGP8&quot;&gt;Операторы в WHERE&lt;/h2&gt;
  &lt;ul id=&quot;bUu7&quot;&gt;
    &lt;li id=&quot;GKmr&quot;&gt;&amp;quot;=&amp;quot;, равно - строгое равенство какому-то значению;&lt;/li&gt;
    &lt;li id=&quot;9qZU&quot;&gt;&amp;quot;&amp;lt;&amp;gt;&amp;quot; -  не равно - строгое неравенство какому-то значению;&lt;/li&gt;
    &lt;li id=&quot;B82R&quot;&gt;&amp;quot;&amp;gt;&amp;quot;, больше - больше какого-то значения (корректно работает только для числовых значений или единичных символов);&lt;/li&gt;
    &lt;li id=&quot;9VeC&quot;&gt;&amp;quot;&amp;lt;&amp;quot;, меньше - меньше какого-то значения (корректно работает только для числовых значений или единичных символов);&lt;/li&gt;
    &lt;li id=&quot;ztJT&quot;&gt;&amp;quot;&amp;gt;=&amp;quot;, больше или равно - равно или больше какого-то значения (корректно работает только для числовых значений или единичных символов);&lt;/li&gt;
    &lt;li id=&quot;ZKpP&quot;&gt;&amp;quot;&amp;lt;=&amp;quot;, меньше или равно - равно или меньше какого-то значения (корректно работает только для числовых значений или единичных символов);&lt;/li&gt;
    &lt;li id=&quot;PuMk&quot;&gt;&amp;quot;BETWEEN&amp;quot;, между - между каким-то инклюзивным диапазоном;&lt;/li&gt;
    &lt;li id=&quot;GOGY&quot;&gt;&amp;quot;LIKE&amp;quot;, похоже - используется для поиска по какому-то шаблону;&lt;/li&gt;
    &lt;li id=&quot;GMIV&quot;&gt;&amp;quot;IN&amp;quot;, в - используется для задания нескольких конечных значений;&lt;/li&gt;
    &lt;li id=&quot;TZ8o&quot;&gt;&amp;quot;IS NULL&amp;quot; - используется для выбора данных, не имеющих значения (или имеющих значение &amp;quot;NULL&amp;quot;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;blockquote id=&quot;Tw9b&quot;&gt;NULL - это принятое в SQL обозначение пустого значения. Очевидно, что 0 не может быть пустым значением. Значение &amp;quot;NULL&amp;quot; означает, что значение пока не было задано или было удалено.&lt;/blockquote&gt;
  &lt;p id=&quot;49Mi&quot;&gt;Кроме того, в операторе WHERE может находиться несколько условий поиска, между которыми могут операторы &amp;quot;AND&amp;quot;, &amp;quot;OR&amp;quot; или &amp;quot;NOT&amp;quot;.&lt;/p&gt;
  &lt;ul id=&quot;xbMT&quot;&gt;
    &lt;li id=&quot;yztV&quot;&gt;&lt;strong&gt;AND&lt;/strong&gt; - отображает те записи,  для которых все условия выполняются;&lt;/li&gt;
    &lt;li id=&quot;tcAQ&quot;&gt;&lt;strong&gt;OR &lt;/strong&gt;- отображает те записи,  для которых какое-либо из условий выполняется;&lt;/li&gt;
    &lt;li id=&quot;YcpR&quot;&gt;&lt;strong&gt;NOT&lt;/strong&gt; - отображает те записи, для которых условие не выполняется.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;phyJ&quot;&gt;Рассмотрим применение каждого оператора&lt;/h3&gt;
  &lt;ol id=&quot;blww&quot;&gt;
    &lt;li id=&quot;A4NY&quot;&gt;&lt;strong&gt;Равно&lt;/strong&gt;&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;name = &lt;/em&gt;&amp;#x27;example&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;name&lt;/em&gt;&amp;quot; принимает значение &amp;quot;example&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;otMT&quot;&gt;&lt;strong&gt;Не равно&lt;br /&gt;&lt;/strong&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;name &amp;lt;&amp;gt; &lt;/em&gt;&amp;#x27;example&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;name&lt;/em&gt;&amp;quot; принимает значение не &amp;quot;example&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;Ezfd&quot;&gt;&lt;strong&gt;Больше&lt;/strong&gt;&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &amp;gt; &lt;/em&gt;&amp;#x27;1&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot; больше 1.&lt;/li&gt;
    &lt;li id=&quot;W2hg&quot;&gt;&lt;strong&gt;Меньше&lt;/strong&gt;&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &amp;lt; &lt;/em&gt;&amp;#x27;1&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot; меньше 1.&lt;/li&gt;
    &lt;li id=&quot;gdgH&quot;&gt;&lt;strong&gt;Больше или равно&lt;br /&gt;&lt;/strong&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &amp;gt;= &lt;/em&gt;&amp;#x27;1&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot; больше или равно 1.&lt;/li&gt;
    &lt;li id=&quot;jdKe&quot;&gt;&lt;strong&gt;Меньше или равно&lt;br /&gt;&lt;/strong&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &amp;lt;= &lt;/em&gt;&amp;#x27;1&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot; меньше или равно 1.&lt;/li&gt;
    &lt;li id=&quot;d7dN&quot;&gt;&lt;strong&gt;BETWEEN&lt;br /&gt;&lt;/strong&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &lt;/em&gt;BETWEEN &amp;#x27;1&amp;#x27; AND &amp;#x27;3&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot; больше или равно 1 и меньше или равно 3.&lt;br /&gt;Очевидно, что данный запрос можно заменить на запрос:&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &lt;/em&gt;&amp;gt;= &amp;#x27;1&amp;#x27; AND  &lt;em&gt;number &amp;lt;&lt;/em&gt;= &amp;#x27;3&amp;#x27;&lt;/li&gt;
    &lt;li id=&quot;98aU&quot;&gt;&lt;strong&gt;LIKE&lt;/strong&gt;&lt;br /&gt;SELECT * FROM &lt;em&gt;FamilyMembers &lt;/em&gt;WHERE &lt;em&gt;status &lt;/em&gt;LIKE &amp;#x27;%ther%&amp;#x27;&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;FamilyMembers &lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;status&lt;/em&gt;&amp;quot;  содержит &amp;quot;ther&amp;quot; (например, &amp;quot;mother&amp;quot; и &amp;quot;father&amp;quot;).&lt;/li&gt;
    &lt;li id=&quot;UEm4&quot;&gt;&lt;strong&gt;IN&lt;br /&gt;&lt;/strong&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &lt;/em&gt;IN (&amp;#x27;1&amp;#x27;,&amp;#x27;3&amp;#x27;,&amp;#x27;5&amp;#x27;)&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot;  равно 1, 2 или 3.&lt;/li&gt;
    &lt;li id=&quot;6Hol&quot;&gt;&lt;strong&gt;IS NULL&lt;/strong&gt;&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number &lt;/em&gt;IS NULL&lt;br /&gt;Выводит из таблицы &amp;quot;&lt;em&gt;table_name&lt;/em&gt;&amp;quot;, только те строки, в которых значение столбца &amp;quot;&lt;em&gt;number&lt;/em&gt;&amp;quot;  не задано (или равно NULL). Очевидно, что можно заменить на&lt;br /&gt;SELECT * FROM &lt;em&gt;table_name&lt;/em&gt; WHERE &lt;em&gt;number = &lt;/em&gt;NULL&lt;br /&gt;Но использование IS NULL более наглядно.&lt;/li&gt;
  &lt;/ol&gt;

</content></entry></feed>