acceroz.doc

(658 KB) Pobierz
Baza danych

9



K. Matouk – ćwiczenia z Accessa

 

Bazy danych

A. PROJEKT BAZY DANYCH

Zaprojektować bazę danych zawierającą informacje o pewnej FIRMIE.

Potrzebne są informacje o

              PRACOWNIKACH,

              GRUPACH (grupach pracowników) i

            ZADANIACH.

 

TABELE

(Koniecznie, ale być może niewystarczające).

TABELA

ATRYBUTY (KOLUMNY)

Pracownik

ID_Pracownika, Imię, Nazwisko, DataUr, Zwierzchnik (identyfikator pracownika w tej samej tabeli)

Grupa

ID_Grupy, Nazwa, ID_Szefa (identyfikator pracownika)

Zadania

ID_Zadania, ID_Grupy, Nazwa, DataRozp, DataZak, MinLiczbaOsób

????

 

 

Klucze, jeśli są pojedynczymi polami, powinny być typu Autonumer.

 

POWIĄZANIA (RELACJE)

(Występują powiązania 1-1 i 1-Wiele.)

·         Grupy są tworzone tylko na potrzeby zadań (jednej grupie odpowiada jedno zadanie i odwrotnie). Zadanie może być jednak utworzone przed utworzeniem grupy. Sprzężenie powinno być takie, by można było oglądać wszystkie zadania, nie tylko te, którym przydzielono grupy.

(uwaga: należy połączyć pole IDGrupy (od tabeli Zadania) z IDgrupy (do tabeli Grupa). Na pierwszy rzut oka może to wyglądać jako relacja 1-∞, ale w momencie kiedy zmieniamy właściwości pola IDGrupy  (w tabeli Zadania) w miejscu indeksowane na Tak (Bez duplikatów), relacja staje się 1-1).

·         Jeden pracownik może być szefem wielu grup. Grupa nie musi mieć określonego szefa. Więzy integralności mają być sprawdzane, ale niewymuszane (bez operacji kaskadowych). Sprzężenie między tablicami należy określić tak, by w zapytaniach można było oglądać grupy i nazwiska ich szefów oraz grupy nieposiadające szefów.

·         Pracownik może należeć do wielu grup. Grupa może składać się z wielu pracowników. Należy wymusić przestrzeganie więzów integralności i kaskadowe usuwanie i modyfikowanie rekordów.                                                                                                            Relacje

 

WARUNKI POPRAWNOŚCI (REGUŁY)

Jeśli znana jest data urodzenia pracownika (może być pusta), to na pewno spełniony jest warunek, że pracownik ma nie więcej niż 65 lat (nie jest jeszcze na emeryturze).

 

 

B. KWERENDY

W wyznaczonej bazie danych (zawierającej informacje o pracownikach pewnej firmy) należy utworzyć poniższe zapytania:

 

1.      pracownicy (imię, nazwisko, data urodzenia) urodzeni w roku 1970 lub później, uszeregowani malejąco wg wieku,                                                                                               zad1

 

2.      jak wyżej, a ponadto należy podać wiek pracowników (liczbę lat)                                        zad2

 

3.      pracownicy i dane (imiona i nazwiska) ich stałych zwierzchników                                        zad3

 

4.      pracownicy pracujący w grupie pod nazwą „Marketing”; nazwisko i imię pracownika mają się znaleźć w jednym polu (w tej kolejności) o nazwie „Pracownik”; dane mają być uporządkowane rosnąco wg tego pola                                                                                               zad4

 

5.      pracownicy pracujący w grupie o zadanej nazwie (parametr), uporządkowani rosnąco wg nazwisk i imion)

 

6.      pracownicy i liczba grup, w których pracują                                                                                  zad6

 

7.      pracownicy, którzy pracują w więcej niż dwóch grupach i liczba grup, w których pracują

                                                                                                                                                                                zad7

8.      pracownicy urodzeni w roku 1970 lub później i liczba grup, w których pracują           zad8

 

9.      wszyscy podwładni zwierzchnika o zadanym nazwisku (parametr)

 

10.  5 pracowników z największą sumą zarobków (suma po wszystkich grupach)                        zad10

 

 

C. KWERENDY CD

W wyznaczonej bazie danych (zawierającej informacje o pracownikach pewnej firmy) należy utworzyć poniższe zapytania:

 

1.      pracownicy i grupy, w których pracują                                                                                                      zad1cd

(pola: IDPracownika, Pracownik zawierający nazwisko i imię pracownika, IDGrupy, Nazwa grupy).

Uporządkowanie: rosnąco wg pola Pracownik

 

2.      daty urodzenia pracowników, których nazwiska rozpoczynają się podanym ciągiem znaków (parametr)

      (pola: Nazwisko, Imię, DataUr).

      Uporządkowanie: rosnąco wg nazwisk

      UWAGA

      Podanie pustego ciągu znaków powinno spowodować wyświetlenie wszystkich pracowników

 

3.      suma zarobków pracowników:                                                                                                          zad3cd

     Sumowane mają być zarobki >= 400 zł, a wyświetlane tylko sumy zarobków >=1000 zł;

     (pola: Pracownik, Suma zarobków).

     Uporządkowanie: malejąco wg sumy zarobków

 

 

 

 

4.      długości trwania zadań                                                                                                                        zad4cd

      (pola: Szef grupy (nazwisko i imię szefa), Nazwa grupy, Nazwa zadania, Data Rozpoczęcia, Długość zadania (liczba dni, jeśli znane są data rozpoczęcia i data zakończenia zadania, w przeciwnym wypadku - wartość „?”).

      Uporządkowanie: malejąco wg długości zadań

      UWAGA

      Zadania nie muszą mieć przydzielonych grup, a grupy nie muszą mieć wyznaczonych swoich szefów

 

5.      pracownicy i grupy, w których pracują, oraz nazwiska szefów tych grup                   zad5cd

 

6.      nazwy grup i dane ich szefów                                                                                                     zad6cd

     (pola: Szef zawierające Nazwisko i imię, Rok urodzenia).

     Uporządkowanie: wg pola Szef

     UWAGA

     Należy także wyświetlić grupy niemające szefów.

 

7.      zadania, dla których liczba przydzielonych pracowników jest przynajmniej taka, jak podano w polu MinLiczbaPrac)                                                                                                                zad7cd

     UWAGA

     Należy zwrócić uwagę na pola wg, których ma przebiegać grupowanie i pola, które mają być zliczane.

 

8.      zestawienie zawierające grupy i wypłaty w grupach;                                                                zad8cd

zapytanie krzyżowe:

nagłówki wierszy    - nazwa grupy, suma wypłat w danej grupie,

nagłówek kolumny - dane pracownika (nazwisko i imię) (rosnąco),

wartości                  - wypłaty pracownika w danej grupie.

 

9.      to samo, co w zadaniu 8, a oprócz tego nagłówkiem wiersza ma być nazwisko szefa grupy

                                                                                                                                                                               zad9cd



Zadanie 1

 

 

 


Zadanie 2

 

 

 







Zadanie 10

w widoku SQL modyfikujemy instrukcję dodając TOP 5

SELECT TOP 5 Pracownik.Imię, Pracownik.Nazwisko, Sum(PracWGrupie.[Miesięczna Wypłata]) AS [SumazMiesięczna Wypłata]

FROM Pracownik INNER JOIN PracWGrupie ON Pracownik.IDPracownika = PracWGrupie.IDPracownika

GROUP BY Pracownik.Imię, Pracownik.Nazwisko;

 





Zgłoś jeśli naruszono regulamin