SIECI KOMPUTEROWE I BAZY DANYCH



Podobne dokumenty
SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

SIECI KOMPUTEROWE I BAZY DANYCH

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

Baza danych. Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami.

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

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

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

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

PERSON Kraków

Projektowanie bazy danych

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

API transakcyjne BitMarket.pl

Ładowanie i reorganizacja

I. Zakładanie nowego konta użytkownika.

Bazy danych 1. Wykład 6 Metodologia projektowania baz danych. (projektowanie logiczne - Normalizacja)

Harmonogramowanie projektów Zarządzanie czasem

Podstawa programowa kształcenia ogólnego informatyki w gimnazjum

Kancelaris - Zmiany w wersji 2.50

System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010

Praca na wielu bazach danych część 2. (Wersja 8.1)

NoSQL. Technologie zarządzania treścią. dr inż. Robert Perliński

E-faktura PKP Energetyka

Aplikacje internetowe i rozproszone - laboratorium

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Nowe funkcjonalności

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Instrukcja sporządzania skonsolidowanego bilansu Miasta Konina

Microsoft Management Console

Zaznaczając checkbox zapamiętaj program zapamięta twoje dane logowania. Wybierz cmentarz z dostępnych na rozwijalnej liście.

EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

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

Zarządzanie Zasobami by CTI. Instrukcja

System do kontroli i analizy wydawanych posiłków

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Projektowanie Systemów Inf.

Warszawska Giełda Towarowa S.A.

WARUNKI TECHNICZNE ARCHIWIZACJI DOKUMENTÓW

OptiMore Importer Rejestru VAT. Instrukcja obsługi programu

Edycja geometrii w Solid Edge ST

PODRĘCZNIK UŻYTKOWNIKA

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Strona główna góra

Logowanie do systemu Faktura elektroniczna

ANALOGOWE UKŁADY SCALONE

KLAUZULE ARBITRAŻOWE

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Niniejszy ebook jest własnością prywatną.

Bazy danych. Andrzej Łachwa, UJ, /15

enova Workflow Obieg faktury kosztowej

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

CitiDirect EB - Mobile

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

Autor: Joanna Karwowska

Wykład 8. SQL praca z tabelami 5

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Wiedza niepewna i wnioskowanie (c.d.)

Zapytanie ofertowe M.M. Druk Serwis Sp. z o.o.

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

RAPORT Z EWALUACJI WEWNĘTRZNEJ. w Poradni Psychologiczno-Pedagogicznej w Bełżycach. w roku szkolnym 2013/2014

Rodzaje i metody kalkulacji

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

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 2

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Komputer i urządzenia z nim współpracujące

Instrukcja programu PControl Powiadowmienia.

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

Nowości w module: BI, w wersji 9.0

Szkolenie Szybki Start

Bazy danych informacje podstawowe

Wykład 05 Bazy danych

Wykład 4. W tym wykładzie omówimy deklaratywne więzy spójności stanowiące jeden z elementów aplikacji bazy danych po stronie serwera.

Stypendia USOS Stan na semestr zimowy 2013/14

Regulamin korzystania z serwisu

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows.

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Centrum Informatyki "ZETO" S.A. w Białymstoku. Instrukcja użytkownika dla urzędników nadających uprawnienia i ograniczenia podmiotom w ST CEIDG

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Instrukcja Obsługi STRONA PODMIOTOWA BIP

SERI A 93 S E RI A 93 O FLUSH GRID WITHOUT EDGE TAB

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Zmiany w wersji 1.18 programu VinCent Office.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Formularz rzeczowo-cenowy PAKIET 2

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

Bazy danych Ćwiczenia projektowe

Transkrypt:

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 - III

Cel laboratorium Celem laboratorium jest zapoznanie studentów z podstawami relacyjnych baz danych Wstęp Relacyjne bazy danych są naturalnym rozszerzeniem koncepcji tabeli. Relacyjne bazy danych zapobiegają konieczności powielania tych samych danych w wielu tabelach. Aktualizacja tak skonstruowanej bazy jest nieskuteczna i uciążliwa. Przykładem tabel, gdzie mielibyśmy do czynienia z nadmiarem danych są tabele przechowujące dane o sprzedażowe. W tabeli transakcje chcemy mieć dostęp do danych o kontrahencie, który brał w niej udział, jednak nie należy dodawać do tabeli transakcje kolumn dotyczących danych teleadresowych klienta. Takie podejście prowadzi do refundacji danych, co ma negatywny wpływ na proces ich aktualizacji. Lepszym rozwiązaniem jest wydzielenie danych o klientach do osobnej tabeli i w tabeli transakcje odwoływać się do odpowiednich krotek tabeli klienci. Takie podejście sprawia, że tylko w jednym miejscu aktualizujemy dane adresowe kontrahentów. Przykład takiego podejścia pokazano na rys. 1 Rysunek 1: Przykład relacji. (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch) Jak wskazano w [1], relacyjna baza danych opera się na kilku zasadach: wszystkie dane w relacyjne bazie danych są opart o dwuwymiarowe tabele po wprowadzeniu danych możliwe jest ich porównywanie (nawet gdy pochodzą z innych tabel) czy wiązanie wykonywanie wszystkich operacji oparte jest na logice. By mówić o relacji, potrzebne są co najmniej dwie tabele, między którymi istnieje relacja (więź) (patrz rys. 1). Istnieje kilka rodzajów relacji: jeden-do-jednego relacja ta występuje wtedy, gdy pojedynczemu rekordowi w jednej tabeli odpowiada pojedynczy rekord w drugiej tabeli. W rzeczywistych zastosowaniach relacji jeden-do-jeden jest bardzo rzadka.

relacja jeden-do-wielu relacja ta zachodzi, gdy pojedynczemu rekordowi z jednej tabeli odpowiada jeden lub więcej rekordów z drugiej tabeli. Rysunek 2: Przykład relacji jeden-do-wielu. (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch) relacja wiele-do-wielu Gdy wielu rekordom z pierwszej tabeli odpowiada wiele rekordów z drugiej tabeli. Taka relacja wymiaga normalizacji, która polega na dodaniu nowej tabeli. Przykład znormalizowanej relacji wiele-do-wielu pokazano na rys. 3. Rysunek 3: Przykład znormalizowanej relacji wiele-do-wielu. (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch) Tworzenie relacji jeden-do-wielu Na rys. 2 pokazano przykład relacji jeden-do-wielu pomiędzy tabelami książka i wydawnictwo. W tej relacji wydawnictwo może wydać wiele książek. Patrząc od strony książki relacja jest następująca: wiele książek może być wydanych przez jedno wydawnictwo. W praktyce, relacja jeden-do-wielu jest tworzona poprzez dodanie dodatkowej kolumny w tabeli, która w relacji występuje po stronie wiele. Kolumna ta ma własność klucza obcego (FK, foreign key) tj. przetrzymuje wartość klucza głównego (PK, Primary key) odpowiedniego rekordu innej tabeli. Pierwszym krokiem prowadzącym do utworzenia relacji widocznej na rys. 2 jest wykonanie zapytania SQL tworzącego tabelę Wydawnictwo

CREATE TABLE Wydawnictwo ( ID INT PRIMARY KEY, Nazwa VARCHAR(45), Adres VARCHAR(45) ); Następnym krokiem tworzenia relacji jest utworzenie tabeli Ksiazka, w której zostanie dodana dodatkowa kolumna, mająca własności klucza obcego. W tym przypadku będzie to kolumna o nazwie W_ID, która będzie się odnosi się do numeru ID w tabeli Wydawnictwo. Dlatego typ kolumny W_ID to INT, gdyż taki typ posiada kolumna ID (będąca PK) w tabeli Książka. Stąd zapytanie SQL tworzące tabelę Ksiazka ma postać CREATE TABLE Ksiazka ( ID INT PRIMARY KEY, Tytul VARCHAR(45), LiczbaStr tinyint, W_ID INT ); Ostatnim elementem tworzenia relacji jest dodanie do tabeli Ksiazka ograniczenia klucza obcego. Schemat takiego zapytania ma postać ALTER TABLE tabelaa ADD CONSTRAINT nazwa_ograniczenia FOREIGN KEY (kolumnafk) REFERENCES tabelab(kolumnapk)[on DELETE CASCADE ON UPDATE CASCADE] gdzie nazwa_ograniczenia to nazwa identyfikujące ograniczenia a tabelaa to nazwa tabeli która zawiera kolumnę klucza obcego kolumnafk. Występujące w zapytaniu tabelab i kolumnapk to odpowiednio nazwa tabeli której wartości klucza głównego znajdą się w kolumnie kolumnafk oraz nazwa kolumny klucza głównego tabeli tworzącej relacje (tj. tabeli o nazwie tabelab). Opcjonalne słowa kluczowe ON DELETE CASCADE i ON UPDATE CASCADE zapewniają integralność relacji. W omawianym przypadku, zapytanie SQL dodające ograniczenia klucza obcego ma postać ALTER TABLE ksiazka ADD constraint ks_fk_w FOREIGN KEY (W_ID) REFERENCES wydawnictwo(id) ON DELETE CASCADE ON UPDATE CASCADE Alternatywą do dodawania referencji po utworzeniu obydwu tabel jest utworzenie referencji w momencie tworzenia tabeli ksiazki

