Database
 sql >> Baza danych >  >> RDS >> Database

Czym są bazy danych?


Wprowadzenie

Bazy danych są niezbędnymi składnikami wielu nowoczesnych aplikacji i narzędzi. Jako użytkownik możesz wchodzić w interakcje z dziesiątkami lub setkami baz danych każdego dnia, gdy odwiedzasz strony internetowe, korzystasz z aplikacji w telefonie lub kupujesz produkty w sklepie spożywczym. Bazy danych są dla programisty podstawowym składnikiem używanym do utrwalania danych po okresie istnienia aplikacji. Ale czym dokładnie są bazy danych i dlaczego są tak powszechne?

W tym artykule omówimy:

  • jakie są bazy danych
  • jak są używane przez ludzi i aplikacje do śledzenia różnych rodzajów danych
  • jakie funkcje oferują bazy danych
  • jakie rodzaje gwarancji udzielają
  • jak wypada w porównaniu z innymi metodami przechowywania danych

Na koniec omówimy, w jaki sposób aplikacje opierają się na bazach danych do przechowywania i pobierania danych, aby umożliwić złożoną funkcjonalność.



Co to są bazy danych?

Bazy danych są strukturami logicznymi używanymi do organizowania i przechowywania danych do przyszłego przetwarzania, wyszukiwania lub oceny. W kontekście komputerów, struktury te są prawie zawsze zarządzane przez aplikację o nazwie system zarządzania bazą danych lub DBMS . DBMS zarządza dedykowanymi plikami na dysku komputera i przedstawia logiczny interfejs dla użytkowników i aplikacji.

Systemy zarządzania bazami danych są zazwyczaj zaprojektowane do organizowania danych zgodnie z określonym wzorcem. Te wzorce, zwane typami baz danych lub modele baz danych, to logiczne i strukturalne podstawy, które określają sposób przechowywania i zarządzania poszczególnymi elementami danych. Istnieje wiele różnych typów baz danych, z których każdy ma swoje zalety i ograniczenia. Model relacyjny , który organizuje dane w tabele, wiersze i kolumny z odsyłaczami, jest często uważany za paradygmat domyślny.

DBMS mogą sprawić, że bazy danych, którymi zarządzają, będą dostępne za pomocą różnych środków, w tym klientów wiersza poleceń, interfejsów API, bibliotek programistycznych i interfejsów administracyjnych. Za pośrednictwem tych kanałów dane mogą być pozyskiwane do systemu, porządkowane zgodnie z wymaganiami i zwracane zgodnie z żądaniem.



Trwałość danych a pamięć efemeryczna

Bazy danych przechowują dane na dysku lub w pamięci.

Ogólnie mówi się, że przechowywanie na dysku jest trwałe , co oznacza, że ​​dane są niezawodnie zapisywane na później, nawet jeśli aplikacja bazy danych lub sam komputer uruchomi się ponownie.

W przeciwieństwie do tego, mówi się, że przechowywanie w pamięci jest efemeryczne lub nietrwałe . Pamięć efemeryczna nie jest w stanie przetrwać zamknięcia aplikacji lub systemu. Zaletą baz danych w pamięci jest to, że są one zazwyczaj bardzo szybkie.

W praktyce wiele środowisk wykorzystuje połączenie obu tych typów systemów, aby uzyskać korzyści każdego typu. W przypadku systemów, które akceptują nowe zapisy w warstwie efemerycznej, można to osiągnąć poprzez okresowe zapisywanie danych efemerycznych na dysku. Inne systemy używają kopii trwałych danych tylko do odczytu w pamięci, aby przyspieszyć dostęp do odczytu. Systemy te mogą w dowolnym momencie ponownie załadować dane z pamięci zapasowej, aby odświeżyć swoje dane.

Typ przechowywania kopii zapasowych Dane przetrwały ponowne uruchomienie? Zalety Przykłady
Na dysku Tak Długość danych MySQL
W pamięci Nie Prędkość operacyjna memcached


Interakcja z bazami danych w celu zarządzania danymi

Podczas gdy system bazy danych dba o to, jak przechowywać dane na dysku lub w pamięci, zapewnia również interfejs dla użytkowników lub aplikacji. Interfejsy bazy danych muszą być w stanie reprezentować operacje, które mogą wykonywać podmioty zewnętrzne i muszą być w stanie reprezentować wszystkie typy danych obsługiwane przez system.

