Bazy danych Prawdopodobnie najczęściej używany typ oprogramowania Służą do gromadzenia, przetwarzania i udostępniania informacji Najprostsza baza danych: kartka z tabelkami, np. Lista pracowników firmy (Imię, Nazwisko, Stanowisko, data_ur, data_zatr, Nr_leg) Lista płac (Imię, Nazwisko, Kwota) itd. Przetwarzanie danych tego typu wymagało pracy urzędników. Pierwsze próby automatyzacji wyszukiwania informacji: Karty perforowane – sortery to maszyny, które umożliwiały sortowanie tych kart (pierwsze pojawiły się pod koniec XIX w) Karty obrzeżnie dziurkowane Ułatwiały mechaniczne wyszukiwanie informacji, Na obrzeżu karty zawierającej zapisaną treść mieściły się male otworki. Mechanicznie wycinano papier łączący otworek z brzegiem kartki szyfrując w ten sposób informację o zawartości karty. Karty wkładano do pudełka tak by otwory ustawiły się w jednej linii. Nastepnie przez wybrane otwory wprowadzano sztywne druty i wyjmowano z pudełka karty, których otwory nie zostały przecięte. Komputery umożliwiły gromadzenie i przetwarzanie ogromnych ilości informacji Komputerowa baza danych to program, który pozwala zapisywać na dyskach tabele z danymi, przeszukiwać zapisaną informację i wprowadzać zmiany do tej informacji. Wiekszość dużych baz danych pracuje w systemie klient-serwer, tzn. użytownicy bazy na swoich maszynach mają oprogramowanie klienta, które pozwala nawiązać łaczność z serwerem przechowującym informację i wykonującym jej przetwarzanie. Podstawowe pojęcia: Baza danych składa się z tabel (ang. Table) Wiersze tabeli to tzw. rekordy (ang. Record) Rekordy składają się z tzw. pól (ang. Field), śa to odpowiedniki kolumn w tabeli Pola w rekordzie mają unikalne nazwy(w danej tabeli nie mogą wystąpić identycznie nazwane pola/kolumny), pola przechowują pojedyncze dane w rekordzie, w wiekszości przypadków pola mają taką samą długość (liczbę bajtów) Typowe dane: - liczby (całkowite lub rzeczywiste) – budując tabelę możemy określić dozwolony zakres wartości tych liczb - znakowe – ciągi znaków (np. nazwiska) – typowy rozmiar to zwykle ok. 50 znaków - daty – zapisy dat i ew. czasu (rok, miesiąc, dzień, godzina, minuta, sekunda) - logiczne (Prawda/Fałsz, Tak/Nie) - walutowe (liczby i symbole waluty) - notatnikowe (memo) – dłuższe teksty (np. bazach Microsoftu (MS Access) – 65 500 znaków, tj. ok. 32 strony tekstu, zwykle są to teksty niesformatowane - binarne – zapis dźwięku, film - grafika (rysunki) - obiektowe – pole zawiera obiekty tworzone przez inne programy, np. sformatowane teksty MS Word, W każdej tabeli jedno z pól rekordu pełni rolę tzw. klucza (ang. Key) – wymagane jest aby klucze w poszczególnych rekordach (wierszach) tabeli były niepowtarzalne. Niekiedy, w złożonych bazach może zajść potrzeba zdefiniowania kluczy pomocniczych – wtedy kombinacja klucza głównego i kluczy pomocniczych zapewnia unikalność. Najczęsciej spotykamy tzw. relacyjne bazy danych Relacje określają charakter powiązań pomiędzy tabelami Najczęściej spotykane relacje: Jeden-do-wielu – jeden rekord z tabeli X jest powiązany z wielu w tabeli Y, odwrotnie rekordowi z Y odpowiada tylko jeden rekord z X. Np. Jeden pracownik, opisany w tabeli Pracownicy nadzoruje wiele operacji sprzedaży produktów opisanych w tabeli Sprzedaż Jeden-do-jednego – jedno pole z tabeli X ma tylko jeden odpowiadający mu rekord w tabeli Y Sytuacja taka pojawia się raczej rzadko, zwykle wtedy gdy jedna z tabel zawiera bardzo ważne informacje i należy ją chronić Typowe operacje w bazie: - sortowanie – porządkowanie rekordów wg zawartości jednego z pól - zapytanie/kwerenda – (ang. Query) – pozwala wyszukać informację w bazie. Wymaga podania nazw pól i określenia interesujących nas wartości. Zwykle służy do tego specjalny język lub narzędzia graficzne (okienko, w kórym wpisujemy nazwy pól i interesujące nas wartości danych. Podajemy również jakie pola z rekordów, które spełniły kryteria wyszukiwania powinny pojawić się jako wynik zapytania. Zwykle możliwe jest również wykonanie na tych polach działań takich jak sortowanie, obliczenie średniej wartości, sporządzenie wykresu itp. Większość nowoczesnych baz danych pracuje pod kontrolą języka SQL (Special Query Language) Dane do bazy możemy wprowadzać albo w trybie tabeli (stosowane zwykle przy automatycznym wprowadzaniu dużej ilości danych) albo w trybie formularza – zwykle stosowanym przy ręcznym wprowadzaniu danych. Na ekranie pojawia się obraz z polami, w których możemy obejrzeć dane, dokonać ich zamiany lub wprowadzić nowe dane do odpowiednich pól. Większość dużych baz danych operuje pojęciem tzw. roli, czyli uprawnienia do wykonywania określonych operacji w bazie. Np. kasjer w banku może wykonywać tylko ograniczony zakres czynności, np. wpisywać kwoty wpłat i wypłat, od poniedziałku do piątku w godzinach pracy. Nie wolno mu wymazać rekordu z listy Klienci, takie uprawnienia może mieć np. kierownik oddziału. Zakładanie nowej bazy danych, dodawanie nowych tabel, zmiana organizacji rekordów, nadawanie uprawnień dostępu, tworzenie kopii bezpieczeństwa bazy to domena tzw. administratora bazy danych Ze względu na organizację możemy mieć tzw. bazy scentralizowane – cała baza mieści się na jednym serwerze i bazy rozproszone – informacja jest rozdzielona pomiędzy pewną liczbę współpracujących serwerów (np. w dużych bankach informacje o kontach klientów mogą być przechowywane w komputerach lokalnych oddziałów). Jeżeli klient banku pojawi się w innym mieście i chce wykonać operację na swoim koncie to lokalny komputer połączy się z odpowiednim oddziałem i pobierze dane niezbędne do wykonania operacji po czym prześle dane przeprowadzonej operacji (np. wypłaty) do maszyny na której prowadzone jest konto klienta. Bazy przechowujące ważne informacje często pracują w tzw. trybie przyrostowym, tzn. nie wymazuje się informacji nieaktualnych tylko przechowuje się wszystkie rekordy, także „historyczne”, np. baza studentów uczelni może przechowywać dane osób, które już dawno ją ukończyły. Bazy banków mogą przechowywać informacje o operacjach finansowych sprzed lat – np. na użytek sądów. Takie „archiwalne” dane są zwykle przechowywane na bardziej powolnych urządzeniach, np. na taśmach magnetycznych. Typowy program „biurowej” bazy danych to MS Access, wchodzący w skład pakietu Microsoft Office – koszt jego zakupu to kilkaset złotych Bazy danych dla przedsiębiorstw są znacznie droższe: licencja takiej bazy jak. Np. Oracle, czy DB/2 może kosztować kilkadziesiąt tysięcy USD. Koszt zależy od liczby klientów tzn. liczby jednoczesnych połaczeń z bazą, wielkości serwera, zapewnienia pomocy producenta oprogramowania. Koszt poj. klienta, czyli programu pozwalającego na połączenie się z bazą To zwykle 100-200 USD. Istnieje również pewna liczba baz, które można skopiować z Internetu i używać bez ponoszenia opłat – np. mySQL, PostgresSQL, występują zarówno w wersjach freeware jak i komercyjnych (w tym drugim przypadku kupuje się zwykle dodatkowe oprogramowanie ułatwiające zarządzenie bazami oraz pomoc ze strony osób, które wytworzyły oprogramowanie), zwykle sa to kwoty rzędu setek USD. Np. magazyny f-my Siemens są zarządzane przy użyciu mySQL.