Projektowanie struktury danych



Podobne dokumenty
Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Projektowanie warstwy danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

WPROWADZENIE DO BAZ DANYCH

Projektowanie logiki aplikacji

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

Baza danych. Modele danych

Analiza i projektowanie aplikacji Java

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

Baza danych. Baza danych to:

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

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

2017/2018 WGGiOS AGH. LibreOffice Base

Krzysztof Kadowski. PL-E3579, PL-EA0312,

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

Autor: Joanna Karwowska

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

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

Technologia informacyjna

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy danych - wykład wstępny

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

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

Projektowanie interakcji. Jarosław Kuchta

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Programowanie obiektowe

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Projektowanie architektury systemu internetowego

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

WPROWADZENIE DO BAZ DANYCH

Wykład 4. SQL praca z tabelami 1

Wykład 2. Relacyjny model danych

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

KURS ACCESS 2003 Wiadomości wstępne

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

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

Krzysztof Kluza proste ćwiczenia z baz danych

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

Związki pomiędzy tabelami

Instrukcja CREATE TABLE

Program nauczania. Systemy baz danych. technik informatyk

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

Projektowanie IU wejście/wyj. cie/wyjście. Projektowanie wejścia. podstawowe zasady (1) Przetwarzanie on-line

Projektowanie interfejsu uŝytkownikau. uŝytkownika. Zagadnienia. Zawartość. projektu interfejsu

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

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

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

Wprowadzenie do baz danych

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

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

Pojęcie systemu informacyjnego i informatycznego

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

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

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

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

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

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

1. Mapowanie diagramu klas na model relacyjny.

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

Modelowanie danych, projektowanie systemu informatycznego

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

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

Język SQL, zajęcia nr 1

Podstawowe zagadnienia z zakresu baz danych

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

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

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

Systemy GIS Systemy baz danych

Programowanie w Ruby

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

TEST E.14 BAZY DANYCH

Fizyczna struktura bazy danych w SQL Serwerze

Paweł Kurzawa, Delfina Kongo

Model relacyjny bazy danych

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

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Projektowanie relacyjnych baz danych


ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Relacyjne bazy danych

Projektowanie bazy danych przykład

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Agnieszka Ptaszek Michał Chojecki

1 Wstęp do modelu relacyjnego

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Technologia informacyjna

MAS dr. Inż. Mariusz Trzaska

RELACYJNE BAZY DANYCH

Transkrypt:

Jarosław aw Kuchta Rozproszonych Projektowanie qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl 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 w relacyjnej bazie danych Szacowanie rozmiaru relacyjnej bazy danych Problemy synchronizacji w rozproszonej bazie danych 2/30 Sposoby zapisu danych Pliki Pliki sekwencyjne Nieuporządkowane Uporządkowane Pliki swobodnego dostępu Bazy danych Relacyjne Relacyjno-Obiektowe Obiektowe 3/30

