Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych.

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Projektowanie bazy danych
Skrypty, procedury przechowywane i wyzwalane
SQL – Strukturalny język zapytań
MS Access 2000 Relacje Piotr Górczyński 2005.
BD-LAB4 Wojciech Pieprzyca
Podejście relacyjne Podejście relacyjne opiera się na wykorzystaniu do przedstawiania danych modelu relacyjnego i zarządzania nimi matematycznego modelu.
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
ZSBD PL/SQL CZĘŚĆ 3 Wykład 5 Prowadzący: dr Paweł Drozda.
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Wykład 8 Wojciech Pieprzyca
Projektowanie relacyjnych baz danych
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Język SQL (Structured Query Language) DDL (Data Definition Language)
Bezpieczeństwo baz danych
Inżynieria Oprogramowania
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Bazy danych.
Administracja serwerem bazy danych Oracle 11g Zarządzanie obiekami bazy danych Wykład nr 4 Michał Szkopiński.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
SQL – Structured Query Language (1)
SQL - Structured Query Language
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Wybrane zagadnienia relacyjnych baz danych
Komendy SQL do pracy z tabelami i bazami
PL/SQL – dalsza wędrówka
SQL – część II.
Projektowanie bazy danych
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
Systemy Baz Danych Wykład III
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Konfiguracja HIBERnate, postgresQL + przykładowa aplikacja
100% Generacji Oracle Forms w Designer 6i Tomasz Kazimierski Principle Consultant.
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
Oracle Data Modeler (4.1) Tworzenie modelu danych – specyfikacja wymagań informacyjnych (na dane) Tworzenie modelu procesów – specyfikacja wymagań funkcyjnych.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Modelowanie Danych (ERD) – część 1 (Wspomaganie Modelowania danych)
Prototypowanie w ORACLE DESIGNER Transformacja Modelu danych.
Prototypowanie w ORACLE DESIGNER Oracle Forms Design.
Prototypowanie w ORACLE DESIGNER Projektowanie Modułów.
Modelowanie Procesów Biznesowych. Dlaczego modelujemy procesy biznesowe? Żeby je zrozumieć Żeby je wizualizować - zobrazować.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Oracle Data Modeler ( ) Wiele opcji dostępnych poprzez prawy przycisk myszy zarówno na elementach nawigatora obiektów (z lewej strony), jak i na.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
1 Definicja danych: Do utworzenia tabeli służy instrukcja CREATE TABLE, wymagająca podania nazwy tworzonej tabeli, nazwy każdej kolumny w tej tabeli, typu.
Temat: Tworzenie bazy danych
Transformacja modelu EER do modelu relacyjnego
Strukturalny język zapytań SQL - historia
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Technologie Informacyjne Bazy danych
Zapis prezentacji:

Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych

Browser: Hollywood X Action Edit Block Filed+ Customers: Design Editor File Edit View Navigator Utilities Messages Tools Run Options Window Help Non-Oracle Zintegrowanie środowisko do projektowania i generowania.

NavigatorNavigator Server ModelModulesDB AdminDistribution APPLICATION[1] Relational Table Definitions View Definitions Snapshot Definitions Sequence Definitions Cluster Definitions PL/SQL Definitions Domains Data Diagram Navigator - Server Model Server ModelModulesDB AdminDistribution Projektowanie i budowa bazy danych Projektowanie i budowa aplikacji

Design Editor - SPEEDY[1] Navigator - Server Model Table Definitions CUSTOMERS ORDERS Tworzymy diagram przy użyciu drag and drop – (przeciągając) DSD1 EMPLOYEES DEPARTMENTS LASTNAME FIRSTNAME EMPNO EMPLOYEES_LOCATION EMPLOYEES_DEPTNAME LOCATION DEPTNAME DEPARTMENTS_EMPNO EMP_DEPT_FK ODR_CTR_FK CUSTOMERS ORDERS

