Você está na página 1de 49

Integração com Banco de Dados

INTEGRAÇÃO COM BANCO DE DADOS 1


Integração com Banco de Dados

Conceitos Básicos

Dados e Informações

Inicialmente vamos fazer a distinção entre dados e informações.

Dados - São fatos, eventos, conceitos, instruções etc., antes de terem sido
organizadas em um formato inteligível e útil para o usuário;

Informações - Representam dados já formatados de uma maneira inteligível e útil


ao usuário.

Sistema de Banco de Dados

Um sistema de banco de dados (SBD) é um sistema de informações, computadorizado,


que possibilita o armazenamento, manuseio, alteração e divulgação das informações
armazenadas. Essas informações se fazem representar por dados organizados e
formatados, de maneira que estes sejam conhecidos e utilizados pelos usuários.

Um SBD é constituído de: base de dados (dados e metadados), sistema gerenciador


de banco de dados (SGBD) e os aplicativos que acessam os dados.

INTEGRAÇÃO COM BANCO DE DADOS 2


Figura 1. Sistema de banco de dados

Sistema Gerenciador de Banco de Dados (SGBD)

Um sistema gerenciador de uma base de dados (SGBD) é uma coleção de programas


que permite aos usuários criar e manipular uma base de dados. Um SGBD é assim,
um sistema de software de propósito geral que facilita o processo de definir, construir
e manipular a base de dados de diversas aplicações.

Base de Dados

A base de dados é composta pelos arquivos físicos nos quais são armazenados os
dados e os metadados (informações sobre a organização dos dados).

Banco de Dados (BD)

Um banco de dados é uma coleção de dados logicamente relacionados, com algum


significado. Associações aleatórias não podem ser chamadas de bancos de dados.

INTEGRAÇÃO COM BANCO DE DADOS 3


Um banco de dados é projetado, construído e preenchido com dados específicos,
possuindo um grupo de usuários e aplicações pré-concebidas de modo a satisfazer as
necessidades dos usuários.

Os bancos de dados ajudam as empresas a gerar informação que pode auxiliar a


reduzir custos, aumentar os lucros, acompanhar atividades de negócios passados e
abrir novas oportunidades de mercado.

São mantidos por softwares gerenciadores (SGBD) que controlam a inserção, seleção,
atualização e deleção dos dados.

Com o armazenamento e o controle centralizado do banco de dados, podemos


enumerar as seguintes vantagens:

 Compartilhamento de dados
Os dados armazenados podem ser compartilhados pelas aplicações de um mesmo e/ou
de diferentes sistemas, sem a necessidade de voltar a incluí-los;

 Redundância de dados eliminada e/ou controlada


Em sistemas tradicionais, cada aplicativo do sistema pode ter seus próprios arquivos
e, por consequência, trazer inúmeras redundâncias de dados armazenadas. No caso
do banco de dados, esses dados podem ser compartilhados de forma que não haja
redundâncias, ou se existirem, que possam ser controladas;

 Inconsistência de dados controlada


Quando os dados redundantes estão sob o controle do SGBD, as operações que
venham a modificá-los serão propagadas automaticamente, de maneira que todas as
redundâncias se mantenham com os mesmos valores;

INTEGRAÇÃO COM BANCO DE DADOS 4


 Integridade dos dados controlada
Controlar a integridade é assegurar que os dados do banco estão corretos. Isto é, eles
representam efetivamente uma realidade que se quer guardar e, por consequência,
toda e qualquer decisão e/ou operação que venha a utilizá-lo não será induzida a gerar
resultados errados devido ao uso de valores incorretos;

 Segurança de acesso aos dados pode ser ampliada


Com o controle do banco de dados, o SGBD pode, a partir das informações de restrição
de acesso disponibilizadas pelo administrador do banco de dados (DBA), assegurar
que o único acesso a esses dados se façam pelos procedimentos e usuários
autorizados;

 Padrões de representação e/ou denominação de dados pode ser


implementado
Com o controle centralizado do banco de dados, o administrador do banco pode
determinar os padrões que serão observados na representação dos dados que serão
armazenados. Dentro desses padrões, podemos ressaltar os padrões de nomenclatura
de dados e documentação, que são essenciais no compartilhamento de dados e
também a compreensão comum pelos usuários.

Conceitos e Arquiteturas de um SGBD

Modelos de Dados

Uma das principais características da abordagem banco de dados é que esta fornece
alguns níveis de abstração de dados omitindo ao usuário final detalhes de como estes
dados são armazenados. Um “modelo de dados” é um conjunto de conceitos que
podem ser utilizados para descrever a estrutura em diferentes níveis de abstração.
Conceituando, podemos enumerar que estes modelos podem ser basicamente de dois
tipos:

INTEGRAÇÃO COM BANCO DE DADOS 5


 Alto nível: ou modelo de dados conceitual, que fornece uma visão mais próxima
do modo como os usuários visualizam os dados realmente;

 Baixo nível: ou modelo de dados físico, que fornece uma visão mais detalhada
do modo como os dados estão realmente armazenados no computador.

Esquemas e Instâncias

Em qualquer modelo de dados utilizado, é importante distinguir a “descrição” do banco


de dados do “banco de dados” propriamente dito. A descrição de um banco de dados
é chamada de “esquema de um banco de dados” e é especificada durante o projeto.
Geralmente poucas mudanças ocorrem no esquema.

Os dados armazenados em um BD em um determinado instante do tempo formam um


conjunto chamado de “instância do banco de dados”. A instância se altera toda vez
que uma alteração é feita no banco.

O SGBD é responsável por garantir que toda instância do banco de dados satisfaça ao
esquema do banco de dados, respeitando sua estrutura e suas restrições.

A Arquitetura Três Esquemas

A principal meta da arquitetura “três esquemas” (Figura 1) é separar as aplicações do


usuário do banco de dados físico. Os esquemas podem ser definidos como:

 Nível interno: ou esquema interno, o qual descreve a estrutura de


armazenamento físico do banco de dados; utiliza um modelo de dados e
descreve detalhadamente os dados armazenados e os caminhos de acesso ao
banco;

INTEGRAÇÃO COM BANCO DE DADOS 6


 Nível conceitual: ou esquema conceitual, o qual descreve a estrutura do banco
de dados como um todo; é uma descrição global do BD, que não fornece
detalhes do modo como os dados estão fisicamente armazenados;
 Nível externo: ou esquema de visão, o qual descreve as visões do banco de
dados para um grupo de usuários; cada visão descreve a que porções do banco
um grupo de usuários terá acesso.

Figura 2. Arquitetura três esquemas

INTEGRAÇÃO COM BANCO DE DADOS 7


