Você está na página 1de 37

Curso Tcnico em Informtica Integrado ao Ensino Mdio Mdulo II

Banco de Dados

Maria de Ftima de Freitas Bueno Marclio fatima.bueno@ifs.ifsuldeminas.edu.br


2012

IFSULDEMINAS Campus Inconfidentes MG

Sumrio 1. Introduo.........................................................................................................................................4 1.1 Noes Preliminares...................................................................................................................4 1.1.1 Propriedades bsicas............................................................................................................4 1.1.2 Principais diferenas entre um BD e um sistema baseado em arquivos..............................4 1.2 Conceitos Adicionais..................................................................................................................5 1.2.1 Modelos de dados................................................................................................................5 1.2.2 Linguagens de Base de Dados.............................................................................................6 1.2.3 SGBDs.................................................................................................................................6 1.3 Etapas no desenvolvimento de sistemas.....................................................................................7 1.3.1 O papel da Modelagem de Dados no desenvolvimento de sistemas...................................7 1.3.2 Anlise de Dados x Anlise de Processos...........................................................................8 2. Normalizao de Dados....................................................................................................................9 2.1 Conceitos usados na Normalizao de Dados............................................................................9 2.1.1 Atributo................................................................................................................................9 2.1.2 Registro................................................................................................................................9 2.1.3 Arquivo................................................................................................................................9 2.1.4 Chave...................................................................................................................................9 2.1.5 Dependncia Funcional.......................................................................................................9 2.2 Formas Normais.......................................................................................................................10 2.2.1 Primeira Forma Normal (1FN)..........................................................................................10 2.2.2 Segunda Forma Normal (2FN)..........................................................................................10 2.2.3 Terceira Forma Normal (3FN)..........................................................................................11 2.2.4 Regras prticas para normalizao de arquivos.................................................................11 2.2.5 At onde normalizar..........................................................................................................12 2.2.6 Desnormalizao de dados................................................................................................12 3. Modelo Entidade Relacionamento (ER).........................................................................................13 3.1 Elementos usados no modelo Entidade-Relacionamento ........................................................13 3.1.1 Entidade.............................................................................................................................14 3.1.2 Sub-Entidade.....................................................................................................................14 3.1.3 Entidade Fraca ..................................................................................................................15 3.1.4 Instncia ............................................................................................................................15 3.1.5 Atributo .............................................................................................................................15 3.1.6 Chave Primria e Estrangeira............................................................................................16 3.2 Relacionamento .......................................................................................................................16 3.3 Cardinalidade do Relacionamento ...........................................................................................17 3.3.1 Um-para-um (1:1) .............................................................................................................18 3.3.2 Um-para-muitos (1:N) ......................................................................................................19 3.3.3 Muitos-para-muitos (M:N) ...............................................................................................19 3.3.4 Relacionamento Reflexivo ...............................................................................................19 3.3.5 Relacionamento mandatrio e opcional ...........................................................................20 3.4 Diagrama Entidade-Relacionamento........................................................................................26 3.4.1 Estendendo o Modelo Entidade-Relacionamento..............................................................27 4. Modelo de Dados Relacional..........................................................................................................29 4.1 Conceitos do Modelo Relacional..............................................................................................29 4.2 Caractersticas de Relaes......................................................................................................29 4.3 Restries Relacionais..............................................................................................................29 4.4 Bancos de Dados Relacionais e Esquemas...............................................................................30 4.5 Integridade de Entidade, Integridade Referencial e Chaves Estrangeiras...............................30 4.6 Operao de Atualizao e Violao de Restries.................................................................30 4.6.1 Operao de insero.........................................................................................................30 4.6.2 Operao de deleo..........................................................................................................31
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

4.6.3 Operao de Atualizao...................................................................................................31 5. SQL Structured Query Language ...............................................................................................33 5.1 Operadores utilizados em SQL:................................................................................................33 5.2 Comandos para manipulao de dados.....................................................................................33 5.2.1 O comando SELECT:........................................................................................................33 5.2.1.1 Combinando dados entre tabelas diferentes.............................................................35 5.2.1.2 Relacionamentos entre mais de duas tabelas............................................................36 5.2.1.3 Relacionamento Reflexivo.......................................................................................36 5.2.1.4 Agrupando e sumarizando os dados.........................................................................36 5.2.1.5 Filtrando dados agrupados com a clusula HAVING..............................................37 5.3 Comandos para manuteno de dados..................................................................................37 5.3.1 INSERT.............................................................................................................................37 5.3.2 DELETE............................................................................................................................38 5.3.3 UPDATE...........................................................................................................................38 Referncias Bibliogrficas .................................................................................................................39

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

1. Introduo
1.1 Noes Preliminares
Um Banco de Dados ou Base de Dados (BD) uma coleo de dados relacionados entre si. Com dados queremos dizer fatos conhecidos que podem ser armazenados e possuem um significado implcito. Um exemplo (simples): coleo de nomes das pessoas que voc conhece, juntamente com o endereo e telefone de cada uma delas (podem ser armazenados em uma agenda ou em um computador). Outro exemplo (um pouco mais complexo): coleo de todas as fotos recolhidas ao longo dos anos pelo programa espacial americano.

1.1.1 Propriedades bsicas


Um BD possui as seguintes propriedades: 1. Representa algum aspecto do mundo real; 2. Coleo logicamente coerente de dados com um significado inerente; 3. Projetado, construdo e preenchido (instanciado) com dados para um propsito especfico. A ele est relacionado um grupo de usurios e aplicaes de interesse a esses usurios. Em outras palavras, um BD possui alguma fonte de onde os dados so obtidos, um grau de iterao com eventos do mundo real e um grupo de pessoas interessados no seu contedo. Exemplo (extremamente simples) de um BD para a escola: Aluno Nome_alu Joo Joo Jos Disciplinas Nome_disc Banco de Dados Sistema Operacional I Algoritmos RA 2008.151-23 2008.151-23 2008.151-25 Disciplinas 111 453 123

Cdigo 111 453 123

Horas 60 60 80

Sala L02 S05 L02

Essa base de dados organizada em dois arquivos distintos, cada um contendo registros do mesmo tipo. Para defini-la, necessitamos especificar a estrutura dos registros em cada um dos arquivos. Ou seja, necessitamos definir os elementos a serem armazenados em cada um dos registros. Cada registro de estudante, por exemplo, guarda o nome, cdigo e disciplinas sendo cursadas pelo estudante. Alm disso, o tipo de cada um dos elementos da estrutura precisa ser definido (nome: sequncia de caracteres; RA: inteiro sem sinal; Disciplina: inteiro sem sinal).

1.1.2 Principais diferenas entre um BD e um sistema baseado em arquivos


Em um sistema baseado em arquivos, o que temos uma coleo de arquivos cujo contedo so dados a serem consultados ou modificados de acordo com as necessidades do usurio detentor desses arquivos e por meio de programas especficos, desenvolvidos com o formato desses arquivos em mente. Exemplo: a secretria do departamento tem a sua disposio um arquivo com os nomes dos estudantes e as disciplinas sendo cursadas por cada um deles. J a tesouraria do departamento precisaria de um arquivo com os nomes dos estudantes e informaes sobre pagamento de bolsas. O principal problema dessa abordagem: redundncia dos dados (gasto de espao e necessidade de esforos considerveis para manter consistncia).
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

Existem dois tipos de redundncia de dados: a controlada e no controlada. Na primeira, o software garante a consistncia das informaes. Na segunda, cabe ao usurio garantir essa consistncia. Em um sistema baseado em uma base de dados, um nico repositrio de dados mantido, o que elimina o problema da redundncia e, mais do que isso: 1. Um sistema baseado em banco de dados inclui uma descrio detalhada de sua base. Essa descrio corresponde ao catlogo do banco de dados, que guarda, dentre outras coisas, informaes sobre a estrutura de cada arquivo, e sobre o tipo de cada item de dado. O catlogo permite que um mesmo conjunto de programas acesse diferentes tipos de bases de dados, ao contrrio dos programas que manipulam os arquivos em um sistema baseado em arquivos. 2. Por meio do catlogo, qualquer mudana na base de dados prontamente reconhecida pelos programas que as acessam (independncia entre dados e programa). Alm disso, em alguns sistemas de banco de dados, existe tambm uma independncia entre o programa e operao. 3. Em um sistema baseado em banco de dados, certas operaes sobre os dados devem ser feitas de forma conjunta e indivisvel com o intuito de preservar a consistncia da base de dados. Isso, mesmo na presena de falhas no equipamento de armazenamento ou na comunicao com a base de dados (atomicidade). 4. Um sistema baseado em banco de dados inclui programas de controle de concorrncia. Ou seja, programas que assegurem um acesso adequado a uma base de dados quando vrios usurios a acessam ao mesmo tempo (consistncia). 5. Um sistema baseado em banco de dados suficientemente robusto para se recuperar de falhas de hardware ou software (durabilidade). A construo e manuteno de um sistema que atende aos requisitos acima requerem o auxlio de programas bem elaborados. Da, temos as seguintes definies:

Sistema Gerenciador de Base de Dados: coleo de programas que permitem a criao e manuteno de qualquer base de dados, independentemente da aplicao pretendida. Sistema de Banco de dados: Sistema gerenciador juntamente com a base de dados.

1.2 Conceitos Adicionais


Uma das principais caractersticas da abordagem de base de dados que ela prov ao usurio um nvel de abstrao de dados que no inclui detalhes de como eles esses dados encontram-se armazenados e como as operaes que os manipulam esto implementadas. O modelo de dados a principal ferramenta utilizada para prover esse tipo de abstrao.

1.2.1 Modelos de dados