Przewodniki i Kreatory Przewodniki wspomagają przeprowadzenie całego procesu (Design Editor -> Tools). Przewodniki udostępniają zarówno kreatory jak i okno właściwości - w miarę potrzeby. Przewodniki wspomagają przeprowadzenie całego procesu (Design Editor -> Tools). Przewodniki udostępniają zarówno kreatory jak i okno właściwości - w miarę potrzeby. Server Model Guide – pozwala utworzyć model bazy danych Module Application Guide – pozwala zaprojektować oraz wygenerować prototyp aplikacji klienckiej Database Administration Guide – pomaga w definiowaniu fizycznych aspektów bazy danych jak definicje przestrzeni tabel czy wymagania bezpieczeństwa. Wizardy działają krok po kroku.Wizardy działają krok po kroku.

Możliwości Przewodnika Server Model Guide Domains TablesSequencesAdvancedPL/SQL Triggers IndexesConstraints Views Snapshots Clusters Primary Keys Foreign Keys Unique Keys Check Constraints

Dialog lub właściwości Najczęściej używane własności Najczęściej używane własności Wszystkie własności Używając dialog boxUżywając palette Wyświetl właściwości

Tworzenie obiektów Drag and drop Narzędzia do tworzenia diagramu W nawigatorze: Przewodniki i kreatory Drag and drop Narzędzia do tworzenia diagramu W nawigatorze: Przewodniki i kreatory Edit  Create or Edit  Create or – Używamy dialog box lub okien właściwości

Diagram logicznego modelu bazy danych ITM_ODR_FK Tabele Foreign key ITEMS *QUANTITY oDISCOUNT ORDERS # *ID oDELIVERED_TIME Primary key Kolumny

