czesc1 wyk1

background image

RELACYJNE BAZY DANYCH

Podstawową właściwością relacyjnej bazy danych jest to, że informacje przechowywane są w tabelach,
a każda z tabel składa się z wierszy i kolumn. Wiersz tabeli jest pojedynczym rekordem składającym
się z kolumn. Element znajdujący się na przecięciu kolumny i wiersza to pole. Pole zawiera
najmniejszą niepodzielną wartość tzn. taką informację, która nie może być dalej dzielona ze względu
na swoją logiczną wartość.
Model relacyjnych baz danych opracował w końcu lat 60-tych matematyk E. F. Codd.

Struktury danych w modelu relacyjnym

Podstawową strukturą danych jest relacja będąca podzbiorem iloczynu kartezjańskiego dwóch
wybranych zbiorów reprezentujących dopuszczalne wartości. W bazach danych relacja przedstawiana
jest w postaci tabeli. Relacja jest zbiorem krotek posiadających taką samą strukturę, lecz różne
wartości. Każda krotka odpowiada jednemu wierszowi tablicy. Każda krotka posiada co najmniej jeden
atrybut odpowiadający pojedynczej kolumnie tablicy. Każda relacja (tablica) posiada następujące
własności:

krotki (wiersze) są unikalne

atrybuty (kolumny) są unikalne

kolejność krotek (wierszy) nie ma znaczenia

kolejność atrybutów (kolumn) nie ma znaczenia

wartości atrybutów (pól) są atomowe

W przypadku projektowania tabeli w bazie danych należy stosować się do następujących wskazówek:

Używaj nazw opisowych do nazwania kolumn tabeli. Kolumny nie powinny mieć znaczenia
ukrytego, ani reprezentować kilku atrybutów (złożonych w pojedynczą wartość).

Bądź konsekwentny w stosowaniu liczby pojedynczej lub mnogiej przy nazywaniu tabeli.

Twórz tylko te kolumny, które są niezbędne do opisania modelowanej encji lub powiązania -
tabele z mniejszą ilością kolumn są łatwiejsze w użyciu.

Utwórz kolumnę pól kluczowych dla każdej tabeli.

Unikaj powtarzania informacji w bazie danych (normalizacja).

Przetwarzanie danych

Do wykonywania operacji na relacyjnych bazach danych służą operatory relacyjne. Operatory relacyjne
wchodzą w skład zapytań, które z kolei służą do wykonywania jednej bądź wielu operacji relacyjnych
na tabeli lub grupie tabel. Językiem pozwalającym na stosowanie operatorów relacyjnych jest język
SQL, którego odpowiedzią jest zawsze tabela. Nie oznacza to jednak, że użytkownik programu
działającego na bazie danych widzi tabele – wręcz przeciwnie – zazwyczaj dane zawarte w tabeli
wynikowej są wizualizowane w zgoła odmienny sposób i zależy on tylko od fantazji osoby
odpowiedzialnej za efekt wizualizacji i interfejs obsługi pisanej aplikacji.
Jednakże sam fakt, że wynikiem zapytania jest „wirtualna” tabela jest niezmiernie istotny. Dzięki

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

takiemu podejściu możemy zadać np. dwa pytania, w wyniku, których otrzymamy dwie tabele (czasami
całkiem pokaźne), do których z kolei możemy zadać kolejne pytanie otrzymując jedną (stosunkowo
małą) tabelę, co znacznie ułatwia proces selekcji danych. Oczywiście znając strukturę tabel i wynik
zapytań możemy od razu postawić kilka zapytań do bazy danych. Takie łączenie zapytań nazywane jest
zagnieżdżaniem zapytań i pozwala otrzymać wynik bardzo bliski (równy) oczekiwanej odpowiedzi.

Integralność danych

