terça-feira, 7 de abril de 2009

5 - Modelo Lógico

O Modelo Lógico inicia-se a partir do esquema conceitual
e resulta no esquema lógico. Um esquema lógico é uma
descrição da estrutura do banco de dados que pode ser
processada por um SGBD.

Nesta etapa, o desenvolvimento do Banco de Dados
começa a se voltar para o ambiente de implementação,
uma vez que é feita a conversão do modelo conceitual para
um modelo de dados de um Banco de Dados.

Os modelos lógicos podem ser construídos de acordo com a
abordagem: relacional, em redes, hierárquico ou Orientada a
Objetos.


O projeto lógico depende da abordagem do modelo de dados
usado pelo SGBD, mas não do SGBD específico usado.
De acordo com Cougo4 o modelo lógico é aquele em que
os objetos, suas características e relacionamentos têm a
representação de acordo com as regras e limitantes impostos
por algum tipo de tecnologia, mas essa representação é
independente dos dispositivos ou meios de armazenamento
físico e das estrutura de dados por ela definidos.

Na abordagem relacional esta etapa se baseia no uso de
regras de mapeamento de um modelo ER para o modelo
de dados escolhido.


O resultado é uma estrutura lógica, como um conjunto de
tabelas relacionadas.

Considerando o ciclo de vida de desenvolvimento de sistemas
está associado à fase de projeto.

Os modelos lógicos podem ser baseados em objetos ou baseados
em registros.


Modelos lógicos baseados em objetos: Descrição dos dados
nos níveis conceitual e de visões de usuários.

Exemplos: Entidade-relacionamento, orientado a objetos.


Modelos lógicos baseados em registros: Descrição dos dados
nos níveis conceitual e de visões de usuários; o banco de dados é
estruturado em registros de formatos fixos, de diversos tipos;
cada tipo de registro tem sua coleção de atributos; há linguagens
para expressar consultas e atualizações no banco de dados.


Exemplos: Relacional, Rede, Hierárquico.



No modelo relacional, dados e relacionamentos entre dados são
representados por tabelas, cada uma com suas colunas específicas.



quinta-feira, 2 de abril de 2009

4 - Modelo Conceitual

A construção do Modelo Conceitual é iniciada a partir da especificação dos requisitos e resulta no esquema conceitual do banco de dados, onde a semântica da realidade deve estar correta. Um esquema conceitual é uma descrição em alto nível da estrutura do banco de dados, independente do Sistema de Gerenciamento de Banco de Dados (SGBD) adotado para implementá-lo. É utilizado para descrever os esquemas conceituais. É chamado de modelo de alto nível, pois não está ligado (relacionado) a nenhum Banco de Dados. Sua verdadeira intenção é promover o entendimento dos fatos de uma realidade (mundo) para ser representado e tratado em um BD.

De acordo com Cougo o modelo conceitual pode ser definido como um modelo no qual os objetos, suas características e relacionamentos têm a representação fiel ao ambiente observado, independente de quaisquer limitações impostas por tecnologias, técnicas de implementação ou dispositivos físicos.

Considerando o ciclo de vida de desenvolvimento de um sistema esta etapa pode ser considerada a fase de análise dos dados (ou requisitos) capturados na etapa anterior (levantamento de dados). São analisados os fatos (entidades ou conjunto de ocorrências de dados) de interesse e seus relacionamentos, juntamente com seus atributos (propriedades ou características) e construída uma notação gráfica (abstrata, uma representação de alto nível) para facilitar o entendimento dos dados e suas relações, tanto para os analistas quanto para os futuros usuários.

Objetivos do Modelo Conceitual

• Descrição das Informações – O objetivo do modelo conceitual é descrever as informações contidas em uma realidade, as quais estarão armazenadas em um banco de dados.

• Resultado real – O resultado de um Modelo Conceitual é um esquema que representa a realidade das informações existentes, assim como as estruturas de dados que representam essas informações.

• Independência de Manipulação e Manutenção dos Dados – Não é construído com considerações procedurais, não existindo preocupação com as operações de manipulação/manutenção dos dados.

• Independência do SGBD – Não retrata aspectos ligados à abordagem do banco de dados que
será utilizado e nem com as formas de acesso ou estruturas físicas implementadas por um SGBD.

Características do Modelo Conceitual

• Representação da Realidade – Registra as necessidades de informação de uma realidade.

• Melhor Conhecimento do Sistema – Permite que os analistas possam interagir melhor com os usuários validando seus objetivos e metas permitindo a construção de um sistema de informações cada vez mais próximo da realidade do usuário.

• Inicia o projeto – É a primeira etapa do projeto de um sistema de aplicação em banco de dados.

A fase de projeto conceitual é tida como uma das mais (senão a mais) delicadas em todo esse processo, pois depende muito da habilidade do projetista do banco de dados e das qualidades do modelo de dados adotado para a elaboração do esquema conceitual. A meta nessa fase é obter um esquema conceitual do banco de dados que seja tão completo e expressivo quanto possível.
Esse esquema deve procurar expressar o máximo da semântica envolvida na informação.


Mecanismos de representação de alto nível são empregados, tais como representação de hierarquias de subconjunto e de generalização, representação de restrições de cardinalidade e de atributos compostos e multivalorados.

O esquema conceitual deve permanecer como uma parte da documentação do processo de projeto, sendo utilizado durante a operação e manutenção do banco de dados, pois facilita o entendimento dos esquemas de dados e das aplicações que os utilizam.
Para auxiliar o projetista a elaborar o projeto conceitual de um banco de dados existem as abstrações de dados, que apresentam as vantagens:

• ajudam o projetista a entender, classificar e modelar a realidade,

• melhoram a eficiência de implementações subseqüentes,

• permitem melhor representar a semântica das novas aplicações de banco de dados,
provenientes de áreas não tradicionais.

O Modelo Conceitual oferece

• Melhor compreensão pelo usuário leigo: Um modelo conceitual é normalmente uma representação gráfica de fatos e relações do mundo real. Assim sendo, a compreensão destes conceitos é facilitada, se exposta graficamente. O usuário leigo, para o qual o BD será
desenvolvido, tem melhores condições de criticar o projeto feito e interagir no projeto.

• Independência de detalhes de implementação: Um modelo conceitual não é vinculado a nenhum modelo de dados de BD, ou seja, não apresenta detalhes de estruturação de dados que só precisam ser considerados no momento da criação do esquema em um SGBD. Assim, modificações nesta etapa do projeto são menos comprometedoras do que nas etapas seguintes. Inclusive, é recomendado que se critique bastante o modelo conceitual, para evitar mudanças depois.

• Tradução para qualquer modelo de dados de BD: Um modelo conceitual pode ser mapeado para qualquer modelo de BD, desde que se saibam as regras para realizar tal tarefa. Isto facilita o upgrade do BD (por exemplo, migração de um SGBD relacional para um
SGBD orientado a objetos), uma vez que não é preciso repensar do zero a nova organização lógica que os dados terão no novo modelo de dados.

• Ferramenta indispensável para o processo de engenharia reversa de BD: O upgrade (ou migração) de um esquema implementado em um certo modelo de dados de BD para outro exige a realização de um processo chamado engenharia reversa. O objetivo deste processo é
justamente obter o modelo conceitual a partir de um modelo lógico (projeto de BD “ao contrário”), para que possa então ocorrer o upgrade, como comentado na vantagem anterior.

• Maior estabilidade frente a mudanças a nível de implementação: O modelo conceitual, por ser um modelo de alto nível (semântico), tem menor probabilidade de ser afetado quando ocorrem mudanças a nível de implementação, realizadas no SGBD, como por exemplo, definir índices para aumentar a performance, tornar o BD distribuído, utilizar estratégias de clusterização para gilizar consultas, etc. Às vezes, mesmo modificações, por exemplo, em tabelas de um BD relacional, não inviabilizam o modelo conceitual, uma vez que as regras de mapeamento para um modelo lógico admitem algumas variações, como por exemplo, o fato de um relacionamento 1:1 com parcialidade gerar ou não uma tabela para o relacionamento.

• Mais adequado para o exercício da criatividade: Um modelo conceitual é na verdade uma ferramenta que admite diversas alternativas de solução para a interpretação de uma realidade, dependendo de quem está modelando. É interessante que uma modelagem
conceitual seja realizada por diversos analistas e comparada entre eles, para se determinar
qual delas é a mais clara, ou seja, captura melhor a semântica da realidade.


Exemplo de Modelagem Conceitual



3 - Análise de Requisitos

Feito o levantamento de dados, inicia-se a etapa de análise
dos requisitos. Os requisitos são divididos em: requisitos
de dados e requisitos de sistema (processamento). Para o
projetista do banco de dados o que realmente importa são
os requisitos de dados, no entanto, para o bom funcionamento
do sistema e aderência do projeto do banco de dados ao projeto
do sistema, deve-se desenvolver em paralelo a análise dos
requisitos de dados e a análise dos requisitos do sistema. A
documentação dos requisitos pode ser realizada por meio
de casos de uso ou DFD.

