Nie znaleziono wyników

Twoje wyszukiwanie nie dało żadnych wyników

Czym jest relacyjna baza danych?

Relacyjna baza danych jest rodzajem bazy danych, która przechowuje i zapewnia dostęp do powiązanych ze sobą punktów danych. Relacyjne bazy danych są oparte na modelu relacyjnym. Jest to prosty i intuicyjny sposób przedstawiania danych w tabelach. W relacyjnej bazie danych każdy wiersz tabeli jest rekordem z unikalnym identyfikatorem nazywanym kluczem. Kolumny tabeli zawierają atrybuty danych, a każdy rekord ma zwykle wartość dla każdego atrybutu, co ułatwia ustalenie relacji między punktami danych.

Przykład relacyjnej bazy danych

Oto prosty przykład dwóch tabel, które mała firma może wykorzystać do przetwarzania zamówień na swoje produkty. Pierwsza tabela to informacje na temat klientów, w której każdy rekord zawiera nazwę, adres, informacje wysyłkowe i rozliczeniowe, numer telefonu oraz inne informacje kontaktowe klienta. Każdy bit informacji (każdy atrybut) znajduje się w oddzielnej kolumnie, a baza danych przypisuje unikalny identyfikator (klucz) do każdego wiersza. W drugiej tabeli — zawierającej zamówienie klienta — każdy rekord zawiera identyfikator klienta, który złożył zamówienie, zamówiony produkt, ilość, wybrany rozmiar i kolor itd. — ale nie zawiera nazwy ani danych kontaktowych klienta.

Te dwie tabele mają jedną wspólną cechę: kolumnę identyfikatora (klucza). Dzięki tej wspólnej kolumnie relacyjna baza danych może utworzyć relację między tymi dwoma tabelami. Wówczas, kiedy aplikacja przetwarzająca zamówienia firmy przesyła zamówienie do bazy danych, baza danych może przejść do tabeli zamówień klienta, pobrać poprawne informacje o zamówieniu produktu i użyć identyfikatora klienta z tej tabeli, aby wyszukać informacje rozliczeniowe i wysyłkowe klienta w tabeli informacji o kliencie. Magazyn może następnie pobrać właściwy produkt, klient może otrzymać terminowe zamówienie, a firma może otrzymać zapłatę.

Jak zorganizowane są relacyjne bazy danych

Model relacyjny oznacza, że logiczne struktury danych — tabele danych, widoki i indeksy — są oddzielone od fizycznych struktur pamięci. Dzięki temu administratorzy baz danych mogą zarządzać fizycznym przechowywaniem danych jak logiczną strukturą bez wpływu na dostęp do tych danych. Na przykład zmiana nazwy pliku bazy danych nie zmienia nazw przechowywanych w nim tabel.

Rozróżnienie między logicznym a fizycznym dotyczy również operacji na bazach danych, które są wyraźnie zdefiniowanymi działaniami umożliwiającymi aplikacjom manipulowanie danymi i strukturami bazy danych. Operacje logiczne umożliwiają aplikacji określenie potrzebnej zawartości, a operacje fizyczne określają, w jaki sposób dane powinny być dostępne, a następnie wykonują zadanie.

Aby zapewnić, że dane są zawsze dokładne i dostępne, relacyjne bazy danych przestrzegają określonych reguł integralności. Reguła integralności może na przykład określać, że duplikaty wierszy nie są dozwolone w tabeli, eliminując w ten sposób możliwość wprowadzenia do bazy danych błędnych informacji.

Model relacyjny

We wczesnych latach rozwoju baz danych każda aplikacja zapisywała dane w swojej unikalnej strukturze. Żeby tworzyć aplikacje korzystające z tych danych, programiści musieli dobrze znać konkretną strukturę danych, aby znaleźć potrzebne dane. Te struktury danych były nieefektywne, trudne do utrzymania i trudne do zoptymalizowania w celu zapewnienia dobrej wydajności aplikacji. Relacyjny model bazy danych został zaprojektowany w celu rozwiązania problemu wielu arbitralnych struktur danych.

Model relacyjny zapewnił standardowy sposób reprezentowania i wysyłania zapytań dotyczących danych dostępnych dla dowolnej aplikacji. Od samego początku programiści uznali, że główną siłą modelu relacyjnej bazy danych było wykorzystanie tabel, które były intuicyjnym, wydajnym i elastycznym sposobem przechowywania i uzyskiwania dostępu do informacji strukturalnych.

Z czasem ujawniła się jeszcze jedna zaleta modelu relacyjnego. Programiści mogli bowiem korzystać z języka zapytań strukturalnych (SQL) do zadawania pytań i wyszukiwania danych w bazie. Przez wiele lat SQL był powszechnie używany jako język zapytań do baz danych. Opierając się na algebrze relacyjnej, SQL dostarcza wewnętrznie spójny język matematyczny zapewniający wyższą wydajność wszystkich zapytań do baz danych. Dla porównania, inne podejścia wymagają definiowania pojedynczych zapytań.

