Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych



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

Projektowanie warstwy danych

Projektowanie struktury danych

Wykład 4. SQL praca z tabelami 1

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

Język SQL, zajęcia nr 1

Projektowanie logiki aplikacji

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

Instrukcja CREATE TABLE

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Autor: Joanna Karwowska

Bazy danych. Dr inż. Paweł Kasprowski

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

Bazy danych 7. SQL podstawy

Wykład 8. SQL praca z tabelami 5

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Aspekty aktywne baz danych

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Projektowanie systemów baz danych

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Bazy danych - wykład wstępny

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Analiza i projektowanie aplikacji Java

NARZĘDZIA WIZUALIZACJI

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Tworzenie modelu logicznego i fizycznego danych.

Ref. 7 - Język SQL - polecenia DDL i DML

Bazy danych 5. Samozłaczenie SQL podstawy

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Dr Michał Tanaś(

Wykład 05 Bazy danych

Projektowanie interakcji. Jarosław Kuchta

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle PL/SQL. Paweł Rajba.

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

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

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Paweł Cieśla. Dokumentacja projektu

Podstawowe informacje o bazach danych. Technologie Informacyjne

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

MySQL. Darmowa baza danych. Æwiczenia praktyczne

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

Bazy Danych i Usługi Sieciowe

WPROWADZENIE DO BAZ DANYCH

Post-relacyjne bazy danych

Tworzenie baz danych i tabel

Wykład 5. SQL praca z tabelami 2

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Bazy danych 10. SQL Widoki

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Tuning SQL Server dla serwerów WWW

Bazy danych i usługi sieciowe

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

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

Bazy danych 4. SQL podstawy. P. F. Góra

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Bazy danych Ćwiczenia projektowe

Wykład 2. SQL 1 Structured Query Lenguage

Wdrożenie modułu płatności eservice. dla systemu Magento

Wykład :45 BD-1 W_3

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

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

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Oracle11g: Wprowadzenie do SQL

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

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Paweł Rajba

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych i usługi sieciowe

Przykładowa baza danych BIBLIOTEKA

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

15. Funkcje i procedury składowane PL/SQL

Wykład 6. SQL praca z tabelami 3

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

PL/SQL. Lidia Małkiewicz i Cezary Skubała

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Lab.8: Podstawy języka SQL.

SQL w praktyce. Miłej i owocnej nauki!!!

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

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Dokumentacja SQL API 1

Projektowanie architektury systemu internetowego

Zasady transformacji modelu DOZ do projektu tabel bazy danych

2 Przygotował: mgr inż. Maciej Lasota

Przedmowa Rozpoczęcie pracy z bazą danych Microsoft SQL Server Podstawowe instrukcje języka SQL...39

Transkrypt:

Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych

Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML) Oracle IBM Microsoft MySQL inne Projektowanie bazy danych 2/22

Cel projektowy UML UML UML UML UML SQL Klasy atrybuty operacje relacje Tabele Kwerendy pola klucze relacje Projektowanie bazy danych 3/22

Strategia postępowania model klas struktura danych struktura danych model klas struktura danych działająca model klas jest sprawdzony i poprawny struktura bazy danych może być optymalizowana do potrzeb jakość pod kontrolą model klas dopasowywany do możliwości bazy danych brak odniesienia do potrzeb specyfikacja wymagań na nowo interpretowana (podwójna praca) niepewna jakość!!! Projektowanie bazy danych 4/22

Problemy do rozwiązania Identyfikacja klas wymagających przechowywania w bazie danych Odwzorowanie klas trwałych w tabele i kwerendy Identyfikacja instancji Realizacja mechanizmu dziedziczenia w systemie relacyjnej bazy danych Ograniczenia związane ze standardowymi typami danych Realizacja złożonych typów danych Realizacja agregacji i asocjacji Optymalizacja dostępu tabel Realizacja operacji klas Stworzenie fizycznej struktury bazy danych Zapewnienie spójności danych w związku ze zmianami projektowymi Projektowanie bazy danych 5/22

Identyfikacja klas trwałych Klasa trwała jest to klasa obiektów, o których informacje muszą być przechowywane pomiędzy kolejnymi sesjami. Nie każda klasa trwała jest przechowywana w bazie danych (np. log systemowy). Projektowanie bazy danych 6/22

