Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy Informatyki Przechowywanie i wyszukiwanie danych

Podobne prezentacje


Prezentacja na temat: "Podstawy Informatyki Przechowywanie i wyszukiwanie danych"— Zapis prezentacji:

1 Podstawy Informatyki Przechowywanie i wyszukiwanie danych
Podstawy Informatyki Przechowywanie i wyszukiwanie danych. Wprowadzenie do baz danych Nowak Sławomir Źródła: „Fascynujący świat komputerów” W Duch Wikipedia Wojciech Kwedlo, Wykład z Systemów Operacyjnych (http://aragorn.pb.bialystok.pl/~wkwedlo/OS1-10.pdf)

2 Przechowywanie informacji
Informację na ogół trzeba zapamiętać. W zależności od ilości i rodzajów informacji sposoby zapamiętywania będą się różnić. Co dzień na głowę wody kubełek oraz na trąbie zrobić supełek". I chlust go wodą! Sekundę trwało I w supeł związał trąbę wspaniałą!

3 Przechowywanie informacji
Jak dużo informacji chcemy przechowywać? czy

4 Przechowywanie informacji
Jak szybko możemy zapisać informacje? Czy mamy tyle czasu? A może ważna jest trwałość?

5 Przechowywanie informacji
Jak szybko odczytać informacje? Na takiej żółtej karteczce Był numer telefonu szefa…

6 Przechowywanie informacji
Nawet w ujęciu systemów komputerowych problem przechowywania informacji jest bardzo złożony i szeroki!!!!!!!! Pamięci fizyczne: wewnętrzne, zewnętrzne…, systemy plików Struktury danych Systemy baz danych

7 Systemy przechowywania informacji
Jednym z najważniejszych zadań stawianych przed systemami informatyki jest przechowywanie i szybkie wyszukiwanie informacji (zapisanych w formie cyfrowej). Tradycyjnie rolę tę pełniły biblioteki. Ocenia się, że Biblioteka Kongresu Narodowego w USA zawiera około 25 Terabajtów informacji. Tylko część tych informacji (około 5%) dostępna jest w formie cyfrowej.

8 Najprostsze przypadki…
Zapisanie niewielkiej ilości informacji nie wymaga specjalistycznych systemów. Wystarczy edytor tekstów, aby utworzyć spis adresów, telefonów itp. Edytory pozwalają na proste operacja na zapisanych danych: sortowanie wierszy wg. alfabetu, wyszukiwanie prostych fraz itp. Dla prostych przypadków tworzy się też specjalizowane systemy, np. bazy PIM (Personal Information Manager), pozwalające na przechowywanie np. kilkustet pozycji adresowych.

9 Najprostsze przypadki…
Wraz ze wzrostem ilości informacji rośnie także ich złożoność obliczeniowa. Informacje są często ze sobą w różny sposób powiązane. Często uzyskanie efektu, w postaci np. raportu wymaga bardzo wielu operacji i wielokrotnego przetwarzania zgromadzonych danych. To także rośnie złożoność obliczeniowa takich operacji. Logiczne powiązanie pomiędzy danymi nazywa się rekordem.

10 Rodzaje pamięci

11 Rodzaje pamięci systemów informatycznych
Współczesne komputery zapamiętują wyłącznie binarne stany odpowiadające zerom i jedynkom. Fizycznie stany te odpowiadają napięciom w tranzystorach, polu magnetycznemu albo optycznej przezroczystości nośnika danych. Podstawą zapamiętywania w komputerach są często układy scalone. Pamięć ta określona jest przez swoją wielkość, wyrażoną w bajtach (kb, Mb, Gb, Tb itd.), a także przez szybkość operacji zapisu i odczytu. Ważnym parametrem jest cena. Rodzaje pamięci: RAM (Random Acces Memory) – pamięć o dostępnie swobodnym; ROM – (Read Only Memory) – pamięć tylko do odczytu Pamięci masowe

12 Pamięci typy RAM Pamięci typu RAM tworzą podstawową przestrzeń adresową komputerów. W pamięci RAM przechowywane są aktualnie wykonywane programy i dane dla tych programów oraz wyniki ich pracy. Zawartość większości pamięci RAM jest tracona kilka milisekund po zaniku napięcia zasilania. Pamięci RAM dzieli się na pamięci statyczne (ang. Static RAM, w skrócie SRAM) oraz pamięci dynamiczne (ang. Dynamic RAM, w skrócie DRAM). Artykuł o pamięciach RAM:

13 Przykłady pamięci typy RAM

14 Pamięci typy ROM ROM (ang. Read-Only Memory - pamięć tylko do odczytu) - rodzaj pamięci urządzenia elektronicznego, w szczególności komputera. Zawiera ona stałe dane potrzebne w pracy urządzenia - np. procedury startowe komputera. Z pamięci jej dane można tylko odczytywać. Są w niej zachowane pewne podstawowe dane , które muszą zostać zachowane nawet jeśli urządzenie nie jest zasilane. W normalnym cyklu pracy urządzenia pamięć ta może być tylko odczytywana. Przygotowanie, poprzez zapis informacji do pamięci, wykonywane jest w zależności od rodzaju pamięci. Można wyróżnić kilka typów: * Właściwe ROM - pamięci tylko do odczytu. Ten typ pamięci programowany jest przez producenta w trakcie procesu produkcyjnego. * PROM (ang. Programmable ROM) - programowalna pamięć tylko do odczytu. Jest to pamięć jednokrotnego zapisu. Pierwsze pamięci tego typu były programowane przez przepalenie cieniutkich drucików wbudowanych w strukturę (tzw "przepalanie połączeń"). * EPROM (ang. Erasable Programmable ROM) - kasowalna pamięć tylko do odczytu. Pamięć do której zaprogramowania potrzebne jest specjalne urządzenie, zwane programatorem PROM (PROM Programmer albo PROM Burner). Pamięci tego typu montowane są zazwyczaj w obudowie ceramicznej ze szklanym "okienkiem" umożliwiającym skasowanie poprzez naświetlanie ultrafioletem. * EEPROM (ang. Electrically Erasable Programmable ROM) - pamięć kasowalna i programowalna elektrycznie. Wykonywana w różnych postaciach (np. jako FLASH), różniących się sposobem organizacji kasowania i zapisu.

15 Pamięci masowe Pamięć masowa – pamięć trwała, przeznaczona do długotrwałego przechowywania dużej ilości danych w przeciwieństwie do pamięci RAM i ROM. Pamięć masowa zapisywana jest na zewnętrznych nośnikach informacji. Nośniki informacji zapisywane i odczytywane są w urządzeniach zwanych napędami. Nośniki magnetyczne: dyski stałe - pamięć o dostępie bezpośrednim; nośniki danych zainstalowane w macierzach dyskowych Napędy optyczne: CD-ROM płyty DVD Pamięci półprzewodnikowe (pozbawione części mechanicznych), karty pamięci

16 Pliki i systemy plików

17 Pojęcie pliku Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych), o skończonej długości, posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całość. Atrybuty plików: ● Nazwa pliku ● Rozmiar ● Właściciel ● Prawa dostępu ● Czasy (utworzenia/ostatniego dostępu/ostatniej modyfikacji). ● Hasło ● Inne informacje, z reguły niedostępne dla programu użytkownika.