Um modelo de dados um conjunto de conceitos lgicos (objetos, suas propriedades e o interrelacionamento entre eles) compreensveis aos usurios finais do sistema e usados para descrever a estrutura de uma base de dados. Por estrutura de uma base de dados entenda-se os tipos de dados, relacionamentos e restries associadas aos dados. Vrios modelos de dados definem tambm um conjunto de operaes para recuperao e modificao da base de dados. De acordo com os tipos de conceitos que fornecem para descrever a estrutura da base de dados, os modelos de dados podem ser classificados em: Conceituais: prov conceitos muito prximos queles percebidos pelos usurios finais do sistema. Esses modelos utilizam conceitos entidades, atributos, e relacionamentos. Uma entidade representa objetos ou conceitos do mundo real (exemplos: empregados, voos). Um atributo representa alguma propriedade de interesse relacionada a uma entidade (nome e salrio dos empregados, por exemplo). Um relacionamento entre duas (ou mais entidades) representa uma interao entre entidades (relacionamento entre empregado e projeto, por exemplo).
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

Fsicos: prov conceito que descrevem os detalhes de como os dados encontram-se armazenados no computador. Representam informaes como formato dos registros, ordenao dos registros e caminhos de acesso. Lgicos: prov conceitos que podem ser entendidos pelos usurios finais do sistema e que esto prximos da forma como os dados so fisicamente armazenados. So os mais utilizados pelos SGBD atuais e incluem o modelo de dados relacional, de rede e hierrquicos.

Esquemas, instncias e estado de um banco de dados:


Em qualquer modelo de dados importante distinguir entre a descrio da base de dados e base de dados propriamente dita. A descrio de uma base de dados chamada de esquema de uma base de dados. Esse esquema especificado durante o projeto da base de dados e no costuma sofrer mudanas frequentes. A forma de visualizao de um esquema chamada Diagrama do Esquema. Muitos modelos de dados tm certas convenes para, diagramaticamente, mostrar esquemas especificados no modelo. Tomando como exemplo o BD (extremamente simples) para a universidade, temos o seguinte diagrama do esquema para essa base: Aluno Disciplina Nome_alu Nome_disc RA Cdigo Disciplinas Horas Sala

Os dados em uma base de dados, estes sim, costumam mudar frequentemente. Os dados armazenados em um banco em um determinado instante chamado de estado ou instncia da base de dados.

1.2.2 Linguagens de Base de Dados


Linguagem de Definio de Dados (DDL - Data Definition Language): Utilizada pelo administrador e projetistas da base de dados para definio dos esquemas. O SGBD possui um compilador que traduz descries em DDL em descries dos esquemas em catlogo; Linguagem de Manipulao de Dados (DDL - Data Manipulation Language): Utilizada pelos usurios para manipulao (recuperao, insero, remoo e modificao) dos dados.

1.2.3 SGBDs
Um sistema gerenciador de base de dados composto de vrios mdulos distintos: Gerenciador de dados armazenados: controla o acesso as informaes dos sistemas que esto armazenadas no disco. Esse mdulo utiliza-se de servios bsicos do sistema operacional para transferir dados do disco para a memria principal. Uma vez transferidos, esses dados podem ento ser usados por outros mdulos do sistema (ou por aplicaes do usurio). Compilador DLL: processa as descries do esquema (escritas em DLL) e as armazenam no catlogo do sistema (que se encontra no disco rgido). Processador run-time: manipula acessos base de dados em tempo de execuo. Ele recebe operaes de atualizaes ou recuperaes de dados. Compilador de consultas: manipula consultas em mais alto nvel. Ele compila ou interpreta consultas e ento gera chamadas ao run-time processor. O pr-compilador extrai comandos DML de um programa de aplicao escrito em uma linguagem de alto nvel qualquer. Esses comandos so ento enviados ao compilador DML, que os transformam em cdigos para acesso a base. O resto do cdigo enviado ao compilador da linguagem. Os cdigos para os comandos DML e o resto do programa so linkados, gerando um cdigo executvel que inclui chamadas ao processador run-time.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

1.3 Etapas no desenvolvimento de sistemas


O desenvolvimento de sistemas pode ser dividido em etapas que se complementam. So elas: Anlise funcional: so levantados os processos manuais que devero ser informatizados e a relao entre eles. Anlise de dados: ou Modelagem de dados. Quais informaes que devero ser tratadas pelo sistema. Alm de ser registrar as informaes agrupando-as, tambm so analisadas as relaes entre estas informaes. So utilizadas tcnicas como Normalizao de Dados e Modelo Entidade-Relacionamento. Implementao: escrita do cdigo em alguma linguagem de programao. Testes: utilizados para validar o programa em relao aos objetivos propostos nas etapas de anlise. Implantao: implantao do sistema e treinamento dos usurios. Manuteno e acompanhamento: esta fase segue por toda vida til do sistema, onde so levantadas novas necessidades levando a um processo cclico.

1.3.1 O papel da Modelagem de Dados no desenvolvimento de sistemas


A maioria dos sistemas, principalmente os sistemas comerciais (Administrativos, Financeiros, Recursos Humanos, etc.), tem como caracterstica o tratamento de muitas informaes e poucos clculos, diferente dos sistemas de uso cientfico (Clculo estrutural, Redes Neurais, etc.) que possuem poucos dados e muitos clculos. Com o objetivo de atender a todo tipo de sistema a Modelagem de Dados visa: Conhecer as informaes dos usurios e como elas se relacionam : Saber exatamente quais as informaes que devero ser tratadas pelos sistemas, agrupandoas e verificando as relaes entre elas. Criar uma linguagem comum entre analistas e usurios para que os conceitos possam ser claros e iguais para ambos: Auxiliar os analistas a entenderem e serem entendidos pelos usurios, fazendo uso de smbolos e notaes. Os smbolos e notaes na Modelagem de Dados servem para apresentar o projeto do sistema a ser construdo em relao aos dados para validao pelo usurio. Criar uma base de conhecimento em relao s informaes tratadas pela empresa: Criar um repositrio nico para todos os dados da empresa, disponibilizandoos de acordo com critrios de segurana aos usurios quando eles necessitarem. Projetar Bancos de Dados confiveis, eficientes e com fcil escalabilidade: Evitar
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

informaes redundantes e de difcil acesso, permitir que futuras alteraes nos bancos de dados possam ser realizadas, garantir o uso adequado dos recursos do banco de dados utilizando o espao de maneira otimizada. Unificar conceitos entre os diferentes departamentos da empresa: Fazer com que todos os departamentos se entendam e no haja conflitos de conceitos.

1.3.2 Anlise de Dados x Anlise de Processos


As anlises de dados e de processos so distintas, mas se complementam. Aps levantar e mapear os processos e funes que sero tratados pelo sistema atravs da anlise de processos, a anlise de dados se preocupa com os dados que devem ser usados nos processos e gerados por eles. importante que processos e dados sejam analisados exaustivamente e que tenham sido validados pelo usurio que fornece as informaes ao analista para que no apaream problemas nas etapas seguintes do desenvolvimento do sistema. Novas tecnologias de desenvolvimento (Componentizao, Desenvolvimento em camadas, etc.), e as linguagens RAD (Rapid Application Development) diminuem o grau de importncia da anlise de processos e de dados, o que tem gerado sistemas com um tempo de programao muito rpido e com forte apelo visual, porm com uma estrutura funcional e de dados pobre, fazendo com que a manuteno seja extremamente difcil quando no impossvel, e que no atende s expectativas dos usurios. Para auxiliar no processo de anlise tanto de dados como de processos existem no mercado excelentes ferramentas denominadas CASE (Computer Aided Software Engineering), como o BPWin e o ERWin da Platinum Technologies e o System Architect da Computer Associates, que alm de agilizarem a construo de diagramas de anlise de processos e de dados, podem descobrir inconsistncias, e ainda podem gerar scripts para criao dos bancos de dados e fazer engenharia reversa.
Anlise de Dados Analisa os dados gerados pelo usurio e por processos. Usa tcnicas como Normalizao de Dados e Modelo Entidade-Relacionamento (ER). Deve ser validado pelo usurio. feito antes da programao. Anlise de Processos Analisa os processos manuais e funes que devem ser informatizadas. Usa tcnicas como Diagrama de Fluxo de Dados (DFD) e Anlise Essencial. Deve ser validado pelo usurio. feito antes da programao.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

2. Normalizao de Dados
2.1 Conceitos usados na Normalizao de Dados
A normalizao de dados uma tcnica que visa analisar e refinar arquivos de dados, dividindoos em vrios outros arquivos e estabelecendo relacionamentos entre eles atravs de informaes comuns. Existem alguns conceitos que so utilizados na Normalizao de Dados:

2.1.1 Atributo
Toda e qualquer informao de se deseja armazenar. Os atributos apresentam caractersticas como: tipo de informao a ser armazenada, tamanho, se obrigatrio ou opcional, se condicionado a outros atributos, se possui vrias ocorrncias. Exemplo: cpf, nome, endereo, telefone, cargo.

2.1.2 Registro
Conjunto de atributos que contm informaes comuns de um determinado assunto. Exemplo: funcionrio: dados de um funcionrio, dados de um aluno.

2.1.3 Arquivo
Conjunto de registros que tratam do mesmo assunto. Pode ser fsico, quando as informaes so guardadas em formulrios de papel, ou eletrnico, quando as informaes so armazenadas com a ajuda da informtica. Exemplo: cadastro de clientes, cadastro de alunos.

2.1.4 Chave
Atributo ou conjunto de atributos que permite a identificao nica de um registro dentro de um arquivo. Pode ser classificada como: Simples: formada por um nico atributo (RA, CPF). Composta: formada por mais de um atributo (N Nota Fiscal + Cd_Produto). Virtual: gerada por um atributo criado especificamente para ser chave e que tem seu valor gerado pelo sistema (operao bancria, protocolo de atendimento). Para que um atributo seja considerado chave, algumas caractersticas devem ser analisadas. Uma chave deve ser: nica: no podem existir mais de um registro como o mesmo valor para atributos que compem a chave. Obrigatria: sempre deve existir um valor para os atributos que compem a chave. Imutvel:o valor dos atributos que compem a chave no pode ser modificado. Exemplo: RA, chassi de um automvel, cpf.

2.1.5 Dependncia Funcional


