Baza danych — definicja, modele i systemy zarządzania (relacyjny, DBMS)

Poznaj bazę danych: definicje, modele (w tym relacyjny) i systemy zarządzania (DBMS). Praktyczny przewodnik po relacjach, tabelach i wyborze optymalnego DBMS.

Autor: Leandro Alegsa

Baza danych jest systemem do przechowywania i opieki nad danymi (wszelkiego rodzaju informacjami). Może to być prosta lista kontaktów, rejestr klientów, archiwum zdjęć, pomiary sensorów czy skomplikowane hurtownie danych. Baza danych grupuje i organizuje informacje tak, aby można było je łatwo wyszukiwać, filtrować, modyfikować oraz analizować.

Silnik bazy danych może sortować, zmieniać lub podawać informacje na temat bazy danych. Sama informacja może być przechowywana na wiele różnych sposobów - przed użyciem komputerów cyfrowych, plików kart, drukowanych książek i innych metod. Teraz większość danych przechowywana jest na plikach komputerowych, a dostęp do nich zapewniają programy zarządzające bazami danych.

System baz danych jest programem komputerowym do zarządzania elektronicznymi bazami danych. Bardzo prostym przykładem systemu baz danych byłaby elektroniczna książka adresowa. System taki odpowiada za: przechowywanie danych na dysku, wyszukiwanie rekordów, aktualizacje, kontrolę dostępu, tworzenie kopii zapasowych i zapewnienie spójności danych.

Dane w bazie danych są w jakiś sposób zorganizowane. Zanim pojawiły się komputery, dane pracowników często były przechowywane w szafkach na dokumenty. Zazwyczaj na każdego pracownika przypadała jedna karta. Na karcie można było znaleźć takie informacje, jak data urodzenia czy nazwisko pracownika. W bazie danych również znajdują się takie "karty". Dla użytkownika, karta będzie wyglądać tak samo jak za dawnych czasów, tylko tym razem pojawi się na ekranie. Do komputera informacje na karcie mogą być zapisywane na różne sposoby. Każdy z tych sposobów jest znany jako model bazy danych. Najczęściej używany model bazy danych nazywany jest relacyjnym modelem bazy danych. Wykorzystuje on relacje i zestawy do przechowywania danych. Normalni użytkownicy mówiący o modelu bazy danych nie będą mówić o relacjach, lecz o tabelach bazy danych.

Modele baz danych — przegląd

Istnieje kilka popularnych modeli przechowywania danych, każdy przystosowany do innych potrzeb:

  • Relacyjny model — dane są przechowywane w tabelach (wiersze = rekordy, kolumny = pola). Relacje między tabelami realizowane są przez klucze. To najczęściej stosowany model w aplikacjach biznesowych.
  • Dokumentowy (NoSQL) — dane przechowywane są w postaci dokumentów (np. JSON). Dobrze sprawdza się przy danych o zmiennej strukturze i przy dużej skali.
  • Klucz‑wartość — prosty model, gdzie każde zapytanie odwołuje się do wartości przez unikalny klucz. Wykorzystywany w cache’ach i systemach wysokiej wydajności.
  • Kolumnowy — dane przechowywane są kolumnami zamiast wierszami; użyteczny w analizach i hurtowniach danych (OLAP).
  • Grafowy — optymalny do przechowywania i analizowania powiązań (np. sieci społecznościowe, trasy, zależności).
  • Hierarchiczny i sieciowy — starsze modele organizujące dane w strukturach drzewa lub grafu, stosowane w specyficznych zastosowaniach.

Relacyjny model — najważniejsze cechy

W relacyjnym modelu dane organizowane są w tabele. Najważniejsze pojęcia to:

  • Rekord (wiersz) — pojedynczy wpis (np. dane jednego pracownika).
  • Pole (kolumna) — pojedynczy atrybut rekordu (np. imię, data urodzenia).
  • Klucz główny (primary key) — unikatowy identyfikator rekordu.
  • Klucz obcy (foreign key) — odwołanie do rekordu w innej tabeli, służące do tworzenia relacji między tabelami.

Relacyjne bazy danych wspierają również ograniczenia integralności danych (np. unikalność, niepustość, typy danych) oraz normalizację, czyli techniki zmniejszania redundancji i zapobiegania niezgodnościom danych.

Transakcje, spójność i ACID

Systemy zarządzania bazami danych często wspierają pojęcie transakcji — grupy operacji, które są wykonywane jako całość. Klasyczne wymagania dla transakcji to własności ACID:

  • Atomicity (atomowość) — transakcja wykonuje się w całości lub wcale.
  • Consistency (spójność) — po zakończeniu transakcji baza przechodzi z jednego poprawnego stanu do innego.
  • Isolation (izolacja) — równoczesne transakcje nie wpływają na siebie w sposób niekontrolowany.
  • Durability (trwałość) — po zatwierdzeniu (commit) efekt transakcji jest trwały, nawet po awarii.

