Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Modelagem de Dados, Notas de estudo de Análise de Sistemas de Engenharia

Apostila de Modelagem de Dados

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 29/04/2010

Aldair85
Aldair85 🇧🇷

4.7

(27)

222 documentos

1 / 37

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CURSO TÉCNICO DE INFORMÁTICA
MODELAGEM DE
DADOS 1
Primeira Etapa
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Pré-visualização parcial do texto

Baixe Modelagem de Dados e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

CURSO TÉCNICO DE INFORMÁTICA

MODELAGEM DE

DADOS 1

Primeira Etapa

CAPITULO I

VISÃO GERAL DO GERENCIAMENTO DE

BANCO DE DADOS

O computador é uma máquina como muitas outras, mas que possui algumas características que a distinguem das demais, como a velocidade do processamento e a capacidade de armazenamento. É um equipamento que, com o passar dos anos, se

tornou de uso pessoal e profissional, podendo ser utilizado no lazer e no dia-a-dia, nas mais variadas tarefas. Olhando por um prisma mais direto, o computador possui três tarefas básicas: entrada , processamento e saída de dados.

A entrada de dados é responsável pela importação das informações para o computador e está relacionada diretamente à interação com o usuário, pois na maioria das vezes depende da informação digitada por ele através da forma mais simples de

interação: o teclado. Já a saída de dados representa os dados informados na entrada, mas que, de alguma forma, foram transformados atendendo as expectativas do usuário, sendo apresentados por meio de algum dispositivo de saída, como impressora ou

monitor.

O processo de transformação dos dados de entrada em dados de saída chama-se processamento. Com o passar dos anos, uma nova tarefa tão importante quanto às

outras foi adicionada a esse ambiente: o armazenamento dos dados.

Tão importante quanto informar os dados, processá-los e apresentá-los, a sua organização e armazenamento no computador passou a ser uma tarefa essencial,

principalmente pelo grande número de usuários que podem interagir com o equipamento ao mesmo tempo. Com o passar dos anos, o número de dados processados cresceu de

forma assustadora e, de forma inversamente proporcional, o computador tem diminuído em dimensões físicas e aumentado em capacidade de armazenamento e processamento de dados.

Gerenciar e armazenar dados tornou-se uma tarefa complexa, que envolve muitas ferramentas e tecnologias. Com a grande evolução da computação ou da informática em geral, os equipamentos têm evoluído muito, o que tem tornado o seu custo mais

acessível. Com isso, o uso do computador tem atingido os mais variados perfis de usuários.

A principal finalidade do computador é armazenar dados, que possam ser

acessados a qualquer momento e em qualquer lugar do mundo. Quanto maior o número de computadores, maior o número de dados a serem gerenciados e processados. Como a tendência é que esse número aumente a cada ano, a complexidade dos dados

armazenados deverá ser um grande problema na área de informática.

Em paralelo a esse grande número de novos usuários de computadores, bem como à expansão na facilidade de acesso aos computadores e às novas tecnologias em

hardware, há também uma grande evolução na área de softwares, principalmente os que se destinam ao gerenciamento dos dados armazenados no computador. Esses softwares

  • Volumes de aramazenamento secundário – normalmente, discos magnéticos -, que são usados para manter os dados armazenados, juntamente com os dispositivos de E/S associados (unidades de discos, etc.), controladores de dispositivos, canais de E/s e assim por diante.
  • Processador(es) de hardware e memória principal associada , que são usados para dar suporte à execução do software do Sistema de Banco de Dados. Software

Entre o banco de dados físico – ou seja, os dados fisicamente armazenados – e os usuários do sistema existe uma camada de software, conhecida como gerenciador de

banco de dados ou servidor de bando de dados ou, mais frequentemente, como sistema gerenciador de banco de dados (SGBD). Todas as requisições de acesso ao banco de dados são tratadas pelo SGBD; os recursos para acrescentar e remover arquivos (ou

tabelas), buscar dados e atualizar dados em tais arquivos ou tabelas, e assim por diante, são facilidades fornecidas pelo SGBD

O SGBD é, de longe, o componente de software mais importante de todo o sistema mas não é o único. Outros componentes incluem utilitários, ferramentas de desenvolvimento de aplicações, recursos para auxiliar no projeto, geradores de relatórios e o gerenciador de transações. O termo SGBD também é usado para se referir, genericamente, a algum produto específico de algum fornecedor em particular.

Usuários

Consideramos três classes gerais de usuários:

  • Os programadores de aplicações, responsáveis pela escrita de programas de aplicações de banco de dados em alguma linguagem de programação. Esses programas acessam o banco de dados emitindo a requisição apropriada ao SGBD.
  • Os usuários finais acessam ao banco de dados interativamente.
  • Os profissionais da área de banco de dados, à saber:

Administrador de Dados que é a pessoa responsável pelos dados da empresa. Os dados constituem um dos bens mais valiosos da empresa, é imperativo que deva existir alguma pessoa que entenda esses dados e as necessidades da empresa com relação a esses dados, em um nível mais elevado da administração. É seus trabalho decidir que dados devem ser armazenados no banco de dados, além de estabelecer normas para manter e tratar esses dados, uma vez que venham a ser armazenados.

Administrador de Banco de Dados (DBA) é o técnico responsável pela implementação das decisões do Administrador de Dados. É um profissional de tecnologia da informação. Seu trabalho é criar o banco de dados propriamente dito e implementar os controles técnicos necessários para por em prática as diversas decisões sobre normas tomadas pelo Administrador de Dados. Também é responsável por assegurar que o sistema operará com desempenho adequado e por oferecer vários outros serviços técnicos.

1.2- O QUE É UM BANCO DE DADOS?

No vasto mundo da tecnologia da informação, há poucas coisas tão fascinantes quanto à forma de armazenamento, controle e recuperação dos dados referentes a

sistemas de informação.

A análise de um sistema de informação começa pela definição do objetivo a ser atingindo e das informações que se pretende armazenar a respeito do assunto que define

o sistema.

A primeira providência a tomar é o contato direto com os dados pertinentes às informações de que se deseja tratar.

A utilização prática dessas informações, mesmo sabendo que parecem ser complexas, é de domínio relativamente fácil a partir do momento em que se decide sobre as configurações básicas para guardar, controlar e recuperar em tempo hábil os dados

específicos que apóiam as informações desejadas.

Quando se abordam os conceitos de dados e informações, deve-se ter presente

que dado é um conjunto de símbolos arrumados de forma a representar uma informação, e que a informação propriamente dita compreende os dados que foram inseridos e processados por um computador, relativos a um assunto determinado, vários assuntos,

ramos de atividades, produtos ou serviços, que se tornam disponíveis a quem os requisitou.

A informação, portanto, é um dado ao qual se agrega valor e que afeta as

empresas de forma efetiva, o que a transforma num bem tão precioso quanto o seu patrimônio. Para que o crescimento de uma empresa no mercado seja alcançado e para que ela consiga tratar as novas tecnologias apresentadas, terá que se preocupar muito

em como organizar e recuperar suas informações.

Nos mais elementares campos do conhecimento humano, existem repositórios gigantescos de dados que permitem a recuperação de informações cruciais para o

atendimento das necessidades das pessoas e das organizações. Documentos de identidade, registros de nascimento e de casamento, títulos eleitorais, carteiras de motoristas, entre outros, são exemplos conhecidos desses gigantescos repositórios.

Todas as vezes que alguém realiza uma transação num caixa eletrônico do seu banco, deseja obter informações que sejam geradas de forma rápida e restrita, sem redundância e, principalmente, íntegras.

A dificuldade em se manipular e controlar os imensos repositórios de dados existentes leva a estudos cada vez mais apurados das tecnologias aplicadas aos métodos

de armazenamento de informações e seus impactos no uso de computadores.

Quando se estudam as formas de armazenamento, controle e recuperação de dados, é necessário fazer referência aos computadores envolvidos e aos relacionamentos

existentes entre eles para a determinação dos tipos e da representação desses tipos por meio de modelos ou esquemas fáceis de serem tratados.

Uma coleção de informações relacionadas entre si, referentes a um mesmo

assunto, e organizadas com o propósito de servir de base para que o usuário as recupere, tire conclusões e tome decisões, é o que define um banco de dados.

O banco de dados, por si só, pode ser considerado como o equivalente eletrônico

de um armário de arquivamento; ou seja, ele é um repositório ou recipiente para uma coleção de arquivos de dados computadorizados. Os usuários de um sistema podem

de informações de todas as aplicações, facilita o desenvolvimento de novas aplicações e a aplicação das restrições de segurança.

É o software que trata de todo o acesso ao banco de dados. Conceitualmente, o

que ocorre é o seguinte:

  • Um usuário faz um pedido usando uma determinada sublinguagem de dados (geralmente SQL);
  • O SGBD intercepta o pedido e o analisa;
  • O SGBD, por sua vez, inspeciona o esquema externo, para esse usuário;
  • O SGBD executa as operações necessárias sobre o banco de dados armazenado.

Um SGBD é uma coleção de programas que permitem ao usuário definir, construir

e manipular Bases de Dados para as mais diversas finalidades.

Existem algumas regras básicas e claras para que um sistema de manipulação de dados possa ser considerado um SGBD. Fica implícito que se ao menos uma das

características abaixo não estiver presente no nosso "candidato" a SGBD, este poderá ser um Gerenciador de Arquivo de altíssima qualidade, "quase" um SGBD, mas não um SGBD.

Regra Explicação

Auto-Contenção Um SGBD não contém apenas os dados em si, mas armazena completamente toda a descrição dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra é chamada de Meta-Base de Dados. Independência dos Dados

Quando as aplicações estiverem realmente imunes a mudanças na estrutura de armazenamento ou na estratégia de acesso aos dados, podemos dizer que esta regra foi atingida. Portanto, nenhuma definição dos dados deverá estar contida nos programas da aplicação. Quando você resolve criar uma nova forma de acesso, um novo índice, se precisar alterar o código de seu aplicativo , você não está lidando com um SGBD. Abstração dos Dados Em um SGBD real é fornecida ao usuário somente uma representação conceitual dos dados, o que não inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados é um tipo de abstração utilizada para fornecer esta representação conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso são exibidas ao usuário, porém nada é afirmado sobre a criação dos índices, ou como serão mantidos, ou qual a relação existente entre as tabelas que deverá ser mantida íntegra. Assim se você desejar inserir um pedido em um cliente inexistente e esta entrada não for automaticamente rejeitada, você não está lidando com um SGBD. Visões Um SGBD deve permitir que cada usuário visualize os dados de forma diferente daquela existente previamente no Banco de Dados. Uma visão consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados. Transações Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar em tempo algum, do auxílio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instrução que permita a gravação de uma série

Aplicação 1 Aplicação 2 Aplicação 3

S

modificações simultâneas e uma instrução capaz de cancelar uma série modificações. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que estão disponíveis e portanto são reservados, porém existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transação deverá ser desfeita com apenas uma instrução ao Banco de Dados, sem qualquer modificação suplementares nos dados. Caso você se obrigue a corrigir as reservas, através de acessos complementares, você não está lidando com um SGBD. Acesso Automático Em um Gerenciador de Arquivos uma situação típica é o chamado Dead- Lock, o abraço mortal. Esta situação indesejável pode ocorrer toda vez que um usuário travou um registro em uma tabela e seu próximo passo será travar um registro em uma tabela relacionada à primeira, porém se este registro estiver previamente travado por outro usuário, o primeiro usuário ficará paralisado, pois, estará esperando o segundo usuário liberar o registro em uso, para que então possa travá-lo e prosseguir sua tarefa. Se por hipótese o segundo usuário necessitar travar o registro travado pelo primeiro usuário, afirmamos que ocorreu um abraço mortal, pois cada usuário travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro. Imaginemos um caso onde o responsável pelos pedidos acabou de travar o Registro Item de Pedido, e, necessita travar um registro no Cadastro de Produtos, para indicar uma nova reserva. Se concomitantemente estiver sendo realizada uma tarefa de atualização de pendências na Tabela de Itens, e para tanto, previamente este segundo usuário travou a Tabela de Produtos, temos a ocorrência do abraço mortal. Se a responsabilidade de evitar esta ocorrência for responsabilidade da aplicação, você não está lidando com um SGBD.

As funções do SGBD devem incluir o suporte a, pelo menos, todos os itens a seguir:

  • Definição de Dados : o SGBD deve ser capaz de aceitar definições de dados em formato fonte e convertê-los para o formato objeto adequado.
  • Manipulação de Dados : O SGBD deve ser capaz de lidar com as requisições do usuário para buscar atualizar ou excluir dados existentes no banco de dados, ou para acrescentar novos dados ao banco de dados.
  • Otimização e Execução : O SGBD deve ser capaz de determinar um modo eficiente de implementar a requisição.
  • Segurança e Integridade de Dados : O SGBD, ou algum subsistema chamado, pelo SGBD, deve monitorar requisições de usuários e rejeitar toda a tentativa de violar as restrições de segurança e integridade definidas pelo DBA.
  • Recuperação de Dados e Concorrência : O SGBD deve impor certos controles de recuperação e concorrência.
  • Dicionário de Dados : Pode ser considerado um banco de dados isolado (mas um banco de dados do sistema, não um banco de dados do usuário); ele contém “dados sobre os dados” – ou seja, definições de outros objetos do sistema, em vez de somente “dados crus”.
  • Desempenho : É irrelevante dizer que o SGBD deve realizar todas as funções identificadas anteriormente de forma tão eficiente quanto possível.

1.3.1- ABSTRAÇÃO DE DADOS

Os sistemas gerenciadores de banco de dados podem ser classificados de diversas maneiras, como por modelo de dados, por número de usuários, por localização, entre outros.

Por Modelo de Dados

Modelo Descrição

Modelo Hierárquico Este modelo de banco de dados é descrito por um diagrama de estrutura de árvore, com dois componentes básicos: as caixas correspondentes aos tipos de registro e as linhas que representam as ligações entre os tipos de registro. Pode ser representado diretamente quando os dados são definidos com relacionamentos hierárquicos, isto é, um segmento raiz, localizado no topo da estrutura, que se relaciona com outros segmentos de cima para baixo, da esquerda para a direita, denominado de diagrama de estrutura de dados ou de árvore (relacionamento do topo para baixo e das folhas para dentro). Este modelo se tornou viável quando a estrutura dos discos de armazenamento se tornou endereçável, possibilitando a representação hierárquica das informações coma utilização do endereçamento físico daqueles dispositivos. Todos os bancos de dados apresentam vantagens e desvantagens em sua utilização, e com o banco de dados modelo hierárquico não é diferente. Ele é um modelo bastante simplificado, representa naturalmente sistemas que possuem uma hierarquia bem definida, não representando sistemas que não possuem tais características, além de aumentar os índices de redundância (duplicidade), possuir tempos de consulta e processamento reconhecidamente altos. Modelo de Rede Pode ser visto como uma extensão mais completa do modelo hierárquico, apenas livre das dificuldades encontradas no modelo anterior. Os controles existentes quanto aos recursos de armazenamento, estrutura e caminhos utilizados para navegar de um registro a outro tornam o modelo de rede mais completo. O banco de dados em rede é composto de uma estrutura mais completa, possui as propriedades básicas de registros, conjuntos e ocorrências, e utiliza a linguagem de definição de banco de dados (DDL) e a linguagem de manipulação de dados (DML), além de permitir uma evolução mais eficiente do modelo. A estrutura é formada de entidade (registros), atributos (itens de dados), tipos de registros e ocorrência do registro. Tanto no modelo hierárquico quanto o de rede são chamados de sistemas de navegação, pois as aplicações devem ser construídas para atravessar um conjunto de registros interligados previamente. A maior vantagem do modelo de rede frente ao hierárquico é um melhor controle sobre a redundância de dados. Modelo Relacional O banco de dados mais utilizado atualmente é o banco de dados relacional, principalmente pelas suas fortes características de seguranças, compartilhamento e integridade dos dados, fatores primordiais para uma administração eficaz da informação de qualquer empresa. Com o próprio nome diz, esse tipo de banco de dados é composto de relações entre entidades, denominadas tabelas, seguindo o mesmo conceito matemático de relação. As tabelas se relacionam por meio de chaves denominadas estrangeiras, que podem ser simples, formadas por apenas um atributo, ou compostas, formadas por vários atributos. Por atributo compreende-se a representação de um tipo de informação. Para que um modelo seja considerado relacional, os dados devem ser armazenados em tabelas, nenhum ponteiro ou ligação deve ser visível ao usuário, a linguagem de consulta deve ser relacionalmente completa e as consultas podem ser expressas sem uso de iterações ou recursões. Cada linha da tabela, formada por um conjunto de colunas, representa um registro (ou tupla ). Os registros não precisam necessariamente conter dados em todas as colunas, ou seja, seus valores podem ser nulos. As colunas de uma tabela são também chamadas de campos. Os campos possuem características que definem o dado que será armazenado. Os sistemas de banco de dados possuem normas que irão reger os dados que são armazenados. Em um banco de dados pode existir uma ou centenas de tabelas. O limitador é imposto exclusivamente pela ferramenta computacional ou SGBD utilizado. Cada coluna de uma tabela obedece às regras definidas na sua criação. Cada coluna recebe um tipo de dado, que representa o conjunto de valores que podem ser armazenados em cada uma das colunas. Basicamente, cada coluna representa o tipo de cada dado, ou seja, as regras de entrada dos dados, evitando a incompatibilidade. Já as linhas representam todos os dados cadastrados, ou seja, um conjunto de colunas ou campos. As linhas representam o número de registros cadastrados na tabela e as colunas representam os tipos de dados ou campos cadastrados. Alguns campos da tabela, além do tipo de dados, possuem uma propriedade adicional. Esses campos recebem o nome de chave. Existem dois tipos de chaves: chave primária ( É a chave que identifica cada registro, dando-lhe unicidade. Essa chave nunca de se repetirá dentro da estrutura da tabela) e chave estrangeira (É a chave formada pela chave primária de outra tabela e a chave de um campo da tabela externa que recebe o relacionamento. Essa chave, de forma resumida, define um relacionamento entre as tabelas e pode ocorrer repetidas vezes). Modelo Orientado a Objetos

Trata-se basicamente de um sistema em que a unidade de armazenamento é vista como um objeto, ou seja, ela tem propriedades e não campos. A principal

Modelo Descrição

característica desse tipo de banco de dados é a abstração dos dados. Combina os benefícios e conceitos da programação orientada a objetos com a funcionalidade dos banco de dados. A vantagem é a lógica contida no objeto e a possibilidade de ser reutilizado várias vezes em diversas aplicações.

Por Número de Usuários

Monousuários é o tipo de banco de dados, construído para utilização de apenas um usuário de cada vez, diferentemente dos bancos multiusuários, que garantem a utilização dos dados de forma compartilhada por vários usuários ao mesmo tempo.

Por Localização

Banco de dados distribuído é uma estrutura com dois ou mais arquivos armazenados em diferentes locais, em uma rede de computadores, responsável pelo

armazenamento e recuperação das informações de forma transparente para os usuários. As características principais que um banco de dados distribuído deve possuir são

descritas a seguir:

  • Tolerância a falhas;
  • Independência em relação ao site central;
  • Autonomia para as transações locais;
  • Independência de localização;
  • Independência de replicação;
  • Independência de hardware e de rede;
  • Processamento distribuído de consultas;
  • Independência do sistema operacional;
  • Gerenciamento de transações distribuídas;
  • Controle de consistência.

A implementação de um banco de dados distribuído não constitui tarefa fácil, cabendo uma análise bem-feita sobre as necessidades de se usar ou não essa estrutura, optando-se, em muitos casos, pela utilização de banco de dados centralizado, onde todos

os programas e processamentos ocorrem no computador hospedeiro, que traz como maior vantagem a segurança da centralização.

As vantagens apresentadas pelo banco de dados em relação à arquitetura tradicional de arquivos são:

  • Redução e eliminação de redundâncias. Na arquitetura tradicional de arquivos, cada sistema possui seus próprios arquivos, provocando desperdício de espaço de armazenamento quando as informações são duplicadas. Com a utilização de banco de dados, os dados comuns a mais de um sistema podem ser compartilhados, o que permite o acesso a uma única fonte da informação.
  • Eliminação de inconsistências. Como a informação está armazenada em um único local, compartilhada por vários sistemas, e é atualizada por apenas uma fonte, os usuários utilizam informações mais confiáveis.
  • Compartilhamento de dados. Permite que mais de uma aplicação ou usuário, independentemente da operação que está sendo realizada, tenha acesso aos dados simultaneamente e de uma forma mais segura. O compartilhamento também diminui os custos quando da implementação de novas aplicações ou sistemas.

Para construir um modelo de dados usa-se uma linguagem de modelagem de dados. Estas linguagens podem ser classificadas de acordo com a forma de apresentar modelos, em linguagens textuais ou linguagens gráficas. Existem linguagens de modelagem para descrever modelos de dados em diferentes níveis de abstração e com diferentes objetivos. Cada representação de um modelo de dados através de uma linguagem de modelagem de dados recebe a denominação de esquema de banco de dados.

De acordo com a intenção do modelador, um banco de dados pode ser modelado (descrito) em vários níveis de abstração. Um modelo de dados que servirá para explicar a um usuários leigo em informática qual é a organização de um banco de dados provavelmente não conterá detalhes sobre a representação em meio físico, das informações. Já um modelo de dados usado por um técnico para otimizar a performance de acesso ao banco de dados conterá mais detalhes de como as informações estão organizadas internamente e, portanto, será menos abstrato.

Assim como é possível, construir modelos de dados em vários níveis de abstração , também, é possível usar diferentes técnicas, aplicando diferentes conceitos aos construir modelos. Ao conjunto de conceitos usados na construção de um modelo denominamos de abordagem de modelagem.

2.1- MODELO CONCEITUAL

Representa e descreve a realidade do ambiente do problema, constituindo-se em uma visão global dos principais dados e seus relacionamentos (estruturas de informação), completamente independente dos aspectos de sua implementação tecnológica. Quando

falamos em modelo conceitual, estamos nos referindo aquela que deve ser a primeira etapa de um projeto de um banco de dados.

O objetivo do modelo conceitual é descrever de forma simples e facilmente compreendida pelo usuário final as informações de um contexto de negócios, as quais

devem ser armazenadas em um banco de dados. É uma descrição de alto nível, mas que tem a preocupação de captar e retratar a realidade de uma organização, processo de negócio, setor, repartição, departamento, etc.

Devemos destacar que o modelo conceitual não retrata nem é vinculado aos aspectos ligados a abordagem de banco de dados que será utilizado e tampouco se preocupa com as formas de acesso ou estruturas físicas implementadas por SGBD

específico.

O resultado de um modelo conceitual é um esquema gráfico que representa a realidade das informações existentes em um determinado contexto de negócios, assim

como as estruturas de dados em que estão organizadas essas informações.

O modelo conceitual nunca deve ser construído com considerações sobre processos de negócios. O foco deve ser dirigido sempre ao entendimento e representação de uma realidade de um contexto.

2.2- MODELO LÓGICO

Ele somente tem o seu início após a criação do modelo conceitual. A partir deste ponto vamos considerar uma das abordagens possíveis da tecnologia de SGBDs

(relacional, hierárquico, rede e orientado a objetos) para a estruturação e estabelecimento da lógica dos relacionamentos existentes entre os dados definidos no modelo conceitual.

O modelo lógico descreve em formato as estruturas que estarão no banco de dados de acordo com as possibilidades permitidas pela sua abordagem, mas sem considerar, ainda, nenhuma característica específica de SGBD. Isso resulta em um esquema lógico de dados sob a óptica de uma das abordagens citadas, através do emprego de uma técnica de modelagem de dados orientada às restrições de cada abordagem.

2.3- MODELO FÍSICO

O modelo físico será construído a partir do modelo lógico e descreve as estruturas físicas de armazenamento de dados, tais como:

  • Tipo e tamanho de campos;
  • Índices;
  • Domínio de preenchimento desses campos;
  • Nomenclaturas;
  • Exigência de conteúdo;
  • Gatilhos; etc. Estas são projetadas de acordo com os requisitos de processamento e uso mais econômico dos recursos computacionais. Esse modelo detalha o estudo dos métodos de acesso ao SGBD para a criação dos índices necessários para cada informação colocada nos modelos conceitual e lógico.

Criado por Edgar F. Codd, nos anos 70, começou a ser realmente utilizado nas empresas a partir de 1987. A abordagem relacional está baseada no principio de que as informações em uma base de dados podem ser consideradas relações matemáticas e que estão representadas de maneira uniforme com o uso de tabelas bidimensionais.

Este princípio coloca os dados direcionados a estruturas mais simples de armazenamento de dados, que são as tabelas, e nas quais a visão do usuário é privilegiada.

3.1- TEORIA RELACIONAL

A abordagem relacional representa uma forma de descrever um banco de dados através de conceitos matemáticos simples: a teoria dos conjuntos.

Voltada, principalmente, a melhorar a visão dos dados pelos usuários, a abordagem relacional faz com que os usuários vejam o banco de dados como um conjunto de tabelas bidimensionais, originadas em linhas e colunas.

O conceito principal vem da tória dos conjuntos atrelado à concepção de que não é relevante ao usuário saber onde os dados estão nem como os dados estão (transparência).

Os usuários manipulam estes objetos dispostos em linhas e colunas das tabelas que possuem informações sobre o mesmo assunto de forma estruturada e organizada.

Para lidar com estes objetos, o usuário conta com um conjunto de operadores e funções de alto nível, constantes na álgebra relacional.

A Teoria Relacional possui premissas que definem uma tabela de dados:

  • Cada uma das tabelas é chamada de relação;
  • O conjunto de uma linha e suas colunas é chamado tupla;
  • Cada coluna dessa tabela tem um nome e representa um domínio da tabela;
  • Não há duas linhas iguais;
  • Usamos nomes para fazer referência às colunas;
  • Cada tabela tem um nome próprio, distinto de qualquer outra tabela no banco de dados.

Exemplo 1

Tabela de CDs

Nº do CD

Dt da Gravação

Título do Conteúdo

Responsável Local onde está guardado

São conjuntos de dados vistos segundo um conjunto de TABELAS, e as operações que as utilizam são feitas por linguagens que o manipulam, não sendo procedurais, ou seja, manipulando conjuntos de uma só vez.

1 24/01/2001 Clipart Samir Estojo Verde 3 13/02/2000 IRRF 2000 Felipe Caixa de Documentos 2 14/12/2000 Backup Textos Felipe Estojo Azul 4 25/01/2000 Fotos Gramado Samir Caixa de Álbum 3

Podemos observar a tabela de CDs que os conceitos listados anteriormente em relação às tabelas relacionais estão destacados:

  • A ordem das linhas é irrelevante, pois o CD de número 2 vem após o CD de número 3. Se observarmos mais detalhadamente, veremos que o CD número 3 tem uma data inclusive menor que o CD de número 2;
  • Nenhuma linha se repete nesta tabela;
  • A ordem das colunas também não tem nenhum destaque, ou importância, pois não estão em nenhuma ordem lógica;
  • Todas as colunas têm um nome, que identifica o seu conteúdo, ou melhor, o significado do valor de seu conteúdo.

Exemplo 2

Tabela Funcionários

Nome Sexo Matrícul a

Departame nto

Cargo Salário

João Carlos M 373 TI Operações Operador 3.000, Carlos Brito M 872 TI Programação

Programador I 3.500,

Silvia Morais F 963 TI Análise Analista Sistemas II

Claudia Tereza F 161 TI Gerência Secretaria 1.500, Pedro Julio M 292 RH Diretor 6.000, Pedro Julio M 574 TI Análise Analista Sistemas I

Vamos analisar a tabela acima:

  • A coluna matrícula não indica nenhuma ordem para as linhas, confirmando o conceito de que a ordem das linhas é irrelevante;
  • Todas as colunas têm um nome que significa algo sobre o assunto, o que é bem evidente;
  • A disposição das colunas não tem nenhuma finalidade de classificação, tampouco indica ordem de leitura dos dados;
  • A modificação da ordem das colunas não acarreta prejuízo nenhum do assunto ou da representatividade da tabela;

Salário Nome Sexo Matrícu la

Departamen to

Cargo

3.000,00 João Carlos M 373 TI Operações Operador 3.500,00 Carlos Brito M 872 TI Programador I

