Você está na página 1de 41

Prova Oral

FUNDAO BIO-RIO
CENTRO DE PESQUISAS DE ENERGIA ELTRICA -
CEPEL
Seleo Pblica CEPEL 2014
Tema #2: Modelagem de dados relacional e linguagem SQL.
Candidato: Felipe Vieira Duval
O que um banco de dados?
O que um banco de dados?
Banco
Local de estocagem, reserva de suplementos...
M i n i d i c i o n r i o L u f f
Dado
Aquilo que representa algo para algum
( P i e r c e , 1 9 9 5 ) ;
Banco de dados
Local de armazenamento daquilo que representa algo para
algum.
Modelagem de dados
relacional
Introduo
O modelo relacional representa o banco de dados como uma coleo
de relaes.

uma relao = uma tabela de valores

Cada linha representa uma coleo de valores de dados relacionados.

Conceitos do Modelo Relacional
Tuplas = linhas de uma relao (tabela)
Atributo = cabealho de cada coluna
Domnio = Conjunto de valores que pode aparecer em cada coluna

Retirado de Navathe, 2006
Os atributos e as tuplas de uma relao ALUNO
Caractersticas das Relaes
A ordenao de tupla no parte da definio de uma relao.
Retirado de Navathe, 2006
Relao ALUNO com uma ordenao diferente
Caractersticas das Relaes
Cada valor em uma tupla um valor atmico, isto , no divisvel
em componentes.
Valores nulls so usados para representar os valores de atributos que
podem ser desconhecidos ou no se aplicar a uma tupla.
Notao do Modelo Relacional
Um esquema de relao R de grau n indicado por R(A
1
,A
2
, ..., A
n
).
Conjunto de tuplas: r = {t
1
,t
2
, ..., t
m
} .
Uma n-tupla em uma relao r(R) indicada por t = <v
1
,v
2
, ..., v
n
>, em
que v
i
o valor correspondente ao atributo A
i
.
t[A
i
] refere-se ao valor v
i
em t do atributo A
i
.

Restries do Modelo Relacional
Restries de domnio
Especificam que, dentro de cada tupla, o valor de cada atributo A
deve ser um valor atmico do dom(A).

Restries do Modelo Relacional
Restries de chave
Por definio, todos os elementos de um conjunto so distintos, por isso todas as
tuplas da relao tambm devem ser distintas;
Um subconjunto de atributos SK de um esquema de relao R tal que:
para duas tuplas distintas quaisquer t1 e t2 de r(R)
t1[SK] t2[SK] uma superchave de R
Uma chave K de um esquema de relao R uma superchave de R, com a
propriedade adicional de, ao remover qualquer atributo A de K, o conjunto de
atributos K restantes no ser mais uma superchave de R.

{SSN, Nome, Idade} = superchave;

{SSN} = chave

Restries do Modelo Relacional
Restries de chave
Em geral, um esquema de relao pode ter mais de uma chave. Nesse
caso, cada uma das chaves candidatas.
comum indicar uma das chaves candidatas como chave primria.
Geralmente melhor optar por uma chave primria com um nico
atributo.
Restries do Modelo Relacional
Restries de chave
Retirado de Navathe, 2006
A relao CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi
Restries do Modelo Relacional
Restries em valores null
Especifica se valores null so ou no permitidos.
Por exemplo, se toda tupla de ALUNO tem um valor vlido, no nulo,
para o atributo Nome, ento Nome de ALUNO forado a ser NOT
NULL (no nulo).
Esquema de um Banco de Dados
Relacional
Um esquema de um banco de dados relacional S um conjunto de
esquemas da relao S={R
1
,R
2
, ..., R
m
} e um conjunto de restries de
integridade IC.
Esquema de um Banco de Dados
Relacional
Retirado de Navathe, 2006
Restrio de Integridade de Entidade
A restrio de integridade de Entidade estabelece que nenhum valor
chave primria pode ser null. Isso porque o valor da chave primria
usado para identificar as tuplas individuais em uma relao.
Restrio de Integridade Referencial
A restrio de integridade referencial classificada entre duas
relaes e usada para manter a consistncia entre as tuplas nas
duas relaes. Informalmente, a restrio de integridade referencial
declara que uma tupla em uma relao, que faz referncia a outra
relao, deve se referir a uma tupla existente nessa relao.
Restrio de Integridade Referencial
Retirado de Navathe, 2006
Restries de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA.
Restrio de Integridade Referencial
Um conjunto de atributos FK do esquema da relao R
1
uma chave
estrangeira de R
1
, que faz referncia relao R
2
, se ele satisfizer as
duas seguintes regras:
1. Os atributos de FK tm o(s) mesmo(s) domnios(s) que os atributos
da chave primria PK de R
2
; diz-se que os atributos de FK fazem
referncia ou se referem relao R
2
.
2. Um valor de FK em uma tupla t
1
a do estado corrente r
1
(R
1
) ou
ocorre como um valor de PK para alguma tupla t
2
no estado
corrente r
2
(R
2
) ou null.
Linguagem SQL
Structured Query Language
Introduo
A SQL uma linguagem de banco de dados abrangente: ela possui
comandos para definio de dados, consultas e atualizaes. Assim,
ela tem ambas:
Data Definition Language (DDL)
Data Manipulation Language (DML)

No case-sensitive.
Permite todas as operaes CRUD.


