3 najważniejsze zasady dotyczące projektowania baz danych

Zanim przystąpisz do projektowania większej aplikacji bazodanowej warto jest się zapoznać z tymi 3 zasadami. Uchronią one Ciebie przed różnymi przykrymi niespodziankami. Nie będę tutaj pisał nudnym matematyczno-informatycznym językiem o trzech postaciach normalnych baz danych itp. tylko na chłopski rozum wyjaśnię jakich błędów należy unikać, aby się nie obudzić z ręką w nocniku

Zasada #1: Dane w polach powinny przechowywać atomowe informacje

Poniżej znajduje się przykład źle zaprojektowanej tabeli:

access-zle-zaprojektowana-tabela

Zwróć uwagę, że cały adres jest zapisany w jednym polu (Adres). Efekt jest taki, że bardzo trudno będzie napisać kwerendę, która nam wyłowi wszystkie firmy z Warszawy. Dodatkowo w polu Adres można wpisać adres firmy w kilku różnych formatach (np. ulica i nr budynku, potem kod pocztowy i na końcu miasto albo np. miasto potem kod pocztowy a na końcu ulica i nr budynku). Prowadzi to do bałaganu w bazie danych. Dlatego należy kolumnę adres rozbić na kilka kolumn tak, aby każda z nich zawierała tylko jedną informację. Poniżej przedstawiam poprawnie zaprojektowaną bazę danych.access-dobrze-zaprojektowana-tabela

Rozbijając pole adres na pola: Ulica, NrBudynku, Kod i Miasto łatwiej nam będzie w przyszłości np. stworzyć kwerendę, która wyświetli nam tylko te firmy, które mają swoje siedziby w Warszawie. Dodatkowo można by było rozbić kolumnę Osoba kontaktowa na dwie kolumny: w jednej z nich by było imię osoby kontaktowe a w drugiej nazwisko osoby kontaktowej (dzięki temu np. łatwiej nam będzie wyłowić same kobiety, aby móc im 9 marca złożyć życzenia). Kolejna rzecz, którą można poprawić to rozbić pola NrBudynku na NrBudynku i NrLokalu (jest to przydatne, gdybyśmy chcieli np. policzyć czy są jakieś firmy mające siedzibę w tym samym budynku, ale w różnych lokalach).

Zasada #2: Wartości, które się często powtarzają powinny być zapisane w osobnych tabelach

Poniżej przedstawiam projekt tabeli z powyższego przykładu:

projekt-tabeli-adresy

Jak widzimy miasto zostało zapisane jako Tekst, czyli za każdym razem ręcznie trzeba wpisać np. Warszawa. Warto jest stworzyć osobną tabelę o nazwie Miasta i do niej można wpisać miasta, w których są siedziby naszych klientów. Następnie należy za pomocą kreatora odnośników połączyć ze sobą tabele tAdresyMiasta.

Dlaczego jest to ważne? Otóż jeśli sekretarka będzie wpisywać miasta ręcznie, to za którymś razem może popełnić „literówkę” i zamiast Warszawa wpisze Warsawa (brak literki z). Na skutek tej literówki kwerenda, która ma za zadania wyłowić wszystkie firmy mające siedzibę w Warszawie nie wyświetli nam tej pechowej firmy, gdyż ma ona siedzibę w Warsawie a nie w Warszawie. Dodatkowo inna sekretarka wprowadzająca dane może stosować skróty np. Wawa W-wa itp. zamiast pełnej nazwy.

Zasada #3: Nie zapisuj w bazie danych wartości, które możesz obliczyć

Oto prosty przykład tabeli zawierającej ceny produktów:

tabela-produkty

Kolumny Cena nettoCena brutto są w formacie Walutowym.

projekt-tabeli-produkty

To rozwiązanie ma kilka wad:

  1. Osoba wprowadzająca produkty musi dwukrotnie wpisywać cenę (niepotrzebna praca)
  2. Podczas wpisywania ceny brutto musi na kalkulatorze pomnożyć cenę netto przez 1,23 i ją przepisać. Istnieje ryzyko popełnienia „literówki” np. zamiast 123 zostanie wpisana liczba 124 i cena brutto nie będzie odpowiadała cenie netto.
  3. Podczas aktualizacji cen ktoś może zaktualizować tylko cenę netto zapominając o cenie brutto (lub odwrotnie).

Prędzej czy później powstaną w bazie danych rozbieżności i ciężko będzie stwierdzić, która cena (netto czy brutto) jest prawidłowa. Dlatego należy tutaj zastosować pole obliczeniowe (pola obliczeniowe w tabelach zostały wprowadzone w wersji 2010). Wtedy unikniemy głupich błędów a dodatkowo zaoszczędzimy sporo czasu na wpisywaniu cen, gdyż program Access automatycznie na podstawie ceny netto obliczy nam cenę brutto.

Jeśli artykuł Ci się podobał, będę wdzięczny gdy go udostępnisz w mediach społecznościowych
Ten wpis został opublikowany w kategorii podstawy i oznaczony tagami , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.