Według Wikipedii bazy danych zazwyczaj pozwalają na następujące cztery typy interakcji:

  • Definicja danych :Twórz, modyfikuj i usuwaj definicje struktury danych. Te operacje zmieniają właściwości, które wpływają na sposób, w jaki baza danych będzie akceptować i przechowywać dane. Jest to ważniejsze w niektórych typach baz danych niż w innych.
  • Aktualizacja :Wstawiaj, modyfikuj i usuwaj dane w bazie danych. Te operacje zmieniają rzeczywiste dane, którymi zarządzasz.
  • Pobieranie :Zapewnij dostęp do zapisanych danych. Dane mogą być pobierane bez zmian lub często mogą być filtrowane lub przekształcane w celu uzyskania bardziej użytecznego formatu. Wiele systemów baz danych rozumie bogate języki zapytań, aby to osiągnąć.
  • Administracja :Inne zadania, takie jak zarządzanie użytkownikami, bezpieczeństwo, monitorowanie wydajności itp., które są niezbędne, ale nie są bezpośrednio związane z samymi danymi.

Przyjrzyjmy się im bardziej szczegółowo poniżej.


Definicje danych kontrolują kształt i strukturę danych w systemie

Tworzenie i kontrolowanie struktury, jaką przyjmą Twoje dane w bazie danych, jest ważną częścią zarządzania bazą danych. Może to pomóc w kontrolowaniu kształtu lub struktury danych przed przyjęciem ich do systemu. Pozwala również skonfigurować ograniczenia, aby upewnić się, że dane są zgodne z określonymi parametrami.

W bazach danych, które działają na bardzo regularnych danych, takich jak relacyjne bazy danych, definicje te są często nazywane schematem bazy danych . Schemat bazy danych to ścisły zarys tego, jak dane muszą być sformatowane, aby zostały zaakceptowane przez konkretną bazę danych. Obejmuje to określone pola, które muszą być obecne w poszczególnych rekordach, a także wymagania dotyczące wartości, takich jak typ danych, długość pola, wartości minimalne lub maksymalne itp. Schemat bazy danych jest jednym z najważniejszych narzędzi, na które właściciel bazy danych ma wpływ i kontrolować dane, które będą przechowywane w systemie.

Systemy zarządzania bazami danych, które cenią elastyczność nad regularność, są często określane jako bazy danych bez schematów . Chociaż wydaje się to sugerować, że dane przechowywane w tych bazach danych nie mają struktury, zwykle tak nie jest. Zamiast tego struktura bazy danych jest określana przez same dane oraz wiedzę aplikacji o danych i stosunek do nich. Baza danych zwykle nadal jest zgodna ze strukturą, ale system zarządzania bazą danych jest mniej zaangażowany w egzekwowanie ograniczeń. Jest to wybór projektu, który ma zalety i wady w zależności od sytuacji.



Aktualizacje danych w celu pozyskiwania, modyfikowania i usuwania danych z systemu

Aktualizacje danych obejmują każdą operację, która:

  • Wprowadza nowe dane do systemu
  • Modyfikuje istniejące wpisy
  • Usuwa wpisy z bazy danych

Te możliwości są niezbędne dla każdej bazy danych iw wielu przypadkach stanowią większość działań przetwarzanych przez system bazodanowy. Tego typu działania — operacje powodujące zmiany w danych w systemie — są zbiorczo określane jako write operacje.

Akcje zapisu są ważne dla każdego źródła danych, które z czasem się zmieni. Nawet usuwanie danych, działanie destrukcyjne, jest uważane za operację zapisu, ponieważ modyfikuje dane w systemie.

Ponieważ operacje zapisu mogą zmieniać dane, działania te są potencjalnie niebezpieczne. Większość administratorów baz danych konfiguruje swoje systemy tak, aby ograniczyć operacje zapisu do określonych procesów aplikacji, aby zminimalizować ryzyko przypadkowego lub złośliwego zniekształcenia danych. Na przykład analiza danych, która wykorzystuje istniejące dane, aby odpowiedzieć na pytania dotyczące wydajności witryny lub zachowania odwiedzających, wymaga jedynie pozwolenia na odczyt. Z drugiej strony część aplikacji, która rejestruje zamówienia użytkownika, musi mieć możliwość zapisywania nowych danych w bazie danych.



