Introdução a Bancos de Dados

Documentos relacionados
Introdução a Bancos de Dados. - Conceitos - Modelos lógicos e relacional - Álgebra relacional -SQL - Projeto Lógico

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Capítulo 1 INTRODUÇÃO A BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS

Sistemas de Arquivos Convencionais

Comandos de Manipulação

ANÁLISE E PROJETO DE BANCO DE DADOS

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

O Modelo e a Álgebra Relacional

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Álgebra Relacional e SQL

SQL. Prof. Roger Cristhian Gomes

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Revisando Banco de Dados. Modelo Relacional

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Aula 2 BD Introdução. Profa. Elaine Faria UFU

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Revisão de Bancos de Dados

mod._1_teoria_sistemas de bancos de dados.doc

Banco de Dados Relacional

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Bancos (Bases) de Dados

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

Curso: Banco de Dados I. Conceitos Iniciais

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

BANCO DE DADOS. Araújo Lima. Jan / Araújo

SQL Linguagem de Definição de Dados

Sistemas de Banco de Dados

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

A linguagem SQL

Conceitos de Sistemas de Banco de Dados INE 5323

Banco de Dados I 3 Modelagem de Dados Lógico e Físico

Prof. Marcelo Machado Cunha

A U L A 1 I N T R O D U Ç Ã O A B A N C O D E D A D O S E V I S Ã O G E R A L D O S Q L

SQL-99: Esquema de BD EMPRESA

MATA60 BANCO DE DADOS Aula 5- Modelo Relacional. Prof. Daniela Barreiro Claro

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

BANCO DE DADOS. Araújo Lima. Fev / Araújo

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Prof. Luiz Fernando. Unidade I ADMINISTRAÇÃO

Aula 01 Conceito de Banco de Dados e SGBD

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

T U T O R I A L BANCO DE DADOS GEOGRÁFICOS. ID no va BR INPE. Junho de 2002 INPE

Professor Eros Moura, DSc

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Introdução às Bases de Dados

Banco de Dados. Maurício Edgar Stivanello

Marcelo Henrique dos Santos

Introdução. O que é um Banco de Dados (BD)?

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

MODELO DE BANCO DE DADOS RELACIONAL

SQL DDL. Frederico D. Bortoloti

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

Korth Silberschatz Sundarshan. Sistema de Banco de Dados, 5/E

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Faculdade Ieducare 4º Semestre Sistemas de Informação Professor: Rhyan Ximenes

SQL Structured Query Language

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Banco de Dados I. Sejam bem-vindos! Prof. Fred Lucena. 1

Modelagem Conceitual parte I

MODELAGEM DE DADOS UNIDADE 1 Visão Geral. Luiz Leão

BANCO DE DADOS. Introdução. Prof. Marcelo Machado Cunha

Introdução ao SQL. Aécio Costa

Linguagem de Consulta Estruturada SQL- DML

Structured Query Language (SQL)

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

INTRODUÇÃO AO MODELO RELACIONAL

Modelo Relacional. Josino Rodrigues

ÁLGEBRA E CÁLCULO RELACIONAL

BANCO DE DADOS I Atualizado em 13 de maio de 2009

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

NORMALIZAÇÃO. Lílian Simão Oliveira

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Linguagem de Consulta - SQL

Exercícios de Lógica Exercícios de Fixação 08

LISTA DE EXERCÍCIOS TEORIA DE BANCO DE DADOS

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Transcrição:

Introdução a Bancos de Dados - Conceitos - Modelos lógicos e relacional - Álgebra relacional - SQL - Projeto Lógico INPE - Divisão de Processamento de Imagens INPE 1

Sistemas de Banco de Dados Definição: Coleção de dados inter-relacionados e procedimentos para se acessar estes dados. A adição de novo (vazios) arquivos ao banco de dados; A inserção de novos dados nos arquivos existentes; A recuperação de dados dos arquivos existentes; A atualização de dados nos arquivos existentes; A eliminação de dados nos arquivos existentes; A remoção permanente de arquivos existentes no Banco de Dados (BD). Banco de Dados: Introdução 2

