opis - zsowydminy.mazury.edu.pl
Transkrypt
opis - zsowydminy.mazury.edu.pl
Anna Butryn. Wprowadzenie do baz danych – marzec 2009 Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy, to przede wszystkim szybkość przetwarzania danych, ilość dostępnych danych, oszczędność miejsca przechowywania oraz łatwy dostęp do baz typu klient-serwer. W przeszłości projektowanie baz danych było zadaniem bardzo trudnym, przeznaczonym głównie dla specjalistów pracujących na wydajnych dużych komputerach zwanych mainframe. Ogromna popularność, łatwy dostęp do komputerów osobistych i do oprogramowania bazodanowego spowodowały, że wiele osób nie tylko korzysta na co dzień z baz danych, ale też próbuje je samodzielnie tworzyć. Ogólnie projektowanie bazy można podzielić na trzy etapy: 1. Zaprojektowanie logiczne (w sensie logicznym), czyli określenie struktury przyszłej bazy. 2. Implementacja1 projektu logicznego, czyli przeniesienie projektu logicznego do konkretnego pakietu oprogramowania. 3. Stworzenie specjalnej aplikacji, która pozwoli użytkownikowi na komunikację z bazą danych – w tym etapie można określić, jakie czynności może i powinien wykonywać użytkownik, np. wprowadzanie nowych danych, edycja danych już wprowadzonych, drukowanie informacji. Model relacyjnej bazy danych jest obecnie najbardziej popularnym modelem logicznym opisującym bazy danych. Często nawet nie zdajemy sobie sprawy, w jakim stopniu jest on obecny w naszym życiu – od zwykłych zakupów w supermarkecie, przez rezerwację biletu lotniczego, wypożyczenie książki w bibliotece, zakup towaru w sklepie internetowym czy uczestnictwo w kursie prowadzonym metodą e-learningu. Najważniejsze założenia tego modelu to: dane są przechowywane w encjach (tabelach). Każda tabela składa się z krotek (rekordów), oraz atrybutów (pól); kolejność rekordów (czyli ich fizyczne miejsce w tabeli) nie ma znaczenia; każdy rekord jest wyróżniany przez jedno pole zawierające unikatową (czyli nie powtórzoną) dla niego wartość. Tabele Tabela (encja w teorii relacyjnej bazy danych) jest podstawową strukturą relacyjnej bazy danych. Składa się z pól i rekordów. Jest poświecona pewnemu tematowi: może to być obiekt (np. uczeń w szkole, pacjent w przychodzi, pracownik w firmie) lub zdarzenie (np. wypożyczenie książek w bibliotece czy wizyta pacjenta w przychodni). Przykładowa tabela: 1 Słowa implementacja często używa się w informatyce. Tu będzie ono oznaczało przeniesienie czy zastosowanie projektu logicznego w konkretnym programie. Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 1 Anna Butryn. Wprowadzenie do baz danych – marzec 2009 Nr_legitymacji 250 251 252 253 254 255 256 257 Tabela UCZNIOWIE Imię Nazwisko Anna Kowalska Tomasz Nowak Jakub Krakowski Marcin Krakowski Jacek Abacki Waldemar Nowak Mariusz Pilawski Monika Dulik ID_klasy A A D B C A E E Rekordy Pola Pola Pole (zwane atrybutem w teorii relacyjnej bazy danych) to najmniejsza struktura w modelu logicznym. Jest wykorzystywane do przechowywania jednostkowych danych (np. w polu Imię są przechowywane dane: Anna, Tomasz, Jakub). Umieszczenie w każdym polu tylko jednej wartości ułatwia potem sortowanie danych i szybkie wyszukiwanie (np. wszystkich osób o imieniu Anna). Rekordy Rekord (zwany krotką w teorii relacyjnej bazy danych) jest składową w tabeli, reprezentującą pełny, pojedynczy zestaw danych (np. dane jednego ucznia Marcina Kowalskiego). Każdy rekord jest jednoznacznie identyfikowany (w zakresie całej bazy) przez unikatową dla niego wartość pola nazwanego kluczem głównym. W podanej przykładowej tabeli tym kluczem jest pole Nr_legitymacji i wartość 253 jednoznacznie identyfikuje Marcina Kowalskiego. Klucze Każda tabela zawiera wyróżnione pole, które jest nazwane jej kluczem głównym – zawartość tego pola ma jednoznacznie identyfikować każdy z rekordów. W przedstawionym wyżej przykładzie takim polem jest Nr_legitymacji. Jeśli tabele są ze sobą powiązane, można między nimi wprowadzić relację, umieszczając kopię klucza podstawowego jednej z tabel w drugiej tabeli. Nosi on wtedy nazwę klucza obcego, gdyż logicznie tabela ta ma już swój klucz, więc ten drugi będzie traktowany jako ”obcy”. Klucz główny Nr_legitymacji 250 251 252 253 254 255 256 257 Klucz główny ID_klasy A B C D E Tabela UCZNIOWIE Imię Nazwisko Anna Kowalska Tomasz Nowak Jakub Krakowski Marcin Krakowski Jacek Abacki Waldemar Nowak Mariusz Pilawski Monika Dulik ID_klasy A A D B C A E E Klucz obcy Tabela KLASY Profil Informatyczna Językowa Biologiczno-Chemiczna Prawnicza Informatyczna Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 2 Anna Butryn. Wprowadzenie do baz danych – marzec 2009 Relacje Powiązanie między parą tabel nosi nazwę relacji. Każdej relacji można przypisać konkretny typ: jeden-do-jednego, jeden-do-wielu, wiele-do-wielu. • Relacja jeden-do-jednego Taki typ powiązania oznacza, że pojedynczemu rekordowi z pierwszej tabeli jest przyporządkowany najwyżej jeden rekord z drugiej tabeli i na odwrót. Właściwe powiązanie informacji pomiędzy tymi tabelami zapewnia wspólne pole kluczowe Nr _legitymacji. Na przykład wartość równa 250 odpowiada następującym danym: Anna Kowalska z klasy A, która mieszka w Warszawie, na ulicy Piłsudskiego 26/89. Taki typ relacji symbolicznie można oznaczyć 1 ― 1. Nr_legitymacji 250 251 252 253 254 255 256 257 Tabela UCZNIOWIE Imię Nazwisko Anna Kowalska Tomasz Nowak Jakub Krakowski Marcin Krakowski Jacek Abacki Waldemar Nowak Mariusz Pilawski Monika Dulik Nr_legitymacji Kod 250 03-300 251 03-300 252 03-406 253 03-310 254 03-312 255 03-430 256 03-306 257 03-304 Tabela ADRESY Miasto Warszawa Warszawa Piaseczno Warszawa Warszawa Wesoła Warszawa Warszawa ID_klasy A A D B C A E E Ulica ul.Piłsudskiego 26/89 ul.Etiudy 4/56 ul.Polna 123 ul. Racławicka 4/5 ul.Hynka 77/3 ul.Postępu 6 ul.Rzymowskiego 7/10 ul.Woroniczna 59/14 • Relacja jeden-do-wielu Taki typ powiązania oznacza, że pojedynczemu rekordowi z pierwszej tabeli może odpowiadać jeden lub więcej rekordów z drugiej, gdy pojedynczemu rekordowi z drugiej tabeli odpowiada najwyżej jeden rekord z pierwszej. Właściwe powiązanie informacji pomiędzy tabelami KLASY i UCZNIOWIE zapewnia wspólne pole kluczowe ID_klasy. Na przykład na podstawie ID_klasy równym A stwierdzamy, że jest to klasa informatyczna, do której uczęszczają: Anna Kowalska, Tomasz Nowak i Waldemar Nowak. Taki typ relacji symbolicznie oznacza się: 1 ― ∞. Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 3 Anna Butryn. Wprowadzenie do baz danych – marzec 2009 Nr_legitymacji 250 251 252 253 254 255 256 257 ID_klasy A B C D E Tabela UCZNIOWIE Imię Nazwisko Anna Kowalska Tomasz Nowak Jakub Krakowski Marcin Krakowski Jacek Abacki Waldemar Nowak Mariusz Pilawski Monika Dulik ID_klasy A A D B C A E E Tabela KLASY Profil Informatyczna Językowa Biologiczno-Chemiczna Prawnicza Informatyczna • Relacja wiele-do-wielu Taki typ powiązania oznacza, że pojedynczemu rekordowi z pierwszej tabeli może odpowiadać jeden lub więcej rekordów z drugiej tabeli i na odwrót. W celu utworzenia takiej relacji dobrze jest utworzyć tabelę łączącą, w której należy umieścić kopie kluczy głównych obydwu tabel łączonych. Tabela MATURA jest tabelą łączącą tak, aby miedzy tabelami UCZNIOWIE i PRZEDMIOTY zaistniała relacja wiele-do-wielu. Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 4 Anna Butryn. Wprowadzenie do baz danych – marzec 2009 System zarządzania relacyjną bazą danych (w skrócie SZRBD) to z reguły pakiet programów stosowanych do tworzenia i modyfikowania relacyjnych baz danych. Często jest on też używany do tworzenia aplikacji, z której korzysta użytkownik. Bardzo szybko zaczęła się rozwijać koncepcja takich systemów, w których z centralnie ulokowanej bazy danych może korzystać dowolna liczba użytkowników. Stają się one wtedy systemami typu klient-serwer. Centralny komputer jest nazwany serwerem baz danych, a użytkownicy za pomocą specjalnych aplikacji na swoich komputerach, nazwanych klientami bazy danych, uzyskują dostęp do serwera. Duża popularność relacyjnego modelu bazy danych i jego różnych implementacji wynika z ich następujących zalet: • model logiczny został oparty na teoriach matematycznych (między innymi teorii mnogości), co rzutuje na jego stabilność, bezpieczeństwo, przewidywalność i efektywność; • integralność danych, czyli możliwość sprawdzania poprawności danych na poziomie pól (niepoprawne dane nie zostaną wprowadzone do pola), na poziomie tabel (nie pojawią się takie same rekordy), na poziomie relacji (sprawdzanie poprawności danych z punktu widzenia całej bazy); • łatwy dostęp do danych. Wyszukiwanie informacji Popularnym sposobem do wprowadzania, modyfikowania i odczytywania informacji z bazy danych jest wykorzystanie języka SQL (ang. Structured Query Language). Większość popularnych pakietów oprogramowania udostępnia narzędzia umożliwiające wprowadzanie zapytań zapisanych w tym języku: od prostego trybu ekranowego do pełnego interfejsu graficznego, czy wręcz gotowego kreatora, np. w programie Microsoft Access. Proste zapytanie SQL składa się z trzech składników: • SELECT – do wyboru nazw pól, które pojawią się w zapytaniu; • FROM – do określania tabel, z których te pola będą pochodziły; • WHERE – do określania kryteriów wyboru • i dodatkowo ORDER BY – do sortowania danych wg zawartości pola (lub pól). Przykłady prostych zapytań SQL: 1. Pobranie z tabeli UCZNIOWIE imion oraz nazwisk wszystkich uczniów: SELECT Imię, Nazwisko FROM UCZNIOWIE 2. Pobranie z tabeli UCZNIOWIE danych tych uczniów, którzy mają na imię Jakub, Filip lub Monika: SELECT * FROM UCZNIOWIE WHERE Imię=’Jakub’ Or Imię=’Filip Or Imię=’Monika’ Gdy w miejsce listy pól zastosujemy symbol gwiazdki „*”, wówczas zostaną wyświetlone wszystkie pola – w tym wypadku: Nr_legitymacji, Imię, Nazwisko, ID_klasy. 3. Pobranie z tabeli UCZNIOWIE wszystkich uczniów, których nazwiska zaczynają się na literę K: SELECT * FROM UCZNIOWIE WHERE Nazwisko LIKE ‘K*’ 4. Pobranie danych pierwszych trzech uczniów z tabeli UCZNIOWIE: SELECT * FROM UCZNIOWIE Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 5 Anna Butryn. Wprowadzenie do baz danych – marzec 2009 LIMIT 3 5. Pobranie danych z dwóch tabel UCZNIOWIE i ADRESY połączonych relacją: SELECT UCZNIOWIE.Nazwisko, UCZNIOWIE.Imię, ADRESY.Miasto FROM UCZNIOWIE, ADRESY WHERE UCZNIOWIE.Nr_legitymacji = ADRESY.Nr_legitymacji Jeśli wymienione pola w sekcji SELECT będą pochodziły z różnych tabel, to nazwa pola musi być poprzedzona nazwą tabeli, z której ono pochodzi – w tym wypadku UCZNIOWIE.Nazwisko, UCZNIOWIE.Imię, ADRESY.Miasto. Złączenie tabel zostało zasygnalizowane warunkiem WHERE wraz z nazwą łączącego pola – Nr_legitymacji. Zasób uzupełniający do podręcznika Technologia informacyjna w Internecie, WSiP, Warszawa 2009 http://ti-a.wsip.pl 6