Projeto de Banco de Dados

O mundo real, numa generalização extrema, para efeitos de simplificação, pode ser
visto como sendo composto por objetos relacionados. O mundo real se apresenta para
o ser humano como algo caótico, nebuloso e normalmente complexo.

Figura 3. O mundo real

Quando escrevemos algum texto, estamos representando no papel algo que está em
nossa mente, e nesse caso também estamos modelando. Quando nossa mente se
abstrai e cria novos conceitos a partir de conceitos preexistentes, estes novos
conceitos são modelos ou podem fazer parte de modelos mais complexos. Estamos
nesse caso também modelando.

Quando percebemos algum fenômeno, fato ou ideia, estamos criando em nossa mente
simplificações destes, ou seja, criamos modelos ou representações simplificadas de
minimundos ou parcelas do mundo real ou domínio do problema, uma vez que,
naquele momento, nos abstraímos de muitos detalhes julgados irrelevantes.

Pode-se afirmar então que o conhecimento humano é composto de modelos do mundo


real ou criados a partir de outros modelos preexistentes em nossa mente.

INTEGRAÇÃO COM BANCO DE DADOS 8


MUNDO REAL
MINIMUNDO

OBJETOS
DO
MUNDO
REAL

Figura 4. Minimundo

O mapeamento (transformação) dos objetos de uma parcela do mundo real


(minimundo ou domínio do problema) em um modelo processável que vai "residir" na
memória de um computador é e sempre será um desafio para os cientistas da
Informática.

Modelagem

É uma atividade através da qual se cria um modelo de uma parcela do mundo real
(minimundo) ou sucessivamente um modelo a partir de outro modelo ou de ambos.

Figura 5. Representação gráfica de um minimundo


INTEGRAÇÃO COM BANCO DE DADOS 9
Modelar uma parcela do mundo real (minimundo) consiste em tentar compreendê-la,
seja através da identificação inicial da estrutura dos objetos que compõem essa parcela
do mundo real, seguida das operações que incidem sobre esses objetos; seja de
maneira inversa, através da identificação inicial das operações que neles se realizam,
e da posterior identificação da estrutura dos objetos afetados por estas operações, ou
até mesmo procurando enfocar esses dois aspectos de forma simultânea.

A principal razão para a construção de modelos de uma parcela do mundo real


(minimundo) é a redução da complexidade de entendimento e tratamento desse
minimundo. Tal tratamento é propiciado através dos modelos, visto que esses são
uma simplificação de um minimundo.

Modelagem de dados é uma denominação genérica para as atividades que visam à


construção de modelos que enfocam ou procuram representar os dados relevantes de
uma parcela do mundo real.

A atividade de modelagem de dados, como será vista adiante, é um conjunto de regras


que utilizam ferramentas de modelagem (modelos de dados) em concordância com
requisitos de projeto (critérios de qualidade). Tais requisitos, em um projeto de banco
de dados, são as características intrínsecas e as desejáveis dos BDs de um modo geral,
vistas inicialmente.

Componentes da Atividade de Modelagem

Uma atividade de modelagem deve consistir na execução sistemática de atividades


menos complexas, que podem eventualmente se subdividir sucessivamente até o nível
de atividades elementares.

Tais atividades, para que sejam executadas, necessitam de insumos e devem gerar
produtos. Existem, no entanto, atividades que dependem de algum produto gerado

INTEGRAÇÃO COM BANCO DE DADOS 10


por alguma outra executada anteriormente, ou seja, algumas atividades dependem de
outras e assim sucessivamente, estabelecendo uma rede de dependências.

Todo esse conjunto de atividades organizadas logicamente e com propósitos bem


definidos forma uma metodologia, um dos componentes da atividade de
modelagem.

Não se mencionou ainda a forma como as atividades devem ser executadas


transformando insumos em produtos. Tal forma nada mais é do que uma técnica.
Quanto aos instrumentos utilizados na execução dessas atividades, recebem a
denominação de ferramentas ou mais especificamente ferramentas de modelagem,
que, como poderá ser visto posteriormente, são também denominadas modelos.
Temos aqui então duas acepções para o termo modelo, uma como ferramenta de
modelagem e outra como produto final da atividade de modelagem.

Poderíamos então resumir estes componentes da seguinte forma:

 Metodologia: processo intelectual de abordagem de qualquer problema mediante


análise prévia e sistemática de todas as vias de acesso à solução;

 Técnica: forma de execução de alguma atividade;

 Ferramenta: instrumento utilizado na execução de alguma atividade.

Modelos

Será explicado nos próximos itens o que se entende por modelo de dados, uma vez
que não existe uma definição aceita universalmente para tal termo. As razões são
inúmeras, dentre as quais podem ser citadas:

 Reduzida quantidade de modelos de dados definidos formalmente;

INTEGRAÇÃO COM BANCO DE DADOS 11


 Elevada quantidade de modelos de dados definidos informalmente;

 Impossibilidade de comparar modelos formais e informais e escolher (padronizar)


o mais "útil e adequado".

Nos últimos anos, dezenas de modelos de dados foram propostos, muitos dos quais
intuitivamente e sem qualquer formalização. No entanto, todos objetivaram apresentar
regras bem definidas de sintaxe e semântica, que caracterizassem de forma inequívoca
as percepções dos usuários sobre o mundo real.

Este termo é utilizado normalmente segundo dois pontos de vista diferentes: o


primeiro como produto final da atividade de modelagem (modelo 1 e modelo 2 da
Figura 5) e o segundo como ferramenta de modelagem (idem) a ser visto nos próximos
itens.

Dentro do primeiro enfoque, podemos defini-lo como uma representação abstrata da


realidade, e a razão de sua existência é o fato de a realidade a qual substitui ser, via
de regra, de alguma forma intratável. Nenhum modelo se propõe a ser tão perfeito
quanto a parcela da realidade que pretende tratar, mesmo porque, se fosse, terminaria
tão intratável quanto ela.

Já como ferramenta de modelagem, podemos defini-lo como uma ferramenta que tem
por objetivo permitir a especificação das estruturas de dados e das operações
permitidas sobre as mesmas, ou seja, deve permitir a captura das propriedades
estruturais e comportamentais da parcela do mundo real (minimundo) a ser modelada:

 As propriedades estruturais são as que definem seus componentes e seus


relacionamentos com outros objetos;

INTEGRAÇÃO COM BANCO DE DADOS 12


 As propriedades comportamentais são as que correspondem à evolução natural
dos objetos, ou seja, suas ações ou operações.