Sistemas de Banco de Dados Tabelas Nome Função Salário Admissão Carga_horária Paulo César Instrutor 1.050 01/04/1996 20 Maria Aparecida Mecânico 720 22/05/1995 40 Carlos Alberto Motorista 500 30/03/2000 35 Linhas - registros da tabela. Colunas - campos destes registros - descrevem um atributos qualquer da tabela. Banco de Dados: Introdução 3

Componentes de Sistemas de BD Dados Hardware Software Usuários Banco de Dados: Introdução 4

Dadosados Componentes de Sistemas de BD Armazenados em pequenos ou grandes computadores, os quais podem ser manipulados por usuário único ou usuários múltiplos integrados compartilhados Banco de Dados: Introdução 5

Dadosados Componentes de Sistemas de BD integrados X compartilhados ID Rótulo Área Tipo Cod_Proprietário IPTU 1 L00120 345.30 A 4544.31 2 L00134 395.15 A 624.475.628-35 3564.50 3 L00233 385.60 A 574.46 4 L00567 365.75 B 524.455.528-48 3584.56 5 L00456 325.45 B 224.435.324-46 1594.80 6 L00720 615.49 A 2514.06 Cod_Proprietário Nome salario 624.475.628-35 Marcos 800 524.455.528-48 Antonio 2.000 224.435.324-46 Tadeu 3.000 Banco de Dados: Introdução 6

Hardware Componentes de Sistemas de BD Volumes de memória secundária (dados) Dispositivos de (E/S) Dispositivos de controle O maior objetivo quanto ao desempenho de sistemas de banco de dados é minimizar o número de acessos a disco (entradas/saídas de disco) Banco de Dados: Introdução 7

Software Componentes de Sistemas de BD Entre os dados e os usuários está o Sistema Gerenciador de Banco de Dados (SGBD). Responsável pela criação de arquivos (tabelas), inserção de dados, recuperação de dados, etc Suporta as operações do usuário (uma consulta em SQL) Banco de Dados: Introdução 8

Usuáriossuários Componentes de Sistemas de BD Programador de Aplicações Usuário Final Administrador do Banco de Dados - controle centralizado para: reduzir a redundância dos dados; evitar a inconsistência até certo ponto; compartilhar os dados; reforçar os padrões; aplicar restrições de segurança; manter a integridade; equilibrar as necessidades conflitantes; garantir a independência dos dados. Banco de Dados: Introdução 9

Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição: Coleção de dados inter-relacionados e procedimentos para se acessar estes dados. Objetivo: Uso eficiente para armazenamento e recuperação dos dados. Ex: Oracle, Access, Informix, CodeBase, etc. Banco de Dados: Introdução 10

Sistemas de Arquivos Convencionais Características: vários arquivos, diferentes programas para recuperar informações. Desvantagens: redundância e possível inconsistência de dados dificuldade para se acessar informação (programa pode não estar disponível) inconsistência devido a acesso de multi-usuários problemas de segurança Banco de Dados: Introdução 11

Visão Abstratas dos Dados em BD Nível físico: nível mais baixo de abstração descreve como os dados estão armazenados Nível lógico: descreve dados e relacionamentos entre os mesmos Nível de usuário: diferentes visões dos dados (não todos os atributos) Banco de Dados: Introdução 12

Outros conceitos em BD Instância de BD: coleção de informações armazenadas em um determinado momento Esquema de BD: projeto geral do banco de dados (esquemas físico, lógico e sub-esquemas) Independência de dados: física: modificações no esquema físico não acarretam alterações nos programas de aplicação lógica: modificações no esquema lógico não acarretam alterações nos programas de aplicação Banco de Dados: Introdução 13

Modelos Lógicos de Dados Modelos baseados em objetos Modelo Entidade-Relacionamento (E-R) Modelos orientados a objetos Modelos baseados em registros Modelo relacional Modelo de redes Modelo de hierárquico Banco de Dados: Introdução 14

Modelos Lógicos de Dados Modelos baseados em objetos Modelo Entidade-Relacionamento (E-R): conjunto de entidades conjunto de relacionamentos atributos Entidades: coisas ou objetos do mundo real (empréstimo, pessoa) representada por um conjunto de atributos cada atributo possui um domínio Banco de Dados: Introdução 15

