Buscar

MODELAGEM DE DADOS - RESUMO Aula 1 a 10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

� PAGE \* MERGEFORMAT �22�
MODELAGEM DE DADOS
Aula 01
DADOS X INFORMAÇÃO
DADOS representam fatos em sua forma primária. Por exemplo, o nome de um empregado, a quantidade de horas trabalhadas, por cada empregado, em uma semana, os números das peças mantidas em estoque ou dos seus pedidos de compras.
INFORMAÇÃO é um conjunto de fatos organizados de tal forma que adquirem um valor adicional, além do valor do fato em si. Por exemplo, o total de vendas mensais pode ser mais adequado ao seu propósito, ou seja, pode conter mais valor, do que as vendas de cada vendedor individualmente.
SISTEMA DE INFORMAÇÃO é um conjunto de processos que transforma dados em informação.
DADOS são mais estáveis do que processos e, portanto, representam a uma das partes mais valiosas e importantes de um sistema de informação.
BANCOS DE DADOS
De acordo com (Navathe, 2005), podemos definir um banco de dados como um conjunto de dados que se relacionam. Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente,  possui as seguintes propriedades:
Um banco de dados é uma coleção lógica coerente de dados com um significado inerente;
Uma disposição desordenada de dados não pode ser referenciada como um banco de dados;
Um banco de dados é projetado, construído e populado com dados para um propósito específico; 
um banco de dados possui um conjunto pré definido de usuários e aplicações;
um banco de dados representa algum aspecto do mundo real, o qual é chamado de “mini-mundo” e qualquer alteração efetuada neste mini-mundo é automaticamente refletida no banco de dados.
SISTEMAS GERENCIADORES DE BANCOS DE DADOS E SISTEMAS DE BANCO DE DADOS
Um banco de dados é criado e mantido por um conjunto de aplicações desenvolvidas especialmente para esta tarefa denominado “Sistema Gerenciador de Banco de Dados” (SGBD).
UM SGBD é uma coleção de programas que permite aos seus usuários criarem e manipularem bancos de dados. O conjunto formado por um banco de dados e estes programas que o manipulam é chamado de Sistema de Banco de Dados.
O SGBD não mantém somente os dados, mas, também, a forma como os mesmos são armazenados, através de uma descrição completa dos dados armazenados. 
Estas informações são armazenadas no catálogo ou dicionário de dados do SGBD, que contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições, etc. 
As informações armazenadas neste catálogo são chamadas meta-dados.
Diferença entre Sistema de Arquivos e SGBD
Sistemas de Gerenciamento de Arquivos
Cada usuário define e implementa os arquivos necessários para uma aplicação específica, acarretando repetição dos dados e gerando inconsistência nas informações.
Características:
O acesso aos dados está escrito nos programas que o manipulam, subordinando os programas aos arquivos. 
Isto significa que qualquer alteração na estrutura dos arquivos acarretará alterações em todos os programas que o acessam. 
Estas alterações sempre envolvem muito tempo e muito dinheiro.
O sistema possibilita uma redundância não controlada de dados e inconsistência ao permitir que em um sistema um dado seja alterado e esse mesmo dado não seja alterado em outro.
A responsabilidade sobre os procedimentos de backup e recuperação esta a cargo da aplicação. Assim, não podem ser automatizadas e, caso o responsável pela aplicação não efetue estes backups sistematicamente, podem ocorrem perda de dados.
Sistemas Gerenciadores de Bancos de Dados (SGBD)
Características:
Um arquivo (tabela) é definido uma única vez e atende a várias aplicações, ou seja, existe múltipla visão dos dados.
Armazena-se junto com os dados todas as informações referentes à forma como estes foram estruturados e onde eles estão armazenados fisicamente. Essas informações estão armazenadas no catálogo ou dicionário de dados do SGBD.
Há separação entre programas e dados. 
Os acessos são escritos no banco de dados e os programas enviam comandos solicitando o acesso aos dados. 
Esse conceito é chamado de abstração de dados, que caracteriza-se por uma independência entre programas e dados e entre programas e operações de manipulação de dados. 
É permitido acesso simultâneo de vários usuários ao mesmo dado. Essa simultaneidade é tratada através do gerenciamento da concorrência.
Procedimentos de backup e recuperação são automatizados.
EVOLUÇÃO DOS BANCOS DE DADOS - Nos primeiros sistemas de informação, dados e processos eram mantidos juntos em um mesmo arquivo.
A partir da observação de que os dados são muito mais estáveis que os processos, em um sistema de informação, iniciou-se a época de investimentos massivos no desenvolvimento de ferramentas voltados para seu tratamento eficiente. Gradativamente, dados e processos foram separados.
Dados x programa de gerencia de dados
Dados x SGBD X Programa de Gerência de dados
Bancos de Dados Centralizados
Bancos de dados Cliente – Servidor (com servidor de arquivos)
Bancos de dados Cliente – Servidor (com servidor de Banco de Dados)
Bancos de dados distribuídos
Novas arquiteturas de BD - Datawarehouse
Novas arquiteturas de BD – Via Web
USUÁRIOS DE BANCOS DE DADOS
Em um ambiente de bancos de dados existem várias categorias de usuários. São elas:
Administrador de dados (AD) - Responsáveis por identificar os dados a serem armazenados no BD e por escolher as estruturas apropriadas para representar e armazenar esses dados. Comunicação com usuários para identificação de visões (esquemas conceituais), desenvolve e mantém o dicionário de dados, garante as necessidade corporativas de dados. 
Administradores do BD (ABD) - Desenvolve os esquemas internos através da construção das tabelas, índices, etc., autoriza o acesso ao banco de dados, de modo a coordenar e monitorar seu uso, garante a segurança dos dados, bem como seu backup e recuperação em caso de falhas.
Analistas de sistemas - Determinam os requisitos dos usuários finais e desenvolvem especificações de transações que satisfaçam esses requisitos.
Programadores de aplicação - Implementam as especificações das transações como programas, testando-os, corrigindo-os e documentando-os.
Usuários finais - Utilizam os sistemas projetados pelo analista de sistemas cuja base de dados é mantida e monitorada pelo DBA e cuja integração com o conjunto da corporação é garantido pelo esquema conceitual mantido pelo Administrador de dados.
Pessoal de suporte - Preocupam-se com o hardware disponibilizado para o ambiente.
Aula 02
Os SGBDS E Suas Funcionalidades - Um SGBD é conjunto complexo de software que deve prover um conjunto básico de funcionalidades:
Independência de dados, Controle de redundância, Compartilhamento de dados, Restrições de acesso, Restrições de integridade, Mecanismos de backup e recuperação e Múltiplas interfaces.
INDEPENDÊNCIA DE DADOS - Consiste na capacidade de permitir que haja evolução na descrição dos dados da empresa, sem que os sistemas ou aplicações tenham que ser alterados. “Representa a imunidade das aplicações às mudanças na estrutura de armazenagem e estratégias de acesso”
CONTROLE DE REDUNDÂNCIA
Redundância é armazenar o mesmo dado várias vezes, para atender diversas aplicações. Para manter a consistência do banco de dados, deve-se armazenar o dado uma única vez e em apenas um lugar, no banco de dados. Isto permite manter a consistência, economizar espaço de armazenamento.
Em alguns casos, a redundância é necessária, porém ela deve ser controlada pelo sistema de gerenciamento de banco de dados. “(Elmasri & Navathe, 2005).
É um conceito representado pelo controle centralizado dos dados compartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo justificável e aceita apenas por questão de desempenho.” (Cerícola, 1991).
PROBLEMAS DA REDUNDÂNCIA DE DADOS:
Duplicação de esforço para manter os dados atualizados;
 Desperdício de espaço de armazenamento;Possibilidade de inconsistência dos dados;
