__ _ _ ___ | | ___| |_ ___ |_|___ |_ | | |__| -_| '_| _| | | .'| _| |_ |_____|___|_,_|___|_| |__,| |_____| |___| (czcionka: Rectangles) T: Czym są bazy danych Baza danych - uporządkowany zbiór informacji, zwykle na wcześniej określony temat. Rodzaje baz danych: - proste - kartotypowe (kazdy element jest niezalezny) - hierarhiczne - złożone - relacyjna (SQL) - nierelacyjna (noSQL) - obiektowa Warunki bazy relacyjnej: - Wszystkie dane oparte są na prostych typach danych - Wszystkie dane przedstawiane są w formie dwuwymiarowych tabel - Tabela może składać się z 0 lub większej ilości wierszy, wiersz nazywa się "krotka" - Tabela może składać się z 1 lub większej ilości kolumn, kolumna nazywa się "atrybut" - Możliwe jest w niej porównywanie zawartości w poszczególnych kolumnach w obrębie jendej lub większej ilości tabel - Wiersze przechowywane są w dowolnym porządku i nie musi on odzwierciedlać kolejności ich wprowadzania - Każda tabela musi posiadać kolumnę, która jednoznacznie identyfikuje dany wiersz (PRIMARY KEY) __ _ _ ___ | | ___| |_ ___ |_|___ |_ | | |__| -_| '_| _| | | .'| | _| |_____|___|_,_|___|_| |__,| |___| |___| T: DBMS DBMS (Database Managment System) - Oprogramowanie służące do zarządzania bazą danych. W skład DBMS wchodzą: - Mechanizmy administrowania danymi - Środki zapewniające integralność i bezpieczeństwo danych - Środki pozwalające na odtworzenie danych po awarii - Dostp do danych przez język SQL - Wielodostępność do danych przez tzw. transakcje - Środki optymalizujące czas dostępu do danych tzw. indexy __ _ _ ___ | | ___| |_ ___ |_|___ |_ | | |__| -_| '_| _| | | .'| |_ | |_____|___|_,_|___|_| |__,| |___| |___| T: Microsoft Access. Typy danych: - Tekst (max. 255 znaków) - Nota (max. 65535 znaków) - Bajt (0 - 255) - Liczba całkowita (-32768 - 32767) - Liczba całkowita długa (-2147000 - 2147000) - Pojedyńcza precyzja (-3.4 * 10^38 - 3.4 * 10^38) - Podwójna precyzja (-1.7 * 10^308 - 1.7 * 10^308) - Waluta - Tak / nie - Obiekt OLE - Hiperłącze - Załącznik - Autonumerowanie Jedną z właściwości kolumn jest format jej wyświetlania. Dla typów "liczba", "waluta", "data", "godzina" oraz "tak / nie" możemy korzystać z gotowych do użycia formatów Accessa, jednak istnieje też możliwość stworzenia własnego. Wybrane symbole używane do tworzenia formatów w Accessie: Typ danych Symbol Znaczenie --------------------------------------------------------------- Dowolny "tekst" dodatkowy tekst \znak dodatkowy znak [kolor] kolor tekstu w tabeli (czarny, niebieski, zielony, czerwony, żółty, biały lub błękitny) --------------------------------------------------------------- Tekst @ wyświetla zawartość pola > zamienia małe litery na duże < zamienia duże litery na małe --------------------------------------------------------------- Data / godzina d dzień miesiąca 1 - 31 dd dzień miesiąca 01 - 31 ddd dzień tygodnia np. pon dddd dzień tygodnia np. poniedziałek m miesiąc roku 1 - 12 mm miesiąc roku 01 - 12 mmm miesiąc roku np. cze mmmm miesiąc roku np. czerwiec r dzień roku 0-366 rr dwie ostatnie cyfry roku rrrr rok --------------------------------------------------------------- Liczba, waluta, # zastępuje cyfrę, która może być wprowadzona autonumeroanie 0 zastępuje cyfrę, która MUSI być wprowadzona % wyświetla liczbę w formacie procentowym Zasady tworzenia własnych formatów: - Format dla tekstu i noty składa się z dwóch części. Pierwsza część formatuje pole z zawartością, druga formatuje pole puste. - Format dla liczby i waluty składa się z czterech części oddzielonych od siebie średnikiem. Pierwsza część formatuje wartość dodatnią, druga część wartości ujemne, trzecia część odpowiada za formatowanie zera, a czwarta za formatowanie pola pustego. - Format dla "tak / nie" rozpoczyna się od średnika i składa się z dwóch części oddzielonych od siebie średnikiem. Pierwsza część formatuje prawdę, druga część formatuje fałsz. Przykłady: >@[Żółty]" kek" Powiększy tekst, dopisze "kek" na końcu i wyświetli to wszystko na żółto. >@[Żółty]" kek";[Czerwony]"Podaj nazwisko" Zadziała tak samo, jak poprzedni format, ale w przypadku niepodania nazwiska, wyświetli czerwony tekst "Podaj nazwisko". rrrr\ r Wyświetli rok i dzień roku z podanej daty. 000;[Czerwony]"na minusie!";;[Czerwony]"nie podano" Wyświetli liczbę i w razie konieczności doda zera z przodu tak, aby była ona trzycyfrowa. W przypadku pustej wartości, wyświetli się czerwony tekst "nie podano", a w przypadku podania wartości mniejszej od 0, czerwony tekst "na minusie!". ;"owszem";"nie za bardzo" W przypadku wartości "tak" wyświetli napis "owszem", w przeciwnym wypadku - "nie za bardzo". Maska wprowadzania to właściwość komulny, która określa, w jaki sposób dane są wprowadzane do kolumny w tabeli. Aby ją stworzyć, należy użyć następujących symboli wieloznacznych: 0 - Cyfra, która musi być wprowadzona. Znaki + i - są niedozwolone. 9 - Cyfra, która może być wprowadzona. Znaki + i - są niedozwolone. # - Cyfra lub spacja, która może być wprowadzona. Znaki + i - są dozwolone. L - Litera, która musi być wprowadzona. ? - Litera, która może być wprowadzona. A - Litera lub cyfra, która musi być wprowadzona. a - Litera lub cyfra, która może być wprowadzona. & - Spacja lub dowolny znak, który musi być wprowadzony. C - Spacja lub dowolny znak, który może być wprowadzony. > - Zamienia małe litery na duże. > - Zamienia duże litery na małe. \ - Zamienia znak specjalny na zwykły symbol. Przykłady: Dla kodu pocztowego, użyjemy formatu 00\-000 i maski wprowadzania 00\-000. Dla nazwiska o długości 3-10 liter i pierwszej z nich dużej użyjemy maski >L, <, >=, <=, <> (różny) itp. Przykład: >=15 And <65 pozwoli na wprowadzenie tylko liczb z przedziału <15;65). <=Date() pozwoli tylko na wprowadzenie daty z przeszłości lub dzisiejszej. Wymagane określa, czy pole może pozostać puste prz tworzeniu nowego rekordu. Indeksowanie ma za zadanie przyspieszyć proces wyszukiwania danych. Indeksujemy tylko te kolumny, według których zamierzany wyszukiwać dane. Ideksowanie może przyjąć jedną z trzech wartości: - TAK (bez duplikatów) - Wartości w kolumnie nie mogą się powtarzać. - TAK (duplikatami OK) - Wartości w kolumnie mogą się powtarzać. - NIE __ _ _ ___ | | ___| |_ ___ |_|___ | | | | |__| -_| '_| _| | | .'| |_ | |_____|___|_,_|___|_| |__,| |_| |___| T: Relacje w bazie danych. Typy relacji: - Relacja 1:1 - jednemu rekordowi z tabeli A odpowiada jeden rekord z tabeli B i vice versa. - Relacja 1:wiele - jednemu rekordowi z tabeli A odpowiada wiele rekordów z tabeli B oraz jednemu rekordowi z tabeli B odpowiada jeden rekord z tabeli A. - Relacja wiele:wiele - jednemu rekordowi z tabeli A odpowiada wiele rekordów z tabeli A oraz jednemu rekordowi z tabeli B odpowiada wiele rekordów z tabeli A. Zasady tworzenia relacji: - W 1:1 łączymy relacją dwa klucze podstawowe - z tabeli A i B. - W 1:wiele łączymy kolumnę z kluczem z tabeli A z kolumną bez klucza z tabeli B. - W wiele:wiele używamy trzeciej dodatkowej tabeli, która łączy tabelę A i tabelę B. - Łączone kolumny muszą posiadać takie same lub pokrewne typy danych. - Rozmiary pola typu liczbowego w obu kolumnach muszą być identyczne. - Kolumny muszą przechowywać takie same informacje. Przed tworzeniem relacji należy zamknąć tryb edycji na obu tabelach. Tylko jedna tabela (nadrzędna) może zawierać autonumerowanie. __ _ _ ___ | | ___| |_ ___ |_|___ | _| | |__| -_| '_| _| | | .'| |_ | |_____|___|_,_|___|_| |__,| |___| |___| T: SQL http://localhost/phpmyadmin - Panel administratora mySQL Instrukcje SQL: SELECT - Wybierz i wyświetl rekordy INSERT - Wprowadź rekordy UPDATE - Aktualizuj rekordy DELETE - Usuń rekordy CREATE TABLE - Utwórz tabelę ALTER TABLE - Zmodyfikuj strukturę tabeli SELECT * FROM `dane_k` WHERE 1 Wyświetli wszystkie rekordy tabeli "dane_k" SELECT * FROM `dane_k` WHERE 1 LIMIT 5,5 Wyświetli rekordy 6-10 tabeli "dane_k" SELECT * FROM `dane_k` WHERE `wzrost`<170 LIMIT 0,50 Wyświetli 50 pierwszych osób z "dane_k" niższych niż 170 cm SELECT * FROM `dane_k` WHERE wiek<=30 AND wiek>= 20 Wyświetli wszystkie osoby z "dane_k" między 20 a 30 rokiem życia włącznie SELECT * FROM `dane_k` WHERE `nazwisko` LIKE "S%" Wyświetli wszystkie osoby z nazwiskiem zaczynającym się na literę 'S' SELECT `imie`,`wzrost` FROM `dane_k` WHERE `nazwisko`="Żukowska" Wyświetli imiona i wzrost osób z "dane_k", których nazwisko to "Żukowska" SELECT imie,count(imie) FROM dane_k GROUP BY imie Wyświetli liczbe osób z "dane_k" noszących dane imie SELECT `imie`,`wzrost`,`wiek` FROM `dane_k` WHERE `nazwisko`="Sienkiewicz" ORDER BY `wiek` DESC Wyświetli imiona, wzrost i wiek osób z "dane_k", których nazwisko to Sienkiewicz i posortuje wyświetlane dane malejąco według wieku. SELECT symbol_woj,count(imie) AS ile FROM dane_k GROUP BY symbol_woj Wyświetli liczbe osób z "dane_k" zamieszkałych w danym województwie pokaże ją w tabelce "ile" SELECT symbol_woj,count(symbol_woj) AS "liczba" FROM dane_k GROUP BY symbol_woj HAVING liczba > 20 ORDER BY count(symbol_woj) DESC SELECT wojewodztwo,count(imie) AS ile FROM dane_k,wojewodztwo WHERE dane_k.symbol_woj=wojewodztwo.symbol_woj GROUP BY dane_k.symbol_woj