Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Podobne dokumenty
Projektowanie warstwy danych

Projektowanie struktury danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie logiki aplikacji

WPROWADZENIE DO BAZ DANYCH

Baza danych. Modele danych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Systemy baz danych. mgr inż. Sylwia Glińska

Analiza i projektowanie aplikacji Java

Baza danych. Baza danych to:

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Autor: Joanna Karwowska

Krzysztof Kadowski. PL-E3579, PL-EA0312,

2017/2018 WGGiOS AGH. LibreOffice Base

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Bazy danych Wykład zerowy. P. F. Góra

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Bazy danych - wykład wstępny

Technologia informacyjna

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Normalizacja relacyjnych baz danych. Sebastian Ernst

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Wykład 4. SQL praca z tabelami 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych 2. Wykład 3. Metodologia projektowania baz danych (projektowanie fizyczne)

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Programowanie obiektowe

Projektowanie architektury systemu internetowego

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Wykład 2. Relacyjny model danych

Pojęciowy model danych etap 1 (identyfikacja obiektów) Pojęciowy model danych etap 2A (powiązania obiektów)

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Projektowanie interakcji. Jarosław Kuchta

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU -nawigacja

Zadania semestralne. Programowanie obiektowe sem. II, lato 2014/2015

Związki pomiędzy tabelami

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

RELACYJNE BAZY DANYCH

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Pojęcie bazy danych. Funkcje i możliwości.

Systemy GIS Systemy baz danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Instrukcja CREATE TABLE

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

WPROWADZENIE DO BAZ DANYCH

Program nauczania. Systemy baz danych. technik informatyk

Normalizacja baz danych

MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Zasady transformacji modelu DOZ do projektu tabel bazy danych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Język SQL, zajęcia nr 1

Krzysztof Kluza proste ćwiczenia z baz danych

Hurtownie danych. Ładowanie, integracja i aktualizacja danych. INTEGRACJA DANYCH ETL

Modelowanie danych, projektowanie systemu informatycznego

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Projektowanie bazy danych przykład

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Modelowanie aktywności. Jarosław Kuchta Programowanie Współbieżne

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

Bazy danych 2. Wykład 1

Oracle11g: Wprowadzenie do SQL

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Diagramy stanów i aktywności. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Wprowadzenie do baz danych

Fizyczna struktura bazy danych w SQL Serwerze

TEST E.14 BAZY DANYCH

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Pojęcie systemu informacyjnego i informatycznego

Model relacyjny bazy danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

1. Mapowanie diagramu klas na model relacyjny.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Spis treści. Przedmowa

Podstawowe zagadnienia z zakresu baz danych

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Tworzenie aplikacji bazodanowych

Spis treści. 1 Modelowanie logiczne. Plan wykładu. 1 Modelowanie logiczne 1

Transkrypt:

Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie warstwy danych

Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej bazy danych Optymalizacja relacyjnej bazy danych dla przechowywania obiektów Wykorzystanie indeksów w relacyjnej bazie danych Szacowanie rozmiaru relacyjnej bazy danych Problemy synchronizacji w rozproszonej bazie danych Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 2/30

Sposoby zapisu danych Pliki Pliki sekwencyjne Nieuporządkowane Uporządkowane Pliki swobodnego dostępu Bazy danych Relacyjne Relacyjno-Obiektowe Obiektowe Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 3/30

Zalety i wady zapisu w plikach Zalety Elastyczność związana z zastosowaniem obiektowego języka programowania Dowolność typów i formatów danych Duża wydajność odczytu/zapisu Brak konieczności zakupu systemu bazy danych Wady Redundancja danych Brak zewnętrznego mechanizmu modyfikacji struktury danych (konieczność pisania specjalnych programów) Brak mechanizmu kontroli dostępu do danych Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 4/30

Zastosowanie plików Pliki konfiguracyjne (config files) Pliki przeglądowe (look-up files) Pliki transakcyjne (transact files) Pliki kontrolne (audit files, log files) Pliki archiwalne (history files, archive files) Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 5/30

Zastosowanie systemu bazy danych (DBMS) Systemy transakcyjne Systemy wspierania decyzji Systemy informowania kierownictwa Systemy eksperckie Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 6/30

Rodzaje systemów baz danych RDBMS - Relational Database Management System ORDBMS - Object-relational Database Management System OODBMS - Object Oriented Database Managemend System Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 7/30