Zasady integralności wymagają, aby każdy wiersz tabeli zawierał wartość lub grupę wartości, które
określałyby go w sposób jednoznaczny (unikalny). Te wybrane wartości nazywane są kluczem
głównym
(primary key), natomiast kolumna bądź grupa kolumn z innej tablicy, która odpowiada
kluczowi głównemu tablicy pierwszej nazywana jest kluczem obcym (foreign key). Dodatkowe reguły
integralności mogą być nałożone na wybrane kolumny.

JĘZYK SQL

SQL – Structured Query Language – Strukturalny Język Zapytań to zbiór komend służący do
wprowadzania, modyfikowania i przeglądania zawartości relacyjnej bazy danych.

Zarządzanie bazą danych

Komendy związane z administracją bazą danych służą do zakładania kont użytkowników, przydzielania
lub odbierania im uprawnień, czyli ustalania zakresu działania na danych oraz do innych zadań
administracyjnych. Większość systemów dostarcza indywidualne, specjalne narzędzia do konfiguracji i
obsługi bazy danych. Bardzo często dane traktujące o charakterze bazy danych są zawarte też w tabeli,
do której jednak dostęp ma tylko administrator systemu.

Standardy języka SQL

Największą zaletą języka SQL jest to, że mimo bardzo wielu komercyjnych i darmowych „silników”
baz danych – podstawowe elementy języka pozostają niezmienne.
Standard języka SQL jest sprawdzany i zatwierdzany przez międzynarodową organizację International
Standards Organization (ISO), natomiast w Stanach Zjednoczonych National Institute of Standards and
Testing (NIST).
Obecnie obowiązuję standard przyjęty w 1992 r. i jest to SQL-92, jednakże żaden komercyjny produkt,
nie jest z nim całkowicie zgodny (chodzi tu głównie o firmowe rozszerzenia).

OPERACJE RELACYJNE

Operacje relacyjne występują we wszystkich relacyjnych bazach danych a ich wynikami zawsze są
tabele.

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

Tabela „Osoby”.

Id

Nazwisko

Imię

Woj
_id

1

Mikołajczak Rafał

1

2

Nowak

Marek

3

3

Kowalski

Marek

2

4

Frąckowiak

Zdzisław 7

Selekcja

Operacja selekcji zwraca wynik w postaci grupy rekordów z tablicy i najczęściej polega na wybraniu, o
pewne kryteria tylko, grupy rekordów (może też oczywiście zwrócić także całą tablicę).
SELECT * FROM Osoby WHERE Id=2;

Id

Nazwisko

Imię

Woj_i
d

2

Nowak

Marek 3

Projekcja

Projekcja pozwala określić kolumny, które będą zwracane przez zapytanie. To rozwiązanie posiada
dwie zalety – zmniejszenie ilości informacji w odpowiedzi oraz zdecydowane przyspieszenie działania.
SELECT Nazwisko FROM Osoby WHERE Imię = ‘Marek’;

Nazwisko
Nowak
Kowalski

Złączenie

Operacja złączenia ( JOIN ) umożliwia wykorzystanie wielu tabel jako źródła danych dla zapytania.

Tabela „Woj”

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

Id

Nazwa

1

wielkopolskie

2

śląskie

SELECT Nazwisko, Nazwa FROM Osoby, Woj. WHERE Osoby.Woj_id = Woj.Id;

Nazwisko

Nazwa

Mikołajczak Wielkopolskie
Kowalski

śląskie

Podstawowe zasady modelu relacyjnego to:

1. Dane prezentowane są użytkownikom w postaci tabel;
2. Komórki zawierają wartości niepodzielne na mniejsze porcje informacji
3. Każdy wiersz posiada wartość (lub grupę wartości), która go jednoznacznie identyfikuje (klucz

główny)

4. W przypadku określenia relacji miedzy tabelami dane z kolumny połączonej relacją muszą mieć

swoje odpowiedniki w drugiej tabeli.


Zasady mówiących o zagrożeniach, których należy się wystrzegać a stanowią „podstawy” źle
skonstruowanej bazy danych:

