Informacje ogólne Bazy danych to uporządkowany zbiór informacji z określonej dziedziny lub tematyki przeznaczony do wyszukiwania mogący zaspokoić potrzeby wielu użytkowników korzystających z niego w sposób selektywny w odpowiednim dla siebie czasie. Praktycznie nie ma już dziedziny zainteresowań która nie podlegała by odwzorowaniu w komputerową bazę danych. W każdej bazie danych można wyodrębnić dwa składniki: - model danych, - system zarządzania bazą danych (w skrócie SZBD). Termin model danych rozumiany będzie szeroko, tzn. jako zbiór zasad dotyczących struktury danych, i ich związków z rzeczywistością. Pod pojęciem SZBD rozumieć będziemy zbiór narzędzi (aplikacji) umożliwiający dostęp do danych, w szczególności ich odczyt i modyfikację. Struktura baz danych Bazy danych są tworzone przez zbiór jednostek plik jednostek o jednolitej strukturze zwanych rekordami. Rekordy zawierają pola różnorodnych typów (numeryczne, tekstowe, znakowe, walutowe itp.). Bazę danych tworzą wielokolumnowe tabele spełniające ścisłe wymogi. Tabele takie określa się mianem relacji, a tworzone przez nie bazy nazywamy relacyjnymi bazami danych. Każda relacja zawiera klucz główny czyli kolumnę lub kolumny, której wartość jednoznacznie identyfikuje dany wiersz. Do wiązania ze sobą danych przechowywanych w różnych tabelach używa się kluczy obcych czyli kolumny lub grupy kolumn o wartościach z tej samej dziedziny co klucz główny tabeli z nią powiązanej. Klucz obcy odnoszący się do kolumny: pracownicy. Nr_pracownika Tabela zakłady Kod_zakładu nazwa adres kierownik (klucz główny) Klucz obcy odnoszący się do kolumny: zakłady.kod_zakładu Tabela Pracownicy Nr_pracownika (klucz główny) nazwisko zakład pokój telefon Relacyjne bazy danych Większość popularnych obecnie komputerowych systemów baz danych opiera się na modelu relacyjnym. Dzięki relacjom pomiędzy danymi w różnych tabelach, istnieje możliwość ich zaprezentowania w dowolny sposób. Typy relacji jakie mogą wystąpić w bazie danych: 1 do 1 – typ relacji polegający na tym, że jednemu rekordowi jednej tabeli odpowiada jeden rekord w drugiej tabeli (np. jeden dziennik przypada na daną klasę) dzienniki Id klasy klasy Id klasy Nr dziennika Profil Wychowawca 1 do wielu - typ relacji polegający na tym, że jednemu rekordowi pierwszej tabeli odpowiada wiele rekordów w innych tabelach, ale każdemu rekordowi z tych tabel odpowiada tylko 1 rekord w pierwszej tabeli. (np. każdy uczeń może otrzymać dowolną liczbę ocen z danego przedmiotu) uczniowie Id ucznia Imię i nazwisko adres oceny z matematyki Id ucznia Ocena Za co wiele do wielu - typ relacji polegający na tym, że wiele rekordów jednej tabeli jest powiązanych z wieloma rekordami w innych tabelach. Język SQL Język SQL jest ogólnie przyjętym standardem języków baz danych. Polecenia języka SQL dzielą się na dwie grupy: - polecenia DDL, służące do definiowania danych - polecenia DML, służące do modyfikowania danych. Za pomocą języka DDL możemy utworzyć takie obiekty w bazie danych jak np. tabele. Polecenia języka DML służą do wstawiania, modyfikowania i usuwania danych z istniejących obiektów. I. Instrukcje: Instrukcja SELECT powoduje pobranie przez SZBD danych z tabeli, której nazwa określona jest poprzez klauzulę FROM. SELECT NazwaKolumny, NazwaKolumny, ... FROM NazwaTabeli; Przykład: Wyświetlenie wszystkich kolumn w tabeli uczniowie. SELECT * FROM Uczen; Przykład: Ogranicza liczbę kolumn do kolumny zawierającej imiona i nazwiska SELECT Imię, Nazwisko FROM Uczen; Słowo WHERE jest używane do określania, że tylko niektóre wiersze (rekordy) tabeli mają być wyświetlane. Wyświetlane rekordy bazują na kryteriach przedstawionych w klauzuli WHERE. WHERE nazwa_pola operator wartość Przykład: Wyświetlenie kwerendy zawierającej Imię, Nazwisko i Telefon ucznia z identyfikatorem ‘JBA’. SELECT Imię, Nazwisko, [telefon kontaktowy] FROM Uczeń WHERE [ID ucznia]='JBA'; Operator AND łączy dwa lub więcej warunków i wyświetla wiersz tylko wtedy, gdy dane w tym wierszu spełniają wszystkie przedstawione warunki. Operator OR łączy dwa lub więcej warunków, ale zwraca wiersz, jeżeli dowolny z nich (warunków) jest spełniony. Np. chcemy wiedzieć ile ocen niedostatecznych wystawiliśmy na koniec semestru z matematyki. SELECT Ocena FROM Ocena WHERE Ocena=1 AND [ID przedmiotu]='MAT' AND [Zdobyta za]='semestr'; II. Dodawanie, modyfikowanie i usuwanie wierszy INSERT INTO - dodawanie wierszy (rekordów) INSERT INTO Tabela ( pole1, pole2) VALUES ('wartość_1', 'wartość_2'); UPDATE – modyfikowanie danych Aby podnieść semestralną ocenę z matematyki wszystkim uczniom o 1 napiszemy: UPDATE Ocena SET Ocena=Ocena+1 WHERE [Zdobyta za]='Semestr' AND [ID przedmiotu]='MAT'; DELETE – Usuwanie wierszy Chcemy z listy przedmiotów usunąć przedmiot Filozofia wykorzystamy do tego poniższą instrukcję: DELETE * FROM [Lista przedmiotów] WHERE [Id przedmiotu]='FILO'; III. Funkcje agregacyjne SUM () zwraca sumę wartości z wierszy spełniających zapytanie dla kolumny numerycznej. AVG () zwraca średnią dla danej kolumny. MAX () zwraca największą wartość w danej kolumnie. MIN () zwraca najmniejszą wartość w danej kolumnie. COUNT(*) zwraca liczbę określającą ilość wierszy spełniających warunki. Powracamy do wcześniejszego problemu. Chcemy wiedzieć ile ocen niedostatecznych wystawiliśmy na koniec semestru z matematyki. SELECT COUNT([Ocena]) FROM Ocena WHERE [Ocena]=2 And [ID przedmiotu]='MAT' And [Zdobyta za]='semestr';