Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy Informatyki Przechowywanie i wyszukiwanie danych. Wprowadzenie do baz danych Nowak Sławomir Źródła: Fascynujący świat komputerów W Duch Wikipedia.

Podobne prezentacje


Prezentacja na temat: "Podstawy Informatyki Przechowywanie i wyszukiwanie danych. Wprowadzenie do baz danych Nowak Sławomir Źródła: Fascynujący świat komputerów W Duch Wikipedia."— Zapis prezentacji:

1 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)http://aragorn.pb.bialystok.pl/~wkwedlo/OS1-10.pdf

2 Przechowywanie informacji 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łą! 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ć.

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

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

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

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 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. Systemy przechowywania informacji

8 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. Najprostsze przypadki…

9 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. Najprostsze przypadki…

10 Rodzaje pamięci

11 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 Rodzaje pamięci systemów informatycznych

12 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). Pamięci typy RAM Artykuł o pamięciach RAM:

13 Przykłady pamięci typy RAM

14 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. Pamięci typy ROM

15 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 Pamięci masowe

16 Pliki i systemy plików

17 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. Pojęcie pliku

18 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. Pojęcie pliku

19 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) Pojęcie pliku

20 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ń. Pojęcie katalogu

21 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..\ Pojęcie katalogu

22 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 Pojęcie katalogu

23 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. System plików

24 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. System plików

25 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. System plików

26 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) System plików

27 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 Alokacja bloków danych

28 Fragmentacja dysku

29 Defragmentacja w Windows Vista

30 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). System plików FAT

31 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. Historia systemu FAT

32 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). Historia systemu FAT

33 Parametry systemów FAT

34 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. System NTFS

35 Algorytmy w przechowywaniu i wyszukiwaniu informacji

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

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

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 [%] 2566,77590 Wstawianie2,55,08,555,5 Wyszukiwanie niepomyślne 2,55,08,555,5 Wyszukiwanie pomyślne 1,52,035,5 Współczynnik zapełnienia [%] 2566,77590 Wstawianie1,52,035,5 Wyszukiwanie niepomyślne 1,52,035,5 Wyszukiwanie pomyślne 1,41,61,82,6 Przykładowe wyniki dla podwójnego mieszania

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). System Bazy danych Baza danych DBMS Schemat Aplikacja

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 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 Rodzaje baz danych

53 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. Rodzaje baz danych

54 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. Rodzaje baz danych

55 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. Rodzaje baz danych

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

57 Relacyjne bazy danych

58 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 Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa NowakPiotrDębowa MaliniakStefanBukowa GrabowskaJaninaBrzozowa 1 Id_indeksu OcenaPrzedmiot 1234(1234), (3214)5Bazy danych 3211(3211), (4327)b. dobryBazy danych 3211(3211), (4327)b. dobryBazy danych STUDENCI ZALICZENIA spełnia reguły nie spełnia reguł

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 Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa NowakPiotrDębowa MaliniakStefanBukowa GrabowskaJaninaBrzozowa 1 Id_indeksuOcenaPrzedmiot 12345Bazy danych 32114Bazy danych 32113Matematyka STUDENCI ZALICZENIA Klucz główny Klucz obcy Klucz główny 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 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. Relacyjne bazy danych

65 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. Relacyjne bazy danych

66 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. Relacyjne bazy danych

67 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. Relacyjne bazy danych

68 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: Relacyjne bazy danych

69 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. Relacyjne bazy danych

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

71 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). Normalizacja baz danych

72 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). 1NF

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. Id_produktuWymiarNazwa_producenta Id_produktuWymiarId_producentaNazwa_producenta Może być wiele produktów tego producenta

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

75 Struktura bazy danych

76 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: IdImięNazwiskoPESELPensja 1JanTopa MonikaStachura MichałPosek JanMara AnnaRożek PRACOWNICY Na podstawie: dr P. Drozda (http://matman.uwm.edu.pl/~pdrozda/bazy.html )

84 Wyszukiwanie - selekcja SELECT * FROM Pracownicy WHERE pensja>3000; IdImięNazwiskoPESELPensja 2MonikaStachura MichałPosek SELECT * FROM Pracownicy WHERE Nazwisko LIKE %ra% AND Pensja BETWEEN 1000 AND 2500; IdImięNazwiskoPESELPensja 4JanMara 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; IdImięNazwiskoPESELPensja 4JanMara AnnaRożek 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 JanTopa MonikaStachura MichałPosek JanMara AnnaRoż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 SELECT DISTINCT Imie FROM Pracownicy; SELECT * FROM PRACOWNICY ORDER BY imie, placa DESC; Imię Jan Monika Michał Anna IdImięNazwiskoPESELPensja 5AnnaRożek JanMara JanTopa MichałPosek MonikaStachura 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; IdImięNazwiskoPESELPensja 5AnnaRożek JanMara IdImięNazwiskoPESELPensja 4JanMara AnnaRożek 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. Wprowadzenie do baz danych Nowak Sławomir Źródła: Fascynujący świat komputerów W Duch Wikipedia."

Podobne prezentacje


Reklamy Google