Você está na página 1de 8

Projeto de Banco de Dados

INTRODUÇÃO

O projeto de banco de dados é fundamental para o sucesso na implementação da tecnologia de banco de


dados em uma empresa. Para pequenos sistemas muitas vezes o responsável pelo projeto parte diretamente
para a criação do banco de dados físico e em seguida a criação das tabelas, colunas e índices. Porém quando
se pensa em um banco de dados para uma empresa grande, dependendo do tamanho do projeto é
fundamental um bom processo de projeto de banco de dados para que se possa garantir que o usuário terá
todos os seus requisitos de informação atendidos na forma de informações disponíveis no banco de dados,
além de outras considerações já vistas anterioremente tais como disponibilidade, desempenho e
confiabilidade do banco de dados.

Um projeto de banco de dados é caracterizado por um processo que possui fases distintas e com aspectos
diferentes mas que tem como objetivo final a implementação de um banco de dados que atenda as
necessidades de informação do usuário e aos requisitos não funcionais de disponibilidade, desempenho e
confiabilidade esperados.

As Três fases que fazem parte de um projeto de banco de dados:

1 - Modelo conceitual – Representa os conceitos do negócio e as associações existentes entre estes


conceitos. Também são representados os atributos assim como as regras de negócio que regulam as
associações e conceitos do negócio. Este modelo é independente da tecnologia de implementação
usada para o banco de dados e por isto é a etapa mais adequada para o envolvimento do usuário que
não precisa ter conhecimentos técnicos. As características principais deste modelo são :

 Visão Geral do negócio


 Facilidade de entendimento entre usuários e desenvolvedores
 Possui somente as entidades, relacionamentos e atributos principais

Os principais produtos da fase de projeto conceitual são:

 O diagrama de entidade e relacionamentos, também conhecido por modelo de entidade


relacionamentos;
 Lista de Regras de Restrição de Integridade.

2- Modelo Lógico – Representa as estruturas de dados a serem implementadas e suas características


considerando os limites impostos pelo modelo de dados usado para implementação do banco de
dados. (banco de dados hierárquico , banco de dados de rede, banco de dados relacional ,etc.). As
características principais deste modelo são:

· É derivado do modelo conceitual

· Possui entidades associativas em lugar de relacionamentos n:m

· Define as chaves primárias das entidades

· Define as chaves estrangeiras entre as entidades

· Normalização até a 3a. forma normal


· Adequado ao padrão de nomenclatura adotado pela empresa

· As Entidades e atributos são documentados em um Dicionário de Dados

O principal produto da fase de projeto lógico é o modelo relacional.

3- Modelo Físico – Este modelo representa a implementação do modelo lógico considerando algum
tipo particular de tecnologia de banco de dados e os requisitos não funcionais ( desempenho,
disponibilidade, segurança) que foram identificados pelo analista de requisitos. As características
principais deste modelo são :

· Elaborado a partir do modelo lógico

· Pode variar segundo a tecnologia usada para implementação do banco de dados

· Possui tabelas físicas (log , lider , etc.)

· Possui colunas físicas (replicação)

No modelo físico, a linguagem SQL (Structured Query Language), é a linguagem padrão para
definição, manipulação e controle de uso das estruturas de dados.

Existem muitos Sistemas Gerenciadores de Banco de Dados disponíveis no mercado. Como


exemplo, podemos citar o PostgreSQL e o MySQL, que tem código aberto e são gratuitos. Também
existe o Oracle, DB2, Sybase SQL Server, Informix e Microsoft SQL Server, que são pagos e não
possuem código aberto, sendo bastante usados em corporações.

Sistemas de Gerenciamento de Bancos de Dados - SGBDs

O SGBD é um software responsável pelo armazenamento e gerenciamento de grandes volumes de dados


estruturados de acordo com o modelo de dados implementado pelo SGBD e com recursos para acesso e
atualização das informações.

