Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Projektowanie bazy danych i modelowanie określonych relacji

Przypuszczalnie ciężarówka i/lub trucker ma zadanie polegające na przejściu sekwencji zdarzeń, która obejmuje podążanie ścieżką oraz dokonywanie dostaw i transakcji itp. Przypuszczalnie praca to takie zdarzenie, którego jest kilka rodzajów, np. odbiór, transfer i odbiór.

Tabele w relacyjnej bazie danych opisują stan aplikacji. Każda tabela ma skojarzoną instrukcję wypełnienia (nazwanych-) pustych miejsc (predykat). Predykaty tabeli bazowej są podane przez projektanta:

// truck [truck_id] has code [truck_code] and ...
TRUCK (truck_id, truck_code, ...)
// product [product_id] has code [product_code] and name [product_name] ...
PRODUCT (product_id, product_code, product_name, ...) 

(Predykat charakteryzuje relację aplikacji, aka relację, reprezentowaną przez tabelę, aka relację, stąd "model relacyjny".)

Parametrami predykatu są kolumny tabeli. Gdy podasz wartości dla każdego parametru, otrzymasz oświadczenie (propozycję), która jest prawdziwa lub fałszywa na temat Twojej aplikacji. Wiersz wartości dla kolumn daje takie wartości dla każdego nazwanego pustego miejsca. Wiersze, które sprawiają, że predykat tabeli jest prawdziwy, trafiają do tabeli. Wiersze, które dają fałsz, pozostają na zewnątrz. W ten sposób stan bazy danych opisuje sytuację aplikacji. Musisz znać instrukcje tabel, aby czytać lub przeszukiwać bazę danych, aby dowiedzieć się w poszczególnych wierszach, co jest prawdą, a co fałszem o sytuacji i zaktualizować bazę danych, umieszczając w niej dokładnie te wiersze, które zawierają prawdziwe propozycje po zaobserwowaniu sytuacji .

Każde zapytanie ma również predykat zbudowany z predykatów jego tabel. JOIN dwóch tabel daje wiersze, które spełniają AND ich predykatów, UNION OR itd. Oraz wynik zapytania zawiera również wiersze, które spełniają jego predykat .

(Ograniczenia są z tym nieistotne; po prostu zbiorczo opisują stany bazy danych, które mogą powstać z powodu predykatów i stanów aplikacji, które mogą powstać.)

Musisz zdecydować się na wystarczające predykaty, aby móc w pełni opisać konstytucje twojej aplikacji. Obejmuje to abstrakcyjne rzeczy, takie jak trasy i transakcje, wydarzenia, harmonogramy i przypisania itp. (Gdy mamy wystarczającą liczbę predykatów/tabeli, ulepszamy je za pomocą technik takich jak normalizacja).

Kiedy mogą istnieć różne rodzaje rzeczy, mówimy o nadtypach i podtypach i widzimy predykaty, takie jak (użyję słowa „praca”, które uważam za wydarzenie):

// job [job_id] for trucker [trucker_id] is ... stuff about all jobs ...
JOB(job_id, trucker_id...)
// job [job_id] is a pickup with ... stuff about pickups ...
PICKUP(job_id, container_id...)
// job [job_id] is a transfer with ... stuff about transfers
TRANSFER(job_id,...)
...

(Możesz mieć inne lub dodatkowe pojęcie transferu jako zdarzenia z co najmniej dwoma powiązanymi kontenerami itp.) (Wyszukaj „podtypy”. Np. )




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunek wyzwalania we wszystkich wierszach

  2. Ustawianie parametrów języka Oracle dla DG4ODBC

  3. Nie można wywołać procedury składowanej Oracle z narzędzia do tworzenia raportów SSRS 3.0

  4. Przygotuj dane testowe na Oracle za pomocą kolumny blob

  5. Jak przeanalizować prosty fragment kodu XML w Oracle PL/SQL i załadować go do globalnej tabeli tymczasowej?