RELACYJNE BAZY DANYCH TEORIA. Bazy danych to uporzdkowany zbiór informacji z okrelonej dziedziny lub tematyki przeznaczony do wyszukiwania

Podobne dokumenty
RELACYJNE BAZY DANYCH - WICZENIA

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

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

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

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

Zadania do wykonaj przed przyst!pieniem do pracy:

Systemy GIS Tworzenie zapytań w bazach danych

Typy bazy danych Textract

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

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

Bazy danych Podstawy teoretyczne

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

WPROWADZENIE DO BAZ DANYCH

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

2. Tabele w bazach danych

Język SQL, zajęcia nr 1

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Terminologia baz danych

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Przestrzenne bazy danych Podstawy języka SQL

Oracle11g: Wprowadzenie do SQL

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

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

SQL. Ćwiczenia praktyczne. Wydanie II

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

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Technologia informacyjna

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych SQL Server 2005

TEST E.14 BAZY DANYCH

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykáad 1: Wprowadzenie do baz danych

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

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

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

Wykład 5. SQL praca z tabelami 2

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

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

Przykłady wyrae uywanych w kwerendach i filtrach

Oracle PL/SQL. Paweł Rajba.

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Autor: Joanna Karwowska

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

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

Wprowadzenie do baz danych

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

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykáad 1: Wprowadzenie do baz danych

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

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

Jak wida ć na powyższym przykładzie, grupy warunków umieszcza si ę w nawiasach.

Paweł Rajba

Wstp. Odniesienie do podstawy programowej

Technologie baz danych

Wprowadzenie do baz danych

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykład 1: Wprowadzenie do baz danych. Semestr 1

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

POROZUMIENIE. w sprawie realizacji zada administracji rzdowej w zakresie weryfikacji danych z informatycznej bazy danych prowadzonej przez starost

Zapytania do baz danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Bazy danych Transakcje

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Posługiwanie się tabelami

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

1. Dodatkowe informacje. 2. Czynnoci wstpne. 3. Zadania

SIECI KOMPUTEROWE I BAZY DANYCH

1. Zarządzanie informacją w programie Access

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

Wykład 05 Bazy danych

Planowanie adresacji IP dla przedsibiorstwa.

OPRACOWANIE: SŁAWOMIR APANOWICZ

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Język SQL podstawy zapytań

Baza danych Uczniowie.mdb

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

Transkrypt:

RELACYJNE BAZY DANYCH TEORIA Bazy danych to uporzdkowany zbiór informacji z okrelonej dziedziny lub tematyki przeznaczony do wyszukiwania W kadej bazie danych mona wyodrbni dwa składniki: - model danych, - system zarzdzania baz danych (w skrócie SZBD). Termin model danych rozumiany bdzie szeroko, tzn. jako zbiór zasad dotyczcych struktury danych, i ich zwizków z rzeczywistoci. Pod pojciem SZBD rozumie bdziemy zbiór narzdzi (aplikacji) umoliwiajcy dostp do danych, w szczególnoci ich odczyt i modyfikacj. Przykładow baz Dziennik klasowy utworzymy korzystajc z systemu zarzdzania baz danych Access firmy Microsoft. Tabele jako zbiory danych SZBD przechowuje informacje (dane) w tabelach. Tabela charakteryzowana jest przez unikaln w skali bazy danych nazw. Kada tabela składa si z kolumn o okrelonej, unikalnej w skali tabeli nazwie. W kadej kolumnie mona przechowywa dane okrelonego typu. Wyodrbnianie danych elementarnych Pierwszym naszym zadaniem, jako projektantów bazy danych, powinno by okrelenie danych elementarnych na potrzeby naszego modelu danych. Pod pojciem danych elementarnych bdziemy rozumie podstawowe, niepodzielne 'cegiełki' informacji, z których moemy zbudowa pełn informacj o modelowanym fragmencie rzeczywistoci. Pojedyncze dane elementarne bdziemy przechowywa w odpowiednich kolumnach tabeli. Powinnimy zmieni projekt tabeli Matematyka zastpujc kolumn Imi i nazwisko ucznia dwiema kolumnami w jednej przechowamy informacje o imieniu, w drugiej o nazwisku ucznia. Przyjrzyjmy si pozostałym kolumnom. Oceny podzielilimy na oceny z odpowiedzi, oceny ze sprawdzianów i oceny semestralne. Jeeli nawet informacja o tym, kiedy została zdobyta konkretna ocena nie musi by zachowana w bazie, to taki sposób przechowywania danych uniemoliwi obliczenia np. redniej kadego ucznia z danego przedmiotu.

