1. Pobierz plik z diagramem związków encji schematu Uczelnia (MS Visio) oraz plik ze skryptem tworzącym tabele i wypełniający je danymi, z zasobu:

Podobne dokumenty
D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wykład 8. SQL praca z tabelami 5

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

Struktura bazy danych

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

Wykład 5. SQL praca z tabelami 2

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

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

15. Funkcje i procedury składowane PL/SQL

Oracle PL/SQL. Paweł Rajba.

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Bazy danych - Materiały do laboratoriów VIII

Przykładowa baza danych BIBLIOTEKA

SQL (ang. Structured Query Language)

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Aspekty aktywne baz danych

Ref. 7 - Język SQL - polecenia DDL i DML

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Fizyczna struktura bazy danych w SQL Serwerze

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Tworzenie baz danych i tabel

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Podstawy technologii WWW

Bazy Danych i Usługi Sieciowe

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Automatyka i Robotyka ROK III TEMAT: TWORZENIE I ZARZĄDZANIE INTERNETOWĄ BAZĄ DANYCH

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Bazy danych 10. SQL Widoki

Bazy danych i usługi sieciowe

Finanse. Jak wykonać import listy płac z programu Płace Optivum do aplikacji Finanse?

Wykład 5: PHP: praca z bazą danych MySQL

Język SQL, zajęcia nr 1

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Cele. Definiowanie wyzwalaczy

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Autor: Joanna Karwowska

Bazy danych Karta pracy 1

Bazy danych. Dr inż. Paweł Kasprowski

Oracle PL/SQL. Paweł Rajba.

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Struktura bazy danych

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

ACESS- zadania z wykorzystaniem poleceń SQL

BAZA DANYCH SIECI HOTELI

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

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

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Oracle11g: Wprowadzenie do SQL

Administracja i programowanie pod Microsoft SQL Server 2000

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Oracle PL/SQL. Paweł Rajba.

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Paweł Rajba

Zarządzanie obiektami bazy danych Oracle11g

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Wykład 05 Bazy danych

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

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

Bazy danych i ich aplikacje

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

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

SQL w praktyce. Miłej i owocnej nauki!!!

Transkrypt:

1. Pobierz plik z diagramem związków encji schematu Uczelnia (MS Visio) oraz plik ze skryptem tworzącym tabele i wypełniający je danymi, z zasobu: a) Dla MS SQL Server Skrypt do schematu UCZELNIA dla MS SQL Server. Należy uruchomić ten skrypt przez dwukrotne kliknięcie. b) Dla ORACLE Skrypt do schematu UCZELNIA dla MS SQL Server. Plik ten należy otworzyć przy pomocy programu Notepad lub Notepad++, zawartość skopiować do aplikacji klienckiej ORACLE (SQL_Plus lub Sqldeveloper) i uruchomić skrypt. Zostaną utworzone tabele i ich związki w Twojej bazie danych, oraz zostaną wypełnione przykładowymi danymi. Wstawianie danych, tworzenie tabel, modyfikacja danych, zmiana schematu tabeli, więzy spójności. 2. Dopisz do bazy po dwa rekordy nowych studentów i dydaktyków. Strona 1 z 5

3. Nowych dydaktyków zrób podwładnymi pana Eustachego Jajecznicy. Zadanie należy wykonać przy użyciu JEDNEGO polecenia SQL. 4. Utwórz tabelę MIASTO (Miasto_Id PK, Miasto Not Null). Dobierz odpowiednie typy danych dla kolumn. W MS SQL Server zapewnij automatyczną generację wartości klucza głównego. 5. Wstaw kilka przykładowych rekordów do tabeli MIASTO. 6. Do tabeli OSOBY dodaj kolumnę Miasto_Id, utwórz więzy referencyjne do tabeli MIASTO. 7. Przypisz osoby z tabeli OSOBY do wybranych dowolnie miast. 8. Przenieś wszystkie osoby mieszkające w Warszawie do Krakowa. 9. Pani Gryzelda Kapusta obroniła doktorat. Odnotuj to w bazie. 10. Do tabeli DYDAKTYCY dodaj kolumnę Placa (Money w MS SQL Server i NUMBER(6,2) w ORACLE) z więzami DEFAULT = 2000. Wypełnij kolumnę, przypisując inżynierom i magistrom płacę w wysokości 2500, pozostałym 5000. Sprawdź działanie więzów przez dodanie nowego dydaktyka. 11. Podnieś płacę panu profesorowi Apolinaremu Bigosowi o 10%. Widoki (Perspektywy) 12. Utwórz widok DYDAKTYCY_VIEW prezentujący dane dydaktyków Imię, Nazwisko, Stopień (tekst), Miasto (tekst). 13. Utwórz widok PODLEGA_VIEW z danymi dydaktyków i ich podwładnych. Widok ma zawierać dwie kolumny: Dydaktyk (Imię i Nazwisko) oraz Podwładny (Imię i Nazwisko). Widok With Check Option 14. Wykonaj widok OCENAINS_VIEW służący do wpisywania ocen. Zagwarantuj niemożliwość wstawienia poprzez ten widok oceny spoza zbioru {2, 3.0, 3.5, 4.0, 4.5, 5.0}. Usuwanie danych z tabel 15. Usuń jednego dopisanego przez siebie dydaktyka i jednego studenta, odwołując się do ich nazwisk. 16. Sprawdź, czy uda się usunąć miasto z tabeli MIASTO do którego odwołują się rekordy z tabeli OSOBY. A może uda się usunąć tabelę MIASTO? Zmiana schematu tabeli, więzy spójności. 17. Do tabeli OSOBY dodać kolumnę PESEL Varchar(11) z opcją UNIQUE. Sprawdzić wstawiając kilka rekordów, czy unikalność numerów PESEL będzie rzeczywiście sprawdzana. Strona 2 z 5