18 Pojęcie pliku Obiekty w pamięci masowej można podzielić na kilka rodzajów: katalogi (stosuje się też nazwy foldery lub kartoteki) - (ang. directory) zawierające spis odwołań do innych plików (w tym także do katalogów), dowiązania symboliczne - (ang. symbolic link) odwołanie do innego pliku; większość operacji na tego typu plikach będzie w rzeczywistości wywoływane na plikach, na które one wskazują pliki wykonywalne (ang. executable files), zawierające program do wykonania lub polecenia dla systemu operacyjnego.

19 Typowe operacje na plikach:
Pojęcie pliku Typowe operacje na plikach: Utworzenie (ang. create) Usunięcie (ang. delete) Otwarcie (ang. open) – przygotowanie pliku do dostępu. Zamknięcie (ang. close) – wskazanie, że dostęp do pliku nie będzie dalej potrzebny. Odczyt (ang. read) (do bufora w pamięci procesu) Zapis (ang. write) (z bufora w pamięci procesu) Przesunięcie wskaźnika bieżącej pozycji (ang. seek) (operacje read oraz write wykonują odczyt oraz zapis z miejsca wskazywanego przez wskaźnik bieżącej pozycji; wartość wskaźnika jest zwiększana o liczbę odczytanych lub zapisanych bajtów). Operacja seek pozwala na dostęp swobodny do pliku (ang. random access). Dołączenie (ang. append) – zapis na końcu pliku Odczyt/Zmiana atrybutów (w tym nazwy)

20 Pojęcie katalogu W przypadku tysięcy plików na dysku proste nadawanie nazw nie wystarcza (np. wiele plików o identycznej nazwie, różne wersje tego samego programu). Ludzie mają tendencję do grupowania informacji związanych ze sobą. Systemy informatyczne umożliwiają to przy pomocy katalogów (ang. directory), zwanych także folderami. Grupowanie pozwala na. – Łatwiejsze znalezienie plików. – Określenie, które pliki są ze sobą związane. Operacje na katalogach: – Głównie odczyt i przeszukiwanie katalogu. – Także tworzenie nowych dowiązań.

21 Pojęcie katalogu Najczęściej spotykane są katalogi o strukturze drzewa: Lokalizacja pliku podana przez ścieżkę. – Scieżka bezwlględna: Początek w korzeniu drzewa. c:\users dir c:\ – Ścieżka względna: Początek w katalogu aktualnym. c:\users dir ..\