2 - Levantamento de Dados/Requisitos

Olá pessoal, neste tópico falarei um pouco sobre levantamento
de dados e requisitos, um momento muito importante da
modelagem conceitual.

Nessa etapa, o projetista entrevista os possíveis usuários do
banco de dados para compreender e documentar seus requisitos
de dados. Muitas vezes essa atividade é realizada pelo analista
de sistemas ou analista de negócios, no entanto, é de grande
importância para a confecção do banco de dados, pois a partir
do levantamento de dados, será possível conhecer o negócio e
identificar quais dados deverão ser armazenados e como serão
utilizados.

De acordo com Elmasri, algumas das atividades que fazem
parte dessa fase são:

1. "Identificação das principais áreas de aplicação, bem como
dos grupos de usuários do banco de dados, ou seja, quem terá
seu trabalho afetado por ele. São escolhidas as pessoas-chave e
os comitês dentro de cada grupo para apoiar os passos
subseqüentes de coleta e especificação dos requisitos.

2. Análise e estudo da documentação existente relativa às
aplicações. Outros documentos - manuais de procedimentos,
formulários, relatórios e organogramas - são revisados para
determinar se têm qualquer influência no levantamento de
requisitos e no processo de especificação.

3. O estudo do ambiente operacional atual e o uso planejado
da informação, incluindo a análise dos tipos de transação e
sua freqüência, bem com o fluxo de informação dentro do
sistema. São estudadas as características geográficas relativas
aos usuários, origem das transações, destino de relatórios e
assim por diante. São especificadas as entradas e as saídas das
transações.

4. Respostas a conjuntos de consultas levantadas por usuários
ou grupos de usuários potenciais do banco de dados. Essas
consultas envolvem as prioridades dos usuários e a importância
que eles atribuem às diversas aplicações. Pessoas-chave
podem ser entrevistadas para ajudar a definir o valor da
informação e o estabelecimento de prioridades." Algumas
técnicas utilizadas para o levantamento de dados são: análise
dos documentos utilizados pelo usuário, análise das tarefas
do usuário, entrevistas e questionários.


Para demonstrar estre processo:





quarta-feira, 1 de abril de 2009

1 - Projetos de Bancos de Dados

Olá pessoal, hoje vou falar um pouco do conceito de projetos de
banco de dados e suas características mais importantes.


Bancos de Dados são componentes importantes dos sistemas
de informação, portanto, o projeto do banco de dados torna-se
uma atividade essencial na fase de desenvolvimento dos sistemas.

Muitas vezes a falta de uma abordagem adequada para o projeto
de um banco de dados pode incorrer em resultados indesejáveis,
como queda de performance ao atender a demanda de aplicações
e problemas com a manutenção do banco de dados. Geralmente
a causa disso está associada a etapa de entendimento do
problema e transcrição da representação para o modelo conceitual.


Um modelo de dados pode ser definido como uma Coleção de
ferramentas conceituais para descrição de dados, relacionamento
entre os dados, semântica e restrições de dados.


O Modelo de Dados é basicamente um conjunto de conceitos
utilizados para descrever um Banco de Dados. Não existe uma única
forma de representação deste modelo, porém qualquer forma que
emite a correta compreensão das estruturas de dados compreendidas
no Banco de Dados, pode ser considerada adequada.


Os modelos são a base do design. Os engenheiros criam um modelo
de carro para estudar os detalhes antes de colocá-lo em produção.
Da mesma forma, projetistas de sistemas desenvolvem modelos
para explorar idéias e compreender melhor o design de um banco
de dados. Os modelos ajudam a comunicar conceitos imaginados
pelas pessoas. É possível usá-los com os seguintes objetivos:

• Comunicar
• Categorizar
• Descrever
• Especificar
• Investigar
• Desenvolver
• Analisar
• Imitar


O objetivo é produzir um modelo que se adapte a vários usos, possa
ser compreendido por um usuário final e contenha detalhes suficientes
para que um desenvolvedor crie um sistema de banco de dados.


O projeto de um banco de dados pode ser decomposto
em três fases básicas as quais denominamos modelo:


• Modelo Conceitual;
• Modelo Lógico;
• Modelo Físico;



Um projeto de banco de dados deve ser iniciado com um bom levantamento de dados, seguido da análise de requisitos; a partir de então o projeto conceitual do banco é realizado, em seguida são derivados os modelos lógico e físico.