Caracterstica de um atributo depender de outro, ou de outros atributos representarem uma informao completa. Ela pode ser verificada quando se analisa um atributo isoladamente e chega-se a concluso de que por si s ele no representa uma informao completa. Normalmente os atributos de um registro dependem da chave do registro. Exemplo: cdigo do produto em uma nota fiscal, cdigo de um professor em uma disciplina.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

10

2.2 Formas Normais


Formais normais so nveis de refinamento feitos em arquivos no processo de normalizao. Pode-se chegar at 5 nveis de refinamento, mas na prtica atingindo a 3 a forma normal (3FN) j garantimos um bom grau de normalizao para nossos arquivos. Arquivos muito normalizados podem ter problemas de acesso quando implementados fisicamente nos SGBDs (Sistemas Gerenciadores de Banco de Dados).

2.2.1 Primeira Forma Normal (1FN)


Na primeira forma normal (1FN) o arquivo organizado em uma estrutura bi-dimensional, ou seja, so criados registros compostos de colunas e linhas. Tambm deve ser identificada a chave do registro e eliminadas colunas com duplo significado, gerando mais colunas no arquivo normalizado. Exemplo (1FN): O Frigorfico Boi Morto possui um arquivo de vendas para os clientes. Nesse arquivo a data da venda e a data de entrega atualizam o mesmo atributo chamado de Data, no existe no arquivo um identificador nico para o registro de venda. Usando as regras para transformar o arquivo para a primeira forma normal (1FN) criamos um atributo identificador para a venda (chave) e dividimos o atributo Data em dois novos atributos Data de venda e Data de Entrega.
Arquivo de Vendas Data Data Cliente Nmero Nome do cliente Texto Endereco cliente Texto Produto-01 Nmero Descricao-01 Texto Quantidade-01 Nmero Preo-01 Nmero Produto-02 Nmero Descricao-02 texto Quantidade-02 Nmero Preo-02 Nmero Subtotal Nmero Desconto Nmero Valor total Nmero Arquivo de Vendas (1FN) Cdigo da venda nmero Data da venda Data Data da entrega Data Cliente Nmero Nome do cliente Texto Endereco cliente Texto Produto-01 Nmero Descricao-01 Texto Quantidade-01 Nmero Preo-01 Nmero Produto-02 Nmero Descricao-02 texto Quantidade-02 Nmero Preo-02 Nmero Subtotal Nmero Desconto Nmero Valor total Nmero

1 Forma Normal

2.2.2 Segunda Forma Normal (2FN)


Na Segunda forma normal (2FN) as informaes que no tm dependncia funcional com a chave do arquivo so separadas. Essa separao faz com que sejam gerados novos arquivos contendo as informaes excludas do arquivo normalizado, evitando problemas de anomalias de atualizao (onde uma informao ao ser alterada exige a alterao de vrios registros no mesmo arquivo), economiza-se espao e garantem-se buscas mais rpidas. Ao separar as informaes redundantes cria-se um atributo de referncia no arquivo normalizado apontando para a chave do arquivo gerado, o que possibilita a obteno da informao completa em outro arquivo. Exemplo (2FN): Eliminam-se atributos redundantes referentes ao cliente (nome e endereo) criando um novo arquivo chamado Clientes.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG Arquivo Clientes (2FN) Cliente Nmero Nome do cliente Texto Endereco cliente texto

11

2 Forma Normal

Arquivo de Vendas (2FN) Cdigo da venda nmero Data da venda Data Data da entrega Data Cliente Nmero Produto-01 Nmero Descricao-01 Texto Quantidade-01 Nmero Preo-01 Nmero Produto-02 Nmero Descricao-02 texto Quantidade-02 Nmero Preo-02 Nmero Subtotal Nmero Desconto Nmero Valor total Nmero

2.2.3 Terceira Forma Normal (3FN)


Na Terceira forma normal (3FN), eliminam-se atributos multivalorados e atributos calculados. Atributos multivalorados so aqueles que se repetem no arquivo por vrias vezes e a sua eliminao alm de evitar redundncias tambm permite que os limites pr-estabelecidos para a ocorrncia de informaes sejam ultrapassados, tornando o arquivo mais flexvel. A separao de atributos multivalorados gera um novo arquivo que tambm pode ser normalizado. Atributos calculados so aqueles que podem ser gerados a partir de outros. Exemplo (3FN): Eliminam-se os atributos multivalorados referentes aos produtos vendidos, gerando um novo arquivo denominado Itens Vendidos; esse novo arquivo gerado pode ento ser normalizado tambm para no conter informaes redundantes de produtos (descrio) gerando o arquivo de Produtos. Como atributo calculado tem-se o Valor Total da venda que corresponde ao Sub-Total - Desconto.
Arquivo de Vendas (3FN) Cdigo da venda nmero Data da venda Data Data da entrega Data Cliente Nmero Subtotal Nmero Desconto Nmero Arquivo Clientes (3FN) Cliente Nmero Nome do cliente Texto Endereco cliente Texto Itens Vendidos (3FN) Nmero Venda Nmero Produto Nmero Quantidade Nmero Preo Nmero

3 Forma Normal

Arquivo Produtos (3FN) Produto Nmero Descricao Texto Preco Nmero

2.2.4 Regras prticas para normalizao de arquivos


Para normalizar um arquivo no obrigatrio seguir uma sequncia entre as formas normais, pode-se atingir um nvel de normalizao satisfatrio (3FN ou maior) seguindo algumas regras prticas: Identificar a chave do arquivo: Importante para identificar as dependncias funcionais. Separar os atributos que no dependam da chave: So os atributos redundantes e que representam anomalias de atualizao e gasto extra de espao. Criar um arquivo para atributos multivalorados: Permite que os atributos que eram limitados a um nmero de ocorrncias, no tenham mais essa limitao. Eliminar os atributos calculados: Economiza espao e garante confiabilidade, pois a informao ser calculada em tempo de uso.
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

12

2.2.5 At onde normalizar


Ao usarmos as tcnicas de normalizao de dados corremos o risco de fragmentar de tal forma a informao em mltiplos arquivos fazendo com que na etapa de implementao fsica dos bancos de dados o processo de recuperao da informao seja comprometido, isso porque para que tenhamos a informao consolidada o SGBD dever efetuar vrias operaes para juntar os arquivos. Essas operaes consomem recursos do SGBD e fazem com que haja maior acesso fsico ao disco o que pode representar uma perda de desempenho. Ao normalizar seus arquivos use sempre o bom senso em relao ao resultado final e as condies onde esses arquivos sero implementados.

2.2.6 Desnormalizao de dados


A desnormalizao de dados o processo inverso normalizao, permitindo que os dados sejam armazenados em duplicidade gerando redundncias. Existem casos bem especficos onde necessrio haver uma desnormalizao de dados, alguns deles so: Para se manter um histrico de dados volteis : um exemplo um arquivo de itens de pedidos que contenha os atributos preo unitrio do produto, caso seja necessrio saber o preo unitrio do produto no momento da venda deve-se criar esse atributo que j existe no arquivo de produtos, tambm no arquivo de itens de pedido, seno corre-se o risco de perder a informao do preo unitrio no momento da criao do pedido, que no necessariamente deve ser igual ao preo unitrio atual. Para minimizar processos de juno e aperfeioar as buscas : Nesse caso, quando for implementado o projeto fsico pode ser necessria a duplicidade de atributos para melhorar o tempo de buscas, minimizando a juno entre arquivos. Por exemplo: podese criar um arquivo com o histrico de vendas de produtos por ms, apesar de essa informao ser uma informao calculada a partir de atributos j existentes no arquivo de itens de pedidos. Para minimizar clculos: Pode-se criar arquivos, ou atributos calculados para minimizar processos de clculos.

Exerccios:
1) Quais as etapas no desenvolvimento de sistemas e qual a funo de cada uma? 2) Qual a principal diferena entre sistemas comerciais e cientficos? 3) Conceitue normalizao de dados. 4) Explique qual a funo de uma chave em um arquivo de dados. De que tipos podem ser? 5) O que so formas normais e para que servem? 6) Quais as regras para se normalizar um arquivo? Exemplifique. 7) Quando pode ser usada a desnormalizao de dados? Explique.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

13

3. Modelo Entidade Relacionamento (ER)


O Modelo Entidade-Relacionamento, ou simplesmente modelo ER uma tcnica que visa representar atravs de um conjunto de smbolos, as informaes armazenadas em arquivos e os relacionamentos entre essas informaes. Com as tcnicas de normalizao de dados analisamos os dados necessrios para executar processos e tambm os dados gerados por esses processos. Atravs do modelo ER poderemos fazer com que esse conjunto de dados seja entendido de maneira mais fcil pelo usurio atravs do uso de figuras (cones). Essa viso nica entre desenvolvedor e usurio de fundamental importncia para o sucesso na construo de um sistema, e o modelo ER contribui para isso usando figuras que so universais para auxiliar na comunicao. Ento o que fazemos no final levantar no mundo real as informaes, organiz-Ias de maneira eficiente atravs da normalizao, e representar essa organizao de uma forma grfica para validao com o usurio atravs do modelo.

3.1 Elementos usados no modelo Entidade-Relacionamento


Da mesma forma que na normalizao de dados so conceituados alguns elementos (arquivo, registro, atributo, chave e dependncia funcional), no modelo ER tambm vamos conceituar alguns termos usados e estabelecer uma relao entre eles e os termos usados na normalizao de dados. Normalizao Arquivo Registro Atributo Chave Modelo ER Entidade Instncia Atributo Chave Primria

Relao entre Normalizao e Modelo ER

3.1.1 Entidade
Entidades so elementos do mundo real dos quais coletamos e armazenamos informaes que sero utilizadas pelo sistema. Uma entidade pode ser: Um objeto: Uma mquina, pea, rea geogrfica, prdio, produto, etc. Uma pessoa: Um funcionrio, cliente, paciente, etc. Um processo: O emprstimo de um livro, a aprovao de crdito bancrio, etc.
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

14

Para descobrir que elementos em nossa anlise so candidatos a entidade, devemos prestar ateno aos substantivos e ao sujeito de uma frase. Por exemplo, na frase: "Clientes so atendidos por vendedores para fazerem seus pedidos". Clientes, vendedores e pedidos so candidatos a entidade, mas alm disso podemos levantar algumas questes: Existe a necessidade de se armazenar informaes sobre esse elemento? Precisamos saber o nome, telefone, CGC e endereo de entrega para o cliente. H mais de um elemento desse tipo? Existem vrios pedidos a serem analisados Existe alguma informao que identifica univocamente o elemento analisado? O nmero de matrcula identifica de maneira nica cada vendedor na empresa.

Nome Idade Sexo Modelo Cor Fabricante Ano

Pessoa

Objeto

Codigo Data Qtde


Processo

3.1.2 Sub-Entidade
Sub-Entidades so atributos de uma entidade que so separados gerando novas entidades. As sub-entidades so usadas quando em uma mesma entidade temos atributos que so usados para grupos diferentes de instncias. Por exemplo, na entidade Clientes podemos ter um grupo de atributos especficos para clientes pessoa fsica (RG, CPF, Data de nascimento), e um grupo de atributos para clientes pessoa jurdica (CNPJ, Inscrio Estadual, Inscrio Municipal). Nesse caso poderamos derivar a entidade Clientes em duas Sub-Entidades: Pessoa Fsica e Pessoa Jurdica. Existem dois processos para a gerao de Sub-Entidades: Especializao: A partir de uma entidade principal derivamos as sub-entidades. o caso do exemplo citado anteriormente de Clientes. Generalizao: o processo inverso, onde a partir de sub-entidades extramos atributos comuns, gerando uma entidade principal. Por exemplo, a partir de atributos comuns (nome, endereo, telefone) entre as entidades Vendedores Externos e Vendedores Internos, geramos a entidade principal Vendedores.
Clientes Cdigo do Cliente Tipo do cliente Nome do cliente Endereo Telefone

Pessoa Fsica Cdigo do Cliente RG CPF Data de nascimento

Pessoa Jurdica Cdigo do Cliente CNPJ Insc. Estadual Insc. Municipal Exemplo de Sub-entidade por especializao

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

15

3.1.3 Entidade Fraca


Entidade fraca uma entidade que depende de outra para existir. Um exemplo a entidade Itens de Notas Fiscais que depende da entidade Notas Fiscais, pois no podemos ter itens de uma nota fiscal que no existe.
Notas Fiscais Nmero da Nota Cdigo do cliente Data de emisso Valor total Itens da NF Nmero da Nota Cdigo do produto Quantidade Valor

3.1.4 Instncia
Instncias so as vrias ocorrncias de informaes diferentes em uma entidade. Por exemplo, os vrios pedidos, os clientes da empresa ou os vendedores que atendem aos clientes. Cada instncia representa um conjunto de informaes que se complementam e dizem respeito a um nico elemento. Equivalem aos registros na normalizao de dados
Cdigo 00001 00002 00003 00201 12012 Vendedores Nome do vendedor Maria dos Santos Jos Julio Pereira Raquel Gonalves Mrcio Albuquerque Gesuno Silva Santos Alencar

Instncias

3.1.5 Atributo
Atributos so as informaes que iremos armazenar sobre uma entidade. Por exemplo: o nome, endereo, telefone e limite de crdito de um cliente. Podem existir atributos comuns em mais de uma entidade (nome um atributo em clientes e vendedores), porm cada atributo deve armazenar informaes especficas de uma nica entidade, pois est associado a ela usando o conceito j visto anteriormente de dependncia funcional. Os atributos de uma entidade so levantados atravs da anlise da entidade e das caractersticas que se deseja armazenar e tratar em nosso sistema. Os atributos no modelo ER equivalem aos atributos na normalizao de dados.
Ano Modelo Cor Fabricante Combustvel N de lugares Tipo de pneu

3.1.6 Chave Primria e Estrangeira


Chave Primria (Primary Key ou PK) um atributo ou conjunto de atributos que identifica de maneira nica uma instncia em uma entidade. Por exemplo, no existem dois clientes com o mesmo cdigo, ou no existem (ou no deveriam existir) dois carros com a mesma numerao de chassi. A chave primria equivale a chave na normalizao de dados. Chave Estrangeira (Foreign Key ou FK) um atributo em uma entidade que aponta para outro atributo, normalmente uma chave primria, em outra entidade, da ser chamada de estrangeira uma vez que seu contedo determinado pelo contedo de outra entidade. As chaves estrangeiras so usadas no processo de normalizao de dados para evitar redundncias de dados e permitir que se obtenham dados em outros arquivos funcionando como um endereo de onde o complemento de informaes se encontra. No modelo Entidade-Relacionamento as chaves estrangeiras sero usadas para estabelecer relacionamentos entre as entidades. A Entidade que contm a chave primria chamada "Entidade Pai", e a que contm a chave estrangeira chamada "Entidade Filho". Uma mesma entidade filho pode ter vrias entidades como pai (o que difere do nosso conceito natural de pai e filho).
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG 1.


Pedidos Nmero do pedido Data do pedido Cdigo do cliente Cdigo do vendedor Data da entrega Valor total Clientes Cdigo do cliente Nome do cliente Endereo Telefone Limite de crdito Clientes Cdigo do vendedor Nome do vendedor Comisso Chaves primrias

16

Chaves estrangeiras

Entidade Filho

Entidade Pai

3.2 Relacionamento
Relacionamentos so ligaes entre entidades atravs de atributos comuns. No mundo real estamos cercados por relacionamentos entre entidades diversas (pessoas, lugares, eventos, etc). Alguns exemplos: 1. Homem casa com Mulher. Aqui temos um relacionamento entre duas pessoas. 2. Cludia estuda na EAFI. Aqui temos um relacionamento entre uma pessoa e um lugar. 3. So Paulo fica no Brasil. Aqui temos um relacionamento entre dois lugares. 4. Homem casa com Mulher e tem Filhos. Aqui temos um relacionamento entre trs pessoas. 5. Espectadores assistem ao filme. Aqui temos um relacionamento entre pessoas e lugar. Casamento

Mulher

Homem

Espectadores assistem ao filme

No Modelo ER podemos descobrir os relacionamentos entre entidades atravs de verbos nas sentenas que usamos para descrever os processos do sistema. Por exemplo, na frase: "Clientes so atendidos por vendedores para fazerem seus pedidos", podemos detectar os verbos de ligao so, entre a entidade Clientes e Vendedores, e fazerem entre a entidade Vendedores e Pedidos. Esses verbos sero usados para nomear o relacionamento entre as entidades. Sempre que existir um relacionamento entre entidades, dever existir um atributo comum entre elas, chamado de atributo de ligao, que normalmente equivale a uma chave primria que migra para a outra entidade como chave estrangeira.
Entidade A Clientes Vendedores Advogado Livros Despesas Relacionamento fazem atendem possui possuem so dos Entidade B Pedidos Pedidos Especialidade Cpias Processos Atributo de ligao Cdigo do cliente Cdigo do vendedor Cdigo da especialidade Cdigo do livro Cdigo do processo

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

17

3.3 Cardinalidade do Relacionamento


Quando analisamos relacionamentos no mundo real, podemos observar que existem nmeros definidos de elementos que podem se relacionar. Por exemplo, no relacionamento Homem casa com Mulher, notamos que existem somente dois elementos que se relacionam: um homem e uma mulher, porm no relacionamento Casal possui Filhos, um nico casal pode ter um ou mais filhos, mais ainda no relacionamento Advogados trabalham em Processos, um advogado pode trabalhar em vrios processos, e um nico processo pode ter vrios advogados. A cardinalidade de um relacionamento visa determinar o nmero de instncias que se relacionam entre as entidades. A partir dessa anlise podemos classificar os relacionamentos em trs tipos: Umpara-um (1:1), Um-para-muitos (1:N) e muitos-para-muitos (M:N). 2.
3.

Para descobrir a cardinalidade de um relacionamento podemos seguir quatro passos: Passo 1) Identificamos as entidades e nomeamos o relacionamento: Clientes Possuem Pedidos Passo 2) Analisamos o nmero mnimo de ocorrncias entre as entidades: Clientes (1,. .. ) Possuem (0/ ... ) Pedidos Um Cliente pode no mnimo no ter nenhum pedido em seu nome; essa ausncia de ocorrncias representada pelo nmero zero (O). Um Pedido deve no mnimo ser de um Cliente Passo 3) Analisamos o nmero mximo de ocorrncias entre as entidades: Clientes ( ... /1) Possuem ( ... /N) Pedidos Um Cliente pode no mximo ter vrios pedidos em seu nome; esse nmero ilimitado de ocorrncias representado pela letra n. Um Pedido deve no mximo ser de um nico Cliente (1), pois, um pedido pertence a um nico cliente. Passo 4) Desprezamos os valores mnimos para cada entidade: Clientes (1 /1) Possuem (O,N) Pedidos Esse relacionamento um relacionamento um-para-muitos (1:N), ou seja, um cliente pode ter vrios (n) pedidos, e vrios (n) pedidos correspondem a um nico cliente.

3.3.1 Um-para-um (1:1)


O relacionamento de cardinalidade um-para-um (1:1) um relacionamento usado apenas para ligao entre duas entidades que se complementam, pois uma nica instncia de uma entidade pai relacionada com a outra entidade filho. Por exemplo, cada documento de um automvel est associado a um nico automvel que foi fabricado, sendo que o atributo de ligao o nmero do chassi. Os relacionamentos (1:1) so tambm usados para ligar as sub-entidades s entidades principais das quais elas foram derivadas. Automvel (Pai) Nmero do Chassi Fabricante Data fabricao Modelo Combustvel Motor Documentos (Filho) Nmero Nmero do Chassi Data fabricao Modelo Combustvel Nome do Proprietrio Endereo Ano Licenciamento

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG 4.

18

3.3.2 Um-para-muitos (1:N)


