1
RevisãoBanco de Dados
Carlos Henrique - Aula 2Descoberta de Conhecimento
eMineração de Dados
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
2
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
Conceitos Básicos
n Definição–Um Banco de Dados é uma coleção de
dados relacionados. Onde dados significamfatos conhecidos que podem serarmazenados e que têm significadoimplícito.
n Exemplo–Nome, endereço e telefone das pessoas
que você conhece.
3
Conceitos Básicos (continuação)
n Propriedades Implícitas de BD–Representa algum aspecto do mundo real -
Mini mundo ou universo de Discurso(UdD). Mudanças no UdD são refletidas noBD.
–É uma coleção de dados logicamentecoerente.
–Modelado, construído e povoado comdados para uma proposta específica.
Conceitos Básicos (continuação)
Um Banco de Dados possui algumaorigem do qual os dados são derivados,
com algum grau de interação comeventos no mundo real cujo existe umgrupo de usuários com algum interesse
ativo no conteúdo da base
4
Conceitos Básicos (continuação)
n SGBD (DMBS) Sistema Gerenciador deBD–É uma coleção de de programas que
habilita usuários a criar e manter um BD.–Facilita o processo de definição, construção
e manipulação dos dados para váriasaplicações.
Conceitos Básicos (continuação)
n Definição–Especificar tipos de dados, estruturas e
restrições para os dados serem armazenadosno BD.
n Construção–Processo de armazenamento dos dados em
alguma mídia controlada pelo SGBD.n Manipulação
–Inclui funções de busca de dados específicos,atualizações refletidas pelo UdD e geração derelatório dos dados.
5
Conceitos Básicos (continuação)
Ambiente Simplificado do Sistema de BD
Programas de Aplicação/Queries
Software para processarQueries/Programas
Software para acessar Dados Armazenados
SGBDSOFTWARE
SISTEMABD
BDArmazenado
Meta-DadosDefinição
Usuários/Programadores
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
6
Características
n Definir o BD–LDD (Linguagem de Definição de Dados)
n Linguagem de Consultas–Queries–LMD (Linguagem de Manipulação de Dados)
n Suporte–Armazenamento, segurança (falhas) e acesso
eficienten Controle multi-usuário (coerência)
Características (continuação)
Uma característica fundamental daaproximação de BD é a que provê
algum nível de abstração escondendodetalhes de como os dados estão
armazenados, pois isso não interessapara a maioria dos usuários
7
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
Arquitetura Lógica de SGBDs
EE1 EE2 EEN
Esquema Conceitual
Esquema Interno
NÍVEIS DE ABSTRAÇÃO
Esquema Externo
8
Arquitetura Lógica de SGBDs(continuação)
EE1 EE2 EEN
Esquema Conceitual
Esquema Interno
NÍVEIS DE ABSTRAÇÃO
Esquema Externo
Visões do BDControles de Autorização
Arquitetura Lógica de SGBDs(continuação)
EE1 EE2 EEN
Esquema Conceitual
Esquema Interno
NÍVEIS DE ABSTRAÇÃO
Esquema Externo
Visualização de tabelas(não arquivos)
Relacionamentos
9
Arquitetura Lógica de SGBDs(continuação)
EE1 EE2 EEN
Esquema Conceitual
Esquema Interno
NÍVEIS DE ABSTRAÇÃO
Esquema Externo
Descrição física de como os dados estão armazenados
Arquitetura Lógica de SGBDs(continuação)
n Princípio de Independência–Física
n Mudanças no Esquema Interno não implicamem alterações no Esquema Conceitual.
–Lógican Mudanças no Esquema Conceitual não geram
alterações nos Esquemas Externos.
10
Arquitetura Lógica de SGBDs(continuação)
n Modelo de Dados–É um conjunto de conceitos que podem ser
usados para descrever a Estrutura de um BDn Estrutura
–Tipos de dados, relacionamentos e restriçõesque devem ser impostas aos dados
n Modelo Conceitual e Físico
Arquitetura Lógica de SGBDs(continuação)
n Modelo Conceitual–Utiliza conceito de Entidades, atributos e
relacionamentosn Entidade: Objeto ou conceito do mundo realn Atributo: Propriedade de interesse que descreve uma
entidaden Relacionamento: Interação entre 2 ou mais entidades
n Modelo Físico–Representa como os dados estão armazenados
no computador
11
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
Usuários Finais
n Casuais–Ocasionalmente acessam o BD–Necessitam de informações diferentes em
cada acesson “Naive”
–Usam queries enlatadas/Programasn Sofisticados
–Compreendem todas as funcionalidades do BD(DBA- DataBase Administrator)
–Programadores de Aplicações
12
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
MER - ModeloEntidade-Relacionamento
n Descreve dados como entidades,relacionamentos e atributos
n Usado como modelo conceitualn Não modela dadosn Exemplo de Diagrama E/R
13
Exemplo de Diagrama E/R
EMPREGADO DEPARTAMENTO
PROJETO
DEPENDENTE
SUPERVISONA
DataA
#Matr Nome
Sal
End
TRAB/PARA
GERENCIA
TRAB/NO
DEPEND/DE
CONTROLA1 N
1
N
M
N
1
N
N 1
1 1
NomeNum
Loc
Nome Num
Horas
DataIni
Nome Sexo DataA
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
14
Linguagens de Consultan LDD - Linguagens de Definição de
Dados–Estrutura do BD / Criar, Destruir e
Modificar tabelasn LMD - Linguagens de Manipulação de
Dados–Acesso aos dados / Consultar, Inserir,
Excluir e Atualizar dadosn DCL - Linguagem de Controle de Dados
–Define autorizações de privilégios
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
15
Linguagem SQL
n Structure Query Languagen Fundamentada em 1970 (Codd)n Padrão em BD relacionaisn Utilizada em linguagens hospedeiras -
Cobol, Pascal, C, Fortran, ...
Linguagem SQL (continuação)
n Algumas vantagens–Independência de fabricante–Portabilidade–Inglês estruturado (alto nível)–Consulta interativa
16
Linguagem SQL (continuação)
n Comandos/Instruções–Create Index
n cria um índice para a tabela–Create Table
n cria uma tabela, definindo colunas e outraspropriedades
–Create Viewn define uma visão sobre uma ou mais tabelas
e/ou sobre outras visões–Drop
n exclui uma tabela, índice de um BD
Linguagem SQL (continuação)
n Comandos/Instruções (continuação)
–Alter Tablen inclui ou redefine uma coluna numa tabela
–Deleten exclui linhas numa tabela
–Updaten Atualiza o valor de um ou mais atributos de uma tabela
–Insertn Inclui linhas numa tabela ou visão
–Selectn Seleciona linhas e colunas de uma tabela
17
Linguagem SQL (continuação)
n Comandos/Instruções (continuação)
–Grantn Atribui privilégios relativos a tabelas e visões
–Revoken Revoga privilégios relativos a tabelas e visões
–Commitn Efetiva as alterações completadas
–Rollbackn Desfaz qualquer alteração que ainda não foi
efetivada
Linguagem SQL (continuação)
n Create Table–Formato/Sintaxe
n Create Table <nome da tabela> (<descriçãodas colunas>, <descrição das chaves>);
–Exemplon Create Table Empregado (
CPF number (012) not null,Endereço varchar2(100) not null,Fax varchar2 (009) ,Constraint PK_Empregado Primary Key (CPF)) ;
18
Linguagem SQL (continuação)
n Alter Table–Formato/Sintaxe
n Alter Table <nome da tabela> Add/Modify(<descrição das colunas> | restrição, ...);
n Alter Table <nome da tabela> Drop Constraint<nome da restrição);
n Alter Table <nome da tabela> Drop PrimaryKey;
–Exemplon Alter Table Empregado Modify (
Endereço varchar2(200) null) ;
Linguagem SQL (continuação)
n Create Index–Formato/Sintaxe
n Create Index [Unique] <nome do índice> on<nome da tabela> (coluna1, coluna2, ...);
–Exemplon Create Unique Index IU_CPF on Empregado
(CPF) ;
19
Linguagem SQL (continuação)
n Drop Table–Formato/Sintaxe
n Drop Table <nome da tabela>;–Exemplo
n Drop Table Empregado;
Linguagem SQL (continuação)
n Select–Formato/Sintaxe
n Select <nome das colunas ou *>From <nome da tabela>[Where <restrições>][Group by <colunas>][Having <nome das colunas>][Order by <nome ou número das colunas>];
–Exemplon Select * From Empregado; /* mostra todos os
registros com todas as colunas da tabelaempregado */
20
Linguagem SQL (continuação)
n Select–Exemplo
n Select Nome, CPF, Salario, IdadeFrom EmpregadoWhere (Depto = ´ELE´ or Depto = ´INF´)and Salario > 500Group by IdadeHaving count(*) > 4Order by 1;
Linguagem SQL (continuação)
n Insert–Formato/Sintaxe
n Insert into <nome da tabela>[(coluna1, ..., colunan)]Values (valor1, ..., valorn);
–Exemplon Insert into Empregado (CPF, Nome)
Values (123456789-10, Fernanda);
21
Linguagem SQL (continuação)
n Update–Formato/Sintaxe
n Update <nome da tabela>Set coluna = expressãoWhere condição;
–Exemplon Update Empregado
Set Nome = “Joana”Where CPF = ´123456789-10´;
Linguagem SQL (continuação)
n Delete–Formato/Sintaxe
n Delete From <nome da tabela>[Where condição];
–Exemplon Delete From Empregado
Where Idade > 65;
n Truncate–Formato/Sintaxe
n Truncate Table <nome da tabela>;
22
Linguagem SQL (continuação)
n Recursos–Joins de tabelas
n Inner Joinn Outer Join
–Left–Right–Full
–Subqueries–Queries recursivas
Linguagem SQL (continuação)
n Inner Join–Select nome, depto
From Empregado E Inner JoinDepartamento DOn E.CodDepto = D.CodDeptoWhere ...
n Traz apenas as linhas que temcorrespondência nas duas tabelas
23
Linguagem SQL (continuação)
n Left Outer Join–Select nome, matricula, nome_dependente
From Empregado E Left Outer JoinDependente DOn E.Matricula = D.MatriculaWhere ...
n Traz apenas as linhas da tabela aesquerda mesmo que não existamlinhas que tem correspondência natabelas da direita
Linguagem SQL (continuação)
n Right Outer Join–Select nome, matricula, depto
From Empregado E Right Outer JoinDepartamento DOn E.CodDepto = D.CodDeptoWhere ...
n Traz apenas as linhas da tabela a direitamesmo que não existam linhas que temcorrespondência na tabelas da esquerda
24
Linguagem SQL (continuação)
n Full Outer Join–Select nome, matricula, depto
From Empregado E Full Outer JoinDepartamento DOn E.CodDepto = D.CodDeptoWhere ...
n Traz as linhas de qualquer uma dasduas tabelas mesmo que não existamlinhas que tem correspondência naoutra
Linguagem SQL (continuação)
n Subqueries–Select nome, matricula, depto
From Empregado EWhere exists(Select * From Dependente D WhereD.matricula = E.Matricula)
–Select nome, matricula, salarioFrom EmpregadoWhere salario >(Select avg(salario) From Empregado)
25
Linguagem SQL (continuação)
n Query Recursiva– With Gerenciados (nome, salario) As
(( Select nome, salarioFrom EmpregadosWhere gerente = “ Pedro”)Union all(Select E.nome, E.salarioFrom Gereciados G, Empregados EWhere E.gerente = G.nome))Select nome, salarioFrom GerenciadosWhere salario > 5000
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
26
Projeto de BDn Existem diversos modelos possíveis
–Evitar Redundância (Espaço)–Atualização inconsistente (Alterar em várias
tuplas)–Evitar Anomalias de Atualização
n Inclusãon Exclusão
n → Através de Dependências Funcionais,Formas Normais e Algoritmos deDecomposição
Tópicos Abordadosn Conceitos Básicosn Característicasn Arquitetura Lógican Usuários Finaisn Modelo E/Rn Linguagens de
Consultan Linguagem SQL
n Projeto de BDn Restrições de
Integridade
27
Restrições de Integridade
n Quanto a Estrutura (conceitual)–Chaves Primárias, Estrangeiras
n Quanto aos Dados–Domínio de valores dos atributos–Relação entre valores de atributos–Aspectos legais, regras
Restrições de Integridade(continuação)
n Referêncial–Chave estrangeira
n Semântica–Relacionado com a aplicação
n Salários positivos, > mínimo, < chefen Idade entre [0, 150]n Atributos percentuais somam 100%n Quanto aos Dados