Dentro desse contexto, um modelo de dados (relacional, de redes, hierárquico,


semântico, orientado a objetos etc.) é uma ferramenta de modelagem que auxilia a
realização da atividade de modelagem de dados num determinado nível de
abstração.

Esquema

Um esquema consiste em uma definição de todos os tipos de objetos da aplicação,


incluindo seus atributos, relacionamentos e restrições. É a representação de uma
porção específica da realidade, construído através de um modelo de dados particular.
Mais especificamente, é uma coleção de representações linguísticas ou gráficas,
invariantes com o tempo, as quais descrevem a estrutura de dados de interesse.

Instância

Uma instância de um esquema é uma coleção de dados que variam com o tempo, de
acordo com a estrutura de dados definida pelo esquema. Cada esquema pode ter
múltiplas instâncias, e o estado do banco de dados em um particular instante
corresponde a uma instância. A evolução do banco de dados pode ser vista como a
transição de uma instância para outra, causada por alguma operação de modificação
dos dados.

Outra maneira de ver as diferenças entre esquema e instância é considerar o esquema


como um "conhecimento intencional" e instância como "conhecimento extensional"; o
primeiro denota as propriedades estruturais do dado; o último denota uma atribuição
de valores aos dados.

INTEGRAÇÃO COM BANCO DE DADOS 13


Projeto de Banco de Dados

É o processo de projeto da estrutura lógica e física de um ou mais bancos de dados


para acomodar as informações necessárias aos usuários de uma organização para um
definido conjunto de aplicações.

Projetar um banco de dados é uma atividade eminentemente complexa. Essa


complexidade é herdada do normalmente complexo minimundo correspondente e
daquelas inerentes às próprias atividades de projeto de banco de dados, decorrentes
da complexidade das ferramentas (modelos de dados) e dos requisitos de projeto a
serem satisfeitos.

Essa complexidade se deve, então, aos seguintes fatores:

 Complexidade do domínio do problema (parcela do mundo real ou minimundo);

 Dificuldade de entendimento do domínio do problema;

 Dificuldade na execução das atividades de projeto de banco de dados, visando o


atendimento de todas as características básicas e desejáveis de um BD;

 Dificuldade de gerência (planejamento e controle) do processo de projeto do BD.

Uma das formas de tratamento da complexidade é o particionamento.

Quais serão, no entanto, essas partes ou fases que irão compor a atividade de projeto
de banco de dados?

Pode-se pensar inicialmente que ela pode ser dividida em duas fases: uma voltada
para a produção de um modelo abstrato do minimundo, totalmente independente
de qualquer Tecnologia da Informação, e outra na qual se concentrará nas

INTEGRAÇÃO COM BANCO DE DADOS 14


características da Tecnologia da Informação a ser utilizada no processamento desse
modelo abstrato.

As fases acima mencionadas serão denominadas:

 Elaboração de um modelo abstrato do minimundo;

Figura 6. Modelo abstrato do minimundo

 Elaboração de um modelo processável do minimundo.

TECNOLOGIA MODELO
ABSTRATO
DA INFORMAÇÃO

ELABORAÇÃO DE
UM MODELO
PROCESSÁVEL A
PARTIR DO MODELO
ABSTRATO

MODELO

PROCESSÁVEL

Figura 7. Modelo processável do minimundo

Pela complexidade inerente a essa última, podemos dividi-la em duas subfases:

INTEGRAÇÃO COM BANCO DE DADOS 15


 Elaboração de um modelo implementável, durante a qual endereçaremos uma
classe de Tecnologia da Informação (ex.: bancos de dados relacionais);

 Elaboração de um modelo processável, durante a qual endereçaremos uma


Tecnologia da Informação específica (ex.: SGBD Oracle).

ELABORAÇÃO DE UM MODELO
CLASSE DA
PROCESSÁVEL A PARTIR
MODELO
TECNOLOGIA DO MODELO ABSTRATO ABSTRATO
DA INFORMAÇÃO

TECNOLOGIA
DA INFORMAÇÃO MODELO
EFETIVA OU REAL IMPLEMENTÁVEL

MODELO
PROCESSÁVEL

Figura 8. Modelo processável a partir de um modelo abstrato

4. Fases e Ferramentas do Projeto de Banco de Dados

As três fases anteriormente determinadas serão denominadas respectivamente, em


que pesem as críticas quanto a essa denominação, de:

 Projeto conceitual de banco de dados: visa produzir um modelo abstrato do


minimundo, totalmente independente de Tecnologia da Informação;

 Projeto lógico de banco de dados: visa produzir um modelo Implementável do


minimundo, dependente de uma classe de Tecnologia da Informação;

 Projeto físico de banco de dados: visa produzir um modelo processável do


minimundo, dependente de uma Tecnologia da Informação específica.

INTEGRAÇÃO COM BANCO DE DADOS 16


A figura abaixo mostra as fases do projeto de banco de dados e das respectivas
ferramentas a serem utilizadas nessas fases:

REQUISITOS
DE
INFORMAÇÃO
MODELO PROJETO CONCEITUAL
ENTIDADE DE DADOS
RELACIONAMENTO

ESQUEMA CONCEITUAL DE DADOS GLOBAL


(MODELO ABSTRATO)

MODELO PROJETO LÓGICO


DE DADOS DE DADOS
RELACIONAL

ESQUEMA LÓGICO DE DADOS


(MODELO IMPLEMENTÁVEL)

PROJETO FÍSICO
LINGUAGEM
SQL DE DADOS

ESQUEMA FÍSICO DE DADOS DBA


(MODELO PROCESSÁVEL)

Figura 9. Fases do projeto de banco de dados

Modelagem Conceitual

Modelo Entidade-Relacionamento (E-R)

Tem por base a percepção do mundo real como um conjunto de objetos básicos,
chamado entidades, e do relacionamento entre eles. As entidades são descritas no
banco de dados por meio de seus atributos. Os valores de atributos que descrevem
cada entidade ocupam a maior parte dos dados armazenados na base de dados. Um
relacionamento é uma associação entre entidades.

O modelo E-R também representa certas regras que o conteúdo do banco de dados
precisa respeitar. Uma regra importante é o mapeamento das cardinalidades, as quais
expressam o número de entidades às quais a outra entidade se relaciona por meio
daquele conjunto de relacionamentos.

INTEGRAÇÃO COM BANCO DE DADOS 17


Esse modelo utiliza diagramas gráficos básicos para mostrar a organização e as
relações entre os dados.

Toda a estrutura lógica do banco de dados pode ser expressa graficamente por meio
de diagrama E-R, cujos construtores são:

 Retângulos - Representam os conjuntos de entidades;


 Círculos - Representam os atributos;
 Losangos - Representam os relacionamentos entre os conjuntos de entidades;
 Linhas - Unem os atributos aos conjuntos de entidades e o conjunto de entidades
