Você está na página 1de 26

Fernando Albuquerque - fernando@cic.unb.

br

Bancos de Dados
Fernando Albuquerque
061-2733589
fernando@cic.unb.br

Fernando Albuquerque - fernando@cic.unb.br

Tpicos
n
n
n

Introduo
O modelo relacional
A linguagem SQL

Fernando Albuquerque - fernando@cic.unb.br

Introduo
n

O que um banco de dados :


Coleo de informaes que existe por um longo perodo
de tempo e que gerenciada por um SGBD ( Sistema
Gerenciador de Banco de Dados ).
Coleo de dados relacionados que atendem as
necessidades de mltiplos usurios dentro de uma ou de
mltiplas organizaes.
O uso de bancos de dados em vez de arquivos resulta em
maior disponibilidade, maior facilidade de acesso e
atualizao em transaes complexas e menor redundncia
dos dados.

Fernando Albuquerque - fernando@cic.unb.br

Introduo
n

Responsabilidades de um SGBD :
Software para a manipulao de bancos de dados que
suporta uma viso lgica e fsica dos dados, linguagem de
definio e de manipulao dos dados, gerncia de
transaes, controle de concorrncia, segurana e
recuperao de falhas.
Permite criar novas bases de dados e especificar a sua
estrutura lgica ( schema ) usando uma linguagem de
definio de dados.
Permite a consulta e a modificao dos dados atravs de
uma linguagem de consulta ou de manipulao de dados.

Fernando Albuquerque - fernando@cic.unb.br

Introduo
Possibilita o armazenamento de grandes quantidades de
dados por longos perodos de tempo.
Protege os dados de acidentes ou acessos no autorizados.
Possibilita o acesso eficiente aos dados para consultas e
modificaes.
Controla o acesso simultneo aos dados evitando que os
dados sejam corrompidos.

Fernando Albuquerque - fernando@cic.unb.br

Introduo
n

Sistemas de bancos de dados relacionais :


Em artigos publicados a partir de 1970, Ted Codd sugeriu
que os dados fossem apresentados aos usurios
organizados em tabelas chamadas tabelas ( relations ).
O usurio no deveria se preocupar com as estruturas de
dados efetivamente usadas para armazenamento dos
dados.
Atributos

nmeroConta

balano

tipo

Tuplas

12345
67890
...

1000.00
2846.92
...

poupana
corrente
...

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional
n

Introduo:
As abordagens de modelagem orientadas a objetos e
entidade-relacionamento so apropriadas para descrever a
estrutura dos dados mas a implementao normalmente
baseada no modelo relacional.
O modelo relacional tem um nico conceito de
modelagem chamado relao.
Uma relao uma tabela bidimensional onde os dados
so organizados.
O modelo relacional suporta uma linguagem de alto nvel
chamada Structured Query Language ( SQL ).

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional
A linguagem SQL possibilita que programas simples
sejam escritos para manipulao dos dados armazenados
nas relaes de formas sofisticadas.
Os modelos desenvolvidos usando-se orientao a objetos
ou entidade-relacionamento so traduzidos em relaes.
O modelo relacional tem a sua prpria teoria, chamada
normalizao de relaes, baseada em dependncias
funcionais.

Relaes :
No modelo relacional os dados so representados como
tabelas bidimensionais.

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional

ttulo

ano

durao

tipo

Star Wars
Mighty Ducks
Waynes World

1977
1991
1992

124
104
95

cor
cor
cor

Atributos:
So listados no topo da relao e servem como nomes das
colunas em uma relao.
Descrevem significados dos dados em uma coluna.
No obrigatrio que os atributos em uma relao
correspondam a componentes nos modelos ODL ou E/R.

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional
n

Esquemas :
O nome de uma relao e o conjunto de atributos
chamado esquema.
O esquema de uma relao representado pelo nome da
relao seguido pelo atributos entre parnteses.
Filme ( ttulo, ano, durao , tipo )

No modelo relacional, um projeto consiste de um ou mais


esquemas.
O conjunto de esquemas em um projeto chamado de
esquema do banco de dados.

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional
n

Tuplas :
As linhas de uma relao chamam-se tuplas.
Uma tupla tem um componente para cada atributo.
Quando se deseja escrever uma tupla, os componentes so
separados por vrgulas e colocados entre parnteses.
( Star Wars , 1977 , 124 , cor )

A ordem na qual os atributos so listados no esquema deve


ser obedecida.
Uma tupla pode ser vista como representando objetos e
uma relao representando classes.

Fernando Albuquerque - fernando@cic.unb.br

O modelo relacional
Diferente de objetos, no possvel que uma tupla aparea
mais de uma vez em uma relao.

Domnios :
Cada componente em cada tupla deve ser atmico, deve
ser de um tipo elementar.
No permitido que o componente seja uma estrutura de
dados ou qualquer tipo cujos valores possam se
decompostos em componentes menores.
Um domnio associado a cada atributo de uma relao.
O valor de cada componente deve pertencer ao domnio.

Fernando Albuquerque - fernando@cic.unb.br

A linguagem SQL
n

Conceitos :

Structured Query Language ( linguagem de consultas )


Muitos dialetos diferentes
ANSI SQL
Padro atualizado em 1992 chamado SQL-92 ou SQL2
Padro recente SQL3
Verses dos principais fornecedores
No h diferena entre maisculas e minsculas

Fernando Albuquerque - fernando@cic.unb.br

Selecionando dados
n

Consultas simples :
Usadas as palavras-chave SELECT , FROM e WHERE.
SELECT lista_de_colunas
FROM relao[s]
[WHERE condies_pesquisa]

