Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA SKRYPT DO LABORATORIUM BAZY DANYCH. autor: dr inż. Adam Bujnowski.



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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Bazy danych i usługi sieciowe

Bazy Danych i Usługi Sieciowe

Wykład 5. SQL praca z tabelami 2

Język SQL, zajęcia nr 1

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

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

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Projektowanie systemów baz danych

Wykład 8. SQL praca z tabelami 5

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

LeftHand Sp. z o. o.

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

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

Wykład 6. SQL praca z tabelami 3

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

Bazy danych. Polecenia SQL

CREATE USER

SQL (ang. Structured Query Language)

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

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

Kurs. Podstawy MySQL

Imię i Nazwisko Data Ocena. Laboratorium 7

Technologie informacyjne lab. 4

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wykład 05 Bazy danych

TECHNOLOGIA INFORMACYJNA

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

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

KORZYSTANIE Z BAZY DANYCH UpToDate

Instalacja MySQL.

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Przewodnik dla klienta

Aplikacja npodpis do obsługi certyfikatu

Aplikacja npodpis do obsługi certyfikatu

Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika)

Wprowadzenie do baz danych

Autor: Joanna Karwowska

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Widok Connections po utworzeniu połączenia. Obszar roboczy

Relacyjne bazy danych. Podstawy SQL

Struktura drzewa w MySQL. Michał Tyszczenko

Wdrożenie modułu płatności eservice. dla systemu Magento

Instrukcja korzystania z Systemu Telnom - Nominacje

DECLARE VARIABLE zmienna1 typ danych; BEGIN

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

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

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

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

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Relacyjne bazy danych. Podstawy SQL

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Komunikacja z bazą danych psql

Podręcznik Użytkownika aplikacji NOVO Szkoła. Profil Ucznia

Aplikacja do podpisu cyfrowego npodpis

VinCent Administrator

Synchronizacja i współdzielenie plików w Internecie. Prezentacja. Instrukcja obsługi aplikacji WEB Manager plików

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

Platforma e-learningowa

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Projektowanie baz danych za pomocą narzędzi CASE

INSTRUKCJA OBSŁUGI V-TERMU LYONESS.

Al. Akacjowa 16A Wrocław

Laboratorium - Poznawanie FTP

Aplikacja npodpis do obsługi certyfikatu

Aplikacja npodpis do obsługi certyfikatu

Instalacja systemu zarządzania treścią (CMS): Joomla

Dokumentacja SMS przez FTP

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

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej

Aplikacja npodpis do obsługi certyfikatu

Instalacja i obsługa aplikacji MAC Diagnoza EW

Obsługa pakietu biurowego OFFICE

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Podstawy Informatyki. Wykład 4 Komendy UNIXa, cd

I. Interfejs użytkownika.

W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów.

Transkrypt:

SKRYPT DO LABORATORIUM BAZY DANYCH ĆWICZENIE 1: Podstawy zarządzania bazami danych. autor: dr inż. Adam Bujnowski 1. Wymagania wstępne Gdańsk, 2011 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.

1.1.Ustawienia Znajomość podstaw obsługi komputera PC, preferowana znajomość systemów zgodnych z UNIX w zakresie obsługi wiersza poleceń. Umiejętność posługiwania się edytorem tekstów. Cele ćwiczenia: Wykaz przyrządów, materiałów i aparatury niezbędnej do przeprowadzenia ćwiczenia: Komputer klasy PC z systemem operacyjnym Windows lub Linux z zainstalowaną przeglądarką WWW (preferowana Mozilla FireFox), klientem ssh (dla Windows putty), programem do transmisji plików z użyciem warstwy ssh (WinSCP). Dostęp do internetu. Spodziewane efekty kształcenia - umiejętności i kompetencje: Opanowanie podstaw posługiwania się Metody dydaktyczne: Indywidualna praca przy komputerze PC, w oparciu o instrukcję do ćwiczenia. Zasady oceniania/warunek zaliczenia ćwiczenia Warunkiem zaliczenia ćwiczenia jest wykonanie i zaprezentowanie prowadzącemu wszystkich elementów ćwiczenia. Ocenę maksymalną można otrzymać wykonując dodatkowe, indywidualne zadania zlecone przez prowadzącego. Wykaz literatury podstawowej do ćwiczenia: 1. Skrypt do wykładu 2. www.postgresql.org 2. Przebieg ćwiczenia L.p. Zadanie 1. Wiadomości wstępne, łączenie się z serwerem, poprawne rozłączanie się. 2. Obsługa systemu plików, podstawowe operacje. Program Midnight Commander. 3. Zakładanie i kasowanie baz danych z poziomu interfejsu użytkownika. 4. Zapoznanie z programem psql. 5. Podstawy obsługi tabel zakładanie tabel, usuwanie tabel, modyfikacja struktury tabel. 6. Obsługa danych dodawanie, usuwanie i modyfikowanie rekordów 7. 8. UWAGI! Do poprawnej pracy każda osoba musi posiadać aktywne konto na serwerze bazy.eti.pg.gda.pl. Informacje o sposobie zakładania konta i sposobie jego aktywacji powinna być omówiona na wprowadzeniu do laboratorium. 2

W trakcie realizacji laboratorium lokalne komputery w laboratorium posłużą jako terminale do podłączenia z serwerem. Całość oprogramowania zainstalowana jest na serwerze. 3. Wprowadzenie do ćwiczenia łączenie się z serwerem Do łączenia się z serwerem bazy.eti.pg.gda.pl w systemach Windows wykorzystana zostanie aplikacja o nazwie putty. W większości komputerów program jest już zainstalowany. Jeśli nie - program można znaleźć pod adresem (alternatywnie wyszukiwarka google, hasło putty download) : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. Należy pobrać plik o nazwie putty.exe i umieścić na pulpicie. Cała aplikacja zajmuje ok 444kB więc nie obciąży zbytnio systemu. Po pobraniu i umieszczeniu aplikacji na pulpicie, pojawi się ikona (rys. 1). Rys. 1 Ikonka programu putty. Po uruchomieniu programu pojawi się okno z wyborem połączeń. Należy zdefiniować nowe połączenie zgodnie z rys. 2. Należy wypełnić pola Host Name (wpisujemy adres 153.19.55.211 albo nazwę komputera bazy.eti.pg.gda.pl), w nazwie sesji należy wpisać nazwę charakterystyczną dla tej sesji, np. bazy. Przed zapisaniem sesji dobrze jest jeszcze ustawić kodowanie znaków na UTF-8. W tym celu w polu Category, wybieramy Translation (rys. 3) Rys. 2. Ustawienia sesji w programie putty 3

Rys. 3. Zmiana ustawień kodowania znaków Po zmianie ustawień należy wrócić do pola session i zapisać sesję o nazwie bazy. Po następnym uruchomieniu programu putty wystarczy załadować sesję i kliknąć przycisk Open. Po otwarciu sesji pojawia się okno tekstowe z zapytaniem o login. 4

Rys. 4. Okno logowania w programie putty. Wprowadź teraz swój login, zatwierdź klawiszem [Enter]. Teraz program poprosi Cię o hasło. Wpisz swoje hasło UWAGA w trakcie wpisywania hasła nie pojawią się na ekranie żadne znaki, do momentu zatwierdzenia hasła klawiszem [Enter]. Po poprawnym wpisaniu hasła system wyświetli tekst powitalny i znak zachęty. Od tej chwili cała praca z systemem baz danych będzie się odbywała wewnątrz tego okienka. Większość wydawanych poleceń będzie wydawana przy pomocy klawiatury. Serwer odpowie w postaci komunikatu widocznego w tym oknie. 5

Rys.5. Okno po poprawnym zalogowaniu. Poniżej pokazany będzie podstawowy zestaw poleceń, które pozwolą na kilak podstawowych operacji: logout wylogowanie, powoduje zamknięcie sesji z serwerem oraz zamknie putty. Możesz również wcisnąć sekwencję klawiszy Ctrl-D ls - wyświetla zawartość katalogu, porównaj z poleceniem ls -laf cat [plik] - wyświetla zawartość pliku mkdir [nazwa katalogu] - tworzy następujący katalog rmdir [nazwa katalogu] - usuwa następujący katalog rm [nazwa pliku] - usuwa dany plik(ale przedtem system spyta nas, czy chcemy usunąc ten plik, jeśli tak, to wpisujemy literę "y", jeśli nie, to liter "n") rm -f [nazwa pliku] usunie bez pytania ps - wyświetla procesy man [nazwa programu] - instrukcje obsługi programu pwd - wyświetla aktualną ścieżkę do katalogu wraz z jego nazwą mv [nazwa pliku] [ścieżka do katalogu czyli np: /home/lol/] lub [nazwa katalogu] - przenosimy dany plik, do którego chcemy z katalogów, zamiast tego możemy podać nazwe, która zmieni nazwe pliku, a nie go przeniesie cp [nazwa pliku] [ścieżka do katalogu] - coś jak poprzednia komenda, tylko że kopiujemy do danego katalogu pozostawiając stary odnośnik date - aktualna data i czas 6

