22
BANCO DE DADOS Vinícius Pádua

04 - Banco de Dados - viniciuspadua.com.br · Estrutura do Banco de Dados • CAMPO ou Coluna – Menor divisão de uma tabela permite armazenar um tipo específico de informação

  • Upload
    lekhue

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

BANCO DE DADOS

Vinícius Pádua

ViníciusPádua

OqueéBancodeDados?

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

AlgunsSGBDs

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

[email protected]

Nome

Fone

Email

Nome Fone EmailJosé 3341-1555 [email protected] 3232-1258 [email protected]

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 [email protected] Maria 3232-1258 [email protected]

Código Nome Fone Email

123 José 3341-1555 [email protected] Maria 3232-1258 [email protected]

Carla 1235-987

ViníciusPádua

EstruturadoBancodeDados

• Índice– Mesmaideiadeumalistatelefônica– Formaparaacelerarasconsultas– Deixaatabelaordenada

Código Nome Fone Email

123 José 3341-1555 [email protected] Maria 3232-1258 [email protected]

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 [email protected] Maria 3232-1258 [email protected]

ViníciusPádua

TabelaMatricula

Código CodAluno CodCurso Data

BancodeDados- RelacionamentoTabelaAluno

Código Nome Fone Email

123 José 3341-1555 [email protected] Maria 3232-1258 [email protected]

126 Pedro 3232-7985 [email protected]

127 João 3231-8756 [email protected]

128 Mara 9432-8723 [email protected]

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

ViníciusPádua 22