Kod

DBMS: Czym są systemy zarządzania bazami danych, jakie są ich rodzaje i do czego służą?

DBMS: Czym są systemy zarządzania bazami danych, jakie są ich rodzaje i do czego służą?

Zdobądź pożądane umiejętności tworzenia stron internetowych, utrwal wiedzę teoretyczną dzięki praktycznym zadaniom i otrzymaj opinie od kuratorów na temat kursu „Zawód Web Developera”. Zwrócimy Ci pieniądze, jeśli nie znajdziesz pracy.

Dowiedz się więcej

Dzisiejsze bazy danych przechowują dosłownie wszystko – korespondencję, dane paszportowe, hasła do stron internetowych, filmy na hostingu, utwory na platformach muzycznych. Aby jednak zapobiec utracie tych wszystkich informacji i ułatwić zarządzanie danymi, wynaleziono system zarządzania bazami danych (DBMS).

Czym jest system zarządzania bazami danych (DBMS)

Aby zrozumieć, czym jest system zarządzania bazami danych (DBMS), najpierw musisz wiedzieć, czym jest baza danych (DB).
Baza danych to zbiór uporządkowanych i ustrukturyzowanych danych przechowywanych na określonym komputerze. Najłatwiej wyobrazić to sobie jako dużą tabelę w programie Excel, w której każdy element (wiersz) ma określone właściwości (kolumny).
Jeśli utworzysz bazę danych dla sklepu spożywczego, każdy produkt — na przykład guma do żucia, batony czekoladowe i butelki wody — będzie miał właściwości: cenę, ilość w magazynie i datę ważności.

Bazę danych można traktować jak tabelę. Ilustracja: Olya Ezhak dla Skillbox Media

Bazy danych to po prostu pliki na dysku komputera, w których można zapisywać nowe elementy. Jednak same bazy danych nie mają żadnych możliwości i trzeba napisać własne metody zarządzania nimi — na przykład, aby dodać nowy element lub wyszukać konkretny rekord. Aby ułatwić pracę programistom, wynaleziono system zarządzania bazami danych (DBMS).
System zarządzania bazą danych (DBMS)to zestaw narzędzi, które umożliwiają wygodne zarządzanie bazami danych: usuwanie, dodawanie, filtrowanie i wyszukiwanie elementów, zmianę ich struktury oraz tworzenie kopii zapasowych.
System DBMS można traktować jako warstwę pomiędzy bazą danych a zapytaniami użytkowników do niej kierowanymi.

SZBD to warstwa pomiędzy bazą danych a użytkownikiem. Ilustracja: Olya Ezhak dla Skillbox Media

Gdy użytkownik kliknie przycisk na stronie internetowej — na przykład, aby pobrać obraz — strona internetowa tworzy specjalne zapytanie do bazy danych i wysyła je do systemu zarządzania bazą danych (DBMS). Analizuje je i przeszukuje bazę danych w poszukiwaniu żądanych informacji, a następnie zwraca je stronie internetowej. Strona internetowa konwertuje je następnie do formatu czytelnego dla użytkownika i zwraca.
Bez systemu zarządzania bazą danych (DBMS) programiści musieliby samodzielnie przeszukiwać pliki baz danych w poszukiwaniu potrzebnych informacji. Można powiedzieć, że baza danych bez systemu zarządzania bazą danych jest jak samochód bez nadwozia. Teoretycznie to samochód: można go zatankować, wymienić olej i części. Ale nie da się nim prawidłowo jeździć. Najpierw musisz wszystko skręcić, zrobić nadwozie i dopiero wtedy nim jeździć.

Bazy danych bez systemu DBMS są mniej więcej takie same jak w przypadku tego samochodu. Obraz: Big Pants Production / Shutterstock / Skillbox Media

System DBMS jest potrzebny, aby ułatwić życie programistom i zapewnić im wszystkie narzędzia do pracy z bazami danych.

Do czego służą systemy DBMS?