Pobieranie danych w celu wyodrębnienia informacji lub odpowiedzi na określone pytania

Przechowywanie danych nie jest zbyt przydatne, chyba że masz możliwość ich odzyskania, gdy ich potrzebujesz. Ponieważ zwracanie danych nie wpływa na żadne informacje przechowywane obecnie w bazie danych, działania te są nazywane odczyt operacje. Operacje odczytu są podstawowym sposobem gromadzenia danych już przechowywanych w bazie danych.

Systemy zarządzania bazami danych prawie zawsze mają prosty sposób dostępu do danych za pomocą unikalnego identyfikatora, często nazywanego kluczem podstawowym . Umożliwia to dostęp do dowolnego wpisu po podaniu klucza.

Wiele systemów posiada również wyrafinowane metody odpytywania bazy danych w celu zwrócenia zestawów danych spełniających określone kryteria lub zwrócenia częściowych informacji o wpisach. Ten rodzaj elastyczności zapytań pomaga systemowi zarządzania bazą danych działać jako procesor danych, oprócz podstawowych możliwości przechowywania danych. Tworząc konkretne zapytania, użytkownicy mogą skłonić system bazy danych do zwrócenia tylko tych informacji, których potrzebują. Ta funkcja jest często używana w połączeniu z operacjami zapisu w celu zlokalizowania i zmodyfikowania określonego rekordu według jego właściwości.



Administrowanie systemem bazy danych, aby wszystko działało płynnie

Ostatnią kategorią działań, które często obsługują bazy danych, są funkcje administracyjne. Jest to szeroka, ogólna klasa działań, które pomagają wspierać środowisko bazy danych bez bezpośredniego wpływu na same dane. Niektóre elementy, które mogą pasować do tej grupy, to:

  • Zarządzanie użytkownikami, uprawnieniami, uwierzytelnianiem i autoryzacją
  • Konfigurowanie i utrzymywanie kopii zapasowych
  • Konfigurowanie nośnika do przechowywania
  • Zarządzanie replikacją i innymi kwestiami dotyczącymi skalowania
  • Zapewnianie opcji odzyskiwania online i offline

Ten zestaw działań jest zgodny z podstawowymi problemami administracyjnymi wspólnymi dla każdej nowoczesnej aplikacji.

Operacje administracyjne mogą nie być kluczowe dla podstawowych funkcji zarządzania danymi, ale te możliwości często wyróżniają podobne systemy zarządzania bazami danych. Możliwość łatwego tworzenia kopii zapasowych i przywracania danych, wdrażania zarządzania użytkownikami, które łączy się z istniejącymi systemami, lub skalowania bazy danych w celu zaspokojenia zapotrzebowania to podstawowe funkcje do pracy w środowisku produkcyjnym. Bazy danych, które nie zwracają uwagi na te obszary, często mają trudności z adopcją w rzeczywistych środowiskach.




Jakie obowiązki mają bazy danych?

Biorąc pod uwagę powyższy opis, jak możemy uogólnić podstawowe obowiązki, jakie mają bazy danych? Odpowiedź zależy w dużej mierze od rodzaju używanej bazy danych i wymagań aplikacji. Mimo to istnieje wspólny zestaw obowiązków, które wszystkie bazy danych starają się zapewnić.


Zabezpieczenie integralności danych poprzez wierne rejestrowanie i odtwarzanie

Integralność danych jest podstawowym wymogiem systemu baz danych, niezależnie od jego przeznaczenia lub konstrukcji. Dane załadowane do bazy danych powinny być możliwe do odzyskania w sposób niezawodny bez nieoczekiwanych modyfikacji, manipulacji lub usuwania. Wymaga to niezawodnych metod ładowania i pobierania danych, a także serializacji i deserializacji danych, jeśli jest to konieczne do przechowywania ich na nośnikach fizycznych.

