Praca zaliczeniowa z baz danych
Michał Sznajder
I rok SZ gr. 8.
Nr. Indeksu: 3052
Temat: Zbudować bazę danych dla pizzerii. Opisać relacje, zbiory, atrybuty, typy użytych danych, kwerendy, formularze.
Relacje
Wzorując się na powyższym rysunku.
Relacja1.
Jeden klient może złożyć wiele zamówień. Zostały wymuszone więzy integralności oraz aktualizacja pól pokrewnych.
Relacja2.
Wielu zamówieniom można przyporządkować tylko jedno menu. Zostały wymuszone więzy integralności oraz aktualizacja pól pokrewnych.
Relacja3.
Jeden pracownik może wykonać wiele zamówień. Zostały wymuszone więzy integralności oraz aktualizacja pól pokrewnych.
Zbiory, atrybuty i dane.
Klienci:
Id klienta - niepowtarzalny numer przyznany każdemu klientowi. Typ: liczba
Imię klienta - typ: tekst.
Nazwisko klienta - tekst
Pesel - liczba niepowtarzalna.
Adres miasto - typ: tekst
Ulica - Jeżeli dany klient mieszka w Elblągu. Typ: tekst.
Nr. Domu - powtarzalna wartość. Typ: liczba.
Telefon klienta - typ: liczba z maską wprowadzenia.
Zamówienia:
Id zamówienia - niepowtarzalny numer przyporządkowany każdemu zamówieniu. Typ: autonumerowanie
ID klienta - powtarzalny numer przyznany każdemu klientowi. Typ: liczba.
Godzina zamówienia - typ: data / godzina wartość domyślna: time () czas aktualny
Data zamówienia - typ: data / godzina wartość domyślna: date () data aktualna.
Ilość - typ: liczba
ID produktu - powtarzalna wartość przyznana produktowi. Typ: liczba
Pracownicy - niepowtarzalny numer przyznany każdemu pracownikowi. Typ: liczba
Menu
Nazwa produktu - typ: tekst.
Cena jednostkowa - typ: walutowy.
ID produktu - niepowtarzalny numer przyznany każdemu produktowi. Typ: liczba.
Pracownicy.
ID pracownika - niepowtarzalny numer przyznany każdemu pracownikowi. Typ: liczba.
Imię pracownika -typ: tekst.
Nazwisko pracownika - typ: tekst.
Stanowisko - typ: tekst.
Płaca - typ: walutowy
Rodzaj zamówienia - typ: tekst.
Kwerendy
Klienci- informacje.
Formuła: SELECT [Klienci].[IDklienta], [NazwiskoKlienta] AS Nazwisko, [ImięKlienta] AS Imię, [Pesel]
FROM Klienci
ORDER BY [klienci].[idklienta];
Działanie: Wyświetla wiadomości o wszystkich klientach i grupuje według ID klienta.
Menu- informacje:
Formuła: SELECT Menu.IDproduktu,NazwaProduktu AS Nazwa,CenaJednostkowa AS Cena
FROM Menu
ORDER BY Menu.CenaJednostkowa;
Działanie: Wyświetla wiadomości o dostępnych artykułach.
Najczęściej spożywane:
Formuła: SELECT DISTINCTROW Menu.NazwaProduktu, Sum(Zamówienia.Ilość) AS [Suma Of Ilość]
FROM Menu INNER JOIN Zamówienia ON Menu.IDproduktu = Zamówienia.IDproduktu
GROUP BY Menu.NazwaProduktu;
Działanie: wyświetla najczęściej spożywane produkty.
Pracownicy- informacje:
Formuła: SELECT [IDpracownika], [ImięPracownika], [Stanowisko], [Płaca], [RodzajZamówienia]
FROM Pracownicy
ORDER BY stanowisko;
Działanie: Wyświetla wiadomości o pracownikach.
Suma wydatków na miesiąc:
Formuła: SELECT sum([pracownicy].[płaca]) AS suma
FROM pracownicy;
Działanie: Wyświetla sumę wydanych pieniędzy na pracowników.
Wiadomości o ilościach zamawianych:
Formuła: SELECT DISTINCTROW Sum([Zamówienia].[Ilość]) AS [Suma Ilości], Avg([Zamówienia].[Ilość]) AS [Średnia Ilości], Min([Zamówienia].[Ilość]) AS [Minimalna Ilość], Max([Zamówienia].[Ilość]) AS [Maksymalna Of Ilość]
FROM Zamówienia;
Działanie: wyświetla wiadomości o ilościach zamawianych: sumę, średnią, minimalną.
Zamówienia telefoniczne:
Formuła: SELECT Pracownicy.RodzajZamówienia, Menu.NazwaProduktu, Zamówienia.Ilość, Klienci.NazwiskoKlienta, Zamówienia.DataZamówienia
FROM Pracownicy INNER JOIN (Menu INNER JOIN (Klienci INNER JOIN Zamówienia ON Klienci.IDklienta = Zamówienia.IDklienta) ON Menu.IDproduktu = Zamówienia.IDproduktu) ON Pracownicy.IDpracownika = Zamówienia.Pracownik
WHERE (((Pracownicy.RodzajZamówienia)="Wyjazd"));
Działanie: wyświetla wiadomości o wyjazdach kierowców z zamówieniami.
Zamówienia wszystkie:
Formuła: SELECT Zamówienia.IDzamówienia, Zamówienia.IDklienta, Zamówienia.GodzinaZamówienia, Zamówienia.DataZamówienia, Zamówienia.Ilość, Zamówienia.IDproduktu, Zamówienia.Pracownik, Menu.NazwaProduktu, Pracownicy.NazwiskoPracownika, Pracownicy.RodzajZamówienia, [Klienci-informacje].Nazwisko
FROM Pracownicy INNER JOIN (Menu INNER JOIN ([Klienci-informacje] INNER JOIN Zamówienia ON [Klienci-informacje].IDklienta = Zamówienia.IDklienta) ON Menu.IDproduktu = Zamówienia.IDproduktu) ON Pracownicy.IDpracownika = Zamówienia.Pracownik;
Działanie: wyświetla wiadomości o wszystkich zamówieniach.
Formularze
Klienci - informacje:
Działanie: Pozwala na zapisanie do bazy danych informacji o klientach na podstawie kwerendy o tej samej nazwie.
Menu - informacje:
Działanie: Pozwala na zapisanie do bazy danych informacji o produktach dostępnych w pizzerii na podstawie kwerendy o tej samej nazwie.
Pracownicy - informacje:
Działanie: Pozwala na zapisanie do bazy danych informacji o pracownikach na podstawie kwerendy.
Zamówienia - informacje:
Działanie: Pozwala na zapisanie informacji do bazy danych o zamówieniach jak i na spostrzeżenie jaki pracownik obsługiwał dane zamówienie, nazwę zamawianego produktu oraz dane o kliencie.