Вроде легкие вопросы и ответы знаю правильные, но система считает иначе и правильные ответысчитает неправильными. Приходится выполнть по несколько раз. Это я не правильно делаю или тест так составлен? |
Подключение к базе данных
Цель лекции: Рассмотреть основные особенности поддерживаемых баз данных; ознакомились со структурой файла миграции; рассмотреть особенности использования Django с NoSQL, реализовали простейший проект MongoDB на Django.
Ключевые термины: Django, база, фреймворк, файл, SQL, миграция, проект, данные, field, class, url, python, схема, модель, слияние
Django - это фреймворк с агностическим подходом к базе данных, это означает, что поля базы данных, предоставляемых Django предназначены для работы в разных базах данных, таких как SQLite, Oracle, MySQL и PostgreSQL. Действительно, они также работают с некоторыми сторонними базами данных. PostgreSQL является небольшой базой данных для Django в рабочей фазе, в то время как для окружения разработки используется SQLite, и вы в конечном итоге проделаете много работы, если не захотите использовать СУБД для вашего проекта. Эта лекция даст вам подробную разницу между двумя типами и покажет вам, что лучше подходит для Django, и, так же, как мы действительно можем их имплементировать в наш проект Django.
Прежде всего, давайте посмотрим на разницу между SQL и NoSQL.
SQL против NoSQL
Базы данных SQL и реляционные базы данных использовались повсеместно в течение очень долгого времени; в самом деле, говоря о базах данных, подразумевали базы данных SQL, до тех пор, пока не был придуман новый термин — NoSQL.
Мы поговорим о высокоуровневых различиях между SQL и NoSQL. Ниже приведены различия между ними:
SQL база данных (RDBMS) | База данных NoSQL |
SQL базы данных являются реляционными базами данных (СУБД) | Баз данных NoSQL- нереляционные или распределенные базы данных |
SQL базы данных основаны на таблицах и ее отношения с другими таблицами | NoSQL -документальная, пары ключ -значение, графические базы данных или хранение широких столбцов |
База данных SQL хранит свои данные в строках таблицы | NoSQL — это коллекция значений пара-ключ документов, графических данных или широкостолбцовых хранилищ |
SQL базы данных имеют предопределенные схемы | NoSQL имеет динамическую схему |
Базы данных SQL вертикально масштабируемы | Базы данных SQL горизонтально масштабируемы |
Примеры баз данных SQL: MySQL, Oracle, SQLite, PostgreSQL и MS SQL | Примеры баз данных NoSQL: MongoDB, BigTable, Redis, RavenDB, Cassandra, HBase, Neo4j и CouchDB |
Давайте попробуем понять основные особенности некоторых из известных баз данных SQL и NoSQL.
Базы данных SQL
Следующие разделы посвящены различным SQL базами данных и их использованию.
MySQL – open source
Будучи одной из самых популярных баз данных в мире, MySQL имеет некоторые преимущества, которые делают ее пригодной для всех видов бизнес-проблем. Ниже приведены несколько важных преимуществ MySQL:
- Репликация: MySQL поддерживает репликацию, то есть путем репликации базы данных MySQL, рабочая нагрузка может быть значительно уменьшена от одной машины и приложения могут быть легко расширены
- Сегментирование: Когда количество операций записи очень большое, сегментирование помогает путем разбиения серверного приложения, которое делит базу данных на небольшие куски.
PostgreSQL
Как упоминалось ранее, PostgreSQL является наиболее популярной базы данных в рамках сообщества Django. Он также имеет широкий набор функций, поддерживаемый основными базами данных.
Развитие расширенных запросов и особенностей PostgresSQL сделали возможным достигнуть комплексной строки обычного запроса SQL в гораздо более простой строке для записи запроса. Однако имплементация массивов, hstore, JSON и так далее сложнее с помощью обычных SQL баз данных.
NoSQL базы данных
Эта концепция была введена, когда горизонтальное масштабирование было непросто осуществить и базы данных на основе реляционных СУБД не могли масштабироваться, так как должны были. Часто этот термин расшифровывается Not Only SQL (Не только SQL). Он предоставляет механизм для хранения и извлечения данных, отличных от традиционных методов SQL.
MongoDB
MongoDB – одна из самых популярных документальных NoSQL баз данных, так как она хранит данные в JSON-подобных документах. Это нереляционная база данных с динамической схемой. Она была разработана основателями компании DoubleClick. Она написана на C++ и в настоящее время используется в некоторых крупных компаниях, таких как The New York Times, Craigslist и MTV Networks. Ниже приведены некоторые преимущества и сильные стороны MongoDB:
- Скорость: Для простых запросов, она дает хорошую производительность, так как все данные связаны в единый документ, который убирает операции соединения
- Масштабируемость: Она горизонтально масштабируемая, то есть, вы можете уменьшить рабочую нагрузку путем увеличения числа серверов в пуле ресурсов вместо того чтобы полагаться на автономный ресурс.
- Управляемость: Она простая в использовании для разработчиков и администраторов. Это также дает MongoDB возможность совместного использования баз данных.
- Динамическая схема: Она дает вам гибкость, чтобы развивать вашу схему данных без изменения существующих данных
CouchDB
CouchDB является также документальной базой данных NoSQL. Он хранит данные в виде документов JSON. Ниже приведены некоторые преимущества и сильные стороны CouchDB:
- Без схемы: будучи членом семейства NoSQL, она также имеет свойство без схемы, которое делает ее более гибким, поскольку у него есть формат документов JSON для хранения данных
- HTTP-запрос: вы можете получить доступ к вашей документальной базе данных, используя веб-браузер
- Разрешение конфликтов: Имеется автоматическая система разрешения конфликтов, которая является полезной, когда вы собираетесь использовать распределенную базу данных
- Легкость репликации: репликация довольно проста
Redis
Redis является еще одной базой данных NoSQL open source, которая используется главным образом в связи с молниеносной скоростью. Она написана на языке ANSI С. Ниже приведены некоторые преимущества и сильные стороны Redis:
- Структуры данных: Redis обеспечивает до такой степени эффективные структуры данных, что иногда называют как серверные структуры данных. Ключи, хранящиеся в базе данных может быть хэшами, списками и строками и могут быть отсортированным или несортированным набором.
- Redis в качестве кэша: вы можете использовать Redis в качестве кэша путем имплементации ключей с ограниченным временем для повышения производительности.
- Очень быстро: Она рассматривается как один из самых быстрых NoSQL серверов, так как она работает с набором данных в памяти.