Zalety i wady RDBMS Zalety Szybkie wyszukiwanie danych Standardowy język dostępu do danych (SQL) Kontrola spójności danych Łatwość modyfikacji struktury danych Dobrze sprawdzone systemy na rynku Kontrola dostępu do danych Łatwość współdzielenia struktury danych Wady Brak możliwości obsługi złożonych typów danych (dodawane w niektórych RDBMS) Niecałkowita zgodność podstawowych typów danych z OOPL Brak wsparcia dla zapisu danych obiektowych Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 8/30

Zalety i wady ORDBMS Zalety Możliwości obsługi złożonych typów danych Zbudowane na SQL Kontrola spójności danych Łatwość modyfikacji struktury danych Kontrola dostępu do danych Łatwość współdzielenia struktury danych Wady Niecałkowita zgodność podstawowych typów danych z OOPL Ograniczone wsparcie dla zapisu danych obiektowych Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 9/30

Zalety i wady OODBMS Zalety Możliwości obsługi złożonych typów danych Bezpośrednie wsparcie dla zapisu danych obiektowych Kontrola spójności danych Łatwość modyfikacji struktury danych Kontrola dostępu do danych Łatwość współdzielenia struktury danych Wady Brak uznanego standardu Konieczność dopasowania OODBMS do OOPL Niedojrzałość narzędzi Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 10/30

Odwzorowanie klas PD w DM w OODBMS Warstwa PD Klient Zamówienie Warstwa DM DMKlient DMZamówienie Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 11/30

Problem dziedziczenia wielokrotnego NadklasaA -atrybuta1 -atrybuta2 NadklasaB -atrybutb1 -atrybutb2 KlasaC -atrybutc1 -atrybutc2 Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 12/30

Rozwiązanie a) NadklasaA -atrybuta1 -atrybuta2 Utworzyć instancję dodatkowej nadklasy w warstwie DM i dodać atrybut, który połączy instancję nadklasy z instancją podklasy. KlasaC -atrybutc1 -atrybutc2 -NadklasaB 1 1 NadklasaB -atrybutb1 -atrybutb2 Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 13/30

Rozwiązanie b) NadklasaA -atrybuta1 -atrybuta2 Spłaszczyć hierarchię dziedziczenia w warstwie DM przez skopiowanie atrybutów i metod nadklas do podklas. KlasaC -atrybutb1 -atrybutb2 -atrybutc1 -atrybutc2 Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 14/30

Odwzorowanie klas PD w DM w ORDBMS (założenia) ORDBMS obsługuje: identyfikator obiektu (OID) kolumny wielowartościowe (np. tel[*]: string) procedury przechowywane ORDBMS nie obsługuje: żadnego rodzaju dziedziczenia kolumn złożonych Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 15/30

Odwzorowanie klas PD w DM w ORDBMS PD DM ORDBMS klasa klasa tabela atrybut jednowartościowy metody dostępu kolumna atrybut pochodny metoda dostępu procedura przechowywana asocjacja pojedyncza metody dostępu kolumna typu OID atrybut wielowartościowy metody dostępu kolumna wielowartościowa atrybut złożony metody dostępu nowa tabela + relacja jedenwiele asocjacja jeden-wiele metody dostępu kolumna wielowartościowa typu OID asocjacja wielostronna metody dostępu kolumna wielowartościowa typu OID po każdej ze stron Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 16/30

Rozwiązanie problemu dziedziczenia w ORDBMS Kolumna zawierająca OID instancji przechowywanej w tablicy reprezentującej nadklasę. Spłaszczenie hierarchii dziedziczenia Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 17/30

Odwzorowanie klas PD w DM w ORDBMS przykład Warstwa PD Osoba Imię: string Nazwisko: string Klient Adres: (Kod, Miejscowość, Ulica) Tel[*]: string NIP: string Warstwa DM DMOsoba DMKlient «table» DTOsoba «table» DTKlient «table» DTAdres Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 18/30

Struktura klas DM w ORDBMS - przykład DMOsoba DMKlient Get Osoba() Set Osoba() Get Klient() Set Klient() «table» DTOsoba Imię: string Nazwisko: string Osoba «table» DTKlient Adres: OID Tel[*]: string NIP: string Osoba: OID Adres * «table» DTAdres Kod: string Miejscowość: string Ulica: string Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 19/30

