Historia baz danych: baza danych i DBMS

Dawno temu w jednym kraju amerykańskim, w dużej firmie informatycznej, pojawiło się kiedyś zadanie przechowywania bardzo dużych ilości danych. Co w tym takiego trudnego, zapytacie? W końcu duże firmy mają pieniądze, co oznacza, że ​​​​możesz kupić więcej dysków twardych - i to wszystko.

Świetny pomysł, ale jak to mówią diabeł tkwi w szczegółach. Trzeba było nie tylko przechowywać duże ilości danych, ale także je zmieniać, z których sporządzano różne próbki. Co więcej, musisz wybrać różne dane z różnych miejsc, a także zrobić to szybko i pięknie.

Generalnie wszystko jest po staremu: klienci chcieli czegoś, czego nie ma, a decyzja o zakupie dysków twardych tym razem się nie udała.

Dlatego programiści tej firmy informatycznej wybili sobie większy budżet, przeprowadzili prace badawcze, a kiedy budżet się skończył, przedstawili prezentację, w której zaproponowano przechowywanie danych w postaci Bazy Danych. W bazie danych wszystkie dane są przechowywane w tabelach, a każda tabela jest przechowywana w osobnym pliku. Wszystko, co genialne, jest proste i wszystko działa.

Ale taka prezentacja nie odpowiadała klientom, a czepianie się trwało:

  • Gdzie są pieniądze, Lebowski?
  • Dlaczego Baza Danych jest lepsza od starego dobrego przechowywania danych w postaci zbioru plików?
  • Potrzebujemy naprawdę dobrego rozwiązania, nie o to chodzi!
  • I to pochłonęło cały budżet?

W sali prezentacji zapadła martwa cisza. Jednak nieoczekiwanie dla wszystkich sytuację uratował młodszy programista, który powiedział, że do bazy danych został dołączony specjalny program - DBMS ( Database Management System), który potrafi:

  • Twórz, modyfikuj i usuwaj bazy danych
  • Dokonuj zmian w bazach danych, a mianowicie: dodawaj nowe rekordy, usuwaj stare i zmieniaj je
  • A także superszybkie dokonywanie różnych selekcji dowolnych danych

A programiści kończą nawet projektowanie specjalnego superjęzyka do filtrowania danych - SQL . A mówią, że za pomocą tego magicznego języka SQL każdy menedżer może łatwo filtrować i pobierać dowolne dane z bazy danych.

Programiści po prostu nie skończyli jeszcze projektować języka , więc w prezentacji nie ma ani słowa o SQL i DBMS.

Ku radości wszystkich, klienci byli pod wrażeniem wyjaśnień, które usłyszeli, wyrazili kilka sprzecznych pomysłów na temat tego, jak powinien wyglądać ten nowy język, a nawet przeznaczyli budżet na jego udoskonalenie.

Menedżerowie i Dyrektor Techniczny zaczęli sobie gratulować pomyślnego zakończenia projektu i od razu poszli świętować to wydarzenie, nie do końca zdając sobie sprawę, że młodszy programista w całej tej historii jest najważniejszą osobą…

Popularny DBMS i MySQL

W tej chwili (lato 2022) istnieją setki popularnych DBMS, więc warto poznać niektóre z nich. Od czego mam zacząć…

Z jednej strony rynek korporacyjnych DBMS istnieje od dziesięcioleci. Dlatego ma zarówno uznanych liderów, jak i obiecujących debiutantów. Z drugiej strony wymagania biznesowe stale rosną, więc podejście do budowy infrastruktury IT firm stale się zmienia.

Teraz już nikogo nie zaskoczy baza danych z klastra kilku tysięcy serwerów z shardingiem poziomym i pionowym, transakcjami rozproszonymi, a także działem IT składającym się z kilkudziesięciu administratorów systemu, którzy idą i wymieniają dyski twarde serwerów zgodnie z z góry ustalony harmonogram.

Ogólnie rzecz biorąc, jeśli pracujesz dla dużej firmy, najprawdopodobniej płacą dużo pieniędzy za swoje bazy danych i używają czegoś takiego:

Baza danych Oracle

