background image

 
n224 ;)  

1.  Baza danych :  

- Duży zbiór danych o określonej strukturze, która umożliwia ich szybkie wyszukiwanie i 
wydobywanie 

Baza danych 

– kolekcja danych zapisanych zgodnie z określonymi regułami. W węższym 

znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zas

adami przyjętymi dla 

danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania tych 
danych. Program taki (często pakiet programów) nazywany jest "Systemem zarządzania bazą 
danych" (ang. DataBase Management System, DBMS). 
- Typy baz danych [wymienione na wykladzie] : 
 -> Model sieciowy 
 -> Model Hierarchiczny 
 -> Model relacyjny 
 -> Model obiektowy 
 -> Model realcyjno-obiektowy 

2.  DBMS – DataBase Managment System:  

- Zbiór prograów, bibliotek i narzędzi które zwalniają programistę od pamiętania o szczegółach 
przechowywania i zarządzania danymi. 

3.  Model sieciowy:  

- Model sieciowej bazy danych korzysta z dwóch podstawowych elementów: rekordów i 
zbiorów. 
- Rekordy zawierają pola przechowujące dane. 
- Zbiory określają relację jeden-do-wielu między rekordami, gdzie jeden rekord jest 
„właścicielem” zbioru zawierającego „członków” zbioru. 
- Jeden rekord może byd zarówno „właścicielem” jak i „członkiem” wielu zbiorów.  
- Wykorzystuje tzw. Pomysł wskaźników wewnątrz struktury danych 
- Wada jest kosztowne przeszukiwanie 

4.  Model hierarchiczny: 

- W modelu hierarchicznym dane są przechowywane na zasadzie rekordów nadrzędnych-
podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy rekord (z wyjątkiem głównego) 
jest związany z dokładnie jednym rekordem nadrzędnym. 
Dane w takim modelu są znajdowane na zasadzie wyszukiwania rekordów podrzędnych 
względem rekordu nadrzędnego. Przykładem takiego modelu może byd struktura katalogów na 
dysku twardym komputera.  

5.  Model relacyjny:  

- Dane w takim modelu przechowywane są w tabelach, z których każda ma stałą liczbę kolumn i 
dowolną liczbę wierszy. Każda tabela (relacja) ma zdefiniowany klucz danych (key) - wyróżniony 
atrybut lub kilka takich atrybutów, którego wartośd jednoznacznie identyfikuje dany wiersz. 
Wyszukiwanie danych odbywa się za pomocą odwołania się programu do danego klucza i 
identyfikacji danego wiersza za jego pomocą. 

6.  Krotka (TUPLE): 

- Krotka (ang. tuple) - struktura danych będąca odzwierciedleniem matematycznej n-tki, tj. 
uporządkowanego ciągu wartości. Krotki przechowują stałe wartości o różnych typach danych - 

background image

 
n224 ;)  

nie można zmodyfikowad żadnego elementu, odczyt natomiast wymaga podania indeksu 
liczbowego żądanego elementu.  

7.  Klucz: 

- Atrybut służący do rozróżnienia rekordów, które niczym innym się  nie różnią. Może to byc 
kombinacja jednego, lub większej liczby atrybutów. 

8.  Relacja: 

-Relacja jest zbiorem dziedzin, które wspólnie opisują rzecz lub zdarzenie w realnym świecie 
- Każdy atrybut składa sięz nazwy oraz nazwy dziedziny, z której atrybut pobiera dane 
- Relacja składa się z dwóch części – nagłowka, oraz treści 
- Każda krotka jest unikatowa wewnątrz relacji 
- Każda krotka może zostac jednoznacznie zidentyfikowana za pomocą przynajmniej jednego 
klucza podstawowego 
- Krotka może zawierac jeden lub więcej kluczy obcych, z których każdy indentyfikuje jedną lub 
więcej krotek w tej samej lub innej relacji 

9.  Algebra relacyjna : 

- Łączenie 
- Przecięcie 
- Różnica 
- Iloczyn Kartezjaoski 
- Ograniczenie 
- Projekt 
- Scalanie 
- Podział 
- Porównanie 
- Rozszerzenie 
- Wstawianie 
- Uaktualnianie 
- Usuwanie 

