Co to jest relacyjna baza danych? [Zamknięte]


9

Jestem głównie administratorem systemu i nie pracuję bezpośrednio z bazami danych innymi niż ich instalowanie, konfigurowanie kont, przyznawanie uprawnień i tak dalej. Uświadomiłem sobie, że jeśli Szef podszedł do mnie i zapytał: „Co to jest relacyjna baza danych?” Prawdopodobnie nie potrafię udzielić zadowalającej odpowiedzi ... Być może wymamrotałbym coś o przechowywaniu i organizowaniu danych według kategorii, które można wyszukać za pomocą specjalnego języka programowania (np. SQL).

Więc czy ktoś mógłby dać dobrą „odpowiedź szefa” na to, czym jest relacyjna baza danych? A może czym różni się od przechowywania danych na serwerze plików? Punkty bonusowe za sprytne, ale dostępne analogie i objaśnianie tabel, kolumn, rekordów i pól. Zdefiniowałbym „Odpowiedź Szefa” jako szybkie (może dwa) akapitowe wyjaśnienie nietechnicznych ludzi ... głównie twojego Szefa, w tych rzadkich przypadkach pytają cię, co robisz przez cały dzień.


2
Nie jestem pewien, czy błąd serwera jest właściwym miejscem na to pytanie, chociaż jest przydatny. Być może DBA.SE lub Programmers.SE .
Orbling

1
Dlaczego szef miałby zadawać takie pytanie, a co ważniejsze, co to ma wspólnego z administracją systemem?
John Gardeniers,

1
@John Gardeniers, Może tu należeć, ponieważ wielu „administratorów systemu” nosi kapelusz „administracji bazami danych”, co oznacza, że ​​dobrze rozumieją działanie RDBMS. Co do tego, dlaczego szefowie zadają pytania, kto wie, ale wiedza na temat jasnego komunikowania koncepcji jest dobrą rzeczą IMO.
Zoredache,

1
@Zoredache, w swojej pracy noszę wiele czapek. To nie znaczy, że wszyscy są na temat SF.
John Gardeniers,

Poniższe odpowiedzi są bardzo dobre, ale pamiętaj, że możesz mieć nierelacyjne bazy danych (takie jak btrieve) i nadal utrzymywać relacje między znormalizowanymi danymi poprzez odpowiednią logikę aplikacji.
Mark Henderson

Odpowiedzi:


16

Relacyjna baza danych nie tylko przechowuje dane : przechowuje relacje między danymi i ułatwia (dobrze, łatwiej) korzystanie z tych relacji. We wczesnych dniach terminologii relacyjnej bazy danych tablice nazywano „relacjami”, ponieważ przechowywano powiązane fragmenty danych (pola, teraz kolumny) wraz z relacjami między tą relacją a innymi relacjami.

Normalizacja jest aktem nieskomplikowanych relacji: „Spraw, aby wszystko było tak proste, jak to możliwe, ale nie prostsze”. (Alan Perlis) Czasami „... ale nie prościej” oznacza, że ​​nie przechowujemy rzeczy w pełni znormalizowanych, ponieważ „prościej” staje się bardziej skomplikowane. (Możesz wyprowadzić stan z kodu pocztowego, ale po co zawracać sobie głowę?)


10

Relacyjna baza danych to metoda strukturyzacji danych, dzięki czemu pojedynczy fakt jest przechowywany w jednym miejscu. Więc jeśli John i Jane Doe oboje pracują dla tej samej firmy, przechowujesz szczegóły unikalne dla firmy w jednym miejscu (stole). W innym miejscu przechowujesz dane unikalne dla Johna i Jane, a na trzecim miejscu przechowujesz relacje Johna i Jane z firmą. W idealnym świecie powinno to oznaczać, że muszę zmienić tylko jedno pole / wiersz, jeśli zmieni się numer faksu firmy.

Proszę zrozumieć, że nie wszystkie bazy danych hostowane w RDBMS są odpowiednio znormalizowane. Kompromisy powstają z powodu wydajności i innych powodów.

Zobacz artykuł o normalizacji bazy danych. http://en.wikipedia.org/wiki/Database_normalization


4

Istnieją dwie główne koncepcje rozróżniania systemów baz danych relacji. Po pierwsze, relacje między elementami są przechowywane. To jest model tabelaryczny danych, wyjaśniony przez analogię arkusza kalkulacyjnego. RDBMS stają się bardziej złożone niż arkusze kalkulacyjne, ponieważ łatwiejszą i powszechną praktyką jest posiadanie wielu odniesień między tabelami lub arkuszami roboczymi (w zależności od tego, z której strony analogii korzystasz).

Po drugie, RDBMS wdrażają ideę transakcji, właściwości ACID

  • atomowość,
  • konsystencja,
  • izolacja i
  • trwałość

Model relacyjny pozwala na uwzględnienie wielu złożonych relacji, wyszukiwanie, sortowanie, grupowanie itd. Model transakcyjny zapewnia, że ​​transakcje odbywają się całkowicie lub wcale, utrzymując spójność i dokładność modelu relacji. Cóż, przynajmniej umożliwienie prawidłowego programowania, aby tak było.


3

