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.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
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:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- 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.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
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
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
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
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
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
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
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
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
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:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
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?
GO TO FULL VERSION