10. 12 Reguł Codd’a: 

- Postulat informacyjny - dane są reprezentowane jedynie poprzez wartości atrybutów w 
wierszach tabel, 
- Postulat dostępu - każda wartośd w bazie danych jest dostępna poprzez podanie nazwy tabeli, 
atrybutu oraz wartości klucza podstawowego, 
- Postulat dotyczący wartości NULL - dostępna jest specjalna wartośd NULL dla reprezentacji 
wartości nieokreślonej jak i nieadekwatnej, inna od wszystkich i podlegająca przetwarzaniu 
- Postulat dotyczący katalogu - wymaga się, aby system obsługiwał wbudowany katalog relacyjny 
z bieżącym dostępem dla uprawnionych użytkowników używających języka zapytao, 
- Postulat języka danych - system musi dostarczad pełnego języka przetwarzania danych, który 
może byd używany w trybie interaktywnym jak i w obrębie programów aplikacyjnych, obsługuje 
operacje definiowania danych, operacje manipulowania danymi, ograniczenia związane z 
bezpieczeostwem i integralnością oraz operacje zarządzania transakcjami, 

background image

 
n224 ;)  

- Postulat modyfikowalności perspektyw - system musi umożliwiad modyfikowanie perspektyw, 
o ile jest ono (modyfikowanie) semantycznie realizowalne, 
- Postulat modyfikowalności danych - system musi umożliwiad operacje modyfikacji danych, 
musi obsługiwad operatory INSERT, UPDATE oraz DELETE, 
- Postulat fizycznej niezależności danych - zmiany fizycznej reprezentacji danych i organizacji 
dostępu nie wpływają na aplikacje, 
- Postulat logicznej niezależności danych - zmiany wartości w tabelach nie wpływają na aplikacje, 
- Postulat niezależności więzów spójności - więzy spójności są definiowane w bazie i nie zależą 
od aplikacji, 
- Postulat niezależności dystrybucyjnej - działanie aplikacji nie zależy od modyfikacji i dystrybucji 
bazy, 
- Postulat bezpieczeostwa względem operacji niskiego poziomu - operacje niskiego poziomu nie 
mogą naruszad modelu relacyjnego i więzów spójności. 

11. SQL : 

- Structured Query Language 
- Strukturalny język zapytao używany do tworzenia, modyfikowania baz danych oraz do 
umieszczania i pobierania danych z baz danych. 
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych 
pozostawia się systemowi zarządzania bazą danych (DBMS). 

12. Sposoby uzycia SQL’a : 

- Interaktywny – zwykle wykorzystywany w systemach zarządzania bazami danych (DBMS), 
wymaga interaktywnego wpisania polecenia i wynik zostaje  wyprowadzony na standardowe 
wyjście w domyślnym formacie 
- Ukryty (embedded) – Każde polecenie jest poprzedzone prefixem wyróżniającym je spośród 
języka SQL np. EXEC_SQL(...) 
- Interfejs pozoimu wywołao(CLI – call-level Interface) – język przeglądarki implementuje serie 
wywołao, z których każde stanowi odpowiednik rozkazów SQL (C,Perl,Php,Java) 

13. Podstawowe komponenty SQL’a : 

- Data definition language 
- Data manipulation language 
- Data query language 
- Data controll language 

14. Polecenie CREATE: 

- Mozemy tworzyc, Table, View, Index 
Ex. Create Table 

15. Polecenie ALTER: 

- Modyfikujemy TABLE 
Ex. Alter Table 

16. Polecenie  DROP: 

- Usuwamy to co mozemy stworzyc [TABLE,VIEW,INDEX] 
Ex. Drop Table 

17. Podstawowe typy danych w PSQL’u : 

background image

 
n224 ;)  

- Integer – liczba całkowita 
- Char – tablica znaków o stałym rozmiarze 
- Varchar – tablica znaków o zmiennym rozmiarze 
- Date – Data 
- Numeric – liczba zmiennoprzecinkowa 
- NULL – wartosc nieznana [pusta] 
- Blob – duży obiekt binarny 
- Bit(n) – tablica bitów o długości n 
- Nchar(n) – tablica znaków narodowych 
- Boolean – wartosc  ‘true’/’false’ 
- Money – walutowa 
- Serial ... – automatycznie inkrementowana [serial primary key] 

18. Atrybuty nowo tworzonego pola w PSQL: 

- NOT NULL – pole w bazie MUSI byc wypelnione przy tworzeniu nowego rekordu 
- DEFAULT – mozliwosc przypisania wartosci domślnej 
- AUTO INCREMENT – powoduje automatyczne zwiększanie wartości przy dodaniu nowego 
rekordu 

19. Zapytania(kwerendy), zapytania podrzędne: 

- Użytkownik serwera baz danych (program lub osoba) wysyła do niego zapytanie, na które 
serwer odpowiada przesyłając oczekiwane dane, czyli wynik zapytania. Zapytania mogą mied na 
celu wyłącznie pobranie danych (tzw. zapytania wybierające), jak i usuwanie, dodawanie czy 
modyfikację danych (tzw. zapytania funkcjonalne). 
- W PSQL używamy polecenia „SELECT”, który zwraca na wyjście wynik zapytania 
- SELECT można zagnieżdzac 
- Zapytanie podrzędne ma miejsce wtedy kiedy tworzymy jeden (lub więcej) warunków where 
instrukcji SELECT 
Ex. Select * from item where cena>(select AVG(cena)) 

20. Zapytania podrzędne skorelowane: 

- Jest to zapytanie podrzędne, gdzie istnieje związek pomiędzy dwiema częściami zapytania 
- Postac ogólna zapytania : 
Select kA from Tab1 where Tab1.kB = (select Tab2.kB from Tab2 Where Tab2.kC = Tab1.kC) 
[istnieje wspólna tabela dla zapytania zewnętrznego i wewnętrznego] 

21. Uprawienia w PSQL: 

- ZALACZNIK 

22. Encja: 

- Encja (ang. entity) w bazach danych to reprezentacja wyobrażonego lub rzeczywistego obiektu 
(grupy obiektów) stosowana przy modelowaniu danych podczas analizy informatycznej. 
Formalnie jest to pojęcie niedefiniowalne, a podstawową cechą encji jest to, że jest rozróżnialna 
od innych encji. 

23. Zbiór związków : 

- Związki pomiędzy encjami, jeden do wielu, wiele do jednego, wiele do wielu 

24. Atrybut: 

background image

 
n224 ;)  

- Cecha charakterystyczna encji. Atrybut jest reprezentowany na diagramach Związków Encji 
poprzez owal. 

25. Zbiór encji: 

- Zgrubowane encje o tej samej charakterystyce. Zbioór encji jest reprezentowany na ZE poprzez 
prostokąt 

26. Kryteria dobregu projektu Bazy Danych: 

- Zdolnośc przechowywania potrzebnych informacji 
- Zdolnośc obsługi wymaganych związków 
- Zdolnośc rozwiązywania problemów 
- Zdolnośc do narzucenia integralności danych 
- Zdolnośc narzucania wydajności w przetwarzaniu danych 
- Zdolnośc uwzględniania przyszłych zmian 

27. Normalizacja baz danych: 

- Normalizacja bazy danych jest to proces mający na celu eliminację powtarzających się danych 
w relacyjnej bazie danych. Główna idea polega na trzymaniu danych w jednym miejscu, a w razie 
potrzeby linkowania do danych. Taki sposób tworzenia bazy danych zwiększa bezpieczeostwo 
danych i zmniejsza ryzyko powstania niespójności (w szczególności problemów anomalii). 
Istnieją sposoby ustalenia czy dany schemat bazy danych jest "znormalizowany", a jeżeli jest to 
jak bardzo. Jednym ze sposobów jest przyrównanie danej bazy do schematów zwanych 
postaciami normalnymi (ang. normal forms lub NF). Normalizacja bazy danych do konkretnej 
postaci może wymagad rozbicia dużych tabel na mniejsze i przy każdym wykonywaniu zapytania 
do bazy danych ponownego ich łączenia. Zmniejsza to wydajnośd, więc w niektórych 
przypadkach świadoma denormalizacja (stan bez normalizacji) jest lepsza - zwłaszcza w 
systemach niekorzystających z modelu relacyjnego (np. OLAP). 
- Normalizacja nie usuwa danych, tylko zmienia schemat bazy danych. Normalizacja 
przeprowadza bazę danych z jednego stanu spójnego (przed normalizacją) w inny stan spójny 
(po normalizacji). Jedyna różnica polega na innym układzie danych i relacji pomiędzy nimi, ale 
bez utraty danych (ewentualnie dodawane są nowe klucze główne). 

28. Etapy normalizacji: 

- Pobieranie zbioru danych 
- Przekształcenie nieznormalizowanego zbioru danych do 1NF 
- 1NF -> 2NF 
- 2NF -> 3NF 
- 3NF -> postac normalna Boyce’a-Codda 
- 3NF -> 4NF 
- 4NF -> 5NF 
 
ZAŁĄCZNIKI : 
1.  Komendy PSQL 
2.  Postacie normalne 
3.  Uprawienia w PSQL 

 

background image

 
n224 ;)  

ZALACZNIK 1 

                                                                  
                                                                                                             
Zakladanie bazy : 
 --> createdb nazwabazy 
Usuwanie bazy :  
 --> dropdb nazwabazy 
Pokazywanie relacji :  
 --> \d 
 --> \dt 
Stworzenie tabeli : 
 --> CREATE TABLE nazwatabeli(parametry) 
Usuniecie tabeli 
 --> DROP TABLE nazwatabeli 
Typy danych :  
 --> serial primary key | klucz glowny 
 --> int  

 

| integer 

 --> varchar(xx) 

| ciag znakow  

 --> boolean 

 

| true/false 

 --> date 

 

| data 

Wpisywanie danych :  
 --> INSERT INTO NazwaTabeli(kolumna1,kolumna2,kolumnaN) VALUES 
('Tekst',liczba,Parametr) 
Skladnia SELECT :  
 --> SELECT [kolumna] tabela [WHERE warunek][ORDER BY kolumna] | select * 
from klient where id=3 order by nazwisko 
Operatory :  
 --> > 
 --> < 
 --> = 
 --> <> 
 --> + 
 --> - 
 --> * 
 --> % 
 --> AND 
 --> BETWEEN | Between 3 and 7 
 --> IN() | Stosowany do porowanania wartosci np, select * from klient Where 
imie IN('Jan','Stanislaw'); 
 --> IS NULL 
 --> IS NOT NULL 
 
Modyfikacja DANYCH :  
 --> UPDATE NazwaTabeli SET Nazwakolumny=Nowa_Wartosc where Warunek | update 
klient set nazwisko='Kowalski' where id=2 
 --> UPDATE NazwaTabeli SET NazwaKolumny=NazwaTabeli2.wartosc from 
NazwaTabeli2 where Warunek | przepisanie za pomoca drugiej tabeli 
Usuwanie DANYCH :  
 --> DELETE FROM NazwaTabeli | Usuniecie wszystkich rekordow 
 --> DELETE FROM NazwaTabeli WHERE Warunek | usuniecie na bazie warunku 
Modyfikacja STRUKTURY TABELI :  
 --> ALTER TABLE NazwaTabeli ADD NazwaKolumny TypTejKolumny | Dodajemy nowa 
kolumne do istniejacej tabeli o podanym typie 
Operacje na bazie SELECT :  
 --> SELECT 2+2; 

background image

 
n224 ;)  

 --> SELECT sin(0.3); 
 --> SELECT log(10); 
 --> SELECT sum(id) from klient; 
 --> SELECT now(); 
Klucze obce w kodzie : 
 --> ALTER TABLE NazwaTabeli1 ADD FOREIGN KEY (NazwaKolumnyTejTabeli) 
REFERENCES NazwaDrugiejTabeli 
 --> Nazwaklucza int not null references NazwaDrugiejTabeli on Delete 
restrict on Update Cascade | Podczas Create Table 
 

primary key (Nazwaklucza) 

Skracanie zapytania :  
 --> SELECT * from NazwaTabeli N; 
 --> WHERE N1.ID = N2.ID | dla warunku 
Widoki :  
 --> CREATE VIEW NazwaWidoku AS SELECT [KlauzulaSelecta] | Tworzymy widok 
