Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych.

Podobne prezentacje


Prezentacja na temat: "Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych."— Zapis prezentacji:

1 Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych

2 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.

3 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

4 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

5 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.

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

7 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

8 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

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

10 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

11 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

12 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ę

13 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

14 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

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

16 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

17 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 -

18 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 ) /

19 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 /

20 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

21 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 /

22 Transformacja Bazy Danych Ustawienia domyślne

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

24 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)

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

26 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

27 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.

28 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

29 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...

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

31 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.

32 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

33 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

34 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

35 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

36 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

37 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


Pobierz ppt "Prototypowanie w ORACLE DESIGNER Projektowanie Bazy Danych."

Podobne prezentacje


Reklamy Google