Zalety i wady zapisu w plikach Zalety Elastyczność związana zana z zastosowaniem obiektowego języka programowania Dowolność typów w i formatów w danych DuŜa a wydajność odczytu/zapisu Brak konieczności ci zakupu systemu bazy danych Wady Redundancja danych Brak zewnętrznego mechanizmu modyfikacji (konieczność pisania specjalnych programów) Brak mechanizmu kontroli dostępu do danych 4/30 Zastosowanie plików Pliki główne g (master( files) Pliki przeglądowe (look( look-up files) Pliki transakcyjne Pliki kontrolne (audit( files) Pliki archiwalne (history( files, archive files) 5/30 Zastosowanie systemu bazy danych (DBMS) Systemy transakcyjne Systemy wspierania decyzji Systemy informowania kierownictwa Systemy eksperckie 6/30 2

Rodzaje systemów w baz danych RDBMS - Relational Database Management System ORDBMS - Object-relational Database Management System OODBMS - Object Oriented Database Managemend System 7/30 Zalety i wady RDBMS Zalety Szybkie wyszukiwanie danych Standardowy język j dostępu do danych (SQL) Kontrola spójno jności danych modyfikacji Dobrze sprawdzone systemy na rynku Kontrola dostępu do danych współdzielenia Wady Brak moŝliwo liwości obsługi złoŝonych onych typów w danych (dodawane w niektórych RDBMS) Niecałkowita zgodność podstawowych typów w danych z OOPL Brak wsparcia dla zapisu danych obiektowych 8/30 Zalety i wady ORDBMS Zalety MoŜliwo liwości obsługi złoŝonych onych typów w danych Zbudowane na SQL Kontrola spójno jności danych modyfikacji Kontrola dostępu do danych współdzielenia Wady Niecałkowita zgodność podstawowych typów w danych z OOPL Ograniczone wsparcie dla zapisu danych obiektowych 9/30 3

Zalety i wady OODBMS Zalety MoŜliwo liwości obsługi złoŝonych onych typów w danych Bezpośrednie wsparcie dla zapisu danych obiektowych Kontrola spójno jności danych modyfikacji Kontrola dostępu do danych współdzielenia Wady Brak uznanego standardu Konieczność dopasowania OODBMS do OOPL Niedojrzałość narzędzi 0/30 Odwzorowanie klas PD w DM w OODBMS Warstwa PD Klient Zamówienie Warstwa DM DMKlient DMZamówienie /30 Problem dziedziczenia wielokrotnego NadklasaA -atrybuta -atrybuta2 NadklasaB -atrybutb -atrybutb2 KlasaC -atrybutc -atrybutc2 2/30 4

Rozwiązanie zanie a) NadklasaA -atrybuta -atrybuta2 Utworzyć instancję dodatkowej nadklasy w warstwie DM i dodać atrybut, który połą łączy instancję nadklasy z instancją podklasy. KlasaC -atrybutc -atrybutc2 -NadklasaB NadklasaB -atrybutb -atrybutb2 3/30 Rozwiązanie zanie b) NadklasaA -atrybuta -atrybuta2 Spłaszczy aszczyć hierarchię dziedziczenia w warstwie DM przez skopiowanie atrybutów i metod nadklas do podklas. KlasaC -atrybutb -atrybutb2 -atrybutc -atrybutc2 4/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ŝonychz onych 5/30 5

Odwzorowanie klas PD w DM w ORDBMS PD klasa atrybut jednowartościowy atrybut pochodny asocjacja pojedyncza atrybut wielowartościowy atrybut złoŝonyz ony asocjacja jeden-wiele DM klasa metoda dostępu ORDBMS tabela kolumna procedura przechowywana kolumna typu OID kolumna wielowartościowa nowa tabela + relacja jeden- wiele kolumna wielowartościowa typu OID asocjacja wielostronna kolumna wielowartościowa typu OID po kaŝdej ze stron Projektowanie Rozproszonych 6/30 Rozwiązanie zanie problemu dziedziczenia w ORDBMS Kolumna zawierająca OID instancji przechowywanej w tablicy reprezentującej nadklasę. Spłaszczenie hierarchii dziedziczenia 7/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 DTOsoba DTKlient DTAdres 8/30 6

Struktura klas DM w ORDBMS - przykład DMOsoba Get Osoba() Set Osoba() DMKlient Get Klient() Set Klient() DTOsoba Imię: string Nazwisko: string Osoba DTKlient Adres: OID Tel[*]: string NIP: string Osoba: OID Adres * DTAdres Kod: string Miejscowość: string Ulica: string 9/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ŝonychz onych ZałoŜenia dodatkowe: kolumny - klucze sąs typu integer (32-bitowe) kolumna automatycznie ustawiana przez RDBMS jest oznaczana zastrzeŝeniem eniem {autoset{ autoset} kolumna z kluczem własnym w jest oznaczana zastrzeŝeniem eniem {PK} kolumna z kluczem obcym jest oznaczana zastrzeŝeniem eniem {FK} 20/30 Odwzorowanie klas PD w DM w RDBMS PD klasa atrybut jednowartościowy atrybut pochodny asocjacja pojedyncza atrybut wielowartościowy DM klasa metoda dostępu RDBMS tabela + kolumna ID: integer {autoset,, PK} kolumna procedura przechowywana kolumna typu integer {FK} + relacja jeden-jeden nowa tabela + relacja jeden-wiele atrybut złoŝonyz ony nowa tabela + relacja jeden-wiele asocjacja jeden-wiele asocjacja wielostronna kolumna typu integer {FK} + relacja jeden-wiele nowa tabela z kolumnami typu integer {FK} + relacje jeden-wiele 2/30 7

Struktura klas DM w RDBMS - przykład DTOsoba DMOsoba Get Osoba() Set Osoba() ID: integer {autoset, PK} Imię: string Nazwisko: string Osoba DMKlient Get Klient() Set Klient() DTKlient ID: integer {autoset, PK} NIP: string Osoba: integer {FK} Klient Klient * DTAdres ID: integer {autoset, PK} Klient: integer {FK} Kod: string Miejscowość: string Ulica: string DTTel ID: integer {autoset, PK} Klient: integer {FK} Tel: string 22/30 Optymalizacja obiektu w RDBMS Optymalizacja wydajności (normalizacja) Optymalizacja szybkości (denormalizacja( denormalizacja, indeksowanie) 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 NF 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 24/30 8

Denormalizacja Tablice przeglądowe (look( look-up tables) Relacje jeden-jeden Relacje jeden-wiele 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 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. 26/30 Indeksowanie - prezentacja ZastrzeŜenia 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 imię = nazwisko + imię {unique,, not null} 27/30 9

Szacowanie rozmiaru bazy danych Średni rozmiar rekordu = Suma średniego rozmiaru pól. p Średni rozmiar pól p l tekstowych - szacowanie Szacowanie liczby rekordów Narzut DBMS Przyrost miesięczny/roczny 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 w integralności konflikt wielkości liter i porządk dków w sortowania 29/30 Literatura Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Oriented Approach with UML,, John Wiley and Sons,, USA, 2002 30/30 0