Você está na página 1de 140

Modelagem de Dados

Aula 01

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 1

OBJETIVOS

Apresentar os conceitos iniciais sobre bancos de dados e sua importncia para as organizaes. Conceituar a diferena entre dado e informao. Apresentar as diferenas entre sistemas baseados em arquivos e sistemas gerenciadores de banco de dados.

CONCEITOS BSICOS DE BANCOS DE DADOS


Consideraes iniciais

A modelagem de dados faz parte de uma etapa muito importante do desenvolvimento de sistemas, na qual se desenha toda a estrutura dos dados que envolvem uma atividade humana a ser informatizada. O estudo feito sobre a modelagem de dados serve tanto para uma pequena atividade comercial como para uma grande organizao.

A modelagem de dados antecede a construo do banco de dados em um meio computacional, ela mostra a estrutura do banco de dados, seja do ponto de vista do usurio como da sua forma fsica.

Introduo ao banco de dados

Um banco de dados um conjunto de elementos extrados a partir de informaes do mundo real. Esses dados so organizados, classificados e relacionados de forma que possam gerar novas informaes para o mundo real. O nome banco de dados teve sua origem na traduo da palavra inglesa data banks e mais tarde foi modificada por database, que significa base de dados.

O sculo XXI est marcado pela Era da Informao Digital. O mundo dos negcios, o sucesso das empresas, o comrcio e a educao de um pas dependem de um elemento vital: a informao. As informaes podem justificar fatos que contribuem para a formao do conhecimento e a tomada de decises.

A informtica se preocupa em gerar a informao por meio de tecnologia gil e eficaz para que esteja ao alcance de todos. O banco de dados um grande responsvel pelo processo. A montagem adequada, seguida de regras e mtodos permite que os dados extrados sejam corretos e as informaes geradas sejam espelho da realidade.

Dado e informao, qual a diferena?

O dado identifica ou quantifica algo, absoluto e objetivo. A informao tem um significado para o mundo real, tem valor relativo ou uma qualificao do dado. A informao pode ter um ou mais dados. Quando um dado lembra um fato associado,

ele vira informao. Certos nomes de pessoas ou lugares que ficaram famosos pelos seus fatos se tornaram cones e agregam valores, por exemplo, Ronaldinho.

Exemplos de informaes:

O aluno Mario Silva casado com Laura, mora na Rua Abrao Lins, 230. Ele nasceu no bairro da Bela Vista em So Paulo e sua profisso vendedor.

Estas informaes possuem vrios dados envolvidos e o seu conjunto tem um significado para o mundo real.

Examinando a frase, quais os dados que poderiam ser extrados?

Se misturarmos os dados poder no significar nada para ns que estamos lendo a frase.

Laura Bernardes, vendedor, Mario Silva, Rua Abrao Lins 230, So Paulo, Bela Vista.

Para que esses dados possam ser resgatados de um banco, necessrio classificlos, organiz-los e relacion-los; caso contrrio, teremos um banco de dados insignificante.

Classificando os dados, teremos:

Nome do aluno: Mario Silva UF de nascimento: So Paulo

Endereo: Rua Abrao Lins, 230 Profisso: Vendedor

Local de nascimento: Bela Vista Cnjuge: Laura Bernardes

Vamos analisar agora outro exemplo:

O inverno do Canad mais frio que o inverno brasileiro.

Essa uma informao que pode ter significado para o mundo real. Nela est implcita a comparao das temperaturas mnimas dos dois pases. Se criarmos uma tabela de pases e suas temperaturas mnimas em um determinado ano, teremos os seguintes dados: Pases Brasil Canad Frana Temperatura Mnima + 8 C - 43 C - 3 C

A tabela contm dados: Canad, Brasil, Frana; e a palavra pases apenas uma classificao desses dados, bem como - 3 C, - 43 C e + 8 C, que tambm so dados classificados como temperatura mnima. A informao uma mensagem significativa que nos leva a associar fatos do mundo real. O dado, por si s, no tem significado algum, ele apenas identifica algo. As comparaes e as concluses que tiramos dos dados geram informaes. A afirmativa acima poderia ser concluda por um turista que sentiu na pele o frio dos dois pases, mas se quisermos saber se realmente verdadeira, precisamos comparar os dados da tabela ou repetiremos a mesma experincia de quem passou a informao. O banco de dados formado por um conjunto de elementos organizados em forma de tabelas e relacionados entre si, de acordo com o significado que eles tm no mundo real. Se os dados e os seus relacionamentos so verdadeiros, as informaes que obtemos deles tambm sero verdadeiras.

Formas de armazenamento de dados

Podemos armazenar os dados de uma aplicao de duas maneiras:

1. Sistema de armazenamento em arquivos

O que um arquivo? uma forma que os sistemas operacionais utilizam para armazenar e organizar os dados em meio permanente. Um arquivo composto por uma identificao e um conjunto de dados agrupados em forma de registros. Cada registro formado por campos em que esses dados so armazenados, por exemplo, imagine um arquivo para armazenar os dados de funcionrios. Cada funcionrio tem seus dados dentro de um registro do arquivo.

Os arquivos so criados e mantidos pelos programas desenvolvidos em uma linguagem que o programador escolhe para desenvolv-los. Os dados somente podem ser acessados em um programa da mesma linguagem em que foram gerados ou algum programa compatvel.

Os arquivos so dependentes da linguagem em que foram criados. Em uma organizao, os sistemas baseados em arquivos apresentam as seguintes desvantagens:

Inconsistncia e redundncia de dados:

Uma vez que os arquivos so mantidos por aplicaes feitas por vrios programadores, ao longo do tempo, com as mudanas que as empresas enfrentam, comum haver alterao dos formatos e criao de arquivos para novas implementaes. Assim, os dados se repetem, pois cada aplicao possui a sua forma de armazenamento.

Dificuldade de acesso aos dados:

Toda vez que o usurio necessita de outra forma de acesso aos dados, diferente da que o sistema oferece, o programador precisa mudar o programa ou, muitas vezes, desenvolver outro para atender ao usurio. Isso tem um custo elevado de desenvolvimento para as empresas, alm do tempo gasto para elabor-lo, na maioria das vezes, h urgncia em receber os dados, retardando a tomada de decises.

Isolamento dos dados:

Como os dados esto armazenados em arquivos independentes, possvel que, ao tentar acess-los de outro arquivo com formato diferente, no seja possvel ou haja necessidade de criar novas aplicaes para compatibiliz-los.

Falta de integridade:

Uma aplicao de usurio geralmente feita por vrios arquivos e existe sempre uma dependncia e uma relao entre os dados de um arquivo para outro. Se o programador no se preocupar, ou no conhecer essa dependncia, correr o risco de criar programas que, ao buscar dados, resultem em uma pesquisa errada, ocasionando danos empresa.

Falta de atomicidade:

Transao atmica em computao significa que, em uma interrupo qualquer no sistema por falha tcnica, essa transao deve ser completada ou abortada, ou seja, todos os arquivos devem ser atualizados automaticamente ou retornados situao anterior. No sistema baseado em arquivos, esta preocupao recai na mo dos programadores, que devem criar mecanismos de tratamento a falhas. Se a empresa no possui uma poltica de padronizao das aes a serem tomadas, o programador pode errar no processo, afetando os dados.

Falta de segurana:

Os sistemas baseados em arquivos dependem da proteo do sistema operacional e das permisses de acesso ao dispositivo onde esto

armazenados. O programador poder ter se lembrado de criar senha na sua aplicao, mas se outro programador tentar criar um programa para acessar o mesmo arquivo, sem proteo alguma, este fica vulnervel a modificaes indesejadas, que normalmente so feitas pelos usurios.

2. Sistema de banco de dados

Um Sistema de Gerenciamento de Banco de Dados (SGBD) consiste em uma coleo de dados inter-relacionados e um conjunto de programas que fazem acesso aos dados. Os SGBDs so concebidos para gerenciar desde um pequeno conjunto de dados at um grande volume. Oferecem as estruturas para armazenamento e todos os mecanismos para manipulao, ou seja, incluso, alterao, excluso, seleo e busca dos dados.

A estrutura criada pelos analistas de banco de dados ou pelos desenvolvedores de sistemas aplicativos para o usurio final ter fcil acesso.

Por que usar um sistema de banco de dados?

Os primeiros sistemas de armazenamento de dados eram baseados em arquivos. Os SGBDs surgiram para eliminar todos os problemas apontados como desvantagens na utilizao dos sistemas baseados em arquivos.

Os sistemas de gerenciamento de banco de dados possuem as seguintes vantagens:

Integridade dos dados. Segurana de acesso aos dados. Atomicidade nas transaes. Concentrao dos dados em um repositrio, geralmente em um servidor de dados. Independncia de linguagem de programao. Impem regras de utilizao para toda e qualquer aplicao que se conectar ao banco de dados.

Observao

Os nomes das entidades e de seus respectivos atributos no foram acentuados, pois no se recomenda utilizar acentos para denominar tabelas e colunas (de tabelas) em bancos de dados.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005.

HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 02

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 2

OBJETIVOS

Apresentar os modelos de dados em rede, hierrquicos, relacionais e orientados a objetos. Demonstrar as etapas de desenvolvimento de um projeto de banco de dados.

ETAPAS DA ELABORAO DE UM PROJETO DE BANCO DE DADOS


Introduo

Os modelos de dados especificam a estrutura lgica dos dados. Os formatos mais conhecidos so:

Hierrquico. Rede. Relacional. Orientado a objetos.

Modelo hierrquico

Surgiu na dcada de 1960 com a primeira linguagem de banco de dados: a DL/I desenvolvida pela IBM e a North American Aviation.

