Exercício: Modelagem com Power*Architect e conexão com HSQLDB
Objetivo
O objetivo deste exercício é exercitar o processo de projeto de um banco de dados, usando uma ferramenta de modelagem (Power*Architect) com recurso para conexão com diferentes SGBDs.
Preparação
Conecte-se ao servidor linux03, que já possui as seguintes ferramentas instaladas:
- Ferramenta de modelagem: Power*Architect
- Gerenciador de banco de dados: HSQLDB
Exercícios
- Crie um diretório de trabalho e vá até ele:
mkdir workdir cd workdir
- Execute o HSQLDB e deixe-o rodando em background:
java -cp /opt/hsqldb/lib/hsqldb.jar org.hsqldb.Server \ -database.0 file:mydb -dbname.0 dblogin -port 9050&
ATENÇÃO: Substitua o nome "dblogin" pelo seu nome de usuário NCC. Se a porta 9050 já estiver em uso (Address already in use), troque o número (9051, 9052, ...). - Execute a ferramenta de modelagem:
java -jar /opt/architect-0.9.11/architect.jar&
- Conecte a ferramenta ao SGBD:
- Connections -> Add Source Connection -> New Connection
- Connection Name: HSQLDB
- Database Type: HSQLDB
- Connect Options:
- Type: hsql
- Filename: //localhost:9050/dblogin
- Username: sa ATENÇÃO: Ajuste o Filename ("dblogin" e número de porta) de acordo com o comando usado para executar o HSQLDB.
- Crie duas entidades (ícone "New Table"):
- Departamento:
- Id: integer, chave primária
- Nome: varchar
- Funcionario:
- Id: inteiro, chave primária
- Depto: inteiro
- Nome: varchar
- Departamento:
- Crie um relacionamento não-identificador entre essas entidades (ícone "New Non-Identifying Relationship). Clique primeiro em Departamento e depois em Funcionario.
- Gere o esquema lógico do banco de dados:
- Tools -> Forward Engineering
- Create in: HSQLDB
- Generate DDl for Database Type: HSQLDB
- Schema: public
- OK
- Execute
- Execute a interface de gerenciamento do HSQLDB:
java -cp /opt/hsqldb/lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing&
- Crie uma conexão com o banco de dados:
- Type: HSQL Database Engine Server
- Driver: org.hsqldb.jdbcDriver
- URL: jdbc:hsqldb:hsql://localhost:9050/dblogin
- User: sa
- Observe as tabelas criadas: PUBLIC.FUNCIONARIO e PUBLIC.DEPARTAMENTO
- Insira dados no banco:
- Command -> INSERT -> complete o comando conforme abaixo -> Execute SQL
INSERT INTO departamento VALUES (1,'Vendas'); INSERT INTO departamento VALUES (2,'Compras'); INSERT INTO departamento VALUES (3,'RH');
- Command -> INSERT -> complete o comando conforme abaixo -> Execute SQL
- Visualize os dados da tabela Departamento:
- Command -> SELECT -> complete o comando conforme abaixo -> Execute SQL
SELECT * FROM departamento
- Command -> SELECT -> complete o comando conforme abaixo -> Execute SQL
- Teste os recursos do SGBD para manter a integridade dos dados, inserindo um registro com chave repetida (isso vai gerar um erro):
INSERT INTO departamento VALUES (1,'Financas');
Material
- Power*Architect
Ferramenta multi-plataforma, em Java. - HSQLDB
SGBD relacional 100% Java.