Zalety relacyjnych baz danych

Prosty, ale potężny model relacyjny jest używany przez organizacje wszystkich typów i rozmiarów w kontekście szerokiej gamy potrzeb informacyjnych. Relacyjne bazy danych służą do śledzenia zapasów, przetwarzania transakcji e-commerce, zarządzania ogromnymi ilościami kluczowych informacji o klientach itd. Relacyjna baza danych może służyć do obsługi dowolnych informacji, gdzie punkty danych odnoszą się do siebie i muszą być zarządzane w sposób bezpieczny, oparty na regułach i spójny.

Relacyjne bazy danych istnieją od lat 70-tych. Obecnie zalety modelu relacyjnego sprawiają, że jest to najbardziej akceptowany model baz danych.

Spójność danych

Model relacyjny najlepiej zachowuje spójność danych w aplikacjach i kopiach baz danych (zwanych instancjami). Na przykład, gdy klient wpłaca pieniądze w bankomacie, a następnie sprawdza saldo konta w telefonie komórkowym, oczekuje, że natychmiast zobaczy ten depozyt w zaktualizowanym saldzie konta. Relacyjne bazy danych pozwalają zapewnić taką spójność danych, sprawiając, że wiele instancji bazy danych ma te same dane przez cały czas.

W przypadku innych typów baz danych utrzymanie tego poziomu terminowej spójności przy dużej ilości danych jest trudne. Niektóre najnowsze bazy danych, takie jak NoSQL, mogą dostarczać tylko „przypuszczalną spójność”. Zgodnie z tą zasadą, gdy baza danych jest skalowana lub gdy wielu użytkowników korzysta z tych samych danych w tym samym czasie, dane potrzebują trochę czasu „dogonić” stan aktualny. Przypuszczalna spójność jest akceptowalna w przypadku niektórych zastosowań, takich jak prowadzenie list w katalogu produktów, ale w przypadku krytycznych operacji biznesowych, takich jak transakcje związane z koszykami zakupów, relacyjna baza danych jest nadal złotym standardem.

Zatwierdzenie i niepodzielność

Relacyjne bazy danych obsługują reguły biznesowe i zasady na bardzo szczegółowym poziomie, z rygorystycznymi zasadami zatwierdzeń (tj. wprowadzania zmian w bazie danych na stałe). Weźmy na przykład bazę danych zapasów, która śledzi trzy części zawsze używane razem. Kiedy jedna z tych części zostanie pobrana z zapasów, pobrane zostaną również pozostałe dwie. Jeśli jedna z tych trzech części jest niedostępna, żadna nie zostanie pobrana, a żeby baza danych wykonała jakiekolwiek zatwierdzenie, dostępne muszą być muszą być wszystkie trzy części. Relacyjna baza danych nie zatwierdza konkretnej części, o ile nie może zatwierdzić wszystkich trzech. Ta wielopłaszczyznowość zatwierdzania jest nazywana niepodzielnością. Niepodzielność jest kluczem do zachowania dokładności bazy danych i zapewnienia zgodności danych z zasadami, przepisami i polityką firmy.

ACID i relacyjne bazy danych

Transakcje relacyjnej bazy danych są definiowane przez cztery właściwości: niepodzielność, spójność, izolacja i trwałość — zazwyczaj określane skrótem ACID od pierwszych liter tych słów w języku angielskim.

  • Niepodzielność określa wszystkie elementy składające się na kompletną transakcję bazy danych.
  • Spójność określa zasady utrzymywania punktów danych we właściwym stanie po transakcji.
  • Izolacja utrzymuje efekt transakcji niewidoczny dla innych, dopóki nie zostanie zatwierdzony, aby uniknąć nieporozumień.
  • Trwałość zapewnia, że zmiany danych stają się trwałe po zatwierdzeniu transakcji.

Procedury składowane i relacyjne bazy danych

Dostęp do danych obejmuje wiele powtarzających się czynności. Na przykład proste zapytanie, aby uzyskać informacje z tabeli danych, może wymagać powtórzenia setek lub tysięcy razy, aby uzyskać pożądany wynik. Te funkcje dostępu do danych wymagają jakiegoś rodzaju kodu, aby uzyskać dostęp do bazy danych. Twórcy aplikacji nie chcą pisać nowego kodu dla tych funkcji w każdej nowej aplikacji. Na szczęście relacyjne bazy danych obsługują procedury składowane, będące blokami kodu, do których można uzyskać dostęp za pomocą prostego wywołania aplikacji. Na przykład pojedyncza procedura składowana może zapewnić spójne znakowanie rekordów dla użytkowników wielu aplikacji. Procedury składowane mogą również pomagać programistom w zapewnieniu, że określone funkcje danych w aplikacji zostaną zaimplementowane w konkretny sposób.

Blokowanie bazy danych i współbieżność

