04 - banco de dados - viniciuspadua.com.br · estrutura do banco de dados • campo ou coluna –...
Post on 24-Jan-2019
213 Views
Preview:
TRANSCRIPT
ViníciusPádua
Introdução
• Paraqueserveumarquivo?– Salvar,atualizar,recuperar,...
• AplicativoseArquivos– Utilizamparasalvarosdadosmesmoapósoprogramafechar
– Estruturadearquivosédefinidaepadronizadanoprópriocódigodoaplicativopeloprogramador
– Compartilhamentodeumarquivoporváriosprogramasapresentadificuldades
3
ViníciusPádua
BancodeDados
• Características– Diminuiçãodoesforçohumanonodesenvolvimento– Rapideznoacessoàsinformações– Reduçãodeproblemasdeintegridadeeredundância– Utilizaçãodosdadosecontroleintegradodeinformaçõesdistribuídasfisicamente.
4
ViníciusPádua
BancodeDados
• Definição– Coleçãodedadosrelacionados.– Fatosconhecidosquepodemserregistradosepossuemsignificadoimplícito.
– Representaalgumaspectodomundoreal.– Coleçãologicamentecoerentededadoscomalgumsignificadoinerente.
– Construídoparaumafinalidadeespecífica.
ViníciusPádua
SGBD
• SistemaGerenciadordeBancodeDadoséumconjuntodeprogramaseferramentasutilizadasparaconfigurar,atualizaremanterumbancodedados.– Recursosparaadministrarusuários/permissões– Recursosparacriar/alterartabelasebancodedados– Recursosparabackuperestauraçãodedados– Recursosparaotimizaraperformancedobanco(replicação)
ViníciusPádua
EstruturadoBancodeDados• Organizaçãoemtabelas(linhasecolunas)
TabelaCliente
• PontosImportantes– Campos,chave,índices
ViníciusPádua
EstruturadoBancodeDados
• CAMPOouColuna– Menordivisãodeumatabelapermitearmazenar umtipoespecíficodeinformação
Jose
3341-1555
ze@ig.com
Nome
Fone
Nome Fone EmailJosé 3341-1555 ze@ig.comMaria 3232-1258 ma@g.com
Tipo Exemplos
NúmeroInteiro int,smallint,byte, ...
NúmeroReal Float,numeric
Texto Char,varchar,text,...
DataeHora Datetime
ViníciusPádua
TabelaFuncionário
Campo Tipo
Codigo
Qualserá otipodedadosparacada
campo?
Nome
Cpf
Endereco
Telefone
Dt_nascimento
Num_filhos
TabelaFuncionário
Campo Tipo
Codigo Int
Nome Char(100)
Cpf Char(11)
Endereco Char(200)
Telefone Char(9)
Dt_nascimento Datetime
Num_filhos int
EstruturadoBancodeDados
• CAMPO
Paraqueserve?
ViníciusPádua
EstruturadoBancodeDados• ChavePrimária
– Identificadeformaúnicaoregistroemtodaatabela– Bancodedadosgarante
• Nãoexistiraduaschavesprimáriasiguaisnamesmatabela• Nãopoderáserinseridosemserinformado(NULL)
– Restriçãodeintegridade
Código Nome Fone Email
123 José 3341-1555 ze@ig.com125 Maria 3232-1258 ma@g.com
Código Nome Fone Email
123 José 3341-1555 ze@ig.com123 Maria 3232-1258 ma@g.com
Carla 1235-987
ViníciusPádua
EstruturadoBancodeDados
• Índice– Mesmaideiadeumalistatelefônica– Formaparaacelerarasconsultas– Deixaatabelaordenada
Código Nome Fone Email
123 José 3341-1555 ze@ig.com125 Maria 3232-1258 ma@g.com
Colunacomíndice
ViníciusPádua
BancodeDados
• LinguagensparaBancodeDados– SelecionaremanipulardadosespecíficosdoBanco,aumentandosuautilidadeeflexibilidade
– LinguagemSQL• Tipos– LinguagemdeDefiniçãodeDados- DDL– LinguagemdeManipulaçãodeDados- DML
– Linguagemdearmazenamento– SDL• StorageDefinition Language
– LinguagemdeVisão– VDL• View Definition Language
ViníciusPádua
BancodeDados- Linguagem
• LinguagemdeManipulaçãodeDados– DML– Inserção insert– Alteração update– Exclusão delete– Consulta select
• LinguagemdeDefiniçãodeDados– DDL– Criaçãodetabela create table– Alteraçãodetabela alter table– Exclusãodetabela drop table
ComandoSQL
ComandoSQL
ViníciusPádua
BancodeDados- Linguagem
• LinguagemdeConsulta– UsamosalinguagemdeconsultaparaselecionaremanipulardadosespecíficosdoBanco
– Formato:Select camposfrom tabelawhere filtros– Exemplo1– SelecionartodososdadosSelect funcionario.codigo,funcionario.nomeFrom funcionario
TabelaFuncionário
Campo Tipo
Codigo int
Nome char(100)
Telefone Char(9)
email Char(500
Código Nome123 José125 Maria126 Carla127 João128 Joana129 Josefa
ViníciusPádua
BancodeDados- Linguagem
• Exemplo2– Listaronomedequemtemocódigomaioreigualque127
select funcionario.nomefrom funcionariowhere funcionario.codigo >=127
Nome
João
Joana
Josefa
TabelaFuncionário
Campo Tipo
Codigo int
Nome char(100)
Telefone Char(9)
email Char(500
ViníciusPádua
BancodeDados
• Comofaremosatabelaparaarmazenasasmatriculasdosalunos?
• Relacionamento– Sãoasligaçõesentrecampos,detabelasdiferentes– Servepara“ligar”osdadosentreastabelas
TabelaAluno
Código Nome Fone Email
123 José 3341-1555 ze@ig.com125 Maria 3232-1258 ma@g.com
ViníciusPádua
TabelaMatricula
Código CodAluno CodCurso Data
BancodeDados- RelacionamentoTabelaAluno
Código Nome Fone Email
123 José 3341-1555 ze@ig.com125 Maria 3232-1258 ma@g.com
126 Pedro 3232-7985 as@g.com
127 João 3231-8756 jo@g.com
128 Mara 9432-8723 ma@g.com
TabelaMatricula
Código CodAluno CodCurso Data
401 123 756 01/01/2016402 128 985 02/01/2016
403 125 985 01/01/2016
404 127 987 05/01/2016
TabelaCurso
Código Nome
985 Sistemas987 Engenharia
874 Medicina
756 Direito
ViníciusPádua
BancodeDados- Normalização• Vocêdesejafazerumbancodedadosquearmazenasas
informaçõesdeumavenda.Comoconstruiriasua(s)tabela(s)?– Códigodocliente,nomedocliente,endereçodocliente,
númerodavenda,datadavenda,códigoproduto,nomedoproduto,quantidade,valor
CodCli NmCli EndCli numVend DtVenda CodProd NmProd Qtd Valor
1 João Rua12 123 01/01/2016 100 Pedra 15 8,50
1 João Rua12 123 01/01/2016 101 Madeira 10 12,00
1 João Rua12 123 01/01/2016 102 Ferro 20 15,25
2 Maria Av 41 124 05/01/2016 100 Pedra 12 8,50
2 Maria Av 41 124 05/01/2016 102 Ferro 8 15,25
ViníciusPádua
BancodeDados- Normalização
• Fazerastabelas“corretas”semredundância• RegrasdeNormalização– 1º- Todososatributosdevemseratômicos(individíveis)– 2º- Todososcamposdevemdependerdachaveprimária
ViníciusPádua
BancodeDados- NormalizaçãoCodCli NmCli EndCli numVend DtVenda CodProd NmProd Qtd Valor
1 João Rua12 123 01/01/2016 100 Pedra 15 8,501 João Rua12 123 01/01/2016 101 Madeira 10 12,001 João Rua12 123 01/01/2016 102 Ferro 20 15,252 Maria Av 41 124 05/01/2016 100 Pedra 12 8,502 Maria Av 41 124 05/01/2016 102 Ferro 8 15,25
TabelaCliente
CodCli NmCli Rua Bairro
1 João Rua12 Vila2 Maria Av 41 Vila
TabelaProduto
CodProd NmProd Valor
100 Pedra 8,50101 Madeira 12,00
102 Ferro 15,25
TabelaVenda
NumVend CodCli dtVenda
123 1 01/01/2016124 2 05/01/2016
TabelaItemVenda
NumVend CodProd Qtd
123 100 15123 101 10
123 102 20
124 100 12
124 102 8
top related