Organiza os dados de cima para baixo, como uma rvore. Cada registro dividido em partes denominadas segmentos. O banco de dados se assemelha a um organograma com um segmento raiz e um nmero qualquer de segmentos subordinados.

Modelo em rede

Definido pelo DBTG (Data Base Task Group) do comit do CODASYL (Conference on Data Systems Language) a partir de 1971. Esse modelo uma extenso do modelo hierrquico.

Nos modelos baseados em rede, os dados so agrupados em forma de registros em que um aponta para outro por meio de ponteiros (links), exemplo:

Modelo relacional

O modelo relacional um conjunto de tabelas relacionadas entre si por meio dos prprios dados, no utilizando ponteiros para ligar os registros. Veja o mesmo exemplo usando o modelo relacional:

Modelo orientado a objetos

Um objeto que representa algo no mundo real possui dados que o identificam e funes que ele pode executar. As funes so escritas com uma linguagem de programao. Os dados so chamados de atributos e as funes de mtodos. As classes so definies de como os objetos devero ser. Cada objeto uma instncia de uma determinada classe, um exemplo anlogo: A receita de um bolo uma classe e o bolo o objeto dessa classe. A partir de uma nica receita podemos gerar vrios bolos.

Etapas de elaborao de um projeto de banco de dados

Um projeto de banco de dados constitudo por trs nveis de abstrao:

1. Modelo conceitual. 2. Modelo lgico. 3. Modelo fsico.

O modelo lgico, que ser estudado em detalhes nas prximas aulas, refere-se especificamente ao modelo relacional, pois ainda o mais usado atualmente.

Anlise de requisitos

O primeiro passo para modelar os dados fazer a anlise de requisitos, ou seja, descrever todas as informaes necessrias para extrair os dados que devero compor o banco de dados. A descrio a seguir um roteiro de necessidades que devem ser levantadas.

Quais os problemas que o banco de dados poder solucionar. Qual o objetivo de criar um banco de dados para aquela realidade especfica, ou seja, os resultados esperados. Quais as informaes que desejamos saber do banco de dados. Quais as regras de negcio. Quem est participando diretamente e indiretamente no negcio. Verificar documentos que formalizam a negociao: notas, contratos, pedidos etc. Dados relevantes, casos de sucesso ou fracasso, pertinentes problemtica. Datas crticas. Restries de dados.

Roger Pressman, em seu livro Engenharia de Software, descreve algumas caractersticas que um analista deve ter para fazer uma anlise de requisitos com sucesso, uma vez que o usurio geralmente leigo em informtica:

A capacidade de compreender conceitos abstratos, reorganiz-los em divises lgicas e sintetizar solues baseadas em cada diviso. A capacidade de absorver fatos pertinentes de fontes conflitantes. A capacidade de entender os ambientes do usurio/cliente. A capacidade de aplicar elementos do sistema de hardware e/ou software aos elementos do usurio/cliente. A capacidade de se comunicar bem nas formas escrita e verbal.

Modelo conceitual

Para representar o modelo conceitual de dados usaremos o Modelo EntidadeRelacionamento (MER) criado por Peter Chen, em 1976, baseado na teoria relacional desenvolvida por E. F. Codd em 1970. O MER surgiu para padronizar a modelagem de dados por meio de diagramas, assim, qualquer profissional poderia ler e compreender toda a sua estrutura, sem mesmo conhecer a realidade a que se referia. A padronizao facilita a criao de ferramentas CASE (Computer Aided Software Engineering), programas usados na engenharia de software para auxiliar no desenvolvimento de sistemas.

O MER (Modelo Entidade-Relacionamento) tem como princpio a representao do mundo real em forma de objetos dos quais queremos obter informaes. Estes objetos recebem o nome de entidades. Para desenhar o modelo conceitual, usamos um diagrama com smbolos para representar as entidades, os atributos e descrever os relacionamentos.

Simbologia do Diagrama Entidade Relacionamento (DER)

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990.

DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. PRESSMAN, Roger S. Engenharia de software. So Paulo: Makron Books, 1995. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 03

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 3

OBJETIVO

Desenvolver a percepo de entidades, atributos e relacionamentos, utilizando o DER (Diagrama Entidade Relacionamento).

ENTIDADES, ATRIBUTOS E RELACIONAMENTOS


Entidade

Conjunto de objetos do mundo real dos quais queremos manter informaes no banco de dados.

As entidades representam os agentes que interagem em um relacionamento. Podem representar pessoas, documentos (pedidos, notas fiscais etc.), objetos e resultado de aes. Observe os exemplos a seguir:

Atributo

Representa um dado associado a cada ocorrncia de uma entidade ou de um relacionamento.

Relacionamento

o conjunto de associaes entre entidades.

Exemplo: clnica mdica.

Suponha que voc tenha sido convidado para fazer a modelagem de dados de um sistema para uma clnica mdica.

Tomando como exemplo essa clnica, vamos comear a fazer a modelagem dos dados. Inicialmente, vamos identificar algumas entidades envolvidas e analisar seu relacionamento.

A atividade exercida na clnica envolve o mdico consultar o paciente. Nessa ao encontramos duas entidades: mdico e paciente e o relacionamento o ato de consultar.

Desenhando o diagrama temos:

Uma entidade possui um conjunto de atributos, cada atributo est associado a um tipo de dado, por exemplo, para que cada mdico seja identificado, precisamos dos seguintes dados: CRM, nome, especialidade e telefone. Esses so os atributos da entidade MDICO.

Quando o paciente chega para sua primeira consulta, necessrio que ele informe seu CPF, nome, telefone e data de nascimento. Esses so os atributos da entidade PACIENTE.

Vamos desenhar os atributos no diagrama:

No banco de dados, a entidade representa uma tabela de dados. Desenhando as entidades em forma de tabela, teremos:

MDICO CRM 12345 54321 23451 NOME Dr. Maurcio Pereira Dra. Patrcia Peres Dr. Hildebrando Alves TELEFONE 5125-4562 5264-9874 5689-5454 ESPECIALIDADE clnico geral pediatra cardiologista

PACIENTE CPF 00111222333-44 22333444555-66 99888777666-55 NOME Mauro Souza Lucia Prado Maria Gomes TELEFONE 5521-6245 5642-7893 5967-8245 DATA_NASC 10/02/1985 12/11/1975 15/05/1995

As tabelas so as representaes das entidades, contendo os dados armazenados. Essa uma viso lgica dos dados no banco de dados.

A modelagem de dados ainda no est pronta, precisamos agora identificar quais as outras entidades envolvidas e aquelas associadas aos relacionamentos que aparecem durante a anlise.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 04

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 4

OBJETIVO

Apresentar os conceitos de cardinalidade dos relacionamentos para a elaborao do DER. Apresentar como deve ser feito o questionamento em cada entidade para descobrir qual o grau de cardinalidade.

CARDINALIDADE MNIMA E MXIMA E GRAU DE CARDINALIDADE


Na aula anterior, vimos os conceitos de entidade, atributo e relacionamento. Agora, vamos analisar a quantidade de ocorrncias de uma entidade associada outra por meio de um relacionamento. Isso chamado de cardinalidade.

Cardinalidade

o nmero (mnimo/mximo) de ocorrncias de uma entidade associada a uma ocorrncia de outra entidade por meio de um relacionamento.

Cardinalidade mnima

Indica o nmero mnimo de ocorrncias de uma entidade associada outra ocorrncia da outra entidade relacionada. Pode ser representada por 0 (zero) quando a associao opcional (no existe correspondente na outra entidade) ou 1 (um) quando a associao obrigatria (pelo menos um correspondente na outra entidade).

Cardinalidade mxima

Indica o nmero mximo de ocorrncias de uma entidade associada outra ocorrncia de outra entidade relacionada. representado por 1 (um) ou N (vrias ou muitas).

Exemplo:

No exemplo apresentado, vamos imaginar duas entidades, uma de homens e outra de mulheres, alguns homens so casados com mulheres da outra entidade e outros no. Da mesma forma, algumas mulheres so casadas, outras no.

Para identificar a cardinalidade, deve ser feita a pergunta de uma entidade para outra.

Um homem pode ser casado no mnimo com quantas mulheres da outra entidade? E no mximo (legalmente!)?

Uma mulher pode ser casada no mnimo com quantos homens da outra entidade? E no mximo (legalmente!)?

Quando usamos a cardinalidade mnima e mxima, devemos escrever da seguinte forma: mnima, mxima.

Observe agora outro exemplo:

Uma empresa possui funcionrios e seus dependentes; nem todo funcionrio possui dependentes, mas todos os dependentes tm algum funcionrio associado. Vamos colocar a cardinalidade analisando primeiro a entidade funcionrio.

Um funcionrio possui no mnimo 0 (nenhum) dependente.

Um funcionrio possui no mximo N (vrios) dependentes.

Agora, analisando a entidade dependente:

Um dependente tem no mnimo 1 (um) funcionrio associado.

Um dependente tem no mximo 1 (um) funcionrio associado.

Acesse o ambiente virtual de aprendizagem UNINOVE para a visualizao do slideshow que explica passo a passo como interpretar cardinalidades em um DER.

Grau de cardinalidade

Grau de cardinalidade refere-se cardinalidade mxima, observando-se ambos os sentidos. Portanto, podemos encontrar os seguintes graus de cardinalidade:

1:1 (um para um)

Uma ocorrncia da entidade 1 se relaciona no mximo com apenas uma ocorrncia da entidade 2 e uma ocorrncia da entidade 2 se relaciona no mximo com apenas uma ocorrncia da entidade 1.

1:N (um para muitos)

