Projektowanie baz danych to coś więcej niż tylko rysowanie linii i ramek. W tym artykule zastanawiam się nad procesem modelowania danych z naciskiem na najlepsze praktyki, a także nad tym, jak używać narzędzi do wdrażania tych najlepszych praktyk w celu stworzenia dobrego projektu bazy danych.
Projektowanie bazy danych to proces tworzenia szczegółowego modelu bazy danych. Rozpoczęcie modelowania bazy danych obejmuje zrozumienie obszaru biznesowego i rozwijanej funkcjonalności.
Jeśli nie masz pewności co do kroków związanych z procesem projektowania bazy danych, odsyłam Cię do tego opisu kroków projektowania bazy danych.
Rozpocznij modelowanie:porozmawiaj z firmą
Jest to kluczowa zasada w technologii informacyjnej. Rozwiązujemy problem biznesowy od strony danych tak, aby potrzebne dane były dostępne. Musimy porozmawiać z ludźmi biznesu, aby zrozumieć ich potrzeby.
Musimy zadawać pytania takie jak:
- „Jaka jest domena?”
- „Jakie są wyzwania w tej domenie?”
- „Jakie problemy należy rozwiązać?”
- „Jakie informacje musimy przechowywać?”
Rozmawiając z biznesem, możemy rozważyć kompromisy, które mogą wpłynąć na model bazy danych. Tworzymy również fundament pod modelowanie.
Posłużmy się konkretnym przykładem. Weźmy aplikację księgową dla firmy:trzeba by modelować klientów, dostawców, faktury, płatności, konta, salda itp. Musisz poznać te pojęcia i księgowość. Możesz to zrobić tylko rozmawiając do ludzi biznesu.
Uporządkowanie pojęć
Ta wstępna praca z biznesem doprowadzi Cię do modelu tego, jakie „koncepcje” muszą być przechowywane w bazie danych (przeczytaj to wyjaśnienie różnych poziomów modeli). Od koncepcji tego, co musimy przechowywać w bazie, czyli naszego modelu pojęciowego, przechodzimy do logicznego. Model logiczny dokumentuje koncepcje biznesowe i reguły, na których nakładamy szczegóły (możesz przeczytać tę dyskusję na temat tego, czy logiczne modelowanie danych jest przestarzałe).
Jeśli nie masz pewności co do różnych typów modeli danych, zapoznaj się z naszym artykułem na temat implementacji koncepcyjnych, logicznych i fizycznych modeli danych w Vertabelo.
Logiczny model danych dodaje więcej informacji do koncepcji, które już udokumentowaliśmy. Opisuje strukturę danych i sposób, w jaki podmioty są ze sobą powiązane. Ponadto zawiera informacje o typach danych, którymi zarządzamy.
W Vertabelo możemy stworzyć logiczny model danych za pomocą logicznego diagramu relacji encji (ERD). Sprawdź szczegóły, jak wykonać logiczne modelowanie danych za pomocą Vertabelo.
Oto prosty i jeszcze nie kompletny, logiczny model danych klientów, dostawców, faktur, płatności i kont.
Inną zaletą pracy z Vertabelo jest to, że nie muszę się zbytnio martwić o dokładną notację. Narzędzie do modelowania pozwala martwić się o projekt, a nie o specyfikę notacji i symboli diagramu relacji encji (ERD), co oczywiście powinno być najmniejszym z twoich zmartwień podczas procesu projektowania bazy danych.
Porozmawiajmy o fizyczności
Aby faktycznie pracować z bazą danych, musimy przejść z naszego modelu logicznego do modelu fizycznego. Narzędzie Vertabelo pozwala nam łatwo wygenerować fizyczny model danych z logicznego. Najpierw tworzysz logiczny model danych, a następnie możesz „auto-magicznie ” wygeneruj fizyczny model, wybierając model logiczny i klikając „Generuj fizyczny model danych” (dokładne kroki znajdziesz w tym szczegółowym przewodniku).
Oczywiście wygenerowany fizyczny model danych będzie podobny do modelu logicznego; jednak logiczne typy danych zostaną przetłumaczone na typy danych, które są dozwolone dla konkretnego systemu zarządzania bazą danych (DBMS), dla którego generujesz model fizyczny. Model fizyczny wskaże również, które atrybuty są kluczami obcymi między tabelami. Możesz również chcieć wykonać dodatkowe modelowanie związane z fizycznymi aspektami bazy danych – na przykład indeksy i widoki.
Ponadto istnieje możliwość bezpośredniego stworzenia fizycznego modelu danych; nie musisz najpierw tworzyć logicznego. Przejście bezpośrednio do modelu fizycznego będzie miało sens w przypadku mniejszych, bardziej ukierunkowanych działań związanych z modelowaniem, w których domena biznesowa jest lepiej zdefiniowana. Proces modelowania fizycznej bazy danych jest prosty i nie powinien stwarzać zbyt wielu wyzwań. Posiadanie logicznego modelu danych okaże się przydatne w przypadku większych projektów, ale posiadanie przynajmniej fizycznego modelu jest lepsze niż jego brak.
Ewolucja projektu Twojej bazy danych
Deweloperzy na ogół uważają, że model bazy danych powinien obracać się wokół rzeczywistego kodu, podczas gdy twórcy modeli danych uważają, że kod powinien być tworzony w oparciu o stosunkowo statyczny model danych. Współczesne modelowanie danych musi być współpracy . Kod i model danych wpływają na siebie nawzajem tam iz powrotem.
Dlatego potrzebujemy narzędzia, które obsługuje proces wspólnego projektowania i modelowania baz danych. Oprócz współpracy z firmą w celu stworzenia projektu koncepcyjnego, osoby zajmujące się modelowaniem danych muszą współpracować podczas cyklu rozwoju, aby zaktualizować logiczne i fizyczne modele danych zgodnie z wymaganiami. Modelarze i programiści muszą dostosować model, dopóki nie będzie on rzeczywiście wspierał biznesowych i niefunkcjonalnych wymagań systemu.
Oczywiście zmiany mogą prowadzić do błędów. Ponownie, posiadanie narzędzia może pomóc; narzędzie, które stale weryfikuje Twój model danych, jest nieocenione. Vertabelo ma wbudowaną walidację online na żywo zarówno dla logicznych, jak i fizycznych modeli danych, dzięki czemu problemy są wykrywane podczas modelowania, a nie podczas wdrażania. A błędy pozostają widoczne dla wszystkich, którzy nad tym współpracują. Możesz także dostosować ustawienia walidacji zgodnie z wymaganiami. Oto przykład mojego niekompletnego modelu danych z kilkoma błędami i ostrzeżeniami.
Wracając do przykładu księgowego, możesz odkryć podczas projektowania, że nie wystarczy modelować jedną walutę, taką jak euro lub dolary, dla faktur i płatności. Zamiast tego będziesz musiał przechowywać kwoty w odpowiedniej walucie i przeliczyć je na walutę „bazową”, w której prowadzona jest księgowość firmy. Możesz również potrzebować kursów wymiany walut i historycznych informacji o kursach, które były używane do przeliczania walut w przeszłości.
W tym miejscu narzędzie do wspólnego modelowania baz danych, takie jak Vertabelo, naprawdę udowadnia swoją wartość. Możesz znaleźć więcej informacji na temat używania Vertabelo do modelowania zespołowego. Wystarczy kliknąć i udostępnić swój model członkom zespołu.
Fizyczne do wdrożenia
Gdy masz już pierwszą wersję modelu fizycznego, prawdopodobnie będziesz chciał rozpocząć pracę z rzeczywistą bazą danych. W tym celu Vertabelo wygeneruje skrypty SQL DDL (Data Definition Language) do utworzenia bazy danych. Nie będę pisał tutaj wszystkich szczegółów, ponieważ można je znaleźć w artykule bazy wiedzy online, jak wygenerować skrypt SQL tworzący bazę danych.
Powiem ci z doświadczenia – to taka mile widziana funkcja. Unikasz radzenia sobie z kaprysami różnych składni SQL DDL baz danych i możesz skoncentrować się na swoim projekcie .
Wersje
Teraz, jak napisałem powyżej, twoje modele będą ewoluować, czy to podczas projektowania bazy danych, podczas tworzenia oprogramowania, czy później, podczas rzeczywistego użytkowania bazy danych. Istnieją dwie wspaniałe funkcje Vertabelo, o których chcę mieć pewność, że jesteś świadomy.
Po pierwsze, Vertabelo obejmuje zarządzanie wersjami. Możesz śledzić modyfikacje i zarządzać wersjami modeli danych, dzięki czemu możesz łatwo „cofnąć czas” i w razie potrzeby przywrócić poprzednią wersję. Jeśli jesteś zdyscyplinowany, możesz oznaczyć różne wersje dokładnymi nazwami, niezależnie od tego, czy mogą to być wersje robocze, czy rzeczywiste wydania bazy danych.
Inną cechą, o której marzyłem od wielu lat podczas modelowania baz danych, jest zdolność narzędzia Vertabelo do automatycznego generuj skrypty migracji między wersjami modelu danych. Straciłem rachubę, kiedy musiałem wielokrotnie ręcznie pisać i poprawiać skrypty migracji. Oto przykład generowania skryptów migracji między dwiema wersjami bazy danych dla ankiety online.
Co za dobrodziejstwo dla modelarzy danych, aby mieć narzędzie, które skutecznie zarządza wersjami i określa wpływ zmian między wersjami!
Duże modele
Po pierwsze, pozwól mi być szczerym. Nie zawsze pracuję z dużymi modelami, ale czasami muszę je tworzyć. Tutaj ponownie Vertabelo oferuje nam rozwiązanie do organizowania naszych modeli.
Możemy wizualnie pogrupować tabele z obszarami tematycznymi; jeśli chcesz zobaczyć, jak to zrobić, możesz również obejrzeć film o zarządzaniu dużymi modelami danych w Vertabelo.
Możesz również użyć tej techniki podczas inżynierii wstecznej ze skryptu SQL DDL do modelu danych.
Rozpocznij projektowanie baz danych
Jeśli szukasz najlepszych praktyk projektowania baz danych, polecam zapoznać się z tym artykułem. Wskazówki dotyczące lepszego projektowania baz danych znajdziesz w tym artykule. Zobacz ten, aby uzyskać porady, jak zacząć używać Vertabelo do projektowania bazy danych.