Escolar Documentos
Profissional Documentos
Cultura Documentos
br
Bancos de Dados
Fernando Albuquerque
061-2733589
fernando@cic.unb.br
Tpicos
n
n
n
Introduo
O modelo relacional
A linguagem SQL
Introduo
n
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.
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.
Introduo
n
nmeroConta
balano
tipo
Tuplas
12345
67890
...
1000.00
2846.92
...
poupana
corrente
...
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 ).
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.
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.
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 )
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 )
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.
A linguagem SQL
n
Conceitos :
Selecionando dados
n
Consultas simples :
Usadas as palavras-chave SELECT , FROM e WHERE.
SELECT lista_de_colunas
FROM relao[s]
[WHERE condies_pesquisa]
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
Selecionando dados
n
Seleo em SQL :
Podem ser usados seis diferentes operadores de
comparao.
=
<
<=
igual
menor
menor ou igual
<>
>
>=
diferente
maior
maior ou igual
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
CA
Algodata
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.
Joining
ttulos
editoras
id-titulo
titulo
tipo
id-editora
preo
contrato
data-pub
notas
id-editora
nome-editora
endereco
cidade
estado
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
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.
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
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
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
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 )