A palavra-chave FROM especifica a relao ou relaes s


quais a consulta se refere.
A palavra-chave WHERE uma condio que as linhas
deve satisfazer na consulta.
A palavra-chave SELECT identifica os atributos das
linhas que devem fazer parte da resposta.

Fernando Albuquerque - fernando@cic.unb.br

Selecionando dados
O resultado de uma consulta a relao composta pelas
linhas produzidas no processo.
SELECT au_sobrenome , au_nome
FROM autores
au_sobrenome

au_nome

Albuquerque
Amado
Emerson

Fernando
Jorge
Sandra

Fernando Albuquerque - fernando@cic.unb.br

Selecionando dados
n

Seleo em SQL :
Podem ser usados seis diferentes operadores de
comparao.
=
<
<=

igual
menor
menor ou igual

<>
>
>=

diferente
maior
maior ou igual

Os valores a serem comparados incluem constantes e


atributos mencionados aps FROM.
Operadores aritmticos podem ser aplicados antes da
comparao.
Resultado de uma comparao TRUE ou FALSE e
podem ser combinados via AND, OR e NOT.

Fernando Albuquerque - fernando@cic.unb.br

Selecionando dados
A operao de seleo permite a recuperao de um subconjunto de linhas em uma relao.
Para se especificar as linhas desejadas so especificadas
condies no WHERE.
SELECT *
FROM publishers
WHERE state = CA
Resultados :
pub_id pub_name

address city

state

1389

3rd Dr. Berkeley

CA

Algodata

Fernando Albuquerque - fernando@cic.unb.br

Joining
n

Operao join :
A operao join atua sobre duas ou mais relaes por vez.
Os dados so combinados de modo a poderem ser
comparados e contrastados.
Quando do join como se as relaes tivessem sido unidas
enquanto dura a consulta.
A operao join combina dados comparando valores em
colunas especificadas.
Atravs da operao evita-se que seja necessrio colocar
todas as informaes em uma mesma relao com o
conseqente impacto em termos de performance e
eficincia.

Fernando Albuquerque - fernando@cic.unb.br

Joining
ttulos

editoras
id-titulo
titulo
tipo
id-editora
preo
contrato
data-pub
notas

id-editora
nome-editora
endereco
cidade
estado

SELECT titulo , nome-editora


FROM titulos , editoras
WHERE editoras.id-editora = titulos.id-editora

Fernando Albuquerque - fernando@cic.unb.br

Joining
Na maioria dos sistemas a operao de join especificada
no WHERE.
Operaes de join so expressas implicitamente e no
explicitamente.
Cada join especificado em duas relaes usando uma
coluna de cada relao.
SELECT lista_seleo
FROM relao_1 , relao_2 [ , relao_3 ] ...
WHERE [ relao_1.]coluna operador [relao_2.]coluna

Fernando Albuquerque - fernando@cic.unb.br

Views
n

View :
Uma view uma representao alternativa dos dados em
uma ou mais relaes e so chamadas de relaes virtuais
ou relaes derivadas.
Os dados vistos atravs de uma view no so efetivamente
armazenados no banco de dados, a view no uma cpia
dos dados em outra relao.
O dicionrio de dados armazena a definio de uma view.
Quando a view chamada pelo usurio, os dados
apropriados so associados.

Fernando Albuquerque - fernando@cic.unb.br

Views
n

Criando views :
Na primeira linha especificado o nome da view.
No enunciado SELECT definida a view.
CREATE VIEW Livros_E_Publicacoes
AS
SELECT titulo , nome-editora
FROM titulos , editoras
WHERE editoras.id-editora = titulos.id-editora
SELECT * FROM Livros_E_Publicacoes

Fernando Albuquerque - fernando@cic.unb.br

Views
Uma view pode ser usada em um enunciado SELECT da
mesma forma que uma relao.
CREATE VIEW books
SELECT titles.title_id , au_ord , au_lname , au_fname
FROM authors , titles , titleauthors
WHERE authors.au_id = titleauthors.au_id AND
titles.title_id = titleauthors.title_id
SELECT * FROM books
SELECT * FROM boks ORDER BY au_lname

Fernando Albuquerque - fernando@cic.unb.br

Views
Uma view possibilita que cada usurio tenha uma viso do
banco de dados que corresponda s suas necessidades.
Atravs de views possvel adaptar um banco de dados de
modo a facilitar o trabalho de usurios com diferentes
interesses e nveis de treinamento.
Cada usurio pode ter uma diferente viso embora esteja
acessando as mesmas relaes.

Removendo views :
DROP VIEW nome_view

Fernando Albuquerque - fernando@cic.unb.br

Unies, intersees e diferenas


n

Operao UNION :
Forma de se combinar dados de mltiplas consultas.
til quando deseja-se analisar dados similares de duas ou
mais relaes.
SELECT au_fname , au_lname , city
FROM authors
WHERE city IN ( Oakland , Berkeley )
UNION
SELECT ed_fname , ed_lname , city
FROM editors
WHERE city IN ( Oakland , Berkeley )

Fernando Albuquerque - fernando@cic.unb.br

Unies, intersees e diferenas


n

Operaes INTERSECT e EXCEPT :


( SELECT nome , endereco FROM filmeEstrela
WHERE sexo = F)
INTERSECT
( SELECT nome , endereco FROM filmeExec
WHERE valor > 1000000 );

( SELECT nome , endereco FROM filmeEstrela )


EXCEPT
( SELECT nome , endereco FROM filmeExec )

Você também pode gostar