Bazy danych często opierają się na funkcjach weryfikacji danych w trakcie ich zapisywania lub pobierania, takich jak sumy kontrolne, lub do ochrony przed problemami spowodowanymi przez nieoczekiwane wyłączenia, na przykład przy użyciu technik, takich jak logi zapisu z wyprzedzeniem. Integralność danych staje się tym trudniejsza, im bardziej rozproszony jest magazyn danych, ponieważ każda część systemu musi odzwierciedlać bieżący pożądany stan każdego elementu danych. Często osiąga się to dzięki bardziej solidnym wymaganiom i odpowiedziom wielu członków za każdym razem, gdy dane są zmieniane w systemie.



Oferowanie wydajności spełniającej wymagania środowiska wdrożeniowego

Bazy danych muszą działać odpowiednio, aby były użyteczne. Potrzebne parametry wydajności zależą w dużej mierze od konkretnych wymagań aplikacji. Każde środowisko ma unikalną równowagę żądań odczytu i zapisu i będziesz musiał zdecydować, co oznacza akceptowalna wydajność dla obu tych kategorii.

Bazy danych są generalnie lepsze w wykonywaniu niektórych typów operacji niż inne. Charakterystyki wydajności operacyjnej są często odzwierciedleniem typu używanej bazy danych, schematu lub struktury danych oraz samej operacji. W niektórych przypadkach funkcje takie jak indeksowanie , który tworzy alternatywny, zoptymalizowany pod kątem wydajności magazyn często używanych danych, może zapewnić szybsze pobieranie tych elementów. Innym razem baza danych może po prostu nie pasować do żądanych wzorców dostępu. Należy to wziąć pod uwagę przy podejmowaniu decyzji o rodzaju potrzebnej bazy danych.



Konfigurowanie procesów umożliwiających bezpieczny współbieżny dostęp

Chociaż nie jest to ścisły wymóg, praktycznie rzecz biorąc, bazy danych muszą umożliwiać współbieżny dostęp. Oznacza to, że wiele podmiotów musi mieć możliwość jednoczesnej pracy z bazą danych. Rekordy powinny być czytelne dla dowolnej liczby użytkowników w tym samym czasie i możliwe do zapisu, gdy nie są aktualnie zablokowane przez innego użytkownika.

Dostęp współbieżny zwykle oznacza, że ​​baza danych musi implementować kilka innych podstawowych funkcji, takich jak konta użytkowników, system uprawnień oraz mechanizmy uwierzytelniania i autoryzacji. Musi również opracować strategie zapobiegające jednoczesnej próbie manipulowania tymi samymi danymi przez wielu użytkowników. Blokowanie rekordów i transakcje są często wdrażane w celu rozwiązania tych problemów.



Pobieranie danych pojedynczo lub zbiorczo

Jednym z podstawowych obowiązków bazy danych jest możliwość pobierania danych na żądanie. Żądania mogą dotyczyć pojedynczych fragmentów danych powiązanych z pojedynczym rekordem lub mogą obejmować pobieranie danych z wielu różnych rekordów. Oba te przypadki muszą być możliwe w większości systemów.

W większości baz danych pewien poziom przetwarzania danych zapewnia sama baza danych podczas pobierania. Mogą to być następujące rodzaje operacji:

  • Wyszukiwanie według kryteriów
  • Filtrowanie i przestrzeganie ograniczeń
  • Wyodrębnianie określonych pól
  • Uśrednianie, sortowanie itp.

Te opcje pomogą Ci wyartykułować dane, które chcesz, i format, który byłby najbardziej użyteczny.




Alternatywy dla baz danych

Zanim przejdziemy dalej, powinniśmy krótko przyjrzeć się, jakie masz opcje, jeśli nie korzystasz z bazy danych.

Większość metod przechowujących dane można sklasyfikować jako pewnego rodzaju bazę danych. Kilka wyjątków obejmuje następujące.


Pamięć lokalna lub tymczasowe systemy plików

Czasami aplikacje generują dane, które nie są przydatne lub są istotne tylko przez cały okres istnienia aplikacji. W takich przypadkach możesz chcieć zachować te dane w pamięci lub przenieść je do tymczasowego systemu plików, ponieważ nie będą Ci potrzebne po zamknięciu aplikacji. W przypadkach, w których dane nigdy nie są przydatne, możesz chcieć całkowicie wyłączyć wyjście lub zarejestrować je w /dev/null .



Serializowanie danych aplikacji bezpośrednio do lokalnego systemu plików

Innym przypadkiem, w którym baza danych może nie być wymagana, jest sytuacja, w której niewielka ilość danych może być serializowana i deserializowana bezpośrednio. Jest to praktyczne tylko w przypadku niewielkich ilości danych z przewidywalnym wzorcem użycia, który nie wymaga dużej, jeśli w ogóle, współbieżności. Nie skaluje się to dobrze, ale może być przydatne w niektórych przypadkach, takich jak wyprowadzanie informacji z lokalnego dziennika.



Przechowywanie obiektów plikopodobnych bezpośrednio na dysku lub w magazynie obiektów

Czasami dane z aplikacji można zapisać bezpośrednio na dysku lub w alternatywnym magazynie zamiast w bazie danych. Na przykład, jeśli dane są już zorganizowane w formacie zorientowanym na plik, takim jak obraz lub plik audio, i nie wymagają dodatkowych metadanych, najłatwiejsze może być przechowywanie ich bezpośrednio na dysku lub w dedykowanej składnicy obiektów.




Do czego służą bazy danych?

Prawie wszystkie aplikacje i strony internetowe, które nie są całkowicie statyczne, opierają się na bazie danych gdzieś w swoim środowisku. Podstawowy cel bazy danych często dyktuje rodzaj używanej bazy danych, przechowywane dane i stosowane wzorce dostępu. Często wdrażanych jest wiele systemów baz danych do obsługi różnych typów danych o różnych wymaganiach. Niektóre bazy danych są wystarczająco elastyczne, aby pełnić wiele ról w zależności od charakteru różnych zestawów danych.

Rzućmy okiem na przykład, aby omówić punkty styku typowej aplikacji internetowej z bazami danych. Udajemy, że aplikacja zawiera podstawową witrynę sklepową i sprzedaje przedmioty, które śledzi w ekwipunku.


Przechowywanie i przetwarzanie danych witryny

Jednym z podstawowych zastosowań baz danych jest przechowywanie i przetwarzanie danych związanych z witryną. Elementy te wpływają na sposób organizacji informacji w witrynie i w wielu przypadkach stanowią większość „treści” witryny.

W przykładowej aplikacji wspomnianej powyżej baza danych wypełniłaby większość treści witryny, w tym informacje o produkcie, szczegóły inwentarza i informacje o profilu użytkownika. Oznacza to, że baza danych lub pewna pośrednia pamięć podręczna będą sprawdzane za każdym razem, gdy trzeba wyświetlić listę produktów, stronę szczegółów produktu lub profil użytkownika.

Baza danych byłaby również zaangażowana podczas wyświetlania bieżących i przeszłych zamówień, obliczania kosztów wysyłki i stosowania rabatów poprzez sprawdzanie kodów rabatowych lub obliczanie nagród dla częstych klientów. Nasza przykładowa witryna wykorzystałaby system bazy danych do prawidłowego budowania zamówień, łącząc informacje o produktach, zapasach i informacje o użytkownikach. Złożone informacje zapisane w zamówieniu byłyby ponownie przechowywane w bazie danych w celu śledzenia przetwarzania zamówienia, umożliwienia zwrotów, anulowania lub modyfikacji zamówień lub umożliwienia lepszej obsługi klienta.



Analiza informacji w celu podejmowania lepszych decyzji

Działania w ostatniej kategorii dotyczyły podstawowej funkcjonalności serwisu. Chociaż są one bardzo ważne dla obsługi wymagań dotyczących danych w warstwie aplikacji, nie reprezentują całego obrazu.

Gdy Twoja aplikacja internetowa zacznie rejestrować użytkowników i przetwarzać zamówienia, prawdopodobnie zechcesz odpowiedzieć na szczegółowe pytania dotyczące tego, jak sprzedają się różne produkty, kim są Twoi najbardziej dochodowi użytkownicy i jakie czynniki wpływają na Twoją sprzedaż. Są to pytania analityczne, które można uruchomić w dowolnym momencie, aby zebrać aktualne informacje na temat trendów i wydajności Twojej organizacji.

Tego typu operacje są często nazywane analizą biznesową lub analityka . Razem pomagają organizacjom zrozumieć, co wydarzyło się w przeszłości, i dokonywać świadomych zmian. Systemy baz danych przechowują większość danych wykorzystywanych podczas tych procesów i muszą zapewniać odpowiednie narzędzia lub możliwości zapytań, aby odpowiedzieć na pytania na ich temat.

W naszej przykładowej aplikacji bazy danych mogą być przeszukiwane w celu uzyskania odpowiedzi na pytania dotyczące trendów produktowych, numerów rejestracyjnych użytkowników, informacji o tym, do których wysyłamy najczęściej lub kim są nasi najbardziej lojalni użytkownicy. Te stosunkowo podstawowe zapytania można wykorzystać do tworzenia bardziej złożonych pytań, aby lepiej zrozumieć i kontrolować czynniki, które wpływają na wydajność produktu.



Zarządzanie konfiguracją oprogramowania

Niektóre typy baz danych są używane jako repozytoria wartości konfiguracyjnych dla innego oprogramowania w sieci. Służą one jako centralne źródło prawdy dla wartości konfiguracyjnych w sieci. Podczas uruchamiania nowych usług są one konfigurowane do sprawdzania wartości określonych kluczy pod adresem sieciowym bazy danych konfiguracji. Umożliwia to przechowywanie wszystkich informacji potrzebnych do ładowania usług w jednym miejscu.

Po załadowaniu aplikacje można skonfigurować tak, aby obserwowały zmiany kluczy związanych z ich konfiguracją. W przypadku wykrycia zmiany aplikacja może się przekonfigurować, aby użyć nowej konfiguracji. Proces ten jest czasami aranżowany przez proces zarządzania, który z czasem wprowadza nowe wartości, wyłączając stare usługi w miarę pojawiania się nowych usług, zmieniając aktywną konfigurację w czasie w celu utrzymania dostępności.

Nasza aplikacja może używać tego typu bazy danych do przechowywania trwałych danych konfiguracyjnych dla całego naszego środowiska aplikacji. Nasze serwery aplikacji, serwery WWW, systemy równoważenia obciążenia, kolejki wiadomości i nie tylko można skonfigurować tak, aby odwoływały się do bazy danych konfiguracji w celu uzyskania ustawień produkcyjnych. Twórcy aplikacji mogli następnie zmodyfikować zachowanie środowiska, dostosowując wartości konfiguracyjne w centralnej lokalizacji.



Zbieranie dzienników, zdarzeń i innych danych wyjściowych

Uruchamianie aplikacji, które aktywnie obsługują żądania, może generować dużo danych wyjściowych. Obejmuje to pliki dziennika, zdarzenia i inne dane wyjściowe. Można je zapisać na dysku lub w innej niezarządzanej lokalizacji, ale ogranicza to ich użyteczność. Zbieranie tego typu danych w bazie danych ułatwia pracę, wykrywanie wzorców i analizowanie zdarzeń, gdy wydarzy się coś nieoczekiwanego lub gdy potrzebujesz dowiedzieć się więcej o wydajności historycznej.

Nasza przykładowa aplikacja może gromadzić logi z każdego z naszych systemów w jednej bazie danych w celu łatwiejszej analizy. Może to pomóc nam znaleźć korelacje między zdarzeniami, jeśli spróbujemy przeanalizować źródło problemów lub zrozumieć stan naszego środowiska jako całości.

Oddzielnie możemy gromadzić metryki generowane przez naszą infrastrukturę i kod w bazie danych szeregów czasowych , baza danych zaprojektowana specjalnie do śledzenia wartości w czasie. Ta baza danych może być wykorzystywana do zasilania narzędzi do monitorowania i wizualizacji w czasie rzeczywistym, aby zapewnić zespołom programistycznym i operacyjnym aplikacji informacje o wydajności, wskaźnikach błędów itp.




Jak różne role działają z bazami danych?

Bazy danych mają fundamentalne znaczenie dla pracy wielu różnych ról w organizacjach. W mniejszych zespołach jedna lub kilka osób może odpowiadać za wypełnianie obowiązków różnych ról. W większych firmach obowiązki te są często podzielone na odrębne role pełnione przez dedykowane osoby lub zespoły.


Architekci danych

Architekci danych są odpowiedzialni za ogólną strukturę makr systemów baz danych, interfejsy, które udostępniają aplikacjom i zespołom programistycznym, oraz podstawowe technologie i infrastrukturę wymaganą do zaspokojenia potrzeb organizacji w zakresie danych.

