Ćwiczenie praktyczne №3-a (2 godz.) Cel pracy: Zapoznanie się ze sposobami tworzenia bazy danych oraz jej obiektów w środowisku serwera „SYBASE SQL ANYWHERE”. Zadania wykonywane przed przystąpieniem do pracy: 1. Zapoznać się z formatami instrukcji SQL: CREATE TABLE, ALTER TABLE, CONSTRAINT…, INSERT 2. Zapoznać się z proponowanym opisem bazy danych. Opis bazy danych. Przykładowa baza wypożyczalni samochodów składa się z 5 tabel. Tam są przechowywane dane o klientach, pracownikach, samochodach, miejscach wypożyczania aut oraz dane o wypożyczeniach. Każde wypożyczenie jest odnotowywane w tabeli WYPOZYCZENIA. Każdy klient, samochód, miejsce wypożyczenia i zwrotu, pracownik wypożyczający i przyjmujący posiadają numer (identyfikator), dzięki któremu mogą być identyfikowane w tabeli WYPOZYCZENIA. Pojedynczy rekord z tabeli WYPOZYCZENIA opisuje jedno wypożyczenie samochodu. Tak więc, gdy odczytujemy ten rekord, możemy odnaleźć dane o kliencie, który wypożyczył dany samochód, dane o pracowniku który obsługiwał klienta oraz o miejscu wypożyczenia i zwrotu samochodu. Tabela KLIENCI przechowuje dane na temat klientów wypożyczających samochody. Tabela SAMOCHODY zawiera informacje o dostępnych samochodach, które klient może wypożyczyć. Tabela PRACOWNICY zawiera dane wszystkich pracowników firmy wypożyczającej samochody. Tabela MIESCA zawiera informacje o miejscach, z których klient wypożyczył samochod, oraz informacje o miescach zwrotu. Tabela WYPOZYCZENIA zawiera wszelkie informacje o samochodach, miejscu wypożyczenia i zwrotu, klientach, dacie itd. wypożyczonych Schemat bazy danych jest pokazany na poniższym rysunku. Strzałkami są zaznaczone związki pomiędzy tabelami. Inskrypcja przy strzałkach oznacza atrybuty połączenia tych tabel, to znaczy, że wartość atrybutu klucza obcego tabeli z której wychodzi strzałka musi mieć jedną z wartości atrybutu klucza pierwotnego tabeli na którą wskazuje ta strzałka. Schemat bazy danych Przykłady kodów SQL: 1. Stworzenia tabeli: CREATE TABLE KLIENCI ( NR_KLIENTA CHAR(8) NOT NULL, IMIE VARCHAR(20) NOT NULL, NAZWISKO VARCHAR(20) NOT NULL, NR_KARTY_KREDYT CHAR(20) , FIRMA VARCHAR(40) , ULICA VARCHAR(24) NOT NULL, NUMER CHAR(8) NOT NULL, MIASTO VARCHAR(24) NOT NULL, KOD CHAR(6) NOT NULL, NIP CHAR(12) , NR_TELEFONU CHAR(16) , PRIMARY KEY (NR_KLIENTA)); 2. Wpisanie danych: INSERT INTO KLIENCI VALUES ('00000001', 'JAN', 'KOWALSKI', NULL, NULL, 'KOCHANOWSKIEGO', '3', 'WROCLAW', '37-300', NULL, '167-763-234'); 3. Stworzenie klucza obcego: alter table pracownicy add foreign key "FK_pracownicy_NR_MIEJSCA_miejsca" (miejsca) references miejsca (NR_MIEJSCA) on update restrict on delete restrict; Kolejność wykonania ćwiczenia praktycznego Ćwiczenie składa się z dwóch etapów. Na pierwszym etapie student tworzy bazę danych ze wszystkimi obiektami z małą ilością danych w tablicach. Na drugim etapie student korzysta z plików opracowanych przez prowadzącego ćwiczenia dla uzupełnienia przykładowej bazy testowymi danymi. Etap 1. Tworzenie bazy danych: 1.1. Uruchomić serwer „SYBASE SQL ANYWHERE” i stworzyć bazę danych. 1.2. Stworzyć plik z kodami SQL dla tworzenia tabel oraz ich atrybutów. 1.3. Uruchomić program ISQL, w którym uruchomić opracowany plik z kodami SQL dla stworzenia tabel oraz ich atrybutów. 1.4. Stworzyć plik z kodami SQL INSERT dla uzupełniania tabel bazy danych (2-3 rekordy do każdej tabeli). 1.5. Uruchomić program ISQL, w którym uruchomić plik z kodami SQL INSERT dla uzupełniania tabel bazy danych. 1.6. Otrzymać wydruk każdej tabeli bazy danych. 1.7. Zachować wszystkie pliki. Etap 2. Uzupełnienie przykładowej bazy. 2.1.Otrzymać pliki od prowadzącego ćwiczenia dla stworzenia tabel, ich atrybutów oraz uzupełniania tabel. 2.2. Zachować wszystkie pliki bazy danych. Wymogi do sprawozdania: 1. Nazwisko studenta, grupa, temat ćwiczenia. 2. Wydruki kodów SQL, treści tabel Pytania kontrolne 1.Omów przeznaczenie kluczy pierwotnych oraz kluczy obcych w bazie danych 2.Omów kolejność uzupełnienia tabel w bazie danych tekstowymi danymi 3.Omów przykłady integralności encji oraz integralności odwołań przykładowej bazy danych Żeby zaliczyć daną pracę student także powinien znać formaty wykorzystanych instrukcji SQL, oraz główne funkcje serwera SYBASE SQL ANYWAHRE.