COMPARTILHAMENTO DE DADOS - Permitir a usuários diferentes a utilização simultânea de um mesmo dado.
PROCESSAMENTO DE TRANSAÇÕES
Transação: é um processo que inclui um ou mais acessos no banco de dados, como leitura e gravação de registros.
Isolamento: garante que cada transação possa ser efetuada de forma isolada de outras transações.
Atomicidade: garante que todas as operações da transação sejam realizadas ou nenhuma delas seja.
COMPARTILHAMENTO DE DADOS - Permitir a usuários diferentes a utilização simultânea de um mesmo dado.
As informações sobre clientes podem ser acessadas pelo sistema de vendas, de contas a receber e faturamento simultaneamente.
RESTRIÇÕES DE ACESSO
Um SGBD deve prover controles de segurança e autorização, que são utilizados para criar contas e seus respectivos direitos de acesso quando múltiplos usuários compartilham um banco de dados.” (Navathe,2005).
Os controles de segurança abrangem conceitos tais como: procedimentos de validação e controle, garantia de integridade e controle de acesso, que visam resguardar o banco de dados de uma possível perda ou destruição de dados seja por falha de programa ou por falha de equipamento” (Cerícola, 1991).
Restrição de Acesso Não Autorizado:
Como todas os dados vão estar em um único local, é possível que nem todas as pessoas tenham acesso à todos os dados.
Uma pessoa da secretaria pode não ter acesso aos dados financeiro
Uma pessoa do financeiro pode não ter acesso aos dados de salários
O SGBD deve ter um mecanismo de segurança e autenticação
Criação de usuários/grupos e autenticação por senhas
Atribuição de uma série de permissões/bloqueios, mais comuns:
Apenas consultar
Consultar apenas alguns dados
Não apagar dados
Somente inserir dados
A granularidade das permissões depende do SGBD
Restrição de Integridade:
A maioria dos SGBDs proveem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Um exemplo de restrição de integridade é a definição de um tipo de dado (data type) para cada item de dado.
MECANISMOS DE BACKUP E RECUPERAÇÃO
Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software.
Estes mecanismos evitam que cada aplicação tenha que projetar e desenvolver seus próprios controles contra a perda de dados.
FALHA: Ocorre no nível mais baixo do hardware ou software.
ERRO: Uma falha pode gerar um erro. Um erro é a representação da falha no universo da informação (dados).
DEFEITO: O defeito é o que é percebido pelo usuário, é a representação de um erro no universo do usuário.
MÚLTIPLAS INTERFACES
Um ambiente de banco de dados é acessado por variados tipos de usuários com variadas necessidades de informação e com diferentes níveis de conhecimento técnico. 
Para atender esta diversidade usuários, o SGBD deva fornecer diferentes tipos de interfaces. Sendo assim este ambiente disponibiliza:
Linguagens de consulta para usuários casuais;
Linguagens de programação para programadores de aplicações;
Interfaces gráficas com formulários (telas) e menus para usuários paramétricos;
Interfaces para administração do banco de dados;
Linguagem natural.
BENEFÍCIOS NO USO DE SGBDS
Os ambientes de bancos de dados fornecem uma série de vantagens na sua adoção:
1- Potencial para o estabelecimento e o cumprimento de padrões; 
2- Flexibilidade de mudanças;
3- Redução no tempo de desenvolvimento de novas aplicações; 
4- Disponibilidade de informação atualizada; 
5- Economia de escala.
BANCOS DE DADOS NÃO SÃO SEMPRE A SOLUÇÃO!!!
Apesar das vantagens de utilização, a escolha por um ambiente de banco de dados tem um alto custo atrelado.
Sobrecustos vinculados:
- Alto investimento inicial em software, pela aquisição do banco de dados e licenças, e em hardware que suporte este ambiente.
- Custo da generalidade do SGBD, ou seja, na definição e no processamento dos dados.
- “Overhead” de processamento. Neste ambiente, overhead significa tudo aquilo que o SGBD tem que fazer além de gerenciar os dados. Isto envolve tarefas, tais como: garantir segurança, controlar concorrência (utilização do mesmo dado por aplicações e usuários distintos simultaneamente), recuperação de falhas e garantia de integridade.
Quando NÃO utilizar bancos de dados... 
Volume de dados pequeno, aplicações simples, bem definidas. 
Mudanças não são esperadas. 
Ambientes de sistemas que exijam resposta em tempo real.
Acessos múltiplos e concorrentes não são necessários.
Aula 03
O projeto de um banco de dados envolve a produção de 3 modelos que definem  uma arquitetura de 3 esquemas (conceitual, lógico e físico).
O projeto de um banco de dados envolve a produção de 3 modelos que definem uma arquitetura de 3 esquemas (conceitual, lógico e físico).
Na fase inicial do processo, o mundo real (ou mini mundo) deve ser entendido e seus objetos conceituais identificados. 
A este entendimento e identificação chamamos abstração de dados e o modelo produzido após esta fase chamamos modelo conceitual. 
Após a sua confecção e pela a aplicação de regras específicas, um modelo lógico é produzido. Este modelo está vinculado ao modelo de dados adotado pelo SGBD. 
Na etapa final, o modelo lógico dá origem ao modelo físico, efetivamente armazenado no banco de dados.
O que se quer criar é uma ABSTRAÇÃO da realidade, que seja capaz de registrar os acontecimentos da mesma, de modo que se possa implementar um sistema automatizado que atenda às reais necessidades de informação.
ELEMENTOS DE ABSTRAÇÃO
Minimundo - Porção específica da realidade, captada pelo analista, objeto de observação detalhada. Caso a análise do minimundo torne-se muito complexa, o analista pode subdividi-lo em pontos menores, chamados de “visões”.
Banco de Dados - Coleção de fatos registrados que refletem certos aspectos de interesse do mundo real. Cada mudança, em algum item do banco de dados, reflete uma mudança ocorrida na realidade.
Modelo Conceitual - Representa e/ou descreve a realidade do ambiente, constituindo uma visão global dos principais dados e relacionamentos (estruturas de informação), independente das restrições de implementação.
Modelo Lógico - Descreve as estruturas que estarão contidas no banco de dados, considerando o modelo de dados do Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados. Tem seu início a partir do Modelo Conceitual.
Modelo Físico - Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc... Tem origem no Modelo Lógico e detalha o estudo dos métodos de acesso ao SGBD.
O OBJETIVO DA MODELAGEM DE DADOS é transmitir e apresentar uma representação única, não redundante e resumida, dos dados de uma aplicação. 
O PROJETO DO BANCO DE DADOS
Todo projeto de um sistema de aplicação para banco de dados necessita de um coração, um centro nervoso do mesmo. A modelagem de um sistema através da abordagem Entidades-Relacionamentos representa este ponto central no projeto conceitual de um sistema.
O objetivo da Modelagem de Dados é transmitir e apresentar uma representação única, não redundante e resumida, dos dados de uma aplicação. Em projetos conceituais de aplicação, em banco de dados, o Modelo Entidades-Relacionamentos é o mais largamente utilizado para representação e entendimento dos dados que compõe um sistema.
Década de 70 - Peter Chen desenvolve o MER (Modelo Entidades-Relacionamentos) 
Um Modelo de Dados é uma forma de representação gráfica do conhecimento que se tem sobre um ambiente qualquer. Mostra uma visão das informações de interesse e dos vínculos existentes entre elas, em um determinado momento.
Chen dedicou-se a destacar a importância de reconhecer os objetos que compõem este negócio, independentemente das formasde tratamento das informações, procedimentos, programas etc. Estes objetos que desejamos conhecer e modelar foram classificados em dois grupos: Entidades e Relacionamentos.
Objetos Conceituais
ENTIDADES - Define-se Entidade como aquele objeto que existe no mundo real, com identificação distinta e com um significado próprio. São as “coisas” que existem no negócio, ou ainda, descrevem o negócio em si. Ex: Cliente
Atributo - Todo objeto para ser uma entidade possui propriedades que são descritas por atributos e valores. Estes atributos e valores, juntos, descrevem as instâncias de uma entidade. O que descreve CLIENTE ?  Cliente é descrito por um código de identificação, nome, endereço, telefone de contato, CGC ou CPF etc.
RELACIONAMENTOS - é uma associação entre duas entidades cujo significado seja de interesse para a realidade analisada. Os relacionamentos estão intimamente ligados às ações realizadas pelos processos sobre os dados e representam os caminhos de navegação ou rotas de acesso do Modelo de Dados.
Aula 04
MODELAGEM CONCEITUAL - MODELO ENTIDADE RELACIONAMENTO
ENTIDADES PODEM SER TANGÍVEIS: Pessoas, edifícios.
INTANGÍVEIS: Setor, reserva de um vôo.
ENTIDADES FRACA: Não existe,  se não estiver relacionada a outra, isto é, ela é logicamente dependente da outra.  Por exemplo, um apartamento dentro de um edifício, um dependente em relação a um funcionário em uma empresa. 
Alguns conjuntos entidade não possuem um conjunto de atributos capaz de identificar univocamente uma determinada entidade. Neste caso, sua existência depende da existência de outra entidade.
MAIS SOBRE ATRIBUTOS ...
ATRIBUTOS COMPOSTOS: Endereço é formado pelos atributos: rua, bairro, cidade, estado, CEP.
ATRIBUTOS SIMPLES OU ATÔMICOS: Atributos que não são divisíveis em unidades dados mais simples. Exemplo:  data de nascimento, numero de fatura, valor total de venda.
DOMÍNIO DE UM ATRIBUTO: Descrição de possíveis valores permitidos para um atributo. Exemplo: domínio do atributo cor de peça: azul, amarelo, verde, vermelho, branco.
VALORES NULOS: Atributo sem valor. Um valor nulo pode ocorrer quando o atributo não é relevante para descrever uma entidade em particular.
ATRIBUTOS IDENTIFICADORES: Atributos que identifica, de forma única, as instâncias de uma entidade. Exemplo: uma matrícula identifica um aluno e um CPF identifica um cliente.
ATRIBUTO MULTIVALORADO: Os atributos multivalorados são tratados pelos seus detalhes, seu conteúdo é formado por mais de um valor. Exemplo: Telefone. Um empregado poderá ter mais de um número de telefone.
Aula 05
Modelando o Negócio
“Modelo é a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes.”
Muitas ocasiões merecem nosso entendimento, memorização, representação, explicação ou comunicação podem ser facilitadas pela aplicação da modelagem de dados. Por exemplo:
Representar um ambiente observado
Servir de instrumento para a comunicação
Favorecer o processo de verificação e validação
Capturar aspectos de relacionamento entre os objetos observados
Servir como referencial para a geração de estruturas de dados
Estabelecer conceitos únicos a partir de visões diversas
Uma relação entre duas entidades pode ser descrita em termos da sua cardinalidade.
TIPOS DE RELACIONAMENTOS:
O RELACIONAMENTO UM-PARA-UM é usado quando uma entidade A se relaciona com uma entidade B e vice-versa. Este relacionamento é representado pelo sinal: 1:1
Exemplo:
Um empregado pode ser atribuído a um carro.
Um carro pertence a um empregado.
O RELACIONAMENTO UM-PARA-MUITOS é usado quando uma entidade A pode se relacionar com uma ou mais entidades B. Este relacionamento é representado pelo sinal: 1:N
Exemplo:
Um cliente pode tomar emprestado vários DVDs de vídeo.
Cada DVD só pode ser emprestado a um cliente (por vez).
O RELACIONAMENTO MUITOS-PARA-MUITOS é usado quando várias entidades A se relacionam com várias entidades B. Este relacionamento é representado pelo sinal: N:N ou N:M
Exemplo:
Um estudante pode fazer várias disciplinas
Uma disciplina pode ser cursada por vários estudantes.
A cardinalidade é determinada pelas “regras de negócio” criadas pela organização. São os usuários e a documentação da organização que determinam a cardinalidade existente entre entidades e seus atributos.
RELACIONAMENTO RECURSIVO OU AUTO-RELACIONAMENTO
Acontece quando os elementos de uma entidade se relacionam com eles mesmos.
�
A CARDINALIDADE
É um número que expressa o comportamento (número de ocorrências) de determinada entidade associada a uma ocorrência da entidade em questão através do relacionamento.
Existem dois tipos de cardinalidade: MÍNIMA e MÁXIMA
A cardinalidade máxima, expressa o número máximo de ocorrências de determinada entidade, associada a uma ocorrência da entidade em questão, através do relacionamento. 
A cardinalidade mínima, expressa o número mínimo de ocorrências de determinada entidade associada a uma ocorrência da entidade em questão através do relacionamento.
Exemplo:
O colaborador pode ter nenhum ou vários dependentes
Todo dependente deve estar associado a um e apenas um colaborador
Uma ocorrência de colaborador pode não estar associada a uma ocorrência de dependente ou pode estar associada a várias ocorrências dele (determinado colaborador pode não possuir dependentes ou pode possuir vários).
Uma ocorrência de dependente está associada a apenas uma ocorrência de colaborador(determinado dependente possui apenas um empregado responsável).
Aula 06
Os conceitos básicos do Modelo Entidade Relacionamento são suficientes para modelar grande parte dos bancos de dados. Entretanto, algumas extensões, introduzidas posteriormente ao seu surgimento, permitiram  refinamentos bastante significativos.
Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. O símbolo para representar generalização/especialização é um triângulo isósceles
Estrutura de Generalização-Especialização “É-um”
Entidades podem ter subtipos ou subclasses e supertipos ou superclasses.
Um entidade supertipo é uma generalização de uma entidade subtipo “especializada”.
Cada entidade subtipo herda os atributos de sua entidade supertipo.
Cada entidade supertipo tem seus próprios atributos únicos.
Num diagrama ER um relacionamento “É-um” conecta uma entidades mais especializada a uma entidade generalizada [sem sentido] pode ser escrita como um triângulo invertido ou um losango com o label “É-um”
Exemplo:
Observe que os atributos que descrevem o cliente individual, o cliente associado e o cliente corporação não são exatamente os mesmos e são específicos de cada categoria ou classe de cliente. Os atributos de cliente, na superclasse, são compartilhados por todos os elementos das subclasses. Sendo assim, por exemplo,  um cliente individual é descrito pelos atributos NúmeroCliente, NomeCliente, ValorDevido (atributos da classe cliente), Endereço e NúmeroIdentidade. 
Associada ao conceito de generalização/especialização está a ideia de herança de propriedades. Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades (atributos, relacionamentos e generalizações/especializações), também as propriedades da ocorrência da entidade genérica correspondente.
A generalização/especialização pode ser classificada em dois tipos, total ou parcial, de acordo com a obrigatoriedade ou não de a uma ocorrência da entidade genérica corresponder uma ocorrência da entidade especializada.
Em uma generalização/especialização total para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas.
Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada.
Nãohá limite no número de níveis hierárquicos da generalização / especialização. 
Uma entidade especializada em uma generalização / especialização, pode, por sua vez, ser entidade genérica em uma outra generalização / especialização. 
É admissível, inclusive, que uma mesma entidade seja especialização de diversas entidades genéricas (a chamada herança múltipla)
Estrutura de Agregação “Faz_parte_de”
O Modelo Entidade Relacionamento não é capaz de representar relacionamentos entre relacionamentos. 
Uma agregação é uma abstração através da qual os relacionamentos são tratados como entidades de mais alto nível.
Aula 07
Modelagem Lógica de Dados
O modelo lógico descreve a estrutura do banco de dados, conforme vista pelo usuário do SGBD. O Modelo Lógico de Dados Lógico descreve os componentes do Modelo Conceitual de Dados, aproximando-o do ambiente computacional, onde este será trabalhado.
Modelo de Rede: Os dados são representados por uma coleção de registros e os relacionamentos entre os dados são representados por meio de links.
 Ex. : IDMS, DMS-II(Unisys)
