Notatka MC OMEN

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 SELECT, INSERT, UPDATE 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




Wyszukiwarka

Podobne podstrony:
Opracowanie Sciaga MC OMEN
Opracowanie pytań MC OMEN 2
Opracowanie wykladow MC OMEN
EKG MC OMEN id 154623 Nieznany
Opracowanie wykładów biofyzka 1 MC OMEN
Opracowanie pytań MC KULA MC OMEN 2
Opracowanie pytań RÓŻNE MC OMEN
Opracowanie wykładów biofyzka 2 MC OMEN
Opracowanie pytań MC OMEN 3
Opracowanie projektu MC OMEN
Opracowanie pytań MC OMEN
Najważniejsze wzory itp MC OMEN
Opracowanie wykładów biofyzka 3 MC OMEN
Opracowanie pytań MC OMEN
Opracowanie do kolokwium part 2 MC OMEN
Opracowanie MC OMEN
Opracowanie Sciaga MC OMEN
Opracowanie pytań MC OMEN 2

więcej podobnych podstron