M3 L5 Mini baza danych – ciąg dalszy

Mini baza danych – ciąg dalszy

Samo utworzenie listy to dopiero namiastka funkcjonalności bazy danych. Każda taka struktura powinna umożliwiać obsługę czterech podstawowych operacji, zwanych CRUD.

C – create, dodanie nowych obiektów do bazy

R – read/retrieve, pobranie z bazy informacji o obiekcie (zwykle też przypisujące je do zmiennej)

U – update, aktualizacja danych o obiekcie w bazie

D – delete, usunięcie obiektu z bazy

Dla każdej z takich operacji musimy zbudować odpowiednie funkcje, które posłużą do ich wykonania. Przykładowo, dodawanie obiektu będzie korzystać ze znanej nam już operacji append.

Rozwiązanie takie poprawnie doda nową osobę, jednak dość łatwo możemy sobie wyobrazić problematyczne sytuacje, jeśli zechcemy dodać osobę o takich samych danych. Załóżmy, że dane te są unikalne i nie dodamy np. numer pesel w celu dodatkowej identyfikacji, by nie komplikować sytuacji.

W tym celu musimy dodać instrukcje warunkową, sprawdzającą czy dany rekord już występuje w naszej liście. Składnia takiego wyrażenia jest nieco inna niż dotychczas poznane:

Konstrukcja typu “if obiekt in nazwaListy” przechodzi przez kolejne pozycje zadanej listy i sprawdza czy któryś z elementów pasuje do zadanej wartości. Jeśli tak, otrzymamy True, jeśli nie, będzie to False. Możliwe jest odwrócenie tej notacji poprzez dodanie operatora logicznego NOT, np.

if osoba not in baza:

Baza.append(osoba)