Komputery bardzo często są wykorzystywane do automatyzowania prostych czynności. Kilka przykładów:
- Portale informacyjne. Komputer służy do wyświetlenia jednej osobie informacji informacji wprowadzonych przez inną osobę. Zapewne nie wszystkich, ale kilku z nich i tylko tych z wybranych kategorii.
- Strony z obrazkami. Komputer służy do wyświetlenia jednej osobie obrazków wprowadzonych przez inną osobę.
- Portale społecznościowe. Wyświetlanie informacji (zdjęcia, opisy, ...) wprowadzonych przez znajomych. Tylko ostatnich kilkunastu, i zazwyczaj posortowanych odwrotnie względem czasu wprowadzenia.
- Program do prowadzenia dziennika szkolnego. Wprowadzanie i wyświetlanie informacji dotyczących ocen dla wybranych klas lub osób. Liczenie prostych statystyk (np. średnia) albo liczba osób w danej klasie lub szkole.
Widać na podstawie wyżej przedstawionych przykładów, że powinno się dać w jakiś sposób wprowadzać do komputera informacje, przechowywać je i udostępniać część z nich. Dlaczego tylko część a nie wszystkie? Gdyby np. portal z informacjami udostępniał na jednej stronie wszystkie wprowadzone do niego informacje, to nawigacja byłaby niemożliwa, a portal byłby niewygodny w obsłudze i nikt by z niego nie korzystał. Dlatego potrzebne są narzędzia, które będą w pozwalać na powiedzenie komputerowi: "pokaż mi ostatnich 10 informacji od moich znajomych posortowanych odwrotnie według daty". Takie narzędzia powstały i jednym z ich rodzajów są relacyjne bazy danych.
Relacyjne bazy danych pozwalają na:
- zapisywanie informacji na dysku komputera,
- utrzymywanie porządku w zapisanych informacjach,
- zadawanie zapytań.
O ile konieczność zapisywania informacji i zadawania zapytań wydają się być niezbędne i jest oczywiste jakie motywacje stoją za tymi czynnościami, to utrzymywanie porządku w ogóle nie wydaje się być niezbędne. Zastanówmy się zatem nad tym po co nam może być potrzebny porządek? Zanim się nad tym zastanowimy, pomyślmy nad następującym przykładem. Powiedzmy, że chcemy zbudować portal, w którym ludzie mogą umieszczać swoje zdjęcia, mogą mieć znajomych i mogą oceniać swoje zdjęcia nawzajem. Zatem będą nam potrzebne informacje o:
- osobach, które mają konta w naszym portalu
- znajomościach pomiędzy osobami (A jest znajomym B)
- zdjęciach
- ocenach zdjęć
Moglibyśmy sobie wyobrazić, że dane o osobach i zdjęciach przechowujemy w arkuszu kalkulacyjnym w dwóch zakładkach:
Osoby
Login | Imię | Nazwisko | |
---|---|---|---|
a | Adam | Kowalski | adam.kowalski@mail.pl |
b | Basia | Nowak | basia.nowak@mail.pl |
c | CYPRIAN | pIĄTEK | http://cyprian.pl |
e | A to mój znajomy | ||
f | :) | nasza-klasa | tralalala |
d | Ewa | Piątek | Basia na belwederskiej |
d | Basia | Piątek | Ewa na belwederskiej |
Zdjęcia
Nazwa | Lokalizacja | Ocena |
---|---|---|
z1 | C:\Zdjecia\z1.png | a: 10, b: 3 |
z2 | C:\Zdjecia\z2.png | a: 7, b: 1, g: 4 |
z3 | :\Zdjecia\z3.png | ale o co chodzi? |
z4 | album na czwartej półce od góry | d: podobało mi się, e: a mi nie |
Jaki porządek możemy chcieć mieć w danych? Np. wyobraźmy sobie, że chcemy, żeby użytkownicy mogli wysyłać do siebie, za pomocą strony maile. No to musimy mieć ich adresy. Ale to nie wystarcza. Te adresy muszą mieć dobrą postać. Np. nie chcemy, żeby ktoś wprowadził "ul. Belwederska 1" jako adres mail. Podobnie nie chcemy, żeby wprowadził "1 2 3" jako swoje imię. A co to za osobę opisuje wiersz czwarty (A teraz moi znajomi). A osoba o loginie d ma na imię Ewa czy Basia? Chcemy mieć zachowane również inne formy porządku. Wymienię kilka z nich:
- znajomości są pomiędzy osobami, które mają konta.
- oceny są dla zdjęć, które istnieją.
- oceny pozwalają na sortowanie zdjęć od najlepszych do najgorszych (
- .... wiele wiele innych
Pomyśl o tym ile nieporządku jest w tych dwóch tabelkach, które zawierają informacje o osobach i zdjęciach. Bazy danych pomagają zachować taki porządek o którym mówiliśmy.