Osoby w tej roli na ogół decydują się na odpowiedni model bazy danych i implementację, która będzie wykorzystywana do różnych aplikacji. Odpowiadają za wdrażanie decyzji dotyczących baz danych, badając opcje, decydując o technologii, integrując ją z istniejącymi systemami oraz opracowując kompleksową strategię danych dla organizacji. Zajmują się systemami danych całościowo i biorą udział w decydowaniu i wdrażaniu modeli danych dla różnych projektów.



DBA (administratorzy baz danych)

Administratorzy baz danych lub administratorzy baz danych to osoby odpowiedzialne za utrzymywanie sprawnego działania systemów danych. Są odpowiedzialni za planowanie nowych systemów danych, instalowanie i konfigurowanie oprogramowania, konfigurowanie systemów baz danych dla innych podmiotów oraz zarządzanie wydajnością. Często są również odpowiedzialni za zabezpieczenie bazy danych, monitorowanie jej pod kątem problemów i wprowadzanie zmian w systemie w celu optymalizacji pod kątem wzorców użytkowania.

Administratorzy baz danych są ekspertami zarówno w zakresie indywidualnych systemów bazodanowych, jak i tego, jak dobrze zintegrować je z podstawowym systemem operacyjnym i sprzętem w celu zmaksymalizowania wydajności. Intensywnie współpracują z zespołami, które korzystają z baz danych, aby pomóc w zarządzaniu pojemnością i wydajnością oraz aby pomóc zespołom w rozwiązywaniu problemów z systemem baz danych.



Programiści aplikacji

Twórcy aplikacji wchodzą w interakcję z bazami danych na wiele różnych sposobów. Opracowują wiele aplikacji, które współdziałają z bazą danych. Jest to bardzo ważne, ponieważ prawie zawsze są to jedyne aplikacje, które kontrolują sposób interakcji poszczególnych użytkowników lub klientów z danymi zarządzanymi przez system bazy danych. Wydajność, poprawność i niezawodność są niezwykle ważne dla twórców aplikacji.

Deweloperzy zarządzają strukturami danych powiązanymi z ich aplikacjami, aby zachować dane na dysku. Muszą tworzyć lub używać mechanizmów, które mogą mapować ich dane programistyczne do systemu bazy danych, aby komponenty mogły harmonijnie współpracować. Gdy aplikacje się zmieniają, muszą synchronizować dane i struktury danych w systemie bazy danych. W dalszej części artykułu porozmawiamy o tym, jak programiści pracują z bazami danych.



SRE (inżynierowie niezawodności witryny) i specjaliści operacyjni

SRE (inżynierowie niezawodności witryny) i specjaliści operacyjni wchodzą w interakcję z systemami baz danych z perspektywy infrastruktury i konfiguracji aplikacji. Mogą być odpowiedzialni za zapewnienie dodatkowej pojemności, stałe systemy baz danych, zapewnienie zgodności konfiguracji bazy danych z wytycznymi organizacyjnymi, monitorowanie czasu pracy i zarządzanie kopiami zapasowymi.

Pod wieloma względami te osoby mają nakładające się obowiązki z administratorami baz danych, ale nie skupiają się wyłącznie na bazach danych. Personel operacyjny zapewnia, że ​​systemy, na których opiera się reszta organizacji, w tym systemy baz danych, działają niezawodnie i mają minimalny czas przestojów.



Analitycy biznesowi i analitycy danych

Działy Business Intelligence i analitycy danych interesują się przede wszystkim danymi, które są już gromadzone i dostępne w systemie bazodanowym. Pracują nad opracowywaniem spostrzeżeń na podstawie trendów i wzorców w danych, aby mogli przewidywać przyszłe wyniki, doradzać organizacji w sprawie potencjalnych zmian i odpowiadać na pytania dotyczące danych dla innych działów, takich jak marketing i sprzedaż.

Analitycy danych mogą na ogół pracować wyłącznie z dostępem tylko do odczytu do systemów danych. Zapytania, które uruchamiają, często mają dramatycznie różne charakterystyki wydajności niż te używane przez aplikacje podstawowe. Z tego powodu często pracują z replikami lub kopiami baz danych, dzięki czemu mogą wykonywać długotrwałe i wydajne zapytania agregujące, które w przeciwnym razie mogłyby wpłynąć na wykorzystanie zasobów podstawowego systemu bazy danych.