Comando CREATE TABLE
O comando CREATE TABLE usado para especificar uma nova relao,
dando-lhe um nome e especificando seus atributos e relaes
iniciais. As restries de chave, a integridade de entidade e a
integridade referencial podem ser especificadas dentro do comando
CREATE TABLE depois que os atributos forem declarados.
Comando para criao da tabela DEPARTAMENTO
Retirado de Navathe, 2006
Tipos de Dados de Atributos
Numricos
Inteiros: INT e SMALLINT
Reais: FLOAT ou REAL e DOUBLE PRECISION
Formatados: DECIMAL(i,j) ou NUMERIC(i,j),
i = preciso
j = escala
Caracteres
Tamanho fixo: CHAR(n) ou CHARACTER(n)
Tamanho varivel: VARCHAR(n) ou CHAR VARYNG(n)

Tipos de Dados de Atributos
Bit-string
Tamanho fixo: BIT(n)
Tamanho varivel: BIT VARYNG(n)
Booleano
Boolean: TRUE OR FALSE
Date e Time
Date: Possui 10 posies (YYYY-MM-DD)
Time: Possui no mnimo 8 posies (HH:MM:SS)


Tipos de Dados de Atributos
Timestamp
Timestamp: Engloba o DATE e TIME mais fraes decimais de
segundos
Interval
Interval: Para incrementar/decrementar DATE, TIME e TIMESTAMP

Restrio de Atributos e Padres
A restrio NOT NULL pode ser especificada se o NULL no for
permitido para um dado atributo.
possvel definir um valor default para um atributo com a clusula
DEFAULT <valor>
Retirado de Navathe, 2006
Restries de Chave e de Integridade
Referencial
A clusula PRIMARY KEY especifica um mais atributos que definem a
chave primria.
A integridade referencial especfica pela clusula FOREING KEY.
A clusula UNIQUE define as chaves candidatas.
Denominando as Restries
A palavra CONSTRAINT serve para nomear uma restrio.
Comandos para Alteraes de Esquema
SQL
DROP - O comando DROP serve para eliminar elementos.
DROP TABLE DEPENDENTE;

ALTER O comando ALTER serve para alterar definies de elementos.
ALTER TABLE EMPRESA.EMPREGADO ADD FUNCAO VARCHAR(12);
ALTER TABLE EMPRESA.EMPREGADO DROP ENDERECO;
ALTER TABLE EMPRESA.EMPREGADO ALTER GERSSN SET DEFAULT 1;
Consultas Bsicas
O formato bsico da declarao SELECT, composto de trs clusulas:
SELECT, FROM e WHERE, e tem a seguinte forma:
SELECT <lista de atributos>
FROM <lista de tabelas>
WHERE <condicao>;
em que
<lista de atributos> uma lista de nomes de atributos.
<lista de tabelas> a lista dos nomes das tabelas da consulta.
<condicao> uma expresso condicional (booleana) que identifica as
tuplas que sero recuperadas pela consulta.



Consultas Bsicas


SELECT PNOME, UNOME, ENDERECO
FROM EMPREGADO, DEPARTAMENTO
WHERE DNOME=Pesquisa AND DNUMERO=DNO;



Clusula WHERE Ausente
A clusula WHERE opcional na consulta.

SELECT SSN
FROM EMPREGADO;



Uso do Asterisco
O (*) significa selecionar todos os atributos.

SELECT *
FROM EMPREGADO
WHERE DNO=5;

Comparaes entre SubStrings
O operador LIKE pode ser usado para comparaes de padres de
cadeias. As partes de cadeias podem ser especificadas usando-se dois
caracteres reservados.
% substitui um nmero arbitrrio entre zero ou mais caracteres
_ substitui um nico caractere.

SELECT PNOME, LNOME
FROM EMPREGADO
WHERE ENDERECO LIKE %Houston% OR DATANASC LIKE __02;


Ordenando o Resultado das Consultas
A SQL permite ordenar as tuplas do resultado de uma consulta
usando a clusula ORDER BY;
A ordenao default ascendente;
Para usar a ordem descendente usa-se a palavra DESC.

SELECT DNOME,UNOME,PNOME
FROM DEPARTAMENTO,EMPREGADO
WHERE DNUMERO=DNO AND SSN=ESSN
ORDER BY DNOME;

Comando INSERT
O INSERT usado para adicionar uma ou mais tuplas em uma relao.
Forma mais simples
INSERT INTO EMPREGADO VALUES ('Richard', 'K', 'Marini',
'653298653', '1962-12-30', '98 OakForest,Katy,TX', 'M', 37000,
'987654321', 4);
Especificando os nomes dos atributos
INSERT INTO EMPREGADO (PNOME, UNOME, DNO, SSN) VALUES
('Richard', 'Marini', 4, '653298653');
Comando DELETE
O comando DELETE remove TUPLAS de uma relao.

DELETE FROM EMPREGADO
WHERE UNOME=Brown;

DELETE FROM EMPREGADO
WHERE SSN=123456789;

Comando UPDATE
O comando UPDATE usado para modificar valores dos atributos de
uma ou mais tuplas.

UPDATE PROJETO
SET DNUM = 5
WHERE PNUMERO = 10;
Obrigado


Referncias

Livro: Sistemas de Banco de Dados 4 edio
Autor: Navathe
Editora: Pearson