Relacyjna baza danych jest jak skoroszyt programu Excel z wieloma wieloma arkuszami i otaczającym środowiskiem oprogramowania w celu optymalizacji wydajności, takich jak indeksowanie i buforowanie, wymuszania bezpiecznego dostępu przez wielu użytkowników jednocześnie i umożliwiania wydajnego przeglądania danych, które mogą być rozpowszechniane w wielu różnych arkuszach.


1

Relacyjne usuwanie danych jest narzędziem do przechowywania i wyszukiwania danych przechowywanych w modelu relacyjnym.

Relacyjny model danych jest budowany według niewielkiej liczby (w zależności od tego, którą książkę czytasz, 4 lub 5 zasad), które zapewniają, że dostęp do danych jest spójny, co pozwala udowodnić poprawność projektu i które pozwala system zarządzania bazą danych (DBMS), który wykonuje większość pracy przy szybkim pobieraniu danych. Zapewnia również narzędzia do formalnego dokumentowania struktury danych - wdrożenie bazy danych w sposób naturalny implementuje większość dokumentacji.

Większość ludzi nie rozumie, dlaczego poprawność jest ważna - oznacza to, że błędy są rzadziej wprowadzane przy opracowywaniu rozwiązania - i że (np. Hg) 2 różnych programistów pracujących w podobnych obszarach jest mniej skłonnych do powielania wysiłków.

Jako odrębny byt od frontonu aplikacji i ze spójnym widokiem struktury danych, zastosowanie systemu zarządzania bazą danych pozwala na korzystanie z różnych narzędzi w frontonie do różnych celów - dzięki czemu możesz znacznie lepiej wykorzystać gotowych komponentów podczas budowania rozwiązania.

Istnieją inne modele niż relacyjny do przechowywania danych - ale żaden inny (z mojego doświadczenia) nie jest bliski zarówno pod względem prostoty, elastyczności, jak i dostępności narzędzi do opracowywania i zarządzania danymi.


1

W 100% nietechniczna odpowiedź:

Relacyjna baza danych to miejsce do przechowywania danych w taki sposób, aby zminimalizować nadmiarowość i umożliwić łatwe wyszukiwanie.

Załóżmy, że baza danych sklepu zoologicznego. Sklep ma przedmioty, ma klientów i ma sprzedaż. Gdybyśmy umieścili to w Excelu, możesz mieć to dla kolumn:

Nazwa klienta | Numer telefonu klienta | Adres klienta | Przedmiot zakupiony | Cena | Data

Pierwsza klientka, pani Smith, kupuje karmę dla kotów:

Nazwa klienta | Numer telefonu klienta | Adres klienta | Przedmiot zakupiony | Cena | Data
Pani Smith | 123-555-1234 | 10 Main St | Karma dla kotów | 15 USD | 2011-03-11

A potem pani Smith chciałaby też zabawkę dla kota:

Nazwa klienta | Numer telefonu klienta | Adres klienta | Przedmiot zakupiony | Cena | Data
Pani Smith | 123-555-1234 | 10 Main St | Karma dla kotów | 15 USD | 2011-03-11
Pani Smith | 123-555-1234 | 10 Main St | Zabawka dla kota | 1 USD | 2011-03-11

Zasadniczo wraca co około 2 tygodnie i kupuje te same rzeczy. Dzięki tej metodzie duplikujesz wiele informacji, co może prowadzić do błędów. Nie można również przechowywać w nim zapasów, musi to być cały inny arkusz Excela i ten będzie musiał być aktualizowany przy każdej sprzedaży.

Dzięki bazie danych moglibyśmy mieć trzy oddzielne podmioty: Klienci (z ich informacjami), Produkty (z opisem i ceną) oraz Sprzedaż (połączenie między klientami a towarami, z datą i ilością).


Warto również wspomnieć o tym: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier

1

Kilka dobrych odpowiedzi technicznych tutaj. Ale mój szef nie zrozumiałby żadnego z nich!

Zacznę od bardzo prostego wyjaśnienia: „Jeśli zapiszesz swoje dane w pliku, pojawi się on jako jedna długa lista. Relacyjna baza danych zapisuje dane bardziej jak mapę lub wykres, więc różne części mapy łączą się ze sobą ...

I przykład - „... na przykład twoje imię i nazwisko prowadzi do twojego adresu, który z kolei może prowadzić do twojego miasta”.

Następnie korzyści biznesowe, na których mu zależy - „Zaletą tego jest to, że pisanie kodu w celu uzyskania skomplikowanych danych jest o wiele tańsze, np.„ Znajdź mnie wszystkich ludzi mieszkających w Seattle o nazwisku Smith ”. Również relacyjne bazy danych są bardzo niezawodne i szybkie ”.

I na koniec stwierdzenie wiarygodności: „Relacyjne bazy danych istnieją od wielu lat, są bardzo dojrzałymi technologiami. Naszym konkretnym produktem jest [nazwa produktu tutaj] ”.


0

Moim szefem jest DBA, ale w kategoriach laików:

Pomyśl o dwóch tabelach w Excelu i funkcji WYSZUKAJ, aby odwoływać się do elementów w jednej tabeli do drugiej. Teraz przeskaluj to co najmniej 10 razy.

To dotyczy poziomu komputera niektórych osób i pracy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.