aos seus relacionamentos.

Entidades e Atributos

O objeto básico tratado pelo modelo ER é a “entidade”, que pode ser definida como
um objeto do mundo real, concreto ou abstrato, e que possui existência independente.
Cada entidade possui um conjunto particular de propriedades que a descreve,
chamado de “atributos”.

Os atributos podem ser classificados de várias formas:

 Um atributo que pode ser dividido em diversas subpartes com significado


independente entre si recebe o nome de “atributo composto”, enquanto aquele
que não pode ser subdividido é chamado de “atributo simples” ou “atômico”;

 Os atributos que podem assumir apenas um determinado valor em uma


determinada instância são denominados “atributos monovalorados”, enquanto
que um atributo que pode assumir diversos valores em uma mesma instância é
denominado “multivalorado”;

INTEGRAÇÃO COM BANCO DE DADOS 18


 Um atributo que não admite repetição em seus valores é denominado único; já
se admite repetição, é não único;

 Os atributos que têm que ter valor, ou seja, que não podem ser nulos, são
chamados de obrigatórios; já os que podem ser nulos são opcionais;

 Um atributo que é gerado a partir de outro é chamado de atributo derivado.

Entidades Tipo, Atributo Identificador

Um banco de dados costuma conter grupos de entidades similares, possuindo os


mesmos atributos, porém, cada entidade com seus próprios valores para cada atributo.
Este conjunto de entidades similares define uma “entidade-tipo”.

Cada entidade-tipo é identificada por seu nome e pelo conjunto de atributos que define
suas propriedades.

A descrição da entidade-tipo é chamada de esquema, especificando o seu nome, o


nome de cada um de seus atributos e qualquer restrição que incida sobre as entidades.

Uma entidade-tipo pode possuir um atributo cujos valores são distintos para cada
entidade individual. Este atributo é chamado de “atributo identificador”, e seus valores
podem ser utilizados para identificar cada entidade de forma única.

Cada atributo simples de um tipo entidade está associado com um conjunto de valores
denominado “domínio”, o qual especifica o conjunto de valores que podem ser
designados para este determinado atributo para cada entidade.

INTEGRAÇÃO COM BANCO DE DADOS 19


Relacionamento-Tipo

Além de conhecer detalhadamente as entidades-tipo, é muito importante conhecer


também os relacionamentos entre estas.

Um relacionamento-tipo R entre n entidades E1, E2, ..., En é um conjunto de


associações entre entidades deste tipo. Informalmente falando, cada instância de
relacionamento r1 em R é uma associação de entidades, na qual a associação inclui
exatamente uma entidade de cada tipo entidade participante no tipo relacionamento.
Isto significa que estas entidades estão relacionadas de alguma forma no minimundo.

Cardinalidade
Geralmente, o relacionamento-tipo sofre certas restrições que limitam as possíveis
combinações das entidades participantes. Estas restrições são derivadas de restrições
impostas pelo estado destas entidades no minimundo. Veja o exemplo da Figura 10.

Gerência
EMPREGADO DEPARTAMENTO

e1
e2
d1
e3
e4 d2
e5
d3
e6
e7

Figura 10. Relacionamento Empregado - Gerência - Departamento

No exemplo, temos a seguinte situação: um empregado pode gerenciar apenas um


departamento, enquanto que um departamento pode ser gerenciado por apenas um
empregado. A este tipo de restrição, nós chamamos de cardinalidade. A

INTEGRAÇÃO COM BANCO DE DADOS 20


cardinalidade indica o número de relacionamentos dos quais uma entidade pode
participar.

A cardinalidade pode ser: 0:1, 1:1, 1:N, 0:N. No exemplo, a cardinalidade é 1:1, pois
cada entidade empregado pode gerenciar apenas um departamento e um
departamento pode ser gerenciado por apenas um empregado.

Modelo Relacional

Proposto originalmente por E. F. Codd durante seu trabalho no Laboratório de


Pesquisas da IBM em San Jose na segunda metade da década de 1960, o modelo
relacional se baseia em conceitos matemáticos para proporcionar uma representação
confiável para bancos de dados. Desde sua implantação no primeiro SGBDR (Sistema
de Gerenciamento de Bancos de Dados Relacionais) da IBM, denominado System R,
várias melhorias têm sido incluídas no modelo, o que o torna ainda atual e o mais
utilizado no mercado.

O modelo de dados relacional representa os dados em um BD através de um conjunto


de relações (tabelas). Estas relações contêm informações sobre entidades ou
relacionamentos existentes no domínio da aplicação utilizada como alvo para a
modelagem. Informalmente uma relação pode ser considerada uma tabela de valores,
da qual cada linha representa uma coleção de valores de dados inter-relacionados.
Estes conjuntos de valores podem representar uma instância de uma entidade ou
relacionamento da aplicação. Os nomes fornecidos às tabelas e às suas colunas podem
auxiliar na compreensão do significado dos valores armazenados em cada uma das
suas linhas. Na terminologia do modelo relacional, cada linha da relação é denominada
de tupla, e o nome da coluna é denominado atributo da relação.

INTEGRAÇÃO COM BANCO DE DADOS 21


FCODIGO FNOME FCATEGORIA FCIDADE
F1 Santos 20 Piracicaba
F2 Machado 10 São Paulo
F3 Almeida 30 São Paulo
F4 Ferreira 20 Campinas
F5 Rodrigues 30 São Carlos
Tabela 1.

O domínio consiste em um grupo de valores atômicos a partir dos quais um ou mais


atributos (ou colunas) retiram seus valores reais. Por exemplo: o domínio do atributo
FCIDADE consiste no conjunto de todos os nomes legais de cidades.

O esquema de uma relação consiste em um conjunto de atributos que descrevem as


características dos elementos a ser modelados. É denotado por R (A1, A2, ...., An),
em que cada atributo Ai toma seus valores a partir de um domínio Di; e R é o nome
da relação. O número de atributos na relação n consiste no grau da relação. Os
domínios a partir dos quais os atributos da relação retiram seus valores não precisam
ser necessariamente distintos. Como exemplo, o esquema da relação apresentada na
Tabela 1 é dado por:

Fornecedor (FCodigo, FNome, FCategoria, FCidade)

Como esquema de um BD relacional, entende-se o conjunto de intenções (esquemas


das relações) definidas para todas as relações da base, e um conjunto de restrições
de integridade. Sobre os nomes fornecidos aos atributos, é permitido àqueles que
representem conceitos semelhantes possuir ou não o mesmo nome em diferentes
relações. Da mesma forma, atributos representando conceitos diferentes podem
possuir o mesmo nome. O conjunto de restrições de integridade define regras básicas
que os valores dos atributos devem obedecer quando aparecerem em uma relação.

