Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 2.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 2."

Transkrypt

1 Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 2. Projektowanie relacyjnych struktur w bazach danych Opracował A. Bujnowski Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna studia międzywydziałowe współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.

2 UWAGA! Zanim rozpoczniesz pracę zapoznaj się dokładnie z niniejszą instrukcją. Do punktu 6 nie potrzebujesz komputera! 1. Cele laboratorium zapoznanie się z technologiami konstruowania baz danych opartych o wiele tabel. Zapis relacji w systemie zarządzania bazą danych. Utrwalanie relacji. Algebra relacyjna, zapytania złożone. 2. Przykładowa baza danych: Przykład bazy danych: Wypożyczalnia płyt DVD. W zbiorach wypożyczalni znajduje się wiele pozycji płytowych. Każda pozycja ma swój tytuł, rok wydania, wydawcę oraz numer płyty w razie gdyby w wypożyczalni istniało wiele egzemplarzy takiej płyty. Płyty mogą być płytami z filmami lub muzyką. Do takiej wypożyczalni przychodzą klienci, którzy muszą być zarejestrowani, żeby mogli wypożyczać takie płyty. Gdyby takie dane gromadzone były w formie tabeli prezentacyjnej, to przy każdej akcji wypożyczenia w takiej tabeli musi pojawić się wiersz, w którym jednoznacznie zidentyfikujemy kto wypożyczył płytę, którą płytę oraz kiedy. Drugim działaniem w takiej bazie danych jest akcja zwrotu płyty. W tym momencie w wierszu dla odpowiedniego wypożyczenia pojawia się data zwrotu. Przykładowa tabela takich zdarzeń podana jest poniżej: Imię Nazwisko Nr dowodu Tytuł płyty Nr płyty Data wypożyczenia Jan Nowak DB Shrek 1 ' ' Data zwrotu Adam Kowalski DD Pinokio 3 ' ' ' ' Zenon Kwinto DV Constantine 4 ' ' Bruno Szulc DO Shrek 2 ' ' ' ' Znaczenie tej tabeli jest następujące: dnia pan Jan Nowak wypożyczył płytę 'Shrek' I jak dotąd jej nie zwrócił. Podobnie należy odczytywać następne wiersze, z tym, że np. Pan Kowalski i Szulc zwrócili swoje płyty. W takim zbiorze danych w jednej tabeli występują zarówno dane osoby, płyty jak I akcji związane z wypożyczeniem tej płyty. W terminologii bazodanowej mówi się, że jest to zbiór danych nieznormalizowany. Zauważmy również, że jest to jedyne miejsce przechowywania danych, więc jeśli będziemy chcieli umieścić dodatkowe dane na temat naszej płyty, czy też klienta dane te muszą się pojawić jako nowe kolumny takiej tabeli. Mało tego jeżeli ten sam klient przyjdzie drugi raz do naszej wypożyczalni, to musimy dodatkowo skopiować wszystkie jego dane w nowym wierszu tabeli. Czyni to taką tabelę bardzo nieekonomiczną. Po pewnym czasie dane w niej zawarte będą zajmowały bardzo dużo miejsca. Sensowne staje się zatem tzw. Znormalizowanie tego zbioru danych do postaci kilku tabel. Prześledzimy ten proces w ramach pierwszej części tego laboratorium. 2

3 3. Diagram związków encji. W tym miejscu dokonajmy podziału naszego problemu na podstawowe zbiory encje. W powyższym przykładzie na pewno da się wydzielić zbiór klientów. Wybierz zatem z tabeli wszystkie atrybuty dotyczące klienta. Są to: imię, nazwisko I numer dowodu tożsamości. Możliwe jest zatem stworzenie tabeli, która będzie zawierała tylko dane klientów. Podobnie uczynimy z płytami. W tym przypadku w tabeli płyty użyjemy atrybutów tytuł I numer płyty. Jeśli przyjrzymy się encjom klient I płyta, to możemy stwierdzić, że występuje pomiędzy nimi związek wiele-do-wielu bo wielu klientów może wypożyczyć wiele płyt, oraz wiele płyt może być wypożyczona przez wielu klientów. Zapiszmy ten związek na diagramie związków encji: Encja klient: oraz płyta: Jak zauważyłeś nazwę encji w diagramie związków encji (DZE) umieszcza się w prostokącie, atrybuty w owalach, łącząc je z nazwą encji linią (bez kierunku ani strzałki). Przyjrzymy się zatem notacji krotności na tych diagramach: Wiemy również, że płyta w tym schemacie jest w krotności wiele-do-wielu z klientem: 3