W świecie NoSQL często spotyka się alternatywne podejścia (np. BASE), które kładą większy nacisk na dostępność i skalowalność kosztem ścisłej spójności.

Języki i operacje

Do pracy z bazami danych służą specjalne języki. Najbardziej znanym jest SQL (Structured Query Language), używany w relacyjnych systemach do definiowania struktury (DDL), manipulowania danymi (DML) i zapytań (SELECT). W bazach dokumentowych i NoSQL częściej używa się API specyficznego dla danego systemu lub zapytań w formacie JSON.

Wydajność, indeksy i skalowanie

Aby zapytania działały szybko, bazy danych korzystają z indeksów — struktur, które przyspieszają wyszukiwanie. Innymi technikami optymalizacji są partycjonowanie danych, buforowanie, denormalizacja w wybranych miejscach oraz stosowanie replikacji (kopii danych) i podziału (sharding) w celu skalowania poziomego.

Bezpieczeństwo i kopie zapasowe

Bezpieczeństwo baz danych obejmuje kontrolę dostępu (uwierzytelnianie, uprawnienia), szyfrowanie danych w spoczynku i w tranzycie, monitoring oraz audyt zmian. Regularne tworzenie kopii zapasowych i testy odtwarzania są krytyczne, aby chronić dane przed utratą wskutek awarii lub błędów.

Zastosowania i przykłady systemów

Bazy danych stosowane są niemal wszędzie: w bankowości, handlu elektronicznym, systemach CRM, systemach medycznych, IoT, analityce biznesowej (hurtownie danych) i wielu innych. Popularne systemy zarządzania bazami danych to m.in. MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server oraz systemy NoSQL jak MongoDB, Cassandra czy Redis — każdy z nich ma inne cechy i zastosowania.

Podsumowanie

Bazy danych to fundament współczesnych systemów informatycznych. Wybór odpowiedniego modelu i systemu zależy od charakteru danych, wymagań dotyczących spójności, dostępności, wydajności i skalowalności. Dobre praktyki to projektowanie modelu danych, stosowanie indeksów, zapewnienie bezpieczeństwa i regularne tworzenie kopii zapasowych.

Zastosowania dla systemów baz danych

  • idk co powiedzieć

Zmiana danych

W bazach danych niektóre dane ulegają sporadycznym zmianom. Mogą wystąpić problemy, gdy dane są zmieniane, mógł wystąpić błąd. Błąd może spowodować, że dane staną się bezużyteczne. System bazy danych patrzy na dane, musi spełniać pewne wymagania. Robi to za pomocą transakcji. W bazie danych są dwa punkty w czasie, czas przed zmianą danych i czas po zmianie danych. Jeśli coś pójdzie nie tak podczas zmiany danych, system bazy danych po prostu wprowadza bazę danych z powrotem do stanu sprzed zmiany. Nazywa się to powrotem do stanu sprzed zmiany. Po tym jak wszystkie zmiany zostaną pomyślnie wykonane, są one popełniane. Oznacza to, że dane mają znowu sens, a popełnione zmiany nie mogą być już cofnięte.

Aby móc to zrobić, bazy danych działają zgodnie z zasadą ACID:

  • Wszystkie. Albo wszystkie zadania danego zestawu (zwanego transakcją) są wykonywane, albo żadne z nich nie jest wykonywane. Znany jako Atomowość
  • Kompletny. Dane w bazie danych zawsze mają sens. Nie ma pół-danych (nieważnych) danych. Znany jako Consistency
  • Niezależny. Jeśli wiele osób pracuje na tych samych danych, nie będą się widzieć (lub wpływać) na siebie nawzajem. Każda z nich ma swój własny pogląd na bazę danych, który jest niezależny od pozostałych. Znany jako Izolacja
  • Zrobione. Transakcje muszą zostać dokonane, gdy zostaną dokonane. Raz popełnione, nie mogą być cofnięte. Znane jako Trwałość.

Model bazy danych