Jak pracować z bazami danych jako programista?

Jak więc właściwie pracujesz z bazami danych jako programista aplikacji? Na podstawowym poziomie, jeśli Twoja aplikacja musi zarządzać i utrzymywać stan, praca z bazą danych będzie ważną częścią Twojego kodu.


Tłumaczenie danych między Twoją aplikacją a bazą danych

Będziesz musiał stworzyć lub użyć istniejącego interfejsu do komunikacji z bazą danych. Możesz połączyć się bezpośrednio z bazą danych za pomocą zwykłych funkcji sieciowych, wykorzystać proste biblioteki lub biblioteki programistyczne wyższego poziomu (np. Kreatory zapytań lub ORM).

ORM , czyli mapery obiektowo-relacyjne, to warstwy mapujące, które tłumaczą tabele znalezione w relacyjnej bazie danych na klasy używane w obiektowych językach programowania i na odwrót. Chociaż to tłumaczenie jest często przydatne, nigdy nie jest doskonałe. Niedopasowanie impedancji obiektowo-relacyjnej to termin używany do opisania tarcia spowodowanego różnicą w sposobie, w jaki relacyjne bazy danych i programy obiektowe strukturyzują dane.

Chociaż relacyjne bazy danych i programowanie obiektowe opisują dwa konkretne wybory projektowe, problem translacji między warstwą aplikacji i bazy danych jest problemem uogólnionym, który istnieje niezależnie od typu bazy danych lub paradygmatu programowania. Warstwa abstrakcji bazy danych to bardziej ogólny termin na oprogramowanie, którego zadaniem jest tłumaczenie między tymi dwoma kontekstami.



Utrzymywanie synchronizacji zmian strukturalnych z bazą danych

Jednym z ważnych faktów, które odkryjesz podczas tworzenia aplikacji, jest to, że ponieważ baza danych istnieje poza bazą kodu, wymaga szczególnej uwagi, aby poradzić sobie ze zmianami w strukturze danych. Ten problem występuje częściej w niektórych projektach baz danych niż w innych.

Najpopularniejszym podejściem do synchronizowania struktur danych aplikacji z bazą danych jest proces zwany migracją bazy danych lub migracja schematu (oba znane potocznie po prostu jako migracja). Migracja obejmuje aktualizowanie struktury bazy danych w celu odzwierciedlenia zmian w miarę rozwoju modelu danych aplikacji. Zwykle przybierają one formę serii plików, po jednym dla każdej ewolucji, które zawierają instrukcje potrzebne do przekształcenia bazy danych do nowego formatu.



Ochrona dostępu do danych i odkażanie danych wejściowych

Jednym z ważnych obowiązków podczas pracy z bazami danych jako programista jest zapewnienie, że aplikacje nie umożliwiają nieautoryzowanego dostępu do danych. Bezpieczeństwo danych to szeroki, wielowarstwowy problem dotyczący wielu interesariuszy. Ostatecznie niektóre kwestie związane z bezpieczeństwem będą Twoim obowiązkiem.

Twoja aplikacja będzie wymagała uprzywilejowanego dostępu do bazy danych w celu wykonywania rutynowych zadań. For safety, the database's authorization framework can help restrict the type of operations your application can perform. However, you need to ensure that your application restricts those operations appropriately. For example, if your application manages user profile data, you have to prevent a user from manipulating that access to view or edit other users' information.

One specific challenge is sanitizing user input. Sanitizing input means taking special precautions when operating on any data provided by a user. There is a long history of malicious actors using normal user input mechanisms to trick applications into revealing sensitive data. Crafting your applications to protect against these scenarios is an important skill.




Conclusion

Databases are an indispensable component in modern application development. Storing and controlling the stateful information related to your application and its environment is an important responsibility that requires reliability, performance, and flexibility.

Fortunately, there are many different database options designed to fulfil the requirements of different types of applications. In our next article, we'll take an in-depth look at the different types of databases available and how they can be used to match different types of application requirements.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć widok w SQL

  2. 10 najlepszych startupów w chmurze – 2018

  3. Używanie Jenkinsa z Kubernetes AWS, część 1

  4. Jak działa indeksowanie?

  5. Liczba SQL