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

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

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

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Wykład 5. SQL praca z tabelami 2

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

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

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Wprowadzenie do baz danych

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

Podstawy technologii WWW

Ćwiczenie zapytań języka bazy danych PostgreSQL

Zapytania do baz danych

Wykład 6. SQL praca z tabelami 3

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

SQL (ang. Structured Query Language)

Bazy danych. Polecenia SQL

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

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

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

Wykład 8. SQL praca z tabelami 5

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Język SQL, zajęcia nr 1

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

2017/2018 WGGiOS AGH. LibreOffice Base

Wstęp do relacyjnych baz danych. Jan Bartoszek

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

Autor: Joanna Karwowska

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

Systemy GIS Tworzenie zapytań w bazach danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

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

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

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

Bazy danych i usługi sieciowe

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

Fizyczna struktura bazy danych w SQL Serwerze

DECLARE VARIABLE zmienna1 typ danych; BEGIN

SYSTEM INFORMATYCZNY KS-SEW

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX

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

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

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

Bazy Danych i Usługi Sieciowe

Kostki OLAP i język MDX

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

CREATE USER

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Przestrzenne bazy danych Podstawy języka SQL

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

Bazy danych. dr inż. Arkadiusz Mirakowski

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wykład 05 Bazy danych

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

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

Projektowanie baz danych za pomocą narzędzi CASE

WPROWADZENIE DO BAZ DANYCH

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Przykładowa baza danych BIBLIOTEKA

Wprowadzenie do baz danych

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

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

BAZA DANYCH. Informatyka. ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH Prowadzący: inż. Marek Genge

Program RMUA. Instrukcja konfiguracji i pracy w programie. (Wersja 2)

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

Kurs. Podstawy MySQL

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Wykład 4. SQL praca z tabelami 1

Oracle11g: Wprowadzenie do SQL

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

Wypożyczalnia by CTI. Instrukcja

Synchronizator plików (SSC) - dokumentacja

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

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

5.4. Tworzymy formularze

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Zapytania i wstawianie etykiet z bazy danych do rysunku

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

SYSTEM INFORMATYCZNY KS-SEW

Rozwiązanie. Uruchom program Access 2007.

Bazy danych TERMINOLOGIA

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

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

5.2. Pierwsze kroki z bazami danych

Transkrypt:

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 do definiowania struktur bazy danych oraz manipulacji na danych. Projektowana baza ma przechowywać następujące informacje: grupa kontaktu, imię, nazwisko, adres, telefon, mobile, email Przykładowy kontakt w naszej bazie miałby postać: koledzy, Jan, Nowak, ul. Niecała 8/23, 52-128, Wrocław, 713285926, +48602532152, jan.nowak@o2.pl Ze względu na to, że w ramach kolumny grupa kontaktu dochodziło by do redundancji czyli nadmiarowości danych w celu jej wyeliminowania dane będą przechowywane w dwóch tabelach: W celu zachowania informacji do jakiej grupy przypisany jest określony kontakt tabele te połączone zostaną relacją 1-n jak poniżej

Rozpoczniemy od zaprojektowania diagramu bazy danych zgodnie z przyjętymi założeniami w programie PowerDesigner. Wykonamy diagram konceptualny tej bazy.

W diagramie umieszczamy dwie Encje (tabele) Następnie PKM (prawy klawisz myszy) by anulować wstawianie kolejnych encji.

Klikamy dwukrotnie LKM (lewy klawisz myszy) na encji_1 by zdefiniować jej właściwości. Wprowadzamy jej nazwę.

Definiujemy jej atrybuty (czyli kolumny jakie będzie posiadała projektowana tabela). Pierwsza to klucz główny tej tabeli, wprowadzamy nazwę.

Dla każdego atrybutu wymagane jest również zdefiniowanie, jaki będzie dla niego typ danych. Za pomocą przycisku jak poniżej, wywołamy okno dialogowe z dostępnymi typami danych.

W przypadku klucza głównego będzie to liczba całkowita, zatem typ danych: Integer.

