Tutorial de Banco de Dados – Parte 1

Decidi escrever esse tutorial para ajudar a consolidar os meus conhecimentos sobre banco de dados relacional e ajudar o pessoal interessado em aprender sobre o assunto, pois na minha opinião o material disponível em português sobre banco de dados na internet é bem fraco, por isso espero poder contribuir a melhora do conteúdo.

Esse meu tutorial tem como base um trabalho de banco de dados que fiz durante a faculdade, este trabalho foi realizado utilizando o banco de dados Oracle 11g enterprise, por isso algumas caracteristicas que vou apresentar são especificas do Oracle, como por exemplo a criação e o uso das sequences.

Durante este artigo vou apresentar o uso dos softwares SQL Developer e o SQL Developer Data Modeler ambos da Oracle, o SQL Developer vem incluso no instalador do banco de dados, mas o Data Modeler precisa ser baixado separado pois não está incluído.

Instalação do Oracle 11g

A instalação do banco de dados Oracle 11g é bem intuitiva e não precisa ser muito detalhada, apenas faço alguns alertas para quem for instalar:

– O Oracle ocupa muita memória, no meu micro ocupou mais de 700 mega, por isso quem tem uma memória de 2GB pode sofrer um pouco com isso, no meu caso eu instalei num micro separado apenas para essa finalidade, por isso não foi um grande problema.

– A instalação padrão do Oracle só aceita acessos locais ao banco de dados na porta 1521, como eu estava acessando o banco pela rede, tive esse problema, para resolver é preciso editar os arquivos “listener.ora” e “tnsnames.ora” para liberar o acesso externo, a edição dos arquivos não é muito bem documentada na internet, por isso eu tentei uma saída simples que felizmente funcionou, que foi excluir o listener criado na instalação e criar outro usando a ferramenta “Assistente de Configuração de Rede”, com isso resolvi o acesso ao banco de dados.

 

Criação de Usuários no Oracle

Outra dificuldade que tive quando instalei o Oracle pela primeira vês foi como criar um usuário para acessar o banco de dados, o processo é simples, supondo que você está no micro que está com o banco de dados instalado é preciso acessar o “Database Control” no endereço https://localhost:1158/em/ para fazer login você sua o usuário “system” que foi criado durante a instalação. Após estar logado vá na opção “Servidor” dentro dessa opção tem o grupo “Segurança”, neste grupo você vai encontrar a opção “Usuários”, é neste opção que você faz o gerenciamento de usuários do SGBD.

A criação de usuários é simples, você vai precisa se preocupar com as opções: Geral, Atribuições, Privilégios de Sistema, e Cotas,as outras opção para o usuário iniciante não são úteis.

Na opção Geral, você precisa definir o nome do usuário, o tipo de autenticação, o recomendado por ser a mais simples é a por senha, definir a senha e os tablespace do usuários, o recomendado é usar para “Tablespace Default ” o USERS e como “Tablespace Temporário” o TEMP

Na opção “Atribuições” você precisa verificar se a opção “Connect” sem ela o usuário não pode se conectar ao banco de dados.

Na opção “Privilégios de Sistema” você precisa dar a permissão para o usuário fazer a criação das tabelas, triggers e outros objetos que ele vai precisar utilizar, na figura a seguir tem a lista das atribuições que eu concedi ao usuário.

Na opção “Cotas” é necessário atribuir um valor no tablespace USERS para que o usuário possa efetivamente criar as tabelas lá, caso contrario o usuário não tera espaço em disco para poder criar as tabelas e inserir os dados nelas.

Feito isso é preciso mandar aplicar essas alterações, após isso já é possível acessar o banco de dados usando o usuário criado.

Usando o SQL Developer

Agora que o usuário já está criado é possível testar se ele está conseguindo acessar o banco de dados, para fazer os acessos ao banco de dados vou utilizar o SQL Developer, as configurações são simples, precisa definir o nome do usuário que foi criado, com a respectiva senha, definir o host que está executando o banco de dados, o padrão é localhost, a porta do listener que foi configurada, que já foi explicada anteriormente, e definir o SID do banco de dados, essa informação é definida durante a instalação do bando de dados, o padrão é orcl, na figura a seguir tem um exemplo da criação da conexão.

Se todas as configurações estiverem corretas, você vai clicar no botão “Testar” e ele vai informar que conseguiu se conectar com sucesso. Feito isso já podemos começar a criação de tabelas e outros objetos no banco de dados.

SQL Developer Data Modeler

Para a modelagem das tabelas eu utilizei o SQL Developer Data Modeler, eu testei outras ferramentas como o DB Main que foi o software que utilizei na faculdade e o Rational Rose da IBM. O DB Main é uma ferramenta gratuita, mas tem várias incompatibilidades com o Oracle: como o uso de tipos de dados sequenciais e consultas na declaração de tabelas, coisas que o Oracle implementa de forma diferente, o Rational Rose é muito bom, mas para o usuário doméstico é inviável, tendo em vista que custa cerca de 5000 reais e usar serial pirata é um saco, por isso preferi pesquisar mais e assim descobri que existe o SQL Developer Data Modeler da própria Oracle que pode ser baixado de graça e utilizado tranquilamente para uso não comercial, e o melhor de tudo é que ele é totalmente compatível com o SGBD da Oracle, o que não poderia ser diferente diga-se de passagem :) .