Modelo Hierárquico: Apresenta a mesma estrutura do modelo de rede, diferindo apenas na organização dos registros. Tais registros são organizados com coleções de árvores em vez de grafos aleatórios.
Ex.: IMS(IBM)
Modelo Relacional: Os dados são representados através de tabelas.
Ex.: DB-2, SQL-DS (IBM), Oracle, Ingres 
Modelo Orientado a Objetos: Surgiu em virtude da necessidade de se acompanhar o aumento na complexidade dos dados. 
Quando o modelo relacional foi sugerido, dados como imagens ou som não foram considerados na sua estrutura. 
Atualmente, dados deste tipo são bastante comuns, até mesmo nas aplicações mais simples e o modelo relacional não é suficiente para este tipo de modelagem. 
De modo geral, no modelo orientado a objeto as entidades do modelo conceitual são objetos que encapsulam tanto dados quanto o código associado a este objeto.
Ex.: Vbase, O2, Orion, Gemstone, Jasmine, ObjectStore
Modelo Relacional Objeto: Um extensão do modelo relacional, que inclui orientação a objeto e permite o tratamento de dados complexos.
Ex.: Postgres, Informix, Oracle 9i, IBM DB2
Modelo Relacional
Está fundamentado na teoria de conjuntos, combinado com a ideia que não é relevante para o usuário saber onde os dados estão nem como os dados estão armazenados. O usuário, para lidar com estes objetos, conta com um conjunto de operadores e funções de alto nível, constantes na álgebra relacional. 
Relação = Tabela bi-dimensional, composta de linhas e colunas de dados. 
Relação recursiva = relaciona o objeto a si mesmo.
Atributo = Coluna 
Grau de uma relação = Número de atributos
Tupla = Cada linha da relação 
Domínio de um atributo = Conjunto ao qual pertence os valores de um atributo 
Valor nulo de um atributo de uma tupla = Atributo inaplicável ou com valor desconhecido 
Esquema de Banco de Dados Relacional = Nomes das relações seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas
O conceito básico para estabelecer relações entre linhas de tabelas de um banco de dados relacional é o da chave. Em um banco de dados relacional, há ao menos três tipos de chaves a considerar:
chave primária - Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. 
chave alternativa (candidata) - Deve ser única, ou seja, nenhuma tupla de uma mesma relação, pode ter o mesmo valor para o atributo escolhido como chave candidata
Deve ser irredutível, nenhum subconjunto da chave candidata, pode ter sozinho a propriedade de ser único.
Pode ser :
Simples : quando é composta por apenas um atributo
Composta : quanto possui mais de um atributo para formar a chave
chave estrangeira - É quando um atributo de uma relação é chave primária em outra. Constitui um conceito de vital importância no modelo relacional: é o elo de ligação lógica entre as tabelas (relacionamentos) . Através das operações com as chaves estrangeiras que se garante a INTEGRIDADE REFERENCIAL do banco de dados.
A existência de uma chave estrangeira impõe restrições que devem ser garantidas...
Quando da inclusão de uma linha na tabela que contém a chave estrangeira 
Deve ser garantido que o valor da chave estrangeira apareça na coluna da chave primária referenciada. Isso significa que um novo empregado deve atuar já em um departamento.
Restrições de Integridade
Regras que devem ser obedecidas em todos os estados válidos da base de dados (podem  envolver uma ou mais linhas de uma ou mais tabelas).
No caso da abordagem relacional, costuma-se classificar as restrições de integridade nas seguintes categorias: Integridade de domínio, Integridade de vazio, Integridade de chave, Integridade referencial.
Restrições de Integridade de Domínio
Restrições deste tipo especificam que o valor de um campo deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna). 
Nos SGBD relacionais comerciais, é possível usar apenas domínios pré-definidos (número inteiro, número real, alfanumérico de tamanho definido, data, …). 
O usuário do SGBD não pode definir domínios próprios de sua aplicação (por exemplo, o domínio dos dias da semana ou das unidades da federação).
Restrições de Integridade de Vazio
Através deste tipo de restrição de integridade é especificado se os campos de uma coluna podem ou não ser vazios (se a coluna é obrigatória ou opcional). 
NOTA: Campos que compõem a chave primária sempre devem ser diferentes de vazio.
Restrições de Integridade de Chave
Trata-se da restrição que define que os valores da chave primária e alternativa devem ser únicos.
Restrições de Integridade Referencial
É a restrição que define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada.
Aula 08
Convertendo o Diagrama ER para Tabelas Relacionais 
Regras simples, baseadas na cardinalidade dos relacionamentos, são aplicadas para converter entidades e relacionamentos em tabelas relacionais.
Para cardinalidade 1:1
Caso 1:
Incluir todos os atributos numa tabela simples. O nome da tabela relacional pode ser o nome de uma das entidades que participam do relacionamento, um nome composto formado pela combinação dos nomes das duas entidades ou um novo nome que represente o significado dos dados na tabela.
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total)
Para cardinalidade 1:N
Incluir o “identificador”do lado “um”,  como um atributo no lado “muitos”. O identificador colocado do lado “muitos” é chamado de chave estrangeira.
Para cardinalidade N:N
Criar uma nova tabela e colocar as chaves primárias de cada uma das entidades como atributos na nova tabela. A nova tabela é chamada de tabela associativa.  O identificador da tabela é uma chave composta, formada pelas chaves primárias das duas tabelas que participam do relacionamento. Cada identificador colocado na nova tabela é uma chave estrangeira.
Aula 09
Pratica
Aula 10
Normalização
O processo de normalização de dados representa uma série de passos que se seguem no projeto de um banco de dados que permitem um armazenamento consistente e um eficiente acesso aos dados de um banco de dados relacional. 
Esses passos reduzem a redundância de dados e, consequentemente, as chances de ocorrerem inconsistências.
Características de um mau projeto
Repetição da Informação
Informações repetidas consomem espaço de armazenamento
Dificuldade de atualização
Incapacidade de representar a informação
Incidência de valores nulos
Perda da Informação
	- Projetos mal elaborados sugerem a decomposição 	de esquemas relacionais com muitos atributos 
