JavaRush /Blog Java /Random-PL /Analizujemy bazy danych i język SQL - „Projekt Java od A ...
Roman Beekeeper
Poziom 35

Analizujemy bazy danych i język SQL - „Projekt Java od A do Z”

Opublikowano w grupie Random-PL
Artykuł z serii o tworzeniu projektu w Javie. Jego celem jest analiza kluczowych technologii, efektem jest napisanie bota telegramowego. Część wprowadzająca znajduje się tutaj . Aloha, inżynierowie oprogramowania. Dzisiaj porozmawiamy o bazach danych i języku SQL. „Projekt Java od A do Z”: analiza baz danych i języka SQL - 1Dla kogo przeznaczony jest ten artykuł? Tak dla wszystkich zainteresowanych. Niektórzy mogą rozpocząć swoją podróż od tego artykułu, inni będą mogli odświeżyć pamięć o ciekawych faktach. Ta część będzie czysto teoretyczna. Zanim powiemy, czym są bazy danych i składnia SQL, musimy zrozumieć i określić, dlaczego będziemy je badać. Na tym etapie będziemy rozmawiać TYLKO o bazach danych SQL: w tej serii artykułów nie będziemy omawiać NoSQL.

Baza danych: co to jest

„Projekt Java od A do Z”: analiza baz danych i języka SQL - 2Baza danych (zwana dalej DB) to miejsce, w którym przechowywane są dane strukturalne , które można uzyskać za pomocą języka zapytań. Bazy danych mogą nie tylko przechowywać, ale także przetwarzać i zmieniać informacje w dużych ilościach. Uwaga: spróbuj szybko zmienić zestaw wartości w Excelu w oparciu o pewne kryteria. W zasadzie nic skomplikowanego. Inaczej niż w naszym niezdigitalizowanym świecie rzeczywistym. Na przykład zmiana nazw pasów, ulic, miast. Gdyby wszystko było wirtualne i wpisane do bazy danych to byłoby unormowane, to byłyby parę drobiazgów. W obecnej sytuacji wiele nośników pamięci cierpi, ponieważ nie mogą zmieniać się automatycznie. W tym kontekście SQL dla baz danych jest językiem, który baza danych rozumie i odpowiednio reaguje. Powiedzmy, że zmiana nazwy miasta nie byłaby trudna; zmiana nazwy Dniepropietrowsk na Dnipro wyglądałaby mniej więcej tak:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Wszystkie kolejne żądania kierowane do systemu już wygenerowałyby potrzebną nam nazwę.

Dlaczego bazy danych są potrzebne?

Jak już mówiłem, korzystając z baz danych, można przechowywać dane. Ale co to za dane? Aby zrozumieć na przykładzie z życia wziętym, możemy porozmawiać o pewnym zastosowaniu. Na przykład o tym samym bocie telegramowym. Chcemy wiedzieć, ile osób korzysta z bota. Jak można to wdrożyć? W zwykłej aplikacji Java możesz utworzyć wiele unikalnych elementów - Zestaw, w którym będzie przechowywany pseudonim użytkownika lub identyfikator czatu. Czy to zadziała? Będzie. Dokładnie do momentu zatrzymania aplikacji Java i zaraz po jej ponownym uruchomieniu zbiór unikalnych elementów będzie pusty. Oznacza to, że dane przechowywane w uruchomionej aplikacji po prostu zniknęły. Co możesz z tym zrobić? Możesz przenieść przechowywanie stanu systemu (danych) z aplikacji Java w inne miejsce. Możesz zapisać to w formacie CSV w zwykłym pliku na swoim komputerze. Można to zrobić w jednej linii w osobnym pliku. Można to zrobić, a następnie nadpisać te dane przed zatrzymaniem aplikacji Java. Chociaż gwarancja, że ​​nagranie się powiedzie, jest daleka od bliskiej 100%, ponieważ wystarczy wyciągnąć kabel zasilający serwera, a nagranie nie nastąpi. Takie podejście ma istotną wadę: nie ma funkcjonalności umożliwiającej pozyskiwanie, agregowanie i wyszukiwanie informacji na poziomie pliku. Tak, oczywiście, możesz czytać plik i tworzyć dla niego obiekty, ale ZA KAŻDYM razem będziesz musiał wpompować wszystkie dane do aplikacji. A może być ich dużo, na przykład kilka gigabajtów. Można tego uniknąć przechowując dane w bazie danych. Jak? Poprzez tabele i relacje pomiędzy nimi. Na tym opierają się wszystkie relacyjne bazy danych.

SQL: język zrozumiały dla baz danych

Istnieją systemy zarządzania bazami danych (zwane dalej DBMS), a językiem, który rozumieją, jest SQL. SQL to język programowania służący do manipulowania bazami danych i zarządzania nimi. Aby zrozumieć jak to działa, spójrzmy na rysunek: „Projekt Java od A do Z”: analiza baz danych i języka SQL - 3użytkownik wysyła zapytania SQL do SZBD, SZBD rozumie, co należy zrobić, robi to i jeśli żądanie dotyczyło uzyskania danych, to je zwraca. Dlatego jako programiści musimy opanować język zapytań SQL. Możesz pomyśleć: „Och, inny język. Z Bożą pomocą ledwo rozumiem Javę, a ty od razu oferujesz mi inny język. To nieprawda: SQL został wynaleziony jako język specyfikacji systemu DBMS, aby księgowi bardzo oddaleni od baz danych i ogólnie programowania mogli pisać w tym języku. Oznacza to, że nauka tego nie będzie taka trudna. Najważniejsze jest PRAKTYKA-PRAKTYKA-PRAKTYKA. Dziś będzie teoria, ale następny artykuł będzie o praktyce. Ponieważ relacyjna baza danych to zbiór dwuwymiarowych tablic-tabel i relacji między nimi, praca będzie dotyczyć ich. Jeśli mówimy o przykładzie, możemy pokazać dwie tabele - „Kraje” i „Miasta” oraz sposób ich powiązania. „Projekt Java od A do Z”: analiza baz danych i języka SQL - 4Na tym etapie ważne jest dla nas zrozumienie, że rekordy w tabeli są danymi o jakimś obiekcie ze świata Java. Na przykład te dwie tabele można opisać w Javie w następujący sposób:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
No czyż nie jest pięknie, co? W bazie danych można przechowywać dowolną liczbę tabel. W naszym przypadku jest ich dwóch.