A instância de uma relação consiste no conjunto de valores que cada atributo, definido
no esquema, assume em um determinado instante, formando o conjunto de tuplas.

INTEGRAÇÃO COM BANCO DE DADOS 22


Ou seja, as instâncias das relações formam os dados que são armazenados no BD. As
relações apresentam as seguintes características:

 Não há tuplas duplicadas em uma relação;


 A ordem das tuplas na relação não é relevante para diferenciar as relações;
 Os valores dos atributos devem ser atômicos, não sendo divisíveis em
componentes.

Atributo Chave de uma Relação

Uma relação pode ser definida como um conjunto de tuplas distintas. Isto implica que
a combinação dos valores dos atributos em uma tupla não pode se repetir na mesma
tabela. Existirá sempre um subconjunto de atributos em uma tabela que garante que
não haverá valores repetidos para as diversas tuplas da mesma, garantindo que t1[SC]
 t2[SC].

SC é chamada de superchave de um esquema de relação. Toda relação possui ao


menos uma superchave — o conjunto de todos os seus atributos. Uma chave C de um
esquema de relação R é uma superchave de R com a propriedade adicional que,
removendo qualquer atributo A de K, resta ainda um conjunto de atributos K’ que não
é uma superchave de R. Uma chave é uma superchave da qual não se podem extrair
atributos. Por exemplo, o conjunto: (RA, Nome, Endereço) é uma superchave para
estudante, porém não é uma chave, pois se tirarmos o campo Endereço continuaremos
a ter uma superchave. Já o conjunto (Nome da Revista, Volume, Nº da Revista) é uma
superchave e uma chave, pois qualquer um dos atributos que retirarmos, deixaremos
de ter uma superchave, ou seja, (Nome da Revista, Volume) não identifica uma única
tupla.

Em outras palavras, uma superchave é uma chave composta, ou seja, uma chave
formada por mais de um atributo. Veja o exemplo abaixo:

INTEGRAÇÃO COM BANCO DE DADOS 23


DEPENDENTES
RG Nome Dt. Relação Sexo
Responsá Dependente Nascimento
vel
1010101 Jorge 27/12/86 Filho Masculin
0 o
1010101 Luiz 18/11/79 Filho Masculin
0 o
2020202 Fernanda 14/02/69 Cônjuge Feminino
0
2020202 Ângelo 10/02/95 Filho Masculin
0 o
3030303 Fernanda 01/05/90 Filho Feminino
0
Tabela 2. Dependentes

Quando uma relação possui mais de uma chave (não confundir com chave composta)
— como por exemplo RG e CIC para empregados —, cada uma destas chaves é
chamada de chave candidata. Uma destas chaves deve ser escolhida como primária.

Uma chave estrangeira CE de uma tabela R1 em R2 ou vice-versa especifica um


relacionamento entre as tabelas R1 e R2.

INTEGRAÇÃO COM BANCO DE DADOS 24


Tabela 3. Departamento; Tabela 4. Empregado

Modelagem Lógica

O mapeamento do modelo entidade relacionamento para o modelo relacional segue


os seguintes passos:

1. Para cada entidade E no modelo ER é criada uma tabela T1 no modelo relacional


que inclua todos os atributos simples de E; um dos atributos chaves de E deve ser
escolhida como a chave primária de T1;

INTEGRAÇÃO COM BANCO DE DADOS 25


E

Figura 11. Modelagem de entidade

2. Para cada atributo composto, são inseridos apenas os componentes simples de cada
um;
E
a1 a1 a21 a22 a23

a2

a21 a22 a23

Figura 12. Modelagem de atributos compostos

3. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributo
multivalorado A1, mais o atributo chave C da tabela que representa a entidade ou
relacionamento que contém A1; a chave primária de T1 será composta por A1 mais C;
se A1 for composto, então a tabela T1 deverá conter todos os atributos de A1;

a1
E A3_E
a1 a2 a1 a3
E a2

a3
(_,N)

Figura 13. Modelagem de atributos multivalorados

INTEGRAÇÃO COM BANCO DE DADOS 26


4. Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2
que geraram as tabelas T1 e T2 respectivamente, devemos escolher a chave primária
de uma das relações (T1, T2) e inseri-la como chave estrangeira na outra relação; se
um dos lados do relacionamento tiver participação total e outro parcial, então é
interessante que a chave do lado com participação parcial seja inserida como chave
estrangeira no lado que tem participação total;

a1 a2 a3 c1 c2 b1 b2 b3

(_,1) (_,1)
E1 R E2

Figura 14. Modelagem de relacionamento 1:1

5. Para cada relacionamento regular com cardinalidade 1:N entre entidades E1 e E2


respectivamente e que geraram as tabelas T1 e T2 respectivamente, deve-se inserir a
chave primária de T1 como chave estrangeira em T2;

a1 a2 a3 c1 c2 b1 b2 b3

(_,N) (_,1)
E1 R E2

E1
a1 a2 a3 b1 c1 c2

Figura 15. Modelagem de relacionamento 1:n

INTEGRAÇÃO COM BANCO DE DADOS 27


6. Para cada relacionamento regular com cardinalidade N:N entre entidades E1 e E2,
cria-se uma nova tabela T1, contendo todos os atributos do relacionamento mais o
atributo chave de E1 e o atributo chave de E2; a chave primária de T1 será composta
pelos atributos chave de E1 e E2;

a1 a2 a3 c1 c2 b1 b2 b3

(_,M) (_,N)
E1 R E2

R
a1 b1 c1 c2

Figura 16. Modelagem de relacionamento n:n

Linguagem SQL

SQL, ou Structured Query Language, ou Linguagem de Consulta Estruturada, é uma


linguagem de pesquisa declarativa padrão para banco de dados relacional (base de
dados relacionais). A álgebra relacional deu inspiração a muitas das suas
características originais.

O SQL foi criado por E.F. Codd, membro do laboratório de pesquisa da IBM na década
de 1970. Com o sucesso da linguagem e o surgimento de vários “dialetos” criados por
outros produtores, foi criado um padrão para a linguagem. Em 1986, a ANSI (American
National Standards Institute) foi responsável por padronizar as implementações da
linguagem e em 1987 pela ISO (International Organization for Standardization).

INTEGRAÇÃO COM BANCO DE DADOS 28


Mesmo o SQL sendo padronizado pela ANSI e ISO, existem muitas variações e
extensões criadas por diversos fabricantes de sistemas gerenciadores de bases de
dados. A linguagem pode ser facilmente migrada entre as plataformas sem grandes
mudanças nas suas estruturas principais.

