Code Monkey home page Code Monkey logo

06-db-01-basics's Introduction

Задача 1

-Электронные чеки в json виде.
NoSQL, например Mongo. отличный выбор для документо-ориентированных данных.

-Склады и автомобильные дороги для логистической компании
не понял что должно быть в базе. если просто справочник с адресами, то вероятно NoSQL. если же привязка к координатам, то я бы использовал SQL и тип данных geography

-Генеалогические деревья
графовая NoSQL.

-Кэш идентификаторов клиентов с ограниченным временем жизни для движка аутентификации
Memcached/Redis. не нужна структура, ttl, большая скорость.

-Отношения клиент-покупка для интернет-магазина
MongoDB

Задача 2

Данные записываются на все узлы с задержкой до часа (асинхронная запись)
CAP: AP
PACELC: PA/EL

При сетевых сбоях, система может разделиться на 2 раздельных кластера
CAP: AC
PACELC: PA/EC

Система может не прислать корректный ответ или сбросить соединение
CAP: CP
PACELC: PC/EC

Задача 3

не могут. они противоречат друг другу. хотя если рассматривать систему как некий комплекс бд, то вполне вероятно что будут использоваться оба подхода в решении общей задачи.

Задача 4

Pub/Sub подразумевает под собой наличие подписчика и издателя. издатель формирует и публикует в системе сообщения с каким-то временем жизни. подписчик забирает нужные сообщения себе по какому-то фильтру и обрабатывает.
к минусам можно отнести асинхронность поступления данных от издателя к подписчикам, т.к. у одного издателя может быть множество подписчиков, что приведёт к созданию очередей. (либо же у одного подписчика несколько источников-издателей, что так же приведёт к очередям)

дополнение:
Под данную задачу подходят key-value бд, например Redis.

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

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.