﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mfiles.pl/pl/index.php?action=history&amp;feed=atom&amp;title=Baza_NoSQL</id>
	<title>Baza NoSQL - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mfiles.pl/pl/index.php?action=history&amp;feed=atom&amp;title=Baza_NoSQL"/>
	<link rel="alternate" type="text/html" href="https://mfiles.pl/pl/index.php?title=Baza_NoSQL&amp;action=history"/>
	<updated>2026-04-19T08:27:33Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://mfiles.pl/pl/index.php?title=Baza_NoSQL&amp;diff=203125&amp;oldid=prev</id>
		<title>Zybex: cleanup bibliografii i rotten links</title>
		<link rel="alternate" type="text/html" href="https://mfiles.pl/pl/index.php?title=Baza_NoSQL&amp;diff=203125&amp;oldid=prev"/>
		<updated>2023-12-08T23:32:29Z</updated>

		<summary type="html">&lt;p&gt;cleanup bibliografii i rotten links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Baza NoSQL&amp;#039;&amp;#039;&amp;#039; - (ang. NoSQL lub Not Only [[SQL]]) - [[baza danych]] nie korzystająca bezpośrednio ze struktury relacyjnego modelu.&lt;br /&gt;
Termin &amp;quot;Not Only&amp;quot; oznacza, że systemy te mogą dopuszczać elementy SQL-a (m.in języki zapytań podobne do tych SQL-owych).&lt;br /&gt;
Nie powinno się kojarzyć terminu NoSQL z jedną, konkretną technologią, bowiem jest to zbiór rozwiązań, które służą do przechowywania danych.&lt;br /&gt;
Zazwyczaj w NoSQL-owych bazach [[dane]] nie są przechowywane w tabelach, nie istnieją także relacje. Sprawdzają się najlepiej do zapisywania dużych ilości danych (tzw. Big Data).&lt;br /&gt;
&lt;br /&gt;
==TL;DR==&lt;br /&gt;
Bazy danych typu NoSQL są alternatywą dla tradycyjnych baz relacyjnych i są bardziej elastyczne w przechowywaniu danych. Istnieje kilka typów baz NoSQL, takich jak bazy klucz-wartość, bazy kolumnowe, bazy dokumentowe, bazy oparte na grafach i bazy obiektowe. Każdy typ ma swoje zalety i wady. NoSQL oznacza &amp;quot;Not Only SQL&amp;quot; i odnosi się do zbioru rozwiązań, które służą do przechowywania danych.&lt;br /&gt;
&lt;br /&gt;
==Założenia ruchu NoSQL &amp;lt;ref name=&amp;quot;W.A&amp;quot;&amp;gt;Wójcik A. (2014), s. 89-91&amp;lt;/ref&amp;gt;==&lt;br /&gt;
1. Uproszczenie tworzenia oraz budowy zapytań.&lt;br /&gt;
&lt;br /&gt;
2. Poszukiwanie wsparcia dla swoich rozwiązań (na razie tworzonych zazwyczaj przez małe firmy rozwiązań typu [[Open Source|open source]]).&lt;br /&gt;
&lt;br /&gt;
3. &amp;quot;[[Standaryzacja]] interfejsu dostępu do baz NoSQL5&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4. Eliminacja najsłabszych rozwiązań, gdyż obecnie jest ich [[zbyt]] dużo i nikt nie jest w stanie wszystkich przetestować.&lt;br /&gt;
&lt;br /&gt;
==Założenia technologii NoSQL&amp;lt;ref name=&amp;quot;W.A&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;==&lt;br /&gt;
1.Odejście od założenia ACID czyli:&lt;br /&gt;
* Atomicity - atomowość (konieczność logowania operacji).&lt;br /&gt;
* Consistency - spójność (weryfikacja poprawności).&lt;br /&gt;
* Isolation - izolacja (blokowanie).&lt;br /&gt;
* Durability - trwałość ([[zapis]] w pamięci trwałej).&lt;br /&gt;
Bowiem uznano, że są one zbyt restrykcyjne.&lt;br /&gt;
&lt;br /&gt;
2.Rezygnacja z wielu składników (elementów) baz relacyjnych, gdyż ścisły schemat bazy często bywa wadą.&lt;br /&gt;
&lt;br /&gt;
3. Zmniejszenie znaczenia schematów danych, gdyż największą uwagę powinno się zwrócić na dane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;google&amp;gt;n&amp;lt;/google&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy baz NoSQL &amp;lt;ref&amp;gt; Sadalage P.J. (red.) (2015), s. 25-28&amp;lt;/ref&amp;gt;==&lt;br /&gt;
* Sposób przechowywania danych można dobrać w zależności od ich specyfiki.&lt;br /&gt;
* Nie posiadają modelu relacyjnego.&lt;br /&gt;
* Przechowują bogatą strukturę bardzo blisko spokrewnionych danych, które zostały potraktowane jako jednostki (&amp;#039;&amp;#039;&amp;#039;[[agregacja]]&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
* Najczęściej są to bazy [[Open Source|open source]].&lt;br /&gt;
* Łatwo się skalują, gdyż mogą działać na rozproszonej architekturze (nie posiadają złączeń), którą daje się łatwo poszerzyć o kolejne jednostki (ang. node).&lt;br /&gt;
* Są przystosowane do pracy na klastrach (efektywna [[praca]] w klastrach w przeciwieństwie do baz relacyjnych), nie wszystkie jednak z nich korzystają. Istnieją również bazy grafowe, w którym [[model]] dystrybucji jest podobny do baz relacyjnych, lecz model danych jest inny, dzięki czemu można w nich przechowywać dane zawierające skomplikowane relacje.&lt;br /&gt;
* Ich budowa jest przystosowana do potrzeb aplikacji webowych powstałych po 2000 roku.&lt;br /&gt;
* Nie posiadają ściśle określonych schematów (np.tabel).&lt;br /&gt;
* Mają otwarty kod.&lt;br /&gt;
* Tzw. piętą achillesową rozwiązań nierelacyjnych jest to, że praca z kodem aplikacji jest w tym rozwiązaniu utrudniona, bowiem programiści nie mają do tego odpowiednich (szybkich i wygodnych) narzędzi.&lt;br /&gt;
&lt;br /&gt;
==Rodzaje==&lt;br /&gt;
Wyróżniamy kilka głównych typów NoSQL-owych baz danych:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; bazy klucz-[[wartość]] (ang. key-value) &amp;#039;&amp;#039;&amp;#039; - są najmniej skomplikowanymi implementacjami NoSQL. Najprościej mówiąc są to tabele, które zawierają dwie kolumny tekstowe. Pierwsza kolumna to klucz, druga zaś wartość. Bazują na mapie, która pozwala dodawać i odczytywać wartości poprzez [[odwołanie]] się do klucza. Zaletą tego typu rozwiązania jest szybkość (zapisu jak i odczytu), a wadą jest stosunkowo mała możliwość segregacji danych, przez co używanie takiej bazy w życiu codziennym jest zazwyczaj nie zalecane. Przykłady takich baz to: BerkeleyDB, LevelDB, Memcached, Project Voldemort, Redis, Riak.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; bazy kolumnowe (ang. column oriented stores) &amp;#039;&amp;#039;&amp;#039; - w tym modelu zamiast w wierszach, dane zapisywane są w kolumnach. To rozwiązanie jest stosowane do przechowywania dużych ilości danych, np. jako hurtowania danych. Na tym modelu została oparta baza danych wykorzystywana przez jeden z najpopularniejszych serwisów społecznościowych - Facebook. Nosi ona nazwę Cassandra. Inne przykłady kolumnowych baz to Hypertable, Hadoop / Hbase.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; bazy dokumentowe &amp;#039;&amp;#039;&amp;#039; - dane przechowywane są w dokumentach (zamiast w tradycyjnych wierszach). W każdym dokumencie obowiązuje struktura klucz-wartość. Zaletą takiego rozwiązania jest duża [[elastyczność]], co pozwala na wierne odtwarzanie danych rzeczywistych w systemach informatycznych.Sposób prezentacji i zapisu danych jest bardziej czytelny niż w innych typach baz. Przykładowe bazy danych to MongoDB i CouchDB, Orient DB oraz baza w systemie IBM Domino.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; bazy oparte na grafach (ang. graph stores) &amp;#039;&amp;#039;&amp;#039; - Najpopularniejszą bazą tego typu jest Neo4j. Bazy te oparte są na teorii grafów. Nie wykorzystują indeksów tylko wskaźniki połączone z przylegającymi elementami. Pozwala to na szybsze wyszukiwanie danych w stosunku do relacyjnych baz. FlockDB, HyperGraphDB, Infinite Graph, Neo4J, OrientDB.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;bazy obiektowe (ang. object databases)&amp;#039;&amp;#039;&amp;#039; - Struktura takiej bazy przypomina model wykorzystywany w obiektowych językach programowania wysokiego poziomu. Dzięki zastosowaniu takiego rozwiązania nie jest konieczne mapowanie z modelu relacyjnego na obiektowy, pozwala to znacznie skrócić czas dostępu do danych. Przykładami takich baz są Versant, Objectivity, db4O, EyeDB, a także SBQL.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;inne bazy danych&amp;#039;&amp;#039;&amp;#039; - zazwyczaj stanowią hybrydę kilku z wyżej wymienionych. Takie podejście jest wykorzystane w bazie OrientDB.&lt;br /&gt;
&lt;br /&gt;
Wyżej wymieniony podział, jest podziałem na podstawie modelu danych. Granica pomiędzy różnymi modelami danych jest często dość wąska. Wiele baz danych nie pasuje wyłącznie do jednego modelu, np: OrientDB możemy określić zarówno jako bazę dokumentową, jak i bazę grafową.&lt;br /&gt;
&lt;br /&gt;
==Ciekawostka==&lt;br /&gt;
Termin NoSQL - co ciekawe - pojawił się po raz pierwszy właśnie jako nazwa bazy relacyjnej [[Open Source|open source]]. Było to w latach 90., kiedy Carlo Strozzi stworzył bazę, która nie korzystała z języka SQL podczas tworzenia zapytań (stąd człon &amp;quot;No&amp;quot; w nazwie). Nie ma to jednak nic wspólnego (poza zbieżnością nazw) z współczesnym znaczeniem terminu NoSQL.&lt;br /&gt;
&lt;br /&gt;
{{infobox5|list1={{i5link|a=[[BASIC]]}} &amp;amp;mdash; {{i5link|a=[[SQL]]}} &amp;amp;mdash; {{i5link|a=[[JavaScript]]}} &amp;amp;mdash; {{i5link|a=[[Kod QR]]}} &amp;amp;mdash; {{i5link|a=[[Python]]}} &amp;amp;mdash; {{i5link|a=[[Program komputerowy]]}} &amp;amp;mdash; {{i5link|a=[[Open Source]]}} &amp;amp;mdash; {{i5link|a=[[SmallTalk (język programowania)]]}} &amp;amp;mdash; {{i5link|a=[[Język wysokiego poziomu]]}} }}&lt;br /&gt;
&lt;br /&gt;
==Przypisy==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&amp;lt;noautolinks&amp;gt;&lt;br /&gt;
* Francuzik S. (2012), &amp;#039;&amp;#039;Bazy danych NoSQL&amp;#039;&amp;#039;, Poznań&lt;br /&gt;
* Rokicki M. (2011), &amp;#039;&amp;#039;Zastosowanie baz danych noSQL w grach komputerowych&amp;#039;&amp;#039;, Siedlce&lt;br /&gt;
* Sadalage P. (red.) (2015), &amp;#039;&amp;#039;NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence&amp;#039;&amp;#039;, Wydawnictwo Helion, Gliwice&lt;br /&gt;
* Strona internetowa: &amp;#039;&amp;#039;[https://www.mongodb.com/nosql-explained What is NoSQL?]&amp;#039;&amp;#039;&lt;br /&gt;
* Wójcik A. (2014), &amp;#039;&amp;#039;Nierelacyjne bazy danych&amp;#039;&amp;#039;, Zeszyty Naukowe WSEI&lt;br /&gt;
* Zieliński P. (2021), &amp;#039;&amp;#039;[https://learn.microsoft.com/pl-pl/previous-versions/msdn10/dn912483(v=msdn.10) Wprowadzenie do NoSQL]&amp;#039;&amp;#039;, Microsoft&lt;br /&gt;
&amp;lt;/noautolinks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{a|Przemysław Hardyn, Krystyna Jania}}&lt;br /&gt;
[[Kategoria:Systemy informatyczne]]&lt;br /&gt;
&lt;br /&gt;
{{#metamaster:description|Baza NoSQL to zbiór rozwiązań do przechowywania danych bez struktury relacyjnej. Idealna dla Big Data.}}&lt;/div&gt;</summary>
		<author><name>Zybex</name></author>
	</entry>
</feed>