Uma ocorrncia da entidade 1 se relaciona com muitas ocorrncias da entidade 2 e uma ocorrncia da entidade 2 se relaciona com apenas uma ocorrncia da entidade 1.

N:N (muitos para muitos)

Uma ocorrncia da entidade 1 se relaciona com muitas ocorrncias da entidade 2 e uma ocorrncia da entidade 2 se relaciona com muitas ocorrncias da entidade 1.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 05

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 5

OBJETIVO

Apresentar os diversos graus de relacionamentos: binrios, autorrelacionamentos e ternrios (n-rios).

GRAUS DE RELACIONAMENTOS
Introduo

O grau de um relacionamento refere-se ao nmero de entidades que participam de um relacionamento. Observe a seguir os diversos graus de relacionamentos:

Relacionamento binrio

Um relacionamento binrio aquele envolve duas ocorrncias de entidade.

Conforme observado na aula anterior, podemos classificar os relacionamentos binrios em:

1:1 (um-para-um): cada ocorrncia de uma entidade relaciona-se com uma e somente uma ocorrncia da outra entidade. 1:N (um-para-muitos): uma ocorrncia da entidade 1 relaciona-se com muitas ocorrncias da entidade 2, mas cada ocorrncia da entidade 2 somente pode estar relacionada com uma ocorrncia da entidade 1.

N:N (muitos-para-muitos): em ambos os sentidos encontramos um ou mais relacionamentos de um-para-muitos, isto , uma ocorrncia da entidade 1 relaciona-se com muitas ocorrncias da entidade 2 e vice-versa.

Relacionamento ternrio

Denominamos ternrios os relacionamentos entre trs conjuntos de entidades. Relacionamentos com quatro ou mais conjuntos de entidades so chamados de n-rios, porm, sua utilizao no recomendada em virtude de sua complexidade. Sugere-se que sejam quebrados em relacionamentos binrios e/ou ternrios.

No exemplo a seguir, queremos garantir que a seguinte situao seja representada de forma apropriada: o professor x ministra a disciplina y para a turma z. Esta condio deve ser representada por meio de um relacionamento ternrio.

Observe que, no exemplo apresentado, cada par de ocorrncias (turma, disciplina) est associado a, no mximo, um professor.

Podem estar associadas muitas disciplinas a um par (turma, professor), ou, em outros termos, um professor pode ministrar a uma determinada turma vrias disciplinas.

Podem estar associadas muitas turmas a um par (disciplina, professor), ou, em outros termos, um professor pode ministrar uma determinada disciplina a vrias turmas.

Autorrelacionamento

Representa o relacionamento entre ocorrncias de uma mesma entidade.

Autorrelacionamento 1:1

O diagrama a seguir representa a seguinte situao: uma ocorrncia de pessoa exerce o papel de marido e outra ocorrncia de pessoa exerce o papel de esposa. Uma pessoa pode ter no mximo um cnjuge (marido ou esposa).

Autorrelacionamento 1:N

A seguir, temos representada a seguinte situao: uma ocorrncia de funcionrio exerce o papel de supervisor e outras ocorrncias de funcionrio exercem o papel de supervisionado. Um supervisor pode ter muitos supervisionados, mas cada supervisionado tem apenas um supervisor.

Autorrelacionamento N:N

E, finalmente, temos representada a seguinte situao: algumas ocorrncias de produto exercem o papel de composto e outras ocorrncias exercem o papel de componente. Um produto pode entrar na composio de muitos outros produtos e cada produto composto por vrios (muitos) outros.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. MULLER, Robert J. Projeto de Banco de Dados: Usando UML para modelagem de dados. So Paulo: Berkeley Brasil, 2002. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 06

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 6

OBJETIVO

Atribuir propriedades particulares a entidades por meio do conceito de generalizao e especializao de seus atributos.

GENERALIZAO E ESPECIALIZAO
Conceitos bsicos de generalizao e especializao

Algumas entidades podem apresentar ocorrncias em que uma parte delas possui as mesmas propriedades e a outra parte possui propriedades diferentes, sendo necessrio separ-las em subgrupos (especializaes).

Usando o conceito de generalizao e especializao, podemos subdividir uma entidade em vrias outras de acordo com o significado dos seus dados.

O smbolo usado um tringulo e para definir o tipo utilizamos (t) total e (p) parcial.

Podemos ver, no exemplo a seguir, que a entidade cliente de uma empresa pode ter ocorrncias de pessoa jurdica e ocorrncias de pessoa fsica; ambas podem ter nome, cdigo e outros atributos em comum, mas possuem tambm atributos que as diferenciam, como CPF e RG. Esses atributos somente o cliente pessoa fsica possui, enquanto que CNPJ e Inscrio Estadual pertencem apenas ao cliente pessoa jurdica. Para que a entidade cliente no seja definida com todos os atributos em que uma possua determinados dados e outra no, separa-se a entidade cliente em duas para melhor organizao: pessoa fsica e pessoa jurdica.

A generalizao/especializao est associada herana porque as entidades especializadas, alm dos seus prprios atributos, possuem tambm todos os da entidade generalizada.

No exemplo, cada ocorrncia de pessoa fsica possui: cdigo, nome, RG e CPF, enquanto as ocorrncias de pessoa jurdica possuem: cdigo, nome, CNPJ e INSC_EST.

A generalizao/especializao pode ser classificada em dois tipos: total e parcial.

Total (t)

Quando cada ocorrncia da entidade generalizada possui obrigatoriamente uma ocorrncia correspondente a alguma das entidades especializadas. Cada cliente ou pessoa jurdica ou pessoa fsica, no existe um que no seja nenhuma das duas, conforme exemplo.

O smbolo usado a letra t.

Parcial (p)

A generalizao/especializao parcial quando existem ocorrncias na entidade genrica que no possuem ocorrncias correspondentes na entidade especializada. Vejamos um exemplo:

Nesse caso, nem todo funcionrio engenheiro ou advogado. Algumas ocorrncias existem apenas na entidade genrica.

Generalizao e especializao em vrios nveis

Pode ocorrer que uma entidade genrica tenha vrias entidades especializadas que, por sua vez, tambm generalizem outras entidades especializadas. No h limite no nmero de nveis hierrquicos.

No exemplo apresentado, a pessoa fsica pode ser nativa do pas em questo ou pode ser estrangeira. Cada uma possui documentos diferentes, mas pertence mesma entidade genrica pessoa fsica. Pode-se observar que ambas possuem CPF e carteira profissional.

Herana mltipla

Podem existir casos em que uma entidade seja especializao de vrias entidades genricas, ento, dizemos que a entidade possui herana mltipla de atributos.

Observe o exemplo a seguir:

A entidade veculo anfbio uma especializao da entidade genrica veculo terrestre e da entidade genrica veculo aqutico, portanto, possui uma herana mltipla por especializar mais de uma entidade genrica.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. MULLER, Robert J. Projeto de Banco de Dados: Usando UML para modelagem de dados. So Paulo: Berkeley Brasil, 2002.

SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 07

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 7

OBJETIVO

Identificar uma entidade associativa em um relacionamento de N para N.

ENTIDADE ASSOCIATIVA
A entidade associativa surge de um relacionamento de N para N, no qual existe uma associao dos atributos identificadores das duas entidades relacionadas, caracterizando uma nova entidade. A nova entidade gerada possui, normalmente, atributos prprios do relacionamento, isto , ela s existe por causa do relacionamento.

Tomando-se como exemplo, novamente, uma clnica mdica, observamos o seguinte:

Um mdico pode consultar N pacientes. Um paciente pode ser consultado por N mdicos. Uma consulta realizada em uma data e em um horrio; possui um preo; pode ser paga por convnio ou pelo paciente; apresenta uma prescrio do mdico e a relao de medicamentos. Esses so alguns atributos que pertencem apenas ao relacionamento CONSULTA.

Toda entidade possui um atributo identificador a partir do qual feito o relacionamento das entidades. Ele nico e identifica cada ocorrncia da entidade.

No diagrama a seguir, os atributos identificadores so: CRM e ID_Paciente.

No caso dos relacionamentos de N para N, no possvel transportar o atributo identificador de uma entidade para a outra que est relacionada, pois, assim, estariam sendo repetidos dados desnecessrios.

Nesse caso, cria-se uma terceira entidade, chamada consulta, contendo os seguintes atributos: CRM, ID_Paciente, data e hora.

No banco de dados, procura-se escrever o dado uma nica vez e relacion-lo com as demais entidades. Utilizando o exemplo da clnica mdica, o nome de um mdico deve ser apenas uma ocorrncia na tabela de mdico dentro do banco de dados. Embora a consulta tenha o mdico responsvel, no necessrio um atributo nome do mdico, devemos substitu-lo por seu CRM, pois esse atributo o identifica dentro da entidade MEDICO. Do mesmo modo, o nome do paciente no precisa estar na entidade CONSULTA.

Transformamos um relacionamento de duas entidades de N para N acrescentando uma entidade e desmembrando o relacionamento.

Os atributos identificadores CRM e ID_PACIENTE so transportados para a nova entidade CONSULTA, acrescentando os outros atributos pertencentes consulta.

Ao ligarmos as duas entidades, possvel notar que a cardinalidade deixa de ser de N para N.

Cada mdico pode fazer N consultas, mas uma consulta feita com apenas 1 mdico.

Cada paciente pode fazer N consultas, mas cada consulta feita com apenas 1 paciente.

A entidade CONSULTA formada por identificadores de outras entidades, portanto, trata-se de uma entidade dependente, pois ela no existiria se no houvesse o relacionamento.

A entidade gerada por atributos identificadores de outras entidades tambm chamada de entidade fraca.

A entidade fraca identificada graficamente pelo retngulo de linha dupla, embora alguns autores prefiram utilizar a linha que liga a entidade ao relacionamento, em negrito. Observe os diagramas a seguir:

ou

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 08

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 8

OBJETIVO

Apresentar a prxima etapa da modelagem de dados: o modelo lgico e os conceitos de tabelas, chaves primrias e estrangeiras e como o banco de dados mantm controle sobre os dados relacionados.

MODELO LGICO: TABELAS, CHAVES PRIMRIAS E ESTRANGEIRAS

A prxima etapa do projeto de banco de dados envolve o chamado modelo lgico. Atualmente, grande parte dos sistemas de banco de dados utiliza o modelo relacional. Um banco de dados relacional composto por tabelas (tambm denominadas relaes).

Observe a seguir alguns conceitos importantes para pleno entendimento do modelo relacional:

Tabela

Estrutura bidimensional composta por linhas (tuplas) e campos (ou atributos).

Chave primria

Atributo por meio do qual possvel identificar determinado registro. Uma chave primria no pode ser repetida, ou seja, o conjunto de valores que constituem a chave primria deve ser nico dentro de uma tabela.

Chave primria simples: apenas um atributo (campo) compe a chave primria.

Chave primria composta: mais de um atributo compe a chave primria.

Na aula anterior falamos sobre atributo identificador, responsvel por identificar uma ocorrncia na entidade. Trata-se de um atributo em que no se encontra duplicidade de dados. O atributo identificador corresponde normalmente chave primria no modelo lgico (relacional).

Portanto, para escolher uma chave primria preciso certificar-se de que esse atributo no ter duplicidade.

Chave estrangeira

Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de outra tabela. Criamos, assim, uma relao de dependncia (um relacionamento) entre as tabelas.

Observe que, no exemplo a seguir, antes de efetuar a alocao de um funcionrio em um departamento, necessrio que o departamento em questo conste na tabela de departamentos.

Para que haja equivalncia, o contedo da chave estrangeira deve ser igual ao da chave primria. O SGBD (Sistema de Gerenciamento de Banco de Dados) liga todos os registros em que o contedo da chave primria seja igual ao de sua chave estrangeira.

Acesse o ambiente virtual de aprendizagem UNINOVE para a visualizao do Infogrfico sobre chave estrangeira.

Chave nica (Unique)

Utilizada quando determinado campo no deve ser repetido e no chave primria. Aumenta a consistncia do banco de dados.

Exemplo: cadastro de funcionrios. Cada funcionrio recebe um cdigo nico, que a chave primria. Para maior segurana e consistncia, podemos optar para que o campo CPF tambm seja nico, evitando que o mesmo funcionrio seja cadastrado duas vezes.

Notao resumida

Notao compacta, til para discusses sobre a estrutura geral do banco de dados, utilizada quando no se deseja entrar em um nvel maior de detalhamento.

Para simplificar a representao da modelagem relacional, podemos utilizar o esquema resumido da seguinte maneira:

1. Escrever o nome da entidade e, entre parnteses, todos os atributos, chave primria e chaves estrangeiras (se houver). 2. Sublinhar a chave primria. 3. Na linha abaixo da entidade devem ser referenciadas todas as chaves estrangeiras e a entidade com as quais se relacionam.

O exemplo apresentado anteriormente poderia ser representado utilizando-se a notao resumida da seguinte forma:

Departamento (CodDept, Nome) Funcionario (CodFunc, Nome, CPF, CodDept) CodDept referencia Departamento

O relacionamento entre as tabelas Departamento e Funcionario tambm pode ser representado por meio do seguinte diagrama:

Observe que por meio da notao resumida no possvel determinar se o relacionamento do tipo 1:1 ou 1:N (como no caso representado na figura acima).

Chave alternativa

aquela chave que poderia, por causa de suas caractersticas, ser chave primria, mas no . Ela nica na entidade, assim como a chave primria, e pode ser considerada uma chave secundria.

Podemos considerar chave alternativa o CPF. No mundo real, o que identifica qualquer pessoa fsica.

Escolha da chave primria

Geralmente, a chave primria um nmero criado pela aplicao costuma-se utilizar um recurso de numerao automtica do prprio banco de dados, de modo que o nmero no se repita.

Se a chave primria muito grande, est sujeita a erros de digitao.

Um nome de pessoa pode ser considerado uma chave primria? O maior problema do nome que duas ou mais pessoas podem apresentar o mesmo nome (homnimos) e a chave deve ser nica para cada registro de dados.

As pessoas podem ter os mesmos nome e sobrenome, mas o RG e CPF so diferentes, entretanto, so nmeros muito grandes, por isso, costume escolher outros identificadores como chaves primrias.

Integridade de dados

Impor a integridade de dados garante a qualidade destes em um banco de dados. Eles devem refletir corretamente a realidade representada pelo banco e tambm devem ser consistentes entre si. A integridade de dados deve ser implementada de diversas formas em um banco de dados.

Integridade de domnio

Zela pelos valores ideais e necessrios para um atributo. Para isso, definimos algumas regras de validao por meio de expresses compostas de valores constantes. Exemplos:

No permitir um estoque negativo. Impedir uma data de nascimento superior data atual. No permitir que o valor de um produto seja negativo.

Integridade de entidade

Tem o objetivo de validar os valores permitidos a partir de valores j inseridos na prpria entidade. Aps uma autoconsulta a entidade vai permitir ou no a gravao do novo registro. Exemplos:

No permitir duas pessoas com o mesmo CPF. Impedir a locao de uma fita que j est locada.

Integridade referencial

Zela pela consistncia dos registros de uma entidade a partir de valores provenientes de outras entidades, isto , determinado registro vai depender diretamente de um registro de outra tabela. Exemplos:

Um registro em uma tabela pai pode ter um ou mais registros em uma tabela filho. Um registro em uma tabela filho sempre tem um registro coincidente em uma tabela pai. Para a incluso de um registro em uma determinada tabela filho, necessrio que exista um registro pai coincidente.

Um registro pai s poder ser excludo se no possuir nenhum registro filho.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 09

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 9

OBJETIVO

Conhecer e aplicar as regras utilizadas durante o processo de converso do modelo conceitual para o modelo lgico (relacional).

REGRAS DE DERIVAO DO MODELO CONCEITUAL PARA O LGICO


Introduo

A construo de um modelo no tarefa a ser executada uma nica vez. Gradativamente, so acrescentados novos conceitos aos j existentes,

aperfeioando o modelo.

Na prtica, observa-se que nenhuma das estratgias propostas na literatura universalmente aceita. Normalmente, aplicada uma construo das diversas estratgias de modelagem (HEUSER, 1999).

A modelagem pode surgir da descrio de dados j existentes ou a partir do conhecimento do mundo real relatado pelas pessoas envolvidas.

No caso de a modelagem estar baseada em dados j existentes, utilizada a engenharia reversa.

A engenharia reversa utiliza a estratgia botton-up (de baixo para cima), ou seja, inicia a modelagem a partir das tabelas de dados j formatados no mundo real e adapta-os, segundo as regras de normalizao, at chegar ao modelo conceitual.

Quando a modelagem feita por meio de uma anlise de requisitos, em que a descrio do mundo real elaborada a partir daquilo que as pessoas conhecem a

respeito da realidade a ser moldada, podem ser adotadas duas estratgias: topdown (de cima para baixo) ou inside-up (de dentro para fora) (HEISER,1999).

Top-down

Partindo de uma anlise de requisitos, possvel identificar as entidades envolvidas do mundo real e criar o primeiro modelo conceitual, definindo os relacionamentos e a cardinalidade mxima.

Em uma prxima etapa, colocam-se as cardinalidades mnimas e atributos e desmembram-se as entidades associativas dos relacionamentos de N:N.

Em seguida, realiza-se um teste de validao dos modelos, a partir de dados fictcios, simulando a realidade. O usurio deve participar deste teste.

Inside-up

Parte de uma ideia central em que so definidas as principais entidades que se relacionam no mundo real e, em seguida, so desenhadas no centro do modelo. A partir dele, desenha-se o detalhamento, ampliando os relacionamentos, assim como no modelo top-down.

Na primeira etapa, desenha-se o modelo conceitual com os relacionamentos e a cardinalidade mxima, a generalizao e especializao e os relacionamentos ternrios.

Na segunda, inserem-se os novos relacionamentos que surgem da ideia central e acrescenta-se as entidades associadas aos relacionamentos de N:N. Em seguida, coloca-se todos os atributos comuns.

A terceira etapa o teste de validao, assim como no top-down.

Modelagem relacional

A modelagem relacional a representao do modelo conceitual em forma de tabela, com seus atributos, contendo dados fictcios que simulam a parte do mundo real a ser modelada.

Tomando como exemplo o modelo conceitual do consultrio mdico, temos:

Passando para o modelo lgico (relacional) teremos o seguinte diagrama:

PK Representa a chave primria. FK Representa a chave estrangeira.

Podemos utilizar a notao resumida (tambm chamada de esquema resumido) para representar a mesma situao:

Medico (CRM, Nome) Paciente (ID_Paciente, Nome) Consulta (CRM, IdPaciente, Data, Hora) CRM referencia Medico Id_Paciente referencia Paciente

As tabelas a seguir esto representadas com exemplos de dados. possvel notar que elas foram preenchidas com suas chaves primrias e as chaves estrangeiras correspondentes da tabela relacionada.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004.

SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 10

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 10

OBJETIVO

Apresentar como efetuar a derivao do modelo conceitual para o modelo lgico para os relacionamentos binrios, ternrios e autorrelacionamentos.

DERIVAO DO MODELO CONCEITUAL PARA O LGICO PARA OS DIVERSOS GRAUS DE RELACIONAMENTOS


Introduo

Antes de apresentar como deve ser feita a derivao dos modelos conceituais para os lgicos (relacionais), vamos revisar alguns conceitos sobre as chaves utilizadas em bancos de dados relacionais.

Chave Primria (PK Primary Key)

Atributo por meio do qual possvel identificar determinado registro. O conjunto de valores que constituem a chave primria deve ser nico dentro de uma tabela.

Chave estrangeira (FK Foreign Key)

Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de outra tabela. Criamos assim uma relao de dependncia (um relacionamento) entre as tabelas.

Chave nica (unique)

Utilizada quando determinado campo no deve ser repetido e no chave primria. Aumenta a consistncia do banco de dados.

H ainda outro tipo de restrio muito utilizado em bancos de dados relacionais: NOT NULL (no nulo), utilizado quando todos os valores relacionados a determinado atributo so obrigatrios, ou seja, no nulos ou no vazios.

A partir da compreenso desses conceitos, podemos agora apresentar como deve ser feita a derivao entre os modelos (lgico e relacional).

Nota: Consulte a aula 5 para uma reviso dos graus de relacionamento.

Utilizamos as seguintes abreviaes na representao dos modelos conceituais e lgicos.

A, B e C X, Y e Z

Entidades e tabelas. Atributos identificadores nas entidades e chaves primrias e/ou estrangeiras nas tabelas.

PK FK

Primary Key (chave primria). Foreign Key (chave estrangeira).

Portanto, A, B e C podem representar qualquer conjunto de entidades presentes em um relacionamento, por exemplo, cliente, pedido, produto etc.

Nota: Abaixo das entidades relacionadas so apresentadas as respectivas tabelas que devem ser geradas a partir do processo de derivao entre os modelos.

Relacionamentos binrios 1:1

As solues so diversas para os relacionamentos 1:1, por exemplo, quando a cardinalidade mxima for 1,1 nos dois sentidos, a soluo mais comum unir as duas entidades em uma nica tabela.

Relacionamentos binrios 1:N

Observe que nos relacionamentos 1:N a chave primria sempre ficar do lado em que a cardinalidade for N.

Relacionamentos binrios N:N

Quando efetuamos o mapeamento para o modelo lgico de relacionamentos N:N, devemos construir uma tabela associativa composta pelas chaves primrias das duas tabelas (A e B). Os dois atributos (X e Y) formaro a chave primria (composta) da nova tabela (AB).

Relacionamento com atributo identificador

A soluo semelhante anterior, porm o atributo identificador do relacionamento (Z, no exemplo a seguir) tambm far parte da chave primria na tabela associativa.

Relacionamentos ternrios

Os relacionamentos entre trs entidades requerem a construo de uma quarta tabela que dever conter as chaves primrias das trs tabelas (A, B e C). Os trs atributos (X, Y e Z) formaro a chave primria composta da nova tabela (ABC).

Autorrelacionamentos 1:1

Neste tipo de autorrelacionamento, a chave estrangeira ficar na mesma tabela com uma restrio do tipo unique (chave nica) para garantir a cardinalidade 1:1.

Autorrelacionamentos 1:N

Neste outro tipo de autorrelacionamento, a chave estrangeira tambm ficar na mesma tabela, porm no ter a restrio unique (chave nica).

O diagrama apresentado a seguir demonstra que um funcionrio supervisor pode ter vrios supervisionados, porm, cada funcionrio supervisionado tem apenas um supervisor.

Autorrelacionamentos N:N

Os autorrelacionamentos com grau de cardinalidade N:N requerem uma segunda tabela na qual teremos uma chave primria composta.

O modelo conceitual a seguir apresenta uma entidade DISCIPLINA e por meio do relacionamento PRE_REQUISITO procura-se demonstrar que algumas disciplinas so pr-requisito para cursar outras, por exemplo: para cursar Clculo 2 h como pr-requisito cursar Clculo 1.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 11

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 11

OBJETIVO

Apresentar os conceitos necessrios para compreender o processo de normalizao de tabelas.

NORMALIZAO DE TABELAS: DEPENDNCIAS FUNCIONAIS


Normalizao

A normalizao envolve um conjunto de regras aplicadas em um banco de dados com a finalidade de corrigir redundncias, separando os dados at que seus atributos apresentem valores atmicos, isto , indivisveis.

O conceito de normalizao foi introduzido em 1970 por Edgard F. Codd e baseia-se no processo matemtico formal com fundamento na teoria dos conjuntos.

O processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados para verificar se estas foram corretamente projetadas.

Objetivos da normalizao de tabelas

Os objetivos principais da normalizao de tabelas so os seguintes:

Garantir a integridade dos dados, evitando que informaes sem sentido sejam inseridas. Organizar e dividir as tabelas da forma mais eficiente possvel, diminuindo a redundncia e permitindo a evoluo do banco de dados.

Formas normais

So seis as formas normais mais utilizadas:

Primeira Forma Normal (1FN). Segunda Forma Normal (2FN). Terceira Forma Normal (3FN). Forma Normal de Boyce e Codd (FNBC). Quarta Forma Normal (4FN). Quinta Forma Normal (5FN).

Nota: Neste curso abordaremos as trs primeiras formas normais, pois estas atendem maioria dos casos de normalizao.

Uma forma normal engloba todas as anteriores, isto , para que uma tabela esteja na 2FN, ela obrigatoriamente deve estar na 1FN e assim por diante.

Normalmente, aps a aplicao das regras de normalizao, algumas tabelas acabam sendo divididas para a em duas ou do mais. Este de processo dados colabora e reduz

significativamente

estabilidade

modelo

consideravelmente as necessidades de manuteno. Antes de passarmos parte prtica, aplicando as regras conforme a 1FN, 2FN e 3FN, ser necessrio apresentar alguns conceitos fundamentais diretamente relacionados s Formas Normais.

Dependncia Funcional (DF)

Sempre que um atributo X identifica um atributo Y, dizemos que entre eles h uma dependncia funcional.

A representao : XY (l-se X determina Y ou Y dependente de X). cidadeestado

Neste caso, estado funcionalmente dependente de cidade ou ainda cidade determina estado.

CIDADE Campinas Natal Niteroi

ESTADO So Paulo Rio Grande do Norte Rio de Janeiro

Transitividade

Se um atributo X determina Y e se Y determina Z, podemos dizer que X determina Z de forma transitiva, isto , existe uma dependncia funcional transitiva de X para Z. cidade estado estado pas cidade pas (cidade determina pas de forma transitiva)

CIDADE Campinas Miami

ESTADO So Paulo Florida

PAIS Brasil EUA

Dependncia funcional irredutvel esquerda

O lado esquerdo de uma dependncia funcional irredutvel quando o determinante est em sua forma mnima, isto , quando no possvel reduzir a quantidade de atributos determinantes sem perder a dependncia funcional.

{cidade, estado} pas

No est na forma irredutvel esquerda, pois podemos ter somente o estado como determinante.

estado pas

Est na forma irredutvel esquerda.

CIDADE Campinas Miami

ESTADO So Paulo Florida

PAIS Brasil EUA

ESTADO So Paulo Florida

PAIS Brasil EUA

Dependncia Multivalorada (DMV)

A DMV uma ampliao da Dependncia Funcional (DF). Na DMV, o valor de um atributo determina um conjunto de valores de outro atributo. representada por XY (X multidetermina Y ou Y multidependente de X).

DF: DMV:

{CPF}{Nome}

Temos somente um nome para cada CPF

{CPF}{Dependente} Temos vrios dependentes para cada CPF

CPF 111222333-00

DEPENDENTE Antonio Santos Beatriz Santos Claudio Santos

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005.

HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 12

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 12

OBJETIVO

Apresentar os principais conceitos de normalizao de banco de dados envolvendo a Primeira Forma Normal (1FN).

NORMALIZAO DE BANCO DE DADOS: PRIMEIRA FORMA NORMAL


Introduo

Conforme voc aprendeu na aula anterior, a normalizao envolve um conjunto de regras aplicadas em um banco de dados com a finalidade de corrigir redundncias, separando os dados at que seus atributos apresentem valores atmicos, isto , indivisveis.

Nesta e nas prximas duas aulas abordaremos as seguintes formas normais:

Primeira Forma Normal (1FN). Segunda Forma Normal (2FN). Terceira Forma Normal (3FN).

Primeira Forma Normal (1FN)

Uma tabela se encontra na Primeira Forma Normal (1FN) quando no possui tabelas aninhadas, ou seja, quando uma ocorrncia de uma tabela possui dentro dela um subconjunto de atributos multivalorados, isto , com mais de um valor, caracterizando outra tabela interna.

Para que uma tabela esteja na 1FN, necessrio que cada atributo de uma ocorrncia tenha apenas um valor.

Observe o seguinte exemplo:

Uma empresa de engenharia utiliza os formulrios apresentados a seguir para controle de seus projetos:

PROJETO NR_PROJ NOME_PROJ LOCAL_PROJ 101 102 103 Antonio Beatriz Claudio 001 Alfa So Paulo CARGO VL_HORA Analista Pleno 35,00 Analista Pleno 35,00 Analista Senior 50,00 NR_PROJ NOME_PROJ LOCAL_PROJ 102 103 104 Beatriz Claudio Daniela

PROJETO 002 Beta Jundia CARGO VL_HORA Analista Pleno 35,00 Analista Senior 35,00 Analista Senior 50,00

ID_FUNC NOME_FUNC

ID_FUNC NOME_FUNC

Para registrar os dados dos seus projetos, a empresa adotou planilhas eletrnicas com a seguinte estrutura:

NR_PROJ 001

NOME_PROJ LOCAL_PROJ ID_FUNC Alfa So Paulo 101 102 103 102 103 104

NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Beatriz Bernardes Claudio Cardoso Daniela Dantas

CARGO Analista Pleno Analista Pleno Analista Senior Analista Pleno Analista Senior Analista Senior

VL_HORA 35,00 35,00 50,00 35,00 50,00 50,00

002

Beta

Jundia

No entanto, medida que a quantidade de projetos e funcionrios alocados neles cresceu, observou-se que seria necessrio utilizar um sistema de banco de dados. Para garantir a integridade e controlar a redundncia dos dados, aplicou-se tabela acima a Primeira Forma Normal (1FN).

A tabela para controle de projetos apresenta a seguinte tabela aninhada:

ID_FUNC 101 102 103 102 103 104

NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Beatriz Bernardes Claudio Cardoso Daniela Dantas

CARGO Analista Pleno Analista Pleno Analista Senior Analista Pleno Analista Senior Analista Senior

VL_HORA 35,00 35,00 50,00 35,00 50,00 50,00

No se deve simplesmente separar a tabela acima do restante da tabela de controle de projetos, porque, neste caso, no seria mais possvel determinar em quais projetos cada funcionrio trabalhou. Para que isso no ocorra, preciso incluir a coluna NR_PROJ na tabela que ser denominada PROJETO_FUNCIONARIO:

PROJETO_FUNCIONARIO NR_PROJ 001 001 001 002 002 002 ID_FUNC 101 102 103 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Pleno Analista Senior Analista Senior VL_HORA 35,00 35,00 50,00 35,00 50,00 50,00

Consequentemente, a segunda tabela (PROJETO) apresentar a seguinte estrutura:

PROJETO NR_PROJ NOME_PROJ LOCAL_PROJ 001 002 Alfa Beta So Paulo Jundia

Observe que aps a aplicao da Primeira Forma Normal (1FN) no temos mais tabelas aninhadas. Outro detalhe: os usurios tero acesso s mesmas informaes anteriormente disponibilizadas na tabela que no estava na Primeira Forma Normal.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 13

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 13

OBJETIVO

Apresentar os principais conceitos de normalizao de banco de dados envolvendo a Segunda Forma Normal.

NORMALIZAO DE BANCO DE DADOS: SEGUNDA FORMA NORMAL

2FN Segunda Forma Normal

Uma tabela est na Segunda Forma Normal (2FN) quando, alm de estar na Primeira Forma Normal (1FN), no contm dependncias parciais.

Uma dependncia funcional parcial ocorre quando uma coluna que no faz parte da chave primria depende apenas de uma parte da chave primria COMPOSTA (veja o tpico da aula 11: Dependncia funcional irredutvel esquerda).

Sendo assim, toda tabela que est na Primeira Forma Normal e que possui chave primria SIMPLES (formada por uma coluna) j est na Segunda Forma Normal.

Analisando a tabela PROJETO_FUNCIONARIO (veja aula anterior), nota-se que as colunas (ou atributos) NOME_FUNC, CARGO e VL_HORA dependem apenas de uma parte da chave primria, ou seja, do ID_FUNC.

PROJETO_FUNCIONARIO NR_PROJ ID_FUNC 001 001 001 002 002 002 101 102 103 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Pleno Analista Senior Analista Senior VL_HORA 35,00 35,00 50,00 35,00 50,00 50,00

Portanto, ao aplicarmos a Segunda Forma Normal (2FN), teremos:

FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior VL_HORA 35,00 35,00 50,00 50,00

A tabela PROJETO_FUNCIONARIO apresentar a seguinte estrutura aps a aplicao da Segunda Forma Normal (2FN):

PROJETO_FUNCIONARIO NR_PROJ 001 001 001 002 002 002 ID_FUNC 101 102 103 102 103 104

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 14

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

AULA 14

OBJETIVO

Apresentar os principais conceitos de normalizao de banco de dados envolvendo a Terceira Forma Normal.

NORMALIZAO DE BANCO DE DADOS: TERCEIRA FORMA NORMAL


Terceira Forma Normal (3FN)

Uma tabela est na Terceira Forma Normal (3FN) quando, alm de estar na 2FN (Segunda Forma Normal), no contm dependncias transitivas.

Uma dependncia funcional transitiva ocorre quando uma coluna, alm de depender da chave primria da tabela, depende diretamente de outra(s) coluna(s) da tabela. (veja o tpico da aula 11: Dependncia Funcional Transitiva).

A tabela FUNCIONARIO apresenta uma dependncia funcional transitiva. Observe que o VL_HORA no depende diretamente do ID_FUNC. VL_HORA depende diretamente do CARGO. FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior VL_HORA 35,00 35,00 50,00 50,00

Portanto, ao aplicar-se a Terceira Forma Normal (3FN), teremos uma tabela que pode ser denominada CARGO_SALARIO com a seguinte estrutura: CARGO_SALARIO CARGO Analista Pleno Analista Senior VL_HORA 35,00 50,00

A tabela FUNCIONARIO, aps a aplicao da Terceira Forma Normal, apresentar a estrutura a seguir:

FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior

Observe, a seguir, quais foram as tabelas geradas aps a aplicao das trs primeiras Formas Normais (FN1, FN2 e FN3) e compare com a tabela controle de projeto anteriormente apresentada (veja aula 12).

PROJETO NR_PROJ NOME_PROJ LOCAL_PROJ 001 002 Alfa Beta So Paulo Jundia

FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior

PROJETO_FUNCIONARIO NR_PROJ 001 001 001 002 002 002 ID_FUNC 101 102 103 102 103 104

CARGO_SALARIO CARGO Analista Pleno Analista Senior VL_HORA 35,00 50,00

Importante

O exemplo apresentado tem objetivo exclusivamente didtico para esclarecimento dos conceitos envolvidos na aplicao de cada uma das trs primeiras Formas Normais. Outros detalhes deveriam ser levados em considerao para o desenvolvimento de um sistema completo, por exemplo, armazenar os valores histricos dos salrios, quantidade de horas de cada funcionrio nos respectivos projetos etc.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004.

MULLER, Robert J. Projeto de Banco de Dados: usando UML para modelagem de dados. So Paulo: Berkeley Brasil, 2002. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 15

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 15: lgebra relacional seleo e projeo


OBJETIVO: Apresentar os conceitos de lgebra relacional envolvendo as operaes de seleo e projeo.

Introduo

At o presente momento, aprendemos a construo de um banco de dados com suas formas de modelagem, que auxiliam a compreender o modo como os dados esto distribudos dentro de um SGBD (Sistema de Gerenciamento de Banco de Dados). Utilizamos tambm suas regras de normalizao com a engenharia reversa para eliminar as redundncias e facilitar os meios de acesso aos dados. Os processos de busca dos dados esto fundamentados na lgebra relacional. Trata-se de uma linguagem formal utilizada nos SGBDs para consultar os dados solicitados por um usurio. Essa linguagem possui um conjunto de operaes baseadas na teoria de conjuntos, que permite selecionar, unir, subtrair e projetar um conjunto de dados relacionados. O resultado de uma consulta visto como um conjunto de tuplas (grupos de dados pertencentes a uma linha de uma tabela). As operaes primitivas que utilizam a lgebra relacional so:

Seleo Projeo Produto cartesiano Unio Diferena

As operaes derivadas que utilizam a lgebra relacional so:

Interseco Juno (normal e natural) Diviso

Seleo Indicada pela letra grega (sigma), esta operao produz uma nova relao apenas com as tuplas (linhas) da primeira relao (tabela), que satisfazem a uma determinada condio (tambm chamada de predicado). A sintaxe bsica a seguinte: predicado (relao) Observe a tabela (relao) a seguir:

FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior

Para efetuar a seleo do funcionrio cujo ID_FUNC = 102, devemos utilizar a seguinte expresso:

ID_FUNC=102 (FUNCIONARIO)
A execuo desta operao produzir uma tabela ou relao que atende condio ID_FUNC = 102. Observe:

ID_FUNC 102

NOME_FUNC Beatriz Bernardes

CARGO Analista Pleno

Projeo Esta operao, indicada pela letra grega (pi), produz uma nova relao ou tabela com apenas alguns atributos da primeira relao, removendo as tuplas duplicadas. A sintaxe bsica a seguinte:

nome da coluna, nome da coluna (relao)


Tomando-se ainda como base a tabela FUNCIONARIO, para efetuar a projeo da coluna NOME_ FUNC devemos utilizar a seguinte expresso:

CARGO (FUNCIONARIO)
A execuo desta operao produzir a tabela ou relao a seguir:

FUNCIONARIO CARGO Analista Pleno Analista Senior

Note que as tuplas (linhas) repetidas foram removidas.

Veja agora como efetuar a projeo das colunas ID_FUNC e NOME_FUNC:

ID_FUNC, NOME_FUNC (FUNCIONARIO)

A relao produzida pela expresso acima a seguinte:

ID_FUNC 101 102 103 104

NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas

Podemos tambm aplicar as operaes de seleo e projeo em determinada relao ou tabela. No exemplo a seguir foi aplicada uma operao de seleo para obter-se a tupla (linha) cujo ID_FUNC = 102 e depois uma operao de projeo sobre a coluna NOME_FUNC.

NOME_FUNC ( ID_FUNC=102 (FUNCIONARIO))


O resultado da expresso acima o seguinte:

NOME_FUNC Beatriz Bernardes

Na prxima aula abordaremos outra operao da lgebra relacional: o produto cartesiano.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005.

HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. MULLER, Robert J. Projeto de Banco de Dados: usando UML para modelagem de dados. So Paulo: Berkeley Brasil, 2002. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 16

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 16: lgebra relacional produto cartesiano