Vantagens:

 Rapidez na manipulação e no acesso à informação;


 Redução do esforço humano (desenvolvimento e utilização);
 Disponibilização da informação no tempo necessário;
 Distribuição de informações geograficamente;
 Controle de redundância e de inconsistência de informações;
 Compartilhamento de dados;
 Aplicação automática de restrições de integridade;
 Controle de acesso e segurança dos dados;
 Redução de problemas de integridade.

DICIONÁRIO DE DADOS

Um dicionário de dados é um documento que descreve as informações representadas no modelo de dados,


descrevendo informações de suas entidades e seus atributos ( tamanho, tipos de dado, obrigatoriedade e
definição ). O dicionário de dados é usado para documentar os dados da empresa e facilitar a comunicação e
entendimento entre analista de sistemas e seus usuários, alem de servir de ferramenta para avaliação de
modelos de dados pelos analistas de dados corporativos que tem a responsabilidade de manter o modelo de
dados corporativo sem redundancias, completo e de fácil manutenção. Algumas ferramentas CASE geram
dicionário de dados automaticamente a partir das informações existentes no catálogo do banco dados.

Quando uma organização constrói um dicionário de dados de dimensão empresarial, o intuito deve ser o de
padronizar precisamente definições semânticas a serem adotadas na empresa toda; portanto, ele deve incluir
tanto definições semânticas como de representação para elementos de dados, sendo que os componentes
semânticos focam na criação precisa do significado dos elementos de dados, e de outro lado, as definições
de representação indicam como os elementos de dados são armazenados em uma estrutura de computador de
acordo com seu tipo, ou seja, se são dados do tipo inteiro, caracter ou formato de data.

Modelo de um Dicionário de Dados

Veja um exemplo de dicionário de dados:

Propriedades dos campos da tabela CURSOS

NOME DO CAMPO TIPO DO CAMPO TAMANHO


Codigo integer 3
Nomedocurso Varchar 40
Duracao integer 3
DataPublicacao date 8

Tipos de Dados:

Os dados podem assumir vários tipos de dados, que irão variar dependendo do Sistema de Gerenciamento de
Banco de dados que estiver em uso pela empresa: Abaixo seguem alguns tipos:
· char: Caracter (string de valor fixo): O valor armazenado é uma string.
· Varchar: Caracter (string de valor variável): O valor armazenado é uma string.
· integer: Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado.
· float: Número em ponto flutuante de precisão simples. São conhecidos normalmente como
números reais.
· double: Número em ponto flutuante de precisão dupla
· Date: Tipo data

Diferença entre char e varchar:

O campo char quando armazena um valor, completa com espaços em branco o que não está sendo utilizado.
Por exemplo, criando um campo com 10 caracteres, você armazena o valor 'A' e também vai armazenar mais
nove espaços em branco depois. Por causa desta característica o tipo de dados CHAR é chamado de tipo de
dados com tamanho fixo. Já o tipo varchar, armazena SOMENTE a quantidade de caracteres que foram
especificados na sua criação, ou seja, ele gravará o valor 'A' sem os espaços em branco depois.
EXEMPLO DE UM PROJETO DE BANCO DE DADOS

Para que um projeto de banco de dados seja bem sucedido, são necessárias diversas etapas.

Etapas no projeto de um Banco de dados:

- Determinar qual o objetivo do projeto de Banco de Dados: Isto ajuda na determinação de quais os
dados devem ser armazenados. É fundamental ter bem claro qual o objetivo a ser alcançado com o banco de
dados. É fazer o acompanhamento das despesas, pedidos dos clientes, multas de transito, a evolução das
vendas ou outro objetivo qualquer.

- Determinar as Entidades necessárias: Após definirmos os objetivos do Banco de Dados, as informações


devem ser definidas e separadas em assuntos diferentes, tais como "Clientes", "Empregados", "Pedidos",
pois cada um irá compor uma tabela no banco de dados. É importante considerar que conceitos diferentes
devem ser representados como entidades e relacionamentos diferentes. Isto significa que não devemos
misturar conceitos, assuntos , representando todos como apenas uma única entidade. Como já dizia o
Luciano do Vale, comentarista de futebol, “Uma coisa é uma coisa e outra coisa é outra coisa.”.

 Determinar os Atributos de cada Entidade: Definir quais informações devem ser mantidas em
cada entidade. Por exemplo, a entidade Clientes poderia ter um atributos para o CPF Do Cliente,
outro para o Nome Do Cliente e assim por diante.
 Determinar o identificador de cada Entidade

Determinar, em cada entidade, qual(is) atributo(s) será(ão) utilizado(s) como identificador de cada
ocorrencia na entidade.

 Determinar os Relacionamentos:

Determinar as associações existentes entre as entidades do modelo de dados, identificando de que


forma as entidades se relacionamento e representando os relacionamentos entre as entidades,
detalhando a cardinalidade entre os relacionamentos. A cardinalidade especifica o numero de vezes
que uma ocorrencia de uma entidade pode estar associada a ocorrencias da outra entidade. Por
exemplo, Clientes podem Fazer Vários Pedidos, então existe um relacionamento do tipo Um-para-
vários entre a tabela Clientes (lado um) e a tabela Pedidos (lado vários).

 Normalizar a Estrutura do Banco de Dados:

Antes de inserir muitos dados, ou até mesmo antes de inserir qualquer dado, verificar se a estrutura
contém redundancia de atributos nas entidades, eliminando a possibilidade de inconsistencia nos
dados causada por anomalias de atualização devido a redundancia de atributos. Isto, normalmente,
pode ser obtido através do processo de Normalização.
Projeto EXEMPLO:

Vamos ver do início ao fim cada conceito de uma modelagem de dados, tomando por exemplo a
implantação de um banco de dados em uma escola.

Sistema de Controle Academico

Objetivos

- Descrição do Problema

Atualmente os alunos são cadastrados em fichas de papel guardadas em pastas. Isso acarreta dificuldade no
resgate de informações e fragilidade das mesmas. O ideal, será um banco de dados organizado de tal forma
que as fichas dos alunos serão identificadas com facilidade através do número de matrícula, assim como
outras informações como professores, disciplinas, notas dos alunos, gerando assim relatórios diversos como
por exemplo o boletim do aluno, que hoje é feito no aplicativo Word.

- Objetivo do Projeto de Banco de Dados

O objetivo do banco de dados será armazenar os dados dos alunos, possibilitando consultas ágeis que
retornem as informações de maneira rápida e prática, através de emissão de relatórios diversos ou consultas
na web.

- Entidades necessárias

Identificamos várias entidades contendo todos os dados importantes para controlar uma escola.

Eis a lista de Entidades:

 cursos – Para cadastrar os cursos oferecidos pela escola


 aluno – Para cadastrar os alunos matriculados na escola, bem como seus dados pessoais
 professor – Para cadastrar os professores que lecionam na instituição, bem como seu dados pessoais
 disciplinas – Para cadastrar as disciplinas que os alunos irão cursar
 turmas – Para cadastrar as turmas abertas para os cursos oferecidos

- Determinar os atributos de cada entidade

Eis a lista de relacionamentos

 cursos (codigo, nomedocurso, duracao, datapublicacao)


 aluno (matricula, nome, endereco, bairro, cep, telefone, pai, mae, email)
 professor (matricula, nome, endereco, bairro,cep, telefone, email)
 disciplinas (codigo, descricao)
 turma (codigo, descricao)

Criar o Dicionário de Dados de cada uma das entidades

- Determinar o identificador de cada entidade


- Determinar os Relacionamentos

- Normalizar a Estrutura do Banco de Dados:

Fases do Projeto de Banco de Dados – Um exemplo prático

O Projeto Conceitual de Banco de Dados

Nessa fase trabalhamos com requisitos de informação e regras de negócio do domínio do problema.
Não nos preocupamos com aspectos físicos do banco de dados ou da tecnologia utilizada.
Buscamos o entendimento do negócio junto aos usuários.

