Wymagania dotyczące projektu do przedmiotu: Systemy baz danych 2 / Bazy danych projekt 1 (P)

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

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Podstawy technologii WWW

Projektowanie systemów baz danych

Bazy danych. Polecenia SQL

Wykład 5: PHP: praca z bazą danych MySQL

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

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

I. Interfejs użytkownika.

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

Bazy danych. Dr inż. Paweł Kasprowski

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład 5. SQL praca z tabelami 2

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Autor: Joanna Karwowska

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

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Oracle11g: Wprowadzenie do SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Baza danych sql. 1. Wprowadzenie

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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

SIECI KOMPUTEROWE I BAZY DANYCH

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

WPROWADZENIE DO BAZ DANYCH

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

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Krzysztof Kadowski. PL-E3579, PL-EA0312,

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Relacyjne bazy danych. Podstawy SQL

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

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

Bazy danych - wykład wstępny

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Projektowanie baz danych za pomocą narzędzi CASE

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

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

PHP: bazy danych, SQL, AJAX i JSON

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 4. SQL praca z tabelami 1

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

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

Technologia informacyjna

7. Formularze master-detail

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Język SQL, zajęcia nr 1

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

Wykład 8. SQL praca z tabelami 5

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

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

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza

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

4. Projekt Bazy Danych

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Przykłady normalizacji

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

KS-ZSA. Korporacyjne grupy towarowe

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

E-czeki - zakładanie listy odbiorców, raport uprawnień (Bankowość Elektroniczna dla Klientów Korporacyjnych Getin Noble Bank SA)

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Relacyjne bazy danych. Podstawy SQL

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

Database Connectivity

OPRACOWANIE: SŁAWOMIR APANOWICZ

Baza danych. Baza danych to:

Struktura drzewa w MySQL. Michał Tyszczenko

Za pomocą niniejszej instrukcji baza programu MAK zostanie przygotowania do eksportu na METALIB.

Instrukcja użytkownika ARSoft-WZ3

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Instrukcja obsługi aplikacji MobileRaks 1.0

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

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

Tworzenie bazy danych w środowisku OpenOffice.org Base tabela, formularz, kwerenda, raport

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Bazy danych TERMINOLOGIA

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

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

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

PTI S1 Tabele. Tabele. Tabele

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

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

Data modyfikacji:

Transkrypt:

Wymagania dotyczące projektu do przedmiotu: Systemy baz danych 2 / Bazy danych projekt 1 (P) Założenie: zaprojektowanie schematu bazy danych modelującej wybrany fragment oraz implementacja tego schematu w konkretnej bazie danych. UWAGA: podane narzędzia są to propozycje można korzystać z innych, o ile efekt końcowy będzie osiągnięty. Wymagania szczegółowe (minimalne) 1. Przygotowanie schematu/modelu logicznego bazy danych (narzędzie: Oracle SQL Developer Data Modeller) 2. Wielkość bazy: 20 tabel/encji relacje wiele-do-wiele można traktować jako encje 3. Utworzenie fizycznej bazy danych implementującej podany schemat (MySQL) 4. Przygotowanie aplikacji (desktop, GUI) do obsługi wybranych fragmentów bazy danych (niekoniecznie całą bazę): a. Obsługa danych (wyświetlanie) w postaci tabelarycznej (min. 2 formatki), b. Podstawowe operacje zmieniające dane: UPDATE, INSERT, DELETE, w tym edycja danych z wyborem wartości z listy (słownik) c. Obsługę dodatkowej funkcjonalności, innej niż z pkt. a, np. przeliczenie stanów magazynowych w bazie danych oddzielna formatka z polami i przyciskiem d. Raporty: po jednym przykładzie i. raport w układzie tabelarycznym ii. raport w układzie master-detail: np. grupa dziekańska oraz lista studentów, następna grupa dziekańska oraz lista studentów itd. e. propozycja technologii wykonania: i. JavaFX formatki ii. JasperReport raporty 5. Przygotowanie dokumentacji technicznej (~3-4 strony) zawierającej: a. Ogólny opis architektury i technologii wykonania aplikacji b. Szczegółowy opis niestandardowych elementów aplikacji c. Schemat logiczny i fizyczny (relacyjny) bazy danych 6. Przygotowanie dokumentacji użytkowej, wraz ze zrzutami ekranów. Uwagi dodatkowe: 1. Nie jest wymagane przygotowanie wersji standalone tzn. takiej, że przegrywamy aplikację na inny komputer i od razu działa aplikacja powinna być możliwa do uruchomienia/zaprezentowania w zaproponowanym przeze mnie środowisku programistycznym lub w innym przygotowanym przez studenta (jeżeli nie korzysta z

zaproponowanego). M. in. dopuszczalne jest ustawianie na sztywno ścieżek do katalogów i bibliotek. 2. Nie jest wymagana obsługa użytkowników i logowanie hasła mogą być wpisane do aplikacji. 3. Zaleca się aby wszystkie te wartości (ścieżki, hasła itp.) były dostępne w jednym miejscu (klasie, pliku konfiguracji itp.)

