Arquivo e Ger. Banco de
Dados
Professor:
Leonardo Melo de Medeiros
Objetivos
Revisão de Normalização
Cláusula Select
Cláusula From
Cláusula Where
Normalização dos Dados
A normalização de dados é uma série
de passos que se segue no projeto de um banco de dados que permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados relacional.
Esses passos reduzem a redundância de
dados e as chances dos dados se tornarem inconsistentes.
Consultas e a
Normalização
No entanto, muitas SGBDs relacionais não
têm separação suficiente entre o projeto lógico da base de dados e a
implementação física do banco de dados, e isso tem como conseqüência que as
consultas feitas a um banco de dados totalmente normalizado têm um mau desempenho.
Nestes casos, usa-se por vezes a desnormalização para melhorar o
desempenho, com o custo de menores garantias de consistência.
Primeira Forma Normal
(1FN)
Uma variável de relação está na 1FN se
e somente se, em todo valor válido dessa variável de relação, cada tupla
contém exatamente um valor para cada atributo.
As redundância dessa normalização
levam a variedade daquelas, que por razões históricas, se costumam chamar de anomalias de atualização.
Segunda Forma Normal
(2FN)
Apenas uma chave candidata que
consideraremos de
chave-primária): uma variável está na
2FN se e somente se ela está na
1FN e todo atributo não-chave é
irredutivelmente dependente da
chave-primária.
Terceira forma normal
(3FN)
Uma variável de relação está na
3FN se e somente se os atributos não-chaves (se existem) são: Mutuamente independentes. Irredutivelmente dependentes da chave primária. Ex. id_pec
Terminologia Usada
Tabela (relação) o um conjunto de linhas, ou um conjunto de listas de valores, uma
“relação”.
Coluna (atributo)
Semelhante à campo de um registro;
Cada coluna em cada linha tem apenas um conteúdo; Cada coluna é só de um tipo de dados.
Linha (dupla)
Análogo a um registro de um arquivo;
Todas linhas de uma tabela tem o mesmo conjunto de colunas.
Chave Primária (Primary Key)
Uma ou mais colunas com valores que são únicos dentro da tabela
e por isso podem ser usados para identificar as linhas dessa tabela.
Domínio
Tabelas
Modelo Relacional
Num BD relacional todos os dados
estão em tabelas;
A tabela mantém dados relacionados
a urna determinada classe de objetos.
Tabelas são feitas de linhas e
colunas
o Existe somente um valor de dado
Acessando os dados /
Chaves primárias
O nome da tabela, nome da coluna
e linha determinam um ítem de
dado;
Cada linha pode ser acessada por
uma única Chave Primária;
Em cada linha, alguma coluna ou
grupo de colunas identificam a
linha
Usando SQL e as Chaves
Primárias e Estrangeiras
Percebam, que ao termos nossas
tabelas normalizadas. Iremos fazer
uso das chaves primárias para
termos a unicidade do registro.
Usaremos as chaves estrangeiras
para fazermos o relacionamento
entre as diferentes tabelas.
Escrevendo Instruções
SQL
Instruções SQL não são case sensitive
Instruções SQL podem estar em uma ou
mais linhas
Palavras chaves não podem ser
abreviadas ou quebradas em várias linhas
Geralmente cláusulas são colocadas em
linhas separadas
Pode-se utilizar indentação para melhorar
O Comando SELECT
Seleção: pode-se utilizar as capacidades de
seleção para definir as colunas retornadas de uma tabela através de uma consulta. Pode-se utilizar vários critérios de seletividade para restringir as linhas retornadas
Projeção: pode-se utilizar as capacidades de
projeção para definir quais colunas devem ser retornadas por uma consulta.
Join: pode-se utilizar as capacidades de join
para buscar dados de mais de uma tabela criando-se um link entre as tabelas
Recuperação de Dados de
um BD
select, especifica a coluna que
você quer recuperar;
from, específica a tabela ou as
tabelas das quais você deseja
recuperar dados.
where, cláusula que determina
exatamente que linhas devem ser
recuperadas.
Comando SQL Básico
SELECT {*, coluna [alias], ...} FROM tabela;
SELECT: identifica quais colunas • *: seleciona todas as colunas • alias: dá as colunas diferentes
cabeçalhos
Modelagem da Aplicação
Clínica
Selecionar todas as
Colunas
(Lista todas as informações da
tabela medico).
Selecionar uma Coluna
select nome
from medico
Selecionando Mais de uma
Coluna
Mais de uma coluna
Colunas separadas por vírgula
select nome, sobrenome
Reoordenando colunas
Reordenando colunas
A ordem das colunas no comando
select determina a ordem em que
as colunas aparecerão no
Linhas Duplicadas
O modo que as colunas são retornadas por default, traz
colunas com valores duplicados SELECT deptno
FROM emp;
Para eliminar a duplicidade deve-se utilizar a palavra
chave DISTINCT na cláusula SELECT SELECT DISTINCT deptno
FROM emp;
Pode-se especificar várias colunas após o distinct, e
este afetará todas as colunas selecionadas. O resultado representa o um valor distinto para a combinação de colunas
Eliminando Duplicações
Distinct: palavra chave que elimina
colunas duplicadas na saída
Sintaxe simplificada:
o select [ distinct ]
lista_do_select
Ex. Distinct
select state
from stores
(Lista os estados da tabela stores)
Select distinct state
From stores
(Lista uma ocorrência para cada estado
Recuperação qualificada –
Select / From / Where
where: cláusula que determina
exatamente que linhas devem ser
recuperadas.
select lista_do_select
from lista_de_tabelas
Condições na cláusula
where
Operadores de comparação (=,>,<);
o Intervalos (between and not between); o Caracteres semelhantes (like and not
like);
o Valores desconhecidos (is null and is not
null);
o Listas(in and not in); o Combinações (and,or).
Select sem Cláusula
Where
select *
Select com Clásula Where
select *
from Paciente
Ex. Consulta com WHERE
Consulta que exibe todas as consultas
realizadas pelos médicos e seus respectivos pacientes
SELECT Consulta.Data, Consulta.FoiRealizada,
Medico.Nome NomeMedico, Paciente.Nome NomePaciente
FROM CONSULTA, MEDICO, PACIENTE
WHERE consulta.Id_Medico = medico.id_medico
and consulta.Id_Paciente = paciente.id_paciente