Большая часть того, что вы "знаете", неверна.
Прежде всего, как обычно отмечают некоторые из реляционных гуру (а иногда и резко), SQL на самом деле не так близко подходит к реляционной теории, как думают многие. Во-вторых, большинство различий в «NoSQL» имеет относительно мало общего с тем, реляционные они или нет. Наконец, довольно сложно сказать, чем «NoSQL» отличается от SQL, поскольку и представляют довольно широкий диапазон возможностей.
Единственное существенное отличие, на которое вы можете рассчитывать, заключается в том, что почти все, что поддерживает SQL, поддерживает такие вещи, как триггеры в самой базе данных, т.е. вы можете создавать правила в самой базе данных, которые предназначены для обеспечения того, чтобы данные всегда были внутренне согласованными. , Например, вы можете настроить все так, чтобы ваша база данных утверждала, что человек должен иметь адрес. Если вы сделаете это, каждый раз, когда вы добавляете человека, это в основном заставит вас связать этого человека с определенным адресом. Вы можете добавить новый адрес или связать их с каким-то существующим адресом, но так или иначе у человека должен быть адрес. Аналогичным образом, если вы удалите адрес, это заставит вас либо удалить всех людей, которые в данный момент находятся по этому адресу, либо связать каждого с другим адресом. Вы можете сделать то же самое для других отношений, например, сказать, что у каждого человека должна быть мать, в каждом офисе должен быть номер телефона и т. Д.
Обратите внимание, что такого рода вещи также гарантированно будут происходить атомарно, поэтому, если кто-то еще смотрит на базу данных, когда вы добавляете человека, он либо вообще не увидит этого человека, либо он увидит человек с адресом (или матерью и т. д.)
Большинство баз данных NoSQL не пытаются обеспечить принудительное применение такого рода в самой базе данных. В коде, использующем базу данных, вы сами должны обеспечивать любые отношения, необходимые для ваших данных. В большинстве случаев также возможно увидеть данные, которые являются только частично правильными, поэтому даже если у вас есть семейное древо, где каждый человек должен быть связан с родителями, могут быть случаи, когда какие-либо наложенные вами ограничения действительно не будут исполнение. Некоторые позволят вам сделать это по желанию. Другие гарантируют, что это произойдет только временно, хотя вопрос о том, как долго это продлится / продлится, может быть под вопросом.