staly 
Joiny :  
 -->  
Funkcje :  
 --> SELECT count(*) from NazwaTabeli | Zlicza Wszystko 
 --> SELECT count(Kolumna) from NazwaTabeli  | Zlicza wszystko po kolumnach 
 --> SELECT max(kolumna) from NazwaTabei | Pokazuje max z Tabeli 
 --> SELECT min(kolumna) from NazwaTabeli | Pokazuje min z tabeli 
 --> SELECT avg(kolumna) from NazwaTabeli | Pokazuje srednia z tabeli 
 --> variance() 
 --> stdev() 
Sortowanie :  
 --> GROUP BY nazwakolumny 
 --> GROUP BY nazwakolumny HAVING Warunek | group by imie Having nazwa < 'j' 
 
 
 

 

background image

 
n224 ;)  

ZALACZNIK 2 

Postać normalna - postać relacji w bazie danych, w której nie występuje redundancja (nadmiarowość), 

czyli powtarzanie się tych samych informacji. Doprowadzeniu relacji do postaci normalnej 

służy normalizacja bazy danych.

 

Pierwsza postać normalna (1NF) 

Relacja jest w pierwszej posta

ci normalnej, jeśli: 

  opisuje jeden obiekt, 

 

wartości atrybutów są elementarne (atomowe, niepodzielne) - każda kolumna jest wartością skalarną 

(atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę, 

  nie zawiera kolekcji (powtarz

ających się grup informacji), 

 

posiada klucz główny, 

 

kolejność wierszy może być dowolna (znaczenie danych nie zależy od kolejności wierszy). 

Tabela przed normalizacją 

Płeć 

Imię 

Męska  Jan, Piotr, Zenon 

Żeńska  Anna, Maria, Zofia 

Pierwsza postać normalna 

Płeć  Imię 

Męska  Jan 

Męska  Piotr 

Męska  Zenon 

Żeńska  Anna 

Żeńska  Maria 

background image

 
n224 ;)  

Żeńska  Zofia 

Właściwości, które muszą zaistnieć w 1 formie :

 

1.  Jest zdefiniowany klucz relacji. 

2. 

Wszystkie atrybuty niekluczowe są w zależności funkcyjnej od klucza. 

Druga postać normalna (2NF) 

Relacja jest w drugiej postaci normalnej wtedy i tylko wtedy, gdy jest w I postaci normalnej i każda 

kolumna zależy funkcyjnie od całego klucza głównego (a nie np. od części klucza). 

Trzecia postać normalna (3NF) 

Mamy z nią do czynienia wtedy i tylko wtedy, gdy tabela jest w 2NF oraz gdy wszystkie pola niebędące 

polami klucza głównego są od niego zależne bezpośrednio. 

Przykład tabeli "Pracownicy" przed normalizacją 

Imię 

Nazwisko  Stanowisko  Stawka za godzinę 

Stefan 

Anonim 

Młotkowy  10 zł 

Natalia 

Niewiadoma  Sekretarka  20 zł 

Eufogenia  Enigma 

Sekretarka  20 zł 

Wartości w kolumnie "Stawka za godzinę" są zależne jedynie od pola "Stanowisko", a tylko pośrednio od 

klucza głównego. Prowadzi to do powtarzania się wartość "20 zł", co powoduje redundancję 

(na

dmiarowość danych). Może to też prowadzić do anomalii i niespójności danych, gdy np. pani Eufogenii 

zmienimy stawkę na 25 zł, a zapomnimy zmienić stawki drugiej sekretarce, pani Natalii.

 

Sprowadzenie do III postaci normalnej będzie polegać na przeniesieniu stawek do osobnej tabeli, a w 

tabeli pracowników pozostawienie jedynie nazwy stanowiska. 

Tabela "Pracownicy" po normalizacji 

Imię 

Nazwisko  Stanowisko 

background image

 
n224 ;)  

Stefan 

Anonim 

Młotkowy 

Natalia 

Niewiadoma  Sekretarka 

Eufogenia  Enigma 

Sekretarka 

Tabela "Stawki godzinowe" po normalizacji 

Stanowisko  Stawka 

Młotkowy  10 zł 

Sekretarka  20 zł 