4 Powyższy zapis na diagramie związków encji jest jak najbardziej poprawny, z tym, że w systemach relacyjnych związek wiele-do wielu realizuje się z użyciem dodatkowej tabeli powiązanej z istniejącymi encjami związkami jeden-do wielu i wiele-do-jednego. Trochę również celowo na potrzeby wyjaśnienia tego związku pominięto do tej pory pozostałe kolumny pierwszej tabeli w naszym schemacie bazy danych. Relacją, która powiąże encje klient z płytą w sposób pozwalający na zapis tech schematu w diagramie relacyjnym będzie relacja wypożyczenia. W schemacie projektowanej bazy danych ten związek jest wręcz niezbędny, ale można wyobrazić sobie takie zależności, w których nie jest to już takie oczywiste. Zatem relacja wypożyczenie będzie musiała posiadać dwie własności datę wypożyczenia oraz datę zwrotu i informację o powiązaniach z klientem i płytą: Powyższy diagram pozwala na bezpośrednie przejście do diagramu relacyjnego czyli kolejnej postaci graficznej notacji struktury relacyjnej bazy danych tym razem bezpośrednio przenaszalnej do postaci kodu tworzącego bazę danych. Zanim jednak przejdziemy do tworzenia diagramu relacyjnego zmodyfikujmy nieco nasz DZE tak, aby powalał na nieco bardziej elastyczne operacje na klientach i płytach. W tabeli klient występują atrybuty imię, nazwisko oraz nr dowodu. Niekiedy problemy stworzyć może nr dowodu gdyż np. osoby nieletnie nie będą takiej informacji posiadały, jednocześnie samo imię i nazwisko nie wystarczy do rozróżnienia osób. Poza tym jeżeli zbieramy takie dane osobowe jak numer dowodu, to nie powinniśmy narażać ich na wycieki - czyli starajmy się tych informacji nie używać. Znacznie wygodniej jest zatem wprowadzić dodatkowy element numerujący klientów. Jeżeli każdy klient otrzyma w naszej bazie nowy, unikalny identyfikator będzie to dobry kandydat na tzw klucz podstawowy w tej tabeli. Dodajmy zatem do encji klient nowy atrybut o nazwie klient_id i zaznaczmy podkreślając go, że będzie on kluczem głównym dla tej encji. 4

5 Podobnie postąpimy z płytami z tym, że mamy już atrybut o nazwie numer, który użyjemy jako klucz główny w tej tabeli. Zatem nowy DZE dla tej bazy może wyglądać następująco: Zwróć również uwagę, że element pełniący rolę klucza głównego w relacji wypożyczenie może być kombinacją wartości kto_wypożyczył, co_wypożyczył i daty wypożyczenia, jeżeli przyjmiemy tzw. regułę biznesową, że ta sama osoba nie wypożyczy tej samej płyty drugi raz tego samego dnia. Atrybuty kto_wypożyczył, co_wypożyczył i data_wypożyczenia stanowią klucz złożony dla relacji wypożyczenie. Dodatkowo, wartości atrybutu kto_wypożyczył dla relacji wypożyczenie powinny przyjmować istniejące wartości atrybutu id_klienta z encji klient. Podobnie co_wypożyczył z relacji wypożyczenie mogą przybierać jedynie wartości istniejące jako numer w encji płyta. W następnym kroku przekształcimy nasz DZE w diagram relacyjny DR. 4. Diagram relacyjny. Przekształcenie istniejącego DZE w diagram relacyjny jest dość proste. Encje i relacje zastępujemy tabelami. Dostosowujemy nazewnictwo tabel do ograniczeń SZBD (pozbawiamy znaków narodowych, zastępujemy spacje znakiem '_' itd...). Dla powyższego DZE odpowiadający mu DR może wyglądać następująco: Dodatkowo, zastąpmy krotności znakiem zależności funkcyjnych czyli strzałka łączy tabele 5

