Oracle Data Modeler (4.02.840) Wiele opcji dostępnych poprzez prawy przycisk myszy zarówno na elementach nawigatora obiektów (z lewej strony), jak i na samych diagramach” na ich elementach jak i na obszarze diagramu (pane).
Tworzenie systemu informacyjnego Aplikacja Wymagania biznesowe Procesy Informacje Analiza Projektowanie Browser: http:// Hollywood X Action Edit Block Filed + Customers: Budowa Baza danych
Dlaczego tworzymy modele? Aby zrozumieć Aby zwizualizować „A picture is worth a thousand words!”
Process Model -> Data Flow Diagram Diagram przepływu danych może służyć do modelowania procesów w firmie jak również do specyfikowania wymagań funkcyjnych dla systemu informacyjnego, który ma zostać zbudowany. Proces bazowy diagramu – składa się z wewnętrznych procesów, przepływów (flows), magazynów danych (information store) i eksternali (external agents) – inicjujących lub kończących proces bazowy. Z kolei wewnętrzny proces może być nierozkładalny albo można zbudować jego własny diagram z nim jako procesem bazowym.
Model danych Encje i perspektywy (views) tworzy się z paska narzędzi. Rozpoczęcie pracy: Wczytanie gotowego modelu: File->Open Logical Model->Show Dostępne notacje: Standardowa w Oracle notacja Barkera (zastosowana na rysunku). Notacja Bachmana Notacja Information Engineering Ustawienie View->Logical Diagram Notation
Tworzenie dziedziny atrybutu Tools->Domains Administration
Dziedziczenie - inheritance Tworzymy obie encje. We właściwościach podencji podajemy nazwę nadencji jako Super Type
Łuk Abu utworzyć łuk: przy wciśniętym klawiszu SHIFT naciskamy encję Order, kolejno oba związki, na koniec wybieramy z paska narzędzi New Arc
Tworzenie perspektywy (view) ikonką z paska narzędzi
Podmodele (subviews) modelu logicznego Jest jeden pełny model logiczny oraz jego podzbiory zgrupowane w podmodele (subviews) (SubViews->New Subview + na ekranie prawy przycisk myszy->Objects->Add objects). The logical model combines two kinds of data: One logical diagram, plus an optional set of subviews and auxiliary displays, each associated with the appropriate diagram or subview Logical model object definitions Subviews are considered as independent diagrams of the logical model, created to represent different subject areas. The logical model enables you to create and manage object definitions for entities, logical views, attributes, unique identifiers, inheritances, relations, and arcs. All logical model objects are displayed in the object browser tree. Dodawanie obiektów do logical-subview: na ekranie prawy przycisk myszy->Objects->Add objects Tworzenie dziedzin z menu Tools->Domains Administration
Engineering: Model logiczny -> relacyjny Przy użyciu ikony Engineer to Relational Model W modelu relacyjnym jest możliwość określenia schematów i przydzielenia do nich tabel: Schemas->New Schema
Właściwości kolumn Dotyczące wartości składowanych w bazie danych
Właściwości kolumn - prezentacyjne Domyślne właściwości prezentacyjne dla wszystkich modułów, które używają kolumnę Ustalają standardowe spójne standardy prezentacji danych Oszczędzają czas tworzenia aplikacji Nie mają wpływu na implementację kolumny w bazie danych
Generowanie jednoznacznych wartości w kolumnie
DDL ORACLE:: SQL SERVER:: CREATE TABLE Dept ( TABLE Dept Deptno INTEGER NOT NULL , Dname VARCHAR2 (20) NOT NULL , Loc MDSYS.SDO_GEOMETRY ) LOGGING ; ALTER TABLE Dept ADD CONSTRAINT Dept_PK PRIMARY KEY ( Deptno ) ; CREATE SEQUENCE Numery START WITH 1 NOCACHE ORDER ; CREATE OR REPLACE TRIGGER D_Deptno_TRG BEFORE INSERT ON Dept FOR EACH ROW WHEN (NEW.Deptno IS NULL) BEGIN :NEW.Deptno := Numery.NEXTVAL; END; / SQL SERVER:: TABLE Dept ( Deptno INTEGER NOT NULL IDENTITY NOT FOR REPLICATION , Dname VARCHAR (20) NOT NULL , Loc SDO_GEOMETRY , CONSTRAINT Dept_PK PRIMARY KEY CLUSTERED (Deptno) ) GO
Implementacja łuku w Oracle CREATE TABLE "order" ( order_id INTEGER NOT NULL , Firma_Id_firmy INTEGER , Osoba_Id_osoby INTEGER ) ; ALTER TABLE "order" ADD CONSTRAINT FKArc_1 CHECK ( ( (Firma_Id_firmy IS NOT NULL) AND (Osoba_Id_osoby IS NULL) ) OR ( (Osoba_Id_osoby IS NOT NULL) AND (Firma_Id_firmy IS NULL) ) OR ( (Firma_Id_firmy IS NULL) AND (Osoba_Id_osoby IS NULL) ) ) ; ALTER TABLE "order" ADD CONSTRAINT order_PK PRIMARY KEY ( order_id ) ; ALTER TABLE "order" ADD CONSTRAINT order_Firma_FK FOREIGN KEY ( Firma_Id_firmy ) REFERENCES Firma ( Id_firmy ) ; ALTER TABLE "order" ADD CONSTRAINT order_Osoba_FK FOREIGN KEY ( Osoba_Id_osoby ) REFERENCES Osoba ( Id_osoby ) ; W SQL Server kod jest prawie identyczny
Implementacja hierarchii, klucza-surogatu i dziedziny Dziedzina określona dla kolumny Job
ADD CONSTRAINT Person_PK PRIMARY KEY ( Person_ID ) ; -- klucz surogat CREATE TABLE Person(Person_ID NUMBER NOT NULL , Name VARCHAR2 (50) NOT NULL ) ; ALTER TABLE Person ADD CONSTRAINT Person_PK PRIMARY KEY ( Person_ID ) ; -- klucz surogat CREATE TABLE Emp(Person_Person_ID NUMBER NOT NULL , Job VARCHAR2 NOT NULL) ; ALTER TABLE Emp ADD CHECK ( Job IN ('Clerk', 'Director', 'Finance', 'Salesman')) ; -- dziedzina ALTER TABLE Emp ADD CONSTRAINT Emp_PK PRIMARY KEY ( Person_Person_ID ) ; ALTER TABLE Emp ADD CONSTRAINT FK_ASS_1 FOREIGN KEY ( Person_Person_ID ) REFERENCES Person ( Person_ID ) ; CREATE TABLE Stud(Person_Person_ID NUMBER NOT NULL, ssn INTEGER NOT NULL) ; ALTER TABLE Stud ADD CONSTRAINT Stud_PK PRIMARY KEY ( Person_Person_ID ) ; ALTER TABLE Stud ADD CONSTRAINT FK_ASS_2 FOREIGN KEY ( Person_Person_ID ) REFERENCES Person ( Person_ID ) ; CREATE SEQUENCE Person_Person_ID_SEQ START WITH 1 NOCACHE ORDER ; CREATE OR REPLACE TRIGGER Person_Person_ID_TRG BEFORE INSERT ON Person FOR EACH ROW WHEN (NEW.Person_ID IS NULL) BEGIN :NEW.Person_ID := Person_Person_ID_SEQ.NEXTVAL; END; Sekwencja tworzona automatycznie dla klucza surogatu
Model fizyczny – ustalenie dostawcy systemu bazodanowego oraz wersji np. Oracle Database 11g: Physical Models->New
View -> DDL File Editor CREATE TABLE Dept (Deptno INTEGER NOT NULL , Dname VARCHAR2 (10) NOT NULL , Loc VARCHAR2 (30) ) ; ALTER TABLE Dept ADD CONSTRAINT Dept_PK PRIMARY KEY( Deptno); CREATE TABLE Emp (Empno INTEGER NOT NULL , Ename VARCHAR2 (50) NOT NULL , Sal NUMBER (10,2) , Deptno INTEGER ) ; ALTER TABLE Emp ADD CONSTRAINT Emp_PK PRIMARY KEY(Empno); ALTER TABLE Emp ADD CONSTRAINT Emp_Dept_FK FOREIGN KEY ( Deptno ) REFERENCES Dept ( Deptno ) ;
Powiązanie procesów z encjami i atrybutami Budujemy diagram procesów (procesy, eksternale, magazyny danych, przepływy). Dla każdego przepływu związanego z magazynem danych możemy podać nazwy struktur informacyjnych (nowych lub już zdefiniowanych). Dla każdej struktury informacyjnej określamy atrybuty wchodzące w jej skład. Encje i atrybuty pojawiają się we właściwościach procesów. Uwaga: Zielony krzyżyk oznacza możliwość wstawienia, jego brak - tylko odczytywanie gdzie indziej określanych informacji. 2 3 4 1 W Designerze można było w oparciu o te informacje wygenerować prototyp aplikacji.
Macierz CRUD dla procesu WpiszPracownika
Business Information Określając właściwości obiektów można w nich zamieszczać informacje biznesowe jak dokumenty, które system zbiorczo gromadzi w węźle „Business Information”.
Zadanie semestralne Podać definicję problemu Używając Data Modelera zbudować logiczny model danych obejmujący również perspektywy oraz jego podział na co najmniej dwa podmodele. Używając Data Modelera wygenerować relacyjny model danych, fizyczny model danych oraz skrypt DDL. Wykonać skrypt DDL na przyjętym serwerze bazy danych. Używając Data Modelera zbudować jeden diagram DFD z co najmniej dwoma procesami. Podać macierze CRUD dla zidentyfikowanych procesów.