Struktura tabeli

Myślę, że każdy w taki czy inny sposób zetknął się z tabelami Excela i rozumie terminy wiersz i kolumna . W kontekście baz danych więcej mówimy o rekordach i polach: „Projekt Java od A do Z”: analiza baz danych i języka SQL - 5Okazuje się zatem, że każdy obiekt klasy City jest rekordem w tabeli w bazie danych.

Główny klucz

„Projekt Java od A do Z”: analiza baz danych i języka SQL - 6Często zdarza się, że pola w bazach danych mają te same wartości. Na przykład sieci społecznościowe, w których można znaleźć więcej niż jedną osobę według imienia, nazwiska, a nawet patronimiki. Relacyjne bazy danych wymagają unikalnego pola, za pomocą którego można uzyskać dostęp do rekordu. Nazywa się to pierwszym kluczem lub kluczem podstawowym. Zazwyczaj jako taki klucz używane jest pole ID(id) - jest to skrót od identyfikatora. Dlatego też musisz dodać pole ID do każdej tabeli .„Projekt Java od A do Z”: analiza baz danych i języka SQL - 7

Klucz zewnętrzny

W naszym przykładzie takie pole znajduje się w tabeli Miasto, która wykorzystuje klucz z Kraju. A działa to tak: każde miasto zna unikalny identyfikator informacyjny dla swojego kraju i jeśli go pobierzemy i utworzymy zapytanie w bazie danych, otrzymamy kompleksową informację o kraju. Jak widać na obrazku, pomiędzy dwiema tabelami istnieje związek: „Projekt Java od A do Z”: analiza baz danych i języka SQL - 8Pokazano tu zasadę działania klucza obcego.

Jakie sekcje są w SQL?

Nawiasem mówiąc, podczas rozmów kwalifikacyjnych często pytają, jakie operacje są w SQL:
  • DDL (Data Definition Language) to grupa operatorów, które zmieniają/tworzą tabele, ich strukturę i nie tylko. Czyli utworzenie tabeli, jej usunięcie, utworzenie/usunięcie pól w tabelach; utworzenie nowego klucza podstawowego i tak dalej;
  • DML (Data Manipulation Language) to grupa operatorów zarządzających modyfikacją danych. Są to wszystkie operacje zmieniające dane w bazie danych: dodawanie, pobieranie, zmiana i usuwanie;
  • DCL (Data Control Language) to sposób potwierdzania uprawnień użytkownika do wykonywania działań. Operacje zapewniające dostęp i uprawnienia konkretnemu użytkownikowi, aby mógł on wykonywać operacje DDL/DML.

Jakie typy danych występują w SQL

Tabele mogą przechowywać i przetwarzać określone typy danych. Wszystko tutaj będzie podobne do tego, czego używamy w Javie. Porozmawiajmy o głównych. Są tylko trzy z nich, w razie potrzeby i/lub potrzeby dodamy inne: „Projekt Java od A do Z”: analiza baz danych i języka SQL - 9Jak widać na obrazku, są to:
  • INT - wartości całkowite. Używane dla unikalnego identyfikatora i prostej liczby całkowitej;
  • VARCHAR to nasz ciąg znaków ;
  • DATE to nasza data lokalna.
Jak dotąd wszystko jest proste, prawda? Typy pól określa się podczas tworzenia tabeli. Wiadomo, że nie będzie możliwości zapisania w polu wartości innego typu.

Co to są operatory SQL

Operator to osobne polecenie, które wykonuje jakąś akcję. Operatory składają się ze zdań, które z kolei składają się ze słów kluczowych używanych w zapytaniach. Spójrzmy na przykład: „Projekt Java od A do Z”: analiza baz danych i języka SQL - 10Tutaj jest ciekawiej, tutaj zapytanie zostało już zbudowane. Co oni tam robią? To proste, mówi: „Weź trzy pola (Nazwa, Wiek i Data utworzenia) z tabeli Klienci i wybierz tylko te rekordy, w których nazwa jest równa Roman”.

Wniosek

W tym artykule zaczęliśmy studiować bazy danych. Rozumieliśmy, co to jest i dlaczego tego potrzebujemy. Następnie omówiliśmy pierwsze znaki SQL, o których szerzej porozmawiamy w następnym artykule. Tradycyjnie proponuję zarejestrować się na GitHubie i obserwować moje konto , aby śledzić tę serię i inne moje projekty, nad którymi tam pracuję.

Praca domowa

Aby zwiększyć zainteresowanie tą serią artykułów na temat JRTB, od czasu do czasu będą pojawiać się zadania domowe. Przykładowo bez dzisiejszego zadania następny artykuł będzie dużo trudniejszy do zrozumienia, bo będzie tam dużo praktyki. Dlatego zadaniem jest zainstalowanie na swoim komputerze systemu MySQL DBMS i zalogowanie się do bazy danych albo poprzez konsolę, albo poprzez inne rozwiązania. Dziękuję wszystkim za przeczytanie, do zobaczenia wkrótce!

Lista wszystkich materiałów wchodzących w skład serii znajduje się na początku artykułu.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION