Baixe o app para aproveitar ainda mais
Prévia do material em texto
01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 1/6 Introdução - Objetivo dos SGBD's Um sistema de gerenciamento de bancos de dados (SGBD) consiste numa coleção de dados inter relacionados e um conjunto de programas para acessar estes dados. Normalmente o banco de dados é conhecido como Backend e as aplicações são conhecidas como Frontends. O principal objetivo de um SGBD é proporcionar um ambiente, conveniente e eficiente, para retirar e armazenar informação no banco de dados. São objetivos de um SGBD: . Evitar a redundância e inconsistência dos dados; . Facilitar o acesso e evitar o isolamento dos dados; . Possibilitar o acesso em sistemas multiusuários; . Garantir a segurança e a integridade dos dados. Todos estes objetivos são, na verdade, características nativas da maioria dos SGBD's disponíveis no mercado, o que isenta ao programador a tarefa de escrever código que os garanta. Abstração de Dados A Abstração de Dados ocorre quando um sistema de banco de dados tem meios de proporcionar ao seu usuário uma visão abstrata dos dados que contém. Ou seja, o sistema esconde do usuário alguns detalhes sobre como os dados são armazenados, recuperados ou mantidos. O SGBD tem uma preocupação com eficiência, que é conseguida através do uso de estruturas complexas de armazenamento de informação. Mas esta complexidade não é visível aos usuário dos bancos de dados. Os sistemas de gerenciamento de bancos de dados oferecem aos usuários vários níveis de abstração: Nível Físico Este é o nível mais baixo de abstração, no qual se descreve como os dados são armazenados. As estruturas de armazenamento de informação que o SGBD usa são descritas neste nível. O nível físico depende fortemente do SGBD escolhido. Nível Lógico Neste nível se descreve quais os dados serão armazenados e os relacionamentos entre eles. Não existe a preocupação de como os dados serão armazenados. O nível lógico não depende do SGBD a ser escolhido mas sim da classe do SGBD. Nível Conceitual e Nível Visão O nível conceitual oferece uma visão mais comportamental do banco de dados, mais próxima do mundo real. Em outras palavras, a preocupação maior é enxergar as estruturas de dados como representações do mundo real. O nível conceitual independe da classe ou SGBD escolhidos. O nível visão pretende simplificar o acesso ao banco de dados por usuários que têm necessidade de apenas parte do banco de dados. É possível definir várias visões do banco de dados, de acordo com as necessidades dos usuários. Modelo de Dados Modelo de dados é uma forma de definir um banco de dados através de ferramentas conceituais, relacionamentos entre dados, semântica e restrições. Existem vários modelos de dados a serem 01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 2/6 utilizados em diferentes SGBD´s e níveis de abstração. Nos níveis conceitual e visão o mais importante modelo é o EntidadeRelacionamento. No nível lógico, são três os modelos mais importantes, o Relacional, o Modelo de Rede e o Hierárquico. Atualmente, o modelo relacional é o mais usado. Modelos, em nível físico, representam aspectos da implementação de bancos de dados nos SGBD's. Esquema do Banco de Dados É chamada de esquema do banco de dados a representação de um banco de dados em um modelos de dados. Temos o esquema conceitual do banco de dados, o seu esquema lógico e físico e podemos vários subesquemas, representando as visões dos usuários. Independência de Dados A independência de dados é entendida como sendo a capacidade de modificar uma definição de esquema do banco de dados em um nível de abstração sem afetar a definição de esquema em um nível mais alto. Por exemplo: um sistema que tem independência de dados física permite que se altere o esquema físico (rotinas de armazenamento e acesso aos dados) sem se ter que mexer nos programas de aplicação. Modelo Entidade-Relacionamento O Modelo EntidadeRelacionamento é o modelo mais usado para representação de bancos de dados em nível conceitual. Tem como característica principal a facilidade de projetar esquemas de bancos de dados. Este modelo baseiase na representação do sistema por um conjunto de objetos do mundo real (entidades) e por relacionamentos entre estes objetos. Obs: Ainda não existe um SGBD que utiliza este modelo como forma de representação de bancos de dados, mas o modelo é uma, se não a mais, poderosa ferramenta de projeto de banco de dados. Diagrama EntidadeRelacionamento (DER) O Diagrama EntidadeRelacionamento, ou simplesmente DER, é a simbologia usada para representação do esquema do banco de dados no modelo Entidade Relacionamento. Representa uma poderosa ferramenta de projeto. A maioria das ferramentas CASE adotam este diagrama, mas existem variações de simbologia. Seguiremos aqui a simbologia sugerida por Peter Chen. O DER é uma ferramenta muito útil na modelagem de sistemas e se destina a representar os dados do sistema e os relacionamentos entre eles. Há opções para se adequar o DER às mais diversas situações. Entidade 01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 3/6 Entidade é um objeto que existe e é distinguível de outros objetos. Uma entidade pode ser concreta (como professor, empregado, etc.), abstrata (curso, disciplina, etc.) ou um conceito (curricular, extracurricular, optativa). Conjunto de entidades é um grupo de entidades afins, e uma ocorrência da entidade é um objeto pertencente a este conjunto de entidades. Por exemplo, MATEMÁTICA é uma ocorrência do conjunto de entidades Disciplina. Um conjunto de entidades, que passaremos a chamar apenas de entidade, é representado, no DER, por um retângulo: Atributo Atributos são qualificadores das entidades. São dados que caracterizam ou identificam uma entidade. Por exemplo, Nome e Número de Matrícula são atributos da entidade Aluno. Atributo Multivalorado Atributos multivalorados são aqueles que podem ocorrer mais de uma vez para uma mesma entidade. Se definirmos que Telefone é um atributo multivalorado da entidade Cliente, será possível indicar um ou vários telefones para os clientes. Chave Chave, ou atributoschave, é o conjunto de atributos que identifica unicamente uma entidade no conjunto de entidades. Por exemplo, o atributo Número da Matrícula identifica univocamente uma aluno. Entidade Forte ou Dominante Entidade cuja existência independe de outras entidades, podendo, esta, determinar a existência de entidades que a ela são subordinadas. Podem ser identificadas univocamente por atributos próprios. Entidade Fraca ou Subordinada Uma entidade fraca é existencialmente dependente de outra. Ou seja, se a entidade de que depende deixa de existir, esta também o faz. Um exemplo claro é a relação entre as entidades Cliente (dominante) e Dependente (subordinada). Estas entidades não podem ser identificadas apenas por seus atributos; a chave destas entidades é composta da chave da entidade forte e de um ou mais atributos próprios da entidade fraca (chamados de discriminadores). No DER, são representadas por um retângulo de bordas duplas. No exemplo a seguir, entidade Dependente é uma entidade fraca pois está subordinada à existência de SÓCIO. Uma entidade fraca está sempre associada a uma entidade forte através de um relacionamento chamado de Relacionamento de Dependência. 01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 4/6 Relacionamento Um relacionamento é umaassociação entre entidades (possivelmente distintas). Por exemplo, as entidades Aluno e Curso têm uma relação, num sistema de registro escolar. No DER, um relacionamento é representado por um losango ligado às entidades participantes. Pode haver um relacionamento entre ocorrências de uma mesma entidade. Tal relacionamento recebe o nome AutoRelacionamento. Grau do Relacionamento O grau de um relacionamento é o número de entidades que participam do relacionamento. Por exemplo, o relacionamento Matriculase em mostrado no exemplo anterior é um relacionamento binário ou relacionamento de grau dois. O grau de um relacionamento, na prática, nunca ultrapassa 4 ou 5. Cardinalidade A cardinalidade expressa o número máximo de entidades de um dado conjunto de entidades que pode se relacionar, através de um relacionamento, com uma ocorrência das outras entidades participantes. Por exemplo, um Aluno só pode estar matriculado em um único Curso. Por sua vez, um Curso pode ter vários alunos matriculados. Logo o relacionamento entre Aluno e Curso é 1:N (leiase um para muitos). A cardinalidade de um relacionamento binário, por exemplo, pode ser 1:1,1:N, N:1 ou N:N. No DER, a cardinalidade é representada por setas simples ou duplas. Setas simples indicam cardinalidade 1 enquanto setas duplas indicam cardinalidade N. A seguir, temos um exemplo de um relacionamento com cardinalidade N1. Totalidade Totalidade é uma restrição de obrigatoriedade, de uma entidade, na participação de um relacionamento. Por exemplo, se um aluno deve, obrigatoriamente, estar matriculado em algum Curso, então diz se que a entidade Aluno é Total em relação ao relacionamento Matriculase Em. No DER, a totalidade é representada pelo círculo cheio . Projeto de Banco de Dados A Importância da Fase de Projeto Os erros de projeto são os mais freqüentes em grandes projetos e os mais difíceis de serem corrigidos. 01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 5/6 Descobrir um erro de concepção do banco de dados, depois de o sistema estar quase pronto, ou depois de descritas suas rotinas, representará refazer grande parte do trabalho. Se o sistema já estiver em operação, o esforço será ainda maior, pois existirá uma preocupação a mais: manter os dados do usuário. Um bom projeto significará maior chance de os possíveis problemas serem detectados logo no início do desenvolvimento e de o sistema se tornar, depois de pronto, o desejado pelo cliente. O projeto leva o desenvolvedor a uma melhor análise de requisitos do sistema e dos dados que ele deve armazenar. Um bom projeto melhora a legibilidade, a confiabilidade, diminui o custo de desenvolvimento de um software e aumenta a satisfação de seus usuários. Projeto em Nível Conceitual Criar o esquema do banco de dados em nível conceitual é uma poderosa ferramenta de projeto. Permite uma visão geral do banco de dados, sem se preocupar com detalhes, facilitando sua compreensão. O Diagrama EntidadeRelacionamento é uma representação consagrada. Nesta fase, é possível definir quais os componentes ou objetos serão representados, quais os seus interrelacionamentos e como se comportarão no sistema. O projetista poderá prever possíveis situações não cobertas pelo esquema de banco de dados projetado e ir alterandoo até que se encontre uma representação o mais estável possível. Após esta primeira etapa de projeto, o projetista terá em mãos uma planta do banco de dados. Detalhála será o próximo passo do projeto, que será dado através da transposição do esquema em nível conceitual para o nível lógico, dando continuidade ao projeto. Projeto em Nível Lógico Alguns profissionais começam o projeto por aqui. Mas, a menos que o banco de dados seja muito pequeno, não representa uma boa prática saltar a fase de projeto conceitual. O projeto lógico deve ser uma etapa de refinamento e detalhamento do projeto a partir do modelo conceitual. No esquema do banco de dados, em nível lógico, modelamos o esqueleto do banco de dados. Nós nos concentramos nos detalhes das informações que serão armazenadas e chegamos à definição das estruturas necessárias para armazenálas. Este trabalho será bem menor, talvez inexistente (no caso de usarmos uma ferramenta CASE), se já tivermos feito um bom projeto em nível conceitual. O nível lógico é obtido, a partir do projeto conceitual, através da operação de transposição (aplicação de um conjunto de regras de mapeamento do projeto conceitual para o projeto lógico). De posse do projeto lógico, bastará implementar o banco de dados no SGBD escolhido. Projeto em Nível Conceitual versus Projeto em Nível Lógico O projeto conceitual dá uma visão geral dos dados e dos relacionamentos entre eles, mas não entra em muitos detalhes na forma de implementação. Estes detalhes são 01/03/2016 Modelagem de dados file:///D:/Apoio%20diversos/Curso%20Ciencia%20da%20Computa%C3%A7%C3%A3o%20Superior%20completo/Modelagem%20de%20Dados/Banco%… 6/6 tratados no projeto lógico, que descreve, com precisão, as estruturas de dados do banco, mas que, por ser mais preciso, dificulta uma visão mais geral dos dados. O projeto conceitual pode ser usado para incrementar a comunicação entre o projetista e o usuário que requisitou o sistema. Sistemas complexos podem ser modelados em diagramas simples, de fácil entendimento e grande representatividade. Baseado neste projeto, analistas e usuários vão acertando detalhes e amadurecendo a concepção do sistema. O projeto lógico pode ser usado como base para descrever as rotinas do sistema e será objeto de muita análise e discussão entre os membros da equipe de desenvolvimento (muitos geradores automáticos de aplicações geram código a partir do projeto lógico). Um bom projeto de banco de dados passa, necessariamente, pelos projetos conceitual e lógico.
Compartilhar