Następnie zaznaczamy opcję: Primary Identifier, czyli ustanawiamy ten atrybut kluczem głównym tabeli.

Automatycznie zostanie zaznaczona opcja: Mandatory, oznacza ona, że atrybut ten będzie wymagany (nie będzie możliwe dodanie nowej krotki, jeżeli wartość tego atrybutu będzie pusta).

Przechodzimy do zakładki Identifiers, czyli klucze tabeli. Zmieniamy domyślną nazwę klucza na: Id_grupa.

Powracamy do zakładki Attributes, dodajemy kolejny atrybut tej tabeli wprowadzając jego nazwę.

Definiujemy typ danych dla tego atrybutu. W przypadku nazw grup będą to ciągi tekstowe, zatem optymalnym będzie tu typ danych: Variable characters o maksymalnej długości ciągu równej 50.

Dla tego atrybutu zaznaczamy również opcję Mandatory, co będzie oznaczało, że nie będzie możliwe dodanie nowej krotki tej tabeli, jeżeli nie zostanie wprowadzona nazwa grupy.

Zamykamy edycję tej tabeli, uzyskamy efekt jak poniżej.

Przechodzimy do edycji drugiej tabeli. Wprowadzamy jej nazwę.

Definiujemy pierwszy atrybut, klucz główny, wprowadzamy jego nazwę.

Definiujemy typ danych dla tego atrybutu.

Ustanawiamy go kluczem głównym tabeli.

Zmieniamy nazwę atrybutu na zakładce: Identifires.

Definiujemy kolejne atrybuty tej tabeli, definiujemy dla nich typ danych oraz ustalamy opcję Mandatory jak poniżej. W przypadku atrybutu Adres_2 wybieramy typ danych Characters(6) gdyż wiemy, że zawsze będzie to 6 znaków.

Zamykamy edycję tej tabeli, uzyskamy efekt jak poniżej.

Następnie utworzymy pomiędzy zaprojektowanymi tabelami relację. Wybieramy opcję jak poniżej.

Trzymając LKM rysujemy linię od wnętrza jednej tabeli do wnętrza drugiej, nie ma znaczenia, od której do której tabeli ją utworzymy, relację można dowolnie przedefiniować. U Państwa może wyglądać to inaczej, ważne jedynie by relacja została utworzona.

Klikamy dwukrotnie LKW na utworzoną relację oraz przechodzimy na zakładkę: Cardinalities.

Definiujemy końce naszej relacji. W ramach określonej grupy, może znajdować się zero lub wiele kontaktów rozwijamy zatem listę i wybieramy jak poniżej. Określony kontakt w naszym przypadku będzie natomiast należał dokładnie do jednej grupy. Po zakończeniu edycji relacji uzyskamy efekt jak poniżej.

Sprawdzimy teraz poprawność diagramu.

Dla domyślnych ustawień opcji sprawdzenia wybieramy OK.

Po sprawdzeniu powinno być 0 ostrzeżeń oraz 0 błędów. Jeżeli u Państwa pojawią się jakieś ostrzeżenia lub błędy proszę to bezwzględnie zgłosić prowadzącemu!!!!

Na podstawie zaprojektowanego diagramu konceptualnego wygenerujemy teraz diagram fizyczny tej bazy.

Diagram wygenerujemy dla wersji DBMS Microsoft SQL Server 2008 (Data Base Managment System system zarządzania relacyjną bazą danych).

Wygenerowany diagram będzie wyglądał jak poniżej. Do tabeli dodany został klucz obcy Id_grupa będąca wynikiem utworzonej relacji. Na podstawie wygenerowanego modelu fizycznego utworzymy teraz skrypt SQL, który utworzy na serwerze strukturę bazy danych tabele oraz atrybuty.

Proszę ustawić ścieżkę zapisu tak by wiadomo było gdzie plik zostanie zapisany oraz podanie jego nazwy. Można otworzyć bezpośrednio plik wybierając jak poniżej.

Proszę zostawić otwarty ten plik będzie potrzebny na kolejnym etapie.

Uruchamiamy program za pomocą, którego możliwy będzie dostęp do serwera bazy danych. Wybieramy Connect, nazwa serwera w Państwa przypadku będzie oczywiście inna, serwer jest zainstalowany lokalnie na komputerze, przy którym Państwo siedzicie.

Wywołujemy okno nowego zapytania do DBMS.

Utworzymy teraz pojemnik bazy danych, do tworzenia bazy danych czy tabeli wykorzystujemy klauzulę CREATE. Wprowadzamy zatem zapytanie jak poniżej. PROSZĘ ZASTOSOWAĆ UNIKATOWĄ NAZWĘ TWORZONEJ BAZY NP kontakty_państwa inicjały Następnie, wywołamy wykonanie tego zapytania Skrót klawiszowy to F5

Jeżeli zapytanie zostanie wykonane otrzymamy potwierdzenie jak poniżej.

Po rozwinięciu listy baz danych utworzonych na serwerze i odświeżeniu jego zawartości

Znajdować się tam będzie utworzona baza. Ilość baz danych może być u Państwa oczywiście inna niż poniżej.

Za pomocą skryptu, który wygenerował program PowerDesigner, utworzymy teraz wewnątrz tej bazy tabele. Usuwamy poprzednie zapytanie

I wklejamy w całości zapytanie, które zostało wygenerowane przez program PowerDesigner. Musimy jeszcze wybrać, wewnątrz której bazy zapytanie to ma być wykonane. Wykonujemy zapytanie.

Po wykonaniu zapytania zostaną utworzone tabele oraz wewnątrz nich atrybuty jak poniżej.

Aby baza działała w pełni funkcjonalnie wymagane jest jeszcze włączenie opcji autouzupełniania dla kluczy głównych tabel.

Zamykamy to okno dialogowe i zapisujemy zmiany.

Analogicznie dla tabeli kontakt.

Baza jest już w pełni funkcjonalna. Rozpoczniemy od wprowadzenia danych do tabeli grupa. W języku SQL do wprowadzania danych wykorzystujemy klauzulę INSERT. Zapytanie do wprowadzania danych ma następującą postać: insert into nazwa_tabeli values ( atrybut_1, atrybut_2, atrybut_3, atrybut_4 ); Tabela grupa posiada dwa atrybuty Id_grupa oraz Nazwa_grupa. Atrybut Id_grupa jest atrybutem kluczowym i ma ustawioną opcję autouzupełniania, zatem będzie wypełniany automatycznie przez DBMS. Powiedzmy, że chcemy dodać grupę VIP, zapytanie zatem będzie miało postać jak poniżej: Wykonujemy to zapytanie.

Modyfikując to zapytanie proszę dodać następujące grupy: szkoła, rodzina, znajomi, praca. Zobaczmy czy dane zostały dodane. Do pobierania danych z bazy wykorzystujemy zapytania SELECT. Struktura zapytania pobierającego dane jest następująca: select atrybut_1, atrybut_2, atrybut_3,... from nazwa_tabeli Zatem w naszym przypadku Kolejność poszczególnych grup w tabeli jak również wartości klucza jakie są przydzielone do poszczególnych grup nie mają wpływu na prawidłowe działanie bazy jeżeli w Państwa przypadku wygląda to inaczej niż powyżej również jest prawidłowo.

Jeżeli pobieramy wszystkie atrybuty tabeli zamiast je wymieniać możemy użyć symbolu: *

Kolejność danych odpowiada kolejności wprowadzania. Jeżeli chcemy posortować dane do zapytania select należy dodać klauzulę order by. Sortowanie rosnąco A-Z, dodajemy klauzulę asc. Jeżeli sortujemy rosnąco nie jest wymagane dodawanie asc, jest to wartość domyślana.

Sortowanie malejąco Z-A, dodajemy klauzulę desc.

Kolejna operacja, którą możemy wykonać na danych to ich modyfikowanie, do tego wykorzystujemy zapytania UPDATE. Zapytanie modyfikujące dane ma następującą strukturę: update nazwa_tabeli set nazwa_atrybutu = wartość na którą zmieniamy Jednak, jeżeli zostało by wykonane zapytanie jak powyżej w całej tabeli zmienione by były wszystkie wartości dla tego atrybut. Jeżeli chcemy zmienić wybraną określoną wartość, to wymagane jest zdefiniowanie warunku by wskazać ten konkretny za pomocą klauzuli WHERE. Załóżmy, że w naszym przypadku chcemy zmienić nazwę grupy z VIP na vip, zapytanie takie miało by wówczas postać:

Wówczas

Kolejna operacja którą można wykonać na danych to ich usuwanie, do tego służą zapytania DELETE. Struktura zapytania DELETE jest następująca: delete from nazwa_tabeli jednak wykonanie takiego zapytania jak powyżej, spowodowałoby usunięcie wszystkich danych z tabeli, zazwyczaj chcemy usunąć wybrane dane dlatego też wymagane jest dodanie określonego warunku który te dane zdefiniuje pamiętać należy jednak, że usuwana jest cała krotka (cały wiersz tabeli) załóżmy, że chcemy usunąć grupę znajomi, postać takiego zapytania jest następująca:

Wówczas

Wprowadzimy teraz dane do tabeli kontakt. Kolejność argumentów w tabeli tej jest następująca: Klucz Id_kontakt będzie wypełniany automatycznie przez DBMS zatem w zapytaniu INSERT zostanie pominięty. Załóżmy, że chcemy dodać kontakt do grupy praca, wówczas dla atrybutu Id_grupa w zapytaniu INSERT wymagane będzie podanie wartości klucza obcego, który grupie tej odpowiada, zatem najpierw wymagane by było wykonanie zapytania: Otrzymamy wartość tego klucza Następnie:

Jednak zamiast wykonywać to za pomocą dwóch zapytań można to zrobić w jednym podstawiając zapytanie, które pobiera wartość klucza do zapytania INSERT, miało by ono postać: insert into kontakt values ( (select Id_grupa from grupa where Nazwa_grupa = 'praca'), 'Jan', 'Kowalski', 'Miękinia 33','58-569','Miękinia','(071) 5642369','+604256325','kowalski@gmail.com' ); Proszę odpowiednio modyfikując to zapytanie dodać kilka przykładowych kontaktów do różnych grup. Ponieważ telefon stacjonarny w naszej bazie nie jest wymagany możemy dodać kontakt bez jego podawania. Wówczas w zapytaniu wymagane jest podanie wartości : NULL Przykład takiego zapytania: insert into kontakt values ((select id_grupa from grupa where nazwa_grupa = 'VIP'), 'Kamila', 'Konarska', 'Będkowice 38', '54-523', 'Wrocław', NULL, '605505505', 'konarska@gmail.com');

Wyświetlmy zatem te dodane kontakty. Jednak w tabeli kontakt nie są przechowywane nazwy grup a jedynie wartości klucza obcego, które odpowiadają konkretnym nazwą grup w tabeli grupa. By zatem wyświetlić nazwę grupy i pełne dane określonego kontaktu wymagane jest pobranie danych z dwóch tabel. Postać takiego zapytania byłaby następująca: select tabela_1.atrybut_1, tabela_1.atrybut_2, tabela_2.atrybut_1, tabela_2.atrybut_2 from tabela_1, tabela_2;

Zatem w naszym przypadku:

Jednak wyświetlone dane nie są prawidłowe, został wykonany iloczyn na zbiorach dwóch tabel. Ponieważ tabele połączone są relacją wymagane jest zdefiniowanie warunku złączenia można to zrobić w klauzuli WHERE, a warunek ten jest następujący: Wartość klucza głównego Id_grupa w tabeli grupa ma być równe wartości klucza obcego Id_grupa w tabeli kontakt, zatem: