BANCO DE DADOS
O que é Banco de Dados?
Introdução Para que serve um arquivo? Salvar, atualizar, recuperar,... Aplicativos e Arquivos Utilizam para salvar os dados mesmo após o programa fechar Estrutura de arquivos é definida e padronizada no próprio código do aplicativo pelo programador Compartilhamento de um arquivo por vários programas apresenta dificuldades 3
Banco de Dados Características Diminuição do esforço humano no desenvolvimento Rapidez no acesso às informações Redução de problemas de integridade e redundância Utilização dos dados e controle integrado de informações distribuídas fisicamente. 4
Banco de Dados Definição Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito. Representa algum aspecto do mundo real. Coleção logicamente coerente de dados com algum significado inerente. Construído para uma finalidade específica.
SGBD Sistema Gerenciador de Banco de Dados é um conjunto de programas e ferramentas utilizadas para configurar, atualizar e manter um banco de dados. Recursos para administrar usuários/permissões Recursos para criar/alterar tabelas e banco de dados Recursos para backup e restauração de dados Recursos para otimizar a performance do banco (replicação)
Alguns SGBDs
Estrutura do Banco de Dados Organização em tabelas (linhas e colunas) Tabela Cliente Pontos Importantes Campos, chave, índices
Estrutura do Banco de Dados CAMPO ou Coluna Menor divisão de uma tabela permite armazenar um tipo específico de informação Jose Nome Fone Email José 3341-1555 ze@ig.com Maria 3232-1258 ma@g.com 3341-1555 Nome Fone Tipo Exemplos Número Inteiro int, smallint, byte,... Número Real Float, numeric Texto Char, varchar, text,... Data e Hora Datetime ze@ig.com Email
Estrutura do Banco de Dados CAMPO Para que serve? Tabela Funcionário Campo Tipo Codigo Int Nome Char(100) Cpf Qual será Char(11) o tipo de Endereco dados Char(200) para cada Telefone campo? Char(9) Dt_nascimento Datetime Num_filhos int
Estrutura do Banco de Dados Chave Primária Identifica de forma única o registro em toda a tabela Banco de dados garante Não existira duas chaves primárias iguais na mesma tabela Não poderá ser inserido sem ser informado (NULL) Restrição de integridade Código Nome Fone Email 123 José 3341-1555 ze@ig.com 125 Maria 3232-1258 ma@g.com Código Nome Fone Email 123 José 3341-1555 ze@ig.com 123 Maria 3232-1258 ma@g.com Carla 1235-987
Estrutura do Banco de Dados Índice Mesma ideia de uma lista telefônica Forma para acelerar as consultas Deixa a tabela ordenada Código Nome Fone Email 123 José 3341-1555 ze@ig.com 125 Maria 3232-1258 ma@g.com Coluna com índice
Banco de Dados Linguagens para Banco de Dados Selecionar e manipular dados específicos do Banco, aumentando sua utilidade e flexibilidade Linguagem SQL Tipos Linguagem de Definição de Dados - DDL Linguagem de Manipulação de Dados - DML Linguagem de armazenamento SDL Storage Definition Language Linguagem de Visão VDL View Definition Language
Banco de Dados - Linguagem Linguagem de Manipulação de Dados DML Inserção insert Alteração update Exclusão delete Consulta select Linguagem de Definição de Dados DDL Criação de tabela create table Alteração de tabela alter table Exclusão de tabela drop table Comando SQL Comando SQL
Banco de Dados - Linguagem Linguagem de Consulta Usamos a linguagem de consulta para selecionar e manipular dados específicos do Banco Formato: Select campos from tabela where filtros Exemplo 1 Selecionar todos os dados Select funcionario.codigo, funcionario.nome From funcionario Código Nome 123 José 125 Maria 126 Carla 127 João 128 Joana 129 Josefa Tabela Funcionário Campo Codigo Nome Telefone email Tipo int char(100) Char(9) Char(500
Banco de Dados - Linguagem Exemplo 2 Listar o nome de quem tem o código maior e igual que 127 select funcionario.nome from funcionario where funcionario.codigo >= 127 Nome João Joana Josefa Tabela Funcionário Campo Codigo Nome Telefone email Tipo int char(100) Char(9) Char(500
Banco de Dados Como faremos a tabela para armazenas as matriculas dos alunos? Relacionamento São as ligações entre campos, de tabelas diferentes Serve para ligar os dados entre as tabelas Tabela Aluno Código Nome Fone Email 123 José 3341-1555 ze@ig.com 125 Maria 3232-1258 ma@g.com
Banco de Dados - Relacionamento Tabela Aluno Código Nome Fone Email 123 José 3341-1555 ze@ig.com 125 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 Tabela Matricula Tabela Curso Código Nome 985 Sistemas 987 Engenharia 874 Medicina 756 Direito Código CodAluno CodCurso Data 401 123 756 01/01/2016 402 128 985 02/01/2016 403 125 985 01/01/2016 404 127 987 05/01/2016
Banco de Dados - Normalização Você deseja fazer um banco de dados que armazenas as informações de uma venda. Como construiria sua(s) tabela(s)? Código do cliente, nome do cliente, endereço do cliente, número da venda, data da venda, código produto, nome do produto, quantidade, valor CodCli NmCli EndCli numvend DtVenda CodProd NmProd Qtd Valor 1 João Rua 12 123 01/01/2016 100 Pedra 15 8,50 1 João Rua 12 123 01/01/2016 101 Madeira 10 12,00 1 João Rua 12 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
Banco de Dados - Normalização Fazer as tabelas corretas sem redundância Regras de Normalização 1º - Todos os atributos devem ser atômicos (individíveis) 2º - Todos os campos devem depender da chave primária
CodCli NmCli EndCli numvend DtVenda CodProd NmProd Qtd Valor 1 João Rua 12 123 01/01/2016 100 Pedra 15 8,50 Banco de Dados - Normalização 1 João Rua 12 123 01/01/2016 101 Madeira 10 12,00 1 João Rua 12 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 Tabela Cliente CodCli NmCli Rua Bairro 1 João Rua 12 Vila 2 Maria Av 41 Vila Tabela Venda NumVend CodCli dtvenda 123 1 01/01/2016 124 2 05/01/2016 Tabela ItemVenda Tabela Produto CodProd NmProd Valor 100 Pedra 8,50 101 Madeira 12,00 102 Ferro 15,25 NumVend CodProd Qtd 123 100 15 123 101 10 123 102 20 124 100 12 124 102 8
22