OBJETIVO: Apresentar os conceitos de lgebra relacional envolvendo as operaes de produto cartesiano.

Produto cartesiano X

O produto cartesiano (representado por X) de duas tabelas ou relaes uma terceira relao contendo todas as combinaes possveis entre as tuplas (linhas) da primeira e as tuplas da segunda tabela. A sintaxe bsica a seguinte:

(relao 1) X (relao2)

A figura a seguir demonstra como realizada a operao entre duas tabelas genricas TABELA_1 e TABELA_2:

Conclumos, portanto, que o produto cartesiano de uma tabela formada por trs colunas e quatro linhas com outra formada por duas colunas e trs linhas ser uma terceira tabela com a seguinte estrutura:

3 colunas + 2 colunas = 5 colunas 4 linhas x 3 linhas = 12 linhas

Analisaremos agora um exemplo prtico. Imagine que em determinado campeonato de futebol entre os principais times dos estados de So Paulo e do Rio de Janeiro foram formados dois grupos com quatro times em cada grupo. Os times de um estado devero enfrentar os times do outro. Aplicando-se a operao da lgebra relacional denominada produto cartesiano teremos:

O produto cartesiano, embora na prtica no tenha muitas aplicaes diretas, uma forma primitiva utilizada para juntar informaes de duas tabelas para posterior processamento. A operao de juno, conforme veremos nas aulas seguintes, uma derivao do produto cartesiano. Aplica-se, neste caso, uma operao de seleo para obter apenas as combinaes que realmente interessam.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990.

DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. MULLER, Robert J. Projeto de Banco de Dados: usando UML para modelagem de dados. So Paulo: Berkeley Brasil, 2002. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 17

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 17: lgebra relacional unio, diferena e interseco


OBJETIVO: Apresentar os conceitos de lgebra relacional envolvendo as operaes de unio, diferena e interseco.

Unio U

O resultado da unio entre duas relaes ou tabelas gera uma terceira relao com todas as tuplas (linhas) comuns e no comuns. As tuplas comuns s duas relaes aparecero apenas uma vez no resultado. As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios para as colunas correspondentes. A sintaxe bsica a seguinte:

(relao 1) U (relao 2)

A figura a seguir demonstra como realizada a operao de unio entre duas tabelas genricas TABELA_1 e TABELA_2:

Diferena -

A diferena entre duas relaes produz uma nova relao com todas as tuplas da primeira relao que no aparecem na segunda relao. As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios para as colunas correspondentes. A sintaxe bsica a seguinte:

(relao 1) - (relao 2)

A figura a seguir demonstra como realizada a operao de diferena entre duas tabelas genricas TABELA_1 e TABELA_2:

importante enfatizar que, se invertermos as tabelas, o resultado no ser o mesmo; a operao no comutativa. Exemplificando, poderamos dizer que:

(relao 1) - (relao 2) diferente de (relao 2) - (relao 1)

Observe a seguir o resultado de (TABELA_2) (TABELA_1):

Interseco A interseco entre duas relaes produz uma nova relao entre a primeira entidade e a segunda, em que somente aparecero as tuplas em comum escritas uma nica vez. Neste caso, as duas relaes tambm devem ter o mesmo nmero de atributos e mesmos domnios para as colunas correspondentes. A sintaxe bsica a seguinte: (relao 1) (relao 2)

A figura a seguir demonstra como realizada a operao de interseco entre duas tabelas genricas TABELA_1 e TABELA_2:

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 18

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 18: lgebra relacional juno e diviso


OBJETIVO: Apresentar os conceitos de lgebra relacional envolvendo as operaes de juno normal e juno natural e diviso.

Juno

A operao denominada juno combina as operaes de seleo e produto cartesiano produzindo uma combinao entre as tuplas de uma tabela com as tuplas correspondentes de outra tabela que obedecem a uma condio. A sintaxe bsica a seguinte:

relaoA.chave1=relaoB.chave2 ( relao A X relao B )


A figura a seguir demonstra como realizada a operao de juno entre duas tabelas DEPARTAMENTO e FUNCIONARIO:

DEPARTAMENTO CODDEPT D1 D2 NOMEDEPT Engenharia Comercial IDFUNC 101 102 103 104

FUNCIONARIO NOMEFUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CODDEPT D2 D1 D2 D1

DEPARTAMENTO.CODDEPT = FUNCIONARIO.CODDEPT (DEPARTAMENTO X FUNCIONARIO)


CODDEPT D1 D1 D2 D2 NOMEDEPT Engenharia Engenharia Comercial Comercial IDFUNC 102 104 101 103 NOMEFUNC Beatriz Bernardes Daniela Dantas Antonio Alves Claudio Cardoso CODDEPT D1 D1 D2 D2

A operao de juno foi criada justamente porque esse tipo de combinao de tabelas de uso muito comum, facilitando, assim, a escrita de expresses. A

tabela resultante de uma juno tem todas as colunas da primeira tabela e todas da segunda tabela. Isso faz os valores dos campos utilizados como critrio para a correspondncia entre as linhas aparecerem duplicados, j que um vem da primeira tabela e outro da segunda.

Juno natural |X|

Existe uma variao da juno, chamada juno natural, que fornece o mesmo resultado, mas sem essa repetio de valores: uma das colunas correspondentes aos atributos de relacionamento descartada. A sintaxe bsica a seguinte:
( relao A |X| relao B )

A figura a seguir demonstra como realizada a operao de juno natural entre as duas tabelas anteriores (DEPARTAMENTO e FUNCIONARIO):

(DEPARTAMENTO |x| FUNCIONARIO)

CODDEPT D1 D1 D2 D2

NOMEDEPT Engenharia Engenharia Comercial Comercial

IDFUNC 102 104 101 103

NOMEFUNC Beatriz Bernardes Daniela Dantas Antonio Alves Claudio Cardoso

NOTA: A simbologia utilizada para juno normal e juno natural pode apresentar variaes conforme a bibliografia consultada.

Diviso

Produz uma nova tabela ou relao contendo todas as tuplas da primeira tabela (dividendo) que aparecem na segunda (mediador) com todas as tuplas da terceira tabela (divisor).

No exemplo apresentado a seguir, observa-se que a TABELA_S contm todas as tuplas da TABELA_1 (dividendo) que aparecem na TABELA_R (mediador) com todas as tuplas da TABELA_2 (divisor):

O prximo exemplo apresenta o mesmo dividendo (TABELA_1) e o mesmo mediador (TABELA_R), mas agora h outro divisor (TABELA_2). Note o resultado:

As ltimas quatro aulas (15, 16, 17 e 18) apresentaram as operaes da lgebra relacional. Conforme mencionado (na aula 15), trata-se de uma linguagem formal utilizada nos Sistemas de Gerenciamento de Banco de Dados para consultar os dados solicitados por um usurio. A linguagem possui um conjunto de operaes baseadas na teoria de conjuntos que permite selecionar, unir, subtrair e projetar um conjunto de dados relacionados.

Para recordar:

As operaes primitivas que utilizam a lgebra relacional so:

Seleo

Projeo Produto cartesiano Unio Diferena

As operaes derivadas que utilizam a lgebra relacional so:

Interseco Juno (normal e natural) Diviso

Mas no foi apresentado ainda como aplicar estas operaes utilizando-se um Sistema de Gerenciamento de Banco de Dados. Esta importante etapa ser abordada nas duas ltimas aulas.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 19

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 19: SQL Seleo, projeo, produto cartesiano e juno


OBJETIVO: Apresentar as operaes de seleo, projeo e juno com a linguagem principal utilizada pelos bancos de dados relacionais.

SQL Structured Query Language

SQL atualmente a principal linguagem utilizada para realizar consultas e manipulaes de dados em Sistemas de Gerenciamento de Bancos de Dados Relacionais. A primeira verso da linguagem foi apresentada pela IBM em 1974 com o nome Structured English Query Language (Sequel) e disponibilizada para um prottipo de banco de dados relacional denominado SEQUEL-XRM. Em 1977, a IBM lanou um novo prottipo denominado SYSTEM/R e, ao final deste, havia desenvolvido uma linguagem que permitia acesso fcil a mltiplas tabelas, uma linguagem de quarta gerao (4GL), que passou a ser denominada de SQL (Structured Query Language). Alguns anos depois, em 1979, um grupo de desenvolvedores que havia participado do projeto SYSTEM/R fundou uma empresa a Relational Software Inc. responsvel pelo lanamento do primeiro Sistema de Gerenciamento de Banco de Dados Relacional comercialmente vivel. Esta empresa mais tarde teve o seu nome alterado para Oracle. A linguagem SQL composta basicamente por quatro subconjuntos:

DDL Data Definition Language DML Data Manipulation Language DQL Data Query Language DCL Data Control Language

Durante o seu curso voc ter outras disciplinas que abordaro com detalhes cada um dos comandos utilizados pelos quatro subconjuntos da SQL.

No entanto, voc ter agora a oportunidade de conhecer alguns comandos relacionados ao que foi apresentado nas aulas anteriores quando foram listadas as operaes da lgebra relacional.

Seleo Conforme observado na aula 15, esta operao, indicada pela letra grega (sigma), produz uma nova relao ou tabela apenas com as tuplas (linhas) da primeira relao que satisfazem a uma determinada condio (tambm chamada de predicado). Tomando-se como exemplo a seguinte tabela, para efetuar a seleo do funcionrio cujo ID_FUNC = 102, devemos utilizar a expresso:

ID_FUNC=102 (FUNCIONARIO)
FUNCIONARIO ID_FUNC 101 102 103 104 NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CARGO Analista Pleno Analista Pleno Analista Senior Analista Senior