Problemas causados pela falta de normalização
Anomalia de Inclusão - Um novo cliente só poderá ser incluído se estiverrelacionado a uma venda.
Anomalia de exclusão - Ao ser excluído um cliente, os dados referentes às suas compras serão perdidos.
Anomalia de Alteração - Caso algum fabricante de produto altere o preço de um produto, será preciso percorrer toda a relação para se realizar múltiplas alterações.
Dependência Funcional
Determina um restrição entre dois conjuntos de atributos de um BD Relacional.
Denotado pelo símbolo     , onde X     Y significa o atributo X determina funcionalmente o atributo Y ou ainda, o atributo Y é dependente funcional do atributo X.
Exemplos:
CPF      NOME_FUNCIONARIO   
CPF determina funcionalmente  NOME_FUNCIONARIO;
NOME_FUNCIONARIO é dependente funcional de CPF
Informalmente : Conhecido o valor de  um  CPF eu consigo determinar qual o NOME_FUNCIONARIO (único) com o qual este CPF está relacionado.
Formas normais
Através do processo de normalização, pode-se, gradativamente, substituir um conjunto de entidades e relacionamentos por um outro, o qual se apresenta "purificado" em relação às anomalias de atualização (inclusão, alteração e exclusão), as quais podem causar certos problemas, tais como:
grupos repetitivos (atributos multivalorados) de dados;
variação temporal de certos atributos, dependências funcionais totais ou parciais em relação a uma chave concatenada;
redundâncias de dados desnecessárias;
perdas acidentais de informação;
dificuldade na representação de fatos da realidade observada;
dependências transitivas entre atributos.
Primeira forma normal
Uma relação está na primeira forma normal, se todos os seus atributos são monovalorados e atômicos.
 Quando encontrarmos um atributo multivalorado, devemos criar um novo atributo que individualize a informação que esta multivalorada:
