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 DESC

NoSQL

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