•
Atomowość (niepodzielność) – ang Atomicity: zbiór operacji, które wchodzą w skład transakcji jest niepodzielny.
•
Spójność – ang. Consistency preservation: baza przed i po wykonaniu transakcji musi być spójna (odpowiadać rzeczywistości). Nie mogą być naruszone więzy integralności (reguły pozwalające utrzymywać bazę w poprawnym stanie).
•
Izolacja – ang. Isolation dwie wykonywane jednocześnie transakcje nie powinny na siebie wzajemnie wpływać. Jeśli wpływają, to musi nastąpić ich wycofanie.
•
Trwałość – ang. Durability: po zakończeniu transakcji (z zatwierdzeniem) wynik jej działania nie może zostać utracony nawet przy zaniku napięcia zasilającego. W przypadku awarii zmiany muszą być odwracalne.
Etapy projektowania
•
analiza zagadnienia,
•
projekt pojęciowy (np. model związków encji i diagram ER),
•
wybór systemy DBMS,
•
projekt logiczny np. relacyjny,
•
generacja bazy danych (z zastosowaniem odpowiednich narzędzi lub opracowanego skryptu np. języka SQL).
JĘZYK SQL
SQL (ang. Structured Query Language) opracowany przez firmę IBM język wykorzystywany do zarządzania danymi w bazach typu relacyjnego. SQL nie stanowi sam w sobie systemu programowania i może być wykorzystywany w jednej z trzech postaci:
•
interaktywny stosowany w specjalnych opcjach DBMS,
•
zagnieżdżony – umieszczony wewnątrz poleceń innego języka programowania wysokiego poziomu,
•
statyczny – wpisane polecenie nie ulega modyfikacji,
•
dynamiczny – zmieniane są pewne składniki poleceń.
SQL składa się z trzech pod języków:
•
język definiowania danych (DDL): np. tworzenie tabel,
•
język operowania danymi (DML): tworzenie zapytań. Modyfikacja bazy itp.,
•
język kontrolowania danych (DCL): ochrona spójności bazy, transakcje.
Tabela podstawowa
select * from PRACOWNICY
//wyświetl dane z tabeli PRACOWANICY//
select PracImie, PracNazwisko, PracDataZatr from PRACOWNICY
select * from PRACOWNICY where PracStaz>=10
select * from PRACOWNICY where PracStaz>=10 and PracMiasto<>'Kalisz'
select PracID, PracNazwisko, PracImie from PRACOWNICY where PracNazwisko like 'T*'
select PracID, PracNazwisko, PracImie, PracStaz from PRACOWNICY where PracStaz between 5
select * from PRACOWNICY where PracMiasto is null
select count(*) as [Liczba rekordów] from PRACOWNICY
select avg(PracStaz) as [Średni staż pracy] from PRACOWNICY
select max(PracStaz) as [Max staż pracy] from PRACOWNICY
Funkcje agregujące: COUNT, AVG, SUM, MAX, MIN
select * from PRACOWNICY order by PracNazwisko
select * from PRACOWNICY order by PracNazwisko Desc, PracImie Desc
//malejąco//