UWAGA: MS SQL Server traktuje NULL jako wartość znaczącą, mogącą pojawić się tylko jeden raz w kolumnie z więzami UNIQUE!!! Problem ten nie występuje w ORACLE. 18. Do tabeli OSOBY dodać kolumnę Data_urodzenia z więzami CHECK pilnującymi, aby w bazie nie pojawiły się osoby urodzone po 1994-01-01. Sprawdź działanie tych więzów. 19. Do tabeli OSOBY dodać kolumnę PLEC Bit z opcją NOT NULL. UWAGA: Serwer bazy danych nie dopuści do dodania do tabeli kolumny z więzami NOT NULL, jeżeli w tej tabeli znajdują się rekordy. Rozwiązaniem jest dodanie kolumny, uzupełnienie jej znaczącymi danymi a następnie utworzenie na niej więzów NOT NULL. W ORACLE możliwe jest zadeklarowanie na tej kolumnie dodatkowych więzów DEFAULT. Komórki w nowej kolumnie istniejących rekordów zostaną wypełnione wartością domyślną. 20. Sprawdź działanie wszystkich utworzonych więzów. Usuwanie obiektów bazy danych 21. Usunąć tabelę MIASTO oraz perspektywę DYDAKTYCY_VIEW. Transact_SQL i PL/SQL 22. Napisz prosty program w Transact-SQL (PL/SQL). Zadeklaruj zmienną, przypisz na tą zmienną liczbę rekordów w tabeli OSOBY (lub jakiejkolwiek innej) i wypisz uzyskany wynik używając instrukcji Print (T-SQL) lub dbms_output (PL/SQL), w postaci napisu np. "W tabeli jest 10 osób". 23. Używając T-SQL (PL/SQL), policz dydaktyków z tabeli DYDAKTYCY. Jeśli ich liczba jest mniejsza niż 15, wstaw dydaktyka: doktora Alcesta Dynię i wypisz odpowiedni komunikat. Jeśli liczba pracowników jest większa niż 15, wypisz komunikat informujący o tym, że nie wstawiono danych z powodu braku etatów. Procedury Transact_SQL i PL/SQL 24. Utwórz procedurę zwracającą dane studentów (Imię, Nazwisko, Miasto, Numer indeksu), których rok rekrutacji będzie podawany w parametrze procedury. W T_SQL skorzystaj z funkcji DATEPART(yyyy, hiredate), w Pl/SQL z funkcji To_char(hiredate, 'yyyy'). 25. Utwórz procedurę zwracającą liczbę studentów, których rok rekrutacji zostanie podany w parametrze procedury. W T_SQL przećwicz 3 sposoby zwracania danych przez procedurę (parametr typu OUTPUT, RETURN i ResultSet). 26. Utwórz procedurę, która będzie przenosiła zapisane w bazie danych osoby z miasta którego nazwa zostanie podana w parametrze procedury do innego miasta, też o nazwie podanej w parametrze procedury. Porównaj rozwiązanie z rozwiązaniem zadania 8. 27. Utwórz procedurę służącą do dopisywania nowego przedmiotu do bazy. Procedura będzie otrzymywała w parametrach nazwę i skrót nazwy przedmiotu. W procedurze należy sprawdzić, czy przedmiot o danej nazwie lub skrócie istnieje. Jeżeli nie, należy go Strona 3 z 5

