Similar presentations:
Презентация_3_Хранение_данных_Выбор_способа_организации_хранения
1. Хранение данных Выбор способа организации хранения данных под задачу
Архитектор Информационных систем2. Темы
1. Современные способыхранения данных СУБД
2. Классификация баз данных по
способу обработки
3. Классификация баз данных по
способу хранения
4. Классификация баз данных по
среде постоянного хранения
5. Архитектура хранилищ данных
6. Работа с БД в прикладном
приложении
3.
Система управления базами данных (СУБД) — совокупностьпрограммных и лингвистических средств общего или
специального назначения, обеспечивающих управление
созданием и использованием баз данных.
Это также комплекс программ, позволяющих создать базу данных (БД) и
манипулировать данными (вставлять, обновлять, удалять и выбирать).
Система обеспечивает безопасность, надёжность хранения и целостность
данных, а также предоставляет средства для администрирования БД.
4.
Существует 8 видов нормальных форм:1. Первая нормальная форма (1NF): если все его атрибуты являются
простыми, работа только со скалярными значениями. Не должно
быть повторений строк в таблице.
2. Отношение находится во 2НФ, если оно находится в 1НФ и каждый
неключевой атрибут неприводимо зависит от Первичного Ключа(ПК).
Неприводимость означает, что в составе потенциального ключа
отсутствует меньшее подмножество атрибутов, от которого можно
также вывести данную функциональную зависимость.
3. Отношение находится в 3НФ, когда находится во 2НФ и каждый
неключевой атрибут нетранзитивно зависит от первичного ключа.
Проще говоря, второе правило требует выносить все не ключевые
поля, содержимое которых может относиться к нескольким записям
таблицы в отдельные таблицы.
5.
Существует 8 видов нормальных форм:4. Нормальная форма Бойса-Кодда (НФБК) (частная форма третьей
нормальной формы) - когда каждая её нетривиальная и
неприводимая слева функциональная зависимость имеет в качестве
своего детерминанта некоторый потенциальный ключ.
5. Отношение находится в четвертой нормальной форме, если оно
находится в нормальной форме Бойса — Кодда и не содержит
нетривиальных многозначных зависимостей.
6. Отношение находится в пятой нормальной форме тогда и только
тогда, когда каждая нетривиальная зависимость соединения в ней
определяется потенциальным ключом (ключами) этого отношения.
6.
Существует 8 видов нормальных форм:7. Отношение находится в ДКНФ (Доменно-ключевая нормальная
форма) тогда и только тогда, когда каждое наложенное на него
ограничение является логическим следствием ограничений доменов
и ограничений ключей, наложенных на данную переменную
отношения.
8. Отношение находится в шестой нормальной форме тогда и только
тогда, когда оно удовлетворяет всем нетривиальным зависимостям
соединения. Из определения следует, что переменная находится в
6НФ тогда и только тогда, когда она неприводима, то есть не может
быть подвергнута дальнейшей декомпозиции без потерь.
7. Классификация баз данных по способу обработки Реляционные базы данных (SQL)
• Реляционные базы данных построены наКлассификация баз
данных по способу
обработки
Реляционные базы
данных (SQL)
основе реляционной модели и
реляционной алгебры. Последняя описана
Э.Коддом в 1970-е и предлагает
формализованный аппарат по работе с
отношениями.
• Каждое отношение - определяется
набором кортежей атрибутов и как
правило описывает экземпляры
некоторых сущностей предметной
области (каждый кортеж атрибутов
задает единичную конкретную сущность).
• За счет строгой формализованности и
понятия нормальной формы (по которому
предметная область декомпозируется на
отношения), реляционная модель при
правильном подходе позволяет избежать
дублирования информации и
гарантировать ее консистентность и
целостность.
8. Классификация баз данных по способу обработки Реляционные базы данных (SQL)
• PostgreSQL• Oracle Database
• MySQL
• MS SQL
• SQLite
9.
Классификация базданных по способу
обработки
Реляционные базы
данных (SQL)
Один к одному
Один ко многим
Многие ко многим
10. Классификация баз данных по способу обработки Реляционные базы данных (SQL)
Ключевая возможность языкаSQL - это операторы
манипуляции данными (Data
Manipulation Language, DML):
1. SELECT для выбора данных,
удовлетворяющих заданным
условиям;
2. INSERT для добавления новых
данных;
3. UPDATE для изменяет
существующих данных;
4. DELETE для удаления данных.
11. Реляционные БД поддерживают ACID транзакции, обеспечивающие наиболее надежную и предсказуемую работу базы данных.
AtomicityConsistency
Isolation
Durability
транзакции
атомарны, то есть
либо все
изменения
транзакции
фиксируются
(commit), либо все
откатываются
(rollback)
транзакции не
нарушают
согласованность
данных, то есть
они переводят
базу данных из
одного
корректного
состояния в
другое
работающие
одновременно
транзакции не
влияют друг на
друга, то есть
многопоточная
обработка
транзакций
производится
таким образом,
чтобы результат
их параллельного
исполнения
соответствовал
результату их
последовательног
о исполнения
если транзакция
была успешно
завершена,
никакое внешнее
событие не
должно привести
к потере
совершенных ей
изменений
12.
CAP теоремаэвристическое утверждение о
том, что в любой
реализации распределённых
вычислений возможно
обеспечить не более двух из
трёх следующих свойств:
известная также как теорема
Брюера
Согласованность данных (consistency) —
всех вычислительных узлах в один
момент времени данные не
противоречат друг другу
Доступность (availability) —
любой запрос к распределённой
системе завершается корректным
откликом, однако без гарантии, что
ответы всех узлов системы совпадают
Устойчивость к разделению (partition
tolerance) —
расщепление распределённой системы
на несколько изолированных секций не
приводит к некорректности отклика от
каждой из секций
13. BASE — это своеобразный контраст ACID, который говорит, что истинная согласованность не может быть достигнута в реальном мире и
не может бытьсмоделирована в
высокомасштабируемых
системах.
Basic Availability - система отвечает на
любой запрос, но этот ответ может быть
содержать ошибку или несогласованные
данные.
Soft-state - состояние системы может
меняться со временем из-за изменений
конечной согласованности.
Eventual consistency (конечная
согласованность) - система, в конечном итоге,
станет согласованной. Она будет продолжать
принимать данные и не будет проверять
каждую транзакцию на согласованность.
14.
Хранимая процедура — объект базы данных,представляющий собой набор SQL-инструкций, который
компилируется один раз и хранится на сервере. Хранимые
процедуры очень похожи на обыкновенные процедуры языков
высокого уровня, у них могут быть входные и выходные
параметры и локальные переменные, в них могут производиться
числовые вычисления и операции над символьными данными,
результаты которых могут присваиваться переменным и
параметрам.
15. Шардирование (горизонтальное партиционирование) — это принцип проектирования базы данных, при котором логически независимые
Шардирование (горизонтальноепартиционирование) — это принцип проектирования базы
данных, при котором логически независимые строки таблицы
базы данных хранятся раздельно, заранее сгруппированные в
секции, которые, в свою очередь, размещаются на разных,
физически и логически независимых серверах базы данных,
при этом один физический узел кластера может содержать
несколько серверов баз данных.
Горизонтальный шардинг — это разделение одной таблицы
на разные сервера. Это необходимо использовать для
огромных таблиц, которые не умещаются на одном сервере.
16. Классификация баз данных по способу обработки Нереляционные базы данных (NoSQL)
• Данные нереляционных базданных не имеют общего формата.
Они могут представляться в виде:
• иерархических документов
MongoDB
• пар ключ-значение
Redis, Tarantool, Riak
• графовых представлений
Neo4j
17.
PACELC теорема основана на CAP, онатакже использует его определения.
В случае разделения сети (P) в
распределённой компьютерной системе
необходимо выбирать между
доступностью (A) и согласованностью (C)
(согласно теореме CAP), но в любом
случае, даже если (E), система работает
нормально в отсутствии разделения (P)
нужно выбирать между задержками (L) и
согласованностью (C).
формула: IF P -> (C or A), ELSE (C or L)
была впервые описана и формализована Даниелом
Дж. Абади из Йельского университета в 2012 году
Согласованность данных (consistency)
Доступность (availability)
Устойчивость к разделению (partition
tolerance)
Задержка (Latency L) — это время, за
которое клиент получит ответ и которое
регулируется каким-либо уровнем
consistency. Latency в некотором смысле
представляет собой степень
доступности.
Если (else E) – условие нормальной
работы в отсутствии разделения (P)
18. Динамические структуры/схемы данных – это структуры данных, память под которые выделяется и освобождается по мере
Динамические структуры/схемы данных – этоструктуры данных, память под которые выделяется и
освобождается по мере необходимости.
Динамические схемы для неструктурированных данных позволяют :
ориентировать
информацию на
столбцы или
документ
организовывать
в виде
хранилища
«ключ значение»
создавать
документы без
предварительног
о определения их
структуры,
использовать
разный
синтаксис
добавлять поля
непосредственно
в процессе
обработки
19. Соответствие PACELC
20. Классификация баз данных по способу хранения
По способу хранения базы данных делятся на две группы:– строковые и колоночные базы данных.
21. Строковые базы данных (OLTP системы) Строковыми базами данных называются базы данных, записи которых в памяти представляются
Строковые базы данных(OLTP системы)
Колоночные базы данных
(OLAP системы)
Строковыми базами данных называются
базы данных, записи которых в памяти
представляются построчно. Строковые
базы данных используются в
транзакционных системах (OLTP). Для
таких систем характерно большое
количество коротких транзакций с
операциями вставки, обновления и
удаления (INSERT, UPDATE, DELETE).
Колоночными базами данных
называются базы данных, записи
которых в памяти представляются по
столбцам. Колоночные базы данных
используются в аналитических системах
(OLAP). OLAP характеризуется
относительно низким объемом
транзакций. Запросы часто очень
сложны и включают агрегацию.
К строковым базам данных
относятся все реляционные БД.
22. OLAP (Online Analytical Processing), интерактивная аналитическая обработка) — технология обработки данных, заключающаяся в
OLAP (Online AnalyticalProcessing), интерактивная
аналитическая обработка) —
технология обработки данных,
заключающаяся в подготовке
суммарной (агрегированной)
информации на основе
больших массивов данных,
структурированных по
многомерному принципу.
OLTP (Online Transaction
Processing), транзакционная
система — обработка транзакций в
реальном времени. Способ
организации БД, при котором система
работает с небольшими по
размерам транзакциями, но идущими
большим потоком, и при
этом клиенту требуется от системы
минимальное время отклика.
23. Колоночные базы данных
Greenplum (Greenplum CommunityКолоночные
базы данных
Edition) - это технология больших
данных, основанная на архитектуре MPP
(Massive Parallel Processing) и PostgreSQL
с открытым исходным кодом.
ClickHouse - это колоночная
аналитическая СУБД с открытым кодом,
позволяющая выполнять аналитические
запросы в режиме реального времени
на структурированных больших данных,
разрабатываемая компанией Яндекс.
24. Классификация баз данных по среде постоянного хранения
По среде постоянного хранения базы данных делятся на двегруппы – хранение данных на жестком диске, либо в
оперативной памяти (in-memory NoSQL СУБД).
25. in-memory NoSQL СУБД
Redis – резидентная системаin-memory
NoSQL СУБД
управления базами данных класса
NoSQL с открытым исходным кодом,
работающая со структурами данных
типа «ключ – значение». Используется
как для баз данных, так и для
реализации кэшей и брокеров
сообщений.
Tarantool – это платформа in-memory
вычислений с гибкой схемой хранения
данных для эффективного создания
высоконагруженных приложений.
Включает себя базу данных и сервер
приложений на языке
программирования Lua.
26. Сравнение баз данных Реляционные базы данных подойдут в следующих случаях:
1. При решении задачи необходимо, чтобы данные и операции над нимисоответствовали требованиям ACID;
2. Данные, с которыми предстоит работать, строго структурированы и
структура не подвержена частым изменениям;
3. Данные, с которыми предстоит работать, являются реляционными по своей
природе, хорошо разделяются на отношения (нормализуются), между ними
выделяются логические связи, присутствуют связи многие-ко-многим
(например, сотрудники в отделах и на проектах);
4. Нужна высокая надежность при работе в системах с
многопользовательским доступом к данным.
27. Сравнение баз данных Документо-Ориентированные NoSQL базы данных подойдут в следующих случаях:
1. Необходимо хранить большой объем неструктурированной информации;2. Данные по своей природе документоориентированы (например, массивы
сложных показателей, каждый из которых представляется иерархической
структурой), отсутствие связей многие-ко-многим.
3. В перспективе хранилище необходимо масштабировать горизонтально;
4. Есть потребность в быстрой разработке, без долгого проектирования базы
данных.
28. Сравнение баз данных In-memory NoSQL базы данных подойдут в следующих случаях:
1. Имеется потребность быстро обрабатывать большое количество запросов иобеспечить целостность данных;
2. Нужно кэшировать данные из другого хранилища (например из какой либо
SQL базы данных);
3. Размер необходимой для хранения информации невелик (может
поместиться в ОЗУ).
29. Сравнение баз данных Базы данных с колоночным хранением подойдут для следующих задач:
1. Запросы к базе данных будут сложными и будут включать агрегациюданных;
2. Подавляющее большинство запросов будет идти на чтение, данные в базе
данных будут редко изменяться;
3. Данные будут добавляться и обновляться большими кусками, а не по одной
строке.
4. Необходимость аналитической обработки информации.
30. Архитектура хранилищ данных
31. Хранилище данных – предметно-ориентированная, интегрированная, неизменяемая и поддерживающая хронологию электронная коллекция
Хранилище данных – предметно-ориентированная, интегрированная, неизменяемая и
поддерживающая хронологию электронная коллекция
данных для обеспечения процесса принятия решений.
Данные, поступающие в хранилище данных, как
правило, доступны только для чтения.
Data Warehouse
32. Архитектура традиционных хранилищ Модели хранилищ данных
Виртуальное хранилище данных — это наборотдельных баз данных, которые можно
использовать совместно, чтобы пользователь мог
эффективно получать доступ ко всем данным, как
если бы они хранились в одном хранилище данных
Модель витрины данных — используется для
отчетности и анализа конкретных бизнес-линий. В
этой модели хранилища – агрегированные данные
из ряда исходных систем, относящихся к
конкретной бизнес-сфере, такой как продажи или
финансы
Модель корпоративного хранилища данных —
предполагает хранение агрегированных данных,
охватывающих всю организацию. Эта модель
рассматривает хранилище данных как сердце
информационной системы предприятия с
интегрированными данными всех бизнес-единиц
33. Принципы организации хранилища
1. Проблемно-предметнаяориентация. Данные
объединяются в категории и
хранятся в соответствии с
областями, которые они
описывают, а не с
приложениями, которые они
используют.
2. Интегрированность. Данные
объединены так, чтобы они
удовлетворяли всем
требованиям предприятия в
целом, а не единственной
функции бизнеса.
34. Принципы организации хранилища
3. Некорректируемость. Данныев хранилище данных не
создаются: то есть поступают
из внешних источников, не
корректируются и не
удаляются.
4. Зависимость от времени.
Данные в хранилище точны и
корректны только в том
случае, когда они привязаны
к некоторому промежутку или
моменту времени.
35. Архитектура традиционных хранилищ Два основных архитектурных направления
Нормализованные хранилища —данные находятся в предметно
ориентированных таблицах третьей
нормальной формы
Денормализованные таблицы —
витрины данных, на основе которых
уже выводятся отчетные формы
Хранилища с измерениями —
используют схему «звезда» или схему
«снежинка». При этом в центре
«звезды» находятся данные (таблица
фактов), а измерения образуют лучи
звезды.
36. Архитектура традиционных хранилищ
Верхний уровень – уровень клиента. Наэтом уровне хранятся инструменты для
высокоуровневого анализа данных, создания
отчетов и анализа данных.
Средний уровень – содержит сервер OLAP
(Online Analytical Processing), который
предназначен для преобразования данных в
структуру, лучше подходящую для анализа и
сложных запросов.
Нижний уровень – содержит сервер базы
данных, используемый для извлечения
данных из различных источников, например,
из транзакционных баз данных,
используемых для интерфейсных
приложений.
37. Типы хранилищ
Файловые хранилищаОбъектные хранилища
Распределенные хранилища
38. Структура Data Warehouse
Источникиданных
Бизнес-аналитика BI
Сервисы пользователей
Слой Витрины данных
Слой Ядра данных
(нормализованные)
Слой Первичных данных (RAW)
Data Warehouse
Аналитика/Расчёты
Отчёты
Извлечение данных
Служебный слой
39. Модели хранилищ данных
Модель витрины данных –используются для отчетности и
анализа конкретных бизнес-задач
Модель корпоративного хранилища –
предполагает хранение
агрегированных данных,
охватывающих всю организацию
Виртуальное хранилище – набор
отдельных баз данных, которые
можно использовать совместно
40. Архитектура традиционных хранилищ
Файловые хранилища оперируют файлами. Втаком хранилище файлы организованы в каталоги
и подкаталоги и каждый файл можно найти по
имени и пути вложенных друг в друга каталогов.
Объектные хранилища
Данные в объектном хранилище размещаются без
иерархии папок, которая принята в файловом
хранилище. Все данные хранятся в виде объектов,
в роли объекта может выступать все что угодно:
видео, изображение, документ и прочее.
Распределенные хранилища
Распределенная база данных - это набор
логически связанных между собой разделяемых
данных (и их описаний), которые физически
распределены в некоторой компьютерной сети.
41. DATA LAKE
Klimenko M 201842.
Data Lake (Озероданных) – это
метод хранения
данных системой
или репозиторием в
натуральном (RAW)
формате, который
предполагает
одновременное
хранение данных в
различных схемах и
форматах.
Data Lake (озеро
данных) включает
структурированные
данные из
реляционных баз
данных (строки и
колонки),
полуструктурированн
ые данные (CSV, лог
файлы, XML, JSON),
неструктурированные
данные (почтовые
сообщения,
документы, pdf) и
даже бинарные
данные (видео, аудио,
графические файлы).
Data Lake (озеро
данных) может
использовать единый
репозиторий в качестве
хранилища данных
(HDFS, EDW, IMDG, Cloud
и т.д.) либо использовать
модульную концепцию
источников хранения
данных для разных
требований по
безопасности, скорости,
доступности при
соблюдении условий
хранения данных:
неизменяемые RAW данн
ые, согласованное время
хранения (retention
time), доступность.
43.
Data Lake кроме методов хранения и описания данных, предполагаетопределение источников и методов пополнения данных.
При этом используются следующие термины:
• источники – sources
• настройки каналов – pipelines
• регулярность обновлений – schedulers
• владельцы – custodians
• время хранения – retention time
• метаданные – другие “данные о данных”
44.
Место Data Lake в архитектуре приложения45. Подходы к последовательности создания данных: ETL (извлечение, преобразование, загрузка) ELT (извлечение, загрузка,
преобразование)46. ETL (извлечение, преобразование, загрузка) ELT (извлечение, загрузка, преобразование)
Extract. Это шаг, на котором датчики принимают на входданные из различных источников (логов пользователей,
копии реляционной БД, внешнего набора данных и т.д.), а
затем передают их дальше для последующих
преобразований.
Transform. Это «сердце» любого ETL, этап, когда мы
применяем бизнес-логику и делаем фильтрацию,
группировку и агрегирование, чтобы преобразовать
сырые данные в готовый к анализу датасет. Эта
процедура требует понимания бизнес задач и наличия
базовых знаний в области.
Load. Наконец, мы загружаем обработанные данные и
отправляем их в место конечного использования.
Полученный набор данных может быть использован
конечными пользователями, а может являться входным
потоком к еще одному ETL.
47. ETL — это сокращение от Extract, Transform и Load. В этом процессе инструмент ETL извлекает данные из разных исходных систем
ETL — это сокращение от Extract, Transform и Load. В этом процессеинструмент ETL извлекает данные из разных исходных систем РСУБД,
затем преобразует данные, например, применяет вычисления,
конкатенации и т. д., а затем загружает данные в систему хранилища
данных.
48. ELT — это другой метод рассмотрения инструментального подхода к перемещению данных. Вместо преобразования данных перед их
ELT — это другой метод рассмотрения инструментальногоподхода к перемещению данных. Вместо преобразования
данных перед их записью ELT позволяет целевой системе
выполнить преобразование. Данные сначала копируются в
цель, а затем преобразуются на место. ELT обычно
используется с базами данных noSql, такими как кластер
Hadoop, устройство обработки данных или облачная
установка.
49.
КЛЮЧЕВАЯ РАЗНИЦА ETL и ELT• ETL обозначает извлечение, преобразование и загрузку, в то время как ELT обозначает
извлечение, загрузку, преобразование.
• ETL загружает данные сначала на промежуточный сервер, а затем в целевую систему, тогда как
ELT загружает данные непосредственно в целевую систему.
• Модель ETL используется для локальных, реляционных и структурированных данных, в то время
как ELT используется для масштабируемых облачных структурированных и неструктурированных
источников данных.
• ETL в основном используется для небольшого количества данных, тогда как ELT используется для
больших объемов данных.
• ETL не обеспечивает поддержку озера данных, в то время как ELT обеспечивает поддержку озера
данных.
• ETL легко внедрить, в то время как ELT требует нишевых навыков для внедрения и поддержки.
50. Архитектура облачных хранилищ данных
Облачные хранилища данных непридерживаются традиционной архитектуры и
каждое из них предлагает свою уникальную
архитектуру
51. Amazon Redshift
Используется архитектура MPP (Massively Parallel Processing). Большие наборыданных разбиваются на куски – каждый такой кусок назначается отдельном
узлу.
52. Google BigQuery
BigQuery использует механизм выполнения запросов Dremel, которыйсканирует миллиарды строк данных всего за несколько секунд используя
параллельные запросы для сканирования данных в базовой системе
управлениями файлами.
53. S3
S3 (Simple Storage Service) — протокол передачи данных, разработанный компаниейAmazon. Также — объектное хранилище. Простое хранилище файлов. Его уникальность
заключается в хранении огромного объема данных в исходном формате без иерархии и
разбивки на отдельные каталоги. У хранилища S3 нет ограничений по масштабированию.
В архитектуре S3 используется объектная модель хранения данных
1. Amazon S3 (Simple Storage Service)
2. Google Cloud Storage
3. Microsoft Blobs Storage
4. Mail.ru Cloud Storage
Схема реализации архитектуры S3-хранилища (от Mail.ru Cloud Solution)
54. Hadoop
Hadoop – это свободно распространяемый набор утилит, библиотек и фреймворк дляразработки и выполнения распределенных программ, работающих на кластерах из
сотен и тысяч узлов. Эта основополагающая технология хранения и обработки
больших данных (Big Data) является проектом верхнего уровня фонда Apache
Software Foundation.
55. Проблемы облачного хранения данных
1. Загрузка данных в облачные хранилища чаще всего нетривиальна и требуетиспользования сторонних инструментов;
2. Операции обновления, вставки и удаления могут быть сложными и должны
выполняться аккуратно – чтобы не допустить снижения
производительности запросов;
3. Пользовательские запросы могут не соответствовать передовым методам и
будут выполняться дольше;
4. С полу-структурированными данными трудно работать – их необходимо
нормализовать в формате реляционной базы данных;
5. Частый пересмотр и настройка конфигурации кластера для его
оптимальной работы.
56. Какой вид хранилища использовать?
1. Использование традиционных хранилищ данных подходит для задач, вкоторых важна скорость доступа к данным и простота структуры их хранения.
Несмотря на все оптимизации запросов доступа к данным в облачных
хранилищах, скорость к ним ограничена скоростью Интернет-соединения,
чего не скажешь о традиционных схемах хранения.
2. Использование облачных хранилищ данных подойдет для задач, в которых
потребуется масштабирование данных, надежность их хранения и
экономичность самого решения задачи. Используя такие хранилища, можно
практически неограниченно увеличивать объем хранения без
дополнительных закупок оборудования и утилизировать оплаченные
ресурсы на 100%.
57. Работа с БД в прикладном приложении
1. Прямая работа с СУБДСУБД любого типа предоставляет интерфейс API, с помощью которого
программист через терминал может выполнять все необходимые операции с базами
данных.
2. Драйвер БД
Существуют библиотеки, поддерживающие работу с одной или несколькими
видами баз данных, которые разработаны для языка (-ов) программирования.
3. ORM
ORM (Object-Relational Mapping) – технология программирования, которая
связывает базы данных с концепциями объектно-ориентированных языков
программирования, создавая «виртуальную объектную базу данных».
58. Подходы ORM Наиболее распространенным способом работы с ORM является Code First
Code First Для этого подхода очень важно определитьПодходы ORM
Наиболее распространенным способом
работы с ORM является Code First
классы модели или сущности, которые будут храниться в
базе данных, описать их в классах ЯП в виде модели, и
написать класс контекста, который и будет работать с
используемой базой данных. Подход Code First
используется чаще всего программистами ЯП.
Database-First Подходит для тех, кто хорошо знает
SQL, но в этом случае необязательно хорошо знать ЯП.
Первым делом создается база данных, затем
генерируется модель базы данных в коде приложения, в
нем содержится информация о структуре базы, модель
данных.
Model-First Его часто используют архитекторы, так
как при этом подходе можно не знать ни SQL, ни
синтаксис ЯП. В этом случае сначала создается
графическая модель базы данных, в это время в
фоновом режиме создаются классы ЯП модели, а затем
генерируется база данных на основе созданной
диаграммы.
database