PRODUCTS DESCRIPTION DISCOUNT_DAY PRODCUT_TYPE ID PHOTO [O[[oo[O[[oo Czytanie diagramu Klucz główny Opcjonalność Wartości dozwolone Typy danych Sekwencje Dziedziny Przyciski: Wyzwalacze indeksy synonimy klucz główny obcy klucz gł. ograniczenia check Klucze obce Przyciski: Wyzwalacze indeksy synonimy klucz główny obcy klucz gł. ograniczenia check Klucze obce

CUSTOMERS LAST_NAME FIRST_NAME Edycja tabeli Edit Table CUSTOMERS Table name Table alias Display title New column prefix Okno dialogowe własności Name Okno dialogowe pokazuje podstawowe własności

Tworzenie i edycja kolumn Edit Table EMPLOYEES Column name AddDeleteValid Values Domain Datatype Length Default value Is column optional? YesNo Columns Edytuj podstawowe własności Dodaj kolumnę Usuń kolumnę

Definiowanie ograniczeń check dla kolumn · explicite, poprzez dodanie w definicji warunku we własności Where/Validation Condition - specyfikujemy warunek SQL lub funkcję PL/SQL (nie można w tym samym ograniczeniu ustawić warunku oraz funkcji), · implicite, przez definicję dozwolonych wartości dla kolumny

Prosta kontrola Tabel Column Properties Derivation AutoGen Type Created by Date Created Date Modified Modified By LEE TROTT NG 23-MAR MAR-1998 WHO WHEN Date Created Created byINSERT

Ustawianie własności domyślnych Column Properties Definition Default ValuePIZZA INSERT 101PIZZA Product TypeID

Klucze sztuczne Identyfikują rekord jednoznacznie Identyfikują rekord jednoznacznie Nie mają znaczenia biznesowego Nie mają znaczenia biznesowego Dowolna etykieta Dowolna etykieta Generowanie wartości Generowanie wartości Identyfikują rekord jednoznacznie Identyfikują rekord jednoznacznie Nie mają znaczenia biznesowego Nie mają znaczenia biznesowego Dowolna etykieta Dowolna etykieta Generowanie wartości Generowanie wartości SMITH LEE BURNS P F F

Jeśli chcemy by w tabeli jednoznaczny identyfikator zawierał kolejne sekwencyjne wartości kreowane przez aplikację (autonumer) - możemy wybrać sekwencję generowaną w kodzie SQL. Dane do tworzenia sekwencji są generowane do.tab file oraz the.ccs file Generowanie sekwencji w ORACLE -

CG_CODE_CONTROLS PROMPT Creating Table 'CG_CODE_CONTROLS' CREATE TABLE CG_CODE_CONTROLS (CC_DOMAIN VARCHAR2(30) NOT NULL,CC_COMMENT VARCHAR2(240),CC_NEXT_VALUE NUMBER(15) NOT NULL,CC_INCREMENT NUMBER(15) DEFAULT 1 ) / PROMPT Creating Table 'CG_CODE_CONTROLS' CREATE TABLE CG_CODE_CONTROLS (CC_DOMAIN VARCHAR2(30) NOT NULL,CC_COMMENT VARCHAR2(240),CC_NEXT_VALUE NUMBER(15) NOT NULL,CC_INCREMENT NUMBER(15) DEFAULT 1 ) /

Generowanie pierwszej wartości PROMPT Creating Code Control Sequence 'MYCCS' INSERT INTO CG_CODE_CONTROLS (CC_DOMAIN, CC_NEXT_VALUE, CC_INCREMENT, CC_COMMENT) VALUES ('MYCCS', 1, NULL, NULL) / COMMIT / PROMPT Creating Code Control Sequence 'MYCCS' INSERT INTO CG_CODE_CONTROLS (CC_DOMAIN, CC_NEXT_VALUE, CC_INCREMENT, CC_COMMENT) VALUES ('MYCCS', 1, NULL, NULL) / COMMIT /

Generowanie sekwencji w Oracle Sekwencja Oracle generuje niepowtarzające się numery dla swoich kolumn nawet gdy wiersze pojawiają się jednocześnie ale numery nie będą zachowywać kolejności jeśli transakcje będą wycofywane. Sekwencje Oracle sequence są generowane do pliku.sqs Sekwencja Oracle generuje niepowtarzające się numery dla swoich kolumn nawet gdy wiersze pojawiają się jednocześnie ale numery nie będą zachowywać kolejności jeśli transakcje będą wycofywane. Sekwencje Oracle sequence są generowane do pliku.sqs

Przykład – Sekwencja Oracle PROMPT Creating Sequence 'MYSEQ' CREATE SEQUENCE MYSEQ NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE / PROMPT Creating Sequence 'MYSEQ' CREATE SEQUENCE MYSEQ NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE /

Transformacja Bazy Danych Ustawienia domyślne

Ustawienia: Box "Create Surrogate Keys for all new tables" - zaznaczony PK constraint 3 sequence PK column SEQUENCE property set

Przygotowanie do generowania Jakość wykonania - opisana w raporcie Jakość wykonania - opisana w raporcie Określamy bazę docelową dla : Określamy bazę docelową dla : Obsługi typów obiektów Obsługi typów obiektów Ograniczeń dostępu Ograniczeń dostępu Ustawienia w Designer/2000: Ustawienia w Designer/2000: Własność Complete? - domyślnie "yes" Własność Complete? - domyślnie "yes" Wszystkie zasoby i powiązanie z nimi obiekty – wybrane (zaznaczone) Wszystkie zasoby i powiązanie z nimi obiekty – wybrane (zaznaczone) Jakość wykonania - opisana w raporcie Jakość wykonania - opisana w raporcie Określamy bazę docelową dla : Określamy bazę docelową dla : Obsługi typów obiektów Obsługi typów obiektów Ograniczeń dostępu Ograniczeń dostępu Ustawienia w Designer/2000: Ustawienia w Designer/2000: Własność Complete? - domyślnie "yes" Własność Complete? - domyślnie "yes" Wszystkie zasoby i powiązanie z nimi obiekty – wybrane (zaznaczone) Wszystkie zasoby i powiązanie z nimi obiekty – wybrane (zaznaczone)

Rezultaty Generate ->Generate Database from the Server Model Tabele CUSTOMERS LAST_NAME FIRST_NAME Związki 3 Sekwencje Indeksy

Table API zabezpieczają dane Table API Procedury w PL/SQL pozwalające na walidację danych przed wykonaniem instrukcji insert, update, i delete Zbiór procedur Wykonywane zanim wystąpi zdarzenie Packages Triggers Generate -> Generate Table API

Table API API jest poziomem kodu PL/SQL pomiędzy aplikacją klienta bazą danych Oracle to kod będący interfejsem wywoływanym przez aplikacje klienta przed wykonaniem instrukcji insert, update i delete operacji ma tabelach w bazie danych Wszystkie operacja manipulacji na danych są sprawdzane pod względem poprawności (Walidacja) bezpośrednio w tym samym kodzie. Table API zapewnia integralność danych pozwalając zapisywać reguły biznesowe na serwerze Kod przeprowadzający walidację jest umieszczany również w aplikacji klienta. API jest poziomem kodu PL/SQL pomiędzy aplikacją klienta bazą danych Oracle to kod będący interfejsem wywoływanym przez aplikacje klienta przed wykonaniem instrukcji insert, update i delete operacji ma tabelach w bazie danych Wszystkie operacja manipulacji na danych są sprawdzane pod względem poprawności (Walidacja) bezpośrednio w tym samym kodzie. Table API zapewnia integralność danych pozwalając zapisywać reguły biznesowe na serwerze Kod przeprowadzający walidację jest umieszczany również w aplikacji klienta.

Table API określają logikę struny Serwera Powodują że klient może być „cienki” Powodują że klient może być „cienki” Minimalizują nakłady na konserwację - cała logika biznesowa w jednym miejscu Minimalizują nakłady na konserwację - cała logika biznesowa w jednym miejscu Powodują że klient może być „cienki” Powodują że klient może być „cienki” Minimalizują nakłady na konserwację - cała logika biznesowa w jednym miejscu Minimalizują nakłady na konserwację - cała logika biznesowa w jednym miejscu Table API Tables Aplikacje Klienta

Przykłady zadań API INSERT INTO ORDERS ORDERS ID DISCOUNT... Table API - Generowanie klucza głównego - Określenie wartości kolumn - Dostarczają wartości delault’owych - Walidacja danych...

Aplikacje i API Table API is opcjonalna Table API is opcjonalna Table API są wymagane do przeprowadzenia procesu aplikacje Form Builder aplikacje aplikacje WebServer

DECLARE -- PL/SQL Records to pass values to the Insert procedure new_employee cg$emp.cg$row_type; new_emp_inds cg$emp.cg$ind_type; BEGIN -- Set the initial values for the new employee new_employee.empno := 1490; new_employee.ename := 'SCOTT'; new_employee.job := 'MANAGER'; -- Set the indicator type for the above data new_emp_inds.empno := TRUE; new_emp_inds.ename := TRUE; new_emp_inds.job := TRUE; -- Call the Table API Insert procedure cg$emp.ins(new_employee,new_emp_inds); EXCEPTION ….. END; DECLARE -- PL/SQL Records to pass values to the Insert procedure new_employee cg$emp.cg$row_type; new_emp_inds cg$emp.cg$ind_type; BEGIN -- Set the initial values for the new employee new_employee.empno := 1490; new_employee.ename := 'SCOTT'; new_employee.job := 'MANAGER'; -- Set the indicator type for the above data new_emp_inds.empno := TRUE; new_emp_inds.ename := TRUE; new_emp_inds.job := TRUE; -- Call the Table API Insert procedure cg$emp.ins(new_employee,new_emp_inds); EXCEPTION ….. END; Przykład: Wywołanie procedury Insert w Table API cg$ind_type - PL/SQL record containing boolean indicators showing which column values have been set.

Zaawansowane Table API wyzwalacz logiczny (*) Zdarzenia występujące przed i po wstawieniu wiersza w tabeli to insert, update, delete lub locke: Kod, który na zostać wykonany przed wystąpieniem zdarzenia może odczytać zawartości tabel przed ich modyfikacją (zanim jeszcze zostaną zmienione). Kod, który na zostać wykonany po wystąpieniu zdarzenia może modyfikować zawartość tabel po modyfikacji - kiedy już operacja została wykonana- wiersze zostały wstawione zmienione lub usunięte (*) W Design Editor: Relational Table Definitions -> -> TableAPI/Trigger Logic Zdarzenia występujące przed i po wstawieniu wiersza w tabeli to insert, update, delete lub locke: Kod, który na zostać wykonany przed wystąpieniem zdarzenia może odczytać zawartości tabel przed ich modyfikacją (zanim jeszcze zostaną zmienione). Kod, który na zostać wykonany po wystąpieniu zdarzenia może modyfikować zawartość tabel po modyfikacji - kiedy już operacja została wykonana- wiersze zostały wstawione zmienione lub usunięte (*) W Design Editor: Relational Table Definitions -> -> TableAPI/Trigger Logic

PROCEDURE ins(cg$rec IN OUT cg$row_type, cg$ind IN OUT cg$ind_type) IS -- Constant default values BEGIN -- Application_logic Pre-Insert -- Auto-generated and uppercased columns INSERT INTO TAB(NUM) VALUES (cg$rec.NUM); -- Application logic Post-Insert EXCEPTION WHEN END ins; PROCEDURE ins(cg$rec IN OUT cg$row_type, cg$ind IN OUT cg$ind_type) IS -- Constant default values BEGIN -- Application_logic Pre-Insert -- Auto-generated and uppercased columns INSERT INTO TAB(NUM) VALUES (cg$rec.NUM); -- Application logic Post-Insert EXCEPTION WHEN END ins; Schemat procedury insert

CREATE OR REPLACE TRIGGER cg$BIR_TAB BEFORE INSERT ON TAB FOR EACH ROW DECLARE cg$rec cg$TAB.cg$row_type; BEGIN -- Application_logic Pre-Before.Insert.Row cg$rec.NUM := :new.NUM; cg$TAB.validate(cg$rec); -- :new.NUM := cg$rec.NUM; -- Application_logic Post-Before.Insert.Row END; CREATE OR REPLACE TRIGGER cg$BIR_TAB BEFORE INSERT ON TAB FOR EACH ROW DECLARE cg$rec cg$TAB.cg$row_type; BEGIN -- Application_logic Pre-Before.Insert.Row cg$rec.NUM := :new.NUM; cg$TAB.validate(cg$rec); -- :new.NUM := cg$rec.NUM; -- Application_logic Post-Before.Insert.Row END; Schemat wyzwalacza before-insert

Reference code tables A reference code table is a database table containing values, abbreviations and meanings of allowable values defined for columns and associated domains. The reference code table is generated to provide validation for module items that are based on columns or domains that have allowable values. This table stores the allowable values defined against the column and domain definitions in the Repository. Wybrać: Generate -> Generate Database from Server Model -> Options -> Automatic Creation of Ref_Codes lub Generate -> Generate Reference Code Tables A reference code table is a database table containing values, abbreviations and meanings of allowable values defined for columns and associated domains. The reference code table is generated to provide validation for module items that are based on columns or domains that have allowable values. This table stores the allowable values defined against the column and domain definitions in the Repository. Wybrać: Generate -> Generate Database from Server Model -> Options -> Automatic Creation of Ref_Codes lub Generate -> Generate Reference Code Tables

Badanie poprawności modelu projektowego Badanie zgodności nazewnictwa definicji Tabel i kolumn Tabel i kolumn Sekwencji Sekwencji Sprawdzanie integralności danych Klucz główny i obcy Klucz główny i obcy Ujednolicenie formatu i walidacji Dziedziny Dziedziny Badanie zgodności nazewnictwa definicji Tabel i kolumn Tabel i kolumn Sekwencji Sekwencji Sprawdzanie integralności danych Klucz główny i obcy Klucz główny i obcy Ujednolicenie formatu i walidacji Dziedziny Dziedziny

Wykonanie raportu z badania poprawności Błędne obiekty Bazy danych Definicje Tabel Definicje Kolumn Definicje dziedzin Błędne obiekty Bazy danych Definicje Tabel Definicje Kolumn Definicje dziedzin