Analizujc nowy układ danych wyraniej moemy zauway, e jeeli kilkoro uczniów w klasie bdzie miało to samo imi, a wic dane w pierwszej tabeli kolumny bd identyczne, to SZBD bdzie miał problemy z "pamitaniem" jakie oceny zdobyła Ewa Rusek, a jakie Ewa Starska. Rozwizaniem tego problemu jest dodanie kolumny przechowujcej unikalne, jednoznacznie identyfikujce ucznia wartoci: Grupowanie danych w tabelach Przyjrzyjmy si tabeli Matematyka. Zawiera ona pewne informacje o uczniu, takie jak jego imi i nazwisko, nie zwizane bezporednio z jego ocenami z matematyki. W dodatku nie s to informacje kompletne, nauczyciel chciałby zna nie tylko imi i nazwisko ucznia, ale take wiedzie gdzie ucze mieszka, kim s jego rodzice, jak mona si z nimi skontaktowa itd. Dodajmy te niezbdne dane do tabeli Matematyka.

To, czego nie sposób nie zauway, to niesamowita nadmiarowo informacji. Dane o adresie, imionach rodziców, numerze telefonu, imieniu i nazwisku powtarzaj si dla kadego ucznia tyle razy, ile ocen z matematyki dostał on w tym roku szkolnym. Nietrudno zauway, e jeeli do tej tabeli dopisalibymy oceny z innego przedmiotu, sytuacje wygldałby o wiele gorzej. Szybko doprowadzilibymy do tego, e do przechowywania wzgldnie prostej informacji o kilku, czy kilkunastu ocenach z jednego przedmiotu potrzebowa bdziemy kilkuset kilobajtowego pliku na dysku. Nadmiarowo nie jest jedynym powodem, dla którego powinnimy grupowa dane o poszczególnych typach obiektów w wielu tabelach. W modelu jednorodnym stosunkowo trudno jest zachowa spójno i adekwatno danych. W naszym przypadku, jeeli Małgosia zdecydowałaby si wyprowadzi od rodziców, informacj o jej nowym adresie musielibymy modyfikowa tyle razy, ile ocen ma Małgosia. Kolejnym utrudnieniem w zarzdzaniu jednorodnym modelem danych jest konieczno wprowadzania nowych danych o jednym obiekcie do wielu rekordów. Gdyby Krzy zdecydował si poda nauczycielowi numer telefonu rodziców, SZBD musiałby wpisa t informacj w liczb pól równ iloci ocen Krzysia z matematyki. Niestety, to nie koniec wad modelu jednorodnego. Kolejny, powany mankament zwizany z przechowywaniem danych w pojedynczej tabeli zwizany jest z usuwaniem pewnych danych o obiekcie. W naszym przypadku, jeeli pewien ucze z klasy nie miałby adnej oceny z matematyki (co odpowiada sytuacji, w której wszystkie oceny z matematyki zostałby temu uczniowi anulowane) z tabeli usunite zostały by równie dane personalne ucznia. W naszym przykładzie łatwo wyodrbni elementarne dane opisujce ucznia (ID ucznia, Imi, Nazwisko, Adres, Imiona rodziców, Telefon kontaktowy) od danych opisujcych oceny ucznia(id ucznia, Ocena, Zdobyta za). Relacje czyli zwizki midzy tabelami Projektujc baz danych planujemy umieszczanie danych opisujcych róne typy obiektów w rónych tabelach. W efekcie unikamy błdów opisanych w poprzednim rozdziale, ale otrzymujemy pewn liczb tabel, z których adna nie zawiera kompletnej informacji o obiekcie. Kolejnym etapem projektu musi by ustalenie powiza midzy tymi tabelami. W Accessie powizania midzy tabelami nazwane zostały relacjami.

Aby uzyska informacj o imieniu ucznia i wystawionej mu ocenie semestralnej tabela Matematyka musi zosta powizana z tabel Ucze. Sposób powizania tabel przedstawia rysunek. W naszym przypadku powizane ze sob zostały pola Matematyka.ID ucznia i Uczen.ID ucznia. Pole ID ucznia dodalimy, jak pamitamy, wyłcznie po to, aby SZBD był w stanie jednoznacznie identyfikowa wszystkie dane elementarne jako opisujce tego włanie ucznia. Dziki temu polu informacje o imieniu i nazwisku, adresie, numerze telefonu, i imionach rodziców przypisane s do niepowtarzalnego identyfikatora. Pole tego typu, jak pole ID ucznia, bdziemy nazywa kluczami. W naszym przypadku typ powizania powinien umoliwi kademu z uczniów otrzymanie dowolnej liczby ocen z matematyki, jednoczenie uniemoliwiajc wystawianie ocen z przedmiotu nieistniejcym uczniom. Taki typ powizania nosi nazw powizania jeden do wielu. Drugim, oprócz jeden do wiele, typem powiza midzy tabelami jest typ jeden do jednego. Ten typ powizania wykorzystamy przy projektowaniu zwizku pomidzy tabel Ucze a tabel Szatnia, w której przechowywa bdziemy informacj o wyposaeniu szafki kadego z uczniów.