HISTÓRICO = {matricula-aluno, código-disciplina, notas}
No caso acima, cada nota seria individualizada identificando a prova a qual aquela nota se refere:
HISTÓRICO = {matrícula-aluno, código-disciplina, número-prova, nota}
Quando encontrarmos um atributo não atômico, devemos dividi-lo em outros atributos que sejam atômicos:
PESSOA = {CPF, nome-completo}
Vamos supor que, para a aplicação que utilizará esta relação, o atributo nome-completo não é atômico, a solução então será:
PESSOA = {CPF, nome, sobrenome}
Segunda forma normal
Uma relação está na segunda forma normal, quando duas condições são satisfeitas:
1- A relação estiver na primeira forma normal.
2 - Todos os atributos primos dependerem funcionalmente de toda a chave primária.
 
Observe a relação abaixo:
HISTÓRICO = {matrícula-aluno, código-matéria, número-prova, nota, data-da-prova, nome-aluno, endereço-aluno, nome-matéria}
Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais:
- matrícula-aluno, código-matéria, número-prova -> nota 
- código-matéria, número-prova -> data-da-prova 
- matrícula -aluno -> nome-aluno, endereço-aluno 
- código-matéria -> nome-matéria
Concluímos então que apenas o atributo primo nota depende totalmente de toda chave primária. Para que toda a relação seja passada para a segunda forma normal, devem-se criar novas relações, agrupando os atributos de acordo com suas dependências funcionais:
BOLETIM = { matrícula -aluno, código-matéria, número-prova, nota}
PROVA = { código-matéria, número-prova, data-da-prova}
ALUNO = { matrícula -aluno, nome-aluno, endereço-aluno}
MATÉRIA = { código-matéria, nome-matéria}
O nome das novas relações deve ser escolhido de acordo com a chave.
Terceira forma normal
Uma relação está na terceira forma normal, quando duas condições forem satisfeitas:
1 - A relação estiver na segunda forma normal.
2 - Todos os atributos primos dependerem não transitivamente de toda a chave primária. 
 
Observe a relação abaixo:
PEDIDO = {número-pedido, código-cliente, data-pedido, nome-cliente, código -cidade-cliente, nome-cidade-cliente}
Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais:
- número-pedido -> código-cliente 
- número-pedido -> data-pedido 
- código -cliente -> nome-cliente 
- código-cliente -> código-cidade-cliente 
- código-cidade-cliente -> nome-cidade-cliente 
Sistema de vendas
Sistema de contas a receber
Sistema de faturamento
PESSOA
é�casada

Outros materiais