O relacionamento de cardinalidade um-para-muitos (1:N) um relacionamento onde uma nica instncia de uma entidade Pai relacionada com nenhuma, uma ou mais instncias da entidade Filho. Por exemplo, um Cliente pode no ter nenhum, um ou vrios (n) processos executados ou em andamento para ele. Clientes (Pai) Cdigo do Cliente Nome Endereo Telefone Contato Tipo de cliente Processos (Filho) Nmero Data de abertura Data de fechamento Cliente Tipo de processo Frum

3.3.3 Muitos-para-muitos (M:N)


O relacionamento de cardinalidade muitos-para-muitos (M:N) um relacionamento onde vrias instncias de uma entidade Pai podem estar relacionadas a vrias instncias da entidade Filho. Por exemplo, um Advogado (Pai) pode participar de vrios Processos (Filho), e um Processo (Filho) pode ter vrios advogados (Pai). Os relacionamentos muitos-para-muitos (M:N) necessitam de uma entidade auxiliar denominada Entidade de Ligao, para poderem ser implementados fisicamente nos bancos de dados. Essa entidade de ligao funciona como ponte entre as duas entidades visto que no existe um atributo comum entre elas. Advogados (Pai) Cdigo do Advogado Nome Endereo Telefone Especialidade Processos (Filho) Nmero Data de abertura Data de fechamento Cliente Tipo de processo Frum

Advogados em Processos (Ligao) Cdigo do Advogado Nmero do processo o principal?


Podemos usar ainda a entidade de ligao para a criao de atributos especficos relacionados com a ligao. No exemplo anterior na entidade de ligao de advogados a processos criamos o atributo o principal? que poderia indicar se o advogado entre n possveis o advogado principal que cuida do processo.

3.3.4 Relacionamento Reflexivo


Um relacionamento reflexivo, ou auto-relacionamento o relacionamento onde uma instncia de uma entidade pai se relaciona com outra instncia da mesma entidade atravs de um atributo comum. Sendo assim uma nica entidade passa a ser pai e filho ao mesmo tempo. Qualquer uma das cardinalidades apresentadas (1:1, 1:N ou M:N) podem ocorrer em um relacionamento reflexivo. Por exemplo, um funcionrio subordinado a um chefe que tambm um funcionrio, ou seja, ambos so instncias da mesma entidade Funcionrios. Nesse caso a cardinalidade do auto-relacionamento um-para-muitos, pois um chefe pode ter vrios subordinados, e vrios subordinados reportam-se a um nico chefe.
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

19

3.3.5 Relacionamento mandatrio e opcional


Podemos classificar um relacionamento como mandatrio ou opcional analisando se o atributo de ligao (chave estrangeira) na entidade filho exige que exista um correspondente na entidade pai para que a informao da instncia seja vlida, caso seja obrigatrio, o relacionamento mandatrio, caso no seja opcional. Por exemplo, no relacionamento entre Clientes (Pai) e Processos (Filho) necessrio que exista um valor para o atributo Cdigo do Cliente na entidade Processos e que esse valor seja o cdigo de um Cliente existente, pois no pode existir um processo sem que exista um Cliente associado a ele. Esse relacionamento classificado como mandatrio. Outro exemplo seria o relacionamento entre Profisses (Pai) e Usurios da biblioteca (Filho), como um usurio no precisa obrigatoriamente ter um valor para o atributo Cdigo da profisso, pois podem existir usurios que no trabalham ou no tm uma profisso ainda definida, classificamos esse relacionamento como opcional.
Determinar se um relacionamento mandatrio ou opcional envolve conhecer muito bem os dados que sero tratados pelo sistema e suas relaes nas regras de negcio ou processos que sero atendidos pelo sistema. Normalmente em um relacionamento mandatrio a chave estrangeira na tabela filho ir tambm fazer parte da chave primria da mesma tabela em conjunto com outros atributos para identificar uma instncia.

Exerccios 1. Quais os objetivos da Modelagem Entidade-Relacionamento? 2. Como podemos identificar as entidades de um sistema a partir da descrio de processo? 3. Quais so os processos para a gerao ou derivao de sub-entidades? Explique-os. 4. Cite trs exemplos de relacionamentos do mundo real. 5. O que so Chave Primria e Chave Estrangeira?

6. O que um relacionamento reflexivo? Exemplifique. 7. Quais so as cardinalidades possveis em um relacionamento e quais as diferenas
entre elas?

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

20

Exerccios prticos
Exerccio 1: De acordo com as regras normalize as estruturas abaixo. Relao de Funcionrio: MATRCULA DO FUNCIONRIO NOME DO FUNCIONRIO DATA DO NASCIMENTO DEPENDENTE CDIGO DO DEPENDENTE NOME DO DEPENDENTE CURSO CDIGO DO CURSO NOME DO CURSO ANO DO CURSO Regras do negcio: Um funcionrio pode ter mais de um dependente Um funcionrio pode fazer mais de um curso Exerccio 2: Voc acabou de fundar sua empresa de consultoria e seu primeiro trabalho desenvolver um sistema para cadastro de clientes. Voc recebeu do cliente uma lista com os dados que devero compor o sistema, com base nesta lista normalize a estrutura de dados de acordo com as formas normais. Lista de informaes que devero compor o sistema cadastro de clientes:
Nome Nome do Pai Nome da Me Endereo Telefone1 Telefone2 Nmero do Fax Nmero do Celular Telefone do trabalho Data de Nascimento Naturalidade Nacionalidade Endereo de correspondncia Nome do filho 1 idade do filho 1 Nome do filho 2 idade do filho 2 Nome do filho 3 idade do filho 3 Nome do filho 4 idade do filho 4 Nome do Cnjuge Nmero do CPF Nmero da carteira de identidade

Exerccio 3 Representar usando o modelo lgico a situao descrita a seguir: O Departamento de Vendas da Indstria Beleza Ltda, aps estudos de mercado, verificou que para atingir seus objetivos seria necessrio adquirir frota de veculos prprios para motorizar seus vendedores. O mercado consumidor foi dividido em regies de venda; foram estabelecidos percursos de entrega abrangendo pontos estratgicos dessas regies e vendedores foram designados para cobrir estes percursos. Um sistema deve ser construdo para administrao da nova sistemtica de vendas adotada pela empresa. Aps entrevistas com o gerente da rea, foram obtidas as seguintes informaes:
Banco de Dados

Cada regio identificada por um cdigo; Uma regio composta de vrios pontos estratgicos; As regies no tm pontos estratgicos em comum; O vendedor tem a responsabilidade de cobrir uma regio; Uma regio pode ser coberta por vrios vendedores; A cada dia, um veculo fica sob responsabilidade de um vendedor; Um vendedor pode vender quaisquer itens ativos da tabela de produtos;
Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

21

O vendedor responsvel pela identificao de cada cliente consumidor na nota fiscal; A nota fiscal contendo identificao do vendedor, itens e quantidades vendidas exigida para comprovao da venda

Exerccio 4: De acordo com as regras, normalize as estruturas abaixo. Relao de Programadores: Numero da Matrcula Nome do Programador Setor Nvel (1,2,3) Descrio do Nvel (1 - Jnior, 2 - Pleno, 3 - Senior) Programas Cdigo do Programa Nome do Programa Tempo Estimado Nvel de Dificuldade (1, 2 ou 3 ) Descrio da Dificuldade (Fcil, Mdio, Difcil) Regras do negcio: - Um programa pode ser feito por mais de um Programador; - Um programador pode fazer um ou mais programas; - O Nvel de dificuldade do programa depende do tempo estimado para a elaborao do mesmo; Exerccio 5: Normalize a descrio abaixo at a 3 Forma Normal. Nome do animal Data de nascimento Espcie Dono do animal Descrio da vacina Data Atendente Servio prestado Material utilizado Horas gastas Valor Regras do negcio: - O atributo data pode ser utilizado para armazenar tanto a data da vacina como a data do atendimento; - O Pet-Shop atende diversos animais onde cada um possui uma ficha, onde esto armazenados todos os seus dados; - Os dados das vacinas tambm so armazenados e todos os animais devem ser vacinados; - Um animal pode ter somente um dono; - Um animal pode precisar de diversos servios e pode tomar diversas vacinas; - Um servio pode ser realizado em vrios animais; - Uma vacina pode ser aplicada em diversos animais; - Um animal pode ser atendido somente por um atendente. Feita a normalizao acima: a. Identifique as entidades existentes; b. Identifique as chaves existentes; Exerccio 6:
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

22

Um profissional altamente organizado deseja informatizar sua agenda de compromissos, para isso, identificou os seguintes requisitos: 1. Na sua agenda so registradas as pessoas com quem tem contato. 2. Cada contato possui um nome, um endereo formado por rua, nmero, complemento, cidade, estado e CEP, e diversos telefones, cada qual com DDD, nmero e uma descrio de tipo (celular, residencial, comercial, contato, etc.). 3. Cada compromisso pode envolver um ou mais contatos, devendo conter uma descrio do compromisso e podendo ser realizado em um determinado dia e horrio. De acordo com as informaes acima, aplique as formas normais para que o projeto da agenda seja implementado em um S.G.B.D. Em seguida, identifique as entidades e as chaves do projeto. Exerccio 7: Nos tempos atuais os aeroportos esto sendo cada vez mais utilizados, seja por voos domsticos seja por voos internacionais. Estes voos geram grandes quantidades de dados que precisam ser corretamente gerenciados para responderem prontamente s solicitaes dos usurios. Existe uma srie de atividades que devem ser realizadas antes de cada aeronave levantar voo. Cada detalhe deve ser bem estudado para garantir a continuidade dos voos e a segurana dos passageiros. Uma dessas atividades o controle do uso das pontes de embarque (tambm conhecida como fingers) em cada aeroporto. Este controle deve ser previsto com antecedncia de forma a aumentar a capacidade operacional do aeroporto, evitar confuses de embarque ou desembarque e disponibilizar a informao o mais rpido possvel aos usurios do aeroporto. Para isso, dados como tipo de voo e tempo de permanncia do avio devem ser levantados. Regras de negcio: Cada aeroporto deve possuir um ou mais fingers; Um ou mais fingers devem pertencer a um aeroporto. Cada finger pode possuir um ou mais alocaes (em horrios diferentes, claro); Uma ou mais alocaes devem ser usadas por uma finger. Cada companhia area pode possuir um ou mais voos; Um ou mais voos devem ser associados a uma companhia area. Cada voo deve utilizar uma alocao; Uma alocao deve ser utilizada por um voo. Com base nas informaes acima, aplique as formas normais nos dados apresentados e identifique as entidades e chaves existentes no sistema: No normalizado: Neste estgio ainda no foi realizada nenhuma normalizao. AEROPORTO {nome, cidade, num_finger} VOO {tipo, data, hora_entrada, nome, num_finger, horrio_voo, status} Exerccio 8: Normalizar o seguinte conjunto de atributos: Aluno (nome, naturalidade, ano_nascimento, curso, diretor, ano_inscrio, disciplina, nota) Exerccio 9: Normalizar o seguinte conjunto de atributos: Encomenda (cliente, endereo_cliente, data_encomenda, produto, quantidade) Exerccio 10: Normalizar o seguinte conjunto de atributos: Aplice (data, valor, estado, matricula, nome_cliente, localidade, tipo, data_pag, valor_pag, marca_viatura) estado = {ativa, inativa} tipo = {terceiros, todos os riscos,} Exerccio 11:
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