Kiedy wielu użytkowników lub aplikacji jednocześnie próbuje zmienić te same dane, w bazie danych mogą występować konflikty. Techniki blokowania i współbieżności zmniejszają ryzyko konfliktów przy jednoczesnym zachowaniu integralności danych.

Blokowanie uniemożliwia innym użytkownikom i aplikacjom dostęp do danych podczas ich aktualizacji. W niektórych bazach danych blokowanie dotyczy całej tabeli, co ma negatywny wpływ na wydajność aplikacji. Inne bazy danych, takie jak relacyjne bazy danych Oracle, stosują blokady na poziomie rekordu, zostawiając pozostałe rekordy w tabeli, co pomaga zapewnić lepszą wydajność aplikacji.

Współbieżność zarządza aktywnością, gdy wielu użytkowników lub aplikacji jednocześnie wywołuje zapytania w tej samej bazie danych. Ta możliwość zapewnia odpowiedni dostęp do użytkowników i aplikacji zgodnie z zasadami zdefiniowanymi dla kontroli danych.

Na co zwracać uwagę przy wyborze relacyjnej bazy danych

Oprogramowanie używane do przechowywania, obsługi, wyszukiwania i pobierania danych przechowywanych w relacyjnej bazie danych to tzw. system zarządzania relacyjnymi bazami danych (RDBMS). RDBMS zapewnia interfejs między użytkownikami i aplikacjami a bazą danych, a także funkcje administracyjne do zarządzania przechowywaniem danych, dostępem i wydajnością.

Na wybór określonego typu bazy danych i produktów związanych z relacyjną bazą danych wypływa kilka czynników. Wybór RDBMS zależy od Twoich potrzeb biznesowych. Zadaj sobie następujące pytania:

  • Jakie są nasze wymagania w zakresie dokładności danych? Czy przechowywanie i dokładność danych zależą od logiki biznesowej? Czy nasze dane mają rygorystyczne wymagania dotyczące dokładności (na przykład dane finansowe i raporty rządowe)?
  • Czy potrzebujemy skalowalności? Jaka jest skala zarządzanych danych i jaki jest oczekiwany wzrost? Czy model bazy danych będzie musiał obsługiwać kopie lustrzane bazy danych (jako osobne instancje) w celu skalowania? Jeśli tak, czy może utrzymać spójność danych w tych instancjach?
  • Jak ważna jest współbieżność? Czy wielu użytkowników i aplikacje będą potrzebować jednoczesnego dostępu do danych? Czy oprogramowanie bazy danych obsługuje współbieżność, jednocześnie chroniąc dane?
  • Jakie są nasze potrzeby w zakresie wydajności i niezawodności? Czy potrzebujemy produktu o wysokiej wydajności i niezawodności? Jakie są wymagania dotyczące wydajności odpowiedzi na zapytania? Jakie są zobowiązania dostawcy dotyczące umów o poziomie usług (SLA) lub nieplanowanych przestojów?

Relacyjna baza danych przyszłości: samodzielny system bazodanowy

Z biegiem lat relacyjne bazy danych stały się lepsze, szybsze, wydajniejsze i łatwiejsze w obsłudze. Ale są także bardziej skomplikowane, a administrowanie bazą danych od dawna było zajęciem pełnoetatowym. Zamiast wykorzystywać swoją wiedzę i koncentrować się na opracowywaniu innowacyjnych aplikacji przynoszących wartość firmie, programiści musieli spędzać większość czasu na działaniach związanych z zarządzaniem, niezbędnych do optymalnej pracy bazy danych.

Obecnie autonomiczna technologia opiera się na mocnych stronach modelu relacyjnego, aby zapewnić nowy typ relacyjnej bazy danych. Samoczynna baza danych (zwana również autonomiczną bazą danych ) zachowuje moc obliczeniową i zalety modelu relacyjnego, ale wykorzystuje sztuczną inteligencję (AI), samouczenie się maszyn i automatyzację do monitorowania i poprawy wydajności zapytań i zadań zarządzania. Na przykład, aby poprawić wydajność zapytań, samoczynna baza danych może postawić hipotezę i przetestować indeksy w celu przyspieszenia zapytań, a następnie przekazać najlepsze wyniki do produkcji — wszystko samodzielnie Samoczynna baza danych nieustannie wprowadza te ulepszenia, nie angażując przy tym człowieka.

Autonomiczna technologia uwalnia programistów od przyziemnych zadań związanych z zarządzaniem bazą danych. Nie muszą oni na przykład z wyprzedzeniem definiować wymagań infrastrukturalnych. Zamiast tego, dzięki samoczynnej bazie danych, mogą oni swobodnie dodawać zasoby pamięci masowej i moc obliczeniową w miarę rozrastania się bazy danych. Dzięki kilku krokom programiści mogą łatwo utworzyć autonomiczną relacyjną bazę danych, przyspieszając czas tworzenia aplikacji.