Istnieją różne sposoby przedstawiania danych.

  • Pliki proste (nazywane plikami płaskimi): Jest to najprostsza forma systemu Bazy Danych. Wszystkie dane są przechowywane w pliku w postaci zwykłego tekstu. Każda informacja może być oddzielona nowym wierszem lub przecinkiem itp.
  • Hierarchiczny model: Dane są zorganizowane jak struktura drzewa. Ciekawe dane znajdują się na liściach drzewa. Zależności pomiędzy wpisami danych są takie, że niektóre wpisy są bezpośrednio zależne od innych.
  • Model sieciowy: Użyj rekordów i zestawów do przechowywania danych. Podobny do modelu hierarchicznego, ale ma on znacznie bardziej złożoną strukturę.
  • Model relacyjny: Wykorzystuje on teorię zbiorów i logikę predykcyjną. Jest on powszechnie stosowany. Dane wyglądają tak, jakby były uporządkowane w tabelach. Tabele te mogą być następnie łączone razem, tak aby można było z nich wybierać proste zapytania.
  • Model zorientowany obiektowo: Dane są reprezentowane w postaci obiektów, jak to jest stosowane w programowaniu obiektowym. Mogą one wchodzić w bezpośrednią interakcję z używanym językiem OOP, ponieważ oba mają tę samą wewnętrzną reprezentację danych.
  • Obiektowy model relacyjny: Jest to hybryda modelu zorientowanego obiektowo i modelu relacyjnego.
  • Model NoSQL: Jest to nowy rodzaj modelu bazy danych i jest coraz częściej wykorzystywany w branży w dużych aplikacjach internetowych do przetwarzania danych i czasu rzeczywistego. Dane w tym modelu są przechowywane jako pary klucz-wartość bez jakiejkolwiek ścisłej hierarchii, jak w innych modelach. Systemy NoSQL są również określane jako "Nie tylko SQL", ponieważ nie pozwalają na stosowanie języków zapytań podobnych do języka strukturalnego.

Sposoby porządkowania danych

Podobnie jak w prawdziwym życiu, na te same dane można spojrzeć z różnych perspektyw i można je zorganizować na różne sposoby. Są różne rzeczy, które należy wziąć pod uwagę, organizując dane:

  • Każda pozycja danych powinna być przechowywana możliwie jak najmniej razy. Wyobraźmy sobie, że niezamężna kobieta jest wymieniona w rejestrach hrabstwa, Państwowym Departamencie ds. Pojazdów Samochodowych, Federalnym Departamencie Ubezpieczeń Społecznych i Departamencie Paszportów Międzynarodowych. Jeśli wyjdzie za mąż i zdecyduje się zmienić nazwisko, wszystkie te departamenty muszą zostać powiadomione. Jeśli wszystkie departamenty były połączone, a jej nazwisko jest przechowywane tylko w jednym miejscu, to aktualizacja jest łatwa.
  • Jeśli dane są przechowywane w kilku różnych bazach danych, może to być sprzeczne z samym sobą.
  • Ten problem powoduje, że wyszukiwanie danych jest wolniejsze. Jeśli danych jest dużo, to problem przechowywania jednej sztuki danych w wielu miejscach, zajmie dużo miejsca. W naszym przykładzie były 4 bazy danych dla jednej osoby. Będzie to 8 zmian dokonanych, jeśli druga osoba ma dokładnie taki sam problem.
  • Jeśli masz ten problem, opracowano metodę o nazwie Normalizacja bazy danych, aby go rozwiązać. Obecnie istnieje 5 form Normalnych. Są to sposoby na to, aby baza danych była szybsza, a dane zajmowały mniej miejsca.

Powiązane strony

Pytania i odpowiedzi

P: Co to jest baza danych?


O: Baza danych to system przechowywania i opieki nad danymi (dowolnymi informacjami). Można ją wykorzystać do sortowania, zmiany lub obsługi przechowywanych w niej informacji.

P: Jak ludzie przechowywali dane przed komputerami cyfrowymi?


O: Przed komputerami cyfrowymi do przechowywania danych używano plików kart, książek drukowanych i innych metod.

P: Co to jest system bazy danych?


O: System baz danych to program komputerowy do zarządzania elektronicznymi bazami danych. Można go używać do organizowania danych w jakiś sposób.

P: Jak wygląda "karta" w staromodnej szafie na dokumenty?


O: W staromodnej szafie na dokumenty, na każdego pracownika przypadała zazwyczaj jedna karta, na której znajdowały się takie informacje jak data urodzenia lub nazwisko.

P: Jak wygląda współczesny odpowiednik tej "karty"?


O: Współczesny odpowiednik tej "karty" pojawia się na ekranie, a nie w formie fizycznej.

P: Co to jest model bazy danych?


O: Model bazy danych odnosi się do różnych sposobów, w jakie informacje na "karcie" mogą być przechowywane przez komputer. Najczęściej stosowany model nazywa się relacyjnym modelem bazy danych, który wykorzystuje relacje i zbiory do przechowywania danych.

P: Jak zwykli użytkownicy odnoszą się do tych modeli, gdy o nich mówią? O: Normalni użytkownicy zazwyczaj odnoszą się do tych modeli jako do "tabel bazy danych", zamiast używać terminów technicznych, takich jak relacje czy zbiory, gdy o nich mówią.


Przeszukaj encyklopedię
AlegsaOnline.com - 2020 / 2025 - License CC3