Visão Geral de SQL

Tipos de Dados
Para armazenar as informações em um banco de dados, é importante conhecer os
tipos de dados existentes. Existem três grandes grupos de tipos de dados em um BD:
os do tipo caractere, os numéricos e os de data e hora. Após conhecer os tipos de
dados, é possível entender quais valores podem ser utilizados, quais tamanhos podem
ter, as operações que podem ser realizadas e como armazenar as informações de
maneira correta.

Caracteres

Os tipos de dados caracteres podem armazenar textos, dados binários, caracteres


especiais, e seu tamanho não pode passar de 254 bytes. Seguem os caracteres mais
utilizados:

 CHAR: string de caracteres de tamanho fixo;


 VARCHAR: string de caracteres de tamanho variável.

Numéricos

Os tipos de dados numéricos podem armazenar números exatos, inteiros, ponto


flutuante, ponto fixo, aproximados, dentre outros. Seguem os tipos mais utilizados:
 INTEGER: números inteiros com 10 dígitos de precisão; não aceitam número
fracionário; todos os números após o ponto decimal são truncados;

INTEGRAÇÃO COM BANCO DE DADOS 29


 NUMBER: números inteiros com 22 dígitos decimais de precisão; não é
necessário indicar a precisão;
 DECIMAL: números inteiros com 22 dígitos decimais de precisão; é necessário
indicar a precisão;
 SMALLINT: números inteiros com 5 dígitos de precisão; não aceitam número
fracionário; todos os números após o ponto decimal são truncados;
 FLOAT: número de ponto flutuante de precisão simples;
 DOUBLE: número de ponto flutuante de precisão dupla;
 BIT: campo de um bit.

Data e Hora

Os tipos de dados data e hora podem armazenar datas e horas de diversos formatos.
Seguem os tipos mais utilizados:

 DATE: armazena apenas datas, que podem ser exibidas e codificadas de


diversas formas;
 TIME: armazena apenas horas, que podem ser exibidas e codificadas de
diversas formas;
 TIMESTAMP: armazena data e hora ao mesmo tempo, que podem ser exibidas
e codificadas de diversas formas.

DML
Linguagem de Manipulação de Dados, ou Data Manipulation Language (DML), é um
subconjunto de linguagem usada para inserir, atualizar e apagar registros.

Insert
Comando utilizado para inserir registros em uma tabela. Exemplo:
INSERT INTO nome_tabela
VALUES (valor1, valor2, valor3,...)
ou

INTEGRAÇÃO COM BANCO DE DADOS 30


INSERT INTO nome_tabela
(coluna1, coluna2, coluna3,...)
VALUES (valor1, valor2, valor3,...);

Update
Comando utilizado para atualizar os registros de uma tabela. Exemplo:
UPDATE nome_tabela
SET campo = “novo_valor”
WHERE condição

Delete
Comando utilizado para apagar os registros de uma tabela. Exemplo:
DELETE
FROM nome_tabela
WHERE condição

DTL
Linguagem de Transação de Dados, ou Data Transaction Language (DTL), utilizada
para transações como start transaction, commit e rollback.

Start Transaction
Marca o começo de uma transação no banco de dados, que pode ser completa ou não.
Exemplo:
START TRANSACTION;

COMMIT
Envia todos os dados da transação permanentemente para o banco de dados Exemplo:
COMMIT

ROLLBACK
Desfaz todas as alterações feitas nas transações realizadas no banco de dados.

INTEGRAÇÃO COM BANCO DE DADOS 31


Exemplo:
ROLLBACK;
DDL
Linguagem de Definição de Dados, ou Data Definition Language (DDL), utilizada para
definir novas tabelas e elementos associados.

CREATE
Comando utilizado para criar uma tabela dentro da base de dados. Exemplo:
CREATE TABLE aluno
(nome VARCHAR (50),
matricula INT,
PRIMARY KEY (matricula));

DROP
Comando utilizado para apagar uma tabela dentro da base de dados. Exemplo:
DROP TABLE aluno;

DQL
Linguagem de Consulta de Dados, ou Data Query Language (DQL), o mais importante
dentre eles, pois as consultas são realizadas o tempo todo no BD, e o seu único
comando é o SELECT, que é composto de várias cláusulas e opções.

Cláusulas
As cláusulas são condições utilizadas nas consultas para determinar os dados a serem
selecionados e as regras a serem aplicadas.

 From - Utilizado para definir a tabela na consulta para seleção dos registros;
 Where - Utilizado para definir as condições que os registros devem ter para
serem selecionados;
 Group By - Utilizado para agrupar os registros com o mesmo conteúdo;
 Having - Utilizado para definir as condições que cada grupo deve ter;

INTEGRAÇÃO COM BANCO DE DADOS 32


 Order By - Utilizado para ordenar os registros, especificando a ordem (desc,
asc);
 Distinct - Utilizado para selecionar registros distintos.

Operadores Lógicos

 AND (“E”): compara dois ou mais valores; caso todos sejam corretos (iguais),
devolve um valor verdadeiro;
 OR (“OU”): compara dois ou mais valores; caso um deles seja correto, devolve
um valor verdadeiro;
 NOT: negação; devolve o valor contrário da expressão.

Agregação

As funções de agregação produzem um único resultado para todas as linhas que


retornam de uma consulta. Seguem as funções mais utilizadas:

 AVG – Retorna a média dos registros selecionados;


 COUNT – Retorna a quantidade de linhas selecionadas;
 SUM – Retorna a soma todos os registros selecionados;
 MAX – Retorna o maior valor dos registros selecionados;
 MIN – Retorna o menor valor dos registros selecionados.

Sintaxe de SQL

As tabelas no banco de dados são identificadas por um nome (Aluno, Cliente,


Empregado), e as linhas também conhecidas como registros contêm os dados da
tabela.

INTEGRAÇÃO COM BANCO DE DADOS 33


Tabela 5. Aluno

A query (consulta em SQL) a seguir irá retornar todos os registros da tabela


“ALUNO”:
SELECT * FROM ALUNO
É importante saber que o SQL não é case sensitive.

Um Pouco mais sobre Select

Vimos que o SELECT é o comando mais utilizado no banco de dados, tanto para
consultas simples até consultas mais complexas. Então, para entendermos melhor
todas as funcionalidades e aprender como utilizar esta ferramenta no BD, veremos
agora alguns de seus principais recursos.

A declaração SELECT é utilizada para selecionar os registros de um banco de dados, e


o resultado de uma consulta SQL é apresentado em forma de tabela.

