Podstawy baz danych 01
Baza danych
def.
zbiór wzajemnie powiązanych danych, przechowywanych w pamięci komputerów i wykorzystywanych przez programy użytkowe instytucji lub organizacji wraz z oprogramowaniem umożliwiającym definiowanie, wykorzystywanie i modyfikowanie tych danych.
Typy baz danych
- bazy kartotekowe (np. książka kucharska)
- sieciowe bazy danych (model hirerchiczny, binarny)
- hirerchiczne bazy danych
- bazy relacyjne (oparte o algebre relacyjną)
- bazy obiektowe (przechowuje struktury obiektowe)
- bazy relacyjno-obiektowe
- bazy strumieniowe
- bazy nierelacyjne
Relacyjne bazy danych
Model relacyjny oznacza, ze logiczne struktury danych (takie jak: tabele, widoki czy indeksy) są oddzielone fizycznie w strukturze pamięci.
Rozróżnienie między logicznym a fizycznym dotyczy również operacji na bazach danych, które są wyraźnie zdefiniowanymi działaniami umożliwiającymi aplikacjom manipulowanie danymi i strukturami bazy danych. Operacje logiczne umożliwiają aplikacji określenie potrzebnej zawartości, a operacje fizyczne określają, w jaki sposób dane powinny być dostępne, a następnie wykonują zadanie.
Zalety relacyjnych baz danych
- spójność
- zatwierdzenie
- niepodzielność
- procedury składowe
- wspołbierzność
- blokowanie
Algebra relacji
Algebra relacji jest modelem teoretycznym do opisywania semantyki relacyjnych baz danych, zaproponowanym przez T. Codda, twórcę koncepcji relacyjnych baz danych. Jest to algebra, w której dziedzinę stanowią relacje. Zmienne występujące w wyrażeniach tej algebry odpowiadają pojedynczym relacjom. Operatory algebry relacji zostały dobrane tak, aby odpowiadały typowym operacjom występującym w zapytaniach podczas wyszukiwania informacji z tabel w bazie danych. Tak określona algebra miała być językiem zapytań (query language) dla relacyjnych baz danych.
Relacje
Relacje w algebrze relacji reprezentujemy ich nazwami. Z nazwą każdej relacji jest związany jej schemat — ciąg nazw atrybutów (odpowiadających kolumnom modelowanej tabeli), np.
R(A,B)
Movie(nazwa,rok)
Nazwy atrybutów w schemacie relacji muszą być różne, dlatego w literaturze schemat jest czasem definiowany jako zbiór nazw atrybutów, a nie ciąg.
Ponieważ relacje miały być abstrakcyjnym modelem tabel, ich elementy nazywa się często krotkami — odpowiadają one wierszom tabel z bazy danych.
Operacje
Projekcja


Selekcja

Iloczy kartezjanski

Łączenie

Zbiory
Suma


Część wspólna


Różnica

Normalizacja
- redundacja - powtarzanie się tych samych danych
- anomalie przy modyfikacji
- anomalie przy dodawaniu
- anomalie przy usuwaniu
- informacje powinny być zapisane tylko w jednym miejscu
- informacje powinny być atomowe/skalarne
Pierwsza postać normalna (1NF)
- opisuje jeden obiekt
- wartość atrybutów są elementarne (atomowe, niepodzielne), a nie listą* lub innym obiektem posiadającym swoją strukturę
- nie zawiera kolekcji (powtarzających się danych)
Wymagania 1NF:
- klucz relacji
- atrybuty niekluczowe są zależne klucza
Jest zdefiniowany klucz relacji. Wszystkie atrybuty niekluczowe są w zależności funkcyjnej od klucza.
przed
| Category | Movie Name |
|---|---|
| Drama | Joker, Superman |
| Crime | Die Hard |
po
| Category | Movie Name |
|---|---|
| Drama | Joker |
| Drama | Superman |
| Crime | Die Hard |
Druga postać normalna (2NF)
- jest w 1NF
- żadna kolumna niekluczowa nie jest częściowa zależna od jakiegokolwiek klucza potencjalnego
Wymagania 2NF:
- Każdy element niekluczowy zależy od klucza potencjalnego
przed
| Movie name | Category | Year | Budget |
|---|---|---|---|
| Joker | Drama | 2019 | 120 USD |
| Superman | Drama | 2015 | 120 USD |
| Die Hard | Crime | 1996 | 40 USD |
po
| Movie name | Year | Budget |
|---|---|---|
| Joker | 2019 | 120 USD |
| Superman | 2015 | 120 USD |
| Die Hard | 1996 | 40 USD |
| Category | Movie Name |
|---|---|
| Drama | Joker |
| Drama | Superman |
| Crime | Die Hard |
Trzecia postać normalna (3NF)
- jest w 2NF
- żadna kolumna niekluczowa nie jest zależna od innych atrybutów niekluczowych
Wymagania 3NF:
przed
| First Name | Last Name | Position | Price |
|---|---|---|---|
| Joe | Doe | Actor | 120 USD |
| John | Smight | Actor | 120 USD |
| Jane | Doe | Actress | 140 USD |
po
| First Name | Last Name | Position |
|---|---|---|
| Joe | Doe | Actor |
| John | Smight | Actor |
| Jane | Doe | Actress |
| Position | Price |
|---|---|
| Actor | 120 USD |
| Actress | 140 USD |
Postać normalna Boyce’a-Codda (3.5NF / BCNF)
Czwarta postać normalna (4NF)
Zakres
Podstawy baz danych (PostgreSQL)
- Relations
- Syntax and types
- Creating new databases, tables and columns
- Projection and selection
- Sorting
- Joins
- Primary key, foreign key and constraints
- CRUD operations
- Grouping and aggregations
- Conditinal statements
- Math functions
- Formatowanie danych
- Set operations
- Transactions
- Subqueries
- Views
- Indexes
- Window function
- Commont Table Expressions,
- JSON type
- ----
- lock
- array
- trigger
- procedure / functions
- pg operators