1. Tabele i kolumny mają niejasne nazwy (po n - czasie na pewno zapomnimy o co chodziło)
2. Ta sama informacja musi być wprowadzona kilkakrotnie a jej zmiana musi być dokonywana w

kilku różnych miejscach

3. Działanie bazy danych jest nieproporcjonalnie wolne do ilości obrabianych danych
4. Trudno określić relacje między danymi
5. W tabelach występują duplikujące się wiersze
6. Jest prawdziwą tragedią, kiedy to samo pytanie do tych samych danych zwraca różne wyniki

Etapy projektowania bazy danych to:

1. Określenie wymagań, zadań i celu przeznaczenia projektowanej bazy danych;
2. Określenie rodzaju danych (typów) przechowywanych w konkretnych kolumnach tabel;
3. Przeprowadzenie normalizacji;
4. Napisanie kodu tworzącego bazę i tabele bazy;
5. Zdefiniowanie użytkowników i praw dostępu;
6. Wypełnienie bazy informacjami – ew. przeprowadzenie testów;

INSTRUKCJA SELECT

Projekt przykładowej tabeli.

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

Tabela Osoby

Id

Imię

Zarobki

Dochody

1

Rafał

100

200

2

Marek

200

250

3

Kamil

50

500

4

Zdzisław

300

120

INSTRUKCJA SELECT

Instrukcja SELECT składa się z wielu klauzul, z których część jest opcjonalna. Prosta składnia tej
funkcji wygląda następująco:
SELECT lista_pol
FROM nazwa_tabeli [,nazwa_innej_tabeli, ...]
[WHERE warunek];
Najprostszą funkcję SELECT można zapisać:
SELECT * FROM nazwa_tabeli;
Znak „*” jest znakiem szczególnym i mówi, że z tabeli mają zostać wybrane wszystkie kolumny w
rzeczywistym porządku.

Używanie znaku „*” w zapytaniu ma jednak dwie wady:

1. Takie zapytanie jest mało przejrzyste (szczególnie bolesne w procesie poprawiania programu

wykorzystującego język SQL), gdyż nie daje nam informacji jakie kolumny są w tym zapytaniu
wykorzystywane;

2. Użycie tego znaku znacznie obniża wydajność (szybkość) wykonania polecenia SELECT.

Nawet, gdy rzeczywiście potrzebujemy pobrać wszystkie informacje z całej tabeli, o wiele
szybciej dostaniemy odpowiedź wypisując nazwy wszystkich kolumn po instrukcji SELECT.

Wykonywanie obliczeń na danych

Wyrażenie wykonywane w zapytaniach nie musi koniecznie zawierać nazw kolumn – można używać
też liczb, wyrażeń algebraicznych bądź łańcuchów znaków np.:
SELECT ‘Cokolwiek’, Imię, 3+6 FROM Osoby;

Cokolwiek

Imię

3+6

Cokolwiek

Rafał

9

Cokolwiek

Marek

9

Cokolwiek

Kamil

9

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

Cokolwiek

Zdzisław

9

A teraz niewielka zmiana:
SELECT ‘Cokolwiek’, Imię, ‘3+6’ FROM Osoby;

Cokolwiek

Imię

3+6

Cokolwiek

Rafał

3+6

Cokolwiek

Marek

3+6

Cokolwiek

Kamil

3+6

Cokolwiek

Zdzisław

3+6

, bo oczywiście 3+6 ujęte w pojedynczy cudzysłów to już łańcuch znaków a nie wyrażenie
algebraiczne.
W instrukcji SELECT możemy także dokonywać obliczeń na kolumnach:
SELECT Imię, Zarobki, Zarobki*3 FROM Osoby;

Imię

Zarobki

Zarobki*3

Rafał

100

300

Marek

200

600

Kamil

50

150

Zdzisław

300

900

A nawet tak:
SELECT Imię, Zarobki, Dochody, Dochody – Zarobki FROM Osoby;

Imię

Zarobki Dochody Dochody - Zarobki

Rafał

100

200

100

Marek

200

250

50

Kamil

50

500

450

Zdzisła
w

300

120

-180

Operatory arytmetyczne

Język SQL posiada kilka typów operatorów arytmetycznych, które można wykorzystać w obliczeniach,
zapytaniach czy podczas zakładania filtrów. W kolejności wykonywania działań przedstawiają się one
następująco:
( ) - Nawiasy;
/ - Dzielenie;
* - Mnożenie;

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

- - Odejmowanie;
+ - Dodawanie;
Przykład wykorzystania:
SELECT Imię, (((0.19 * Zarobek) + 100)*2) FROM Osoby;

Imię

(((0.19 * Zarobek) + 100)*2)

Rafał

238

Marek

476

Kamil

219

Zdzisław

714

Instrukcja AS

Instrukcja AS służy do przypisywania kolumnom lub wyrażeniom innych nazw.
Składnia takiej instrukcji wygląda następująco:
SELECT wyrażenie_1 [AS alias], wyrażenie_2 [AS alias] ,...
FROM nazwa_tabeli [lista_tabel]
[WHERE warunek];
Np.:
SELECT Imię, (((0.19 * Zarobek) + 100)*2) AS Podwyżka FROM Osoby;

Imię

Podwyżka

Rafał

238

Marek

476

Kamil

219

Zdzisław

714

Filtrowanie wyników zapytania za pomocą klauzuli WHERE

Operatory do porównań:
= - Równy;
<>, != - Nierówny;
> - Większy;
< - Mniejszy;
>= - Większy lub równy;

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

<= - Mniejszy lub równy;
Przykłady:
SELECT Imię FROM Osoby WHERE Id=3;

Imię
Kamil


SELECT Id, Imię FROM Osoby WHERE Zarobki < 250;

Id

Imię

1

Rafał

2

Marek

3

Kamil

SELECT Imię FROM Osoby WHERE Imię <> 'Rafał';

Imię
Marek
Kamil
Zdzisław

SELECT Imię, Zarobki, Dochody FROM Osoby WHERE Dochody < Zarobki;

Imię

Zarobki

Dochody

Zdzisław

300

120


SORTOWANIE WYNIKÓW ZAPYTAŃ

Składnia instrukcji SELECT używającej klauzuli ORDER BY wygląda następująco:

SELECT nazwy_kolumn

FROM nazwa_tabeli [ lista_tabel ]
[WHERE warunek]
[ORDER BY { kolumna, alias, pozycja} [ASC | DESC]]
SELECT Id, Imię, Zarobki, Dochody FROM Osoby ORDER BY Imię;

Id

Imię

Zarobki

Dochody

3

Kamil

50

500

2

Marek

200

250

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione

background image

1

Rafał

100

200

4

Zdzisław

300

120


ASC – Ascending – rosnąco;
DESC – Descending – malejąco;

Copyright© mgr inż. Rafał Mikołajczak – Kopiowanie i rozpowszechnianie zabronione


Wyszukiwarka

Podobne podstrony:
PISZ wyk1
Chemia Bionie wyk1
wyk1 09 materiał
wyk1 Elektronika
MT wyk1 (2)
soc-wyk1, UE Katowice FiR, socjologia
Specjal. instr. Wyk1[1], WSPIA 3 ROK, SPORTY OSÓB NIEPEŁNOSPRAWNYCH
1 Inf Wyk1 2013
Część1
Monitoring środowiska część1 - Notatki, Nauka, Ochrona środowiska
Alfabet.Mafii.czesc10.Korek.Szykuje.sie.do.Wystrzalu.UoM, Mafia w Polsce
PI wyk1
czesc1
PIR zestaw pytań czesc1B
wyk1
CZEŚĆ1
egzamin czesc1

więcej podobnych podstron