Database
 sql >> Baza danych >  >> RDS >> Database

Jak stworzyć model bazy danych od podstaw

Chcesz stworzyć swój pierwszy model bazy danych, ale nie wiesz, jak zacząć? Czytaj dalej!

Zakładam, że wiesz już trochę o tabelach, kolumnach i relacjach. Jeśli nie, obejrzyj nasze samouczki wideo, zanim przejdziesz dalej.

Zacznij od opisu systemu

Zawsze powinieneś zaczynać tworzenie modelu bazy danych z opisem systemu. W sytuacji szkolnej opis systemu jest podawany przez nauczyciela. W prawdziwym życiu przygotowanie opisu to proces samo w sobie. Po prostu założę, że masz opis. Nie ma znaczenia, czy podarował ci go twój klient, szef, nauczyciel, czy sam to napisałeś.

Spójrz na opis i zaznacz wszystkie rzeczowniki . Rzeczowniki w opisie można z grubsza podzielić na trzy kategorie:tabele, atrybuty i przykłady.

  • Stoły reprezentują podstawowe byty w systemie:ludzi, obiekty fizyczne, zdarzenia, transakcje itp.
  • Atrybuty są właściwościami skojarzonymi z jednostką podstawową. Opisują cechy Twojej jednostki. W modelu bazy danych będą to kolumny w Twoich tabelach.
  • Przykłady są tylko przykładami. Pomagają zrozumieć typy danych niektórych atrybutów i pomagają zrozumieć związek między różnymi podmiotami.

Rozpoczęcie od opisu ma tę zaletę, że zmusza Cię do korzystania z tego samego słowniczka jako użytkownicy. Jeśli tworzysz system dla szkoły podstawowej, powinieneś porozmawiać o uczniach. Jeśli tworzysz podobny system dla uniwersytetu, powinieneś porozmawiać o studentach.

Tabele, relacje, kolumny

  1. Po podświetleniu rzeczowników wskaż tabele . Nie musisz modelować wszystkiego na raz. Najpierw skoncentruj się na podstawowej funkcjonalności systemu.
  2. Kiedy masz już tabele, poznaj powiązania między stołami. Ten krok może prowadzić do wprowadzenia nowych tabel pośrednich (połączeń).
  3. Na koniec dodaj kolumny do stołów.

W tym momencie powinieneś ponownie przeczytać opis i sprawdzić, czy niczego nie brakuje. Zapewniam, że będzie coś do dodania. Dodaj nowe tabele, nowe relacje i nowe kolumny. Przeczytaj opis ponownie...

O czym należy pamiętać

Tworzenie modelu bazy danych jest iteracją proces. Nie próbuj modelować wszystkiego na raz. Zacznij od podstawowych elementów swojego systemu. Możesz dodać więcej szczegółów później.

Możesz zadawać pytania . Bez względu na to, jak dokładny jest opis, zawsze będziesz mieć wątpliwości. Coś zawsze będzie niedookreślone. Zadawaj pytania dotyczące rzeczy, których nie jesteś pewien. Jeśli nie możesz zadawać pytań, zrób rozsądne założenie i zanotuj założenie, które robisz.

Zawsze jest więcej niż jeden sposób modelować każdy system. Niektóre modele są wyraźnie złe, ale w przypadku większości innych trudno jest ocenić, czy mają rację, czy nie. Model zależy od tego, do czego służy system, w jaki sposób dane trafiają do systemu, a nawet od osobistego gustu projektanta. W miarę zdobywania doświadczenia nabierzesz pewności w podejmowaniu decyzji projektowych.

Przykład:system wynajmu samochodów

Jako przykład stworzymy model bazy danych dla systemu wynajmu samochodów. Najpierw spójrz na opis systemu:

Wypożyczalnia samochodów wynajmuje samochody klientom. Firma posiada kilka samochodów. Każdy samochód ma markę, nazwę modelu, rok produkcji, przebieg, kolor itd. Samochody są podzielone na różne kategorie:małe, średnie, duże, limuzyny.

Firma ma wiele lokalizacji, w których można wypożyczyć samochód. Lokalizacje wypożyczalni znajdują się w różnych miastach w całym kraju. W mieście może istnieć więcej niż jedna lokalizacja firmy.

Każdy, kto ukończył 21 lat i posiada ważne prawo jazdy, może wynająć samochód. Klienci w wieku poniżej 25 lat lub powyżej 75 lat płacą inne (wyższe) opłaty niż inni klienci.