cd [nazwa katalogu] - otwiera katalog, który podaliśmy w komendzie cd - przenosi bezpośrednio do katalogu domowego - passwd - zmienia hasło użytkownika chmod [liczba od 000 do 777] [nazwa pliku] - zmiany praw dostępu pliku lub katalogu. Pierwsza liczba to użytkownik, druga to grupa, a trzecia pozostali. 0 lub --- brak praw dostępu 1 lub --x wykonywanie 2 lub -w- czytanie 3 lub -wx zapis 4 lub r-- zapis i wykonywanie 5 lub r-x odczyt 6 lub rw- odczyt i zapis 7 lub rwx odczyt, zapis i wykonywanie mc program ulatwiający obsługę plików obsługa podobna do programu Total Commander dla Windows. mcedit prosty edytor tekstu. 4. Zakładanie i usuwanie baz danych Pracując z systemem baz danych PostgreSQL każdy uprawniony użytkownik może zakładać swoje bazy danych. Do utworzenia nowej bazy danych służy polecenie : createdb nazwabazy Jako nazwę bazy przyjmij lab1_<twój_login>. Czyli jeśli zalogujesz się jako użytkownik test to wprowadź nazwę bazy lab1_test. Po poprawnym założeniu bazy system wyświetli potwierdzenie: CREATE DATABASE. UWAGA!! - w sytuacji kiedy więcej użytkowników naraz próbuje założyć bazę danych w jednym czasie system może odmówić wyświetlając komunikat: "source database "template1" is being accessed by other users" Napotykając taki komunikat należy ponowić polecenie createdb za jakiś czas. Do usunięcia bazy danych służy polecenie dropdb nazwabazy Po poprawnym usunięciu bazy danych system potwierdzi to komunikatem DROP DATABASE Do skasowania, podłączenia się do bazy danych potrzebna jest jej nazwa. W przypadku zapomnienia nazwy bazy danych możliwe jest jej odzyskanie. Polecenie psql -l spowoduje wyświetlenie wszystkich baz danych w systemie. Z czasem polecenie to zwróci dość długą listę baz danych. Można ograniczyć 7

ilość wyników do baz danych konkretnego użytkownika. Polecenie psql -l grep <twojlogin> spowoduje przefiltrowanie wyników wyświetlania do wszystkich tych linii, w których występuje <twojlogin>. Wypróbuj teraz zakładanie i usuwanie baz danych. Ostatecznie załóż bazę danych o nazwie lab1_<twojlogin>. 5. Interfejs systemu zarządzania baz danych psql. Po założeniu bazy danych można się z nią połączyć poleceniem : psql <nazwabazy> Po połączeniu się z bazą danych program psql wyświetli następujące komunikaty: Welcome to psql 7.4.23, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit Wyjść z programu psql można wpisując \q i zatwierdzając klawiszem [Enter]. W psql-u istnieją dwie kategorie poleceń. Pierwsza kategoria to polecenia w języku SQL. Polecenia te wpisuje się bezpośrednio, kończąc każde polecenie znakiem średnika. Rezultat działania polecenia wyświetlony zostanie na ekranie lub/i utrwalony w bazie danych. 8