Odwzorowanie klas trwałych w tabele i kwerendy Klient + Nazwisko: string + Imię: string + Adres: Adres «list» Klienci «storage» Klienci ID {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres:... Projektowanie bazy danych 7/22

Identyfikacja instancji (1) Instancje pamięci operacyjnej są identyfikowane przez adres może się zmienić po przechowaniu w bazie danych i ponownym załadowaniu do pamięci. Wniosek trzeba zapewnić inny, unikalny identyfikator. Identyfikatory oparte o pozornie unikalne dane, jak np. numer PESEL, mogą być zawodne. Identyfikator cyfrowy 32 bitowy zapewnia 4 mld różnych encji, lecz jest unikalny tylko wtedy, gdy jest nadawany przez jeden serwer. Identyfikator cyfrowy 16-bajtowy jest zawsze unikalny (GUID), lecz nie jest typem standardowym SQL. Klasa modelowa musi przechowywać identyfikator w pamięci. Projektowanie bazy danych 8/22

Identyfikacja instancji (2) Klient # ID: INT + Nazwisko: string + Imię: string + Adres: Adres «storage» KlienciTbl ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres:... Projektowanie bazy danych 9/22

Rozwiązanie problemu dziedziczenia (1) Każda hierarchia klas zajmuje jedną tabelę, która przechowuje wszystkie atrybuty z całej hierarchii. Osoba +Nazwisko +Imię #ID +Adres Klient Firma +Nazwa «storage» KlienciTbl ID Nazwisko Imię Nazwa Adres Projektowanie bazy danych 10/22

Rozwiązanie problemu dziedziczenia (2) Każda klasa w hierarchii ma własną tabelę, w której przechowuje własne atrybuty, również dziedziczone. Klasa, która nie tworzy instancji nie jest przechowywana Osoba #ID +Nazwisko +Imię +Adres Klient Firma #ID +Nazwa «storage» «storage» Firmy ID {PK} Nazwa Adres Osoby ID {PK} Nazwisko Imię Adres Projektowanie bazy danych 11/22

Rozwiązanie problemu dziedziczenia (3) Każda klasa w hierarchii ma własną tabelę, w której przechowuje tylko własne atrybuty, nie dziedziczone. Tabela nadrzędna ma relacje do tabel pochodnych. Osoba +Nazwisko +Imię #ID +Adres Klient Firma +Nazwa «storage» Klienci ID {PK} Adres «storage» «storage» Firmy ID {FK} Nazwa Osoby ID {FK} Nazwisko Imię Projektowanie bazy danych 12/22

Problemy z typami danych Typy standardowe Typy numeryczne INTEGER (INT), SMALLINT NUMERIC (P, S), DECIMAL (P, S) FLOAT (P), REAL, DOUBLE PRECISION Typy znakowe CHAR (n), VARCHAR, NATIONAL CHAR (n), NATIONAL VARCHAR VARCHAR2 Typy daty i czasu DATE, TIME, DATETIME, TIMESTAMP INTERVAL Int64 Typy niestandardowe Wide String Extended Real Projektowanie bazy danych 13/22

Realizacja typu wyliczanego «enum» Status nieznany w-realizacji zrealizowany «storage» Status ID: INT Nazwa: VARCHAR Projektowanie bazy danych 14/22

Atrybuty złożone Atrybuty złożonych typów danych mogą być spłaszczane Klient # ID: INT + Nazwisko: string + Imię: string + Adres: Adres Adres + Kod: string + Miejscowość: string + Ulica: string + Nr: string «storage» Klienci ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres_Kod:VARCHAR Adres_Miejscowość:... Adres_Nr: VARCHAR Projektowanie bazy danych 15/22

Atrybuty wielokrotne Atrybuty wielokrotne są realizowane jako osobne tabele Klient # ID: INT + Nazwisko: string + Imię: string + Tel[*]: string «storage» Klienci ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR NrTel ID: INT {FK} Nr: VARCHAR Projektowanie bazy danych 16/22

Agregacje i asocjacje Asocjacje wiele-wiele, wielostronne i asocjacje z własnymi atrybutami są realizowane przez osobne tablice. Pozostałe asocjacje i agregacje są realizowane jako relacje 1-1 i 1-wiele. Projektowanie bazy danych 17/22

Optymalizacja dostępu do tabel Definiowanie indeksów drugorzędnych Klienci ID: INT {PK} Nazwisko: VARCHAR {FK, NotNull} Imię: VARCHAR {FK,NotNull} Adres_Kod:VARCHAR Adres_Miejscowość: VARCHAR {FK} Adres_Nr: VARCHAR NIP: VARCHAR {FK} «PK» Primary_Key () «FK» Nazwisko_i_Imię () «FK» Miejscowość () «FK» NIP () {Unique, NotNull} Projektowanie bazy danych 18/22

Operacje klas Realizowane w klasach modelowych Realizowane w procedurach SQL «append» «update» «delete» Projektowanie bazy danych 19/22

Stworzenie fizycznej struktury danych CREATE TABLE tbl_klient ( ID INT NOT NULL, Nazwisko VARCHAR NOT NULL, Imie VARCHAR NOT NULL PRIMARY KEY (ID) ); Projektowanie bazy danych 20/22

Zmiany projektowe Instrukcja SQL ALTER TABLE Z typu wyliczanego nie można usuwać elementów. Zwracać uwagę na zmianie zakresu i precyzji danych przy zmianie typów. Projektowanie bazy danych 21/22

Literatura Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001 Geoffrey Sparks: Database Modeling in UML, http://www.techonline.com/community/tech_topic/ uml Coad P., Yourdon E.: Projektowanie obiektowe, Read Me, Warszawa 1994 Celko J.,: SQL. Zaawansowane techniki programowania, MIKOM 1999 Projektowanie bazy danych 22/22