Artykuł ten opisuje, jak stworzyć krok po kroku przykładową bazę danych (ver.1) dla ORACLE. Będzie ona wykorzystywana jako podstawa do prezentacji różnych rozwiązań dla jboss seam.
OS
|
Linux/XP/VISTA
|
DB
|
min. Oracle 10g Express Edition (free)
|
SQL Tools
|
np: SQL Developer (free)
|
Czyli w tym miejscu powiniśmy wiedzieć, co będziemy chcieli zamodelować (tabele, relacje). Załóżmy, że chcemy stworzyć prosty system do rejestracji naszych klientów oraz ich adresów. Diagram związków encji dla naszego przykładu został umieszczony na rys.1:
Rys. 1 Diagdam związków encji
Rys.1 EA - Diagram związków encji
Na rysunku możemy wyróżnic encję EA_CUSTOMER, która będzie zawierał informacje o klientach, encję EA_ADRESS, która będzie zawierała informacje o adresach przypisanych do klienta oraz EA_TYPE jako tabelę satelitarną zawierającą typ kilenta (np: dostawca, konkurencja).
Dla powyższego projektu przygotowujemy skrypt instalacyjny, który będzie dodatkowo uzupełniony o elementy niewidoczne na diagramie takie jak: index, sequence.
Skrypt instalacyjny ea_create
CREATE TABLE EA_ADDRESS
(
ADRS_ID NUMBER NOT NULL ,
ADDRESS VARCHAR2 (100) NOT NULL ,
CTMR_ID NUMBER NOT NULL ,
APARTMENT_NUMBER VARCHAR2 (5) NOT NULL ,
HOUSE_NUMBER VARCHAR2 (5) ,
PLACE VARCHAR2 (60) ,
ZIP VARCHAR2 (6) ,
DESCRIPTION VARCHAR2 (200)
)
;
CREATE INDEX EA_ADDR_CTMR_FK_I ON EA_ADDRESS
(
CTMR_ID ASC
)
;
ALTER TABLE EA_ADDRESS
ADD CONSTRAINT EA_ADRS_PK PRIMARY KEY ( ADRS_ID ) ;
CREATE TABLE EA_CUSTOMER
(
CTMR_ID NUMBER NOT NULL ,
NAME VARCHAR2 (100) NOT NULL ,
NIP VARCHAR2 (10) ,
REGON VARCHAR2 (9) ,
DESCRIPTION VARCHAR2 (200) ,
TYPE_ID NUMBER
)
;
CREATE INDEX EA_CTMR_TYPE_FK_I ON EA_CUSTOMER
(
TYPE_ID ASC
)
;
ALTER TABLE EA_CUSTOMER
ADD CONSTRAINT EA_CTMR_PK PRIMARY KEY ( CTMR_ID )
;
CREATE TABLE EA_TYPE
(
TYPE_ID NUMBER NOT NULL ,
NAME VARCHAR2 (50) NOT NULL ,
DESCRIPTION VARCHAR2 (200)
)
;
ALTER TABLE EA_TYPE
ADD CONSTRAINT EA_TYPE_PK PRIMARY KEY ( TYPE_ID )
;
ALTER TABLE EA_ADDRESS
ADD CONSTRAINT EA_CTMR_ADRS_FK FOREIGN KEY
(
CTMR_ID
)
REFERENCES EA_CUSTOMER
(
CTMR_ID
)
;
ALTER TABLE EA_CUSTOMER
ADD CONSTRAINT EA_CTMR_TYPE_FK FOREIGN KEY
(
TYPE_ID
)
REFERENCES EA_TYPE
(
TYPE_ID
)
;
CREATE SEQUENCE EA_ADRS_SEQ1
INCREMENT BY 1
START WITH 200
MAXVALUE 999999999999999999999999999
MINVALUE 1
CACHE 20
;
CREATE SEQUENCE EA_CTMR_SEQ1
INCREMENT BY 1
START WITH 200
MAXVALUE 999999999999999999999999999
MINVALUE 1
CACHE 20
;
Zakładam w tym miejscu, że mamy już zainstalowaną bazę danych oraz dodane konto użytkownika. Następnie przy pomocy programu SQL Developer (lub inny preferowany przez czytelnika) wykonujemy skrypt ea_create.
Wypełniamy bazę testowymi danymi