Drugą kategorią poleceń są polecenia dotyczące zachowania programu psql sposobu interakcji z użytkownikiem i parametrów wyświetlania. Listę dostępnych poleceń w SQL można uzyskać wpisując polecenie \h. Dodatkowo wpisując \h nazwa_polecenia wyświetla się bardziej szczegółowa pomoc na temat danego polecenia np.: \h create, \h create table itp. Listę poleceń wewnętrznych można uzyskać wpisując polecenie \?. UWAGA!!! Czasami ( w praktyce dość często) wygenerowany wynik czy to z polecenia \h czy z zapytania jest dość duży tak duży, że nie mieści się na ekranie. W interfejsie programu psql zaimplementowano mechanizm stronicowania. Polega on na tym, że po wyświetleniu porcji informacji mieszczącej się na stronie program zatrzyma je na ekranie wówczas spacja następna strona, enter, pojedyncza linia, b poprzednia strona, opuszczenie wyświetlania q. 6. Zakładanie i tworzenie tabel Przyjmijmy, że stworzymy bazę danych do przechowywania informacji o znajomych. Podstawowe informacje, jakie będziemy chcieli składować to imię, nazwisko oraz numer telefonu znajomego. Dodatkowo ponumerujemy naszych znajomych. Tabela w formie prezentacyjnej może wyglądać następująco: id imie nazwisko telefon 1... Jan... Kowalski... Sprawdźmy, czy w naszej bazie występują jakieś tabele : 555666555... \dt (system odpowie : no relations found ) Zapiszmy adekwatne do stworzenia tej tabeli strukturę polecenia create: CREATE TABLE znajomy(id serial, imie varchar(20), nazwisko varchar(40),telefon char(15)); System potwierdzi wykonanie polecenia wypisując CREATE TABLE. Sprawdźmy teraz co się stało w strukturze bazy danych : \dt Dokładniejsze informacje na temat tabeli można uzyskać wpisując \d znajomy. Istniejącą tabelę można usunąć poleceniem DROP TABLE znajomy; (pamiętajmy o średniku na końcu polecenia). W SQL polecenia można wpisywać w wielu liniach, więc poprzednia instrukcja CREATE TABLE może być napisana w wielu liniach. Polecenie zostanie w całości zaakceptowane w momencie, gdy zakończymy je średnikiem. Zapis: CREATE TABLE znajomy( id serial, imię varchar(20), nazwisko varchar(40), 9

telefon char(15)); jest równoważny poprzedniemu wpisowi. UWAGA!!! Program psql może wyświetlać jeden z trzech znaków zachęty: nazwa_bazy=> gotowość do przyjęcia nowego polecenia w bazie 'nazwa_bazy', nazwa_bazy-> (jeśli wprowadzana instrukcja jest niedokończona składniowo), nazwa_bazy'> )> sugeruje niedomknięcie nawiasu lub cudzysłowu Program psql przyjmuje polecenia języka SQL oraz polecenia sterujące. Jako koniec linii polecenia SQL rozpoznawany jest średnik ; a nie ENTER. W praktyce jest to olbrzymią zaletą, długie polecenia SQL będą bardziej czytelne jeśli z użyciem ENTER będziemy je pisać w kilku liniach. 7. Wprowadzanie danych Wpisujemy dane. Kiedy tabela jest już gotowa, można w niej umieszczać dane pamiętając o zgodności z typami danych i spełniając warunki ograniczeń jakie w tabeli zapisaliśmy. INSERT INTO ntabeli (nkolumny1, nkolumny5,...) VALUES (val1, val5,...); wprowadź co najmniej 5 rekordów próbując pominąć różne kolumny INSERT INTO znajomy (imię,nazwisko,telefon) VALUES ('Jan', 'Kowalski', '58452000'); 8. Odczyt danych Składnia polecenia SELECT może być złożona: SELECT * [AS naz_wyj] FROM ntabeli [WHERE warunek][ordrer BY naz_kolumny ASC DESC]; W najprostszej postaci możemy wybrać wszystkie krotki z tabeli: SELECT * FROM znajomy; :jaki warunek spełniają krotki wyświetlone następującym poleceniem: SELECT * FROM znajomy WHERE imie='jan'; Dostępne operatory wykorzystywane w warunkach: >, <, =, <>, is NULL Łączenie kilku warunków wykonujemy za pomocą operatorów logicznych: AND, OR Zamiast * po słowie SELECT można wpisać nazwy tabel, które nas w tym momencie interesują. :wyświetl zawartość tabeli w najprostszej postaci SELECT *, tylko wybrane kolumny, oraz z prostym warunkiem i posortowane 9. Modyfikacja danych Za pomocą polecenia UPDATE aktualizujemy istniejące w tabeli rekordy: UPDATE ntabeli SET nkol=nowa_wartosc WHERE warunek; UPDATE ntabeli SET nkol=ntab2.wartosc FROM ntab2 WHERE warunek; nkol to nazwa kolumny, wktórej chcemy aktualizować dane. 10