System DBMS jest potrzebny do wszelkich operacji na bazach danych, a mianowicie do:

  • tworzenia baz danych i administrowania nimi — usuwania, modyfikowania i scalania;
  • Utrzymuj dane w odpowiedniej strukturze i formacie;
  • Chroń dane przed niechcianymi zmianami i próbami włamań;
  • Ładuj i sortuj dane za pomocą filtrów;
  • Twórz kopie zapasowe, przywracaj bazy danych po awariach i dbaj o ogólną integralność.

Dzięki systemowi DBMS programiści śledzą wszystkie zmiany w bazach danych. Baza danych przechowuje informacje o użytkownikach: ich transakcjach i działaniach.

System DBMS zawsze monitoruje działania użytkowników. Ilustracja: Olya Ezhak dla Skillbox Media

Na przykład, aby utworzyć bazę danych z katalogiem wszystkich produktów na rynku, musisz utworzyć ogromną tabelę z wierszami, z których każdy będzie miał określone właściwości. Mogą one wyglądać następująco:

  • Nazwa produktu;
  • Koszt;
  • Liczba sztuk w magazynie;
  • Dostawca.

Aby zachować porządek w takiej tabeli i stale go uzupełniać o nowe elementy, należy zapewnić niezawodność i wysoką szybkość działania. Właśnie do tego służy system DBMS.

Z czego składa się system DBMS

System DBMS to zestaw narzędzi, z których każde może wykonywać określone czynności na bazie danych: odczytywać ją, usuwać elementy lub przetwarzać żądania użytkownika. Aby wszystkie te narzędzia działały poprawnie, system DBMS musi mieć dobrze zdefiniowaną architekturę.
Głównymi elementami systemu DBMS są jądro, procesor, oprogramowanie i baza danych. Omówmy każdy z nich bardziej szczegółowo.

Przybliżony widok urządzenia DBMS od wewnątrz. Ilustracja: Olya Ezhak dla Skillbox Media

Jądro. Odpowiada za działanie całego systemu. Wszystkie procesy przetwarzania i przechowywania danych przechodzą przez nie. Jądro monitoruje i rejestruje wszystkie zmiany w bazach danych.
Procesor, czyli kompilator. Przetwarza żądania użytkowników. Jego głównym zadaniem jest konwersja zapytania SQL na polecenia zrozumiałe dla komputera, a następnie zwrócenie wyników.
Narzędzia programowe, czyli programy narzędziowe. Są one niezbędne, aby użytkownik mógł wprowadzać zapytania, a administratorzy mogli konfigurować dostęp i inne niezbędne parametry.
Bazy danych. Miejsce, w którym dane są przechowywane w uporządkowanej, a czasem zaszyfrowanej formie. Bazy danych mogą różnić się strukturą i rodzajami reprezentacji danych.

Typy systemów DBMS

Systemy DBMS dzielą się na różne typy i według różnych parametrów. Rozważymy, jak różnią się one w czterech klasyfikacjach: według lokalizacji bazy danych, przechowywania i przetwarzania danych, języka zapytań, struktury i organizacji danych.
DBMS-y są lokalne i rozproszone.

  • Lokalne W tym przypadku cała zawartość bazy danych znajduje się na jednym komputerze — zwykle na serwerze firmy.
  • Rozproszone W tym przypadku baza danych jest częściowo zlokalizowana na różnych komputerach — na przykład w chmurze.

Nowoczesne DBMS-y mogą być zarówno lokalne, jak i rozproszone.
W tym przypadku systemy DBMS dzielą się na klient-serwer, serwer plików i osadzone.

  • Klient-serwer W tym przypadku system DBMS i baza danych znajdują się na tym samym komputerze, do którego użytkownicy uzyskują dostęp za pomocą zapytań. Do tego systemu DBMS można uzyskać dostęp z dowolnego komputera.

Wiele sklepów internetowych tworzy tego typu bazy danych, aby użytkownicy mogli szybko otrzymywać aktualne informacje o swoich produktach.

  • Serwer plikówDzieje się tak, gdy baza danych znajduje się na jednym serwerze, a system DBMS na urządzeniach, z których wysyłane są zapytania do bazy danych. Aby pobrać dane, użytkownik musi mieć zainstalowany i skonfigurowany system DBMS.