CREATE TABLE Ksiazka ( ID INT PRIMARY KEY, Tytul VARCHAR(45), LiczbaStr tinyint, W_ID INT, CONSTRAINT ks_fk_w FOREIGN KEY (W_ID) REFERENCES wydawnictwo(id) ON DELETE CASCADE ON UPDATE CASCADE ); Tak utworzona relacja dba o to, by dodawane rekordy w tabeli Ksiazka odnosiły się do odpowiedniego rekordy w tabeli wydawnictwa. Usuwanie wierszy Do usuwania wierszy w SQL służy polecenie DELETE, a schemat jego użycia ma postać DELETE FROM nazwa_tabeli WHERE nazwa_kolumny=wartosc Przykładem użycia polecenia DELETE jest usunięcie rekordu o ID równym 1 z tabeli książka DELETE FROM ksiazki WHERE ID=1 Tworzenie relacji wiele-do-wielu Relacja wiele-do-wielu nie jest możliwa do odwzorowania w relacyjnej bazie danych. Dlatego każda relacja wiele-do-wielu podlega procedurze normalizacji. W jej wyniku relacja wiele-do-wielu jest zamieniana na dwie relacje jeden-do-wielu (rys. 3). Takie działanie wymusza utworzenie trzeciej tabeli, która będzie przetrzymywać dwa klucze obce. Jeden z nich odnosi się do klucza głównego jednej, a drugi do klucza głównego drugiej tabeli będących w pierwotnej relacji. Na rys. 3 pokazano znormalizowaną relacje wiele-do-wielu. Tabela Zapis zawiera dwa klucze obce. Jeden z nich, przechowywany w kolumnie Student_ID przechowuje wartości kolumny ID z tabeli Student, która jest jej kluczem głównym. Drugi klucz obcy w tabeli Zapisy tj. Przedmiot_ID, przechowuje wartości klucza głównego tabeli Przedmiot, który zdefiniowano na kolumnie ID tejże tabeli. Po operacji normalizacji relacji wiele-do-wielu jej odwzorowywana w relacyjnej bazie danych jako dwie relacje wiele-do-jednego. Stąd jej utworzenie jest tożsame z napisaniem dwóch ograniczeń klucza obcego (CONSTRAINT FOREGINE KEY ). W przypadku modelu bazy danych, pokazanym na rys. 3, ograniczenie klucza obcego występuje pomiędzy tabelami Zapisy i Student oraz tabelami Zapisy i Przedmiot. Wyszukiwanie informacji w relacyjnej bazie danych Rozważmy fragment bazy danych Nordhwind pokazany na rys. 4

Rysunek 4: Fragment bazy danych Northwind z zaznaczonymi kluczami głównymi oraz obcymi (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch) Rozważany fragment zawiera cztery tabele, z których pomiędzy tabelami products (produkty) i suppliers (producenci) występuje relacja jeden-do-wielu a pomiędzy tabelami products i orders (zamówienia) występuje relacja wiele-do-wielu normalizowana przez tabelę order details. Rysunek 5: Zestawienie produktów z ich producentem W celu zestawienia nazwy produktów (z tabeli products) z nazwą producenta (z tabeli suppliers), co pokazano na rys. 5, należy wykonać następujące zapytanie SQL select products.productname, suppliers.companyname from products, suppliers where products.supplierid=suppliers.supplierid; gdzie fragment products.supplierid=suppliers.supplierid wynika z istnienia relacja zdefiniowanej pomiędzy kluczem obcym tj. w tabeli products a kluczem głównym (kolumna) tabeli suppliers. Uwaga: W celu jednoznacznej interpretacji pochodzenia kolumny należy używać notacji z kropką tj. nazwatabeli.kolumna