nowa_wartość może być podana wprost lub obliczona według zadanej reguły. Pomocna jest tu gama operatorów: +,-,*,%. Warunek WHERE można najpierw przećwiczyć na poleceniu SELECT sprawdzając czy na pewno dotyczy rekordów, które mamy na myśli. Przetestujmy jak działa modyfikacja rekordów. Na początek zmienimy imię pana o id=1: UPDATE znajomy SET imie= Andrzej WHERE id = 1; Spróbuj zmienić telefon dla wybranej osoby, nazwisko itp. 10.Usuwanie wybranych rekordów Podobnie do modyfikacji można przeprowadzić usuwanie krotek. Bez warunku WHERE jest to posunięcie dość radykalne, sprzątające wszelkie dane z tabeli. Bez korzystania z transakcji (o tym na późniejszych laboratoriach) wpisanie polecenia: DELETE FROM znajomy; Sprawi, że wyczyścimy całą tabelę z danych. Na razie nie rób tego!!! Sprawdź działanie dla wybranych wierszy w tabeli: DELETE FROM ntabeli WHERE warunek; Podobnie jak w przypadku UPDATE proponowany warunek warto najpierw sprawdzić wykorzystując polecenie SELECT. Na przykład: DELETE FROM znajomy where imie= Jan ; 11.Modyfikacja struktury tabel Czasami zdarza się, że do opisu naszej encji potrzebujemy większej liczby atrybutów. W istniejącej tabeli możemy je dodać. Do modyfikacji istniejącej tabeli służy polecenie ALTER TABLE. Możesz się zapoznać bliżej z jego składnią dzięki poleceniu \h ALTER TABLE (polecenia z ukośnikiem nie wymagają średnika na końcu linii). Do naszego znajomego dodaj element danych email o typie varchar(100): ALTER TABLE znajomy ADD email varchar(100); Teraz spróbuj korzystając z polecenia UPDATE wpisać kilka emaili swoim znajomym. Dodaj pole nr_gg o typie integer. Podobnie jak poprzednio wypełnij to pole danymi. 12.Operacje dodatkowe Spróbujmy poćwiczyć nieco inne operacje w bazie danych. Sprawdź w jaki sposób zadziałają następujące polecenia: SELECT 2+2; SELECT sin(0.3); 11

SELECT sum(id) FROM znajomy; SELECT now(); 13.Usuwanie tabeli Usuwanie tabeli to również zadanie nieodwracalne. Jeżeli tabela nie jest powiązana referencjami (o czym wkrótce) z innymi tabelami, to można ją usunąć nawet wtedy gdy nie jest ona pusta. Służy do tego polecenie: DROP TABLE nazwatabeli; W początkowym etapie nauki usuwanie tabel jest pożyteczne, aby nie mieć w bazie bałaganu. Aby nie mylić tabel wykorzystywanych na kolejnych zajęciach, tabele z poprzednich zajęć warto usunąć. W chwili obecnej wstrzymaj się z usuwaniem tabeli do momentu 14.Wiele tabel w bazie danych Załóż w bazie danych dodatkową tabelę o nazwie osoba. Załóż pola : Id serial, Imie varchar(20) not null Nazwisko varchar(40) not null Pesel char(15) not null Sprawdź jak wygląda struktura tabel w Twojej bazie danych: \d \dt Wypełnij tą tabelę przykładowymi danymi. Sprawdź działanie instrukcji: INSERT INTO osoba(imie) VALUES ( Jan ); INSERT INTO osoba(nazwisko) VALUES ( Nowak ); Co zrobić żeby można było wpisać wiersze w tej tabeli. Sprawdź działanie polecenia INSERT into znajomy(imie,nazwisko) SELECT imie,nazwisko FROM osoba; Sprawdź dane w tabeli znajomy, porównaj z tabelą osoba. Teraz możesz przećwiczyć usuwanie tabel. 12