existência da múltipla ocorrência de valores (multivalorados) em nenhum de seus atributos (colunas).

É importante a compreensão de que cada linha de uma tabela representa um objeto, um assunto que é descrito pelos valores de cada uma dessas colunas.

O esquema de uma relação, ou seja, a sua definição pode ser interpretada como

uma declaração, ou um tipo de afirmação.

O exemplo de uma tabela funcionário apresenta:

  • Número de registro (NumReg), nome de funcionário (NomeFunc), data de admissão (DtAdmissão), sexo (Sexo), telefone (Fone) e departamento (CodDepto);
  • Cada tupla (linha) da relação (tabela) deve ser interpretada como fato ou uma ocorrência particular dessa afirmação;

NumReg NomeFunc DtAdmiss ão

Sexo Fone CodDep to 101 Luis Sampaio 10/08/2003 M 2565- 8974

D

104 Carlos Pereira 02/08/2004 M 31331- 4649

D

134 José Alves 23/03/2002 M 2386- 8897

D

121 Luiz Paulo Souza 10/05/2001 M 2241- 5896

D

25 Marta Silveira 05/12/2002 F 2693- 5521

D

139 Ana Luiza Magalhães 12/01/2003 F 4545- 8899

D

123 Pedro Sergio Doto 29/01/2003 M 2496- 8855

D

148 Larissa Silva 01/06/2003 F 4289- 9675

D

115 Roberto Fernandes 15/06/2002 M 2685- 8132

D

22 Sergio Nogueira 10/10/2000 M 2594- 3122

D

3.3- DOMÍNIO

Representa o conjunto de valores atômicos admissíveis de um componente

(coluna) de uma relação (tabela).

Exemplo

  • Telefone: conjunto de 10 dígitos;
  • Idade_Empregado: 16 ≥ idade ≤ 70;
  • Departamentos: conjunto de departamentos de uma empresa.

A cada domínio está associado um tipo de dados ou formato.

Exemplo

  • Telefone: (ddd) dddd-ddddd, onde d={0,1,2,3,4,5,6,7,8,9}
  • Idade_Empregado: número inteiro entre 16 e 70

Restrições de domínio são estabelecidas determinando-se domínios de valores para cada coluna de uma tabela. Normalmente são estabelecidos e definidos os valores que uma coluna de uma tabela pode ter, isto é, o domínio da coluna. Permitem, por exemplo:

  • Verificar os valores inseridos em um banco de dados;
  • Testar consultas para garantir que as comparações tinham sentido;
  • Em geral, o domínio é especificado por tipos primitivos de dados, tais como: interger, float, char, date, Money, time, etc.

Também, podem ser descritos pela definição de subconjuntos de tipos primitivos ou de listas enumeradas, ou seja, listas de valores possíveis de existir na coluna.

3.4- CHAVE PRIMÁRIA

Em toda e qualquer tabela existente em um banco de dados relacional haverá sempre uma coluna ou um conjunto de colunas concatenadas, cujos valores são únicos na tabela, isto é, nunca se repete aquele valor em nenhuma outra linha da tabela.

Essa coluna ou conjunto de colunas concatenadas identifica uma única linha da tabela. Então dizemos que essa coluna ou conjunto de colunas forma a chave primária da tabela.

NumReg NomeFunc DtAdmiss ão

Sexo Fone CodDep to 101 Luis Sampaio 10/08/2003 M 2565- 8974

D

104 Carlos Pereira 02/08/2004 M 31331- 4649

D

134 José Alves 23/03/2002 M 2386- 8897

D

121 Luiz Paulo Souza 10/05/2001 M 2241- 5896

D

25 Marta Silveira 05/12/2002 F 2693- 5521

D

139 Ana Luiza Magalhães 12/01/2003 F 4545- 8899

D

123 Pedro Sergio Doto 29/01/2003 M 2496- 8855

D

148 Larissa Silva 01/06/2003 F 4289- 9675

D

115 Roberto Fernandes 15/06/2002 M 2685- 8132

D

22 Sergio Nogueira 10/10/2000 M 2594- 3122

D

Na tabela acima, qual coluna ou qual conjunto de colunas que concatenadas formam um identificador único para cada linha desta tabela?