Systemy DBMS oparte na serwerach plików są używane w przypadku lokalnych usług firmowych — na przykład systemów CRM, w których przechowywane są dane dotyczące klientów i zarządzania dokumentami.

  • WbudowaneSą to lokalne systemy DBMS, które stanowią osobny moduł do zarządzania danymi w aplikacjach. Zazwyczaj są one pisane jako biblioteki dla różnych języków programowania.

Na przykład Microsoft Access i 1C: Accounting mają ten typ systemu DBMS.
Systemy DBMS obsługują języki zapytań strukturalnych i niestrukturalnych.

  • SQL. Jest to język do tworzenia zapytań strukturalnych do baz danych. Tego typu systemy DBMS są najpopularniejsze w użyciu.
  • NoSQL. Jest to język zapytań oparty na innym języku programowania, na przykład Pythonie lub JavaScript. Systemy DBMS NoSQL są zazwyczaj używane w pracy z dużymi zbiorami danych.

Ostatnią cechą, według której klasyfikowane są systemy DBMS, jest sposób, w jaki reprezentują informacje w bazie danych.
Relacyjne. Dane są prezentowane w formie tabel, które są ze sobą powiązane za pomocą parametrów przekrojowych. Taka architektura zapewnia przechowywanie danych wiersz po wierszu i jest niezbędna do stworzenia ścisłej struktury. Inną ich cechą jest to, że użytkownik może uzyskać tylko niewielką liczbę elementów w jednym żądaniu do bazy danych.

W ten sposób elementy są łączone w relacyjnej bazie danych. Obraz: andreycha / habr.com

Każdy wiersz ma unikalny identyfikator, czyli klucz. Dzięki temu w takiej bazie danych łatwo jest znaleźć potrzebne dane i powiązać je ze sobą.
Relacyjne bazy danych są używane, gdy wolumen danych nie przekracza kilku terabajtów. Dzięki temu nadają się do niemal każdego projektu.
Najpopularniejszymi relacyjnymi bazami danych są PostgreSQL, Microsoft SQL Server, MySQL i Oracle.
Relacyjne bazy danych są używane, gdy istotne są następujące cechy:

  • Transakcyjność. Aby wykonać operację, należy wykonać kilka zapytań do bazy danych. Może to być na przykład przelanie pieniędzy z jednej karty na drugą za pośrednictwem aplikacji bankowej.
  • Częste zmiany danych. Ponieważ relacyjne bazy danych mają ścisłą strukturę.
  • Wyszukiwanie według indeksów. Każdy element takiej bazy danych jest wierszem, a wyszukiwanie elementów według wierszy jest wygodne.
  • Żądania dotyczące niewielkiej liczby rekordów naraz. Relacyjne bazy danych działają właśnie na tej zasadzie.
  • Wielkość danych nie przekracza kilku terabajtów. Jeśli jest ich więcej, taka baza danych będzie działać wolniej.

Klucz-wartość Każdy element bazy danych jest przechowywany przy użyciu unikalnego identyfikatora składającego się z klucza i wartości. Ta metoda przechowywania jest podobna do słownikowego typu danych w językach programowania.
Bazy danych typu klucz-wartość są projektowane jako tablice skrótów, w których każdy rekord ma tylko jeden indeks. Nie ma ścisłych ograniczeń co do struktury elementów.

Klucze to po prostu liczby, a wartości mogą być dowolne. Obraz: Tzoof Avny Brosh / medium.com

Te bazy danych są używane zgodnie z zasadą rejestrowania, gdy nowe rekordy są zapisywane na końcu magazynu. Elementy są usuwane poprzez dodanie specjalnego rekordu.
Inne sposoby wykorzystania baz danych klucz-wartość to kolejki, pamięci podręczne i rejestrowanie.
Popularne bazy danych klucz-wartość to Redis, DynamoDB i Aerospike.
DokumentoweW przeciwieństwie do relacyjnych baz danych, bazy danych zorientowane na dokumenty przechowują informacje w formie „dokumentów”, a nie tabel i wierszy. Główną zaletą baz danych dokumentów jest możliwość przechowywania informacji bez ścisłych ograniczeń strukturalnych.

Elementy bazy danych dokumentów mogą mieć różne struktury. Obraz: Uniwersytet Stanowy Togliatti

Bazy danych dokumentów mogą przechowywać informacje w całości i pobierać je za pomocą jednego żądania, nawet jeśli struktura elementów jest inna. Bazy danych dokumentów umożliwiają również korzystanie z linków do innych rekordów w bazie, co nieco przypomina model relacyjny.
Popularne bazy danych dokumentów to MongoDB, CouchDB i Amazon DocumentDB.
GrafW nich elementy są połączone w formie grafu, gdzie każdy węzeł ma wiele linków do innych węzłów. Ten typ bazy danych przypomina pajęczą sieć. Te bazy danych są zazwyczaj wykorzystywane w sieciach społecznościowych lub usługach rekomendacji.
Każdy węzeł w bazie danych grafów zawiera dane, a krawędzie służą do tworzenia relacji między węzłami. Krawędzie przechowują węzły początkowe i końcowe, kierunek i typ. Krawędzie opisują relacje między dwoma węzłami — na przykład rodzic-dziecko — oraz działania, które można na nich wykonać.

Każdy węzeł reprezentuje dane, a każda strzałka reprezentuje relację między węzłami. Polski: Obraz: Amazon

Przejście przez cały graf może być bardzo szybkie, ponieważ połączenia między węzłami nie są obliczane podczas zapytania, lecz są natychmiast zapisywane w bazie danych. Dlatego bazy danych grafów są wykorzystywane w sieciach społecznościowych, usługach rekomendacji i systemach wykrywania oszustw, gdy konieczne jest budowanie relacji między danymi i wykonywanie na nich zapytań.
Popularne bazy danych grafów to Amazon Neptune, Neo4j i InfiniteGraph.
KolumnowePrzechowują dane sekwencyjnie w pojedynczej kolumnie i zakłada się, że elementy należące do tego samego wiersza są przechowywane w tym samym miejscu w każdej kolumnie. Umożliwia to skuteczną kompresję danych i ich analizę — znalezienie sumy, liczby lub wartości średniej.

Kolumnowe bazy danych można przedstawić jako kostkę. Obraz: GrapeCity

Bazy danych oparte na kolumnach umożliwiają ładowanie nowych danych w ciągłym strumieniu lub w częściach. Nie można ich jednak w ten sposób usuwać.
Głównym zastosowaniem baz danych opartych na kolumnach jest analiza danych. Analitycy i menedżerowie firm korzystają z takich baz danych, aby przechowywać historię zdarzeń.
Popularne bazy danych kolumnowe to ClickHouse, Apache Druid, Vertica, BigQuery i Teradata.

Popularne systemy DBMS

Istnieje wiele systemów DBMS, ale programiści często korzystają z siedmiu najpopularniejszych: PostgreSQL, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis i Oracle.

PostgreSQL

Typ.Relacyjny system DBMS typu klient-serwer.
CenaBezpłatna.
Licencja. Licencja PostgreSQL, Open Source.
Dla kogo. Nadaje się do projektów o dowolnym stopniu złożoności i rozmiarze.
ZaletySystem DBMS ma rozbudowaną funkcjonalność i wysoką wydajność — na przykład może z łatwością obsługiwać duże zbiory danych przy dużym obciążeniu.
Językiem zapytań jest SQL, ale można go zmienić za pomocą rozszerzeń do PL/Python, PL/Java i PL/Perl. Kolejną zaletą PostgreSQL jest brak ograniczeń co do rozmiaru baz danych i liczby rekordów w tabelach.
System DBMS można pobrać z oficjalnej strony internetowej..

Interfejs PostgreSQL. Obraz: PostgreSQL

MySQL