dopisać. Na zakończenie należy wypisać komunikat z informacją o wykonaniu (lub nie) operacji. 28. Przekształć blok z zadania 23 w procedurę dopisująca nowego dydaktyka do bazy. Imię, nazwisko i stopień naukowy będą podawane w parametrach procedury (nazwa, lub skrót nazwy stopnia). W procedurze nie sprawdzaj liczby zatrudnionych dydaktyków, lecz istnienie w bazie rekordu zawierającego dane kandydata. Jeżeli już jest w bazie odnotowany, nie dopisuj go. Sprawdź także, czy podany w parametrze stopień jest zapisany w bazie. Procedurę należy zakończyć komunikatem w wykonanej operacji. W PL/SQL utwórz i wykorzystaj sekwencję do realizacji wartości klucza głównego w tabelach OSOBA i DYDAKTYCY. Procedury z wykorzystaniem kursora 29. Przy pomocy kursora przejrzyj wszystkich dydaktyków i zmodyfikuj wynagrodzenia tak, aby osoby zarabiające mniej niż 2500 miały zwiększone wynagrodzenie o 10%, natomiast osoby zarabiające powyżej 4000 miały zmniejszone wynagrodzenie o 10%. Wypisz informacje o wszystkich wprowadzanych zmianach. 30. Przerób kod z zadania 29 na procedurę tak, aby progowe wartości kwot nie były stałe, lecz zadawane parametrami procedury. Wyzwalacze bazy danych 31. Utwórz wyzwalacz, który nie pozwoli usunąć rekordu z tabeli OCENY. 32. Utwórz wyzwalacz niepozwalający usunąć osoby (dydaktyka), która ma podwładnych. Zakładamy, że może być usuwany tylko jeden rekord i nie jest to zrealizowane przez więzy referencyjne. 33. Utwórz wyzwalacz, który przy wpisywaniu nowego studenta do bazy wygeneruje mu numer indeksu, jeśli nie był on podany w instrukcji INSERT. 34. Utwórz wyzwalacz, który przy wstawianiu, lub modyfikowaniu danych w tabeli DYDAKTYCY sprawdzi, czy nowe zarobki (wstawiane lub modyfikowane) są większe niż 2000. W przeciwnym wypadku wyzwalacz powinien zgłosić błąd i nie dopuścić do wstawienia rekordu (można to oczywiście osiągnąć również używając więzów CHECK na tabeli). 35. Utwórz tabelę BUDZET (Wartosc INT NOT NULL, Data_aktualizacji). W tabeli tej będzie przechowywana łączna wartość wynagrodzeń wszystkich dydaktyków. Tabela będzie zawsze zawierała jeden wiersz. 36. Oblicz początkową sumę zarobków i uzupełnij tabelę BUDZET. Należy to zrealizować jednym poleceniem! 37. Utwórz wyzwalacz, który będzie pilnował, aby wartość w tabeli BUDZET była zawsze aktualna, a więc przy wszystkich operacjach aktualizujących tabelę EMP (INSERT, UPDATE, DELETE), wyzwalacz będzie aktualizował wpis w tabeli BUDZET. 38. Utwórz tabelę ROCZNIK {Rok Int UNIQUE, Liczba Int, DataAktualizacji Date}. Na tabeli STUDENCI utwórz wyzwalacz, który po każdej zmianie w tabeli (INSERT, UPDATE, DELETE) uaktualni tabelę STUDENCI tak, aby zawsze zawierała aktualne liczby studentów każdego rocznika (według dat rekrutacji). Strona 4 z 5

Zadania dodatkowe 39. Usuń wszystkie wpisy z kolumny Placa w tabeli DYDAKTYCY. 40. Utwórz tabelę SIATKA_PLAC (Stopien_Id Int Primary Key, Placa_Min Money, Placa_Max Money) T-SQL i SIATKA_PLAC (Stopien_Id Int Primary Key, Placa_Min Numbert(10, 2), Placa_Max Numbert(10, 2)) Pl/SQL. Utwórz więzy referencyjne do tabeli STOPNIE_TYTULY. 41. Napisz procedurę, która otrzyma w parametrach dwie wartości widełek płacowych dla stopnia inżynier (np. 1500 i 2000), nastepnie wypełni całą tabelę SIATKA_PLAC wartościami, według następujacego klucza: płaca minimalna każdego wyższego stopnia jest o 10 procent niższa, niż płaca maksymalna stopnia niższego, a płaca maksymalna każdego stopnia jest o 25 procent wyższa niż płaca minimalna tego stopnia. Zakładamy, że stopnie w tabeli STOPNIE_TYTULY są posortowane malejąco (od profesora do inżyniera). 42. Utwórz wyzwalacz na tabeli DYDAKTYCY, który będzie pilnował, aby płace pozostawały zgodne z siatką. Spróbuj uwzględnić zmianę stopnia (tylko podwyższenie) wówczas należy przypisać najnizszą płacę dopuszczalną dla danego stopnia. Strona 5 z 5