Database
 sql >> база данни >  >> RDS >> Database

NoSQL:живот без схема

NoSql не е заместител на SQL бази данни, но е валидна алтернатива за много ситуации, в които стандартният SQL не е най-добрият подход за съхранение на вашите данни.

Тъй като ни научиха, че всеки път, когато трябва да съхранявате данни в „склад за данни“ и да потърсите тези данни за извличане, SQL е най-доброто решение, трябва само да решите кой SQL Engine да използвате и играта приключи.

През 2012 г. това предложение беше погрешно, искам да кажа, че вече не можете да приемате, че SQL е „единственият начин“ за съхраняване на данни, но трябва да знаете, че има други алтернативи и те се наричат ​​БЕЗ SQL. Под този термин имаме различни механизми за съхранение, които не са базирани на SQL, а в .NET имаме изключителен продукт, наречен RavenDB (можете да намерите наистина добро въведение в RavenDb в блога на Mauro).

Първата голяма разлика със стандартния SQL е липсата на схема

Едно от най-досадните ограничения на SQL Server е необходимостта да посочите точния формат на данните, които искате да съхранявате в хранилището си. Това е необходимо поради много добри причини, но има ситуации, в които наистина не ви пука за това, особено ако вашият софтуер до голяма степен се основава на концепцията за ООП. Да предположим, че имате този обект

1: class player

2: {

3: public String Name { get; set; }

4:

5: public DateTime RegistrationDate { get; set; }

6:

7: public Int32 Age { get; set; }

8: }

За момент няма притеснения, че този обект е лошо капсулиран (има публичен метод за получаването и инсталирането му), а се фокусира само върху необходимостта да се „съхрани“ този обект някъде. Ако използвате стандартно SQL хранилище, първото нещо, което трябва да направите, е да създадете таблица, след това да дефинирате колоните, да дефинирате максималната дължина за колоната Име и накрая да изберете ORM за използване или създаване на специален слой данни и накрая, можете да запазите обекта.

Ако работите с врана, това е единственият код, който ви трябва

1: var store = new DocumentStore { Url = "http://localhost:8080" };

2: store.Initialize();

3: using (var session = store.OpenSession())

4: {

5: var player = new Player

6: {

7: Age = 30,

8: RegistrationDate = DateTime.Now,

9: Name = "Alkampfer",

10: };

11: session.Store(player);

12: session.SaveChanges();

13: }

Сървърът просто взема обекта и го запазва.

За да запазите обект в хранилището на данни, са необходими само две функции:„Запазване“, за да каже на хранилището обекта, който искате да запишете, и „SaveChanges“, които всъщност извършват запазването.

Какво получавате с този прост фрагмент от код? Просто отидете на стандартния браузър на адреса на сървъра и трябва да видите съдържанието на базата данни.

Съдържание на базата данни след просто вмъкване на обект

На фигурата можете да видите съдържанието на базата данни crow, тя съдържа играч и малка 1 до обекта е Id, който Raven използва вътрешно, за да идентифицира уникално този обект. Друг обект, наречен Sys Doc Hilo / Players, се грижи за генерирането на идентификатор за обекта Players с алгоритъма Hilo.

Това е всичко, няма нужда да дефинирате схемата, няма нужда да имате специално свойство Id или друго изискване, за да направите обекта съвместим с хранилището, просто извикайте метода Store за всеки .NET обект и вашия обект е в базата данни, точка!

Стивън Лот | NoSQL не означава без схема


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на Geekbench 3 за оценка на производителността на сървъра на база данни

  2. Използване на ODBC данни в RapidMiner

  3. Разбиране на SQL типове данни – всичко, което трябва да знаете за типовете данни на SQL

  4. SQL SELECT за начинаещи

  5. Интересни неща за тригерите ВМЕСТО