Tabele bazy danych dla wygody sklepu pięć normalnych formularzy

Tabele bazy danych dla wygody sklepu pięć normalnych formularzy
To jest piąta i ostatnia część serii, pięć normalnych form. W tej części serii samouczka wszystkie tabele mają modyfikację na tabeli produktów. Wyjaśniono również, w jaki sposób obliczany jest zysk lub strata z bazy danych.

Ta seria samouczka następuje po fabule, która jest następująca: ojciec właśnie umarł i zostawił trochę pieniędzy dla swojego syna. Syn postanowił zainwestować pieniądze w sklep wygody. Sklep jest już zaopatrzony, a sprzedaż klientom już się zaczęła.

Na początku branży zarówno syn, który jest właścicielem, jak i jego pracownicy, zwani Clerks w tej serii samouczków, nie wiedział nic o normalnych formach.

Ty, czytelnik, zakończyłeś tę pięć normalnych serii samouczków formularzy, a także jesteś programistą bazy danych. Właścicielem jest twój przyjaciel. Odwiedziłeś sklep cztery razy, raz dziennie, w ciągu ostatnich czterech dni. W ciągu pierwszych trzech dni uczyłeś zarówno właściciela, jak i jego pracowników o 1NF, 2NF i 3NF.

Wczoraj odwiedziłeś tylko właściciela w jego biurze i wyszkoliłeś go na BCNF, 4NF i 5NF. Dzisiaj odwiedziłeś tylko właściciela, aby poprawić tabelę produktów, przedstawić wszystkie tabele i wyjaśnić, jak obliczyć zysk lub stratę.

Najpierw podsumowujesz zasady dla wszystkich normalnych form.

Zasady normalnej formy

Teoretycznie można stworzyć tabelę i okazuje się być w piątej normalnej formie, ponieważ każda normalna forma ma zasady, które nie powinny być naruszone w przeciwieństwie do zasad, które należy wdrożyć. Jednak tabela jest sprawdzana od pierwszego, drugiego, trzeciego, Boyce Codd, czwarta i do piątych normalnych form.

Tabela jest w 1NF, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Wszystkie kolumny w tabeli powinny mieć unikalne nazwy nagłówka.
  2. Każda komórka musi mieć tylko jedną wartość.
  3. Wartości przechowywane w kolumnie powinny być tego samego typu.
  4. Rzędy powinny być wyraźne.
  5. Kolejność kolumn lub kolejności wierszy nie ma znaczenia.

Tabela jest w 2nf, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Tabela musi być już w pierwszej normalnej formie.
  2. Nie musi być częściowej zależności.

Tabela jest w 3NF, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Powinien już znajdować się w drugiej normalnej formie.
  2. Nie powinien mieć zależności przechodniej.

Tabela jest w BCNF, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Tabela powinna już znajdować się w trzeciej normalnej formie.
  2. Żaden atrybut nieprime (kolumna) nie powinien zależeć od części złożonego klucza podstawowego.

Tabela jest w 4NF, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Jest już w normalnej formie koddującej boyce.
  2. Tabela nie ma żadnej zależności wieloosobowej.

Tabela jest w 5nf, jeśli żadna z poniższych zasad nie jest naruszona:

  1. Jest już w czwartej normalnej formie.
  2. Tabela nie ma zależności.

Na dowolnym etapie, jeśli tabela nie jest zgodna z formą normalną, tabela jest podzielona w celu dostosowania.

Stoły

Tabela produktów

Tabela produktów, którą dotarliśmy do tej pory, to:

Produkty (ProductID, CategoryID, SuppierId, ProductName, UnitPrice, IllityInstock, ReorderLevel)

CategoryID i dostawca to klucze zagraniczne, które są odpowiednio takie same jak główne klucze tabeli kategorii i tabeli dostawców.