Oracle wydało swoją pierwszą bazę danych w 1979 roku (43 lata temu). Od razu nosiła nazwę Oracle 2.0, aby przekonać klientów, że produkt nie jest nowy, ale sprawdzony w czasie.

Obecna wersja bazy danych to Oracle 21c , gdzie litera c pochodzi od chmury słów , co niejako sugeruje, że Oracle idzie z duchem czasu i jego rozwiązania są doskonale kompatybilne ze wszystkimi technologiami chmurowymi.

Serwer Microsoft SQL

Microsoft zarabia na sprzedaży nie Windowsa, ale rozwiązań serwerowych dla średnich i dużych firm. Microsoft Office, Microsoft SharePoint, Microsoft Server itp. Oczywiście wszystko to wymaga dobrej bazy danych. W związku z tym wiele firm korzystających z produktów i rozwiązań firmy Microsoft zmuszonych jest do korzystania z jego bazy danych.

DBMS firmy Microsoft nazywa się po prostu SQL Server , więc jeśli podczas rozmowy kwalifikacyjnej usłyszysz pytanie „Czy pracowałeś z SQL Server?”, wiedz, że nie jest to abstrakcyjny DBMS, ale Microsoft SQL Server.

PostgreSQL

To dobry darmowy DBMS, z którego często korzystają nie tylko małe i średnie firmy, ale także duże korporacje. Jest to jedna z baz danych, które Amazon AWS oferuje jako usługę DB-as-service.

MySQL

MySQL to bardzo popularna bezpłatna baza danych o otwartym kodzie źródłowym. Jest dobrze udokumentowany, działa szybko i obsługuje szeroki zakres funkcji. Do tej pory dostępna jest ósma wersja tego systemu DBMS.

W 2008 roku został kupiony przez Sun, który został kupiony przez Oracle w 2009 roku. I tylko jej to przyniosło korzyść - produkt stale się rozwija i ulepsza.

Nauczymy się pracować z bazami danych na przykładzie MySQL Community Server 8.0 .

Tabele w bazie danych: kolumny i kolumny

Różne DBMS mogą przechowywać dane w różnych formatach, więc my weźmiemy najprostszą i najbardziej klasyczną opcję - MySQL DBMS.

I od razu pojawia się pytanie: jak przechowywać np. jakiekolwiek dokumenty księgowe? Najłatwiejszą opcją jest przechowywanie każdego dokumentu jako pliku Excel. Następnie wszystkie powiązane dokumenty mogą być przechowywane w jednym folderze. Tak działa MySQL.

Kolejna analogia: w języku Java masz w swoim projekcie klasy i pakiety , ale jednocześnie klasy i pakiety są reprezentowane na dysku jako pliki i foldery . Coś podobnego istnieje w MySQL.

Dane MySQL są przechowywane w postaci tabel , które są łączone w bazy danych , ale jednocześnie tabele i baza danych prezentowane są na dysku jako pliki i foldery . Baza danych to folder, a znajdujące się w nim pliki to tabele.

Każda tabela składa się z kolumn i wierszy . Przykład:

Ważny! Każda kolumna ma nazwę i typ danych , więc wszystkie komórki w tej samej kolumnie muszą zawierać wartości tego samego typu .

Można narysować analogię między tabelą w MySQL a klasą w Javie. Tabela jest klasą, tabela, podobnie jak klasa, ma unikalną nazwę. Kolumny tabeli to pola klas; kolumny, podobnie jak pola, mają unikalną nazwę i typ. Wiersze tabeli to instancje klas w Javie.

Klasa może istnieć bez obiektów, a tabela może istnieć bez wierszy. W Javie możesz utworzyć nowy obiekt, aw MySQL możesz dodać nowy wiersz do tabeli. Możesz zmienić wartości pól obiektu, aw MySQL możesz zmienić wartości z rzędu.

Jeszcze bardziej poprawne jest stwierdzenie, że tabela nie jest klasą, ale zbiorem obiektów określonej klasy. Jeśli w MySQL mamy tabelę Employee z danymi o pracownikach, to w Javie skorzystalibyśmy z kolekcji ArrayList.

I oczywiście natychmiast pojawia się pytanie: jak uzyskać określone dane z tego zbioru?