Złączenia Zapoznaj się ze słowem kluczowym join (języka SQL) i jego modyfikacjami korzystając z zasobów internetowych, np.: http://www.w3schools.com/sql/sql_join.asp http://www.sql-kursy.pl/ms-sql-kurs-join-union-except-2.html http://www.sql-join.com/ Zadania do wykonania z użyciem join znajdują się w części III Zadania do wykonania CZĘŚĆ I Uwaga 1.1: Dane do zadań zależą od grupy. Patrz tabela 1. Uwaga 1.2: W celu połączenia z bazą użyj aplikacji Database browser oraz połącz się z bazą MySQL działającą w sieci lokalnej. gdzie X to cyfra podana przez prowadzącego Zadania Dane dostępu do bazy Host: 192.168.11.252 Port: 3306 Użytkownik: studx Hasło: studx Baza: studx lub employees 2.1. Zamodeluj relacje jeden-do-wielu którą podano w tab. 1.Napisz zapytania do bazy danych tworzącą dwie tabele oraz relacje (jeden do wielu) pomiędzy nimi. Wprowadź kilka rekordów do każdej z tabeli, zaczynając od tej, która w relacji jest po stronie jeden. 2.2. Zaprojektuj dwie tabele które łączy relacja wiele-do-wielu i dokonaj jej normalizacji. Nazwy tabel podano w tab.1. Wprowadź kilka rekordów do każdej z tabel tej relacji. Dane dostępu do bazy Host: 192.168.11.252 Port: 3306 Użytkownik: studx Hasło: studx Baza: studx lub employees

I,IV, II,V III,VI Zad 1.1 Klient, Zamówienie Logowanie, Użytkownik Przedmiot, student Zad 1.2 EgzemplarzKsiazki, Samochod, Klient Maszyna,Element Czytelnik Tab 1. Dane do zadań z cz. I CZĘŚĆ II Uwaga 2.1. W celu połączenia z bazą Northwind [3] użyj aplikacji Database browser oraz połącz się z bazą MySQL działającą w sieci lokalnej. gdzie X to cyfra podana przez prowadzącego Uwaga 2.1. Do tabeli order details odwołujemy się w SQL za pomocą `. tj. `order details`, np. `order details`.orderid Zadania Dane dostępu do bazy Host: 192.168.11.252 Port: 3306 Użytkownik: studx Hasło: studx Baza: Nordhwind 2.1. Zapoznaj się z modelem bazy danych Northwind pokazanym w pliku Northwind_Model.pdf utworzonym za pomocą programu MySQL Workbanch. 2.2. Policz ile produktów dostarcza poszczególny producent. W odpowiedzi wyświetl nazwę producent oraz ilość dostarczanych produktów. 2.3. Jaki jest średni zapas produktów należących do poszczególnych kategorii 2.4. Ile zamówień złożył dany klient (wyświetl: ID klient, nazwę klienta oraz liczbę zamówień ) 2.5. Napisz własne zapytanie do bazy danych

CZĘŚĆ III Uwaga 3.1. W celu połączenia z bazą Northwind [3] użyj aplikacji Database browser oraz połącz się z bazą MySQL działającą w sieci lokalnej. gdzie X to cyfra podana przez prowadzącego Zadania Dane dostępu do bazy Host: 192.168.11.252 Port: 3306 Użytkownik: studx Hasło: studx Baza: Nordhwind 3.1. Opisz w kilku zdaniach jak działa słowo kluczowe join 3.2. Dokonaj złączenia tabel customers oraz orders korzystając z różnych wariantów złączenia. Wyświetl kolumnę CompanyName z tabeli Customers oraz EmployeeID i OrderDate z tabeli orders 3.3. Zinterpretuj różnicę w ilości zwróconych wierszy dla różnych wariantów złączenia 3.4. Wykonaj zapytania 2.2,2.3 i 2.4 korzystając ze złączeń 3.5. Dodatkowe: Zapytanie złożone: podaj listę produktów które znalazły się w zamówieniu, dla którego wartość kolumny Freight tabeli orders jest największa. (Uwaga. Największej wartości nie można wpisać jawnie. Ma zostać wyznaczona w zapytaniu) Sprawozdanie Sprawozdanie powinno zawierać polecenie języka SQL realizujące dane zadanie oraz wynik jego działania Bibliografia [1] Giergiel J, Giergiel M, K. Kurc, Sieci komputerowe i bazy danych, OWPRz 2010 [2] MySQL Documentation (http://dev.mysql.com/doc) [3] Baza danych Northwind na różne bazy danych: https://code.google.com/p/northwindextended