Odwzorowanie klas PD w DM w RDBMS (założenia) RDBMS obsługuje: automatyczny identyfikator rekordu (ID) procedury przechowywane RDBMS nie obsługuje: żadnego rodzaju dziedziczenia kolumn wielowartościowych kolumn złożonych Założenia dodatkowe: kolumny - klucze są typu integer (32-bitowe) kolumna automatycznie ustawiana przez RDBMS jest oznaczana zastrzeżeniem {autoset} kolumna z kluczem własnym jest oznaczana zastrzeżeniem {PK} kolumna z kluczem obcym jest oznaczana zastrzeżeniem {FK} Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 20/30

Odwzorowanie klas PD w DM w RDBMS PD DM RDBMS klasa klasa tabela + kolumna ID: integer {autoset, PK} atrybut jednowartościowy metody dostępu kolumna atrybut pochodny metoda dostępu procedura przechowywana asocjacja pojedyncza metody dostępu kolumna typu integer {FK} + relacja jeden-jeden atrybut wielowartościowy metody dostępu nowa tabela + relacja jeden-wiele atrybut złożony metody dostępu nowa tabela + relacja jeden-wiele asocjacja jeden-wiele metody dostępu kolumna typu integer {FK} + relacja jeden-wiele asocjacja wielostronna metody dostępu nowa tabela z kolumnami typu integer {FK} + relacje jedenwiele Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 21/30

Struktura klas DM w RDBMS - przykład «table» DTOsoba DMOsoba Get Osoba() Set Osoba() ID: integer {autoset, PK} Imię: string Nazwisko: string Osoba 1 1 DMKlient Get Klient() Set Klient() «table» DTKlient ID: integer {autoset, PK} NIP: string Osoba: integer {FK} 1 Klient 1 Klient 1 * «table» DTAdres ID: integer {autoset, PK} Klient: integer {FK} Kod: string Miejscowość: string Ulica: string «table» DTTel ID: integer {autoset, PK} Klient: integer {FK} Tel: string Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 22/30

Optymalizacja obiektu w RDBMS Optymalizacja wydajności (normalizacja) Optymalizacja szybkości (denormalizacja, indeksowanie) Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 23/30

Normalizacja 0NF Czy któraś tablica zawiera powtarzające się pola? Czy pewne rekordy mają różną liczbę kolumn od innych rekordów? Usuń powtarzające się lub nadmiarowe pola. Stwórz nową tablicę, która będzie przechowywała usunięte dane. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK 1NF Czy PK jest tworzony z więcej niż jednego pola? Jeśli tak, to czy są pola zależne tylko od części PK? Usuń częściową zależność. Dodaj nową tablicę, która będzie zawierała pola, które były częściowo zależne. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK. 2NF Czy są pola zależne od innego drugoplanowego pola kluczowego? Usuń zależnośc przechodnią Dodaj nową tablicę, która będzie zawierała usunięte pola. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK 3NF Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 24/30

Denormalizacja Tablice przeglądowe (look-up tables) Relacje jeden-jeden Relacje jeden-wiele Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 25/30

Indeksowanie - zasady Dla każdej tablicy tworzy się indeks unikalny w oparciu o PK. Dla każdej tablicy tworzy się indeksy w oparciu o FK. Dodatkowe indeksy tworzy się dla pól często wykorzystywanych przy grupowaniu, sortowaniu lub wyszukiwaniu rekordów. W systemie transakcyjnym rzadko stosuje się dodatkowe indeksy. W systemach decyzyjnych tworzy się wiele indeksów. Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 26/30

Indeksowanie - prezentacja Zastrzeżenia {index} indeks nie zapewniający unikatowości {unique} indeks zapewniający unikatowość {not null} kolumna nie dopuszcza wartości pustej Przedział indexes nazwisko-i-imię = nazwisko + imię {unique, not null} Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 27/30

Szacowanie rozmiaru bazy danych Średni rozmiar rekordu = Suma średniego rozmiaru pól. Średni rozmiar pól tekstowych - szacowanie Szacowanie liczby rekordów Narzut DBMS Przyrost miesięczny/roczny Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 28/30

Problemy z rozproszoną bazą danych Centralna baza danych lokalne repliki bazy danych Synchronizacja okresowa Konflikty synchronizacji: konflikt blokowania konflikt klucza unikatowego konflikt klucza obcego konflikt poprawności na poziomie tabeli konflikt naruszenia więzów integralności konflikt wielkości liter i porządków sortowania Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 29/30

Literatura Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Projektowanie Aplikacji Internetowych Projektowanie warstwy danych 30/30