Znamy ju praktyczne wskazówki dotyczce wyodrbniania danych elementarnych, grupowania danych w tabelach i okrelaniu zwizków pomidzy tabelami. Moemy spróbowa uzupełni nasz baz danych o kolejn tabel: Nauczyciel. Kolejnym krokiem bdzie uogólnienie naszej bazy danych do takiej postaci, w której moliwe bdzie przechowywanie informacji o ocenach z rónych przedmiotów, nie tylko z matematyki. Dokonamy tego zastpujc tabel Matematyka tabel Ocena i uzupełniajc j o kolumn Przedmiot, w której przechowywa bdziemy dane o nazwie przedmiotu, z którego ucze dostał ocen. Dane do nowej kolumny bd pobierane z pomocniczej tabeli Lista przedmiotów, dziki czemu dodanie nowego przedmiotu do listy prowadzonych w szkole zaj sprowadzi si do wpisania jego nazwy do tabeli i przypisania mu nazwiska nauczyciela. Efekt zmian w projekcie bazy danych Dziennik:

Jzyk SQL Jzyk SQL jest ogólnie przyjtym standardem jzyków baz danych. Niezalenie od tego, jaka firma jest producentem SZBD, jak równie do współpracy z jakim systemem operacyjnym SZBD został zaprojektowany, moemy by pewni, e zaimplementowana jest w nim obsługa jzyka SQL. Polecenia jzyka SQL dziel si na dwie grupy: - polecenia DDL, słuce do definiowania danych - polecenia DML, słuce do modyfikowania danych. Za pomoc jzyka DDL moemy utworzy takie obiekty w bazie danych jak np. tabele. Polecenia jzyka DML słu do wstawiania, modyfikowania i usuwania danych z istniejcych obiektów. Instrukcje Instrukcja SELECT powoduje pobranie przez SZBD danych z tabeli, której nazwa okrelona jest poprzez klauzul FROM. SELECT NazwaKolumny, NazwaKolumny,... FROM NazwaTabeli; Przykłady: Wywietlenie wszystkich kolumn w tabeli uczniowie. SELECT * FROM Uczen; Ogranicza liczb kolumn do kolumny zawierajcej imiona i nazwiska SELECT Imi, Nazwisko FROM Uczen;

Słowo WHERE jest uywane do okrelania, e tylko niektóre wiersze (rekordy) tabeli maj by wywietlane. Wywietlane rekordy bazuj na kryteriach przedstawionych w klauzuli WHERE. WHERE nazwa_pola operator warto Przykład: Wywietlenie kwerendy zawierajcej Imi, Nazwisko i Telefon ucznia z identyfikatorem JBA. SELECT Imi, Nazwisko, [telefon kontaktowy] FROM Ucze WHERE [ID ucznia]='jba'; Operator AND łczy dwa lub wicej warunków i wywietla wiersz tylko wtedy, gdy dane w tym wierszu spełniaj wszystkie przedstawione warunki. Operator OR łczy dwa lub wicej warunków, ale zwraca wiersz, jeeli dowolny z nich (warunków) jest spełniony. Np. chcemy wiedzie ile ocen niedostatecznych wystawilimy na koniec semestru z matematyki. SELECT Ocena FROM Ocena WHERE Ocena=1 AND [ID przedmiotu]='mat' AND [Zdobyta za]='semestr'; Dodawanie, modyfikowanie i usuwanie wierszy INSERT INTO - dodawanie wierszy (rekordów) INSERT INTO Tabela ( pole1, pole2) VALUES ('warto_1', 'warto_2'); UPDATE modyfikowanie danych Aby podnie semestraln ocen z matematyki wszystkim uczniom o 1 napiszemy: UPDATE Ocena SET Ocena=Ocena+1 WHERE [Zdobyta za]='semestr' AND [ID przedmiotu]='mat'; DELETE Usuwanie wierszy Chcemy z listy przedmiotów usun przedmiot Filozofia wykorzystamy do tego ponisz instrukcj: DELETE * FROM [Lista przedmiotów] WHERE [Id przedmiotu]='filo'; Funkcje agregacyjne SUM () zwraca sum wartoci z wierszy spełniajcych zapytanie dla kolumny numerycznej. AVG () zwraca redni dla danej kolumny.

MAX () zwraca najwiksz warto w danej kolumnie. MIN () zwraca najmniejsz warto w danej kolumnie. COUNT(*) zwraca liczb okrelajc ilo wierszy spełniajcych warunki. Powracamy do wczeniejszego problemu. Chcemy wiedzie ile ocen niedostatecznych wystawilimy na koniec semestru z matematyki. SELECT COUNT([Ocena]) FROM Ocena WHERE [Ocena]=2 And [ID przedmiotu]='mat' And [Zdobyta za]='semestr';