Modelos Lógicos de Dados Modelos baseados em objetos E-R - entidade-relacionamentos coleção de entidades e relacionamentos (retângulo=entidade, losango=relacionamento, elipse=atributo) cpf End. número saldo pessoa agência Conta corrente Banco de Dados: Introdução 16

Modelos Lógicos de Dados Modelos baseados em objetos E-R - entidade-relacionamentos Cardinalidade: expressa o número de entidades que a outra entidade pode ser associada 1:1, 1:n, n:1, n:n Data cpf End. número saldo pessoa 1 1-n Acessar Conta corrente Banco de Dados: Introdução 17

Modelos Lógicos de Dados Modelos baseados em objetos Modelos orientados a objetos coleção de objetos objetos contém atributos e métodos para acessar suas informações objetos do mesmo tipo são agrupado em classes Classe empregado atributos: nome, endereço métodos: define_nome, recupera_nome define_endereço, recupera_endereço Banco de Dados: Introdução 18

Modelos Lógicos de Dados Modelos baseados em registros Modelo relacional ( + utilizado) coleção de tabelas representando dados e relacionamento entre estes dados ENTIDADE : FUNCIONARIOS REGISTRO NOME IDADE SALARIO DEPTO 98752 JOÃO DA SILVA 32 2000.00 1 97345 HENRIQUE CARDOSO 28 1700.00 2 89234 JOSÉ DE SOUZA 34 3500.00 3 ENTIDADE: DEPARTAMENTO DEPTO NOME CIDADE ESTADO 1 DPI SJCAM POS SP 2 D SR N A TA L R N 3 DME CUIABA MT Banco de Dados: Introdução 19

Modelos Lógicos de Dados Modelos baseados em registros Modelo de redes dados representados por uma coleção de registros relacionamento entre os dados representados por ponteiros João 43567 INPE José 43693 INPE Maria 40234 CTA A-III 700 A-II 500 Ana 44667 CTA Banco de Dados: Introdução 20

Modelos Lógicos de Dados Modelos baseados em registros Modelo hierárquico similar ao modelo de redes (registro e ponteiros) dados organizados como uma estrutura de árvore Terreno industrial comercial público Embraer GM LA escola parque Banco de Dados: Introdução 21

Modelo Relacional Coleção de tabelas com nome único Colunas da tabela representam atributos Linhas da tabela contém valores para os atributos Domínio do atributo: conjunto de possíveis valores X = { x ε R x -5 e x 5 } Y = { y ε R y 0 } Banco de Dados: Introdução 22

Conceito de Relação Relação: define uma tabela no banco de dados. Dado os domínios D 1, D 2,..., D n não necessáriamente distintos, uma relação é definida: R = { (d 1, d 2,..., d n ) d 1 D 1, d 2 D 2,..., d n D n } O conjunto (d 1, d 2,..., d n ) de valores ordenados define um tupla. Uma relação é o conjunto de n-tuplas ordenadas, onde n define o grau da relação. Banco de Dados: Introdução 23

Exemplo de uma Relação EMPREGADO REGISTRO NOME IDADE SALARIO DEPTO 98752 JOÃO DA SILVA 32 2000.00 1 97345 HENRIQUE CARDOSO 28 1700.00 2 89234 JOSÉ DE SOUZA 34 3500.00 3 Atributo registro nome idade salário depto Domínio inteiro positivo conjunto de caracteres inteiro positivo real positivo inteiro positivo Banco de Dados: Introdução 24

Chaves de uma Relação Conceito de atributo chave: valor que não se repete dentro de uma relação pode ser um único atributo ou a combinação de mais atributos chave: CPF Nome Endereço CPF chave: Rua + Bairro + Cidade Rua Bairro Cidade Banco de Dados: Introdução 25

Conceito de chaves de uma relação Super-chave: um ou mais atributos que permitem identificar cada registro da tabela como único. Chave candidata: corresponde a super-chave mínima, ou seja não existe sub-conjunto da super-chave. { cpf } chave candidata? { cpf, nome } chave candidata? Chave primária: chave candidata escolhida no projeto da tabela do banco Banco de Dados: Introdução 26

Conversão E-R Modelo Relacional Entidades com atributos chaves bem definidos geram uma relação. Relacionamentos geram uma relação adicionando-se os atributos chaves das entidades relacionadas. entidades com atributos chaves não bem definidos geram uma relação adicionando-se a chave da relação que dependem Banco de Dados: Introdução 27

