Samouczek dotyczący bazy danych 4D: kompletny przewodnik
Samouczek dotyczący bazy danych 4D rozpoczyna się od czterech głównych obiektów: tabel, pól, formularzy i metod. 4D to platforma do tworzenia relacyjnych baz danych i aplikacji firmy 4D SAS, uruchomiona po raz pierwszy w 1984 roku, przechowująca dane w zastrzeżonym pliku struktury „.4DD” powiązanym ze skompilowaną lub zinterpretowaną warstwą aplikacji. Programiści definiują tabele, budują formularze i dołączają kod w jednym zintegrowanym środowisku.
4D zajmuje niezwykłe miejsce w krajobrazie narzędziowym. Jest to połączenie silnika relacyjnej bazy danych, środowiska szybkiego tworzenia aplikacji, serwera WWW i projektanta formularzy typu low-code. To połączenie jest powodem, dla którego wdrażają je małe zespoły: jeden produkt obejmuje pamięć masową, logikę biznesową, interfejs użytkownika i wdrażanie.
Silnik jest relacyjny w klasycznym sensie: tabele, klucze podstawowe, powiązane tabele i relacje zdefiniowane w strukturze. Nie jest to system typu SQL-first, taki jak PostgreSQL czy MySQL, chociaż 4D obsługuje SQL poprzez swój silnik SQL i polecenia „Rozpocznij SQL” / „Zakończ SQL”.
Większość codziennych zadań wykorzystuje własny język 4D (historycznie nazywany językiem 4D, obecnie po prostu kod 4D), który jest bliższy językowi skryptowemu niż SQL. Ten samouczek dotyczący bazy danych 4D pomaga początkującym zrozumieć wszechstronność narzędzia.
Na początku liczą się dwa fakty architektoniczne:
- Struktura a dane. Struktura (tabele, pola, formularze, metody) znajduje się w pliku
.4DC/projektu we współczesnych wersjach; dane znajdują się w pliku danych.4DD. W wersji 4D 20 i nowszych projekty są przechowywane jako folder plików tekstowych, dzięki czemu kontrola wersji za pomocą Git jest praktyczna. Starsze struktury binarne.4DBsą trudniejsze do porównania. - Klient-serwer kontra pojedynczy użytkownik. Wdrożenie z jednym użytkownikiem wszystko uruchamia na jednej maszynie. Klient-serwer oddziela serwer 4D (dane + logika biznesowa) od klienta 4D (UI). Ta sama struktura obsługuje oba, ale podróże sieciowe zmieniają sposób pisania pętli.
Jeśli korzystasz z programu Microsoft Access, model mentalny dobrze się przenosi. Jeśli korzystasz ze stosu internetowego, spodziewaj się oduczyć pewnych nawyków: formularze 4D są stanowe i sterowane zdarzeniami, a nie odpowiedzią na żądanie.
Powiązane: — Prosty interfejs arkusza kalkulacyjnego oparty na prawdziwej relacyjnej bazie danych, z automatyzacją, widokami i udostępnianymi interfejsami..
Krok 1: Zainstaluj i utwórz swoją pierwszą strukturę
Pobierz 4D z oficjalnej strony 4D (4d.com), aby rozpocząć samouczek dotyczący bazy danych 4D. Do wdrożenia zazwyczaj wybierasz pomiędzy 4D (pełne środowisko programistyczne) a serwerem 4D. Dostępny jest bezpłatny tryb programowania lokalnego do nauki, ale wdrożenie do środowiska produkcyjnego wymaga licencji: bezpośrednio sprawdź aktualne warunki licencji, ponieważ zmieniają się one z wydania na wydanie.
Tworzenie projektu:
- Uruchom 4D i wybierz Nowy > Projekt.
- Nazwij projekt i wybierz folder. Nowoczesne 4D tworzy folder projektu zawierający
Project/Sources/z twoją strukturą w postaci plików tekstowych. - Otworzy się Edytor struktury. To jest twoje schematyczne płótno.
Edytor struktury to miejsce, w którym dodajesz tabele. Każda tabela otrzymuje nazwę, zestaw pól i opcjonalnie automatycznie wygenerowany klucz podstawowy. Konwencja 4D polega na poprzedzaniu nazw pól typem — „ID_”, „Nazwa_”, „Data_”, „Kwota_” — chociaż jest to kwestia stylu, a nie wymagania. Spójność procentuje później, gdy przeskanujesz 200 pól.
Jeśli robisz zakupy: — Narzędzie do tworzenia aplikacji o niskim kodzie, które łączy się z szerszym pakietem Zoho i oferuje ceny za użytkownika, a nie za aplikację..
Typy pól, których będziesz najczęściej używać: tekst, alfa, liczba całkowita, longint, liczba rzeczywista, data, godzina, wartość logiczna, obraz, BLOB, obiekt i UUID. Typ Object przechowuje dane strukturalne w formacie JSON i jest nowoczesnym wyborem w przypadku elastycznych atrybutów. Pola UUID są zalecanym typem klucza podstawowego dla nowych tabel, ponieważ pozwalają uniknąć kolizji i problemów z ponowną numeracją w przypadku automatycznie zwiększanych liczb całkowitych w danych rozproszonych lub scalonych.
Krok 2: Projektowanie tabel i relacji
Projektowanie schematów w 4D jest zgodne z zasadami normalizacji relacji, ze szczególnym uwzględnieniem 4D: relacje są deklarowane graficznie i obejmują automatyczne zachowanie. Jest to kluczowa część każdego samouczka dotyczącego baz danych 4D.
Aby utworzyć relację, przeciągnij pole klucza podstawowego z jednej tabeli do pola klucza obcego innej tabeli w edytorze struktury. 4D rysuje linię relacji i pozwala skonfigurować:
| Ustawienie relacji | Co kontroluje | Efekt praktyczny |
|---|---|---|
| Automatyczne relacje | Czy 4D automatycznie ładuje powiązane rekordy | Wygodny dla formularzy; może powodować ukryte zapytania w pętlach |
| Jeden do wielu vs wiele do jednego | Kierunek łącza | Określa, która strona zawiera klucz obcy |
| Powiązana nazwa tabeli | Nazwa akcesora w kodzie | Staje się własnością, do której się odwołujesz, np. [Faktura]Klient |
| Kontrola usuwania | Kaskadowe, ograniczające lub zerowanie | Zapobiega osieroconym rekordom dzieci |
Konkretny przykład: tabela „Faktura” z polem „CustomerID” połączonym z „Customer.ID”. W kodzie [Faktura]Klient.Nazwa przechodzi przez relację. Jest to eleganckie – i niebezpieczne w przypadku pętli ponad 10 000 faktur, ponieważ każdy dostęp może wywołać wyszukiwanie. Rozwiązaniem jest celowe użycie opcji „RELATE MANY” / „RELATE ONE” lub najpierw załadowanie powiązanych danych do kolekcji.
Kompromis, aby podjąć decyzję wcześnie: Znormalizowane tabele z zadeklarowanymi relacjami zapewniają integralność referencyjną i prosty kod, ale kosztują wydajność w przypadku dużych odczytów. Zdenormalizowane tabele z osadzonymi polami obiektów są szybsze do odczytania, ale wymagają sprawdzenia integralności we własnym kodzie. W przypadku większości aplikacji biznesowych dla małych zespołów należy znormalizować rdzeń transakcyjny i zdenormalizować tabele raportowania.
Krok 3: Utwórz formularze
Formularze stanowią warstwę interfejsu użytkownika 4D i występują w kilku typach: formularze szczegółowe (jeden rekord), formularze listowe (wiele rekordów), formularze wejściowe, formularze wyjściowe i formularze projektowe (niepowiązane z tabelą). Edytor formularzy to obszar roboczy typu „przeciągnij i upuść” z listą właściwości. Jest to kluczowa część każdego samouczka dotyczącego baz danych 4D.
Kluczowe pojęcia podczas tworzenia formularza:
- Źródło danych. Każdy formularz jest powiązany z tabelą lub zmienną/wyrażeniem w przypadku formularzy projektu.
- Widżety. Pola, przyciski, pola wyboru, listy rozwijane, pola list i listy hierarchiczne. Listy wyboru są głównym narzędziem do wyświetlania powiązanych danych i mają znacznie większe możliwości niż zwykła siatka.
- Metody obiektowe. Kliknij dowolny obiekt prawym przyciskiem myszy i dołącz metodę. Metoda działa na zdarzeniach takich jak „Po załadowaniu”, „Po kliknięciu”, „Po zmianie danych” i „Po sprawdzeniu poprawności”.
- Metody formularzy. Sam formularz ma metodę dla zdarzeń na poziomie formularza, takich jak „Przy ładowaniu” i „Przy wyładowywaniu”.
Przydatny szablon formularza szczegółów klienta: umieść pola klienta, dodaj pole listy powiązane z wybranymi fakturami od tego klienta i umieść przycisk wykonujący metodę tworzenia nowej faktury. Wybór pola listy zależy od zapytania lub relacji, a odświeżenie go po wstawieniu zapewnia rzetelność interfejsu użytkownika.
Uwaga: formularze 4D są stanowe. Formularz zawiera bieżący rekord i bieżący wybór. Mieszanie stanu na poziomie formularza z procesami w tle jest najczęstszym źródłem mylących błędów dla nowicjuszy. Trzymaj długotrwałe zadania w oddzielnym procesie i publikuj wyniki.
Krok 4: Napisz metody i logikę biznesową
W tym samouczku dotyczącym bazy danych 4D kod 4D jest podzielony na metody, które są dostępne w kilku wersjach:
- Metody baz danych — wyzwalane przez zdarzenia w bazie danych (uruchomienie, zamknięcie, tworzenie kopii zapasowej).
- Metody tabel — wyzwalane zdarzeniami rekordowymi (przy zapisie, przy usuwaniu).
- Metody formularzy i obiektów — wyzwalane przez zdarzenia interfejsu użytkownika.
- Metody projektowe — funkcje wielokrotnego użytku, które można wywołać z dowolnego miejsca.
- Wyzwalacze: Wykonuj operacje przed/po operacjach nagrywania, idealne do ścieżek audytu.
Nowoczesny kod 4D obsługuje klasy i słowo kluczowe „This”, umożliwiając pisanie kodu obiektowego, a nie tylko proceduralnego. Minimalna metoda projektu wygląda następująco:
// Metoda projektu: CreateInvoice
// $1 = identyfikator klienta (UUID)
C_OBJECT($faktura)
$faktura:=ds.Faktura.new()
$faktura.CustomerID:=$1
$invoice.Date:=Bieżąca data
$faktura.Status:="Wersja robocza"
$status:=$faktura.save()
Obiekt „ds” (magazyn danych) to nowoczesna warstwa dostępu w stylu ORM wprowadzona wraz z ORDA (Object Relational Data Access). ORDA umożliwia pracę z jednostkami i ich wyborami zamiast tradycyjnych selekcji oraz obsługuje łączenie zapytań, obliczane atrybuty i selekcje jednostek po stronie klienta, co ogranicza liczbę cykli pracy serwera. W przypadku nowych inwestycji zalecaną trasą jest ORDA; Klasyczne polecenia, takie jak „QUERY” i „CREATE RECORD” nadal działają i pojawiają się w starszych bazach kodu.
Jak podjąć decyzję: Użyj ORDA w przypadku nowego kodu i wszystkiego, co zyskuje dzięki czytelnym i dającym się łączyć zapytaniom. Zachowaj klasyczne polecenia tam, gdzie potrzebne są bardzo wąskie pętle w przypadku dużych selekcji, ponieważ w niektórych scenariuszach po stronie serwera klasyczne selekcje mogą oszczędzać pamięć. Mierz zamiast zakładać.
Krok 5: Listy wartości, zapytania i raportowanie
Listy wartości wypełniają listy rozwijane i pola list kontrolowanym zestawem opcji. 4D obsługuje kilka typów list:
- Listy statyczne — wartości zakodowane na stałe, idealne dla statusów i flag.
- Listy tabel — wartości wyodrębnione z tabeli referencyjnej, idealne dla klientów, produktów i kategorii.
- Listy hierarchiczne — wartości nadrzędne/podrzędne, przydatne w planach kont lub drzewach kategorii.
W przypadku zapytań funkcja „query()” ORDA akceptuje ciąg formuły ze znakami zastępczymi, co pozwala uniknąć problemów z wstrzykiwaniem i wyraźnie brzmi:
$sel:=ds.Invoice.query("Status = :1 AND Data >= :2"; "Otwarte"; $startDate)
Raportowanie w 4D wykorzystuje edytor Quick Report do tworzenia prostych danych tabelarycznych oraz obszar 4D Write Pro do tworzenia rozbudowanych dokumentów. Write Pro to obiekt do edycji tekstu osadzony w formularzu; możesz scalić dane w szablon i wyeksportować je do formatu PDF lub DOCX. W przypadku skomplikowanych projektów generowanie kodu HTML i renderowanie go w obszarze internetowym jest często szybsze w tworzeniu i łatwiejsze do stylizacji. Na tym kończy się ta część samouczka dotyczącego bazy danych 4d.
Krok 6: Wdróż i konserwuj
Opcje wdrażania kształtują Twoją architekturę w tym samouczku dotyczącym baz danych 4D:
- Pojedynczy użytkownik: aplikacja i dane na jednym komputerze. Najprostszy, bez współbieżności.
- Klient-serwer — Serwer 4D zawiera dane i logikę biznesową; Klient 4D łączy się. Idealny dla zespołów LAN.
- Serwer WWW 4D — 4D bezpośrednio obsługuje punkty końcowe REST i strony internetowe. ORDA udostępnia automatyczny dostęp REST do Twojego magazynu danych, co oznacza, że możesz stworzyć interfejs sieciowy na tym samym schemacie.
- 4D na iOS / Android — klienci mobilni wygenerowani z Twojej struktury.
Kopie zapasowe są wbudowane: 4D Server może zaplanować automatyczne tworzenie kopii zapasowych i prowadzić dziennik (plik dziennika) w celu odzyskania danych w określonym momencie. Włącz dziennik przed publikacją, a nie po. Przetestuj przywracanie na kopii danych: nieprzetestowana kopia zapasowa to nadzieja, a nie plan.
Kontrola wersji: Mając struktury w trybie projektu, zatwierdź folder Project/Sources/ w Git. Wyklucz plik danych i folder „DerivedData”. Jest to prawdziwy postęp w porównaniu z erą binarną i warto go przyjąć od pierwszego dnia.
Typowe błędy i sposoby ich unikania
Pomijanie dyscypliny klucza podstawowego. Każda tabela potrzebuje stabilnego i unikalnego klucza podstawowego. Identyfikatory UUID pozwalają uniknąć problemów z ponowną numeracją spowodowanych automatycznym zwiększaniem liczb całkowitych podczas usuwania lub łączenia rekordów.
Umieszczanie logiki biznesowej w metodach formularzy. Metody formularzy powinny obsługiwać interfejs użytkownika. Przenieś reguły do metod lub klas projektu, aby można było je ponownie wykorzystać w internetowych punktach końcowych, importach i zaplanowanych zadaniach.
Ignorowanie dziennika. Bez niego awaria podczas zapisu może spowodować niespójność pliku danych. Włącz to.
Zapętlanie relacji. Dostęp do [Table]Related.Field w dużej pętli powoduje zwielokrotnienie zapytań. Załaduj wstępnie za pomocą ORDA lub użyj raz „RELATE MANY”.
Traktowanie 4D jak SQL. Możesz używać SQL, ale kod idiomatyczny 4D jest generalnie krótszy i lepiej zintegrowany z formularzami i zdarzeniami. Najpierw naucz się natywnego języka w ramach samouczka dotyczącego bazy danych 4D.
Ścieżka szkoleniowa i zasoby
Zacznij od oficjalnej dokumentacji 4D i bloga programistów 4D, który omawia ORDA, Write Pro i zmiany specyficzne dla wersji. Forum społeczności 4D jest aktywne i dobrze reaguje na konkretne pytania. Aby zapoznać się z podstawami projektowania relacyjnego, które mają zastosowanie niezależnie od platformy, artykuł w Wikipedii na temat relacyjnych baz danych i wpisów SQL zawiera przydatne informacje na temat normalizacji zapytań i semantyki.
Realistyczna sekwencja uczenia się: utwórz menedżera kontaktów z pojedynczą tabelą, następnie dodaj powiązaną tabelę i pole listy, następnie dodaj listę wartości i formularz zapytania, a następnie wdróż klient-serwer. Każdy krok wprowadza nową koncepcję, nie przytłaczając Cię.
Kluczowe wnioski
- 4D łączy relacyjną bazę danych, IDE, projektanta formularzy i serwer WWW w jednym produkcie, odpowiednim dla małych zespołów, które muszą szybko dostarczyć niestandardową aplikację biznesową. Ten samouczek dotyczący bazy danych 4D podkreśla jego wydajność.
- Definiuj tabele i relacje w edytorze struktur, twórz ekrany w edytorze formularzy i dołączaj logikę za pomocą metod i wyzwalaczy: czterech obiektów, które składają się na każdą aplikację 4D.
- ORDA (
ds, encje, selekcje encji) to nowoczesna warstwa dostępu do danych i zalecany wybór dla nowego kodu; klasyczne polecenia pozostają ważne w starszych projektach. - Używaj kluczy podstawowych UUID, włączaj dziennik i zatwierdzaj struktury trybu projektu w Git od samego początku, aby uniknąć później bolesnych migracji.
- Trzymaj logikę biznesową poza metodami i wstępnie ładuj powiązane dane zamiast przechodzić przez relacje w dużych pętlach.
Źródła i dalsze lektury
- Relacyjna baza danych — Wikipedia: Relacyjna baza danych (RDB) to baza danych oparta na relacyjnym modelu danych zaproponowanym przez E. F. Codda w 1970 r. System zarządzania relacyjną bazą danych (RDBMS…
Często zadawane pytania
Czy 4D to baza danych SQL?
4D to relacyjna baza danych z własnym językiem natywnym i zintegrowanym silnikiem SQL. Instrukcje SQL można wydawać za pomocą Begin SQL / End SQL, ale większość programowania 4D używa poleceń ORDA lub klasycznych poleceń 4D, a nie SQL. Podstawowy model jest relacyjny (tabele, klucze i relacje), więc koncepcje SQL mają zastosowanie, nawet jeśli składnia, której używasz na co dzień, jest inna.
Czy muszę znać się na programowaniu, aby korzystać z 4D?
Podstawowa wiedza programistyczna jest bardzo przydatna, ponieważ formularze i reguły biznesowe są powiązane z kodem 4D. To powiedziawszy, wbudowany edytor formularzy i kreatory 4D pozwalają stworzyć funkcjonalną aplikację do wprowadzania danych przy minimalnej liczbie kodu. Citizen developers zazwyczaj zaczynają od formularzy i list wartości, a następnie uczą się metod potrzebnych do niestandardowego zachowania. Dla tych, którzy zaczynają, pomocny może być samouczek dotyczący baz danych 4D.
Jaka jest różnica pomiędzy poleceniami ORDA i klasycznymi poleceniami 4D?
ORDA to zorientowana obiektowo warstwa dostępu zbudowana wokół magazynu danych („ds”), encji i selekcji encji, z zapytaniami, które można łączyć w łańcuchy i obsługą wyborów po stronie klienta. Klasyczne polecenia, takie jak „QUERY”, „CREATE RECORD” i „MODIFY SELECTION” działają na klasycznych wyborach i bieżących rekordach. ORDA jest zalecanym podejściem do nowego programowania, podczas gdy klasyczne polecenia pozostają powszechne w starszych bazach kodu.
Czy aplikacje 4D można uruchomić w internecie lub na urządzeniu mobilnym?
Tak. 4D zawiera wbudowany serwer WWW, a ORDA może udostępniać punkty końcowe REST dla magazynu danych, dzięki czemu interfejs przeglądarki może komunikować się za pomocą tego samego schematu. 4D oferuje także generowanie klientów mobilnych na iOS i Androida. Kompromis polega na tym, że klienci sieciowi i mobilni muszą zwracać szczególną uwagę na uwierzytelnianie i ilość danych zwracanych w każdym żądaniu.
Jak bezpiecznie utworzyć kopię zapasową bazy danych 4D?
Włącz dziennik (plik dziennika) na serwerze 4D, aby móc odzyskać dane do określonego momentu i zaplanować automatyczne tworzenie kopii zapasowych zamiast polegać na kopiach ręcznych. Zawsze testuj przywracanie na podstawie kopii danych, zanim będą one potrzebne w sytuacji awaryjnej. Trzymaj strukturę pod kontrolą wersji oddzielnie od pliku danych, ponieważ zmieniają się one z różną szybkością.
Czy 4D nadaje się do aplikacji dla małych firm?
4D zaprojektowano dokładnie z myślą o tym scenariuszu: mały zespół tworzy niestandardową aplikację biznesową z formularzami, raportami i schematem relacyjnym. Można go skalować do wdrożeń klient-serwer i dostępu do Internetu bez zmiany podstawowej struktury. Głównymi czynnikami do rozważenia są koszty licencji i mniejsza pula talentów w porównaniu z głównymi stosami sieciowymi, dlatego należy rozważyć długoterminową konserwację i szybkość budowy aplikacji.
Najczęściej zadawane pytania
Czy 4D jest bazą danych SQL?
4D to relacyjna baza danych z własnym językiem natywnym i zintegrowanym silnikiem SQL. Możesz wydawać instrukcje SQL poprzez Begin SQL / End SQL, ale większość programowania 4D używa poleceń ORDA lub klasycznych poleceń 4D, a nie SQL. Podstawowy model jest relacyjny (tabele, klucze i relacje), więc koncepcje SQL są przenoszone, nawet jeśli składnia, którą piszesz na co dzień, tego nie robi.
Czy muszę znać się na programowaniu, żeby korzystać z 4D?
Podstawowa wiedza programistyczna jest bardzo przydatna, ponieważ formularze i reguły biznesowe są powiązane z kodem 4D. To powiedziawszy, wbudowany edytor formularzy i kreatory 4D pozwalają stworzyć funkcjonalną aplikację do wprowadzania danych przy minimalnej liczbie kodu. Programiści obywatelscy zazwyczaj zaczynają od formularzy i list wartości, a następnie uczą się metod potrzebnych do niestandardowego zachowania. Dla tych, którzy zaczynają, pomocny może być samouczek dotyczący baz danych 4D.
Jaka jest różnica pomiędzy poleceniami ORDA i klasycznymi poleceniami 4D?
ORDA to zorientowana obiektowo warstwa dostępu zbudowana wokół magazynu danych (ds), jednostek i ich wyborów, z zapytaniami, które można łączyć w łańcuchy i obsługą wyborów po stronie klienta. Klasyczne polecenia, takie jak QUERY, CREATE RECORD i MODIFY SELECTION, działają na klasycznych selekcjach i bieżących rekordach. ORDA jest zalecanym podejściem do nowego programowania, podczas gdy klasyczne polecenia pozostają powszechne w starszych bazach kodu.
Czy aplikacje 4D mogą działać w Internecie lub na urządzeniu mobilnym?
Tak. 4D zawiera wbudowany serwer WWW, a ORDA może udostępniać punkty końcowe REST w magazynie danych, dzięki czemu interfejs przeglądarki może komunikować się za pomocą tego samego schematu. 4D oferuje także generowanie klientów mobilnych na iOS i Androida. Kompromis polega na tym, że klienci sieciowi i mobilni muszą zwracać szczególną uwagę na uwierzytelnianie i ilość danych zwracanych w każdym żądaniu.
Jak bezpiecznie wykonać kopię zapasową bazy danych 4D?
Włącz dziennik (plik dziennika) na serwerze 4D, aby móc odzyskać dane do określonego momentu i zaplanować automatyczne tworzenie kopii zapasowych zamiast polegać na kopiach ręcznych. Zawsze testuj przywracanie na podstawie kopii danych, zanim będą one potrzebne w sytuacji awaryjnej. Trzymaj strukturę pod kontrolą wersji oddzielnie od pliku danych, ponieważ zmieniają się one z różną szybkością.
Czy 4D nadaje się do aplikacji dla małych firm?
4D zaprojektowano dokładnie z myślą o tym scenariuszu: mały zespół tworzy niestandardową aplikację biznesową z formularzami, raportami i schematem relacyjnym. Można go skalować do wdrożeń klient-serwer i dostępu do Internetu bez zmiany podstawowej struktury. Głównymi czynnikami do rozważenia są koszty licencji i mniejsza pula talentów w porównaniu z głównymi stosami sieciowymi, dlatego należy rozważyć długoterminową konserwację i szybkość kompilacji.
Wypróbuj FileMaker za darmo przez 45 dni
Długotrwała platforma relacyjnych baz danych dla zespołów, które potrzebują niestandardowych aplikacji na komputery stacjonarne, w Internecie i na urządzeniach mobilnych w jednym pliku.