Zasady projektowania bazy danych podejście praktyczne Zasada podstawowa: żadna, przewidziana przez nas w schemacie (aplikacji) zmiana danych nie może (nie powinna) powodować zmiany w strukturze bazy danych. (Anty-)przykład: jeżeli przy towarach zastosujemy stawki VAT jako kolejne kolumny (typu logicznego) to pojawienie się kolejnej stawki spowoduje konieczność dołożenia kolumny => niedopuszczalne. Klucze główne, klucze obce 1. Nie używamy jako kluczy głównych atrybutów, które użytkownik może modyfikować. a. mogą zajmować dużo miejsca (kolumny tekstowe); b. jeżeli od tabeli z takim kluczem głównym zależą inne tabele z dużą liczbą rekordów, przy konieczności zmiany wartości klucza, konieczna jest modyfikacja innych tabel zależnych; 2. W praktyce stosujemy dodatkowe, sztucznie wygenerowane kolumny, a wartościach całkowitych (BIGINT, 64bity) do generowania wartości używamy specjalnych konstrukcji: a. sekwencje, generatory, b. kolumny z automatyczną numeracją: SERIAL, AUTOINCREMENT 3. Nazewnictwo: ID lub ID_tabela (np. ID_OSOBA) Nazewnictwo obiektów 1. PL czy EN zalecam jednak EN, zazwyczaj krótsze nazwy, w przypadku PL stosowanie ogonków nie zawsze możliwe, a nazwy bez ogonków mogą być niepoprawne (BŁĄD => BLAD). 2. Liczba pojedyncza vs liczba mnoga (PERSON vs PERSONS, OSOBA vs OSOBY) 3. W przypadku nazw PL: nazwy z mianowniku czy dopełniaczu (klucze obce): ID_OSOBA czy ID_OSOBY. 4. Przedrostki (prefix) dla różnych grup obiektów a. podział funkcjonalny obiektów: K_ - kadra, S_ - sprzedaż, T_ - dział techniczny itp.; b. podział ze względu na rodzaj obiektu: T_ - tablice, V_ - perspektywy, PL_ - procedury i funkcje, TG_ - wyzwalacze; Relacje Klasyczna relacja 1:n (jeden-do-wiele) Czytamy ją: każdemu towarowi odpowiada jedna kategoria każdej kategorii może odpowiadać wiele towarów Na pokazanym przykładzie, relacja w żadną ze stron nie jest wymagana (linia przerywana). Relacji wymaganej odpowiadałaby linia ciągła. Możliwe są inne sposoby wizualizacji relacji (notacje):

notacja IE inne kreski : Relacja wymagana (dla 1) Relacja niewymagana (dla 1) Klasyczna relacja n:m (wiele-do-wiele) Możliwe są inne rodzaje relacji, ale będziemy stosować tylko powyższe. W szczególności nie stosujemy: 1:1 rozbicie tablicy (relacji) na dwie składowe (stosuje się w wyjątkowych sytuacjach, np. ze względów optymalizacyjnych/wydajnościowych); 1:n gdzie relacja dla n jest wymagana; dowolny rodzaj relacji, gdzie relacja jest wymagana w obie strony fizycznie nie da się tego zrealizować Schematy Schemat logiczny W modelu tym określamy tabele (encje) oraz relacje pomiędzy nimi. Dla tabel określamy atrybuty: tylko takie, które nie wynikają z relacji oraz klucz główny (ID).

Model fizyczny (relacyjny) Typy kolumn określamy na etapie modelu logicznego. Dla relacji 1:n tworzona jest dodatkowa kolumna (VAT_ID) w tabeli (w zależności od tego, czy relacja jest wymagana, czy też nie będzie to kolumna not null bądź bez not null). Dla relacji n:m tworzona jest dodatkowa tabela, nazwana tak jak relacja (trzeba określić nazwę relacji w modelu logicznym). Uwagi UWAGA 1: w modelu logicznym możemy dodać do relacji dodatkowe atrybuty, ale żeby atrybuty te były należy włączyć ich pokazywanie. Oczywiście atrybuty takie będą zamienione w modelu fizycznym (relacyjnym) na konkretne kolumny. UWAGA 2: nie znam metody na pokazanie (w Oracle Data Modeller ze) nazw relacji; można co najwyżej pokazać (wyświetlić) nazwy w określoną stronę (NameOnSource, NameOnTarget). Podział danych na grupy/kategorie Klasycznie: 1:n, ale co się stanie jeżeli są towary, które pasują do obu? => Relacja n:m Struktura drzewiasta kategorii: KATEGORIA ID NAZWA ID_PARENT

