Projektowanie baz danych Laboratorium

Podobne dokumenty
Bazy danych Ćwiczenia z SQL

Formularze i raporty w MS Access

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus

1. Administrowanie bazą danych Oracle

T A B E L E i K W E R E N D Y

Microsoft Access zajęcia 3 4. Tworzenie i wykorzystanie kwerend, formularzy i raportów

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Katedra Informatyki i Automatyki Politechnika Rzeszowska. Administrowanie bazą danych Oracle za pomocą programu DBA Studio. I.

1. Język T SQL wprowadzenie do tworzenia zapytań i modyfikowania bazy danych

Tworzenie bazy danych na przykładzie Access

ACCESS ćwiczenia (zestaw 1)

Język SQL. Rozdział 2. Proste zapytania

BAZY DANYCH Panel sterujący

BAZY DANYCH Formularze i raporty

2017/2018 WGGiOS AGH. LibreOffice Base

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

5. Bazy danych Base Okno bazy danych

Formularze w programie Word

Projektowanie baz danych

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

I. Interfejs użytkownika.

Obsługa pakietu biurowego OFFICE

Bazy danych. Polecenia SQL

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

Krzysztof Kadowski. PL-E3579, PL-EA0312,

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

SQL (ang. Structured Query Language)

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Autor: dr inż. Katarzyna Rudnik

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

TI - Bazy TECHNOLOGIE INFORMACYJNE

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

MS Access formularze

Bazy danych Access KWERENDY

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

MS Access - bazy danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

Tworzenie prezentacji w MS PowerPoint

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

5.4. Tworzymy formularze

Ćwiczenie zapytań języka bazy danych PostgreSQL

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

MS Access - bazy danych

Zapytania i wstawianie etykiet z bazy danych do rysunku

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Przygotowanie formularza do wypożyczenia filmu:

Przewodnik Szybki start

I. Program II. Opis głównych funkcji programu... 19

5.5. Wybieranie informacji z bazy

Rozwiązanie. Uruchom program Access 2007.

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Instrukcja użytkownika

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Krzysztof Kluza proste ćwiczenia z baz danych

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Przestrzenne bazy danych Podstawy języka SQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Zadanie 9. Projektowanie stron dokumentu

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

1. MS Access opis programu.

Zadanie 11. Przygotowanie publikacji do wydrukowania

10. Jak to zrobić - Ćwiczenia dla tych co zaczynają...

System imed24 Instrukcja Moduł Analizy i raporty

Bazy danych Karta pracy 1

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Tworzenie bazy danych w środowisku OpenOffice.org Base tabela, formularz, kwerenda, raport

Platforma e-learningowa

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

WPROWADZENIE DO OBSŁUGI BAZ DANYCH MS ACCESS 2007(2010)

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

MsAccess ćwiczenie nr 3 Kwerendy wybierające cd oraz kwerendy funkcjonalne

Projektowanie systemów baz danych

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Utwórz strukturę bazy

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Transkrypt:

Katedra Informatyki i Automatyki Projektowanie baz danych Laboratorium Kierunek: Informatyka (EF-DM) Rok: 4 Rzeszów 2009

BAZY DANYCH LABORATORIUM T A B E L E i K W E R E N D Y W bazie danych programu Microsoft Access informacje rozmieszczone tabelami w tabelach.! " # o czekoladkach ich nazwy, rysunki i koszty produkcji. Poszczególne pola w $ % informacji. & $ informacje o konkretnej osobie, przedmiocie czy zdarzeniu. Przydatne klawisze ' $ Klawisz lub kombinacja klawiszy Shift Tab lub End Home ' ( $ Poprzednie pole Ostatnie pole w rekordzie Pierwsze pole w rekordzie ' $ Klawisz lub kombinacja klawiszy ' ( $% Poprzedniego rekordu Ctrl + Ostatniego rekordu w polu Ctrl + Pierwszego rekordu w polu Ctrl + End ostatniego pola w ostatnim rekordzie Ctrl + Home Pierwszego pola w pierwszym rekordzie

Klawisze skrótu Klawisz skrótu Ctrl + Ctrl + ; Ctrl + : Shift F2 Funkcja & % Wstawianie aktualnej daty Wstwianie aktualnego czasu # $ C2.1. Kopiowanie danych )*+ 1. Firma1.mdb PRACOWNICY-próby 2. 3.! 4.! 5. Do nowego pustego rekordu do pola NAZWISKO z poprzedniego rekordu, 6. Do pola " nr 8. ' $ PRACOWNICY-próby, z opcji Plik wybieramy Zapisz jako/eksportuj, W oknie Zapisz jako wybieramy Wpisujemy i naciskamy OK., # ( Nowy, #! "#!$ ' % (NAZWISKO), ( $ Ctrl +, '8,, 8, ( Kopiuj, ' % % & Wklej. C1-2

)** $ % # 12 15 '12 %% rekordu 15 ( Kopiuj, ( Nowy, ( Wklej. C2.2. Usuwanie danych )*- &, $ Del. $ / '0 $!%&'&()*)+,(-+*(((.* Mamy dwa sposoby sortowania danych: 1 % % 2 $ przycisków ()/ (0 i ()/ 1+ 1 % menu Rekordy wybieramy polecenie Filtruj $Zaawansowany filtr/sortowanie )*3 1. $ " Zamojski #' " ( ), 2. ) "! 3. $ # " *"! 4. + C1-3