É importante se situar no domínio do problema pois ele delimita o escopo do projeto de banco de dados. Ele
estabelece a fronteira do que deve estar no banco de dados e o que está fora do banco de dados.

O domínio do problema pode ser bem simples ou bastante amplo e complexo. Quando for grande e
complexo, o projeto de banco de dados pode ser feito por etapas, cada etapa abrangendo um conjunto de
requisitos, e assim podemos projetar conceitualmente o banco de dados para um domínio complexo em
etapas, dividindo um problema grande em problemas menores e mais fáceis de se interpretar. Esta
abordagem é conhecida como dividir para conquistar e pode ser usada também no projeto conceitual do
banco de dados.

Independente da complexidade do domínio do problema, todo domínio possui requisitos de informação e


regras de negócio que devem ser identificados e interpretados pelo analista de sistemas a fim de serem
corretamente representadas no modelo conceitual de dados.

Vamos ver um exemplo simples, com domínio simples que você conhece bem.

Domínio do Problema: Em uma universidade, alunos matriculam-se em disciplinas. O banco de dados para
este processo de negócio deve fornecer as seguintes informações:

 Para cada aluno, RA, nome, endereço, telefone e e-mail de contato.


 Para cada disciplina, codigo, nome e carga horária da disciplina
 Para cada matricula, RA do aluno, codigo da disciplina e data da matricula
 Cada aluno deve se matricular em pelo menos uma disciplina e no máximo em 3 disciplinas

Inicialmente fazemos um esboço do projeto, construindo um diagrama de conjuntos. Posteriormente


construímos o modelo de entidades e relacionamentos. Assim devemos construir um Diagrama de Conjuntos
para o domínio do problema Universidade.

O diagrama de conjunto nos ajuda a identificar as informações que são importante para o domínio do
problema e também nos ajuda a compreender a forma como estas informações se relacionam.

Diagrama de Conjuntos
Diagrama de Entidade e Relacionamentos

A próxima fase seria o projeto do logico dos dados com a elaboração do modelo de dados relacional
composto por tabelas e colunas. Este modelo é derivado do diagrama de entidade e relacionamentos.

O modelo relacional representa as entidades e relacionamentos como tabelas onde cada tabela deve ter uma
chave primária.

Os relacionamentos entre as tabelas são representados através de chaves estrangeiras que são usadas para
relacionar as tabelas do banco de dados.

As regras de negocio devem ser respeitadas no modelo. Por exemplo, “Um aluno poderá se matricular em
uma mesma disciplina no máximo 4 vezes.”. Esta regra de negocio deve ser respeitada para garantir a
integridade do banco de dados. As regras de negócio podem ser representadas por anotações no diagrama de
entidade e relacionamentos.

O modelo pode ser evoluído na medida em que o ambiente de negócio muda. Por exemplo, os alunos
precisam agora ser representados de acordo com o curso que pode ser um curso de graduação ou um curso
de pós-graduação. Então existem dois tipos de alunos, os alunos de graduação e os alunos de pós-graduação.

No Projeto Físico pode-se:

- Definir os recursos de hardware: Qual a melhor configuração de servidor, rede e sistema operacional para
implementação do banco de dados.

 Denifir o melhor SGBD a ser utilizado: Dependendo da plataforma a ser usada ( mainframe, cliente-
servidor ), integração do banco de dados com outros bancos de dados em outros ambientes, interface
com outros sistemas e até a cultura da empresa.
 Para projetos pessoais, como consultor ou desenvolvedor autonomo, a indicação de SGBD é para o
PostgreSQL, por ser robusto, estável, bom desempenho, boa documentação, grande comunidade
através da Internet e Licença free e open-source para todos os usos.
 Como sistema operacional para o servidor a indicação vai para o Linux Debian.
 Como sistema operacional para os clientes a indicação vai para o Linux Ubuntu.
 Verificar a estimativa do crescimento do banco, também conhecida como volumetria, e preparar-se
para isso em termos de capacidade armazenamento dos discos do servidor.

Você também pode gostar