Conversão E-R Modelo Relacional Data cpf End. número saldo pessoa Acessar Conta corrente pessoa (cpf, endereço) acesso (cpf,numero,data) contacorrente(numero,saldo) Banco de Dados: Introdução 28

Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção união diferença produto cartesiano Banco de Dados: Introdução 29

Operadores da Álgebra Relacional Seleção: seleciona tuplas que satisfazem um certo predicado ou condição Pessoas Nome Registro João 1 Maria 2 José 3 a) selecionar tuplas cujo nome = João σ nome= João (Pessoa) Nome Registro João 1 Banco de Dados: Introdução 30

Operadores da Álgebra Relacional b) selecionar as tuplas de Pessoas cujo registro > 1 σ registro>1 (Pessoa) Nome Registro Maria 2 José 3 c) selecionar as tuplas de Pessoas com registro > 1 e registro < 3 σ registro>1 registro < 3 (Pessoa) Nome Registro Maria 2 Banco de Dados: Introdução 31

Operadores da Álgebra Relacional Projeção: gera novas relações excluindo alguns atributos exemplo: projete o atributo Nome sobre a relação Pessoa Π nome (Pessoa) Pessoa Nome Registro João 1 Maria 2 José 3 Nome João Maria José Banco de Dados: Introdução 32

Operadores da Álgebra Relacional União: união de atributos do mesmo domínio que estão em relações diferentes as relações devem possuir o mesmo número de atributos exemplo: encontre todos os clientes da agência que possuem conta corrente ou empréstimo. Relações existentes para a agência: CONTACORRENTE e EMPRÉSTIMOS Banco de Dados: Introdução 33

Operadores da Álgebra Relacional União: clientes com conta corrente ou empréstimo CONTACORRENTE Nome Conta UNIÃO João 1 Maria 2 José 3 EMPRÉSTIMO Nome Empréstimo Paulo 100 Maria 200 Carlos 300 = Nome João Maria José Paulo Carlos Banco de Dados: Introdução 34

Operadores da Álgebra Relacional Diferença: tuplas que se encontram em uma relação, mas não em outra (ex: todos clientes sem empréstimo) Nome Conta João 1 Maria 2 José 3 DIFERENÇA - = Nome João José Nome Empréstimo Paulo 100 Maria 200 Carlos 300 Banco de Dados: Introdução 35

Operadores da Álgebra Relacional Produto Cartesiano combina operações entre duas relações união de atributos forma a nova relação (todos clientes com conta corrente X empréstimo de Maria) Nome cc Conta Nome emp Empréstimo João 1 Maria 200 Maria 2 Maria 200 José 3 Maria 200 Banco de Dados: Introdução 36

Operadores da Álgebra Relacional Operadores derivados: intersecção tudo que está em ambas relações (todos os clientes que possuem empréstimo) CONTACORRENTE EMPRÉSTIMO Nome Conta Nome Empréstimo João 1 Paulo 100 Maria 2 Maria 200 José 3 Carlos 300 INTERS. Nome Maria Banco de Dados: Introdução 37

Operadores da Álgebra Relacional Operadores derivados junção: inclui um produto cartesiano, seguido de uma seleção (pode ter projeção ao final) (nomes dos clientes com conta corrente e número de empréstimo) prod. cartesiano: CONTACORRENTE X EMPRÉSTIMO seleção: Nome contacorrente = Nome empréstimo projeção: Nome contacorrente, Empréstimo empréstimo Banco de Dados: Introdução 38

Operadores da Álgebra Relacional Junção natural nomes dos atributos nas relações da seleção são iguais Junção externa ( outer join ): evita perda de informação ( nome,endereço,cidade ) (nome,banco,salário) { Coyote,Toon,Hollywood } { Coyote,Mesa,1500 } { Coelho,Túnel,Cenoura } { Coelho,Mesa,1300 } { Smith,Revolver,Vale Morte} { Gates, Msm, 5300 } Junção: (nome,endereço,cidade,banco,salário) { Coyote, Toon, Hollywood, Mesa, 1500 } { Coelho, Túnel, Cenoura, Mesa, 1300 } Banco de Dados: Introdução 39

Álgebra Relacional Funções de agregação retorna um valor único de resultado a partir de uma coleção de valores sum: soma dos valores { sum salário (inpe) } avg: média dos valores count: total de ítens na coleção min e max: mínimo e máximo valores da coleção count-distinct: elimina duplicação primeiro e conta o total Banco de Dados: Introdução 40

SQL - Structured Query Language Linguagem de banco de dados relacional linguagem de definição de dados (DDL) linguagem de manipulação de dados (DML) definição de vistas integridade controle de transação Banco de Dados: Introdução 41

SQL - Structured Query Language Linguagem de definição de dados (DDL) esquema para cada relação domínio de valores associados a cada atributo restrições de integridade índices para cada relação segurança e autorização de acesso para cada relação estrutura de dados em disco para cada relação Banco de Dados: Introdução 42

SQL - Structured Query Language Definição de esquema: comando create table - cria uma nova tabela create table r (A 1 D 1, A 2 D 2,..., A n D n, <restrição de integridade 1 >,..., <restrição de integridade k >) Restrições de integridade: primary key (A j1, A j2,..., A jm ) - define chave check (P) - verifica predicado Banco de Dados: Introdução 43

SQL - Structured Query language create table cliente (nome char(20) not null, endereço char(30), cidade char(30), primary key (nome)) create table contacorrente (número char(10) not null, banco char(30), saldo integer, primary key (número), check (saldo >= 0)) Banco de Dados: Introdução 44

SQL - Structured Query language Definição de esquema: comando drop table - elimina tabela do banco drop table cliente comando delete from - elimina todos os registros delete from cliente comando alter table - altera tabela do banco alter table cliente add A D : adiciona atributo A com domínio D alter table cliente drop A : elimina atributo A Banco de Dados: Introdução 45

SQL - Linguagem de Consulta Sintaxe: SELECT <atributos> FROM <relações> WHERE <expressão> SELECT: corresponde ao operador projeção da álgebra relacional FROM: corresponde ao operador produto cartesiano da álgebra relacional WHERE: corresponde ao operador seleção da álgebra relacional Banco de Dados: Introdução 46

Exemplos de Consultas ALUNO CADEIRA Nome Id Aluno Tipo João 1 1 escolar Maria 2 2 normal José 3 10 poltrona SELECT nome FROM aluno WHERE id = 1 FROM: todos as tuplas da relação aluno WHERE: selecione as tuplas cujo id = 1 SELECT: projete o atributo nome Banco de Dados: Introdução 47

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno FROM: produto cartesiano (ALUNO x CADEIRA) Nome Id Aluno Tipo João 1 1 escolar Maria 2 1 escolar José 3 1 escolar João 1 2 normal Maria 2 2 normal José 3 2 normal João 1 10 poltrona Maria 2 10 poltrona José 3 10 poltrona Banco de Dados: Introdução 48

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno WHERE: selecione tuplas cujo id = aluno Nome Id Aluno Tipo João 1 1 escolar Maria 2 2 normal SELECT: projete os atributos nome, id, tipo Nome Id Tipo João 1 escolar Maria 2 normal Banco de Dados: Introdução 49

SQL - Structured Query Language Operações em conjunto de caracteres ( strings ) : O caracter % representa qualquer sub-string O caracter _ representa qualquer caracter O termo like é utilizado para comparar padrões Carl% : qualquer nome que comece com Carl %ulo% : qualquer nome que possui ulo _ : qualquer nome com 3 caracteres select nome from cliente where endereco like %Ademar% Banco de Dados: Introdução 50

SQL - Structured Query Language Funções de agregação Média: avg select avg (saldo) from conta_corrente where banco_nome = Brasil Cláusula group by : junta as tuplas com atributos em group by de mesmo valor select banco_nome, avg (saldo) from conta_corrente group by banco_nome Banco de Dados: Introdução 51

SQL - Structured Query Language Funções de agregação Contador : count recupere o número de tuplas ou registros na relação cliente select count (*) from cliente Mínimo : min Máximo : max Soma : sum Banco de Dados: Introdução 52

SQL - Structured Query Language Junção natural : ( inner join ) empréstimo (banco,numero,saldo) cliente (nome,emp_numero) { Centro, L-170, 3000 } { João, L-170 } { Satelite, L-230, 4000 } { Sandra, L-230 } { Inpe, L-260, 300 } { Paulo, L-155 } select * from emprestimo inner join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, João, L-170} { Satelite, L-230, 4000, Sandra, L-230 } Banco de Dados: Introdução 53

SQL - Structured Query Language Junção externa : ( outer join ) empréstimo (banco,numero,saldo) cliente (nome,emp_numero) { Centro, L-170, 3000 } { João, L-170 } { Satelite, L-230, 4000 } { Sandra, L-230 } { Inpe, L-260, 300 } { Paulo, L-155 } select * from emprestimo left outer join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, João, L-170} { Satelite, L-230, 4000, Sandra, L-230 } { Inpe, L-260, 1700, null, null, } Banco de Dados: Introdução 54

Passos na Modelagem de BD Requisitos: identificação dos dados Modelagem conceitual: mapear visão do usuário em um conjunto de dados descreve entidades, atributos e relacionamentos Implementação: esquema de banco de dados Projeto físico: estruturas de dados, métodos de acesso, segurança Identificação de Requisitos Modelo Conceitual Implementação Projeto Físico Banco de Dados: Introdução 55

Projeto Lógico de BD Normalização análise das dependências funcionais entre os atributos objetivo: reduzir complexidade da visão do usuário Passos na normalização visão do usuário relações não normalizadas 1 a forma normal (remove grupos repetidos) 2 a forma normal (remove dependências parciais) 3 a forma normal (remove dependências transitivas) Banco de Dados: Introdução 56

Normalização Relação não normalizada: relação que contém um ou mais grupos repetidos atributo simples não serve como chave candidata RELATÓRIO_NOTAS Nome Est# Área Curso Aula Prof. Pf.Loc Nota João 1 CA CA10 Banco K BD300 A de Dados João 1 CA MA5 Mat. C M250 B Banco de Dados: Introdução 57

Normalização 1 a forma normal: remove grupos repetidos Nome Est# Área Curso Aula Prof. Pf.Loc Nota João 1 CA CA10 Banco K BD300 A de Dados João 1 CA MA5 Mat. C M250 B ESTUDANTE_CURSO (1FN) Est# Curso Aula Prof. Pf.Loc Nota ESTUDANTE (3FN) Est# Nome Area Banco de Dados: Introdução 58

Normalização 1 a forma normal - problemas redundância de dados anomalias de inserção (novo curso) anomalias de atualização (alterar nome de curso) anomalias de remoção (perda de informação) ESTUDANTE_CURSO (1FN) Est# Curso Aula Prof. Pf.Loc Nota Banco de Dados: Introdução 59

Normalização 1 a forma normal - razões para anomalias atributos não chaves são parcialmente dependentes da chave primária (Est#,Curso) Est# Curso Aula Prof. Pf.Loc Nota Banco de Dados: Introdução 60

Normalização 2 a forma normal: remover dependências parciais cria duas novas relações uma com atributos totalmente dependentes da chave primária outra com atributos parcialmente dependentes da chave primária ESTUDANTE_CURSO (1FN) Est# Curso Aula Prof. Pf.Loc Nota REGISTRO (3FN) CURSO_INSTRUTOR (2FN) Est# Curso Nota Curso Aula Prof. Pf.Loc Banco de Dados: Introdução 61

Normalização 2 a forma normal: problemas devido a dependência transitiva entre atributos não chaves (PfLoc depende do Prof) anomalia de inserção (novo professor) anomalia de atualização (dados do professor) anomalia de remoção (perda de dados do professor com remoção de um curso) CURSO_INSTRUTOR (2FN) Curso Aula Prof. Pf.Loc Banco de Dados: Introdução 62

Normalização 3 a forma normal: atributos não chave são totalmente dependentes da chave primária ALUNO (3FN) Est# Nome Área 1 João CA CURSO (3FN) Curso Aula Prof. CA10 Banco K Dados MA5 Mat. C INSTRUTOR (3FN) Prof. K C NOTAS (3FN) Pf.Loc BD300 M250 Est# Curso Nota 1 CA10 A 1 MA5 B Banco de Dados: Introdução 63