Ta tabela jest w 5nf, jeśli wartość jednostkowa i ilość. Nawet dostawca określonego produktu może się zmienić. Jednak dla uproszczenia zmiana dostawcy nie zostanie rozwiązana w tym samouczku. Cena jednostkowa dla każdego produktu zmienia się w czasie, choć powoli. W tej chwili cena jednostkowa dla wielu produktów na całym świecie wzrosła z powodu wojny Rosji-Ukraila. Ponieważ klienci indywidualne kupują w sklepie, zmienia się ilość w akcjach (ogranicza się najpierw przed uzupełnieniem). Ilość konkretnego produktu w magazynie jest sumą tego, co jest na półce i co jest w sklepie (kopia zapasowa). Dla uproszczenia ta separacja nie jest dokonana w tej serii samouczków.

Z tymi zmieniającymi się kolumnami ta tabela jest teraz w 1NF. Tabela musi zostać podzielona na dwie.

Stoły dla dzieci stają się:

Produkty (produktId, CategoryID, SuppierId, ProductName, ReorderLevel)

I

ProductStates (UnitPrice, IllityInstock)

Nowa tabela nazywa się Stanami Produktu. Potrzebuje własnego identyfikatora, a także identyfikatora produktu. Tabela powinna być:

ProductStates (ProductStateID, ProductID, data, jednostka, ilość

ProductStateID jest automatycznie zbliżony, zaczynając od 1. Kolumna daty dodaje się, aby wskazać, kiedy nastąpiła zmiana. Kluczem podstawowym tabeli ProductStates jest klucz złożony składający się z produktStateID i produktdID. Dwie tabele są połączone przez kolumnę ProductID. Tabela ProductStates jest w 2NF, ponieważ nie ma częściowej zależności. W każdym z jego wierszy albo wartości daty, wartości jednostkowej lub ilościowe określają oba klucze. W rzeczywistości oba tabele są teraz w 5NF, ponieważ żadne z nich nie narusza żadnej z zasad normalnej formy.

Jeśli dwa poprzednie tabele nie są przechowywane w komputerze z kopią zapasową, powinny być przechowywane w księdze. Pierwsza połowa księgi może mieć tabelę produktów, a druga połowa może mieć tabelę ProductStates. Tabela ProductStates rośnie z czasem.

Do prawego końca tabeli produktów można dodać zaprzestaną kolumnę typu boolowskiego, aby wskazać, czy produkt został przerwany; to znaczy sklep nie zajmuje się tym konkretnym produktem.

Tabele produktów i reszta tabel w bazie danych znajdują się teraz w piątej normalnej formie.

Tabela dostawców

Notacja tabeli dla tabeli dostawców to:

Dostawcy (dostawca, nazwa, telefon, adres, miasto, region, kod pocztowy, kraj)

Jeśli ta tabela nie jest przechowywana w komputerze z kopią zapasową, powinna być przechowywana w księdze. Można dodać kolumnę daty, aby wskazać pierwszy dzień, w którym dostawca zaręczył. Można również dodać zaprzestaną kolumnę.

Tabela klientów

Notacja tabeli dla tabeli klientów to:

Klienci (CustomerId, CustomerName, telefon, adres, miasto, region, kod pocztowy, kraj)

Jeśli ta tabela nie jest przechowywana w komputerze z kopią zapasową, powinna być przechowywana w księdze. Można dodać kolumnę z datą, aby wskazać pierwszy dzień, w którym klient zaręczył się ze sklepem wygodnym.

Jeden klient może być dla przechodniów: ludzie, którzy odwiedzili miasto i przebywają w hotelach, wakacyjnych, turystach itp.

Sprzedawanie stolików

Trzy stoły sprzedaży to:

Sprzedaż (SaleId, datesold, CustomerId, EmployeEID)
Saledetails (SaleId, produktId, jednostki jednostki, ilość, pożyczki, zniżka)
CategoryDelivery (CategoryID, CustomerID, kategoria, transport)

Kolumna pożyczkowa typu boolean jest wprowadzana w tabeli Saledetails, na wypadek, gdyby można zaufać klientowi. Tylko właściciel powinien zezwolić na pożyczki. W tabeli Dowód kategorii dodaje się kolumna kosztu transportu do i FRO dla dostawy.

Jeśli te tabele nie są przechowywane w komputerze z kopią zapasową, powinny być przechowywane w księdze zwanej księgą sprzedaży. Lewa połowa księgi może być używana do tabel sprzedaży i Saledetails (patrz poniżej). Prawa połowa księgi może być używana do tabeli dostawy kategorii.

Gdyby tabele są przechowywane w księdze, stół Saledetails byłby:

SaleDetails (SaleId, produktId, jednostki, ilość, pożyczki, rabat, totalsold, totallent)

Z kolumnami Totalsold i Totallent dodanych. Te kolumny powinny być wypełnione codziennie pod koniec dnia lub co tydzień pod koniec tygodnia przez ciebie, właściciel.

Jeśli tabele są przechowywane w komputerze z kopią zapasową, oprogramowanie bazy danych (program) obliczy sumy.

Rzędy Saledetails odpowiadające rządowi sprzedaży są zwykle więcej niż jeden. Tak więc dla lewej połowy księgi sprzedaży lewa strona otwartej księgi ma dane sprzedaży, a właściwa strona ma dane dotyczące sprzedaży, w następujący sposób:

Tabela sprzedaży/saledetails

Jeśli klient przyszedł i zapłacił za niektóre produkty i pożyczył inne, powinny to być dwa saledetails. total_sold = u.S.P x Ilość. Podobne obliczenia odbywa się dla total_lent. Wielkie sumy dla Totasold i ogółem, dla dolnej części stołu można obliczyć pod koniec dnia lub pod koniec tygodnia lub końca miesiąca, w zależności od częstotliwości sprzedaży. Wszystkie sumy powinny być obliczane przez Ciebie, właściciela, który pełni funkcję menedżera.

Zamawia tabele

Tabele zamówień to:

Zamówienia (OrderId, datesold, dostawca, pracownik)
OrderDetails (OrderId, ProductID, UnitCostPrice, ilość, zniżka)

Jeśli te tabele nie są przechowywane w komputerze z kopią zapasową, powinny być przechowywane w księdze zwanej księgą zakupu. W takim przypadku tabela OrderDetails powinna być:

OrderDetails (OrderId, ProductID, UnitCostPrice, ilość, pożyczka, rabat, ogółboga, całkowita zabura)
Z dodatkowymi kolumnami z pożyczkami, całkowitymi i całkowitymi.

Jeśli sklep zapłacił za niektóre zamówienia i pożyczył niektóre, powinny to być dwa Orderdetails.

Tutaj nie ma odpowiedniej tabeli dostawy. Zapisy dotyczące zamówień i zamówień powinny być dokonywane w księdze zakupu w podobny sposób, że sprzedaż i saledetails są dokonywane w księdze sprzedaży.

Wszystkie tabele w 5NF

Księga produktów

Produkty (produktId, CategoryID, SuppierId, ProductName, ReorderLevel)
ProductStates (ProductStateID, ProductID, data, jednostka, ilość

Dostawcy Ledger

Dostawcy (dostawca, nazwa, telefon, adres, miasto, region, kod pocztowy, kraj)

Księga klientów

Klienci (CustomerId, CustomerName, telefon, adres, miasto, region, kod pocztowy, kraj)

Księga sprzedaży

Sprzedaż (SaleId, datesold, CustomerId, EmployeEID)
SaleDetails (SaleId, produktId, jednostki, ilość, pożyczki, rabat, totalsold, totallent)
CategoryDelivery (CategoryID, CustomerID, kategoria, transport)

Zamówienia Ledger

Zamówienia (OrderId, datesold, dostawca, pracownik)
OrderDetails (OrderId, ProductID, UnitCostPrice, ilość, pożyczka, rabat, ogółboga, całkowita zabura)

Rachunek zysków i strat

Wyciąg zysków i strat to sprawozdanie finansowe, które pokazuje dochody i wydatki firmy. Pokazuje również, czy firma zarabia zysk, czy strata przez dany okres. Wyciąg zysków i strat jest składany co miesiąc lub kwartalnie. Kwartalnik oznacza co trzy miesiące: marzec, czerwiec, wrzesień, grudzień. To stwierdzenie powinno być przechowywane we własnej księdze.

Główne elementy zysku i strat

Te elementy są tutaj opisane w odniesieniu do sklepu wygody.

Przychód

Inną nazwą przychodów jest sprzedaż. To jest pierwsza sekcja wyciągu zysków i strat. Jest to kwota wszystkich, co zostało sprzedane w tym okresie (Grand Total for Totalsold kolumna).

Koszt sprzedawanych produktów

Powinna to być druga sekcja wyciągu zysków i strat. Jest to koszt wszystkich produktów sprzedawanych w tym okresie (Grand Total for Total Kolumna).

Zysk brutto

To jest:

Zysk brutto = przychód - Cost_of_products

na okres.

Zyski

Jeśli sprzedany jest nieużywany pojazd, to jest zysk (patrz amortyzacja na następującej ilustracji). Zysk z zysku nieprzewidzianej umowy, zamawiając i dostarczając partii napoje i herbatniki. Działalność biznesowa takiej umowy nie jest rejestrowana w poprzednich księgach.

Wydatki

Komisja, którą podajesz pracownikowi za sprzedaż więcej, jest przykładem wydatków. Wkład emerytalny dla pracownika jest przykładem kosztów. Długi, które klienci są winni, możesz tu pójść. Długi, które jesteś winien dostawcom, mogą również iść tutaj.

Wydatki reklamowe

Pieniądze opłacone za reklamowanie sklepu wygody lokalne stacje radiowe i telewizyjne, media społecznościowe itp.

Koszty administracyjne

Czynsze dla apartamentu sklepowego, pensje personelu, w tym twoje, właściciel (kierownik), dostawy biurowe (komputery, telefony, księgi, długopisy itp.), Transport dostawy i inne koszty podróży itp.

Deprecjacja

Komputer można kupić, kupiono półkę, kupiono stół itp. Amortyzacja oznacza, że ​​podzielisz koszt każdego z takich urządzeń w ciągu życia sprzętu (aż do tego, że nie będziesz już potrzebować aktywów).

Przegrywać

Ustalenie pozwu klienta jest przykładem utraty.

Zarabianie przed opodatkowaniem

Zarysowania_bore_taxes = all_incomes - all_expense

Podatki

Wszelkie podatki zapłacone w tym okresie.

Dochód netto

Net_income = (przychody + zyski) - (wydatki + straty)

Aby rozwinąć działalność, oszczędności powinny pochodzić stąd.

Przykład wyciągu zysków i strat

Dochód netto w tej hipotetycznej tabeli wynosi 1000 USD, co jest bardzo dobre!

Wniosek

Minimalna liczba tabel z minimalną liczbą kolumn w 5NF podano w przykładzie dla sklepu wygodnego. Jak określić również zysk lub stratę.

Ty, deweloper bazy danych mówi: „Doszliśmy do końca programu szkoleniowego. Oboje mamy 30 lat. Nadal mamy przed sobą nasze życie (dorosły). Podczas wakacji trenowałem ciebie i twoich facetów. Oszczędzam pieniądze na założenie własnej firmy oprogramowania za około dziesięć lat. Mogę również instalacja i tworzenie sieci komputerów."

Właściciel, syn zmarłego człowieka, reaguje: „Boże, chęć, skomputeryzuję mój biznes za sześć miesięcy. Jeśli zysk w wysokości 1000 USD miesięcznie będzie kontynuowany po usunięciu wynagrodzenia, będę oszczędzał. Za maksymalnie dziesięć miesięcy będę mieć supermarket w centrum komercyjnym. Mam nadzieję, że za około sześć miesięcy dam ci umowę na zakup i zainstalowanie komputerów, umieszczenie sieci i programowanie."

Właściciel kontynuuje: „Znasz mnie. Zarezerwowałem niektóre pieniądze, które mój ojciec zostawił mi, aby skomputeryzować sklep. Teraz Brytyjczycy mówią: „Praca bez gry sprawia, że ​​Jack jest nudnym chłopcem”. Więc zarezerwowałem również trochę pieniędzy na rozrywkę. W ten sobotni wieczór zapraszam cię do najdroższej restauracji w mieście, aby zjeść najdroższe jedzenie i pić najdroższy napój, aby uczcić naszą przyjaźń i nasze obecne osiągnięcia (trening)."

Wieczorem idą do restauracji. Po odejściu zrobili piątkę, aby komunikować się za pośrednictwem wiadomości e-mail.