23

Lista de Chamada de Escola Primria Realizar a modelagem lgica relacional para a seguinte realidade: Uma escola primria deseja informatizar a lista de alunos de suas turmas: 1. Existem diversas turmas, cada qual com um nmero nico, uma srie e opcionalmente uma sala. 2. Cada turma possuir um professor, que tem um nome e identificado por uma matrcula. 3. Cada turma tem diversos alunos, identificados por um nmero de sequncia na turma, possuindo um nome. Exerccio 12: Dada a estrutura j normalizada na 3 Forma Normal: a. Identifique as entidades existentes; b. Identifique as chaves.
Arq. Funcionrio N da Matrcula Nome Func Data Nasc Arq. Curso do Func. Cd_Curso N da Matrcula Ano_Formao Arq. Dependentes Cd_Dependentes N Matrcula Nome_Depend Arq. Curso Cd_Curso Nome_Curso

Exerccio 13: Qual a cardinalidade dos relacionamentos abaixo:

a. Mulher casa-se Homem ___________________________________________ b. Aluno inscreve-se Curso __________________________________________ c. Mdico atende Paciente___________________________________________ d. Me possui Filho_________________________________________________ e. Empregado possui Dependente_____________________________________ f. Estudante cursa Disciplina_________________________________________ g. Fornecedor fornece Produto________________________________________ h. Engenheiro aloca Projeto__________________________________________ i. Agenda possui Endereos_________________________________________ j. Animais tomam Vacinas___________________________________________
Exerccio 14: Observe o Modelo Entidade-Relacionamento abaixo e resolva as questes: k. Identifique as entidades do modelo. l. Identifique as chaves primrias. m. Identifique as chaves estrangeiras. n. Interprete cada um dos relacionamentos. o. Identifique a cardinalidade de cada relacionamento.
I. Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

24

PROFESSOR PROFESSOR
DISCIPLINA/PROFESSOR DISCIPLINA/PROFESSOR

DISCIPLINA DISCIPLINA

ALUNO ALUNO

CURSO CURSO

II.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

25

3.4 Diagrama Entidade-Relacionamento


A estrutura lgica global de uma base de dados pode ser expressa graficamente por um diagrama chamado entidade-relacionamento, que consiste nos seguintes componentes: Retngulo: representam conjuntos de entidades:

identifica uma entidade forte.

identifica uma entidade fraca. Elipses: representam atributos:

identifica um atributo para um nico valor (monovalorado).

identifica um atributo para vrios valores (multivalorado).

identifica um atributo cujo valor deduzido de outros atributos, sendo usado mas no armazenado na base de dados (derivado).

identifica um atributo para agrupamentos de valores (compostos) exemplo a data, composta de dia, ms e ano.

Losangos: representam conjuntos de relacionamentos.

Segmentos de reta ligam atributos a conjuntos de entidades, e estes a conjuntos de relacionamentos. Neste ltimo, uma linha identifica uma participao parcial, e duas linhas identifica uma participao total. Cada componente rotulado com seu nome correspondente. Se o atributo for chave primria, esta condio demonstrada sublinhando seu nome. As retas que ligam conjuntos de entidades e de relacionamentos so rotulados segundo sua cardinalidade:

para cardinalidade um-para-um.

para cardinalidade um-para-muitos.

para cardinalidade muitos-para-muitos.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

26

A respeito de como nomear os vrios componentes, como prtica geral adota-se o emprego de substantivos para os conjuntos de entidades e verbos para os conjuntos de relacionamentos, de modo que o diagrama fornea uma descrio narrativa das requisies da base de dados. O exemplo abaixo apresenta o diagrama entidade-relacionamento proposto para uma base de dados de uma universidade:

3.4.1 Estendendo o Modelo Entidade-Relacionamento


Os conceitos de modelagem entidade-relacionamento vistos at aqui so suficientes para representar vrios esquemas da base de dados para aplicaes ditas tradicionais (nas reas de indstria e comrcio). No entanto, com a evoluo das tecnologias, novas aplicaes de bases de dados surgiram, sendo que estas tm necessidades mais complexas do que as encontradas na maioria das aplicaes tradicionais. Para representar estas necessidades o mais apurado e claro possvel, os projetistas de bases de dados precisam usar conceitos adicionais de modelagem semntica de dados. Dois destes conceitos, muito usados, so:

Generalizao e especializao: Generalizao o resultado da unio de dois ou mais conjuntos de entidades, produzindo um conjunto de entidades de nvel mais alto. Por outro lado, especializao o resultado da separao de um subconjunto de entidades, formando conjuntos de entidades de nvel mais baixo. A generalizao usada para enfatizar as semelhanas entre entidades de nvel mais baixo e ocultar suas diferenas. A especializao o inverso: ela enfatiza as diferenas entre as entidades. Em termos de diagrama entidade-relacionamento, generalizao e especializao so representados por um tringulo, disposto como que apontando para os conjuntos de entidades de nvel mais baixo. Por exemplo:

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

27

Atributos so usados como meio de distino, graas herana de atributos: os de conjuntos de entidades de nvel mais baixo so herdados dos conjuntos de entidades de nvel mais alto. Neste exemplo, os atributos de Convidado so R.A., nome, curso e ano (herdados de Aluno), alm de permanncia; os atributos de Matriculado so R.A., nome, curso, ano.

Agregao: uma abstrao atravs da qual relacionamentos so tratados como entidades de nvel mais alto. uma soluo limitao do modelo entidaderelacionamento, que no permite expressar relacionamentos envolvendo um outro relacionamento. Por exemplo:

Os atributos do conjunto de entidades agregada Assiste so os atributos de todos os conjuntos de entidades e do conjunto de relacionamentos envolvidos na agregao. Exerccios 1) A partir da resoluo dos exerccios anteriores, desenvolver o diagrama entidaderelacionamento (DER) para cada um deles.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

28

4. Modelo de Dados Relacional


4.1 Conceitos do Modelo Relacional

O modelo relacional representa o banco de dados como uma coleo de relaes; Uma relao pode ser vista como uma tabela ou arquivo; Quando uma relao vista como uma tabela, cada linha representa uma coleo de dados relacionados; Ou seja, pode ser encarada como uma instncia de uma entidade ou de um relacionamento; Na terminologia do modelo relacional formal, cada linha uma tupla, o nome de uma coluna chamado de atributo e uma tabela chamada de relao; Os tipos de dados de cada coluna so chamados domnios; Para um domnio dado um nome, tipo de dado e um formato; Um esquema de relao feito de um nome de relao (R) e uma lista de atributos (A 1, A2, .., An). Cada atributo Ai o nome desempenhado por algum domnio D no esquema R. O grau de uma relao o nmero de atributos (n) de seu esquema de relao. Uma relao pode ser definida matematicamente como um subconjunto do produto cartesiano dos domnios que definem o esquema R.

4.2 Caractersticas de Relaes


Uma relao diferente de uma tabela ou arquivo. Ordem de tuplas em uma relao. Uma relao definida como um conjunto de tuplas. Matematicamente falando, elementos de um conjunto no tm ordem entre eles. Entretanto, muitas ordens lgicas podem ser especificadas para uma relao, embora, pela definio de relao, no exista qualquer ordem. Quando uma relao implementada como um arquivo, uma ordem fsica tem que ser imposta. Ordem de valores dentro de uma tupla. De acordo com a definio de relao dada acima, uma tupla uma lista ordenada de valores. Nesta situao, importante a ordem em que os atributos aparecem em um esquema de relao. Entretanto, esta ordem no realmente importante, desde que seja mantida a correspondncia entre atributos e valores. Valores nas tuplas. Cada valor em uma tupla ter um valor atmico, ou seja, atributos compostos ou multivalorados no so permitidos. Esta a chamada primeira forma normal. Um valor especial, chamado null, usado para quando no se sabe o valor do atributo ou o valor no aplicvel. Interpretao de uma relao. Um esquema de relao pode ser interpretado como um fato (ou assertiva); ou pode ser visto como a representao de entidades ou de relacionamentos; ou ainda, pode ser visto como predicados, neste caso, os valores das tuplas representariam os valores que satisfazem os predicados.

4.3 Restries Relacionais



Restries de Domnio. Especifica que o valor de cada atributo A deve ser um valor atmico do domnio dom(A). Restries de chave. Por definio, todos os elementos de um conjunto so distintos. Consequentemente, todas as tuplas em uma relao devem tambm ser distintas. Isto significa que no devem existir duas tuplas com a mesma combinao de valores para todos os atributos. Usualmente, existem outros subconjuntos de atributos com a mesma propriedade acima, que so chamados super-chave, que especifica a restrio de ser nico. Toda a relao tem, no mnimo, uma super-chave que a juno de todos os atributos. Uma super-chave pode ter, entretanto, atributos redundantes (ou seja, no necessrios para serem nicos). Um conceito mais til o de chave, que uma superchave com a propriedade de que se eliminarmos qualquer atributo leva a um conjunto de
Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