trzeba pilnować aby nie powstały cykle (zapętlenia), większość baz danych nie ma obsługi takich struktur w standardzie (z wyjątkiem Oracle) Przykład: 1 2 3 4 5 UWAGA: cykl powstałby, gdyby np. dodać teraz do rekordu ID=1 rodzica ID_PARENT = 5. Jak wtedy wyświetlić wszystkie rekordy od 1 w dół? Tabela KATEGORIA ID ID_PARENT 1 <null> 2 1 3 1 4 3 5 3 Tablica pomocnicza dla KATEGORIA (struktura drzewiasta) gdy nie ma natywnej obsługi: ID_CHIL ID_PARENT D 1 1 2 2 2 1 3 3 3 1 4 4 4 3 4 1 5 5 5 3 5 1 Jak widać, dla wygody dodajemy także pary o takich samych wartościach ID (łatwiej jest wtedy wyszukać wszystkie elementy od np. 2 w dół => szukamy wszystkich, gdzie ID_PARENT = 2). Dodanie kolejnego elementu (np. 6 jako podrzędny do 5) polega: dodaniu elementy 6-6, dodaniu elementów 6-ID_PARENT, dla wszystkich par, gdzie ID_CHILD = 5, czyli (kolejno): 6-5, 6-3, 6-1 (ostatnie 3 rekordy w tabeli) UWAGA: każde rozszerzenie funkcjonalność (1:n => n:m lub dołożenie struktury drzewiastej lub oba łącznie) powoduje skomplikowanie struktury bazy danych a także konieczność rozbudowy interface u (a co za tym idzie bardziej skomplikowaną obsługę dla użytkownika końćowego).

Słowniki UWAGA: nie każda relacja 1:n (lub n:m) jest słownikiem. Tutaj zajmiemy się klasycznymi słownikami i kryteriami ich doboru. UWAGA: należy pamiętać, że wydzielenie słownika (utworzenie oddzielnej tabeli) powoduje m.in. konieczność stosowania złączeń tablic (join) przy wczytywaniu danych (lub odpowiedniej organizacji interface u użytkownika). Zasady wydzielania słowników: 1. liczba wartości dla danego atrybuty jest stałą, bez względu na liczbę rekordów; 2. wartości atrybutu są określone przez wymogi formalno-prawne (organizacyjne): stawki VAT 3. możliwość podziału danych ze względu na wartości atrybutu są dla nas istotne ze względów funkcjonalnych (np. podział danych na kategorie w raporcie). Oczywiście mogą się pojawiać takie relacje, w których dane przyrastają w obu tablicach: np. pracownicy i pobrane klucze (relacja 1:n każde pobranie przez dokładnie jednego pracownika). Generowanie fizycznej bazy danych Aby wygenerować fizyczną bazę danych, należy utworzyć skrypt DDL (Data Definition Language). W tym celu należy uruchomić opcję File Export DDL File. Mamy możliwość wygenerowania pliku SQL z komendami tworzącymi bazę danych. Zasadniczym (dla nas) problemem jest brak możliwości wygenerowania pliku właśćiwego dla bazy MySql. Najlepszym rozwiązaniem jest ustawienie jako bazy (w modelu relacyjnym) Oracle, a potem ręczna zamiana wybranych typów danych: 1. varchar2 varchar 2. numeric decimal Ewentualne inne ustawienia, takie jak ustawienie opcji autoincrement dla wybranych kluczy głównych, robimy już za pomocą narzędzi przeznaczonych do bezpośredniego zarządzania bazą danych. Przy generowaniu pliku DDL istnieje możliwość wygenerowania komend usuwających tabele, niemniej jednak jest problem z kolejnością usuwania, a MySql ma nieco inną składnię usuwania kaskadowego (czyli usuwania tabeli i wszystkich table z nią związanych). Wydaje się, że najprostszą opcją jest po prostu usunięcie całej bazy danych i utworzenie jej od nowa. Przy tworzeniu bazy danych, praktycznie w każdym systemie zarządzania, potrzebne jest określenie strony kodowej czyli jakie znaki można w niej przechowywać i w jaki sposób są określane np. sortowanie czy zamiana znaków małe/duże. Aktualnie jedyną rozsądną opcją wydaje się wybranie UTF8, w przypadku MySql są to: utf8_general_ci lub utf8_polish_ci.