Buscar

Introdução a Bancos de Dados Relacionais

Prévia do material em texto

Fernando Albuquerque - fernando@cic.unb.br
Bancos de Dados
Fernando Albuquerque
061-2733589
fernando@cic.unb.br
Fernando Albuquerque - fernando@cic.unb.br
Tópicos
n Introdução
n O modelo relacional
n A linguagem SQL
Fernando Albuquerque - fernando@cic.unb.br
Introdução
n O que é um banco de dados :
• Coleção de informações que existe por um longo período
de tempo e que é gerenciada por um SGBD ( Sistema
Gerenciador de Banco de Dados ).
• Coleção de dados relacionados que atendem as
necessidades de múltiplos usuários dentro de uma ou de
múltiplas organizações.
• O uso de bancos de dados em vez de arquivos resulta em
maior disponibilidade, maior facilidade de acesso e
atualização em transações complexas e menor redundância
dos dados.
Fernando Albuquerque - fernando@cic.unb.br
Introdução
n Responsabilidades de um SGBD :
• Software para a manipulação de bancos de dados que
suporta uma visão lógica e física dos dados, linguagem de
definição e de manipulação dos dados, gerência de
transações, controle de concorrência, segurança e
recuperação de falhas.
• Permite criar novas bases de dados e especificar a sua
estrutura lógica ( schema ) usando uma linguagem de
definição de dados.
• Permite a consulta e a modificação dos dados através de
uma linguagem de consulta ou de manipulação de dados.
Fernando Albuquerque - fernando@cic.unb.br
Introdução
• Possibilita o armazenamento de grandes quantidades de
dados por longos períodos de tempo.
• Protege os dados de acidentes ou acessos não autorizados.
• Possibilita o acesso eficiente aos dados para consultas e
modificações.
• Controla o acesso simultâneo aos dados evitando que os
dados sejam corrompidos.
Fernando Albuquerque - fernando@cic.unb.br
Introdução
n Sistemas de bancos de dados relacionais :
• Em artigos publicados a partir de 1970, Ted Codd sugeriu
que os dados fossem apresentados aos usuários
organizados em tabelas chamadas tabelas ( relations ).
• O usuário não deveria se preocupar com as estruturas de
dados efetivamente usadas para armazenamento dos
dados.
númeroConta balanço tipo
12345 1000.00 poupança
67890 2846.92 corrente
. . . . . . . . .
Atributos
Tuplas
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
n Introdução:
• As abordagens de modelagem orientadas a objetos e
entidade-relacionamento são apropriadas para descrever a
estrutura dos dados mas a implementação é normalmente
baseada no modelo relacional.
• O modelo relacional tem um único conceito de
modelagem chamado relação.
• Uma relação é uma tabela bidimensional onde os dados
são organizados.
• O modelo relacional suporta uma linguagem de alto nível
chamada Structured Query Language ( SQL ).
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
• A linguagem SQL possibilita que programas simples
sejam escritos para manipulação dos dados armazenados
nas relações de formas sofisticadas.
• Os modelos desenvolvidos usando-se orientação a objetos
ou entidade-relacionamento são traduzidos em relações.
• O modelo relacional tem a sua própria teoria, chamada
normalização de relações, baseada em dependências
funcionais.
n Relações :
• No modelo relacional os dados são representados como
tabelas bidimensionais.
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
n Atributos:
• São listados no topo da relação e servem como nomes das
colunas em uma relação.
• Descrevem significados dos dados em uma coluna.
• Não é obrigatório que os atributos em uma relação
correspondam a componentes nos modelos ODL ou E/R.
título ano duração tipo
Star Wars 1977 124 cor
Mighty Ducks 1991 104 cor
Wayne´s World 1992 95 cor
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
n Esquemas :
• O nome de uma relação e o conjunto de atributos é
chamado esquema.
• O esquema de uma relação é representado pelo nome da
relação seguido pelo atributos entre parênteses.
• 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.
Filme ( título, ano, duração , tipo )
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
n Tuplas :
• As linhas de uma relação chamam-se tuplas.
• Uma tupla tem um componente para cada atributo.
• Quando se deseja escrever uma tupla, os componentes são
separados por vírgulas e colocados entre parênteses.
• A ordem na qual os atributos são listados no esquema deve
ser obedecida.
• Uma tupla pode ser vista como representando objetos e
uma relação representando classes.
( Star Wars , 1977 , 124 , cor )
Fernando Albuquerque - fernando@cic.unb.br
O modelo relacional
• Diferente de objetos, não é possível que uma tupla apareça
mais de uma vez em uma relação.
n Domínios :
• Cada componente em cada tupla deve ser atômico, deve
ser de um tipo elementar.
• Não é permitido que o componente seja uma estrutura de
dados ou qualquer tipo cujos valores possam se
decompostos em componentes menores.
• Um domínio é associado a cada atributo de uma relação.
• O valor de cada componente deve pertencer ao domínio.
Fernando Albuquerque - fernando@cic.unb.br
A linguagem SQL
n Conceitos :
• Structured Query Language ( linguagem de consultas )
• Muitos dialetos diferentes
• ANSI SQL
• Padrão atualizado em 1992 chamado SQL-92 ou SQL2
• Padrão recente SQL3
• Versões dos principais fornecedores
• Não há diferença entre maiúsculas e minúsculas
Fernando Albuquerque - fernando@cic.unb.br
Selecionando dados
n Consultas simples :
• Usadas as palavras-chave SELECT , FROM e WHERE.
• A palavra-chave FROM especifica a relação ou relações às
quais a consulta se refere.
• A palavra-chave WHERE é uma condição que as linhas
deve satisfazer na consulta.
• A palavra-chave SELECT identifica os atributos das
linhas que devem fazer parte da resposta.
SELECT lista_de_colunas
FROM relação[s]
[WHERE condições_pesquisa]
Fernando Albuquerque - fernando@cic.unb.br
Selecionando dados
• O resultado de uma consulta é a relação composta pelas
linhas produzidas no processo.
SELECT au_sobrenome , au_nome
FROM autores
au_sobrenome au_nome
Albuquerque Fernando
Amado Jorge
Emerson Sandra
Fernando Albuquerque - fernando@cic.unb.br
Selecionando dados
n Seleção em SQL :
• Podem ser usados seis diferentes operadores de
comparação.
• Os valores a serem comparados incluem constantes e
atributos mencionados após FROM.
• Operadores aritméticos podem ser aplicados antes da
comparação.
• Resultado de uma comparação é TRUE ou FALSE e
podem ser combinados via AND, OR e NOT.
= igual < > diferente
< menor > maior
<= menor ou igual >= maior ou igual
Fernando Albuquerque - fernando@cic.unb.br
Selecionando dados
• A operação de seleção permite a recuperação de um sub-
conjunto de linhas em uma relação.
• Para se especificar as linhas desejadas são especificadas
condições no WHERE.
SELECT * 
FROM publishers
WHERE state = “CA”
Resultados :
pub_id pub_name addresscity state
1389 Algodata 3rd Dr. Berkeley CA
Fernando Albuquerque - fernando@cic.unb.br
Joining
n Operação join :
• A operação join atua sobre duas ou mais relações por vez.
• Os dados são combinados de modo a poderem ser
comparados e contrastados.
• Quando do join é como se as relações tivessem sido unidas
enquanto dura a consulta.
• A operação join combina dados comparando valores em
colunas especificadas.
• Através da operação evita-se que seja necessário colocar
todas as informações em uma mesma relação com o
conseqüente impacto em termos de performance e
eficiência.
Fernando Albuquerque - fernando@cic.unb.br
Joining
títulos editoras
id-titulo id-editora
titulo nome-editoratipo endereco
id-editora cidade
preço estado
contrato
data-pub
notas
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 operação de join é especificada
no WHERE.
• Operações de join são expressas implicitamente e não
explicitamente.
• Cada join é especificado em duas relações usando uma
coluna de cada relação.
SELECT lista_seleção
FROM relação_1 , relação_2 [ , relação_3 ] ...
WHERE [ relação_1.]coluna operador [relação_2.]coluna
Fernando Albuquerque - fernando@cic.unb.br
Views
n View :
• Uma view é uma representação alternativa dos dados em
uma ou mais relações e são chamadas de relações virtuais
ou relações derivadas.
• Os dados vistos através de uma view não são efetivamente
armazenados no banco de dados, a view não é uma cópia
dos dados em outra relação.
• O dicionário de dados armazena a definição de uma view.
• Quando a view é chamada pelo usuário, os dados
apropriados são 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 relação.
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 usuário tenha uma visão do
banco de dados que corresponda às suas necessidades.
• Através de views é possível adaptar um banco de dados de
modo a facilitar o trabalho de usuários com diferentes
interesses e níveis de treinamento.
• Cada usuário pode ter uma diferente visão embora esteja
acessando as mesmas relações.
n Removendo views :
DROP VIEW nome_view
Fernando Albuquerque - fernando@cic.unb.br
Uniões, interseções e diferenças
n Operação UNION :
• Forma de se combinar dados de múltiplas consultas.
• Útil quando deseja-se analisar dados similares de duas ou
mais relações.
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
Uniões, interseções e diferenças
n Operações 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 )

Continue navegando

Outros materiais