Banco de Dados

IFSULDEMINAS Campus Inconfidentes MG

29

atributos que no mais uma super-chave. A restrio de ser nica para todo o estado da relao no esquema, ou seja, deve ser atingida mesmo quando novas tuplas so inseridas na relao. Se uma relao tem mais de uma chave, estas so chamadas chaves candidatas. Uma das chaves candidatas designada chave primria. Restrio de nulo. Pode ser especificado se valor nulo pode ou no ser permitido.

4.4 Bancos de Dados Relacionais e Esquemas


Um banco de dados relacional contm muitas relaes e as tuplas (das relaes) de alguma forma esto relacionadas. Um esquema de banco de dados relacional um conjunto de esquemas de relaes e um conjunto de restries de integridade. O estado de um banco de dados relacional um conjunto de estados de relao.

4.5 Integridade de Entidade, Integridade Referencial e Chaves Estrangeiras



A restrio de integridade de entidade diz que nenhum valor de chave primria pode ser nulo. Esta restrio (assim como a restrio de chave) aplicada em relaes individuais. A restrio de integridade referencial especificada entre duas relaes e usada para manter a consistncia entre tuplas das duas relaes. Informalmente, a restrio de integridade referencial diz que uma tupla da relao (R1), que refere-se a outra relao (R2), deve referir-se a uma tupla existente em R2. Uma chave estrangeira especifica uma restrio de integridade referencial entre duas relaes R1 e R2, de tal forma que, se um conjunto de atributos FK no esquema de relao R1 uma chave estrangeira de R1 que referencia a relao R2 se esta satisfaz as seguintes duas regras: (i) Os atributos de FK tem o mesmo domnio que os atributos da chave primria PK de R2, onde os atributos FK so ditos que se referem a relao R 2; (ii) Um valor de FK em uma tupla t1 de R1, ou ocorre em uma tupla t2 de R2 ou tem valor nulo. As restries de integridade referencial tipicamente vm dos relacionamentos entre entidades representadas pelo esquema de relao. Uma chave estrangeira pode referir-se a sua prpria relao. O relacionamento de superviso na entidade empregado, por exemplo. possvel mostrar diagramaticamente as restries de integridade atravs de uma seta que liga cada chave estrangeira a respectiva chave primria da relao referenciada. As restries de integridade referencial no incluem uma grande classe de restries mais gerais conhecidas como restries de integridade semntica. Exemplos dessas restries podem ser: (a) o salrio de um empregado no pode exceder o salrio de seu supervisor; ou (b) o nmero mximo de horas que um empregado pode trabalhar em todos os projetos por semana no pode ultrapassar 40 horas. Triggers podem ser usados para esta funo. Dois tipos de restries existem: (i) restries de estado (ou restries estticas); e (ii) restries de transio (ou restries dinmicas). Um exemplo de transio de transio pode ser que o salrio de um empregado s pode aumentar nunca diminuir.

4.6 Operao de Atualizao e Violao de Restries


4.6.1 Operao de insero
Prov uma lista de valores de atributos para uma nova tupla que dever ser inserida na relao R Pode violar: o Restrio de domnio (valor no correspondente ao domnio especificado) o Restrio de chave (se um valor de chave j existe)
Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

Banco de Dados

IFSULDEMINAS Campus Inconfidentes MG

30

Integridade de entidade (se a chave primria nula) Integridade referencial (se o valor da chave estrangeira refere-se a uma tupla que no existe na relao referenciada) Geralmente o SGBD deve rejeitar uma insero que viole essas restries o o

4.6.2 Operao de deleo


Pode violar somente integridade referencial. Ocorre quando a tupla sendo deletada referenciada pela chave estrangeira de outras tuplas no banco de dados. Trs opes esto disponveis: o Rejeitar a deleo o Propagar a deleo o Modificar o valor do atributo sendo referenciado, seja colocando o valor null ou colocar um outro valor vlido. Se o atributo referenciado fizer parte da chave primria o atributo no poder assumir valor nulo, seno ser violada a restrio de integridade.

4.6.3 Operao de Atualizao


Usada para alterar os valores de um ou mais atributos em uma tupla Atributos que no so chaves primrias ou estrangeiras, no tm problemas, exceto a checagem de tipos e domnios. Modificar uma chave primria a mesma coisa que apagar uma tupla e inserir outra em seu lugar. Insero e deleo se aplicam aqui. Se uma chave estrangeira modificada, o SGBD tem que garantir que o novo valor referese a uma tupla existente na relao referenciada.

Exerccios

1) Implementar a Terceira Forma Normal (3FN) do seu Prottipo de Aplicativo de Banco de


Dados (BD) utilizando um Modelo de Dados Relacional em um Sistema Gerenciador de Banco de Dados (SGBD) previamente escolhido e testar a sua funcionalidade, visando reduzir o desperdcio de recursos nas futuras fases de integrao e melhorar a eficincia operacional.

2) Pesquisar os Modelos de Dados Hierrquico, Rede e Orientado a Objetos, e Converter a


3FN do seu Prottipo de Aplicativo de BD no Modelo de Dados Relacional para os Modelos de Dados Hierrquico, Rede e Orientado a Objetos, visando identificar algumas das suas principais diferenas e caractersticas.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

31

5. SQL Structured Query Language


SQL (Linguagem Estruturada para Consulta) a linguagem mais comum para gerenciamento de banco de dados cliente/servidor. A principal vantagem da SQL que ela padronizada um conjunto de instrues SQL pode ser usado em muitos sistemas de gerenciamento de banco de dados. A SQL uma linguagem de aplicao para banco de dados relacionais, no um sistema ou uma linguagem de programao. uma linguagem baseada em conjuntos.

5.1 Operadores utilizados em SQL:


Aritmticos + * / % = > < >= <= <> AND OR NOT Soma Subtrao Multiplicao Diviso Resto da diviso Igual Maior que Menor que Maior ou igual Menor ou igual Diferente e ou negao

Comparao

Lgicos

5.2 Comandos para manipulao de dados


Os comandos para manipulao de dados so usados para seleo e manutencao de dados em tabelas e formulrios. So os comandos mais utilizados na construo de aplicaes usando SGBD. Os comandos possuem uma sintaxe SQL padro. SELECT: INSERT: UPDATE: DELETE: principal comando SQL. Efetua buscas nos dados de tabelas e formulrios. permite a insero de dados em tabelas. atualiza dados armazenados em tabelas. remove registros das tabelas.

5.2.1 O comando SELECT:


Principal comando SQL. Atravs dele possvel selecionar os dados armazenados no banco de dados, o que, em ltima anlise a finalidade de sistemas de informaes baseados em banco de dados. Possui funcionalidade bastante abrangente. Sintaxe: SELECT [campos] FROM [tabelas] WHERE [critrios]

Na clusula SELECT so informados os campos que faro parte da consulta. Se os campos pertencerem a uma mesma tabela, basta list-los separando-os com vrgula. SELECT matricula, nome, setor

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

32

Caso os campos a serem consultados pertenam a tabelas diferentes, necessrio indicar a tabela a qual pertence cada campo, utilizando [tabela.campo] SELECT programador.nome, nivel.descricao A clusula FROM indica a tabela que se est consultando. Caso a consulta seja em mais de uma tabela, basta separa-las por vrgula. FROM programador, programa A clusula WHERE, em conjunto com os operadores aritmticos e lgicos, permite determinar a faixa ou lista de valores que sero visualizados. WHERE matricula > 005 Operador LIKE Quando a comparao feita em textos, estes devem vir entre aspas simples e alm do operador =, o SQL admite tambm o operador like. WHERE nome = Ana Paula WHERE nome like Ana Paula Operador IN Faz a seleo de um valor dentro de uma lista de valores. Equivalente a vrias expresses lgicas OR. WHERE nome IN (Ana Paula, Maura) Operador BETWEEN Faz a busca dentro de uma faixa de valores. Equivalente a uma expresso com os operadores >= e <=. WHERE data BETWEEN #01/01/2002# AND #21/06/2007# Seleo de valores nulos IS NULL Nulo representa a ausncia de contedo para o campo, o que diferente de branco para campos texto ou zero para campos numricos. WHERE nome IS NULL Clusula ORDER BY A seleo de campos pode ser ordenada atravs da clusula ORDER BY. A ordenao pode ser ascendente (ASC), que o padro, o descendente (DESC). Os campos usados para ordenao devem fazer parte da lista de campos. ORDER BY nome Eliminao de duplicidades DISTINCT A clusula DISTINCT permite que valores duplicados seja eliminados. SELECT DISTINCT cidade Formatao do resultado final AS O cabealho das colunas no resultado da seleo usa o nome do campo como ttulo (muitas vezes no correspondem ao que est sendo selecionado). Para dar uma melhor aparncia ao resultado final, o nome das colunas pode ser alterado com a clusula AS. SELECT cod_programa AS [Cdigo], nome_programa AS [Nome do Programa]
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

33

Exerccios 1) Incluir o campo cidade na tabela programador. 2) Criar uma consulta utilizando SQL para selecionar os programadores da cidade de Campinas. 3) Selecionar, utilizando SQL, os nomes dos programadores da cidade de Campinas ou Inconfidentes. 4) Incluir, na tabela programa, campo data de incio da execuo do programa. 5) Criar uma consulta, utilizando SQL, para selecionar os programas iniciados entre 21/12/2003 e 15/08/2007. 6) Selecionar os registros das tabela Dificuldade onde no existe um valor para descrio. 7) Selecionar o campo cidade da tabela programador eliminando duplicidades. 8) Formatar os campos das consultas criadas acima. 5.2.1.1 Combinando dados entre tabelas diferentes Teoricamente, um bando de dados tem como fundamento a criao de um deposito nico de todos os dados. Estes dados no so independentes, eles se relacionam. O comando SELECT possui clusulas que permitem acessar dados relacionados, formando um conjunto nico de dados. Na SQL, pode-se implementar relacionamentos em para um (1:1), um para muitos (1:N), muitos para muitos (M:N) e o relacionamento reflexivo. INNER JOIN A clusula INNER JOIN faz a juno de dados entre duas tabelas. O campo comum nas duas tabelas declarado na clusula ON. O relacionamento feito entre uma chave primaria e uma chave estrangeira. Sintaxe: SELECT [tabela1.campos, tabela2.campos] FROM tabela1 INNER JOIN tabela2 ON tabela1.campo = tabela2.campo SELECT programador.matricula, programador.nome, programador.nivel, nivel.cod_nivel, nivel,descrio FROM programador INNER JOIN nivel ON programador.nivel = nivel.cod_nivel;