22 Pojęcie katalogu Format podanej ścieżki zależy od systemu operacyjnego. W systamch typu UNIX (LINUX) katalog jest reprezentowany przez ukośnik (ang. slash "/"), pełna ścieżka do pliku twierdza.avi (przykład powyżej) wygląda następująco: /home/ciapek/filmy/twierdza.avi W przypadku systemów Windows oraz DOS katalog jest reprezentowany przez lewy ukośnik (ang. backslash "\"), a pełna ścieżka do pliku twierdza.avi w tym systemie wygląda następująco: C:\Documents and Settings\ciapek\moje dokumenty\filmy\twierdza.avi

23 System plików Pliki i katalogi są pojęciami logicznymi i abstrakcyjnymi. W systemie informatycznym musi istnieć mechanizm odwzorowujący pliki i katalogi w fizycznej przestrzeni nośnika danych. Taki mechanizm nazywany jest systemem plików. System plików – reguły przechowywania plików, katalogów, zarządzania, informacjami o tych plikach, tak by dostęp do plików i katalogów był łatwy dla użytkownika systemu Sposób zagospodarowania pamięci dotyczy wielu urządzeń: telefonów komórkowych, aparatów fotograficznych, odtwarzaczy mp3. Każde z nich posiada określony system plików.

24 System plików We współczesnych systemach operacyjnych bezpośrednie operowanie na danych w plikach zarezerwowane jest tylko dla systemu operacyjnego. Aplikacje mają dostęp tylko do operacji na plikach i mają zabroniony bezpośredni dostęp do nośnika danych. Większość systemów operacyjnych posiada własny (macierzysty) system plików, rozwijany równolegle z nim (np. FAT w DOS-ie, NTFS w Microsoft Windows NT), ze względu na pewne specyficzne właściwości nadawane plikom (np. atrybut wykonywalności pliku). Same systemy operacyjne często potrafią obsługiwać wiele systemów plików.

25 System plików Nośniki danych, takie jak dyski twarde, dyskietki, karty pamięci posiadają liniową, blokową strukturę danych. Dane są w nich przechowywane w postaci bloków, a blok musi być w całości zapisywany i odczytywany (bloki te nazywane są sektorami). Mają taką samą wielkość (przeważnie 512 bajtów). Bloki tworzą strukturę liniową: Blok 0 Blok 1 Blok 2 Blok 3 … Blok n Systemy operacyjne łączą bloki w klastry. Klaster składa się z kilku bloków (może to być np. minimum 8 lub więcej bloków). Dyskowy system plików część pamięci wykorzystuje na tzw. sektor rozruchowy (boot sector), który nie stanowi zasadniczej części systemu plików i jest używany do rozruchu systemu. Ponadto systemy plików przechowują listy wszystkich klastrów (oraz informacje do których plików one należą) w tzw. tablicach alokacji. Sektor – w informatyce, najmniejsza fizyczna jednostka zapisu danych na dyskach twardych, dyskietkach i innych nośnikach danych naśladujących dyski. Sektor jest zapisywany i czytany zawsze w całości. Ze względów historycznych wielkość sektora wynosi 512 bajtów. Na nośnikach magnetycznych w momencie formatowania nośnika na dysku zapisywane są znaczniki początków sektorów, za którymi zapisywane są dane. Znaczniki i dane sektora poprzedzone są zapisanym sygnałem synchronizującym, a zakończone danymi umożliwiającymi rozpoznanie poprawności odczytu (CRC). Sektor jest częścią ścieżki (ścieżka ang.track) dysku.

26 System plików Bloki rozruchowe (boot blocks) zawierają kod ładujący system operacyjny do pamięci. Każda partycja zawiera odrębny system plików (mogą to być systemy różnych typów). Tablica partycji zawiera informacje o podziale dysku na partycje (początek i koniec) Super blok zawiera informacje ogólne o systemie plików (np. całkowita liczba bloków danych, całkowita liczba plików)

27 Alokacja bloków danych
Najczęściej stosowana jest tzw. tablica alokacji plików Numery bloków przechowywane są w odrębnej tablicy (FAT). Specjalne znaczniki na blok wolny (w) i ostatni blok pliku (-1). Tablica może znajdować się (w części lub w całości) w pamięci RAM, co zwiększa wydajność, zwłaszcza operacji seek. Uszkodzenie tablicy FAT może prowadzić do utraty całego systemu plików. Potencjalnie bardzo duży rozmiar tablicy np. 80MB dla dysku 20GB Problem fragmentacji Fragmentacja – niekorzystne zjawisko, zachodzące w systemie plików, polegające na pojawianiu się nieciągłości obszarów zapisanych i niezapisanych na dysku twardym komputera. Ich przyczyną jest niedoskonała budowa systemu plików, usuwanie i dodawanie nowych plików oraz zmiany, polegające na dopisywaniu i skracaniu plików już istniejących. Niektóre systemy plików wykazują bardzo małą odporność na fragmentację. Wynika to z mało przemyślanych algorytmów, sterujących alokacją danych na sektorach dysku twardego. Przykładem takiego systemu plików jest FAT. Fragmentacją określa się także zapisywanie poszczególnych plików na oddalonych od siebie sektorach, co powoduje duże opóźnienia w czasie ich odczytu lub zapisu. Skutki fragmentacji [edytuj] Najpoważniejszym skutkiem fragmentacji systemu plików jest spadek wydajności operacji na plikach. Duża fragmentacja zmusza do częstej kalibracji głowicy dysku twardego, co jest czasochłonne.

28 Fragmentacja dysku

29 Defragmentacja w Windows Vista

30 System plików FAT FAT (ang. File Allocation Table) – system plików powstały pod koniec lat 70. Zastosowany w systemach operacyjnych, m.in. DOS i Windows. W czasach gdy projektowane nośniki danych miały niewielką pojemność (dyskietka np. 180kB), z biegiem czasu obsługiwane były coraz większe nośniki. Aktualnie istnieją cztery rodzaje FAT: FAT12 FAT16 FAT32 exFAT (FAT64) Podstawowa różnica między nimi to liczba bitów, na których koduje się numery jednostek alokacji plików (klastrów). Liczbę tę podaje się jako wyróżnik w nazwie systemu w FAT (podana w nazwie).

31 Historia systemu FAT System plików FAT został pierwszy raz zastosowany w 1980 roku razem z pierwszą wersją MS-DOS. Pierwsza wersja FAT oznaczana jest jako FAT12. Jako system plików przeznaczony dla dyskietek miał on wiele ograniczeń. Brakowało w nim wsparcia dla katalogów. Adresy klastrów miały tylko 12 bitów, co ograniczało rozmiar partycji do ok 2Mb (dla 1 klastra = 1 sektor = 512 b). W tym czasie dyskietki miały 360Kb. W roku 1983 Microsoft wprowadził nową wersję FAT razem z MS-DOS 2. Nowy system plików powstał z myślą o dyskach twardych i pozwala już na tworzenie katalogów. Adresy klastrów były 16-bitowe, co dawało teoretycznie numerów. Dla rozmiaru klastra 512 bajtów można było uzyskać całe 32MiB pojemności. FAT16 doskonale nadaje się do 10-20MiB dysków z komputerów XT. Pliki identyfikowano za pomocą 8-literowej nazwy oraz 3-literowego rozszerzenia, np. plik1234.txt. Nazwa mogła zawierać tylko znaki alfanumeryczne, _ i -. W samym systemie plików kropka (.) nie jest częścią nazwy, jednak używa się jej w systemie w celu odróżnienia nazwy podstawowej od rozszerzenia.

32 Historia systemu FAT Następnie zwiększeniu uległ rozmiar klastra, (do 8192 bajtów). W efekcie można było stworzyć system plików o „zawrotnym” rozmiarze 512MiB. Niestety taki zabieg spowodował pojawienie się bardzo silnej fragmentacji. Jeżeli ktoś zapisał plik o rozmiarze 1 bajta, to w systemie FAT16 zajmował on cały 8192-bajtowy klaster. W ten sposób marnowało się 8191 bajtów miejsca na dysku. W roku 1997 rozmiar partycji FAT16 stał się zbyt mały. Klaster nie mógł być większy niż 32KiB, co dawało partycje o maksymalnej pojemności do 2Gb. Microsoft wprowadził nową wersję FAT32, zawierającą teoretycznie 32-bitowe numery klastrów. W rzeczywistości jednak ograniczenia napisanego przez Microsoft programu ScanDisk spowodowały wprowadzenie ograniczenia do klastrów, co dawało maksymalną partycje o rozmiarze ok Gb. FAT32 jest obsługiwany przez systemy od wersji Windows 95. Inne systemy operacyjne, jak OS/2, MacOS, Linux, FreeBSD, oraz BeOS też zostały wyposażone w obsługę FAT, FAT32 oraz VFAT (długie nazwy plików).

33 Parametry systemów FAT

34 System NTFS Obecnie system FAT jest zastępowany w produktach Microsoft przez NTFS, który jest wydajniejszy i pewniejszy. NTFS (ang. New Technology File System - "system plików nowej generacji") - standardowy system plików systemu Microsoft Windows NT i jego następców (Windows 2000, Windows XP, Windows Server 2003 i Windows Vista). NTFS został wprowadzony w celu zastąpienia FATu, używanego jeszcze w MS-DOS. Ulepszenia w stosunku do FATu obejmują dodanie struktur poprawiających szybkość pracy z dużą liczbą plików oraz dyskami o dużej pojemności. Dalsze ulepszenia (w stosunku do HPFS) polegają na wprowadzeniu listy kontroli dostępu (ACL) i dziennika operacji dyskowych.

35 Algorytmy w przechowywaniu i wyszukiwaniu informacji

36 Sposoby reprezentacji danych
Przykład drzewa Przykład kolejki Dane numeryczne: całkowite, „rzeczywiste” posiadają określony zakres i dokładność Tablice Listy Stosy Kolejki Drzewa Grafy Przykłady list Przykład grafu Przykłady tablic Przykład stosu

37 Przechowywani informacji w strukturach danych
Omawialiśmy proste operacje wyszukiwania w tablicach (np. minimum, maksimum). Do zastanowienia: Jaka będzie złożoność operacji wyszukiwania (dla różnych przypadków)? 15 [0] 5 [1] -1 [2] 12 [3] 55 [4] 51 [5] 8 [6] [7]

38 Przechowywani informacji w strukturach danych
W wielu zastosowaniach użyteczne są struktury danych, na których można wykonywać operacje słownikowe takie jak wstaw, usuń, szukaj o możliwie najmniejszej złożoności. Takim przykładem są struktury z funkcjami mieszającymi, na których złożoność operacji wyszukiwania jest O(1). Struktury takie realizujemy w oparciu o tablice lub listy.

39 Tablice i funkcje mieszające
Tablice mieszające przechowują dane w tablicy. Dane nie są jednak umieszczane na kolejnych wolnych pozycjach tablicy, lecz na pozycjach (indeksach) wyznaczonych przez funkcję mieszającą. Funkcją mieszającą może dowolna funkcja, która odwzorowuje dane jakie mają być przechowywane w tablicy w liczbę całkowitą z przedziału [0, a-1], gdzie a jest rozmiarem tablicy. Funkcja ta powinna także spełniać dodatkowe warunki: • łatwa do obliczania; • przypominać funkcję losową, tzn. każda z wartości z przedziału [0, a-1] powinna być jednakowo prawdopodobna; • dla podobnych danych funkcja powinna zwracać różne wyniki.

40 Tablice i funkcje mieszające
Aby umieścić daną w tablicy należy w oparciu o funkcję mieszająca wyznaczyć indeks, pod którym ta dana się znajdzie. Np. Tablica A. Rozmiar a=8, liczby do wstawienia całk. {15, 5, 13, 1, 8, 9}. Funkcja mieszająca: h(x)=x mod 8; Mamy: dla 15 i 5 pozycje 7 i 5. Problem z liczbą 13, która trafia także pod indeks 5. Taką sytuację nazywamy kolizją. [7]->[15] [6]->[ ] [5]->[5 ] [4]->[ ] [3]->[ ] [2]->[ ] [1]->[ ] [0]->[ ] Kolizję rozwiązujemy jedną z metod przezwyciężania kolizji.

41 Tablice i funkcje mieszające
Metoda łańcuchowa przezwyciężania kolizji: Elementy przechowywane są w listach na poszczególnych indeksach. Kiedy wystąpi kolizja, element po prostu wstawiamy na koniec listy. W powyższym mamy następujące rozwiązanie (dla {15, 5, 13, 1, 8, 9}): [7]->[ ]->15 [6]->[ ] [5]->[ ]->13->5 [4]->[ ] [3]->[ ] [2]->[ ] [1]->[ ]->9->1 [0]->[ ]->8 A jak wygląda złożoność poszczególnych operacji (wstawianie, usuwanie) dla tej metody? Czy można ułożyć „złośliwe” ciągi danych.

42 Tablice i funkcje mieszające
Adresowanie liniowe (funkcja h(x,i)). W tej metodzie nie stosuje się list. Dane przechowywane są w tablicy, umieszcza się w kolejnych pozycjach wskazanych przez funkcje mieszające kolejnych rzędów h(x,i). Z tego powodu liczba danych tablicy może być równa co najwyżej a. Zdefiniowana jest więc rodzina funkcji mieszających h(x,i) dla i=0, 1, 2, 3… , gdzie i=0 odpowiada funkcji znanej z metody łańcuchowej. Pozostałe funkcje mogą być zdefiniowane następująco: h(x,i) = (h(x,0) + i) mod a Przy implementacji tablicy trzeba także odwzorować wartości specjalne, takie jak: pole puste, do którego nie wstawiono jeszcze żadnego elementu, oraz pole usunięte, z którego element został usunięty. Przez rozpoczęciem tablica powinna być zerowana (wszystkie pola ustawiane jako pola puste)

43 Tablice i funkcje mieszające
Metoda liniowa przezwyciężania kolizji: Elementy wstawiamy na kolejnych pozycjach. W powyższym mamy następujące rozwiązanie (dla {15, 5, 13, 1, 8, 9}): [7]->[ ]->15 [6]->[ ]->13 [5]->[ ]->5 (kolizja dla 13) [4]->[ ] [3]->[ ] [2]->[ ]->9 [1]->[ ]->1 (kolizja dla 9) [0]->[ ]->8 Jak wygląda złożoność poszczególnych operacji (wstawianie, usuwanie) dla tej metody?

44 Tablice i funkcje mieszające
Inne metody: Adresowanie kwadratowe Metoda adresowania kwadratowego jest ulepszeniem adresowania liniowego. Korzysta się z rodziny funkcji mieszających, zdefiniowanych następująco: dla i=1, 2, 3…a-1. gdzie h(x,0) odpowiada funkcji mieszającej z metody łańcuchowej. Podwójne mieszanie Funkcja mieszająca jest zdefiniowana następująco: , dla i=1, 2, 3…a-1. gdzie h1 i h2 są pomocniczymi funkcjami mieszającymi. Funkcja h1 odpowiada funkcji h z metody łańcuchowej. Doskonałe funkcje mieszające

45 Przykładowe wyniki dla adresowania liniowego
Współczynnik zapełnienia [%] 25 66,7 75 90 Wstawianie 2,5 5,0 8,5 55,5 Wyszukiwanie niepomyślne Wyszukiwanie pomyślne 1,5 2,0 3 5,5 Przykładowe wyniki dla podwójnego mieszania Współczynnik zapełnienia [%] 25 66,7 75 90 Wstawianie 1,5 2,0 3 5,5 Wyszukiwanie niepomyślne Wyszukiwanie pomyślne 1,4 1,6 1,8 2,6

46 Systemy baz danych

47 Baza danych to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych. W potocznym ujęciu obejmuje dane oraz program komputerowy wyspecjalizowany do tworzenia i przetwarzania tych danych.

48 Oprogramowanie służące do tworzenia baz danych nazywa się „systemami oprogramowania do zarządzania bazami danych” (DBMS – Data Base Management Systems). Aplikacja System Bazy danych DBMS Aplikacja Aplikacja Schemat Baza danych

49 Pojęcie pola Informacja przechowywana w bazach danych ma pewną strukturę, w której daje się wyróżnić typowe elementy, które można poklasyfikować. W ten sposób tworzy się pola, zawierające informacje określonego typu, np. numer telefonu, nazwisko, stan konta. Każde pole zawiera więc dane określonego typu (liczby całkowite, daty, wartości logiczne, ciągi znaków itp. Istnieje też pojęcie atrybutu: jest to ogólne określenie pola i jego typu. Na przykład atrybut: nazwisko, wartość pola: Nowak

50 Pojęcie rekordu Logicznie elementami bazy danych są rekordy podzielone na kilka pól, w których są przechowywane informacje poszczególnych kategorii. Na przykład w książce adresowej każdy rekord to zbiór informacji na temat jednej osoby. Składa się on z kilku pól przechowujących takie informacje, jak: imię, nazwisko, adres, numer telefonu itp.

51 Prezentacja danych Najczęściej spotykanym sposobem prezentacji danych jest korzystanie z tabel, składających się z pól i wierszy. W kolumnach mamy dane tego samego typu (pola) a w wierszach kolejne rekordy, np: Uwaga: wewnętrzny sposób przechowywania danych w strukturach danych może być zupełnie inny.

52 Rodzaje baz danych Bazy danych można podzielić według struktur organizacji danych, których używają: Bazy proste : bazy kartotekowe Bazy złożone : Bazy jednorodne bazy relacyjne bazy obiektowe

53 Rodzaje baz danych Zasadnicza różnica występuje pomiędzy bazami jednostanowiskowymi a tworzonymi dla wielu użytkowników (sieciowymi): Konieczność wprowadzenia blokad danych Rozbudowane systemu uwierzytelniania użytkowników Istnieją też rozproszone bazy danych.

54 Rodzaje baz danych Bazy kartotekowe
W bazach kartotekowych każda tablica danych jest samodzielnym dokumentem i nie może współpracować z innymi tablicami. Z baz tego typu korzystają często programy typu: książka telefoniczna, książka kucharska, spisy książek, kaset i inne. Wspólną cechą tych baz jest ich zastosowanie w jednym wybranym celu.

55 Rodzaje baz danych Relacyjny model danych
W bazach relacyjnych wiele tablic danych jest powiązanych ze sobą. Bazy relacyjne posiadają wewnętrzne języki programowania, wykorzystujące zwykle SQL do operowania na danych, za pomocą których tworzone są zaawansowane funkcje obsługi danych.

56 Rodzaje baz danych Bazy obiektowe
Zamiast tabel przechowywane są „obiekty” a zamiast relacji wykorzystuje się oddziaływania pomiędzy obiektami.

57 Relacyjne bazy danych

58 Relacyjne bazy danych Relacja – struktura danych w modelu relacyjnym (w uproszczeniu – tabela) Cechy relacji: jednoznaczna nazwa relacji jednoznaczne nazwy kolumn (atrybutów) relacji ten sam typ wartości w jednej kolumnie porządek kolumn w relacji nieistotny niedozwolone powtórzenia wierszy nieistotny porządek wierszy (krotek) wartości atomowe w polach relacji Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

59 Przykłady STUDENCI spełnia reguły ZALICZENIA nie spełnia reguł
Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 2134 Nowak Piotr Dębowa 4 4321 Maliniak Stefan Bukowa 4 3298 Grabowska Janina Brzozowa 1 spełnia reguły ZALICZENIA Id_indeksu Ocena Przedmiot 1234 (1234), (3214) 5 Bazy danych 3211 (3211), (4327) b. dobry nie spełnia reguł Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

60 Definicja danych – klucze główne
każda relacja musi posiadać klucz główny jedna lub więcej kolumn identyfikujących jednoznacznie każdy wiersz tabeli Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

61 Definicja danych Dziedzina – zbiór wszystkich możliwych wystąpień atrybutu (np. ocena_z_egzaminu wartości od 2 do 5 – dziedzina 2-5) – każdy atrybut posiada dziedzinę Klucz obcy – kolumna bądź kolumny będące kluczem głównym w innej tabeli, sposób łączenia tabel (np. numer studenta w tabeli Studenci i w tabeli Zaliczenia) Wartość null – nieznana informacja (np. brak numeru telefonu) Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

62 Przykład STUDENCI Klucz główny Klucz główny ZALICZENIA Klucz obcy
Nr_indeksu Nazwisko Imię Adres 1234 Kowalski Jan Akacjowa 8 2134 Nowak Piotr Dębowa 4 4321 Maliniak Stefan Bukowa 4 3298 Grabowska Janina Brzozowa 1 Klucz główny Klucz główny ZALICZENIA Id_indeksu Ocena Przedmiot 1234 5 Bazy danych 3211 4 3 Matematyka Klucz obcy Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

63 Operowanie danymi Algebra relacyjna – zbiór sześciu operatorów do wyszukiwania danych (selekcja, rzut, złączenie, suma, przecięcie, różnica) Operacje dynamiczne na relacjach INSERT – wstawianie DELETE – usuwanie UPDATE – modyfikowanie Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

64 Relacyjne bazy danych Zabawmy się projektanta baz danych budującego bazę danych dla szkoły. Na początek zrobimy sobie bazę dla jednej klasy. Klasa składa się z kilku osób i tworzy tabelę Uczniowie.

65 Relacyjne bazy danych Każdy uczeń identyfikowany jest w tabeli numerem, który nie powtarza się. Jest to tzw. klucz podstawowy (główny). Kluczem głównym może też być unikalna kombinacja kolumn.

66 Relacyjne bazy danych Stwórzmy tabelę o nazwie przedmioty wraz z odpowiednimi opcjami. Tym razem pierwsza kolumna to klucz główny. W tej kolumnie wartości muszą być unikatowe.

67 Relacyjne bazy danych W szkole, jak to w szkole, uczniowie są oceniani za swoje postępy w nauce Stworzymy więc kolejną tabelę Ocena, w której będą wypisane rodzaje ocen.

68 Relacyjne bazy danych Są uczniowie, są przedmioty, są oceny, więc musi być i jakieś połączenie między nimi. W bazie jest więc tabela wiążąca uczniów z przedmiotami. Załóżmy, że jest środek semestru. Na każdej lekcji różni uczniowie byli pytani na stopnie z różną częstotliwością. Jasio ma np. 2 stopnie z matematyki, 1 z fizyki itd.. Nasza tabela PrzedmiotUczeńOcena będzie wyglądać tak:

69 Relacyjne bazy danych W modelu relacyjnym dane przechowywane są w wielu odrębnych, ale powiązanych tabelach. Tabele powinny mieć strukturę określoną przez model relacyjny, na drodze tzw. normalizacji.

70 Relacyjne bazy danych Zaleta modelu relacyjnego:
zapobieganie tworzeniu duplikatów Wada: skomplikowane i wolne odczytywanie danych

71 Normalizacja baz danych
Normalizacja to proces przekształcenia struktury bazy danych. Podstawowa struktura bazy danych obejmuje trzy formalne fazy (postacie): 1NF, 2NF i 3NF. Normalizacja może być czasami procesem skomplikowanym, lecz brak normalizacji (lub niepełna normalizacja) naraża bazę danych na problemy (anomalie, błędy).

72 1NF Pierwsza postać normalna. Jej jedynym warunkiem jest aby każda składowa w każdej krotce była atomowa (nie dawała podzielić się na mniejsze wartości). Przykład: Czy pole adres jest polem atomowym czy nie? Jeśli wiemy, że w czasie operowania na bazie zawsze będziemy potrzebowali całego adresu, to pole adres możemy uznać za atomowe. Jeśli jednak dopuszczamy możliwość, że będziemy potrzebowali tylko samej miejscowości, to wtedy pole adres nie jest już atomowe i nie spełnia 1NF. Należy więc rozbić pole adres, np. na pola: ulica, miejscowość, kod pocztowy (czyli na pola atomowe).

73 2NF Baza jest w 2NF, jeżeli jest w pierwszej postaci normalnej oraz każdy atrybut niekluczowy jest zależny tylko od klucza głównego. Może być wiele produktów tego producenta Id_produktu Wymiar Nazwa_producenta Id_produktu Wymiar Id_producenta Nazwa_producenta

74 3NF 3NF polega na znalezieniu i usunięciu zależności przechodnich pomiędzy atrybutami. Id_produktu Cena_zakupu Wartość Id_produktu Cena_zakupu Id_produktu Wartość

75 Struktura bazy danych

76 Structured Query Language
SQL Structured Query Language

77 Zadania SQL definiowanie danych
przetwarzanie danych (interaktywne i programowe) autoryzacja określanie początku transakcji, potwierdzenie i wycofywanie transakcji inne… SQL upraszcza pracę z relacyjnymi bazami danych oraz umożliwia wydajne przetwarzanie dużych ilości danych. Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

78 Cechy SQL-a Trójwartościowa logika (TRUE, FALSE, UNKNOWN)
Trzy sposoby użycia: Interaktywny lub samodzielny SQL – do wprowadzania lub wyszukiwania informacji Statyczny SQL – stały kod SQL napisany przed wykonaniem programu Dynamiczny SQL – kod generowany przez aplikacje w zależności od wyborów użytkownika Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

79 SQL pozwala określić wynik a nie sposób jego osiągnięcia (jest językiem deklaratywnym, w odróżnieniu od języków proceduralnych). SQL jest językiem interpretowanym.

80 Język SQL opisuje 8 klas instrukcji:
Umożliwiające nawiązanie i zakończenie połączenia z serwerem Sterujące wykonaniem programu Instrukcje mające wpływ na dane; Instrukcje diagnostyczne; Instrukcje mające wpływa na obiekty bazy danych (np. tabele) Instrukcje kontrolujące sesje z użytkownikiem Instrukcje rozpoczynające i kończące transakcje

81 Typy danych: Liczbowe Daty i czasu Znakowe i łańcuchowe Binarne
Dokumenty XML Specjalne znaczenie ma wartość NULL – reprezentuje brakujące, nieznane lub nieistotne dane. Np. cena=NULL nie znacza, że cena=0 !

82 Wyszukiwanie Wybieranie interesujących informacji z jednej lub wielu relacji Najprostsza postać: SELECT * FROM tabela – zwraca wszystkie krotki z tabeli Po SELECT są wymieniane wybrane atrybuty (* - oznacza wszystkie) Po FROM wymieniane są relacje, których dotyczy zapytanie Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

83 Wyszukiwanie – selekcja
SELECT * FROM Tabela WHERE warunek; Zwracane wszystkie krotki spełniające warunek Przykład: PRACOWNICY Id Imię Nazwisko PESEL Pensja 1 Jan Topa 1400 2 Monika Stachura 3400 3 Michał Posek 5400 4 Mara 2000 5 Anna Rożek 2500 Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

84 Wyszukiwanie - selekcja
SELECT * FROM Pracownicy WHERE pensja>3000; Id Imię Nazwisko PESEL Pensja 2 Monika Stachura 3400 3 Michał Posek 5400 SELECT * FROM Pracownicy WHERE Nazwisko LIKE ‘%ra%’ AND Pensja BETWEEN 1000 AND 2500; Id Imię Nazwisko PESEL Pensja 4 Jan Mara 2000 Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

85 Wyszukiwanie - selekcja
Porównywanie wartości za pomocą operatorów =,<>,<,>,>=,<=, != Operacje arytmetyczne – podobnie jak na liczbach Operatory logiczne AND, OR i NOT Operatory LIKE, BETWEEN AND, IN Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

86 Wyszukiwanie - selekcja
Przykład SELECT * FROM Pracownicy WHERE (imie NOT LIKE ‘%M%’ OR imie IN (‘Jan’,’Monika’)) AND id>=3; Id Imię Nazwisko PESEL Pensja 4 Jan Mara 2000 5 Anna Rożek 2500 Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

87 Wyszukiwanie – projekcja
SELECT pole1, pole2,…,polen FROM Tabela; Wyświetla wybrane atrybuty dla poszczególnych krotek Przykład : SELECT imie, nazwisko FROM Pracownicy; Imię Nazwisko Jan Topa Monika Stachura Michał Posek Mara Anna Rożek Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

88 Wyszukiwanie – aliasy, wyrażenia
CONCAT(wyr1,wyr2,…,wyrN) łączy pola w jedno Przykład: SELECT CONCAT(imie, ‘ ‘,nazwisko) FROM Pracownicy WHERE pensja>5000; CONCAT(imie, ‘ ‘,nazwisko) Michał Posek Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

89 Wyszukiwanie – porządek wyświetlania, usuwanie duplikatów
DISTINCT – różne wartości atrybutów ORDER BY pole1 [ASC/DESC], … – ustawia kolejność wyświetlania wyników rosnąco lub malejąco według kolejno wymienionych pól – domyślne ustawienie na rosnąco Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

90 Wyświetlanie - przykład
Imię Jan Monika Michał Anna SELECT DISTINCT Imie FROM Pracownicy; SELECT * FROM PRACOWNICY ORDER BY imie, placa DESC; Id Imię Nazwisko PESEL Pensja 5 Anna Rożek 2500 4 Jan Mara 2000 1 Topa 1400 3 Michał Posek 5400 2 Monika Stachura 3400 Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

91 Wyszukiwanie – ograniczanie liczby wyników
Limit n1, [n2]– ogranicza liczbę wypisanych wyników Gdy podana jedna liczba n – wyświetlonych n wyników Select * From Pracownicy Order by imie limit 2; Gdy dwie liczby – pierwsza oznacza początek wypisania, druga liczbę wierszy Select Imie, Nazwisko from Pracownicy limit 3,2; Id Imię Nazwisko PESEL Pensja 5 Anna Rożek 2500 4 Jan Mara 2000 Id Imię Nazwisko PESEL Pensja 4 Jan Mara 2000 5 Anna Rożek 2500 Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html)

92 Instrukcja SELECT SELECT * FROM Uczniowie
Jeżeli zamiast * wstawimy nazwę jednego lub kilku pól oddzielonych przecinkami, to otrzymamy jako wynik zawartość wyszczególnionych tylko pól. FROM-klauzula ta wskazuje, o które tabele nam chodzi tzn. z których tabel chcemy pobrać dane. W przypadku pobierania danych z kilku tabel, nazwy tabel oddzielamy przecinkami (,).

93 Instrukcja SELECT SELECT * FROM Uczniowie WHERE Imię="Jasio"
Z tabeli Uczniowie zostaną wybrane tylko rekordy, w których pole "Imię" będzie miało wartość "Jasio"

94 Instrukcja SELECT SELECT Uczniowie.Imię, Uczniowie.Nazwisko, PrzedmiotUczeńOcena.Przedmiot, PrzedmiotUczeńOcena.Ocena FROM Uczniowie, PrzedmiotUczeńOcena WHERE PrzedmiotUczeńOcena.Uczeń=Uczniowie.ID AND PrzedmiotUczeńOcena.Przedmiot='Niemiecki' Jeżeli chcemy np.: wybrać uczniów, którzy mają z niemieckiego jakieś stopnie, ale chcemy ponadto znać ich nazwiska i imiona zbudujemy następujące zapytanie dla tabel "Uczniowie" oraz "PrzedmiotUczeńOcena"

95 Instrukcja SELECT SELECT * FROM PrzedmitUczeńOcena WHERE
Przedmiot LIKE "%e%" AND (Uczeń BETWEEN 1 AND 4) AND (Ocena IN (1,2,3) OR Ocena=6) Powyższe zapytanie wybrałoby: wszystkie kolumny tabeli PrzedmiotUczeńOcena z rekordami, w których nazwa przedmiotu zawierać będzie w swojej nazwie "e", uczniowie mają numery od "1" do "4" i posiadają oceny "1", "2", "3" lub "6"

96 Podsumowanie


Pobierz ppt "Podstawy Informatyki Przechowywanie i wyszukiwanie danych"

Podobne prezentacje


Reklamy Google