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

Czy naprawdę lepiej jest używać znormalizowanych tabel?

To zależy… dołączanie do stołów jest z natury wolniejsze niż posiadanie jednego dużego stołu, który jest „wstępnie połączony”, czyli zdenormalizowany. Jednak poprzez denormalizację spowodujesz duplikację danych, a Twoje tabele będą większe. Normalizacja jest postrzegana jako dobra rzecz, ponieważ tworzy bazy danych, które mogą odpowiedzieć na „dowolne” pytanie, jeśli jest prawidłowo wykonana, możesz zbudować selekcję, aby dostać się do swoich danych. Inaczej jest w przypadku niektórych innych form DB, a teraz są to (w większości) historyczne nieistotności, znormalizowany/relacyjny DB wygrał tę bitwę.

Wracając do twojego pytania, używanie denormalizacji w celu przyspieszenia rzeczy jest dobrze akceptowaną techniką. Zwykle najlepiej jest uruchomić bazę danych na jakiś czas, aby wiedzieć, co denormalizować, a co zostawić w spokoju. Często pozostawia się dane w „poprawnej” znormalizowanej formie i pobiera dane do zestawu zdenormalizowanych raportów stoliki na bieżąco. Jeśli ten proces jest wykonywany jako część samego raportu, dane są również zawsze aktualne.

Jako przykład nadmiernej normalizacji widziałem w przeszłości bazy danych, w których dni tygodnia i miesiące w roku były wyciągane do oddzielnych tabel – same daty zostały znormalizowane – możesz posunąć się za daleko.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak rozwiązać błąd ORA-01427 (podzapytanie jednowierszowe zwraca więcej niż jeden wiersz)?

  2. Najlepsze zapytanie, aby trafić na indeks Oracle z wiązaniami i wartościami null

  3. Oracle PL/SQL:Jak wydrukować typ tabeli

  4. Czy kolejność tabel, do których odwołuje się klauzula ON w JOIN, ma znaczenie?

  5. Dlaczego nie mogę użyć mojego typu zdefiniowanego przez użytkownika Oracle w ten sposób?