Postać normalna Boyce'a-Codda (BCNF) 

W tej postaci zależności funkcyjne muszą mieć następującą postać: jeżeli X → A i atrybut A nie jest 

zawarty w X, to X jest kluczem lub zawiera klucz. 

Czwarta postać normalna (4NF) 

Relacja jest w czwartej postaci normalnej, jeżeli zawsze wtedy, kiedy zbiór atrybutów X określa 

wartościowo Y, to zachodzi jeden z następujących warunków: 

 

Y jest puste lub zawiera się w X, 

 

suma zbiorów X i Y jest pełnym zbiorem atrybutów, 

  X zawiera klucz. 

Czwarta i piąta postać normalna są w zasadzie używane wyłącznie przy okazji rozważań teoretycznych. 

 

 
 

 

background image

 
n224 ;)  

ZALACZNIK 3 

 
 
 

GRANT oraz REVOKE – Kurs języka SQL (mySQL) 
cz. 1 

Pierwsza część kursu języka 

SQL

. Omówione zostały polecenia: GRANT i REVOKE, czyli tworzenie 

użytkownika oraz nadawanie i odbieranie uprawnień. 

Pierwszym etapem tworzenia bazy danych jest stworzenie tabel w których przechowywane będą później 
wszelkie dane. Zanim jednak do tego przystąpimy niektóre serwery będą wymagały zalogowania się przy 
pomocy nazwy użytkownika i jego hasła. Możemy w tym przypadku korzystać z konta administratora 

skonfigurowanego podczas instalacji serwera baz danych. Innym rozwiązaniem jest utworzenie nowego 
użytkownika i dodanie go do bazy danych. 

Powyższą czynność wykonamy przy użyciu polecenia GRANT, którego składnia jest następująca: 

GRANT lista_praw_dostępu ON nazwa_tabeli TO nazwa_uzytkownika 

Pole „lista_praw_dostępu” może zawierać jedno, lub kilka z poniższych uprawnień: 

• SELECT– odczytanie danych z tabeli 
• INSERT – wstawianie danych do tabeli 

• UPDATE – modyfikowanie danych w tabeli 
• DELETE – usunięcie danych z tabeli 

• REFERENCE – odwoływanie się do innych tabel 
• CREATE – tworzenie nowych tabel i baz danych 
• DROP – usuwanie tabel oraz baz danych 

• ALL PRIVILEGES – wszystkie dostępne uprawnienia 

Pole „nazwa tabeli” określa tabelę do której przyznajemy uprawnienia użytkownikowi wskazanemu w 

„nazwa użytkownika”. 

Przykład 1: 

Utworzymy użytkownika o nazwie „biuro” któremu nadamy prawa tylko do odczytu, wstawiania oraz 

modyfikowania danych, a więc SELECTINSERTUPDATE dla tabeli o nazwie „klienci”. 

GRANT SELECT, INSERT, UPDATE ON klienci TO biuro 

Przykład 2: 

Tworzymy użytkownika o nazwie „szef” któremu nadajemy wszelkie możliwe uprawnienia dla tabeli 

„klienci”. 

GRANT ALL PRIVILEGES ON klienci TO szef 

Przykład 3: 

background image

 
n224 ;)  

W pierwszym przykładzie utworzyliśmy użytkownika o nazwie „biuro” nadając mu prawa tylko do odczytu, 
wstawiania oraz modyfikowania danych w tabeli. Teraz chcielibyśmy aby mógł również usuwać dane z 

tabeli „klienci”. 
W tym przypadku możemy ponownie skorzystać z polecenia GRANT podając nazwę wszystkich praw dla 

danego użytkownika. 

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO biuro 

SQL

 umożliwia także odbieranie wcześniej nadanych uprawnień, a służy do tego polecenie REVOKE

którego składnia jest następująca: 

REVOKE lista_praw_dostępu ON nazwa_tabeli FROM nazwa_uzytkownika 

Przykład: 

Stwierdziliśmy, iż użytkownik „biuro” nie powinien mieć możliwości wstawiania nowych danych do tabeli 

„klienci”. Należy więc usunąć mu prawo używania polecenia INSERT

REVOKE INSERT ON klienci FROM biuro