Database
Database
DATABASE(baza danych) – uporządkowany zbiór danych zapisany zgodnie z określonymi regułami.
Definicja obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania danych.
Database
Program taki nazywany jest systemem zarządzania bazami danych(DBMS, database management system), składający się ze zintegrowanego zestawu oprogramowania komputerowego, które pozwala użytkownikom na interakcję z jedną lub większą liczbą baz danych i zapewnia dostęp do wszystkich danych zawartych w bazie danych
DZIAŁANIE BAZ DANYCH
Sposób organizacji danych w bazach danych jest różny.
Sposób organizacji danych w bazach danych jest różny.
Wiele typów baz danych organizuje dane w formie tabel zawierających rekordy podzielone na pola, w których są przechowywane informacje poszczególnych kategorii.
RODZAJE BAZ DANYCH
Bazy danych można podzielić według struktur organizacji danych, których używają:
- Bazy proste:
- kartotekowe
- hierarchiczne
- Bazy złożone:
- relacyjne
- obiektowe
- relacyjno - obiektowe
- strumieniowe
- nierelacyjne (NoSQL)
BAZY KARTOTEKOWE
W bazach kartotekowych każda tablica danych jest samodzielnym dokumentem. Jedna tablica nie może współpracować z innymi. Przykładami tego typu bazy danych mogą być: książki telefoniczne, kucharskie. Są one stosowane w jednym, wybranym wcześniej celu.

BAZY HIERARCHICZNE
Są to bazy danych zawierające powiązane ze sobą dane, ułożone w strukturę o kształcie drzewa z jednym punktem początkowym i wieloma rozgałęzieniami. Hierarchiczny model bazy danych cechuje skomplikowana struktura i trudności z tworzeniem określonego typu powiązań pomiędzy danymi.

BAZY RELACYJNE
W przeciwieństwie do baz kartotekowych, w bazach relacyjnych wiele tablic danych może ze sobą współpracować.
Bazy te posiadają wewnętrzne języki programowania, wykorzystujące zwykłe SQL do operowania na danych, dzięki czemu tworzone są zaawansowane funkcje obsługi danych.
BAZY RELACYJNE
Relacyjne bazy danych oparte są na kilku podstawowych zasadach:
- Wszystkie wartości są oparte na prostych typach danych
- Wszystkie dane w bazie relacyjnej przedstawiane są w formie tabel. Tabela składa się z wierszy zwanych rekordami i kolumn zwanych polami. Każda kolumna posiada unikalną w obrębie tabeli nazwę
BAZY RELACYJNE
- Po wprowadzeniu danych do bazy, możliwe jest porównywanie wartości z różnych kolumn, również z różnych tabel, scalanie wierszy, gdy pochodzące z nich wartości są tego samego typu.
- Każda tabela musi posiadać jedną kolumnę pozwalającą jednoznacznie zidentyfikować i odnaleźć konkretny wiersz. Kolumnę te określa się mianem 'klucza podstawowego tabeli'

BAZY OBIEKTOWE
W bazach obiektowych dane są przechowywane za pomocą struktur obiektowych, będących zdefiniowanych jako klasy. Nie są one zdefiniowane żadnym oficjalnym standardem.
BAZY OBIEKTOWE
Cechą charakterystyczną obiektowych baz danych jest to, że przechowują obiekty o dowolnych strukturach wraz z przywiązanymi do nich metodami (procedurami).
Dzięki takiemu rozwiązaniu bazy takie mają znaczną przewagę nad innymi rodzajami baz kiedy zachodzi konieczność przechowywania bardzo złożonych struktur.

BAZY RELACYJNO-OBIEKTOWE
Bazy relacyjno-obiektowe pozwalają na manipulowanie danymi jako zestawem obiektów, posiadają jednak bazę relacyjną jako wewnętrzny mechanizm przechowywania danych.
BAZY STRUMIENIOWE
Strumieniowe bazy danych są to bazy, w których dane są przedstawione w postaci strumieni danych. System zarządzania taką bazą nazywany jest DSMS (ang. Data Stream Managament System) czyli strumieniowym systemem zarządzania danymi.
BAZY STRUMIENIOWE
W modelu strumieni danych zakłada się, że niektóre lub wszystkie napływające do systemu dane nie są dostępne w dowolnej chwili. Możliwy czas, w jakim można je zarejestrować jest skończony. Dane te pojawiają się w źródle danych i przyjmują postać strumienia danych.
BAZY NIERELACYJNE
Pod pojęciem bazy nierelacyjnej (NoSQL database) najczęściej rozumie się przechowywanie danych w formie listy par obiektów klucz-wartość, w których nie występują powiązania relacyjne między przechowywanymi obiektami.
W bazie NoSQL najczęściej nie ma wymagania aby obiekty były jednorodne pod względem struktury.

SQL VS NOSQL
SQL
SQL (Structured Query Language) – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS).
SELECT * FROM EMPLOYEES
WHERE SALARY > 2000
ORDER BY SALARY DESCNoSQL
NoSQL (nierelacyjna baza danych SQL) – baza danych zapewniająca mechanizm do przechowywania i wyszukiwania danych modelowanych w inny sposób niż relacje tabelaryczne używane w relacjach baz danych SQL.
NoSQL stworzony został z potrzeby obsługiwania większych wolumenów danych, która wymusiła przejście na model budowania platform na klastrach mniej wydajnych serwerów.
NoSQL
Struktury danych używane przez NoSQL (np. klucz–wartość, graf, dokument, szerokokolumnowe) różnią się od tych używanych domyślnie w relacyjnych bazach danych, dzięki czemu niektóre operacje NoSQL są szybsze.
DLACZEGO NoSQL?








MONGODB
MongoDB – otwarty, nierelacyjny system zarządzania bazą danych. Charakteryzuje się dużą skalowalnością, wydajnością oraz brakiem ściśle zdefiniowanej struktury obsługiwanych baz danych.
Zamiast tego dane składowane są jako dokumenty w stylu JSON, co umożliwia aplikacjom bardziej naturalne ich przetwarzanie, przy zachowaniu możliwości tworzenia hierarchii oraz indeksowania.










MongoDB console

MongoDB Compass

MongoDB in NodeJS
const { MongoClient } = require('mongodb');
(async () => {
const dbAddress = 'mongodb://127.0.0.1:27017/';
const dbName = 'users';
const mongoOptions = { useNewUrlParser : true };
const client = await MongoClient.connect(dbAddress, mongoOptions);
const db = client.db(dbName);
// ...
})();database
By Piotr Tarasiuk
database
- 147