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