A sintaxe de um SELECT é bem simples. Como já vimos, podemos selecionar os


registros de duas formas: chamando o nome das colunas antes do FROM — desta
forma, precisa-se saber o nome de cada coluna — ou chamando todas as colunas de
uma vez utilizando o asterisco (*) antes do FROM; desta forma não é necessário saber
o nome das colunas.

Exemplos:
SELECT nome_coluna1, nome_coluna2
FROM nome_tabela

INTEGRAÇÃO COM BANCO DE DADOS 34


ou
SELECT *
FROM nome_tabela.

Exemplo de SELECT na tabela “ALUNO”:


Queremos selecionar o conteúdo das colunas MATRICULA e NOME. Usaremos a
seguinte declaração SELECT:
SELECT MATRICULA, NOME
FROM ALUNO
O resultado será:

Tabela 6. Resultado da consulta na tabela ALUNO

Select Distinct
Em algumas tabelas do banco de dados, as informações contidas nas colunas podem
conter valores duplicados. Se for preciso listar todos os valores distintos de uma
coluna, o DISTINCT deve ser utilizado para retornar apenas os valores sem
duplicidade.

Sua sintaxe é a seguinte:


SELECT DISTINCT nome_coluna FROM nome_tabela.

Exemplo de SELECT DISTINCT na tabela “FUNCIONARIO”.

INTEGRAÇÃO COM BANCO DE DADOS 35


Tabela 7. “FUNCIONARIO”

Queremos selecionar apenas os valores distintos da coluna “DEPARTAMENTO” da


tabela “FUNCIONARIO”; para isso, utilizaremos a seguinte consulta:
SELECT DISTINCT DEPARTAMENTO FROM FUNCIONARIO

O resultado será:

Tabela 8. Departamento

Cláusula Where

A cláusula WHERE é utilizada para criar regras, nos casos em que somente os registros
que tiverem os critérios utilizados serão extraídos.

Sua sintaxe é a seguinte:


SELECT nome_coluna FROM nome_tabela WHERE nome_coluna operador valor

Exemplo de WHERE na tabela “PAIS”:

INTEGRAÇÃO COM BANCO DE DADOS 36


Tabela 9. “PAIS”

Queremos selecionar os países com P_ID igual a 2; para isso, utilizaremos a seguinte
consulta:
SELECT * FROM PAIS WHERE P_ID = 2

O resultado será:

Tabela 10. Resultado da consulta WHERE na tabela “PAIS”

Com relação ao campo de texto, deve ser escrito entre aspas simples (‘Brasil’); já
valores numéricos não precisam das aspas (123).

Forma correta:
SELECT * FROM PAIS WHERE PAIS = ‘Portugal’
SELECT * FROM PAIS WHERE P_ID = 3

Forma errada:
SELECT * FROM PAIS WHERE PAIS = Portugal
SELECT * FROM PAIS WHERE P_ID = ‘3’

Para a cláusula WHERE, podem ser utilizados os seguintes operadores de comparação:

INTEGRAÇÃO COM BANCO DE DADOS 37


Tabela 11. Operadores de comparação

Order By
A palavra-chave ORDER BY é utilizada para ordenar o resultado de uma consulta a
partir de uma coluna determinada. O padrão da ordenação é crescente; caso queira
ordenar de modo descendente, a palavra DESC deve ser utilizada.

Sua sintaxe é a seguinte:


SELECT nome_coluna
FROM nome_tabela
ORDER BY nome_coluna ASC|DESC

Exemplo de ORDER BY DESC na tabela “PRODUTO”:

Tabela 12. Produto

INTEGRAÇÃO COM BANCO DE DADOS 38


Queremos selecionar todos os produtos classificados em ordem descendente por
preço; para isso, utilizaremos a seguinte consulta:
SELECT *
FROM PRODUTO
ORDER BY PRECO DESC

O resultado será:

Tabela 13. Produto

LIKE
O LIKE é utilizado para localizar um determinado padrão de palavra em uma coluna.
Para definir a posição da palavra de busca, o “%” deve ser usado:

 No final para buscar palavras que começam com o padrão definido;

 No início para buscar palavras que terminam com o padrão definido;

 No final e no início para buscar palavras que contenham em qualquer posição


o padrão definido.

Sua sintaxe é a seguinte:


SELECT nome_coluna FROM nome_tabela WHERE nome_coluna LIKE padrao

Exemplo um de LIKE

INTEGRAÇÃO COM BANCO DE DADOS 39


Tabela 14. DEPARTAMENTO

Queremos selecionar apenas os nomes dos departamentos que começam com a letra
“R”; para isso, utilizaremos a seguinte consulta:

SELECT * FROM DEPARTAMENTO WHERE DEPARTAMENTO LIKE ‘R%’

O resultado será:

Tabela 15. "DEPARTAMENTO”

Exemplo dois de LIKE na tabela “DEPARTAMENTO”. Queremos selecionar apenas os


nomes dos gerentes que terminam com a letra “O”. Para isso, utilizaremos a seguinte
consulta:

SELECT * FROM DEPARTAMENTO WHERE GERENTE LIKE ‘%o’

O resultado será:

INTEGRAÇÃO COM BANCO DE DADOS 40


Tabela 16. ‘DEPARTAMENTO”

Exemplo três de LIKE na tabela “DEPARTAMENTO”. Queremos selecionar apenas os


nomes dos gerentes que tenham a letra “A” em qualquer posição; para isso
utilizaremos a seguinte consulta:

SELECT * FROM DEPARTAMENTO WHERE GERENTE LIKE ‘%a%’

O resultado será:

Tabela 17. “DEPARTAMENTO”

Exemplo quatro de LIKE na tabela “DEPARTAMENTO”. Queremos selecionar apenas


os nomes dos departamentos que não tenham a letra “o” em qualquer posição; para
isso, utilizaremos a seguinte consulta:

SELECT *
FROM DEPARTAMENTO
WHERE DEPARTAMENTO NOT LIKE ‘%o%’

Tabela 18. “DEPARTAMENTO”

INTEGRAÇÃO COM BANCO DE DADOS 41


IN
O IN permite buscar diversos valores na cláusula WHERE. Sua sintaxe é a seguinte:
SELECT nome_coluna FROM nome_tabela WHERE nome_coluna IN (valor1, valor2,
valor3,...)

Exemplo:

Tabela 19. “FACULDADE”

Queremos selecionar os nomes das faculdades iguais a “UNIABEU” ou “Gama Filho”;


para isso, utilizaremos a seguinte consulta:

SELECT * FROM FACULDADE WHERE FACULDADE IN (‘UNIABEU’, ‘GamaFilho’)