Typ. Relacyjny system DBMS typu klient-serwer.
Koszt. Bezpłatny.
Licencja.GPLv2, zastrzeżony.
Dla kogo.Nadaje się dla małych i średnich zespołów oraz projektów.
Zalety.Interfejs programu umożliwia pracę z tabelami w różnych formatach. MySQL działa online i przechowuje do 50 milionów elementów. Jego funkcjonalność jest jednak gorsza od PostgreSQL. Co więcej, można go zintegrować z innymi systemami DBMS.
MySQL był wykorzystywany na stronach internetowych i w sklepach internetowych przez takie firmy jak Twitter, Alibaba, Facebook i Wikipedia.
Po przejęciu MySQL przez Oracle użytkownicy zaczęli się obawiać, że baza danych wkrótce stanie się płatna. Na razie jednak pozostaje on darmowy.
System DBMS można pobrać bezpłatnie z oficjalnej strony internetowej.

Interfejs MySQL. Obraz: MySQL

Microsoft SQL Server

Typ. Relacyjny system DBMS.
Koszt. Bezpłatna.
Licencja. Własnościowa.
Dla kogo. Wersja płatna jest wykorzystywana w dużych firmach, a darmowa może być z łatwością używana w projektach o wolumenie danych do 10 GB.
Zalety. Ten system DBMS dodaje automatyzację zadań – na przykład można określić skrypt zarządzający pamięcią. Microsoft SQL Server umożliwia również wygodne przechowywanie złożonych struktur danych i szybkie ich wyszukiwanie.
System DBMS jest kompatybilny z innymi programami firmy Microsoft, takimi jak Excel i Access. Możesz zintegrować się z nimi i pobierać z nich dane, a także edytować je online.
Microsoft SQL Server używa SQL jako języka zapytań.
System DBMS możesz pobrać z oficjalnej strony internetowej.

Interfejs programu Microsoft SQL Server. Obraz: Microsoft

SQLite

Typ. Jednoplikowy system DBMS w formie biblioteki dla języków programowania.
Koszt. Bezpłatna.
Licencja.GPLv2, zastrzeżona.
Dla kogo.Nadaje się do małych projektów.
Zalety.SQLite to bardzo kompaktowy system DBMS, który nie korzysta z serwerów ani innych narzędzi. Wszystkie dane są przechowywane na jednym urządzeniu.
Możesz napisać prostą stronę internetową lub aplikację z ograniczonym ruchem i ilością przechowywanych danych, korzystając z SQLite. System DBMS działa na dowolnym urządzeniu – smartfonach, komputerach, telewizorach i innych urządzeniach, z których możesz pobrać bibliotekę. Nie wymaga administracji, a jego językiem zapytań jest C.
Możesz pobrać system DBMS z oficjalnej strony internetowej.

Interfejs SQLite. Obraz: sqliteexpert.com

Baza danych Oracle

TypObiektowo-relacyjna baza danych.
Koszt. Bezpłatna.
Licencja.Własnościowa.
Dla kogo.Do projektów o dowolnej złożoności.
Zalety.Oracle DB działa w modelu klient-serwer. Oznacza to, że znajduje się na serwerze razem z bazą danych. Dlatego do pracy z nim potrzebny jest specjalny interfejs aplikacji klienckiej. Użytkownik kontroluje przesyłanie i odbieranie danych z usługi.
Oracle DB zapewnia wysoki poziom bezpieczeństwa i łatwy dostęp dla użytkowników. Pomaga również zmniejszyć obciążenie komputerów klienckich. Serwer DBMS musi być jednak bardziej wydajny.
System DBMS można pobrać z oficjalnej strony internetowej.

Interfejs bazy danych Oracle. Obraz: sqlmanager.net

Opanuj JavaScript, TypeScript i narzędzia programistyczne, naucz się tworzyć i testować komponenty React za pomocą haków. Wykonuj zadania praktyczne, otrzymuj opinie od mentorów i przygotuj portfolio na kursie „Zawód programisty stron internetowych”.

Dowiedz się więcej