ZSE - Systemy baz danych FUNKCJE SZBD 1 System zarządzania bazami danych System zarządzania bazami danych (SZBD, ang. DBMS) jest zbiorem narzędzi stanowiących warstwę pośredniczącą pomiędzy bazą danych a użytkownikiem i umożliwiających dostęp do danych oraz zarządzanie bazami danych. SZBD BD1 BD2 Podstawowe funkcje SZBD: - zarządzanie plikami, - przeszukiwanie danych, - zarządzanie bazą danych. . . . BDn ZSE - Systemy baz danych 3 System zarządzania bazą danych musi posiadać mechanizmy: • umożliwiające administrowanie zbiorami danych umieszczonymi w bazie • zapewniające bezpieczeństwo i integralność danych • umożliwiają dostęp do danych za pomocą języka zapytań • zapewniają wielodostępność danych • pozwalają na autoryzację dostępu do danych W systemach zarządzania bazą danych można wyodrębnić dwa elementy: serwer–przechowuje dane , umożliwia ich pobieranie i aktualizowanie oraz zapewnia ich integralność i bezpieczeństwo; oprogramowanie pośredniczące -realizuje komunikację między użytkownikiem , a serwerem. Wyposażone jest w mechanizmy pozwalające wykorzystywać pobierane dane , na przykład w narzędzia do tworzenia i obsługi formularzy oraz Raportów. ZSE - Systemy baz danych 4 Podstawowe funkcje SZBD • tworzenie struktur baz danych, • wykonywanie operacji CRUD (Create, Read, Update, Delete), • obsługa zapytań (selekcjonowanie danych), • generowanie raportów i zestawień, • administracja bazą danych. ZSE - Systemy baz danych 5 Funkcje SZBD (Systemu Zarządzania Bazami Danych) • • • • • optymalizacja zapytań - takie przekształcanie zapytań kierowanych do bazy przez jej użytkowników aby czas oczekiwania na odpowiedź był możliwie najkrótszy, zapewnienie integralności danych - uniemożliwienie przejścia bazy do stanu, który nie istnieje w modelowanej rzeczywistości, zarządzanie współbieżnym dostępem wielu użytkowników w taki sposób aby każdy z nich był niewidoczny („przeźroczysty”) dla innych użytkowników; każdy z użytkowników musi być przekonany o tym, że jest wyłącznym właścicielem danych, odporność na awarie (niezawodność bazy danych) możliwość odtworzenia poprawnego stanu bazy danych sprzed awarii, ochrona danych - uniemożliwienie dostępu nieuprawnionych użytkowników do poufnych danych innych użytkowników. ZSE - Systemy baz danych Schemat SZBD Moduł zarządzania pamięcią przechowuje informacje o miejscu zapisania plików bazy danych na dysku oraz obsługuje pamięć operacyjną. Procesor zapytań przekształca zapytanie lub operację języka zapytań w ciąg poleceń żądających określonych danych. Moduł zarządzania transakcjami - kontroluje poprawność i kompletność wykonania wszystkich transakcji. 6 ZSE - Systemy baz danych 7 CHARAKTERYSTYKA ELEMENTÓW BAZ DANYCH. Zagadnienia: encja, atrybut, krotka, dziedzina, klucz (główny, kandydujący, obcy, prosty, złożony). ZSE - Systemy baz danych 8 Elementy baz danych • Twórca relacyjnego modelu danych – E.F. Codd – w pracy Relacyjny model danych dla dużych banków nie używa terminów tabela, kolumna, wiersz, lecz zamiast nich stosuje pojęcia: • relacja (zamiast tabela), • atrybut (zamiast kolumna), • krotka (zamiast wiersz). ZSE - Systemy baz danych Terminologia: 9 ZSE - Systemy baz danych 10 Terminologia: • Dziedzina - jest zbiorem wartości, jakie może przyjąć atrybut krotki (np. dla imienia to Ela, Jan , Tomek). • Klucz główny( primary key) to klucz, który został wybrany, aby unikatowo identyfikować krotki .Klucz główny jest podyktowany wyborem projektanta bazy danych tabeli. • Cechy klucza głównego: • ID (unikatowość) • NOT NULL (trwałość) • Atrybut niezmienny w czasie (stabilność) • Krótki • Krotka jest wierszem w tabeli ZSE - Systemy baz danych 11 Terminologia: • klucz prosty – to taki, który jest jednoelementowy (składa się z jednej kolumny), • klucz złożony –to taki, który jest kilkuelementowy (składa się z więcej niż jednej kolumny) • Do łączenia dwóch tabel (np. A i B) za pomocą związków używa się klucza. Klucz pochodzący z obcej tabeli B (w której jest on kluczem głównym), używany do łączenia tej tabeli z tabelą A, będzie dla tabeli A kluczem obcym. • Klucz kandydujący (nadklucz, klucz potencjalny) o super klucz zawierający minimalną liczbę kolumn unikatowo identyfikujących krotki relacji. W praktyce to kolumna lub kolumny, których użycie w charakterze klucza głównego jest rozważane przez projektanta baz danych. To właśnie twórca bazy danych decyduje, której kolumnie (kolumnom) nada funkcję klucza głównego. Pojęcie ENCJI Encja to pewien wyodrębniony logicznie i jednoznacznie określony byt (obiekt), rozpoznawalny w badanej rzeczywistości i pełniący w niej określoną rolę. Encja może być zarówno obiektem fizycznym (takim jak np. samochód, drzewo, książka itp.) jak również zdarzeniem (np. sprzedaż samochodu, zasadzenie drzewa, zakup książki itp.). Każda encja jest jednoznacznie identyfikowana na podstawie swojej nazwy. Przyjęło się, że nazwy encji są rzeczownikami w liczbie pojedynczej. Graficznie każda encja jest reprezentowana przez prostokąt. Badana rzeczywistość: organizacja zajęć dydaktycznych Kierunek Przedmiot Wykładowca Student Sala Grupa Atrybuty ENCJI Student Sala Atrybuty encji to cechy (własności) Nazwisko Numer charakteryzujące daną encję w badanej rzeczywistości, którym Imię Rodzaj przypisywane są określone wartości. Rok_Studiów Ilość_miejsc Wartości poszczególnych atrybutów Nr_indeksu Sprzęt pozwalają odróżniać encje od siebie. Encje posiadające te same własności tworzą typy (zbiory) encji. W praktyce, dla uproszczenia przyjęto używać określenia encja zarówno w odniesieniu do typu encji, jak również do określonego wystąpienia encji (określonej instancji encji). Typ Encji: Studenci Instancja encji: Nazwisko: Kowalski Imię: Jan Rok_Studiów: I Nr_indeksu: R-10/03 Instancja encji: Nazwisko: Nowak Imię: Anna Rok_Studiów: IV Nr_indeksu: R-24/99 Związki ENCJI Związki określają powiązania pomiędzy poszczególnymi encjami. W najprostszych modelach uwzględniane są związki występujące pomiędzy dwoma encjami. Pomiędzy dwoma różnymi encjami może zachodzić wiele związków, ale pomiędzy dwoma tymi samymi encjami może zachodzić tylko jeden związek. Każdy związek posiada swoją nazwę. Przyjęło się, że nazwy związków są czasownikami. Graficznie związek jest zwykle reprezentowany przez romb połączony liniami z encjami, pomiędzy którymi zachodzi wraz z oznaczeniem jego liczebności (a) lub też przez samą linię zakończoną symbolami określającymi jego liczebność (b). W niektórych notacjach nazwy związków się pomija. Student M Zawiera 1 a) Student b) Grupa Grupa Liczebność związku ENCJI Liczebność (stopień) związku encji określa liczbę instancji biorących udział w danym związku. Rozróżnia się związki: - jednojednoznaczne (jeden-dojeden, 1:1) – każdej instancji pierwszej encji odpowiada dokładnie jedna instancja drugiej encji i odwrotnie; - jednoznaczne (jeden-do-wiele, 1:M) – każdej instancji pierwszej encji odpowiada M instancji drugiej encji, ale każdej instancji drugiej encji odpowiada tylko jedna instancja pierwszej encji; - wieloznaczne (wiele-do-wiele, M:N) – każdej instancji pierwszej encji odpowiada M instancji drugiej encji, a każdej instancji drugiej encji odpowiada N instancji pierwszej encji. Student Dyplom Student Grupa Student Przedmiot ZSE - Systemy baz danych 16 PRZYKŁADY ZWIĄZKÓW Opcjonalność ( może) wymagany ( musi) ZSE - Systemy baz danych Przykład ERD 17 ZSE - Systemy baz danych MODELE BAZ DANYCH 18 Modele danych Model danych w kontekście architektury danych to „... zbiór zasad dotyczących struktur danych, ich używania oraz określania warunków wspomagających utrzymywanie zgodności danych z rzeczywistością.*” Modele danych obejmują trzy główne kategorie reguł: - definicje danych – zbiór reguł określających logiczną strukturę danych - zasady operowania danymi – reguły dotyczące procesu dostępu do danych i ich modyfikacji; - zasady integralności danych – reguły określające jakie operacje na danych są dopuszczalne aby dane pozostały nadal poprawne. *Banachowski L., Bazy danych. Tworzenie aplikacji, Akademicka Oficyna Wydawnicza PLJ, Warszawa 1998 Hierarchiczny model danych Hierarchiczny model danych wykorzystuje dwie podstawowe struktury danych: typy rekordów oraz hierarchiczne związki jeden-dowiele (typu rodzic/dziecko). Model ten ma znaczenie historyczne. Rekord: Kierunek studiów Rodzic: none Rekord: Przedmiot Rodzic: Kierunek studiów A co z prowadzeniem Rekord: Przedmiot przedmiotów?! Rodzic: Wykładowca Rekord: Wykładowca Rodzic: Kierunek studiów Rekord: Student Rodzic: Kierunek studiów Sieciowy model danych Sieciowy model danych wykorzystuje również dwie podstawowe struktury danych: typy rekordów oraz typy kolekcji, stanowiące związki jeden-do-wiele. Istotne jest, że jeden typ rekordu podrzędnego może być podporządkowany kilku typom rekordów nadrzędnych. Model ten stanowi rozwinięcie modelu hierarchicznego. uwzględnia Rekord: Kierunek studiów obejmuje zatrudnia Rekord: Przedmiot Rekord: Wykładowca prowadzi Rekord: Student Relacyjny model danych Relacyjny model danych wykorzystuje tylko jedną strukturę danych – relację. Relacja jest dwuwymiarową tabelą spełniającą następujące zasady: - każda relacja ma jednoznaczną nazwę; - każda kolumna w relacji ma jednoznaczną nazwę w ramach relacji; - wszystkie wartości w kolumnie muszą być tego samego typu; - porządek kolumn w relacji jest nieistotny; - każdy wiersz relacji musi być różny (powtarzanie wierszy jest niedozwolone); - porządek wierszy nie jest istotny; - każde pole leżące na przecięciu kolumny/wiersza w relacji powinno zawierać wartość atomową. Twórcą założeń relacyjnego modelu danych jest dr E. F. Codd (z wykształcenia matematyk), który opublikował je w roku 1970. Relacyjny model danych c.d. Każda relacja posiada nagłówek, określający jej atrybuty. Nazwa relacji wraz ze zbiorem jej atrybutów określana jest mianem schematu relacji, przedstawianego w sposób następujący: NazwaRelacji(atrybut-1, atrybut-2,...,atrybut-n). Kolejne wiersze relacji, poza wierszem nagłówkowym nazywane są krotkami. Dla każdej relacji musi być określony jednoznaczny identyfikator określany mianem klucz główny. Atrybuty Klucz główny Nagłówek Krotki ID 1 2 Nazwisko Imię Telefon Kowalski Jan 12345 Kowalski Jan 67890 Obiektowy model danych Koncepcja obiektowego modelu danych sprowadza się do rozszerzenia modelu relacyjnego o cechy obiektowe. W modelu tym mogą występować relacje zagnieżdżone, opisujące atrybuty złożone. Podstawowymi składnikami modelu obiektowego są: -obiekty, stanowiące pakiety danych (przechowywanych w atrybutach obiektu) i metod (umożliwiających operowanie danymi); -klasy obiektów, stanowiące zgrupowanie podobnych obiektów, pozwalające na określanie wspólnych dla grupy obiektów atrybutów, metod i związków. Z pojęciem klas związane jest pojęcie dziedziczenia, polegające na przejmowaniu przez podklasy atrybutów i metod z klasy nadrzędnej. Klasa: Pracownik Atrybuty: Nazwisko (Char), Staż (Int) Stawka (Int) Klasa: Kierownik Atrybuty: Dodatek (Int) Klasa nadrzędna Podklasa Rozproszone bazy danych Rozproszone bazy danych opierają swoją strukturę w dużej mierze na relacyjnym modelu danych. Są to systemy, w których występuje fragmentacja danych i rozmieszczenie ich w różnych geograficznie miejscach organizacji. Proces aplikacji BD1 SZBD BD2 Rozproszone bazy danych c.d. Do podstawowych typów rozproszonych baz danych należą: - systemy klient-serwer, w których baza danych jest przechowywana na jednym serwerze i może być udostępniana wielu klientom; - systemy jednorodne, w których dane rozłożone są na wielu serwerach, opartych na tym samym SZBD; - systemy niejednorodne, w których konfiguracje sprzętowe i oprogramowania serwerów mogą być różne; - systemy federacyjne, składające się z pewnej liczby niezależnych baz danych, które w razie potrzeby mogą wykonywać wspólne zadania. Interpreter PHP 2 Przeglądarka WWW 1 5 Przykład systemu klient-serwer Serwer WWW 3 4 Serwer MySQL