6 w taki sposób, że można wyróżnić atrybuty, które się ze sobą łączą, grot strzałki powinien wskazywać na element determinowany, który powinien być kluczem głównym. Wtedy notacja strzałki oznaczać będzie zależność funkcyjną. 5. Data Definition Language (DDL) Mając zdefiniowany DR łatwo jest przejść do tworzenia tabel w języku SQL. Wystarczy przepisać definicję tabel, opuszczając ramki i dodając dyrektywę CREATE TABLE, oraz zastanowić się w jaki sposób opisać działanie strzałek. Przyjrzyjmy się zatem następującemu fragmentowi kodu: CREATE TABLE klient ( imie varchar(20), nazwisko varchar(40), nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE plyta( tytul varchar(40), numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int, co_wypozyczyl int, data_wypozyczenia date, data_zwrotu date primary key(kto_wypozyczyl, co_wypozyczyl, data_wypozyczenia) ); Zauważmy, że tak zdefiniowane tabele nie są ze sobą powiązane, oraz występuje tutaj szereg niedogodności: - możliwe jest wpisanie klienta, który ma puste imię i nazwisko, - możliwe jest wpisanie płyty, która nie ma tytułu, - możliwe jest wpisanie nowej akcji wypożyczenia z wartościami NULL jako kto_wypozyczyl i co-wypozyczyl. Przy pomocy dyrektywy not null możliwe jest zabezpieczenie bazy danych przed występowaniem takich anomalii. Mając zdefiniowane poprzednie tabele można posłużyć się poleceniem ALTER TABLE aby wprowadzić stosowne modyfikacje: 6

7 ALTER TABLE klient ALTER imie SET not null; ALTER TABLE klient ALTER nazwisko SET not null; ALTER TABLE plyta ALTER tytul SET not null; Gdybyśmy chcieli od razu wprowadzić poprawny kod wyglądałoby to mniej więcej tak: CREATE TABLE klient ( imie varchar(20) not null, nazwisko varchar(40) not null, nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE plyta( tytul varchar(40) not null, numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int not null, co_wypozyczyl int not null, data_wypozyczenia date, data_zwrotu date, primary key(kto_wypozyczyl, co_wypozyczyl, data_wypozyczenia) ); Zapiszmy teraz związki pomiędzy tabelami (najpierw posłużmy się poleceniem ALTER TABLE), później pokażemy jak to zapisać od razu w CREATE TABLE. ATLER TABLE wypozycenie ADD FOREIGN KEY (kto_wypozyczyl) REFERENCES klient ON DELETE RESTRICT ON UPDATE RESTRICT; ATLER TABLE wypozycenie ADD FOREIGN KEY (co_wypozyczyl) REFERENCES plyta ON DELETE RESTRICT ON UPDATE CASCADE; Przy pomocy takich poleceń zdefiniowano powiązania tabeli wypozycenie z klient i plyta. Powiązane to polega na zdefiniowaniu klucza obcego, który odwołuje się do wartości klucza głównego w innej tabeli (tak jak to opisują strzałki na DR). Dodatkowo mówimy tutaj o sposobie zachowania się bazy danych w przypadku próby skasowania lub zmiany wartości klucza głównego. Za chwilę zostanie to bliżej przedstawione praktycznie. Dla porządku podany zostanie kod bazy danych, który nie wymaga modyfikacji przy pomocy ALTER TABLE: CREATE TABLE klient ( imie varchar(20) not null, nazwisko varchar(40) not null, nr_dowodu char(10), id_klienta serial primary key); 7

8 CREATE TABLE plyta( tytul varchar(40) not null, numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int not null REFERENCES klient ON DELETE RESTRICT ON UPDATE RESTRICT, co_wypozyczyl int not null REFERENCES plyta ON DELETE RESTRICT ON UPDATE CASCADE, data_wypozyczenia date, data_zwrotu date primary key(kto_wypozyczyl, co_wypozyczyl, data_wypozyczenia) ); Zauważ, że tak przygotowany kod bazy danych z jednej strony zabezpiecza ją przed pewnymi anomaliami w poszczególnych tabelach oraz pozwala na zapis i przestrzeganie reguł integralności bazy danych. Dodatkowo, zmieńmy jeszcze format daty, tak aby uwzględniał zarówno datę jak i godzinę w naszej bazie danych. Taka wartość jest zdecydowanie częściej wykorzystywana w praktyce i pozwala wyłuskać zarówno datę jak i godzinę zdarzenia. Zmiana dotyczy w jednej tabeli : wypozyczenia ale powtórzymy całą definicję danych: CREATE TABLE klient ( imie varchar(20) not null, nazwisko varchar(40) not null, nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE plyta( tytul varchar(40) not null, numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int not null REFERENCES klient ON DELETE RESTRICT ON UPDATE RESTRICT, co_wypozyczyl int not null REFERENCES plyta ON DELETE RESTRICT ON UPDATE CASCADE, d_wypozyczenia timestamp default now(), d_zwrotu timestamp, primary key(kto_wypozyczyl, co_wypozyczyl,d_wypozyczenia) ); 6. Ćwiczenia praktyczne Mając zaprojektowaną wstępną wersję bazy danych sprawdźmy, jak działają obie wersje bazy danych. Aby nieco usprawnić pracę z bazami danych, a jednocześnie zaprezentować inny sposób pracy z bazą danych posłużmy się pomocniczymi plikami tekstowymi. 8

9 Oczywiście nic nie stoi na przeszkodzie, żebyś wpisał wszystkie podane poniżej polecenia ręcznie, ale możliwość definiowania struktury bazy poza SZBD zdecydowanie tę czynność usprawni. Po zalogowaniu się do bazy przygotuj dwa pliki tekstowe: baza1.sql i baza2.sql W tym celu wpisz polecenie : mcedit baza1.sql. Pojawi się ekran, w którym będziesz mógł wpisywać tekst. Po zakończeniu wpisywania wciśnij klawisz F2 w celu zapisania zmian. Treść pliku baza1.sql: CREATE TABLE klient ( imie varchar(20), nazwisko varchar(40), nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE plyta( tytul varchar(40), numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int, co_wypozyczyl int, data_wypozyczenia date, data_zwrotu date, primary key(kto_wypozyczyl, co_wypozyczyl, data_wypozyczenia) ); Podobnie w pliku baza2.sql umieść tekst: CREATE TABLE klient ( imie varchar(20) not null, nazwisko varchar(40) not null, nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE plyta( tytul varchar(40) not null, numer serial primary key); CREATE TABLE wypozyczenie( kto_wypozyczyl int not null REFERENCES klient ON DELETE RESTRICT ON UPDATE RESTRICT, co_wypozyczyl int not null REFERENCES plyta ON DELETE RESTRICT ON UPDATE CASCADE, d_wypozyczenia timestamp default now(), d_zwrotu timestamp, 9

10 primary key(kto_wypozyczyl, co_wypozyczyl,d_wypozyczenia) ); Utwórz teraz bazę danych o nazwie lab2_login gdzie login to twój własny login do systemu. Wejdź do swojej bazy danych poprzez polecenie : psql lab2_login Wczytaj instrukcje z pliku baza1.sql: \i baza1.sql UWAGA! - jeżeli pracujesz w innym katalogu niż Twój katalog domowy być może będziesz musiał podać pełną nazwę tego pliku. Wykonaj, i sprawdź działanie następujących poleceń: INSERT INTO klient(imie) VALUES ('Jan'); INSERT INTO klient(nazwisko) VALUES ('Kowalski'); INSERT INTO klient DEFAULT VALUES; INSERT INTO plyta DEFAULT VALUES; INSERT INTO plyta DEFAULT VALUES; INSERT INTO wypozyczenie DEFAULT VALUES; INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (3,1); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (1,2); Ostatnie 3 polecenia nie mogły się wykonać poprawnie, sprawdź proszę dlaczego? \d wypozyczenie Popraw zapytanie dopisując datę wypożyczenia: INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl,data_wypozyczenia) VALUES (3,1,' '); Jak dotąd, o ile nie popełniłeś błędu przy wpisywaniu danych nie powinien pojawić się błąd. Ale sprawdź postać danych: SELECT * FROM klient; SELECT * FROM plyta; SELECT * FROM wypozyczenie; SELECT klient.imie, klient.nazwisko, plyta.tytul, wypozyczenie.data_wypozyczenia, wypozyczenie.data_zwrotu FROM klient, wypozyczenie, plyta 10

11 WHERE klient.id_klienta = wypozyczenie.kto_wypozyczyl AND plyta.numer = wypozyczenie.co_wypozyczyl; Zastanów się, czy rzeczywiście chcesz aby Twoja baza danych przechowywała takie wartości? Zaprezentuj wynik działania prowadzącemu. Usuń wszystkie założone tabele w swojej bazie danych: DROP TABLE wypozyczenie; DROP TABLE plyta; DROP TABLE klient; Załóż te same tabele, ale już z uwzględnieniem warunków integralności bazy danych: \i baza2.sql Spróbuj powtórzyć poprzednie polecenia: INSERT INTO klient(imie) VALUES ('Jan'); INSERT INTO klient(nazwisko) VALUES ('Kowalski'); INSERT INTO klient DEFAULT VALUES; INSERT INTO plyta DEFAULT VALUES; INSERT INTO plyta DEFAULT VALUES; INSERT INTO wypozyczenie DEFAULT VALUES; INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (2,2); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl,data_wypozyczenia) VALUES (3,2,' '); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl,data_wypozyczenia) VALUES (2,2,now()); Co się stało z bazą danych? SELECT * FROM klient; SELECT * FROM plyta; SELECT * FROM wypozyczenie; SELECT klient.imie, klient.nazwisko, plyta.tytul, wypozyczenie.d_wypozyczenia, wypozyczenie.d_zwrotu FROM klient, wypozyczenie, plyta 11

12 WHERE klient.id_klienta = wypozyczenie.kto_wypozyczyl AND plyta.numer = wypozyczenie.co_wypozyczyl; Dodaj 5 przykładowych płyt i pięciu przykładowych klientów do bazy danych tym razem tak, aby polecenia wykonały się poprawnie. Teraz wypróbuj wypożyczanie (zauważ, że data wypożyczenia może już być nie wpisywana, pomimo że jest not null (ma bowiem default): INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (3,1); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (2,4); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl,data_wypozyczenia) VALUES (3,2,' '); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl,data_wypozyczenia) VALUES (2,2,now()); Sprawdź również czy wykonają się następujące polecenia: INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (3,200); INSERT INTO wypozyczenie (kto_wypozyczyl,co_wypozyczyl) VALUES (300,2); Jak myślisz, dlaczego się nie wykonały? Spróbuj teraz wykonać następujące polecenia DELETE FROM klient WHERE id_klienta =2; DELETE FROM klient WHERE id_klienta =1; DELETE FROM plyta WHERE numer=5; DELETE FROM plyta WHERE numer=2; Jaka jest różnica, co się stało z bazą (SELECT * FROM wypozyczenie); W podobny sposób sprawdzić zachowanie się funkcji : UPDATE klient SET id_klienta = 10 where id_klienta = 1; UPDATE plyta SET numer = 10 where numer = 1; Zapytania z wielu tabel. Tabela wypozyczenie jest bardzo wygodną formą zapisu informacji, ale jest mało czytelna. Możliwe jest przygotowanie raportu z bazy danych tak, aby był on bardziej czytelny: 12

13 Każde zapytanie z więcej niż jednej tabeli generuje iloczyn kartezjański poszczególnych zbiorów: SELECT * FROM klient, wypozyczenie, plyta; Jaki jest wynik takiej operacji? Jakie są wymiary tabeli wynikowej? Co zawierają poszczególne wiersze? Czy te dane mają sens? Poprawmy to zapytanie, tak aby pokazało tylko te wiersze, dla których : wypozyczenie.kto_wypozyczyl=klient.id_klient oraz plyta.numer = wypozyczenie.co_wypozyczyl : SELECT * FROM klient, wypozyczenie, plyta WHERE klient.id_klienta = wypozyczenie.kto_wypozyczyl AND plyta.numer = wypozyczenie.co_wypozyczyl; W wyniku tego zapytania ilość wierszy już odzwierciedla faktyczną liczbę wypożyczeń ale pojawiają się kolumny, których do niczego nie potrzebujemy. Spróbujmy zatem wyświetlić tylko te kolumny, które powinny znaleźć się w tabeli prezentacyjnej. SELECT klient.imie, klient.nazwisko, plyta.tytul, wypozyczenie.d_wypozyczenia, wypozyczenie.d_zwrotu FROM klient, wypozyczenie, plyta WHERE klient.id_klienta = wypozyczenie.kto_wypozyczyl AND plyta.numer = wypozyczenie.co_wypozyczyl; To samo zapytanie, w formie nieco skróconej: SELECT k.imie, k.nazwisko, p.tytul,w.d_wypozyczenia, w.d_zwrotu FROM klient k, wypozyczenie w, plyta p WHERE k.id_klienta = w.kto_wypozyczyl AND p.numer = w.co_wypozyczyl; Systemy zarządzania bazą danych niejednokrotnie umożliwiają utrwalenie raz przygotowanego zapytania w systemie baz danych. Formą takiego utrwalenia jest widok (perspektywa). Widok jest to inaczej definicja zapytania utrwalona w specjalnej tabeli w bazie danych. Każde odwołanie się do widoku powoduje wykonanie zapisanego w nim zapytania na aktualnym obrazie (stanie) bazy danych. Zatem utrwalmy powyższe zapytanie 13

14 w formie widoku: CREATE VIEW pokwypoz AS SELECT k.imie, k.nazwisko, p.tytul,w.data_wypozyczenia, w.data_zwrotu FROM klient k, wypozyczenie w, plyta p WHERE k.id_klienta = w.kto_wypozyczyl AND p.numer = w.co_wypozyczyl; Z widoku korzysta się dokładne tak samo jak z każdej tabeli lub grupy tabel: Sprawdź co się nowego pojawiło w bazie danych: \d i sprawdź definicję tego widoku \d pokwypoz SELECT * FROM pokwypoz; Spróbujmy stworzyć to samo zapytanie korzystając z klauzuli JOIN: SELECT k.imie, k.nazwisko, p.tytul,w.d_wypozyczenia, w.d_zwrotu FROM klient k JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl JOIN plyta p ON p.numer = w.co_wypozyczyl; Sprawdźmy zastosowanie LEFT i RIGHT JOIN: SELECT k.imie, k.nazwisko, p.tytul,w.d_wypozyczenia, w.d_zwrotu FROM klient k LEFT JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl LEFT JOIN plyta p ON p.numer = w.co_wypozyczyl; oraz SELECT k.imie, k.nazwisko, p.tytul,w.d_wypozyczenia, w.d_zwrotu FROM klient k JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl RIGHT JOIN plyta p ON p.numer = w.co_wypozyczyl; 14

15 7. Hierarchia Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA Niejednokrotnie zachodzi potrzeba spośród grupy encji wyróżnienia określonej grupy krotek. Np. spośród grona klientów można wyróżnić grono pracowników danej wypożyczalni, którzy mają uprawnienia do wypożyczania z rabatem. Pierwszym rozwiązaniem jest umieszczenie atrybutu rabat w zbiorze klientów. Natomiast gdy takich wyróżnionych osób jest kilka procent to bardziej opłacalne stanie się wykorzystanie tabeli pozostającej w hierarchii z istniejącą tabelą. Przykładowy zapis dla DZE: I zapis w SQL: odpowiadający mu DR: CREATE TABLE jest_pracownikiem( rabat int, id_klienta int primary key references klient); 8. Podsumowanie - Relacyjna baza danych składa się z wielu tabel połączonych związkami - Każda encja lub zależność w takiej bazie danych opisuje tabela - Normalizacja bazy danych jest procesem odwracalnym, w którym bazę w postaci płaskiej przekształca się do kilku table tak, aby nie występowały anomalie korzystania z plików. - widok jest utrwaloną postacią zapytania a wykonanie zapytania z widoku zawsze działa na aktualnym stanie bazy danych - Zapytania złożone MUSZĄ odzwierciedlać założone związki w bazie. Możliwe jest takie zaprojektowanie bazy danych aby te związki nie były przestrzegane, tym niemniej dzięki zapytaniom złożonym możliwe jest korzystanie z takiej struktury - Zapytania złożone wykorzystujące klauzulę JOIN pozwalają na ręczną optymalizację kolejności łączenia tabel a co idzie czasu wykonania zapytania - Klauzule RIGH i LEFT JOIN pozwalają na ochronę określonych fragmentów kolumn, lub związków kolumn, przez co analiza danych może być wykonana sprawniej 15

16 9. Zadania i pytania kontrolne: W omawianej na laboratorium bazie danych uzupełnij pole płyta o jej dobową cenę wypożyczenia. Narysuj DZE i DR dla tak zmodyfikowanej bazy danych. Korzystając z widoków wyświetl listę wypożyczeń bez daty zwrotu. Uzupełnij tabelę płyt o możliwość przechowywania ceny wypożyczenia płyty Korzystając z widoków wyświetl zestawienie wypożyczonych i zwróconych płyt w zadanym przez prowadzącego przedziale czasu Utrwal dwa ostatnie zapytania w formie widoku Zmodyfikuj strukturę bazy w taki sposób, żeby każda płyta mogła należeć do kilku gatunków jednocześnie (relacja wiele-do-wielu). Zaprojektuj bazę danych zadaną przez prowadzącego. Przykładowe zadania na końcu skryptu. Zaprojektowana baza powinna być min. w trzeciej postaci normalnej i projekt powinien skończyć się implementacją struktury danych w SZBD 10.Przykładowe bazy danych: Baza danych dla hoteliku hotel ma pokoje, pokoje mają wyposażenie, klient wynajmuje pokoje Baza danych dla wypożyczalni jachtów, każdy jacht ma wyposażenie, klient może należeć lub nie do klubu (jeśli należy to ma zniżki), klient wypożycza jacht wraz z wyposażeniem, cena jest wyliczana na podstawie sumy ceny wynajmu jachtu i wszystkich składników wyposażenia Baza danych dla apteki klient kupuje lek, który dostarcza do apteki hurtownia Baza danych dla firmy transportowej kierowca jest w związki 1-1 z samochodem i realizuje wiele usług transportowych pomiędzy adresami, na zlecenie klienta Baza danych zbiorów bibliotecznych i wypożyczeń, każda książka należy do kategorii Baza danych małej firmy jubilerskiej z gotowych składników wykonywana jest biżuteria, którą sprzedaje się klientom. Cena biżuterii to suma ceny składników + koszt wykonania Baza danych sklepu z materiałami budowlanymi Wirtualny dziennik: uczeń należy do klasy, opiekunem klasy jest nauczyciel, który równocześnie naucza przedmiotu. Uczeń otrzymuje oceny z przedmiotów. Baza danych utworów muzycznych nadawanych w rozgłośni w bazie są utwory, należące do albumów, albumy należą do wydawców, pracownik ustala harmonogram emisji utworów w radiu. Baza danych rozpraw sądowych rozprawa odbywa się określonego dnia, rozprawie przewodniczy sędzia, istnieje oskarżony, oskarżyciel, obrońca i powód. Itp

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3. Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 3. Metody zarządzania i analizy danych Opracował A. Bujnowski 2010-03-08 Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna

Bardziej szczegółowo

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3. Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 3. Metody zarządzania i analizy danych Opracował A. Bujnowski 2010-03-08 Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

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

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt Zasady przygotowania i oceny projektów 1 Cel projektu Celem niniejszego projektu jest zaprojektowanie i implementacja

Bardziej szczegółowo

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej  fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 4 (Asocjacje,

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

Bardziej szczegółowo

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

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

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia BAZY DANYCH LABORATORIUM Studia niestacjonarne I stopnia Gdańsk, 2011 1. Cel zajęć Celem zajęć laboratoryjnych jest wyrobienie praktycznej umiejętności tworzenia modelu logicznego danych a nastepnie implementacji

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

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

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów VIII

Bazy danych - Materiały do laboratoriów VIII Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Wstęp do relacyjnych baz danych. Jan Bartoszek

Wstęp do relacyjnych baz danych. Jan Bartoszek Wstęp do relacyjnych baz danych Jan Bartoszek Agenda 1. 2. 3. 4. 5. 6. 7. Po co i dlaczego? Bazy danych & DBMS Relacje i powiązania Redundancja i jak jej uniknąć Diagramy ERD SQL Podsumowanie Czym są są

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania

Bardziej szczegółowo

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

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

LAB 3 (część 1 Projektu)

LAB 3 (część 1 Projektu) Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 3 (część 1 Projektu) Na zajęciach należy zaprojektować schemat bazy danych oraz przygotować dokument zawierający: Temat: Autor: 1. Opis 2.

Bardziej szczegółowo

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

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) ) BAZY DANYCH laboratorium 3 tworzenie, modyfikacje i usuwanie tabel, operacje na danych Cel Stworzenie w ramach bazy danych Biblioteka nowych tabel według specyfikacji (CREATE TABLE Ustawianie właściwości

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych 6. Klucze obce. P. F. Góra Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:

Bardziej szczegółowo

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjny model baz danych, model związków encji, normalizacje Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na

Bardziej szczegółowo

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

Komunikacja z bazą danych psql

Komunikacja z bazą danych psql PostgreSQL jest systemem zarządzania relacyjnymi bazami danych rozprowadzanym na zasadach open source. Twórcą i właścicielem praw autorskich jest Uniwersytet Berkeley w Stanach Zjednoczonych. Ze wszystkich

Bardziej szczegółowo

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

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

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne) Bazy danych 1 Wykład 5 Metodologia projektowania baz danych (projektowanie logiczne) Projektowanie logiczne przegląd krok po kroku 1. Usuń własności niekompatybilne z modelem relacyjnym 2. Wyznacz relacje