O resultado será:

Tabela 20. “FACULDADE”

Between
O BETWEEN é utilizado para selecionar um intervalo de dois valores. Os valores podem
ser do tipo data, número ou texto.

Sua sintaxe é a seguinte:

INTEGRAÇÃO COM BANCO DE DADOS 42


SELECT nome_coluna FROM nome_tabela WHERE nome_coluna BETWEEN valor1 AND
valor2

Exemplo um de BETWEEN:

Tabela 21. “VENDEDOR”

Queremos selecionar os vendedores que o V_ID esteja entre 2 e 4; para isso


utilizaremos a seguinte consulta:

SELECT * FROM VENDEDOR WHERE V_ID BETWEEN 2 AND 4

O resultado será:

Tabela 22. “VENDEDOR”

Exemplo dois de NOT BETWEEN na tabela “VENDEDOR”. Queremos selecionar os


vendedores que o V_ID não esteja entre 2 e 4; para isso, utilizaremos a seguinte
consulta:
SELECT * FROM VENDEDOR WHERE V_ID NOT BETWEEN 2 AND 4

O resultado será:

INTEGRAÇÃO COM BANCO DE DADOS 43


Tabela 23. “VENDEDOR”

Também é possível selecionar um intervalo entre duas datas.

Exemplo três de BETWEEN na tabela “VENDEDOR”. Queremos selecionar os


vendedores que nasceram entre os anos de 1980 a 1990; para isso, utilizaremos a
seguinte consulta:
SELECT * FROM VENDEDOR WHERE NASCIMENTO BETWEEN ‘01/01/1980’ AND
‘31/12/1990’

O resultado será:

Tabela 24. “VENDEDOR”

JOIN

O JOIN é usado em consultas para buscar dados em duas ou mais tabelas, utilizando
as colunas com a mesma relação entre elas. Essa relação é feita através de uma coluna
na qual os registros são únicos para cada linha, mais conhecida como chave primária.
Dentro de um banco de dados, as tabelas podem relacionar entre si usando as chaves
primárias, assim evitando a repetição dos dados em todas as tabelas.

Abaixo mostraremos duas tabelas em que todos os exemplos dos diferentes tipos de
JOIN serão feitos.
INTEGRAÇÃO COM BANCO DE DADOS 44
Tabela 25. “CLIENTE”

A coluna “C_ID” é a chave primária da tabela “CLIENTE”, com isso não podem existir
linhas na “C_ID” com o mesmo número, pois cada número da “C_ID” identifica uma
pessoa unicamente, mesmo que o nome seja igual.

Tabela 26. “PEDIDO”

A coluna “P_ID” é a chave primária da tabela “PEDIDO” e a coluna “C_ID” refere-se


aos clientes da tabela “CLIENTE”. O relacionamento entre as tabelas será feito pela
coluna “C_ID” existente nas duas tabelas.

Conheceremos agora os tipos de JOIN e suas diferenças.


 JOIN ou INNER JOIN: quando ambas as tabelas tiverem ao menos uma
correspondência, os registros serão retornados;
 LEFT JOIN: todos os registros da tabela à esquerda serão retornados, mesmo
que não estejam na tabela à direita;

INTEGRAÇÃO COM BANCO DE DADOS 45


 RIGHT JOIN: todos os registros da tabela à direita serão retornados, mesmo
que não estejam na tabela à esquerda;
 FULL JOIN: todos os registros da tabela à esquerda e da tabela à direita serão
retornados.

Sintaxe de JOIN ou INNER JOIN:


SELECT nome_coluna (s)
FROM nome_tabela1
INNER JOIN nome_tabela2
ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna

Exemplo de JOIN ou INNER JOIN na tabela “CLIENTE e tabela “PEDIDO”. Para listar
todos os clientes com algum pedido, utilizaremos a seguinte consulta:
SELECT CLIENTE.NOME, CLIENTE.ENDERECO, PEDIDO.NUMERO
FROM CLIENTE
INNER JOIN Pedido
ON CLIENTE.C_ID = PEDIDO.C_ID

Para tornar a consulta mais limpa e de fácil compreensão, utilizaremos o alias na


mesma consulta sem alterar o resultado:
SELECT C.NOME, C.ENDERECO, P.NUMERO
FROM CLIENTE C
INNER JOIN PEDIDO P OB C.C_ID = P.C_ID

O resultado de ambas as consultas será:

Tabela 27.

INTEGRAÇÃO COM BANCO DE DADOS 46


Sintaxe de LEFT JOIN: SELECT nome_coluna (s)
FROM nome_tabela1
LEFT JOIN nome_tabela2
ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna
Exemplo de LEFT JOIN na tabela “CLIENTE” e tabela “PEDIDO”. Para listar todos os
clientes e os seus pedidos, se houver, utilizaremos a seguinte consulta:

SELECT C.NOME, C.ENDERECO, P.NUMERO


FROM CLIENTE C
LEFT JOIN PEDIDO P ON C.C_ID = P.C_ID

O resultado será:

Tabela 28.

Sintaxe de RIGHT JOIN: SELECT nome_coluna (s)


FROM nome_tabela1
RIGHT JOIN nome_tabela2
ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna

SELECT C.NOME, C.ENDERECO, P.NUMERO


FROM CLIENTE C
RIGHT JOIN PEDIDO P ON C.C_ID = P.C_ID

INTEGRAÇÃO COM BANCO DE DADOS 47


O resultado será:

Tabela 29.

Sintaxe de FULL JOIN: SELECT nome_coluna (s)


FROM nome_tabela1
FULL JOIN nome_tabela2
ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna

Exemplo de FULL JOIN na tabela “CLIENTE” e tabela “PEDIDO”. Para listar todos os
clientes e os seus pedidos, e todos os pedidos e os seus clientes, utilizaremos a
seguinte consulta:
SELECT C.NOME, C.ENDERECO, P.NUMERO
FROM CLIENTE C
FULL JOIN PEDIDO P ON C.C_ID = P.C_ID

O resultado será:

Tabela 30.
INTEGRAÇÃO COM BANCO DE DADOS 48
Referências Bibliográficas

COSTA, Rogério Luís de C. SQL: Guia Prático. Rio de Janeiro: Brasport, 2007.

NIELD, Thomas. Introdução à Linguagem SQL: Abordagem prática para iniciantes.


São Paulo: Novatec, 2016.

XAVIER, Fabrício S. V.; PEREIRA, Leonardo Bruno R. SQL: Dos Conceitos às Consultas
Complexas. Rio de Janeiro: Ciência Moderna, 2009.

INTEGRAÇÃO COM BANCO DE DADOS 49

Você também pode gostar