4 & Nazwisko ()/ (0, Z menu Rekordy Filtruj $ Zaawansowany filtr/sortowanie, # % $ $ $ Usuwamy stare warunki sortowania & $ Klucza sortowania.nazwisko), W siatce projektowej kliknij w komórce Sortuj dla wybranego pola (NAZWISKO), & $#0 Zdefiniuj drugi klucz sortowania dla pola ( Zastosuj filtr /sortowanie. Obejrzyj wyniki sortowania nazwiska Zamojski )*5 1.! # Nazwisko Zamojski 2. # # Z menu Rekordy Filtr $ Zaawansowany filtr/sortowanie, & Kryteria.NAZWISKO), #.Zamojski), Z menu Filtr Zastosuj filtr/sortowanie, ( 0/23+)(. C2.4. Tworzenie nowej tabeli Tworzenie tabeli przebiega w dwóch etapach. Pierwszy polega na drugi na wprowadzeniu do niej danych. C1-4

( % $ ( % 673 % 8.! [ ] 4$ Opis pól Tekst pole tekstowe Memo pole komentarza Liczba pole liczbowe Data/Godzina pole daty i czasu, Waluta pole liczbowe ze znakiem waluty Licznik '% Tak/Nie %'9:#4:;<:=1, ' % $ % % #$ % : % % & Rozmiar pola. 6*57/ Format 1 > wprowadzania Maska wprowadzania wzorzec wprowadzania wszystkich danych w polu nazwa pola w tabeli # 9%? $ & $ % Wymagany rekordzie, % % @@@@ dozwolona Indeksowany )*7!, # # ( # & % Nazwach Pól45*5, ( # )*A 1.! "#!# $ "# %!# Opis, C1-5

2., #, " '! 3. & Klucz podstawowy dla pola Identyfikator, 4. -Numer grupy. Nazwa pola Typ danych # Identyfikator Tekstowy 1. Rozmiar pola: 5 2. < 8 wpisaniu danych (>) 3. 9% 8 $ AB 4. & $8 % > $8B" $ :CD 5. # % 8 : Tekstowy Maksymalna liczba znaków 30 Cena Walutowy * $ E Opis Memo W oknie bazy danych na karcie Tabela Nowy, W oknie dialogowym Nowa tabela $Widok projekt i OK., & Nazwa pola $ pierwszego pola (Identyfikator), 'Typ pola. Tekstowy) ( & Rozmiar pola,,.5), & Format.>), & #-/4,,(*5 (AB*), & 1/) 46 ()3)(1/006(,7+)(89: & Wymagany Tak. '$ % Klucz podstawowy to pole, które w sposób jednoznaczny identyfikuje ". % " $ % (klucza podstawowego). C1-6

& $ (Identyfikator), ( Klucz podstawowy, ( Zapisz jako. Wpisz;16/1(-(/,< C2.5. Kwerendy Kwerendy tworzymy na podstawie tabel jak i innych kwerend. & " %$ % & > & Typy kwerend: Rodzaj kwerendy Krótki opis kwerendy *(*( 1 " 0 % Kwerenda F parametryczna kryterium w siatce projektowej *((* Kwerenda funkcjonalna F % % % $ F 0 % # 3 $!%&=&*(*(*( )*G 1. Na podstawie tabel Pracownicy! # $&'()##)**&$+,(-$'# 2. )" "! 3. -!. # $Kwerendy, ( Nowy $Nowa Kwerenda $Widok Projekt, ( OK., C1-7

W oknie dialogowym ")+6 $Tabele,, $ 0 % (Pracownicy), ( Dodaj $Zamknij, # % 0 % $. >), ( Uruchom,, %$ ( Zapisz, # % $H/1(-(/,16, C2.7. Modyfikowanie kwerend )*I 1.. -! w oknie projektowym. Zdefiniuj,, *. 2. Zapisz zmiany. Z menu Widok Projekt kwerendy, Kliknij w komórce Sortuj % % (Sortuj dla Nazwisko), & $ sortowania, ( $#0 Kliknij na w komórce ", dla pola > ( Uruchom, Zapisz zmiany. )*+E 1. ADRESY DOMOWE PRACOWNIKÓW w oknie " "%!,, # %.$ /*0+1 2. 3. $!! # $ Kwerendy kwerendy przeznaczonej do modyfikacji (ADRESY DOMOWE PRACOWNIKÓW) C1-8

( Projektuj Kliknij w komórce Kryteria $ % % $ wybierane informacje (Miasto) Wpisz warunek kryterium (Warszawa) & %.&4/2, %. MIASTO) ( Uruchom Z menu Plik Zapisz jako/eksportuj W oknie dialogowym Zapisz jako $.Adresy z (0*;/1(-(/,16<:!%&?& 3*4()(.**(/((.* % % % 8 > J$ >= J$ < - mniejszy <= - mniejszy równy = - równy <> J ' 2 &? $ warunków (AND) :? % $ warunków (OR) )*++! # # "! # " ' 23, &" 4! #,, ("./0! W oknie bazy danych na karcie Kwerendy % obiektu @;/1(-(/,16<: ( Otwórz 1 0 $ STAWKA wynikach kwerendy ( Widok kwerendy C1-9

& Kryteria wybranego pola (Stawka/ wyboru (<12) ( Uruchom Z menu Plik Zapisz jako/eksportuj # $.)* AB% ;/1( -(/, 16<) OK. )*+* STAWKA # # #! # )"! # ' 5,! " ' 6, &" (" 12! 4 " % % logiczny AND% 8 Warunek 1 AND Warunek 2 # $ Kryteria odpowiedniego pola ( Widok kwerendy & Kryteria wybranego pola (STAWKA/ (>7 AND <9) ( Uruchom,' Zapisz jako/eksportuj # $.)* 16 C D ;/1( -(/, 16</ OK.!%&D&E*01+-* )**+, $ Kontakty $ 8B4 B$( &K : Kraj, Nazwa firmy, Telefon Do Pracy, Telefon Domowy. # )*** F$Adresy domowe pracowników Legionowa i Piaseczna. Z menu Widok wybierz Widok SQL C1-10

Katedra Informatyki i Automatyki Politechnika Rzeszowska www.kia.prz-rzeszow.pl Formularze i raporty w MS Access I. Formularze Formularze Access mają wiele zastosowań. Przede wszystkim używa się ich do wprowadzania i modyfikacji danych. Można je także traktować jako jedną z form prezentacji danych. Istnieje możliwość budowania formularzy będących swego rodzaju okienkami dialogowymi, zawierającymi pola tekstowe, przyciski oraz przypisywania im odpowiednich akcji (np. po naciśnięciu przycisku). Przy projektowaniu formularza należy określić jakie elementy będzie zawierał oraz wybrać tabelę(e) i pola z których będzie korzystał. Połączenie między formularzem i jego źródłem rekordów jest realizowane za pomocą obiektów graficznych zwanych formantami (np. pole tekstowe wyświetlające i pozwalające na modyfikację zwartości pola rekordu). Access oferuje kilka metod tworzenia formularzy. Najprostszym i najszybszym sposobem jest wykorzystanie "Kreatora formularzy". Kreator formularzy przyspiesza proces tworzenia formularza ponieważ wykonuje wszystkie prace podstawowe w imieniu użytkownika. Gdy używa się Kreatora formularzy, program Microsoft Access podsuwa pytania i na podstawie odpowiedzi użytkownika tworzy formularz. W celu "ręcznego" sporządzenia nowego formularza jak również dostosowania automatycznie wygenerowanego formularza do własnych potrzeb należy wybrać opcję "Widok Projekt". Wyświetlenie działającego formularza uzyskuje się za pomocą przycisku "Widok formularz". We wszystkich zadaniach wykorzystywana jest baza danych "Firma.mdb". Zadanie 1. Utworzyć nowy formularz dla tabeli Towary używając opcji "Autoformularz". Użyć go do przeglądania, modyfikacji oraz dopisywania nowych danych. 1. W widoku bazy danych wybrać zakładkę "Formularze". 2. Nacisnąć przycisk "Nowy". 3. Przeglądnąć listę dostępnych opcji. 4. Wybrać opcję automatycznego tworzenia formularza w układzie kolumnowym dla tabeli Towary. 1

5. Po utworzeniu formularza przeglądnąć kilka rekordów, zmienić cenę napoju Mirinda, wagę chleba razowego oraz cenę artykułu w rekordzie numer 6. Ile rekordów ma tabela Towary? Wskazówka: Aby szybko przejść do konkretnego rekordu należy wpisać jego numer w polu numeru. 6. Zapisać utworzony formularz. 7. Otworzyć zapisany formularz i za jego pomocą dopisać informację o nowym produkcie. Identyfikator produktu powinien być zgodny z konwencją przyjętą w tabeli. 8. Zamknąć formularz, otworzyć tabelę Towary i sprawdzić, czy dołączony jest do niej nowy rekord. 9. Otworzyć formularz, dopisać kolejną informację o nowym produkcie, a następnie, pozostając w oknie formularza usunąć wpisany rekord. Wskazówka: Aby zaznaczyć cały rekord w celu jego usunięcia należy wybrać opcję Zaznacz rekord w podmenu Edycja. Zadanie 2. Zmienić wygląd formularza utworzonego w zadaniu 1. 1. Otworzyć formularz w trybie projektowania. Zaobserwować podział na sekcje. 2. Wydłużyć okno formularza (sekcję Szczegóły ). 3. Zaznaczyć formanty związane z symbolem kategorii (pole tekstowe i etykietę). Przenieść je w miejsce obok identyfikatora. 4. Zmienić tekst etykiety Artykuł na Nazwa artykułu. 5. Zmienić czcionkę wszystkich pól edycyjnych na grubą. 6. Zmodyfikować tło formularza. Wskazówka: Aby wyświetlić właściwości formularza należy kliknąć dwukrotnie selektor formularza (pole, w którym schodzą się linijki). 7. Ustawić kolor tła sekcji Szczegóły na szary. Wskazówka: Aby wyświetlić właściwości sekcji formularza należy nacisnąć prawy przycisk myszy na tle formularza i z wyświetlonego menu wybrać opcję Właściwości. 8. Zmienić wygląd pól edycyjnych w formularzu ustawić styl formantu na wklęsły oraz zmienić kolor tła edycyjnego na biały. 2

Wskazówka: Opcje dotyczące właściwości i kolorów formantu dostępne są po kliknięciu prawym przyciskiem myszy na formancie Zadanie 3. Ustawić porządek sortowania danych. Ustawić filtr danych. Wskazówka: Sortowanie i filtrowanie dla formularzy realizuje się podobnie jak dla tabel (zob. ćwiczenie 2) 1. Przeglądnąć dane za pomocą formularza. Zaobserwować porządek rekordów. 2. Kliknąć na polu edycyjnym zawierającym nazwę artykułu. 3. Wybrać z menu opcję Rekordy->Sortuj->Rosnąco lub odpowiedni przycisk na pasku narzędzi. 4. Zaobserwować kolejność rekordów. 5. Powtórzyć punkty 3 i 4 sortując dane według identyfikatora i ceny. 6. Dopisać trzy nowe rekordy, zawierające tę samą nazwę artykułu: Chleb zwykły, lecz różne ceny i dostawców, których nazwy należy wpisać w polu Opis. 7. Posortować dane według wartości dwóch pól jednocześnie: nazwy artykułu i ceny. Wskazówka: Sortowanie według wartości kilku pól jednocześnie realizuje się za pomocą opcji Rekordy->Filtr- >Zaawansowany filtr/sortowanie. Następnie należy wybrać opcję Zastosuj filtr/sortowanie 8. Wyświetlić informacje tylko o asortymencie chlebów. W tym celu ustawić odpowiedni filtr w opcji Rekordy->Filtr->Zaawansownany filtr/sortowanie Wskazówka: W kryterium filtru można użyć operatora LIKE, np. LIKE *arg* spowoduje wybranie tych rekordów, w których odpowiednie pole zawiera ciąg znaków arg Zadanie 4. Dołączyć pole wyświetlające cenę z podatkiem VAT, zakładając, że pole tabeli Towary zawiera cenę bez tego podatku, zaś o stawce decyduje zawartość nowego pola tabeli o nazwie Stawka VAT. 1. Dodać pole Stawka VAT (tekstowe o dł. 1) do tabeli Towary. 2. Wypełnić pole Stawka VAT znakami A i B dla wszystkich towarów. 3. Dołączyć nowe pole tekstowe do formularza oraz etykietę Cena z VAT. Wskazówka: Aby dołączyć nowy formant do formularza, należy z paska narzędzi Przybornik wybrać odpowiedni typ formantu, a następnie narysować go na formularzu. 4. Kliknąć na nowym polu tekstowym (z napisem niezwiązany ) i wpisać wyrażenie obliczające cenę z podatkiem, według reguły: Stawka = 1.22 (gdy pole Stawka VAT ma wartość A ) lub 1.07 (w przeciwnym przypadku) Cena z VAT = cena * stawka 3

Wskazówka: Wyrażenie obliczające wartość pola najłatwiej wpisać klikając przycisk... obok pola Źródło formantu w oknie właściwości formantu. Wyrażenie piszemy używając składni języka Visual Basic for Applications. 5. Usunąć możliwość edycji pola tekstowego wyświetlającego cenę z VAT (ustawić odpowiednio atrybuty Zablokowany i Włączony ) oraz ustawić format wyświetlanych w nim danych na walutowy. 6. Sprawdzić poprawność obliczeń wpisując cenę 1.00 zł i zmieniając symbol kategorii A lub B. Zadanie 5. Utworzyć tabelę zawierającą stawki podatku. Zmodyfikować formularz tabeli Towary tak, aby można było wybrać nową stawkę podatku dla artykułu z rozwijanej listy. 1. Utworzyć nową tabelę Stawki zawierającą następujące pola: Symbol (tekstowe o długości 1, będące kluczem podstawowym), Nazwa (tekstowe, długość 50), Stawka (numeryczne bez miejsc dziesiętnych). Wypełnić tabelę odpowiednimi wpisami typu A ; Stawka 22% ;22 itd. 2. Przy otwartym projekcie formularza wybrać z przybornika Pole kombi i narysować prostokąt na formularzu, obok pola Stawka VAT. 3. Uruchomiony zostanie kreator pól kombi: wybrać pobieranie wartości z tabeli Stawki VAT ustawić pole Nazwa jako pole, którego wartości będą wyświetlane wybrać przechowywanie wartości formantu w polu Stawka VAT formularza wpisać odpowiednią etykietę dla pola kombi. 4. Przetestować działanie nowo wprowadzonego pola. Gdy jest ono poprawne można usunąć podformularz Stawki VAT, gdyż staje się zbędny. II. Raporty Raport służy do prezentacji danych w postaci drukowanej. Raport można formatować, nadając mu wygląd zgodny z oczekiwaniami użytkownika. Jako źródło danych dla raportu można wybrać tabelę, kwerendę lub zapytanie SQL. Można również umieszczać dane będące wynikiem obliczeń przeprowadzanych automatycznie przed wydrukowaniem raportu. Tworzenie i modyfikacja raportów przebiega w sposób analogiczny jak w przypadku formularzy. Do dyspozycji użytkownika są formanty, lecz w raporcie służą one jedynie do wyprowadzania danych. Zadanie 6. Utworzyć nowy raport dla tabeli Towary za pomocą kreatora. 1. W widoku bazy danych wybrać zakładkę Raporty. 2. Nacisnąć przycisk Nowy. 3. Zapoznać się z możliwymi sposobami tworzenia raportów. Wybrać opcję tworzenia raportu w postaci tabeli na podstawie danych z tabeli Towary. 4. Przeglądnąć utworzony raport i zapisać go. 4

Zadanie 7. Zmodyfikować raport tak, aby jego format odpowiadał upodobaniom użytkownika 1. Wyświetlić raport w trybie projektowania i zaobserwować podział na sekcje. 2. W opcji Plik->Ustawienia strony wybrać orientację pionową, a następnie za pomocą opcji Podgląd wydruku sprawdzić, czy wszystkie kolumny mieszczą się na stronie. 3. Rozmieścić wszystkie elementy raportu tak, aby były widoczne na pionowej stronie A4. Wskazówka: W tym celu można usunąć zbędną kolumnę Symbol kategorii (zarówno tytuł w nagłówku jak i pole tekstowe w sekcji Szczegóły ). Pole Opis można przenieść do drugiej linii pod nazwą artykułu (po zwiększeniu rozmiaru sekcji nagłówka i szczegółów), zaś pole Stawka VAT przesunąć w lewo. Wyrażenie drukujące numer strony w stopce należy również przesunąć w lewo. Zadanie 8. Dodać kolumnę wyświetlającą cenę z podatkiem VAT. 1. Dodać etykietę nowej kolumny w nagłówku. 2. Z przybornika wybrać pole tekstowe i umieścić je w sekcji szczegółów. 3. Wypełnić właściwość Źródło formantu wyrażeniem obliczającym cenę z VAT. Wskazówka: Jako źródło formantu wyświetlającego cenę z VAT należy wpisać to samo wyrażenie, co w punkcie 4 zadania 3.4. 4. Wyświetlić przygotowany raport. Zadanie 9. Zmodyfikować raport tak, aby wyświetlał towary pogrupowane według stawek podatkowych. 1. Wybrać opcję Widok->Sortowanie i grupowanie przy włączonym trybie projektowania raportu. 2. Jako pierwsze pole grupowania wybrać Stawka VAT, a drugie Artykuł 3. Wyświetlić raport. 4. Przed każdą grupą podatkową dodać nagłówek z informacją o stawce. Wskazówka: W oknie Sortowanie i grupowanie włączyć opcję Nagłówek grupy przy polu Stawka VAT. W utworzonym nagłówku dodać odpowiednią etykietę i pole tekstowe wyświetlające zawartość pola Stawka VAT. 5. Usunąć zbędną już kolumnę Stawka VAT z raportu. 5

6. Obejrzeć przygotowany raport. Zadanie 10. Zmodyfikować raport tak, aby na końcu wyświetlana była ilość wpisów oraz średnia cena towarów (bez podatku). 1. Zwiększyć rozmiar sekcji Stopka raportu (standardowo jest ona zredukowana do zera). 2. Dodać w stopce raportu 3 etykiety i pola tekstowe wyświetlające ilość oraz średnią cenę artykułów. 3. Wpisać źródło formantu dla nowo utworzonych pól tekstowych. Wskazówka: W wyrażeniu można wykorzystać następujące funkcje: suma, średnia, min, max, zlicz podając jako argument nazwę wybranego pola raportu (zwykle z sekcji Szczegóły ) 4. Oglądnąć utworzony raport. Zadania do samodzielnego wykonania 3.A. Zaprojektować formularz dla tabeli Kontakty utworzonej w ćwiczeniu 2.2.1. 3.B. Zaprojektować raport wyświetlający dane z kwerendy utworzonej w ćwiczeniu 2.2.2. 3.C. Zmodyfikować raport z zadania 10, tak aby zamiast symbolu był widoczny opis stawki podatkowej (Wskazówka dane muszą pochodzić z dwóch tabel: Towary i Stawki) 6

Katedra Informatyki i Automatyki PRz 1. Administrowanie bazą danych Oracle 1.1. Wprowadzenie DuŜe bazy danych pracują zwykle w konfiguracji klient-serwer. W środowisku sieciowym oznacza to, Ŝe komputer pracujący jako serwer bazy danych odpowiada na zapytania kierowane ze stacji uŝytkowników klientów bazy (Rys. 1.1). Zapytania te są najczęściej generowane automatycznie przez oprogramowanie uŝytkowe klienta. Rys. 1.1. Architektura typu klient-serwer w środowisku sieciowym Oprogramowanie zainstalowane na stacji klienta umoŝliwia formułowanie i wysyłanie do bazy zapytań języka SQL. Na komputerze pracującym jako serwer znajdują się pliki bazy danych oraz oprogramowanie umoŝliwiające dostęp do zapisanych tam informacji. Ponadto serwer bazy danych przy pomocy Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz systemu zarządzania bazą danych (SZBD) dba o spójność i bezpieczeństwo bazy danych. 1.2. Enterprise Manager Console Enterprise Manager Console jest zintegrowanym graficznym narzędziem pozwalającym w prosty sposób administrować bazą danych Oracle Błąd! Nie moŝna odnaleźć źródła odwołania.. Składa się z siedmiu modułów, które są umieszczone jeden pod drugim w formie rozwijanego drzewa, dzięki czemu poruszanie się pomiędzy nimi i ich funkcjami jest bardzo wygodne. Po prawej stronie ekranu wyświetlane są informacje oraz elementy związane z wykonywanym zadaniem. W skład Enterprise Manager Console wchodzą moduły zarządzające: Instance, Schema, Security, Storage, Distributed, Warehouse, Workspace, XML Database. Zostaną one scharakteryzowane poniŝej. Instance Management słuŝy do monitorowania i zarządzania procesami w bazie danych. Pozwala między innymi na: otwieranie i zamykanie bazy danych, przeglądanie i edycję wartości inicjowanych parametrów, oglądanie aktualnych sesji SQL, zarządzanie róŝnymi przechowywanymi konfiguracjami, zarządzanie CPU i równoległymi źródłami w bazie danych, zarządzanie sesjami uŝytkowników, monitorowanie długo wykonywanych operacji. Schema Management pozwala na tworzenie, zamianę lub usuwanie schematów obiektów takich jak: tabele, widoki, indeksy, procedury i funkcje oraz pakiety składowane, sekwencje, typy. Ponadto wspomaga takie zadania jak partycjonowanie tabel i indeksów, indeksowanie i organizowanie tabel. Security Management pozwala autoryzowanemu administratorowi na zarządzanie uŝytkownikami bazy danych, np. tworzenie, zmienianie i usuwanie, określanie ról i profili, nadawanie przywilejów oraz kontrolowanie dostępu do obiektów bazy. Pozwala takŝe uŝytkownikom na przydzielanie i odbieranie praw do swoich danych innym osobom. Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz Storage Management pozwala na tworzenie i składowanie obiektów takich jak przestrzennych tablic, plików danych itp. MoŜna z jego pomocą takŝe archiwizować dane. Distributed Database Management pozwala na zarządzanie sprzecznymi transakcjami, tworzenie i usuwanie linków do baz danych, uŝywanie strumieni do replikacji baz, zarządzanie zaawansowanymi kolejkami wiadomości, sterowanie replikacjami typu multi-master. Warehouse Management zarządzanie hurtowniami danych. Hurtownia danych jest to baza danych która jest zaprojektowana dla wykonywania zapytań i tworzenia analiz, częściej niŝ dla przetwarzania transakcyjnego. Workspace Management zarządzanie przestrzeniami projektowymi (ang. workspace). Przestrzeń projektowa jest wirtualnym środowiskiem, które jeden lub więcej uŝytkowników moŝe wymieniać między sobą. Workspace Management zezwala na: włączanie lub wyłączanie wersjonowania tabel, tworzenie, edycję i usuwanie przestrzeni projektowych, cofanie lub odświeŝanie przestrzeni potomnych, zobaczenie róŝnic pomiędzy dwoma przestrzeniami, zarządzanie prawami dla przestrzeni. XML Database Management Oracle dostarcza wsparcia dla baz opartych na XML-u, UmoŜliwia konfigurację Bazy XML, tworzenie zasobów w Bazach XML a takŝe stosowanie uprawnień dla nich, tworzenie tabel i widoków opartych na bazach XML-owych. 1.3. Obiekty lokalnej bazy danych 1.3.1 UŜytkownicy KaŜdy uŝytkownik bazy ma imienne, chronione hasłem konto. Zapewnia to bezpieczeństwo danych oraz pozwala zbudować odpowiedni system uprawnień (ról i przywilejów). Wszystkie obiekty bazy posiadają właściciela (OWNER), który decyduje o udostępnieniu obiektów innym uŝytkownikom bazy. W lokalnej bazie moŝna wyróŝnić m.in. następujących uŝytkowników: Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz SYS uŝytkownik systemowy występujący w kaŝdej bazie danych Oracle; jest on właścicielem słownika bazy, SYSTEM uŝytkownik systemowy występujący w kaŝdej bazie danych ORACLE; jest pierwszym administratorem bazy, SCOTT przykładowy uŝytkownik testowy bazy Oracle. 1.3.2 Tablice Wszystkie dane przechowywane w bazie danych Oracle są zapisywane w postaci tablic. Tablica jest identyfikowana w bazie przez unikatową w zbiorze obiektów danego uŝytkownika nazwę. RóŜni uŝytkownicy mogą zatem posiadać tablice o tej samej nazwie i innej zawartości, co jest moŝliwe dzięki identyfikowaniu obiektów w bazie nie tylko przez ich nazwę ale takŝe przez nazwę właściciela. Przykładowo SCOTT.EMP oznacza tablicę EMP, której właścicielem jest uŝytkownik SCOTT. 1.4. Praca z Enterprise Manager Console 1.4.1 Uruchomienie aplikacji i logowanie do bazy danych 1. Wybrać program Enterprise Manager Console z Menu Start. 2. Gdyby pojawiło się okno, z opcjami Launch standalone lub Login serwer, naleŝy wybrać pierwszą z nich i nacisnąć przycisk OK. 3. UkaŜe się główny panel programu, w którym naleŝy spróbować rozwinąć pierwszą gałąź. 4. Przed uzyskaniem dostępu do bazy naleŝy wypełnić odpowiednie pola Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz w oknie logowania (Rys. 1.2) 1. Rys. 1.2. Okno logowania do bazy Oracle 5. Po poprawnym zalogowaniu drzewo zostanie rozwinięte, ukazując poszczególne moduły programu (Rys. 1.3). 1.4.2 Tworzenie nowych tabel Utworzyć w bazie danych nowe tablice pracownik, zespół i etat przyjmując schematy relacji odpowiednio jak w Tab. 1.1, Tab. 1.2 i Tab. 1.3. 1. Rozwinąć gałąź Schema, a następnie Table. 2. Kliknąć prawym przyciskiem myszy w dowolnym miejscu rozwiniętej gałęzi i wybierać opcję Create Using Wizard Otworzy się kreator, który krok po kroku prowadzi przez proces tworzenia nowej tabeli. 1 W laboratorium KIA PRz naleŝy zalogować się jako studxx, gdzie xx oznacza numer 01...20 z hasłem student Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz Rys. 1.3. Okno główne Oracle Enterprise Manager po zalogowaniu do bazy Rys. 1.4. Tworzenie nowej tabeli za pomocą kreatora Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz 3. Przeanalizować schematy relacji pracownik (Tab. 1.1), zespół (Tab. 1.2) i etat (Tab. 1.3). Zwrócić uwagę na referencje i na tej podstawie zdecydować o kolejności tworzenia tabel. 4. Na kolejnych stronach kreatora naleŝy: wprowadzić nazwę tabeli (Rys. 1.4), wprowadzić atrybuty i typy (Rys. 1.5), wskazać klucz podstawowy, określić, które atrybuty są obowiązkowe lub unikalne, zdefiniować referencje (klucze obce) wprowadzić ograniczenia atrybutów i wartości domyślne, jak podano w kolumnie Ograniczenia integralnościowe. NUMER Tab. 1.1. Schemat relacji pracownik Atrybut Typ (rozmiar) Ograniczenia integralnościowe NAZWISKO ETAT SZEF PRACUJE_OD PŁACA_POD PŁACA_DOD ID_ZESP ID_ZESP NAZWA ADRES NAZWA NUMBER(4) VARCHAR2(15) VARCHAR2(10) NUMBER(4) DATE NUMBER(6,2) NUMBER(6,2) NUMBER(2) klucz podstawowy atrybut obowiązkowy referencja do atrybutu NAZWA relacji ETAT referencja do atrybutu NUMER relacji PRACOWNIK domyślna wartość bieŝącej daty domyślna wartość 0 referencja do atrybutu ID_ZESP relacji ZESPÓŁ Tab. 1.2. Schemat relacji zespół Atrybut Typ (rozmiar) Ograniczenia integralnościowe NUMBER(2) VARCHAR2(20) VARCHAR2(20) klucz podstawowy atrybut obowiązkowy Tab. 1.3. Schemat relacji etat Atrybut Typ (rozmiar) Ograniczenia integralnościowe PLACA_MIN PLACA_MAX VARCHAR2(20) NUMBER(6,2) NUMBER(6,2) klucz podstawowy atrybut obowiązkowy, wartość > 0 atrybut obowiązkowy, wartość <= 5000 Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz 5. Po zakończeniu definiowania nowej tabeli nacisnąć Finish. Przy braku błędów utworzona zostanie nowa tabela widoczna w gałęzi Table. 6. W podobny sposób utworzyć pozostałe tabele. Uwaga: Nie moŝna za pomocą kreatora stworzyć referencji do atrybutu NUMER relacji PRACOWNIK. NaleŜy to zrobić po stworzeniu tabeli zaznaczając ją i przyciskając zakładkę Constraints lub wybierając z menu kontekstowego opcję Design (tryb ręczny tworzenia lub modyfikacji struktury tabeli). Rys. 1.5. Wprowadzanie atrybutów i typów nowej tabeli 1.4.3 Wprowadzanie danych Wypełnić tablice pracownik, zespół i etat wartościami podanymi w Tab. 1.1, Tab. 1.2 i Tab. 1.3. 1. Na podstawie powiązań tabeli zdecydować o kolejności wprowadzania danych do tabel. 2. Kliknąć prawym klawiszem myszy na tablicy, do której wprowadzane będą dane i z menu kontekstowego wybrać opcję Table Data Editor Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz Rys. 1.6. Wprowadzanie danych do tabel w oknie Table Editor 3. W oknie Table Editor (Rys. 1.6) wprowadzić dane rekordu i zatwierdzić przyciskiem Apply. 4. Podobnie postępować dla pozostałych danych i tabel. Tab. 1.4. Dane tabeli pracownik NUMER NAZWISKO ETAT SZEF PRACUJE_ OD 1000 LECH DYREKTOR 01-STY-71 1080 KOLIBEREK SEKRETARKA 1000 20-LUT-83 1010 PODGAJNY PROFESOR 1000 01-MAJ-75 1040 RUS ADIUNKT 1010 15-WRZ-79 1070 MSZYŃSKI ADIUNKT 1010 01-MAJ-85 1060 MISIECKI ASYSTENT 1010 01-MAR-85 1090 PALUSZ ASYSTENT 1040 15-WRZ-89 1020 DELCKI PROFESOR 1000 01-WRZ-77 1030 MALEJA ADIUNKT 1020 01-LIP-68 1100 WARSKI ASYSTENT 1030 16-LIP-87 1110 RAJSKI STAśYSTA 1030 01-LIP-90 1050 LUBICZ ADIUNKT 1000 01-WRZ-83 1120 ORKA ASYSTENT 1050 01-KWI-88 1130 KOLSKI STAśYSTA 1050 01-WRZ-91 PŁACA_ POD 3160 1150 2180 1750 1600 1400 1200 2050 1750 1350 900 1780 1350 900 PŁACA_ ID_ZESP DOD 570 10 10 420 20 20 20 20 20 270 30 30 30 30 40 40 40 Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz Tab. 1.5. Dane tabeli zespół ID_ZESP NAZWA ADRES 10 20 30 40 50 ADMINISTRACJA BAZY DANYCH SIECI KOMPUTEROWE SYSTEMY OPERACYJNE TRANSLATOR Piotrowo 3a WieŜowa 75 Garbary 3 Piotrowo 3a Mansfelda 4 Tab. 1.6. Dane tabeli etat NAZWA PŁACA_MIN PŁACA_MAX STAśYSTA SEKRETARKA ASYSTENT ADIUNKT PROFESOR DYREKTOR 800 900 1000 1600 2000 2500 1000 1200 1600 2000 2500 3200 1.4.4 Zarządzanie prawami uŝytkowników Nadać wybranemu uŝytkownikowi (np. SCOTT) uprawnienia do przeglądania tabeli pracownik. 1. Za pomocą modułu Security wyświetlić role i przywileje jakie posiada w bazie danych uŝytkownik SCOTT. 2. Kliknąć prawym przyciskiem myszy na tablicy pracownik i z rozwiniętego menu wybrać Grant Privileges On... 3. W górnej liście zaznaczyć właściwe uprawnienia, w dolnej wybrać uŝytkownika, po czym nacisnąć OK. Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Katedra Informatyki i Automatyki PRz Rys. 1.7. Nadawanie uprawnień do tabeli Wykorzystanie i rozpowszechnianie materiałów bez zgody autorów zabronione

Ćwiczenie 5 Katedra Informatyki i Automatyki Politechnika Rzeszowska Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus C5.I. Wprowadzenie C5.I.1 Ogólna charakterystyka i uruchomienie systemu Język SQL jest uznanym standardem wśród języków dla baz danych, dostępnym w większości komercyjnych i prototypowych systemów. Zaproponowane przez firmę Oracle rozszerzenie języka SQL nosi nazwę SQL*Plus. System jest uruchamiany jako aplikacja Plus32.exe standardowo umieszczona w katalogu c:\orawin95\bin (rys.c5.1). Rys.c5.1 Start systemu SQL*Plus wymaga uruchomienia aplikacji Plus32.exe, Wymagana są przy tym nazwa użytkownika i hasło które podaje się w formularzu postaci jak na rys.c5.2. Po ich wprowadzeniu następuje połączenie z dostępną bazą danych (np. Personal Oracle7) oraz wyświetlenie okna Oracle SQL*Plus (rys.c5.3), co oznacza gotowość do przyjmowania poleceń użytkownika. C5-1

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus Rys.c5.2 Podczas uruchomienia system żąda nazwy użytkownika i hasła. Rys.c5.3 Okno dialogowe SQL*Plus. Podobnie jak w przypadku większości języków programowania, polecenia SQL są wprowadzane w tzw. formacie swobodnym, co oznacza, że między ich jednostkami składniowymi dopuszcza się umieszczanie dowolnej liczby spacji, tabulacji i znaków nowej linii. Polecenia SQL są buforowane, co umożliwia ich edycję i wielokrotne wykonywanie. Wprowadzenie znaku nowej linii przed końcem polecenia SQL powoduje wyświetlenie kolejnego numeru wiersza polecenia i oczekiwanie na kontynuację polecenia. Znakiem kończącym polecenie SQL jest średnik. Wprowadzone polecenie SQL jest przechowywane w buforze do momentu wprowadzenia następnego polecenia. C5.I.2 Polecenia SQL*Plus Polecenia SQL*Plus w odróżnieniu od poleceń SQL są wprowadzane w jednej linii. W przypadku gdy jej długość przekracza rozmiar wiersza ekranu, jest możliwe zastosowanie znaku kontynuacji, którym jest myślnik. Polecenia SQL*Plus nie są buforowane, a użyte po poleceniu SQL nie powodują wymazania bufora. Zatem w buforze jest zawsze przechowywane ostatnio wydane polecenie SQL, bez względu na to, czy użyto po nim polecenia SQL*Plus, czy nie. Poniżej zostaną przedstawione konstrukcje SQL*Plus przeznaczone do edycji bufora i zarządzania sesją SQL. Wprowadzanie i modyfikowanie zawartości bufora append <tekst> input input <tekst> change <stary> <nowy> change <tekst> rozszerza bieżący wiersz bufora o <tekst>; rozszerza bufor o nowe wiersze (ich liczba jest nieograniczona); rozszerza bufor o wiersz <tekst>; zamienia łańcuch znaków <stary> na <nowy> w bieżącym wierszu bufora; usuwa <tekst> z bieżącego wiersza bufora. C5-2

Ćwiczenie 5 Wyświetlanie list list <n> list <m><n> wyświetla zawartość bufora; wyświetla wiersz bufora o numerze <n>; wyświetla wiersze o numerach od <m.> do <n>. Kasowanie clear buffer del kasuje zawartość bufora poleceń; kasuje bieżący wiersz bufora poleceń. Wykonanie run wyświetla i wykonuje polecenie przechowywane w buforze;! <polecenie> umożliwia wykonanie polecenia systemu operacyjnego. Specjalne help describe <relacja> connect <użytk> <hasło> exit wyświetla pomoc składniową; wyświetla schemat relacji; umożliwia zmianę użytkownika; kończy sesję użytkownika. Praca w trybie wsadowym save <nazwa pliku> get <nazwa pliku> start <nazwa pliku> @ <nazwa pliku> ed <nazwa pliku> prompt <tekst> spool <nazwa pliku> spool off out zapisuje zawartość bufora poleceń do pliku dyskowego; wczytuje zawartość pliku do bufora poleceń; wykonuje polecenia zawarte w pliku dyskowym; wykonuje polecenia zawarte w pliku dyskowym; umożliwia edycję pliku; wyświetla <tekst> podczas wykonywania pliku poleceń; powoduje monitorowanie kolejnych poleceń i (lub) wyświetlanych wyników oraz ich zapis do pliku dyskowego; off kończy monitorowanie poleceń i zamyka plik dyskowy, out dodatkowo przesyła plik monitorowanych poleceń na drukarkę. C5.II. Zasady składniowe języka SQL i polecenie select C5-3

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus Polecenie SQL może być zapisane w pojedynczym wierszu lub kilku wierszach. W każdym poleceniu można wyróżnić tzw. klauzule (clauses) rozpoczynające się słowem kluczowym. W celu zwiększenia czytelności polecenia zaleca się pisanie klauzul w osobnych wierszach. Polecenie SQL jest wprowadzane po wyświetleniu znaku zachęty (prompt), którym na rys.c5.3 jest linia: SQL Polecenie może być pisane zarówno dużymi, jak i małymi literami w formacie swobodnym, co oznacza, że trzy następujące polecenia: select nazwisko from pracownik; SELECT NAZWISKO FROM PRACOWNIK; select nazwisko from pracownik; są równoważne. Polecenie może zostać wykonane poprzez: umieszczenie znaku średnika na końcu ostatniej klauzuli, umieszczenie średnika lub znaku / w ostatnim wierszu klauzuli, wprowadzenie / bezpośrednio po znaku zaproszenia, wydanie polecenia run bezpośrednio po znaku zachęty. Najczęściej stosowanym poleceniem języka SQL*Plus jest polecenie select do wyszukiwania informacji w bazie danych. W najprostszej formie, umożliwiającej projekcję danych pojedynczej relacji, polecenie to musi zawierać: klauzulę select wskazującą atrybuty projekcji, klazulę from, wskazującą relację, której dotyczy polecenie. Przykład c5.1 select id_zesp, nazwa from zespół; Przykład c5.2 select * from pracownik; W poleceniu z przykł.c5.1 są wyświetlane zawartości atrybutów id_zesp i nazwa wszystkich krotek relacji zespół, natomiast w poleceniu z przykł.c5.2 wartości wszystkich atrybutów krotek relacji, a więc pełna zawartość informacyjna tej relacji. W nieco bardziej rozbudowanej formie polecenie użyte do projekcji informacji może zawierać: literały (łańcuchy znaków lub daty umieszczone w apostrofach lub liczby), wyrażenia arytmetyczne (nazwy atrybutów i literały numeryczne połączone znakami operacji +, -, *, /), funkcje (operacje na wartościach atrybutów i literałów), C5-4

Ćwiczenie 5 aliasy nazw atrybutów (alternatywne nazwy atrybutów występujące w zapytaniu bezpośrednio po ich właściwych nazwach), operator konkatenacji (umożliwia łączenie wyświetlanych wartości różnych atrybutów w pojedyncze łańcuchy znaków; C5.III. Definiowanie schematu bazy danych Polecenia służące do definiowania schematu bazy danych są podzbiorem SQL*Plus nazywanym językiem definiowania danych DDL. W języku SQL relacje są tworzone za pomocą polecenia create table o następującej postaci ogólnej: create table relacja (nazwa atrybutu typ(rozmiar) [default wartość_domyślna] [[constraint nazwa_ogr] ograniczenie_atr], (nazwa atrybutu typ(rozmiar) [default wartość_domyślna] [[constraint nazwa_ogr] ograniczenie_atr],... [[constraint nazwa_ogr] ograniczenie_rel,...]); W poleceniu create table konieczne jest wyszczególnienie wszystkich atrybutów nowej relacji i ich typów. Dopuszczalne typy atrybutów opisano w tab.c5.1. Dla poszczególnych atrybutów można podać ich wartości domyślne. Także opcjonalnie po typie atrybutu podajemy ograniczenie integralnościowe atrybutu ograniczenie_atr, które może przyjmować wartości zgodnie z tab.c5.2. Jako ostatni element definicji relacji (opcjonalnie) określamy ograniczenia integralnościowe relacji, zadane parametrem ograniczenie_rel. Różnią się one od ograniczeń dla atrybutów tym, że mogą odwoływać się do więcej niż jednego atrybutu relacji. Ograniczeniami tego typu mogą być unique, primary key, references, on delete cascade oraz check. Dodatkowo dla relacji istnieje ograniczenie foreign key umożliwiające zdefiniowanie klucza obcego relacji złożonego z wielu atrybutów. Każdemu ograniczeniu można opcjonalnie przypisać nazwę. Przykład c5.3 create table dydaktycy ( id_dydakt number(2) constraint id_dydakt_pk primary key, nazwisko varchar2(15) not null, tytuł varchar2(10) not null ); Tab.c5.1 Typ atrybutu number number( r) Dopuszczalne wartości i opis Liczby zapisane za pomocą cyfr (0-9), opcjonalnego znaku (+.-) oraz opcjonalnej kropki dziesiętnej. Rozmiar liczby nie może być większy od 38 cyfr. Jak wyżej, z zastrzeżeniem, że rozmiar liczby nie może być większy od r znaków. C5-5

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus number(r,n) Jak wyżej; dodatkowo n określa liczbę cyfr po przecinku chzr ( r) Łańcuchy znakowe stałej długości składające się z dużych i małych liter, cyfr, znaków specjalnych (+,-,%,$,&,itd.), r oznacza długość łańcucha i może przyjmować wartości całkowite od 1 do 255. varchar2( r) Łańcuchy znakowe zmiennej długości składające się z dużych i małych liter, cyfr, znaków specjalnych (+,-,%,$,&,itd.), r oznacza maksymalną długość łańcucha i może przyjmować wartości całkowite od 1 do 2000. varchar( r) Tak jak varchar2 ; zaleca się jednak stosowanie typu varchar2, ponieważ w kolejnych wersjach SZBD Oracle semantyka tego typu może się zmienić. date Data z przedziału od 1 stycznia 4712 p.n.e. do 31 grudnia 4712. long Tak jak chzr, przy czym maksymalna długość łańcucha wynosi 2 GB. long raw Tak jak chzr, ale wykorzystywany do przechowywania danych dowolnego typu (także obrazów i dźwięków). Tab.c5.2 Ograniczenie null not null unique primary key references on cascade delete check Umożliwia nadawanie atrybutowi wartości pustych. Uniemożliwia nadawanie atrybutowi wartości pustych. Znaczenie Atrybut pełni rolę klucza unikalnego relacji (tzn. wartość atrybutu jest unikalna dla wszystkich krotek relacji). Atrybut pełni rolę klucza podstawowego relacji. Określa tzw. ograniczenie referencyjne, tj. referencję do klucza podstawowego lub unikalnego innej relacji. Ograniczenie to jest wykorzystywane do definiowania tzw. klucza obcego relacji. Ograniczenie to wprowadza się dla klucza obcego, np.: id_zesp number(4) references zespół(id_zesp) on delete cascade Jeżeli zostanie usunięta krotka z relacji z kluczem podstawowym, to automatycznie są usuwane te krotki z relacji z kluczem obcym, dla których wartość klucza obcego jest równa wartości klucza podstawowegousuwanej krotki. Określa warunek, który musi być spełniony przez wszystkie wartości atrybutu. C5.IV. Modyfikowanie zawartości relacji Polecenia służące do wypełniania relacji krotkami, modyfikowania zawartości relacji oraz usuwania krotek z relacji wchodzą w skład języka manipulowania danymi - DML. C5.IV.1 Wstawianie krotek W celu wstawienia krotki do relacji stosowane jest polecenie insert postaci: insert into nazwa_relacji [(atrybut, atrybut,...)] values (wartość, wartość,...); Opcjonalna lista atrybutów jest zbędna w przypadku określenia wszystkich wartości atrybutów relacji nazwa_relacji. Wstawiane krotki mogą być wynikiem zapytania select, a więc w ogólności mogą pochodzić z innych relacji. W tym celu stosujemy polecenie insert następującej postaci: insert into nazwa_relacji [(atrybut, atrybut,...)] select lista C5-6

Ćwiczenie 5 from relacja 1 [relacja 2,...]; C5.IV.2 Modyfikowanie krotek Do modyfikowania krotek służy polecenie update następującej postaci: update relacja [alias] set atrybut [, atrybut] = {wyrażenie podzapytanie} [where warunki]; Podobnie jak w przypadku wstawiania krotek do relacji nowe wartości uaktualnianych krotek mogą być wynikiem zapytania select. Przykład c5.3 update pracownik set płaca_pod = (select płaca_pod from dodatki d where d.numer = pracownik.numer) where numer in (select numer from dodatki); C5.IV.3 Usuwanie krotek W celu usunięcia krotki (krotek) z relacji jest stosowane polecenie delete następującej postaci: delete from relacja [where warunki]; Przykład c5.4 delete from pracownik where etat = ASYSTENT ; Polecenie usuwa z relacji pracownik wszystkie krotki opisujące asystentów. C5.V. Przebieg ćwiczenia 1. Upewnić się, że na stacji zainstalowano lokalną bazę Personal Oracle7, która posłuży jako środowisko do ćwiczeń z językiem SQL*Plus. 2. Rozpocząć sesję SQL*Plus uruchamiając program plus32.exe z katalogu c:\orawin95\bin. Jako nazwę użytkownika i hasło wprowadzić po7. Jest to standardowy użytkownik z uprawnieniami administratora sieci. 3. Utworzyć w lokalnej bazie danych nowe tablice pracownik, zespół i etat przyjmując schematy relacji odpowiednio jak w tab.c5.3a, c5.3b, c5.3c. 4. Wypełnić nowe tablice wartościami zgodnie z tab. c5.4, c5.5 i c5.6. Tab.c5.3a: Atrybut Typ (rozmiar) Ograniczenia integralnościowe C5-7

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus NUMER NUMBER(4) klucz podstawowy NAZWISKO VARCHAR2(15) atrybut obowiązkowy ETAT VARCHAR2(20) referencja do atrybutu NAZWA relacji ETAT SZEF NUMBER(4) referencja do atrybutu NUMER relacji PRACOWNIK PRACUJE_OD DATE domyślna wartość bieżacej daty PŁACA_POD NUMBER(6,2) PŁACA_DOD NUMBER(6,2) domyślna wartość 0 ID_ZESP NUMBER(2) referencja do atrybutu ID_ZESP relacji ZESPÓŁ Tab.c5.3b: Atrybut Typ (rozmiar) Ograniczenia integralnościowe ID_ZESP NUMBER(2) klucz podstawowy NAZWA VARCHAR2(20) atrybut obowiązkowy ADRES VARCHAR2(20) Tab.c5.3c: Atrybut Typ (rozmiar) Ograniczenia integralnościowe NAZWA VARCHAR2(20) klucz podstawowy PŁACA_MIN NUMBER(6,2) atrybut obowiązkowy, wartość > 0 PŁACA_MAX NUMBER(6,2) atrybut obowiązkowy, wartość <= 5000 Tab.c5.4: pracownik NUMER NAZWISKO ETAT SZEF PRACUJE_OD PŁACA_POD PŁACA_DOD ID_ZESP 1000 LECH DYREKTOR 01-JAN-71 3160 570 10 1080 KOLIBEREK SEKRETARKA 1000 20-FEB-83 1150 10 1010 PODGAJNY PROFESOR 1000 01-MAY-75 2180 420 20 1040 RUS ADIUNKT 1010 15-SEP-79 1750 20 1070 MUSZYŃSKI ADIUNKT 1010 01-MAY-85 1600 20 1060 MISIECKI ASYSTENT 1010 01-MAR-85 1400 20 1090 PALUSZ ASYSTENT 1040 15-SEP-89 1200 20 1020 DELCKI PROFESOR 1000 01-SEP-77 2050 270 30 1030 MALEJA ADIUNKT 1020 01-JUL-68 1750 30 1100 WARSKI ASYSTENT 1030 15-JUL-87 1350 30 1110 RAJSKI STAŻYSTA 1030 01-JUL-90 900 30 1050 LUBICZ ADIUNKT 1000 01-SEP-83 1780 40 1120 ORKA ASYSTENT 1050 01-APR-88 1350 40 1130 KOLSKI STAŻYSTA 1050 01-SEP-91 900 40 Tab.c5.5: zespół ID_ZESP NAZWA ADRES 10 ADMINISTRACJA Piotrowo 3a 20 BAZY DANYCH Wieżowa 75 30 SIECI KOMPUTEROWE Garbary 3 40 SYSTEMY OPERACYJNE Piotrowo 3a 50 TRANSLATORY Mansfelda 4 Tab.c5.6: etat ETAT PŁACA_MIN PŁACA_MAX STAŻYSTA 800 1000 C5-8

Ćwiczenie 5 SEKRETARKA 900 1200 ASYSTENT 1000 1600 ADIUNKT 1600 2000 PROFESOR 2000 2500 DYREKTOR 2500 3200 5. Wyświetlić nazwisko, etat oraz płacę podstawową pracowników zespołów 10 i 20 zgodnie z alfabetycznym porządkiem nazwisk. 6. Wyświetlić nazwiska i etaty wszystkich asystentów zespołu 20. 7. Wydać zapytanie powodujące wyświetlenie następujących informacji: Informacje o pracownikach -------------------------------------------------------------------------------------------------------------------------------------------------------------- Pracownik LECH pracuje na etacie DYREKTOR od 01-JAN-71 Pracownik KOLIBEREK pracuje na etacie SEKRETARKA od 20-FEB-83 Pracownik PODGAJNY pracuje na etacie od 01-MAY-75 Pracownik RUS pracuje na etacie ADIUNKT od 15-SEP-79 Pracownik MUSZYŃSKI pracuje na etacie ADIUNKT od 01-MAY-85 Pracownik MISIECKI pracuje na etacie ASYSTENT od 01-MAR-85 Pracownik PALUSZ pracuje na etacie ASYSTENT od 15-SEP-89 Pracownik DELCKI pracuje na etacie PROFESOR od 01-SEP-77 Pracownik MALEJA pracuje na etacie ADIUNKT od 01-JUL-68 Pracownik WARSKI pracuje na etacie ASYSTENT od 15-JUL-87 Pracownik RAJSKI pracuje na etacie STAŻYSTA od 01-JUL-90 Pracownik LUBICZ pracuje na etacie ADIUNKT od 01-SEP-83 Pracownik ORKA pracuje na etacie ASYSTENT od 01-APR-88 Pracownik KOLSKI pracuje na etacie STAŻYSTA od 01-SEP-91 8. Wyświetlić nazwiska pracowników, nazwy i adresy zespołów pracowników, których miesięczna pensja przekracza 2000. Literatura 1. Wrembel R., Wieczerzycki W.: Projektowanie aplikacji bazy danych Oracle. Wydawnictwo Nakom, Poznań 1997. 2. Notatki z wykładów. C5-9

Bazy danych Ćwiczenia z SQL W ćwiczeniach wykorzystano przyk adowy schemat bazy danych dostarczany z Personal Oracle 8 Definicję schematu i dane tabel zawiera plik bdemobld sql (c) 2001 Katedra Informatyki i Automatyki PRz 1/5

Diagram związków encji pokazany ni ej modeluje schemat bazy danych firmy handlowej Gwiazdkami zaznaczono atrybuty kluczowe encji Związkom odpowiadają klucze obce o nazwach identycznych z nazwami atrybutów kluczowych Wyjątkiem jest SALESPERSON ID - referencja do atrybutu kluczowego tabeli EMPLOYEE oraz MANAGER ID - referencja do atrybutu kluczowego tabeli EMPLOYEE LOCATION LOCATION ID* REGIONAL GROUP DEPARTMENT DEPARTMENT ID* NAME JOB JOB ID* FUNCTION manager id EMPLOYEE EMPLOYEE ID* LAST NAME FIRST NAME MIDDLE INITIAL HIRE DATE SALARY COMMISSION MANAGER ID (FK) salesperson id SALES ORDER ORDER ID* ORDER DATE SHIP DATE TOTAL ITEM ITEM ID* ACTUAL PRICE QUANTITY TOTAL CUSTOMER CUSTOMER ID* NAME ADDRESS CITY STATE ZIP CODE AREA CODE PHONE NUMBER SALESPERSON ID (FK) CREDIT LIMIT COMMENTS PRODUCT PRODUCT ID* DESCRIPTION PRICE LIST PRICE* MIN PRICE START DATE END DATE Wykonać następujące ćwiczenia 1 Wyświetlić nazwiska i etaty pracowników wydzia ów ʼRESEARCHʼ lub ʼSALESʼ sortowane wed ug nazwisk i wed ug wydzia ów 2 Wyświetlić nazwiska i etaty analityków (ʼANALYSTʼ) zatrudnionych w miastach ʼNEW YORKʼ lub ʼBOSTONʼ (c) 2001 Katedra Informatyki i Automatyki PRz 2/5

3 Podać polecenie, które wyświetli na konsoli SQL następujące dane: Pracownik nazwisko pracuje na etacie etat od data zatrudnienia 4 Wyświetlić nazwisko, nazwę wydzia u i kwotę sprzeda y za poprzedni miesiąc pracowników zatrudnionych na etacie ʼSALESPERSONʼ, których sprzeda przekroczy a 1280 USD eby ustalić poprzedni miesiąc sprawdzić odpowiednim poleceniem kiedy zosta o z o one ostatnie zamówienie Nie mo na u yć EMPLOYEE SALARY poniewa atrybut ten zawiera kwotę sprzeda y w aktualnym miesiącu 5 Dla ka dego klienta wyświetlić jego nazwę i sumę w USD na jaką z o y dotychczas zamówienia Zapytanie powinno te wyświetlić klientów, którzy jeszcze nic nie kupili 6 Wyświetlić liczbę zamówień oraz średnią wartość jednego zamówienia przyjętego przez pracowników wydzia ów ʼSALESʼ (sprzeda ) w poszczególnych miastach Wynik powinien zawierać następujące informacje: Miasto, liczba przyjętych zamówień, średnia wartość zamówienia 7 Wyświetlić nazwy wszystkich klientów, daty z o enia zamówień, ilość i nazwę ka dego towaru, który zamówili Zapytanie powinno pokazać tak e klientów, którzy jeszcze nic nie kupili, zamówienia, które nie mają adnych pozycji i towary, których jeszcze nikt nie kupi Dodatkowe informacje o schemacie Tabela lub kolumna komentarz EMPLOYEE ʼGeneral information on all corporate employees ʼ; EMPLOYEE EMPLOYEE ID ʼEmployee Number: Unique 4-digit identification number assigned to every employee ʼ; EMPLOYEE LAST NAME ʼLast name of employee Stored in all caps ʼ; EMPLOYEE FIRST NAME ʼFirst name of employee Stored in all caps ʼ; EMPLOYEE MIDDLE INITIAL ʼMiddle initial (one character only) Stored in all caps ʼ; EMPLOYEE JOB ID ʼJob identification number See JOB for descriptions ʼ; EMPLOYEE MANAGER ID ʼManager: The employee number of this employeeʼʼs manager If employee has no manager, value should be NULL ʼ; EMPLOYEE HIRE DATE ʼDate the employee was HIRED, not necessarily the day the employee STARTED ʼ; EMPLOYEE SALARY ʼMonthly salary for the employee in U S dollars Salary grade information can be found in the table SALARY GRADE ʼ; EMPLOYEE COMMISSION ʼCommission (in U S dollars) earned last month This field should be NULL for non-commissioned employees ʼ; EMPLOYEE DEPARTMENT ID ʼEmployeeʼʼs department number Further department information is available in the table DEPT ʼ; JOB ʼAll valid job categories for personnel information ʼ; JOB JOB ID ʼUnique 3-digit code for job function and title ʼ; JOB FUNCTION ʼGeneric function class of job ʼ; (c) 2001 Katedra Informatyki i Automatyki PRz 3/5

Tabela lub kolumna DEPARTMENT DEPARTMENT DEPARTMENT ID DEPARTMENT NAME DEPARTMENT LOCATION ID LOCATION LOCATION LOCATION ID LOCATION REGIONAL GROUP PRODUCT komentarz ʼDepartment information for all U S operations ʼ; ʼDepartment number: Unique 2-digit department number assigned to each department ʼ; ʼDepartment name: Only the first 14 characters of a department name can be stored in the database Storing names in all caps is recommended but not required ʼ; ʼDepartment location: The code for where the departmentʼʼs central office is located (LOCATION)ʼ; ʼLocation information for all U S departments and warehouses ʼ; ʼCentral location corporate location code ʼ; ʼMetropolitan center closest to location ʼ; ʼProducts in catalog Pricing information can be found in table PRICE ʼ; PRODUCT PRODUCT ID ʼUnique 6 digit number assigned to all products Number generated by sequence PRODUCT ID ʼ; PRODUCT DESCRIPTION ʼFull product name (up to 30 characters) Storing product names in all caps is recommended but not required ʼ; PRICE ʼPrices (both standard and minimum) of products Database tracks both effective dates and expiration dates for prices ʼ; PRICE PRODUCT ID ʼProduct number to which price applies Product name found in table PRICE ʼ; PRICE LIST PRICE ʼUndiscounted price (in U S dollars) ʼ; PRICE MIN PRICE ʼLowest price (in U S dollars) that can be offered ʼ; PRICE START DATE ʼDate which standard and minimum prices go into effect ʼ; PRICE END DATE ʼDate which standard and minimum price expire This value can be left NULL ʼ; SALES ORDER ʼSales order for a customer Items in the order can be found in the table ITEM ʼ; SALES ORDER ORDER ID ʼUnique 4 digit number assigned to all orders Number generated by sequence ORDER ID ʼ; SALES ORDER ORDER DATE ʼDate sales order logged (not necessarily when order was fulfilled )ʼ; SALES ORDER CUSTOMER ID ʼCustomer ordering the goods Further information can be found in the table CUSTOMER ʼ; SALES ORDER SHIP DATE ʼDate order fulfilled and invoice sent (not necessarily date payment received) ʼ; SALES ORDER TOTAL ʼTotal of all items totals in the order (i e the value of TOTAL for order N should contain: SELECT SUM(TOTAL) FROM ITEM WHERE ORDER ID=N)ʼ; (c) 2001 Katedra Informatyki i Automatyki PRz 4/5

Tabela lub kolumna CUSTOMER CUSTOMER CUSTOMER ID CUSTOMER NAME CUSTOMER ADDRESS CUSTOMER CITY CUSTOMER STATE CUSTOMER ZIP CODE CUSTOMER AREA CODE CUSTOMER PHONE NUMBER CUSTOMER SALESPERSON ID CUSTOMER CREDIT LIMIT CUSTOMER COMMENTS ITEM ITEM ORDER ID ITEM ITEM ID ITEM PRODUCT ID ITEM ACTUAL PRICE ITEM QUANTITY komentarz ʼInformation on all U S customers and prospective customers ʼ; ʼUnique 6 digit number assigned to all customers Number generated by the sequence CUSTOMER ID ʼ; ʼFull store name of every customer (up to 45 characters) Storing names in all caps is recommended but not required ʼ; ʼStreet address of customer CITY, STATE, and ZIP CODE make up the rest of the address ʼ; ʼCity name for address of customer Storing city names in all caps is recommended, but not required ʼ; ʼTwo letter abbreviation for state name for address of customer Must be entered in all caps ʼ; ʼZip code of customer Supports both 5 and 9 digit zip codes Dashes should be omitted from 9 digit zips ʼ; ʼArea code of phone number for customer ʼ; ʼPhone number of customer This field does not supports letters and spaces for mnemonics (7 numeric digits only) ʼ; ʼEmployee number of sales representative handling customerʼʼs account Employee information can be found in the EMPLOYEE table ʼ; ʼCredit limit of customer or prospective customer in U S dollars ʼ; ʼField can be used flexibly Suggestions for use include lists of action items or special considerations when dealing with the particular customer ʼ; ʼItems listed in sales orders Product information can be found in table PRODUCT Sales order information can be found in table SALES ORDER ʼ; ʼSales order in which this item appears Sales order information can be found in table SALES ORDER ʼ; ʼNumber of item within the sales order ʼ; ʼNumber of product (described in PRODUCT) that pertains to the line item ʼ; ʼPrice to be paid by the customer in U S dollars The standard price is PRICE STANDARD PRICE, but in some instances, discounts are given to as low as PRICE MINIMUM PRICE ʼ; ʼThe amount of product to be ordered in this line item ʼ; ITEM TOTAL ʼThe total price (in U S dollars) of this line item TOTAL = ACTUAL PRICE * QUANTITY ʼ; (c) 2001 Katedra Informatyki i Automatyki PRz 5/5