Bardziej szczegółowo

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 2 Język SQL, zajęcia nr 2 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Funkcja agregująca

Bardziej szczegółowo

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

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

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37 Aplikacje bazodanowe Laboratorium 1 Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, 2017 1 / 37 Plan 1 Informacje wst pne 2 Przygotowanie ±rodowiska do pracy 3 Poj cie bazy danych 4 Relacyjne

Bardziej szczegółowo

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

Bardziej szczegółowo

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).

Bardziej szczegółowo

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła 030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny Schemat bazy danych, wczytanej z pliku create_tables.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Aspekty aktywne baz danych

Aspekty aktywne baz danych Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać

Bardziej szczegółowo

Posługiwanie się tabelami

Posługiwanie się tabelami Wykład 3 Tabele Posługiwanie się tabelami Przykładowa tabela gromadząca informacje o osobach (Imię, Nazwisko, Data urodzenia) Osoby Imię Nazwisko Data urodzenia Jan Kowalski 1995-01-01 Piotr Nowak 1994-05-22

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

Bardziej szczegółowo

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

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń. Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21

Bardziej szczegółowo

Projektowanie bazy danych przykład

Projektowanie bazy danych przykład Projektowanie bazy danych przykład Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeń wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana

Bardziej szczegółowo

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych Monika Sychla 241858 Daniel Smolarek 241875 Projekt bazy danych Naszym zadaniem było zaprojektowanie przykładowej bazy danych, w oparciu o zagadnienia jakie zostały wprowadzone w trakcie kursu z baz danych.

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej   fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie

Bardziej szczegółowo

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

Bardziej szczegółowo

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

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 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

Grupowanie i funkcje agregujące

Grupowanie i funkcje agregujące Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

Bardziej szczegółowo