Przed wypożyczeniem samochodu klient zazwyczaj dokonuje rezerwacji samochodu. Klient określa daty wypożyczenia samochodu, miejsce odbioru, miejsce zwrotu oraz kategorię samochodu, który chce wynająć. Klient może określić, że chce w samochodzie dodatkowe wyposażenie, np. GPS, fotelik samochodowy dla dziecka itp.

Gdy klient wypożycza samochód, deklaruje miejsce odbioru i nadania oraz datę nadania. Klient może wykupić różnego rodzaju ubezpieczenia. Może również zdecydować, że nie potrzebuje ubezpieczenia, ponieważ ubezpieczenie jest pokryte w inny sposób, na przykład przez wystawcę karty kredytowej. Klient może wybrać dodatkowe opcje, takie jak możliwość wcześniejszego zwrotu, różne opcje tankowania itp.

Klient płaci opłaty, gdy zwraca samochód.

Zaczynamy od zaznaczenia wszystkich rzeczowników: 

Następnym etapem jest znalezienie tabeli . Poszukujemy podstawowych podmiotów w systemie. Na początek powinieneś mieć przynajmniej:samochód, klienta, lokalizację, miasto, wyposażenie, kategorię (samochodową), ubezpieczenie. Umieszczamy je na schemacie. Dodałem id kolumna w każdej tabeli, ponieważ każda tabela powinna mieć jakiś identyfikator. Zawsze możesz zmienić klucz podstawowy później.




Podstawowe encje systemu są w modelu, ale należy zauważyć, że brakuje nam podstawowej funkcjonalności systemu:wynajmu samochodów i rezerwacji. Pamiętaj, co powiedzieliśmy na początku:tabele to nie tylko obiekty fizyczne, ale także zdarzenia i transakcje. Powinieneś dodać reservation i rental jak również stoły. Zaczynamy:




Teraz dodamy referencje między tabelami w modelu. Ponumerowałem referencje w miarę ich dodawania. Notatka obok każdego odnośnika informuje, kiedy został dodany:

  1. Każdy samochód należy do kategorii,
  2. Każda rezerwacja dotyczy kategorii samochodów,
  3. Każda lokalizacja znajduje się w mieście,
  4. Każda rezerwacja ma miejsce odbioru i zwrotu,
  5. Każda rezerwacja jest dokonywana przez klienta,
  6. Każdy wynajem jest dokonywany przez klienta,
  7. Każdy wynajem dotyczy określonego samochodu,
  8. Każdy wynajem ma miejsce odbioru i zwrotu.
  9. Każdy wynajem jest powiązany z jakimś ubezpieczeniem. Ale czy jest tylko jedno ubezpieczenie na każdy wynajem? Nie. Z wynajmem może być wiele ubezpieczeń (ubezpieczenie od uszkodzenia pojazdu, od obrażeń ciała, od uszkodzenia cudzego samochodu, ...). Dodałem tabelę pośrednią o nazwie rental_insurance połączony z rental i insurance stoły.



Nadal brakuje nam odniesienia między samochodem a wyposażeniem. Czy sprzęt jest na stałe przymocowany do samochodu, czy można go przenosić z jednego samochodu do drugiego? W opisie nie ma odpowiedzi na to pytanie, więc przyjmiemy rozsądne założenie:tak, można go przenieść. Dodajemy nową tabelę car_equipment i odniesienia między car i equipment .

Usuwamy company stół. Wypożyczalnia jest domyślnie obecna w systemie. W końcu inna firma będzie miała własny system i własną bazę danych.




Na koniec dodajemy kolumny i ich typy danych. Zauważamy również, że nie ma związku między reservation i equipment . Ale czy rezerwacja dotyczy konkretnego elementu wyposażenia? Nie, jest przeznaczony do typu sprzętu:dodajemy tabelę equipment_category i połącz tabele reservation i equipment do niego.




Skończyliśmy? Przeczytaj opis ponownie. Nasz model bazy danych nadal pomija opłaty. Cóż...

To ćwiczenie dla czytelnika. (Ale jeśli nie masz ochoty ćwiczyć swoich umiejętności modelowania baz danych, tutaj możesz znaleźć gotową do użycia strukturę bazy danych dla wypożyczalni samochodów).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL MIN() dla początkujących

  2. Jak maskować tabele i zachować integralność referencyjną?

  3. Unikanie sortowania za pomocą łączenia łączenia przez scalanie

  4. Instrukcja SQL INSERT INTO

  5. Wszystko, co musisz wiedzieć o normalizacji baz danych