A expresso acima pode ser escrita na linguagem SQL da seguinte forma:

SELECT * FROM FUNCIONARIO WHERE ID_FUNC = 102;

Observa-se, portanto, que nesta linguagem utilizamos a palavra reservada SELECT no lugar da letra grega (sigma). O smbolo * utilizado quando queremos que sejam apresentados os dados de todas as colunas da tabela. A preposio FROM utilizada antes de informarmos o nome da tabela consultada: FUNCIONARIO.

Na sequncia, temos a condio, isto , queremos que sejam apresentados os dados do funcionrio cujo ID_FUNC igual a 102. Expressamos isso com o seguinte predicado: WHERE ID_FUC = 102. A execuo do comando acima produzir o seguinte resultado:

ID_FUNC 102

NOME_FUNC Beatriz Bernardes

CARGO Analista Pleno

Projeo

Muitas vezes no desejamos que sejam apresentados todos os dados que satisfazem a determinada condio. No exemplo considerado, uma hiptese seria apresentar apenas o NOME do funcionrio cujo ID_FUNC igual a 102. Neste caso, devemos projetar a coluna. Na SQL informamos os nomes das colunas que queremos projetar logo aps o comando SELECT. Observe: SELECT NOME_FUNC FROM FUNCIONARIO WHERE ID_FUNC = 102;

A execuo do comando acima produzir o seguinte resultado:

NOME_FUNC Beatriz Bernardes

Para projetar mais de uma coluna, separamos seus nomes utilizando vrgulas:

SELECT NOME_FUNC, CARGO FROM FUNCIONARIO WHERE ID_FUNC = 102;

A execuo do comando acima produzir o seguinte resultado:

NOME_FUNC Beatriz Bernardes

CARGO Analista Pleno

Mas qual comando deve ser utilizado para projetar TODOS os nomes dos funcionrios? Neste caso, basta omitir a condio expressa no final. Observe: SELECT NOME_FUNC FROM FUNCIONARIO;

A execuo do comando acima produzir o seguinte resultado:

NOME_FUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas

Produto cartesiano

O produto cartesiano de duas tabelas ou relaes uma terceira tabela contendo todas as combinaes possveis entre as tuplas ou linhas da primeira e as tuplas da segunda tabela. Observe novamente o exemplo apresentado na aula 16, o produto cartesiano das tabelas GRUPO_SP e GRUPO_RJ:

A representao, conforme a lgebra relacional, do produto cartesiano acima a seguinte:

(GRUPO_SP) X (GRUPO_RJ)

Quando trabalhamos com a SQL, o produto cartesiano de duas tabelas obtido por meio da operao denominada CROSS JOIN. Observe:

SELECT TIME_SP, TIME_RJ FROM GRUPO_SP CROSS JOIN GRUPO_RJ;

A operao de juno, conforme veremos a seguir, uma derivao do produto cartesiano.

Juno (normal)

A operao de juno utiliza as operaes de seleo e produto cartesiano para produzir uma combinao entre as tuplas (linhas) de uma tabela com as tuplas correspondentes de outra tabela que obedecem a uma condio.

Observe novamente o exemplo apresentado na aula 18:

DEPARTAMENTO CODDEPT D1 D2 NOMEDEPT Engenharia Comercial IDFUNC 101 102 103 104

FUNCIONARIO NOMEFUNC Antonio Alves Beatriz Bernardes Claudio Cardoso Daniela Dantas CODDEPT D2 D1 D2 D1

A juno entre as tabelas DEPARTAMENTO e FUNCIONARIO deve ser representada, conforme notao da lgebra relacional, da seguinte forma:

DEPARTAMENTO.CODDEPT = FUNCIONARIO.CODDEPT (DEPARTAMENTO X FUNCIONARIO)


O resultado produzido ser o seguinte:

CODDEPT D1 D1 D2 D2

NOMEDEPT Engenharia Engenharia Comercial Comercial

IDFUNC 102 104 101 103

NOMEFUNC Beatriz Bernardes Daniela Dantas Antonio Alves Claudio Cardoso

CODDEPT D1 D1 D2 D2

A expresso acima pode ser escrita na linguagem SQL da seguinte forma: SELECT * FROM DEPARTAMENTO, FUNCIONARIO WHERE DEPARTAMENTO.CODDEPT = FUNCIONARIO.CODDEPT;

Juno (natural)

A juno natural fornece o mesmo resultado da juno normal, mas sem a repetio de valores das colunas comuns s duas tabelas. A juno natural entre as tabelas DEPARTAMENTO e FUNCIONARIO representada, conforme notao da lgebra relacional, da seguinte forma:

(DEPARTAMENTO |x| FUNCIONARIO)

Quando utilizamos a SQL, a juno natural de duas tabelas obtida por meio da operao denominada NATURAL INNER JOIN. Observe: SELECT * FROM DEPARTAMENTO NATURAL INNER JOIN FUNCIONARIO;

A figura a seguir demonstra o resultado da operao de juno natural entre as duas tabelas anteriores (DEPARTAMENTO e FUNCIONARIO):

CODDEPT D1 D1 D2 D2

NOMEDEPT Engenharia Engenharia Comercial Comercial

IDFUNC 102 104 101 103

NOMEFUNC Beatriz Bernardes Daniela Dantas Antonio Alves Claudio Cardoso

Observamos nesta aula como utilizar a SQL (Structured Query Language) para realizar as seguintes operaes da lgebra relacional: seleo, projeo, produto cartesiano e juno (normal e natural). Na ltima aula desta disciplina abordaremos as outras operaes da lgebra relacional: unio, diferena e interseco.

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004.

SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Modelagem de Dados
Aula 20

Os direitos desta obra foram cedidos Universidade Nove de Julho

Este material parte integrante da disciplina oferecida pela UNINOVE. O acesso s atividades, contedos multimdia e interativo, encontros virtuais, fruns de discusso e a comunicao com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel. Cause boa impresso, imprima menos.

Aula 20: SQL Unio, diferena e interseco


OBJETIVO: Apresentar as operaes de unio, diferena e interseco com a linguagem principal utilizada pelos bancos de dados relacionais.

Unio (Union)

A unio entre duas relaes ou tabelas gera uma terceira tabela com todas as tuplas ou linhas comuns e no comuns. As tuplas comuns s duas relaes aparecero apenas uma vez no resultado. As duas tabelas devem ter o mesmo nmero de atributos ou colunas e mesmos domnios para as colunas correspondentes. Na lgebra relacional, para efetuar a unio das tabelas CLIENTE_1 e CLIENTE_2, utilizamos a expresso:

(CLIENTE_1) U (CLIENTE_2)

Na SQL devemos utilizar o operador denominado UNION da seguinte forma: SELECT CODIGO, NOME FROM CLIENTE_1 UNION SELECT CODIGO, NOME FROM CLIENTE_2;

A execuo do comando acima produzir o seguinte resultado:

Diferena (Minus)

A diferena entre duas tabelas produz uma nova com todas as linhas da primeira tabela que no aparecem na segunda. As duas tabelas devem ter o mesmo nmero de colunas e mesmos domnios para as colunas correspondentes. Na lgebra relacional, para efetuar a diferena entre as tabelas CLIENTE_1 e CLIENTE_2, utilizamos a expresso:

(CLIENTE_1) - (CLIENTE_2)

Na SQL devemos utilizar o operador denominado MINUS da seguinte forma: SELECT CODIGO, NOME FROM CLIENTE_1 MINUS SELECT CODIGO, NOME FROM CLIENTE_2;

A execuo do comando acima produzir o seguinte resultado:

NOTA: O Oracle, a partir da verso 10g, utiliza o operador MINUS. Outros Sistemas de Gerenciamento de Banco de Dados, como o Microsoft SQL Server e o IBM DB2 utilizam em seu lugar o operador EXCEPT.

Devemos lembrar que a operao de diferena no comutativa:

(CLIENTE_1) - (CLIENTE_2) diferente de (CLIENTE_2) - (CLIENTE_1)

Observe a seguir o resultado de: SELECT CODIGO, NOME FROM CLIENTE_2 MINUS SELECT CODIGO, NOME FROM CLIENTE_1;

Interseco (Intersect)

A interseco entre duas tabelas produz uma nova tabela na qual somente aparecero as linhas em comum entre a primeira e a segunda tabela escritas uma nica vez. Neste caso, as duas relaes tambm devem ter o mesmo nmero de atributos e mesmos domnios para as colunas correspondentes. Na lgebra relacional, para efetuar a interseco entre as tabelas CLIENTE_1 e CLIENTE_2, utilizamos a expresso: (CLIENTE_1) (CLIENTE_2) Na SQL devemos utilizar o operador denominado INTERSECT da seguinte forma: SELECT CODIGO, NOME FROM CLIENTE_1 INTERSECT SELECT CODIGO, NOME FROM CLIENTE_2;

A execuo do comando acima produzir o seguinte resultado:

As duas ltimas aulas apresentaram uma breve introduo SQL (Structured Query Language). O principal objetivo foi comparar as operaes da lgebra relacional com os comandos SQL correspondentes. H, sem dvida, muito mais a ser considerado sobre esta linguagem utilizada pela maioria dos bancos de dados relacionais. Mas isto ser assunto para outra disciplina que ser oferecida em um dos prximos semestres do seu curso. Aguarde!

REFERNCIAS

CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lgico. So Paulo: Makron Books, 1990. DATE, C. J. Introduo a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. So Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004. SETZER, Valdemar W.; SILVA, Flvio Soares Corra da. Banco de dados: aprenda o que so, melhore seu conhecimento, construa os seus. So Paulo: Edgard Blcher, 2005. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. So Paulo: Makron Books, 1999.

Você também pode gostar