POWRÓT NA STRONĘ SZKOŁY

Tworzenie i usuwanie bazy

Najpierw zaprojektujemy prostą bazę danych ksiegarnia_internetowa, aby potem ją utworzyć, wypełnić danymi i wykonywać operacje na danych. Posłużymy się przykładem zaprezentowanym w książce PHP i MySQL tworzenie stron WWW autorstwa Luke Welling oraz Laury Thomson.

Identyfikatory MySQL

Podsumujmy zasady nazewnictwa, które będziemy stosować podczas pracy z bazą MySQL.

Nazwa obiektu bazy danych to jego identyfikator. W MySQL mamy takie identyfikatory jak bazy danych, tabele, kolumny i indeksy oraz aliasy. O indeksach i aliasach dowiesz się w dalszym toku nauki. Tworząc nazwy będziemy stosować następujące zasady:

  • Używamy liter a-z oraz A-Z, bez "polskich ogonków", a także cyfr 0-9. Co prawda od wersji 3.23.6 serwera MySQL, można stosować standard Unicode zawierający znaki różnych języków, ale będziemy w tym zakresie zgodni ze standardami obowiązującymi w językach programowania.
  • Pierwszym znakiem nie może być cyfra.
  • Zamiast spacji będziemy uzywać podkreślnika np. nazwa_tabeli
  • Należy stosować nazwy czytelne, oddające rzeczywistość np. recenzje_ksiazek, a nie np. ksiazki_2.
  • Serwer baz danych rozróżnia wielkie i małe litery, jeżeli robi to system operacyjny. Unix jest system który rozróżnia wielkość liter. Będziemy jednak stosować nazewnictwo uniwersalne, które sprawdzi się w każdej sytuacji - wystarczy stosować nazwy które są unikatowe bez względu na wielkość liter.
  • Na koniec, musimy wziąć pod uwagę fakt, że w PHP przyjęto stosowanie małych liter. W dalszym toku nauki będziemy administrować MySQL z poziomu PHP, więc powinniśmy dla wygody ujednolicić stosowane przez nas nazewnictwo. Dlatego umówmy się, że podczas pracy z MySQL, w pisowni identyfikatorów jak również w nazwach plików i folderów będziemy stosować małe litery, zgodnie z omówionymi wcześniej zasadami.

Polecenia SQL będziemy pisać wielkimi literami.

Schemat bazy ksiegarnia_internetowa

Nasza baza będzie rejestrować sprzedaż książek w księgarni internetowej. W tym celu będą utworzone następujące tabele:

  • klienci(klient_id, nazwisko_imie, adres, miejscowosc)
  • zamowienia(zamowienie_id, klient_id, wartosc, data)
  • ksiazki(isbn, autor, tytul, cena)
  • ksiazki_zamowione(zamowienie_id, isbn, ilosc)
  • recenzje_ksiazek(isbn, recenzja)

Wyjaśnijmy, że isbn to unikatowy numer książki ISBN, możesz go znaleźć na początku książki - w miejscu gdzie podawane są inne informacje, jak wydawnictwo, rok wydania, informacja o prawach autorskich, itp. Tak więc mamy gotowy klucz główny w tabeli ksiazki. Tabela ksiazki_zamowione nie posiada własnego pola identyfikującego, ponieważ zamowienia_id oraz isbn, brane pod uwagę łącznie - zapewniają unikatowość każdego rekordu, pod warunkiem, że każda zamówiona książka będzie wpisywana w jednym wierszu, niezależnie od tego ile egzemplarzy zamówiono. Dlatego tabela ta posiada kolumnę ilosc. Zakładamy, że tylko do części książek została napisana recenzja (tylko jedna recenzja danej książki), dlatego została utworzona oddzielna tabela recenzje_ksiazek, zawierająca istniejące recezje. Dzięki tej tabeli unikamy pustych pól, które wystąpiłyby, gdyby kolumna recenzje znajdowała się w tabeli ksiazki.

Diagram tabel i relacji bazy ksiegarnia_internetowa

Poniższy diagram pokazuje układ tabel i relacji. Na tej podstawie możemy przeanalizować przepływ danych między poszczególnymi tabelami bazy.

Diagram tabel i relacji bazy ksiegarnia_internetowa
Rysunek 3_1_0_1. Diagram tabel i relacji bazy danych ksiegarnia_internetowa

Utworzenie bazy danych ksiegarnia_internetowa

Na tych zajęciach uczynimy pierwszy, bardzo prosty krok w procesie tworzenia bazy. Utworzymy naszą bazę danych o nazwie ksiegarnia_internetowa. W tym celu należy otworzyć phpMyAdmina - zakładka SQL, a następnie:

  1. Wpisać CREATE DATABASE ksiegarnia_internetowa; i kliknąć Wykonaj, przy czym zastosujemy bardziej rozbudowane polecenie CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;, które zagwaranuje nam poprawne wyświetlanie polskich liter.
  2. Powinien pojawić się komunikat o wykonaniu polecenia, a nasza baza powinna zostać dołączona do listy baz.

CREATE DATABASE ksiegarnia_internetowa; to instrukcja napisana w języku SQL. Proszę zwrócić uwagę na składnię CREATE DATABASE - jest pisana dużymi literami, taką właśnie konwencję będziemy stosować. Co prawda MySQL nie rozróżnia wielkich i małych liter w poleceniach SQL, ale taką pisownię będziemy stosować w "ręcznym" administrowaniu bazą.

Tworzenie bazy ksiegarnia_internetowa - krok 1
Rysunek 3_1_0_2. Tworzenie bazy ksiegarnia_internetowa - krok 1
Tworzenie bazy ksiegarnia_internetowa - krok 2
Rysunek 3_1_0_3. Tworzenie bazy ksiegarnia_internetowa - krok 2

Usunięcie bazy danych ksiegarnia_internetowa

Teraz możemy spokojnie przećwiczyć usuwanie bazy danych, ponieważ nic ona jeszcze nie zawiera. Po usunięciu bazy, należy ją ponownie utworzyć, aby na następnych zajęciach z niej korzystać.

  1. Polecenie DROP DATABASE ksiegarnia_internetowa; powinno bazę usunąć.
  2. Jeżeli pojawi się komunikat, że jest to niemożliwe, wtedy klikamy nazwę naszej bazy na liście baz (po lewej).
  3. Otwieramy zakładkę Operacje, a następnie Usuń bazę danych.

Opisane czynności usuwania bazy pokazują zrzuty ekranu:

Usuwanie bazy ksiegarnia_internetowa - krok 1 i 2
Rysunek 3_1_0_4. Usuwanie bazy ksiegarnia_internetowa - krok 1 i 2
Usuwanie bazy ksiegarnia_internetowa - krok 3
Rysunek 3_1_0_5. Usuwanie bazy ksiegarnia_internetowa - krok 3