Exemplo:

OUTER JOIN A clusula INNER JOIN s faz a juno de dados entre duas tabelas somente se existirem dados comuns de ligao entre elas. A clusula OUTER JOIN faz a juno mesmo que no existam dados comuns de ligao entre as tabelas PAI e FILHO. A clusula OUTER JOIN deve ser acompanhada das clusulas LEFT ou RIGHT, que determinam se sero selecionados todos os campos da tabela PAI (LEFT) ou da tabela FILHO ( RIGHT), independentemente de ter ou no um dado relacionado. Os campos no relacionados apresentaro contedo nulo (NULL). OUTER JOIN usada, por exemplo, para se verificar problemas de integridade relacional. Sintaxe: SELECT [tabela1.campos, tabela2.campos] FROM tabela1 LEFT / RIGHT JOIN tabela2 ON tabela1.campo = tabela2.campo Exemplo: SELECT programador.matricula, programador.nome, programador.nivel, nivel.cod_nivel, nivel,descrio FROM programador LEFT / RIGHT JOIN nivel ON programador.nivel = nivel.cod_nivel WHERE nivel.descricao IS NULL;

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

34

5.2.1.2 Relacionamentos entre mais de duas tabelas Quando h necessidade de relacionar mais de duas tabelas, preciso acrescentar outras clusulas INNER JOIN ou OUTER JOIN ao comando SELECT. Geralmente usado para relacionamentos muitos para muitos (M:N), onde existe uma tabela de ligao entre as tabelas PAI e FILHO. Sintaxe: SELECT [tabela1, tabela2, tabelaN] FROM tabela1 INNER JOIN (tabela2 INNER JOIN tabelaN ON tabela2.campo = tabelaN.campo) ON tabela1.campo = tabela2.campo SELECT programador.matricula, programador.nome, programacao.codigo, programacao.matricula, programa.cod_programa, programa.nome_programa FROM programador INNER JOIN (programacao INNER JOIN programa ON programacao.codigo = programa.cod_programa) ON programador.matricula = programacao.matricula

Exemplo:

5.2.1.3 Relacionamento Reflexivo Chamamos de relacionamento reflexivo a possibilidade de relacionar uma tabela com ela mesma. Isso possvel utilizando-se o recurso de alias da tabela (AS), ou seja, dando um apelido para a tabela. Imagine, por exemplo, uma tabela funcionrio onde todo funcionrio possui um chefe. Lembre-se que todo chefe tambm um funcionrio da empresa. Campos da tabela funcionario: codigo, nome, departamento, chefe Exemplo: SELECT funcionario.codigo, funcionario.nome, chefes.codigo, chefes.nome FROM funcionario INNER JOIN funcionario AS chefes ON funcionario.chefe = chefes.codigo;

Exerccios 1) Criar uma consulta para mostrar o nome do programador e a descrio de seu nvel. 2) Criar uma consulta para mostrar o nome do programa e a descrio do seu nvel de dificuldade. 3) Criar uma consulta para mostrar o nome do programador e o nome do programa que ele est desenvolvendo. 5.2.1.4 Agrupando e sumarizando os dados O comando SELECT pode agrupar um determinado conjunto de campos e, atravs de funes de agregao, fazer clculos nesses grupos de dados. A sumarizao de dados feita com o uso da clusula GROUP BY. Algumas funes de agregao: o COUNT: conta a ocorrncia de um campo. COUNT(*) retorna o nmero de registros da tabela. o SUM: totaliza os valores para o campo. Usado com campos numricos. o MAX: devolve o maior valor para o campo. o MIN: devolve o menor valor para o campo. o AVG: mdia aritmtica simples dos valores do campo.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

35

A Clusula GROUP BY Para selecionar dados de tabelas efetuando agregaes utiliza-se, no comando SELECT, a clusula GROUP BY. o os campos que forem utilizados para agregao devem fazer parte da lista de campos; o as funes de agregao sero declaradas tambm da lista de campos; o as clusulas WHERE e ORDER BY podem ser usadas em conjunto com GROUP BY. Sintaxe: SELECT [lista de campos | funes de agregao] FROM [tabelas] GROUP BY [lista de campos para agregao] WHERE [critrios de seleo] ORDER BY [campos para ordenao] SELECT cod_programa, COUNT (cod_programa) AS total_programa FROM programa GROUP BY cod_programa ORDER BY cod_programa;

Exemplo:

5.2.1.5 Filtrando dados agrupados com a clusula HAVING O nmero de registros que gerado em resposta a um comando SELECT agregando dados mo GROUP BY pode ser limitado atravs do uso da clusula HAVING. A clusula HAVING s usada em conjunto com o GROUP BY e est para o GROUP BY assim como a clusula WHERE est para o comando SELECT. A diferena que enquanto a clusula WHERE filtra os dados antes da agregao , o HAVING filtra os dados aps a agregao. Sintaxe: SELECT [lista de campos | funes de agregao] FROM [tabelas] GROUP BY [lista de campos para agregao] HAVING [critrios de seleo aps a agregao] WHERE [critrios de seleo antes da agregao] ORDER BY [campos para ordenao]

Exerccios 1) Retornar o nmero de programadores cadastrados no sistema. 2) Retornar o programa com maior tempo para desenvolvimento. 3) Filtrar o programa com menor tempo de desenvolvimento que tenha incio entre 21/12/2006 e 30/10/2007.

5.3 Comandos para manuteno de dados


Os comandos para manuteno de arquivos permitem incluir novos dados em tabelas, alterar o contedo de dados j gravados e excluir registros em tabelas.

5.3.1 INSERT
O comando INSERT usado para inserir novos registros em tabelas. A insero de um novo registro s ser efetivada se no for violada nenhuma restrio. Sintaxe: INSERT INTO [talela] VALUES [lista de valores] ([lista de campos])

A lista de campos serve pode ser usada para se declarar campos a serem inseridos.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

36

5.3.2 DELETE
O comando DELETE apaga registros da tabela. A excluso ser efetuada se nenhuma regra de integridade referencial for violada, e os registros apagados s podero ser recuperados atravs da restaurao de arquivos de backup. Sintaxe: DELETE [talela] WHERE [critrios de seleo]

5.3.3 UPDATE
O comando UPDATE permite a atualizao de dados j existentes. A atualizao s ser efetuada se no houver conflito com nenhuma restrio definida para a tabela. Sintaxe: UPDATE [tabela] SET [campo1 = novo_nome1, campoN = novo_nomeN] WHERE [critrios de seleo]

Exerccios 1) 2) 3) 4) 5) Inserir, utilizando SQL, os nveis de dificuldade Muito fcil e Muito difcil. Inserir, utilizando SQL, dois programadores da cidade de Pouso Alegre. Inserir um programa com nvel de dificuldade Muito difcil. Alterar o campo descrio do registro 4 da tabela nvel para mestre. Excluir o nvel de dificuldade Muito fcil. 6) Crie as instrues SQL de acordo com as tabelas abaixo. Faa tudo em sequncia.

Tabelas de Referncia CDS


Campo Codigo Nome DataCompra ValorPago LocalCompra Album Tipo Autonumerao Texto Data/hora Moeda Texto Sim//No Tam 50 Chave * Campo CodigoCD Numero Nome Artista Tempo

Msicas
Tipo Nmero Nmero Texto Texto Nmero Tam Chave * *

50 50

a. Mostrar todos os Cds. b. Mostrar os campos nome e data da compra dos Cds ordenados por nome. c. Mostrar os campos nome e data da compra dos Cds classificados por data de compra em ordem decrescente. d. Mostrar o total gasto com a compra dos Cds. e. Mostrar todas as msicas (todos os campos) do Cds cdigo 1. f. Mostrar o nome do Cd e o nome das msicas de todos Cds. g. Mostre o nome e o artista de todas as msicas cadastradas. h. Mostre o tempo total de msicas cadastradas. i. Mostre o nmero, nome e tempo das msicas do Cd 5 em ordem de nmero. j. Mostre o tempo total de msicas por Cd. k. Mostre a quantidade de msicas cadastradas. l. Mostre a mdia de durao das msicas cadastradas. m. Mostre a quantidade de Cds. n. Mostre a quantidade de msicas por Cd. o. Mostre o nome do Cd e o nome da primeira msica de todos Cds. p. Mostre uma listagem de msicas em ordem alfabtica. q. Mostre o Cd que custou mais caro.
Banco de Dados Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

IFSULDEMINAS Campus Inconfidentes MG

37

Referncias Bibliogrficas
o o o o o o o o o o

Silberschatz, A., Korth, H. F. e Sudarshan, S., Sistema de Banco de Dados (terceira edio), Makron Books; Internet. jmourisca.googlepages.com/Aula09.4cCes30Ce24007k_ListEx4_.pdf www.dcc.fua.br/~barreto/bd1/modelo_relacional_conceitos.html www.linhadecodigo.com.br/Artigo.aspx?id=140 www.tech-faq.com/lang/pt/relational-database.shtml www.inf.puc-rio.br/~casanova/INF1731-BD/modulo02.pdf www.marketing-webmaster.com/bd/2-ModeloER.htm www2.dc.ufscar.br/~carvalho/GUBD/aulas/35.html www.de9.ime.eb.br/~yoko/bdII2005.2/NormRo.ppt imasters.uol.com.br/artigo/7020 www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx Apostilas People Computao.

Banco de Dados

Prof. M. Sc. Maria de Ftima de Freitas Bueno Marclio

Você também pode gostar