Rodzaje baz danych
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ą liczne 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.
Bazy hierarchiczne
W modelu hierarchicznym dane są przechowywane na zasadzie rekordów nadrzędnych-podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy rekord (z wyjątkiem głównego) jest związany z dokładnie jednym rekordem nadrzędnym.
Bazy relacyjne
W bazach relacyjnych wiele tablic danych może współpracować ze sobą (są między sobą powiązane). 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.
Bazy obiektowe
W bazach obiektowych dane przechowywane są w strukturach obiektowych (zdefiniowanych jako klasy). Koncepcje akademickie dotyczące baz obiektowych były najbardziej popularne w latach 90. Współcześnie popularność tego tematu zmalała, choć prace badawcze nad nimi nadal trwają, a na rynku pojawiły się obiektowe SZBD (np. Versant, db4o, LoXiM).
Bazy relacyjno-obiektowe
Bazy relacyjno-obiektowe pozwalają na manipulowanie danymi jako zestawem obiektów, posiadają jednak bazę relacyjną jako wewnętrzny mechanizm przechowywania danych.
Bazy strumieniowe
Strumieniowa baza danych to baza danych, w której dane są przedstawione w postaci zbioru strumieni danych. System zarządzania taką bazą nazywany jest strumieniowym systemem zarządzania danymi (DSMS - ang. Data Stream Management System).
Bazy temporalne
Jest odmianą bazy relacyjnej, w której każdy rekord posiada stempel czasowy, określający czas w jakim wartość jest prawdziwa. Posiada także operatory algebry relacyjnej, które pozwalają operować na danych temporalnych (wyciągać historię).
Bazy nierelacyjne
Pod pojęciem bazy nierelacyjnej (NoSQL database) najczęściej rozumie się przechowywanie danych w formie listy par obiektów klucz-wartość, w których nie występują powiązania relacyjne między przechowywanymi obiektami. W bazie NoSQL najczęściej nie ma wymagania aby obiekty były jednorodne pod względem struktury.
W pierwszej kolejności musimy pobrać wersję instalacyjną MySQL.
Możemy również wykorzystać gotowy pakiet serwerów apache, mysql, interpretera php, np. XAMPP (zalecane rozwiązanie na potrzeby kursu).
Po zainstalowaniu bazy danych MySQL otwieramy konsolę cmd i przechodzimy do katalogu instalacji pakietu do ścieżki (pakietu XAMPP) za pomocą polecenia:
cd c:/xampp/mysql/bin/
Uruchamiamy polecenie:
mysql -u root
i jesteśmy w konsoli bazy danych MySQL.
Do tworzenia, usuwania, modyfikowania baz danych, tabel, widoków w MySQL stosujemy język SQL - Structured Query Language. Jest to strukturalny język zapytań służący do pracy z bazą danych.
Utworzymy bazę danych test - wpisując polecenie:
CREATE DATABASE test;
USE test;
Jeżeli nie ma błędu baza danych test została utworzona. Po wykonaniu polecenia USE test wybraliśmy do dalszej pracy bazę danych test. Co można zauważyć w kwadratowych nawiasach [test].
Teraz utworzymy tabelę o nazwie samochody wydając następujące polecenie:
CREATE TABLE samochody(id int auto_increment, marka varchar(30), model varchar(30), rocznik int, pojemnosc float, przyspieszenie float, PRIMARY KEY(id));
Za pomocą polecenia:
INSERT INTO samochody VALUES(NULL, "Bugatti", "Veyron", 2018, 7993.0, 2.5);
wprowadzimy wiersz do tabeli samochody.
INSERT INTO samochody VALUES(NULL, "Lamborghini", "Aventador", 2018, 6498.0, 2.9);
Wydając polecenie:
SELECT * FROM samochody;
uzyskamy podgląd wyników.
W kursie tym będziemy również używać narzędzia phpMyAdmin z pakietu XAMPP.
Aby uzyskać dostęp do phpMyAdmin należy uruchomić panel sterowania XAMPP i uruchomić serwer Apache i MySQL.
Następnie w oknie przeglądarki wpisujemy
http://localhost/phpMyAdmin
Wykorzystując narzędzie phpMyAdmin założymy nową bazę danych studia. Klikamy na zakładkę Bazy danych.W polu tekstowym nazwa bazy danych wpisujemy studia, a kodowanie znaków wybieramy utf8_polish_ci i klikamy Utwórz.
Widzimy po lewej stronie że baza danych studia została utworzona. Następnie wprowadzimy do niej tabelę student z 11 kolumnami i naciskamy Wykonaj.
Poniżej znajduje się instrukcja wygenerowana przez phpMyAdmin:
CREATE TABLE `studia`.`student` ( `id_student` INT NOT NULL AUTO_INCREMENT ,
`imie` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL ,
`nazwisko` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL ,
`id_wydzial` INT NOT NULL ,
`id_kierunek` INT NOT NULL ,
`nr_albumu` INT NOT NULL ,
`rok_studiów` INT NOT NULL ,
`miejscowosc` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL ,
`wojewodztwo` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL ,
`rok_urodzenia` INT NOT NULL , `status` ENUM('student','urlop','skreslony','absolwent')
CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL , PRIMARY KEY (`id_student`))
ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_polish_ci;
Co to jest baza danych?
Baza danych jest to zbiór informacji odzwierciedlający pewien wycinek rzeczywistości, uporządkowany w tabelach.
Co to jest tabela?
Tabela zbudowana jest z wierszy i kolumn. Każda kolumna składa się z nazwy i typu danych, który reprezentuje. Przykład tabeli.
W kolumnach przechowujemy cechy obiektu np. imię, nazwisko, numer albumu, datę urodzenia, itp.
Wiersz - inaczej rekord to zestaw cech jednego studenta.
Pole to część tabeli przechowujące wybrane dane studenta, np. imię, nazwisko.
Więcej o typach danych znajduje się w rozdziale
By uniknąć sytuacji, gdy w bazie danych znajduje się dwóch studentów o tych samych danych osobowych, tzn. imię, nazwisko, do tabeli dodajemy kolumnę z unikatowymi wartościami nazwaną kluczem podstawowym.
Wtedy studenci pomimo, że mają takie same imię i nazwisko mają różną wartość w kolumnie id_student (klucz podstawowy). Dzięki temu każdy rekord w tabeli jest unikatowy.
Klucz podstawowy - to kolumna, w której każda wartość jest unikatowa i jednoznacznie identyfikuje każdy rekord w tabeli. Gdyby w tabeli nie było klucza podstawowego, mogłoby dojść do utraty spójności danych.
Klucz obcy - to kolumna, która wskazuje na klucz podstawowy innej tabeli. Dzięki zastosowaniu klucza obcego w jednej tabeli, tworzymy relację z drugą tabelą, w której ten klucz jest kluczem podstawowym.
Na powyższym schemacie widzimy trzy tabele znajdujące się w bazie danych studia. Pierwsza z nich opisuje studenta, druga wydział, a trzecia kierunki studiów.
Relacja - jest to połączenie dwóch tabel za pomocą klucza podstawowego jednej tabeli z kluczem obcym innej tabeli.
Kolorem czerwonym została pokazana relacja pomiędzy tabelami Student i Wydzial. Klucz podstawowy tabeli Wydzial o nazwie id_wydzial połączony jest z kluczem obcym o tej samej nazwie w tabeli Student.
Kolorem zielonym została pokazana relacja pomiędzy tabelami Student i Kierunek. Klucz podstawowy tabeli Kierunek o nazwie id_kierunek połączony jest z kluczem obcym o tej samej nazwie w tabeli Student.
Kolorem niebieskim została pokazana relacja pomiędzy tabelami Wydzial i Kierunek. Klucz podstawowy tabeli Wydzial o nazwie id_wydzial połączony jest z kluczem obcym o tej samej nazwie w tabeli Kierunek.
Poniżej zestawiono w tabelach najważniejsze typy danych obsługiwanie przez MySQL.yp
Proszę utworzyć bazę danych magazyn.
Proszę wybrać bazę danych magazyn.
Proszę utworzyć tabelę o nazwie towar z autoinkrementowanym kluczem podstawowym id_towar, nazwa_towaru, cena_towaru.
Proszę wprowadzić do tabeli towar w bazie danych magazyn 5 rekordów.
Proszę pokazać na ekranie wszystkie rekordy tabeli towar.
Jakie znasz rodzaje baz danych?
Co to jest baza danych?
Co to jest tabela?
Co to jest pole?
Co to jest rekord?
Co to jest klucz podstawowy?
Co to jest klucz obcy?
Co to jest relacja?
Jakie znasz typy danych MySQL?