Como o meu foco não era aprender a fundo o uso do Data Modeler o que certamente iria tomar muito do meu tempo, eu fiz o suficiente para gerar as minhas tabelas. Como eu já tinha um esboço desse projeto da época que eu fiz na faculdade eu aproveitei e fiz a importação das tabelas já existentes para o software e ele já gerou o modelo inicial, e a partir desse ponto eu fui fazendo as correções.

A seguir vou mostrar como ficaram os diagramas relacional e lógico gerados pelo Data Modeler, sendo que o diagrama lógico que estou exibindo é o da notação de Barker que ao meu ver é a melhor para esse tipo de diagrama, mas o software permite trabalhar com outras duas notações, que também são muito uteis para o desenvolvimento do trabalho.

Como eu realizei a importação do projeto com as tabelas parcialmente prontas, acabei não seguindo os passos da correta modelagem de um projeto de banco de dados, mas fica a minha recomendação, primeiro desenhamos as tabelas no modelo lógico e a partir do modelo lógico geramos o modelo relacional, tarefa que o Data Modeler faz facilmente e rapidamente.

A seguir estou apresentando a figura do modelo lógico criado com o Data Modeler do projeto que vou desenvolver durante esse artigo.

A seguir tem o modelo relacional desse projeto.

 

A Modelagem do banco de dados

Agora que eu já mostrei como ficaram os diagramas da modelagem de dados do problema, vou apresentar o problema que me levou a esse resultado.

A proposta do trabalho e desenvolver a modelagem de dados para um software de revenda de automóveis que permita cadastrar os clientes, funcionários, veículos disponíveis para venda, veículos que estão em estoque, as vendas de veículos realizadas, as revisões de veiculos juntamente com as peças substituídas e armazenar a lista de peças para substituição e os respectivos fornecedores.

Para resolver o problema eu criei 20 tabelas, a seguir vou apresentar cadas uma delas e uma descrição básica.

1) Tabela pessoas: Essa tabela serve para armazenar os dados das pessoas cadastradas no sistema, tanto os clientes como funcionários.

2) Tabela clientes: Está tabela  estende a tabela de pessoas para armazenar apenas as pessoas que são clientes.

3)Tabela funcionarios: Está tabela estende a tabela de pessoas para armazenar apenas as pessoas que são funcionários.

4) Tabela enderecos: Esta tabela se relaciona com as tabelas pessoas, pessoa_endereco.  Nela é armazenado os endereços dos clientes, funcionários e dos fornecedores de peças que estão cadastrados no sistema.

5)  Tabela pessoa_endereco: Está tabela tem a função apenas de ligar as tabelas pessoas e endereços.

6) Tabela telefones: Está tabela se relaciona com a tabela endereços, nela é possível adicionar um ou mais números de telefone paraa cada endereço cadastrado.

7) Tabela cargos: Está tabela serve para armazenar os cargos disponíveis na estrutura da empresa.

8 ) Tabela cargos_funcionarios: Está tabela armazena todos os cargos que os funcionários assumiram durante o período que trabalharam na empresa.

9) Tabela fornecedor_endereco: Está tabela liga a tabela de fornecedores com os seus endereços, com isso é possível cadastrar inúmeros endereços para um mesmo fornecedor.

10) Tabela fornecedor_pecas: Nesta tabela se armazena as informações que são apenas referentes a um fornecedor de peças.

11) Tabela pecas: Na tabela pecas é armazenado a lista de peças que são fornecidas pelos fornecedores cadastrados.

12) Tabela revisoes: A tabela revisões armazena as revisões que foram feitas nos veículos dos clientes.

13) Tabela pecas_substituidas: Nesta tabela fica armazenado os dados das peças que foram substituídas em cada revisão. de veículos

14) Tabela veiculos: Nesta tabela fica armazenada as informações genéricas sobre os veículos que estão em estoque para venda e dos veículos de clientes que estão relacionados em uma revisão.

15) Tabela veiculos_clientes: Esta tabela armazena as informações relativas aos veículos de clientes que passaram por alguma revisão.

16) Tabela veiculos_venda: Está tabela armazena os dados dos veículos que atualmente a revenda está vendendo, independente de ter eles em estoque ou não.

17) Tabela vendas: Nesta tabela é armazenado os dados de cada venda de veículo.

18) Tabela veic_estoque: Aqui fica armazenado as informações dos veículos que estão a venda e que estão em estoque para entrega imediata.

19) Tabela acess_incluidos: Está tabela tem a finalidade de armazenar os acessórios opcionais que foram incluídos nos veículos que foram vendidos

20) Tabela acess_disponiveis: Está é a lista que opcionais disponível nos veículos que estão a venda.

Vou concluir a primeira parte desse artigo por aqui, na segunda parte vou começar a criação das tabelas e dos outros elementos necessários para gerar as tabelas no banco de dados, durante essa parte irei apresentar algumas dicas de como utilizar o SQL Developer Data Modeler para que as consultas SQL geradas por ele para a criação das tabelas saim corretas e completas, para evitar edições após a geração.

3 comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *