Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

130
Banco de Dados I Resumo – 1• Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas

Transcript of Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Page 1: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Banco de Dados IResumo – 1• Bimestre

4P/SI – 2010/02

Prof. Carlos Alberto Seixas

Page 2: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Assuntos estudados

• Dados x Informações x Conhecimento• Banco de Dados • Sistema Gerenciador de Banco de Dados • Sistema de Banco de Dados• Implementação de BD• SQL• Algebra Relacional• Objetos de SGBD: Views, Triggers e Stored

Procedures

Page 3: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DADO - DefiniçõesEntende-se como um elemento da informação, um conjunto de letras, números ou dígitos, que tomado isoladamente não transmite nenhum

conhecimento, ou seja, não contém um significado claro.

Dado é um elemento que mantém a sua forma bruta (texto, imagens, sons, vídeos, etc.), ou seja, ele sozinho não levará a compreender determinada

situação.

Fatos em sua forma primária que representam coisas do mundo real.

– Exemplos:– Ivan, Thiago, Carlos, Rubens– 20, 22, 19– Ribeirão Preto, São Paulo

Page 4: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Tipos de Dados• Alfanuméricos: números, letras e

outros caracteres• Imagem: imagens gráficas ou figuras

• Áudio: som, ruído ou tons

• Vídeo: imagens ou figuras móveis

Page 5: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

INFORMAÇÃO

É todo o dado trabalhado, tratado e com um sentido natural e lógico para quem a usa.

Informação é o dado, cuja forma e conteúdo são apropriados para um uso específico.

Conjunto de fatos organizados de tal forma que adquirem valor adicional além do valor

do fato em si.

Ex.: José de 35 anos mora em Cajuru, Cidade do estado de São Paulo.

Page 6: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Informação

Exemplos:• total de vendas mensais• lista de clientes ordenada por...• média de alunos p/turma• turmas com menos 10 alunos

Page 7: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Conhecimento

• Conhecimento: regras, diretrizes e procedimentos usados para selecionar, organizar e manipular dados, para torná-los mais úteis para determinado fim.

Page 8: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Características da Informação

Precisa: sem errosCompleta: contém todos fatos importantesEconômica: valor informação x custo produçãoFlexível: pode ser usada diversas finalidadesConfiável: dependente método coleta dadosRelevante: importante para tomador decisõesSimples: evitar sobrecarga, alta complexidadeEm tempo: enviada quando necessáriaVerificável: pode ser checada através outras

fontes

Page 9: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Definições – Bancos de dadosBanco de dadosÉ uma coleção de dados inter-relacionados,

representando informações sobre um domínio específico.

Exemplos :Lista Telefônica

Fichas do acervo de uma biblioteca

Page 10: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DADOS INTERRELACIONADOS

Nome Idade Cidade

José 35 Cajuru

Mario 30 Joinville

Cristina 20 São Paulo

Cidade Estado

Cajuru São Paulo

Joinville Santa Catarina

São Paulo São Paulo

Tabela Pessoa Tabela Cidade/Estado

São dados não isolados, transmitindo um significado e gerando informações.

Exemplo de relacionamento de dados em duas tabelas:

Informação: José de 25 anos mora em Cajuru, cidade do estado da São Paulo

Page 11: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DOMÍNIO ESPECÍFICO

Do exemplo acima o domínio representa o conjunto de estados brasileiros. Os subconjuntos são as cidades e os elementos são as pessoas.

Nome Idade Cidade

João 25 Londrina

Paulo 30 Joinville

Cristina 20 São Paulo

Cidade Estado

Londrina Paraná

Joinville Santa Catarina

São Paulo São Paulo

Tabela Pessoa Tabela Cidade/Estado

Page 12: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

PROPRIEDADES DE UM BANCO DE DADOS

– um banco de dados é uma coleção lógica coerente de dados com um significado inerente;

– um banco de dados é projetado, construído e populado com dados para um propósito específico; um banco de dados possui um conjunto pré definido de usuários e aplicações; (mono-usuário e multi-usuário)

– um banco de dados representa algum aspecto do mundo real, o qual é chamado de “mini-mundo” ; qualquer alteração efetuada no mini-mundo é automaticamente refletida no banco de dados. (possui um negócio)

Page 13: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

BANCO DE DADOS• COMO É CRIADO E POVOADO UM BANCO DE

DADOS ??

Um banco de dados pode ser criado e mantido por um conjunto de aplicações* desenvolvidas especialmente para esta tarefa ou por um “Sistema Gerenciador de Banco de Dados” (SGBD).

* São chamadas aplicações do banco ou do SGBD, cuja finalidade é criar o banco de dados, as tabelas e os registros, bem como manipular os dados contidos na base.

Page 14: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SGBD

É um software com recursos específicos (compiladores, gerenciadores e manipuladores de dados) para facilitar a manipulação das informações dos bancos de dados e o desenvolvimento de programas aplicativos.

Exemplos: Oracle, Paradox*, Access*, dbase*, Progress, DB2, MySQL, Interbase, SLQ Server.

* Desktop Database Management Systems

Page 15: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo de SGBD• SQL SERVER 2000• SQL Server Enterprise Manager - Gerenciador de Aplicações SQL

Server

Page 16: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SGBD – INDEPENDÊNCIA DOS DADOS

O sistema de gestão de bases gere toda a informação contida na base de dados e constitui o interface entre a informação e os utilizadores, quer sejam utilizadores finais ou programadores.

Aplicações dos usuários Software de

gerenciamento (aplicações do banco)

Page 17: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

BANCO DE DADOS - ANTES DO SGBD

Os dados eram dependentes dos programas de aplicações que os geravam e manipulavam.

A informação era repetida e repartida em diversos locais, pois cada departamento criava seus programas de aplicação. (duplicação de informação)

Page 18: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

BANCO DE DADOS - COM O SGBD • FUNCIONAMENTO

Os dados são independentes das aplicações.

Fig.2 Independência dos programas de aplicação

Page 19: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SISTEMA DE BANCO DE DADOS• Definição:

É um sistema de manutenção de registros por computador, envolvendo quatro componentes básicos:

– Dados

– Hardware

– Software

– Usuários

Page 20: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

ESTRUTURA DE UM SBD

SGBD

Programas de Aplicação/Consulta

Software para processar manipulação

Software de Acesso aos Dados

Dados Dados

Sistema de Banco de Dados

Usuários

Dados

SW e HW

Aplicações do banco

Aplicações do usuário

O conjunto de Aplicações dos usuários + as aplicações que criam e manipulam BD (aplicações do banco) + o BD é chamado de ‘Sistema de Banco de Dados’ (SBD) .

Page 21: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

EXEMPLO DE SISTEMA DE BANCO DE DADOS

SISTEMA DE GESTÃO EMPRESARIAL (ERP) OU SISTEMA DE GESTÃO INTEGRADO

Módulos da aplicação

Materiais Estoque

Recebimento

Controle da Qualidade

Compras

Programas do Módulo estoque

Cadastro de Materiais

Cadastro de Família de Estoque

Consulta dos Movimentos do Estoque

Consulta Saldo de Estoque SG

BD

US

RIO

S D

AS

AP

LIC

ÕE

S

Aplicações

BI

Materiais

Comercio Exterior

Distribuição

Controladoria e Finanças

Manutenção Industrial

Manufatura

Tecnologia

Page 22: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

VANTAGENS DO SGBD

– Compartilhamento de DADOS (Acesso multi-usuário)

TABELAS

CLIENTE A

CLIENTE B

CLIENTE C

CLIENTE D

1

2

BASES

SG

BD

AP

LIC

ÕE

S

3

Page 23: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

VANTAGENS DO SGBD

– Controle de Redundância de Informações

SG

BD

AP

LIC

ÕE

S

TABELAS

CLIENTE A

CLIENTE B

CLIENTE C

1

2

BASES

TODOS OS DEMAIS USUÁRIOS NÃO PRECISAM ATUALIZAR OU CRIAR NOVAMENTE

Atualiza ou inclui uma nova informação

Page 24: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

VANTAGENS DO SGBD

– Restrição de Acesso não Autorizado

SG

BD

AP

LIC

ÕE

S

TABELAS

CLIENTE A

CLIENTE B

CLIENTE C

1

2

BASES

Page 25: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

USUÁRIOS DO SISTEMA DE BANCO DE DADOS

Para um grande banco de dados, existe um grande número de pessoas envolvidas, desde o projeto, uso e de sua manutenção.

Administrador de Banco de Dados (DBA):◦ Responsável pelos recursos do BD e do SGBD. ◦ Responsável pela autorização de acesso ao banco de dados, pela

coordenação e monitoração de uso.

Projetista de Banco de Dados:

◦ Responsável pela identificação, estrutura para representação e armazenamento dos dados. Fazendo com que o banco de dados seja capaz de atender a todas as necessidades dos usuários.

Usuários Finais: Usuários que acessam a base de dados.

Page 26: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

USUÁRIOS DO SISTEMA DE BANCO DE DADOS

Os analistas determinam os requisitos dos usuários finais e desenvolvem especificações para transações que atendam estes requisitos

Os programadores implementam estas especificações como programas, testando, depurando, documentando e dando manutenção no mesmo.

EQUIPE = ANALISTA + PROGRAMADORES

Page 27: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Implementação BD: Conceitos Básicos• Estrutura Básica• Um banco de dados relacional consiste de uma

coleção de relações (tabelas) de nomes únicos.• Cada tabela possui um conjunto de linhas que

representa um relacionamento entre um conjunto de valores.

• Uma tabela é formada por um conjunto de colunas denominadas de atributos e por um conjunto de linhas denominadas de tuplas.

• Para cada atributo existe um conjunto de valores permitidos, chamado de domínio.

Page 28: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Definindo uma Relação

• Esquema Aluno:• Aluno (Nome, SSn, Fone, End,

FoneComercial,idade, Média)

• Especificando os domínios:• Aluno (Nome: string, SSn:string, Fone:string,• End:string, FoneComercial:string, Idade:

string,Média:real)

Page 29: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Tupla ou registro• Uma definição alternativa para uma tupla é: um conjunto de pares• (<atributo>,<valor>), em que cada par fornece o valor do• mapeamento de um atributo Ai para um valor vi do dom(Ai).• As tuplas (registros) abaixo são idênticas:• T = <(Nome, Dick Davisdson),(SSN, 422-11-• 2320),(FoneResidencial, null),(Endereço, 3452 Elgin• Road),(FoneEscritorio, 749-1253),(Idade,25),(MPG 3,53)>• T = <(Endereço, 3452 Elgin Road),(Nome, Dick• Davisdson),(Idade,25),(MPG 3,53),(SSN, 422-11-• 2320),(FoneEscritorio, 749-1253),(FoneResidencial, null)>

Page 30: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Modelo Entidade Relacionamento

Page 31: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Modelo Relacional

Page 32: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

No exemplo a seguir:

Page 33: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Representação tabular• A tabela para o conjunto de relacionamentos agente_empréstimo inclui uma coluna

para cada atributo, uma para chave primária do conjunto de entidades empregado e uma para o conjunto de relacionamentos devedor.

• Assim: • cliente, com os atributos nome_cliente, seguro_cliente, rua, cidade;• empréstimo, com os atributos número_empréstimo, total;• devedor, com os atributos seguro_cliente, número_empréstimo;• empregado, com os atributos seguro_empregado, nome_empregado,• número_telefone;• agente_empréstimo, com os atributos seguro_empregado, número• empréstimo e seguro_cliente.

Page 34: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Independência dos Dados• Num SGBD é possível incluir novos campos em uma tabela, dividir uma

tabela em duas outras ou ainda unir duas tabelas em uma, criar e destruir índices sem que as aplicações sejam afetadas a não ser em alguns casos específicos;

• Assim, a independência dos dados pode ser definida como a imunidade das aplicações à estrutura de armazenamento e à estratégia de acesso às informações;

Page 35: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Abstração de Informação

• “Habilidade mental que permite aos seres humanos visualizarem os problemas do

mundo real com vários graus de detalhe, dependendo do contexto do problema.”

Page 36: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Abstração dos Dados

• O grande objetivo dos SGBDs é fornecer ao usuário uma visão simplificada dos dados, escondendo toda a complexidade do armazenamento de dados em níveis de abstração que simplificam o acesso às informações;

• A arquitetura de um banco de dados divide-se em três níveis de abstração: físico (ou interno), conceitual e de visões (ou externo).

Page 37: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Nível Físico ou interno

• Este é o nível mais baixo de abstração e descreve como os dados estão realmente armazenados;

• Neste nível, complexas estruturas de dados e programas trabalham para fornecer informações aos dois outros níveis de forma transparente.

Page 38: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Nível Conceitual

Descreve quais dados estão de fato armazenados no banco de dados e as relações que existem entre eles;

Os usuários deste nível não precisam se preocupar quanto à forma com que os dados são armazenados no nível físico;

O nível conceitual é usado por administradores de bancos de dados que especificam quais informações devem fazer parte do banco de dados e usuários avançados.

Page 39: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Nível de Visões ou Externo• É a forma como geralmente os usuários finais vêem as

informações contidas no banco de dados;• O nível mais alto de abstração é composto de inúmeras visões

do mesmo banco de dados;• Isto se deve ao fato de que muitos usuários não estão

interessados em todas as informações contidas no banco de dados;

• Em vez disso, precisam apenas de uma parte destas informações;

• O nível de visões é definido para simplificar a interação entre o usuário final e o banco de dados.

Page 40: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Nível de Visão1

Nível de Visão2

Nível de Visão 3

Nível Conceitual

Nível Físico

Page 41: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Linguagem de Definição de dados

Linguagem que define as aplicações, arquivos e campos que irão compor o banco de dados (comandos de criação e atualização da estrutura dos campos dos arquivos).

Um esquema de banco de dados é especificado por um tipo de linguagem especial chamada Linguagem de Definição de Dados ou simplesmente DDL (Data Definition Language).

O resultado da compilação e execução de comandos DDL é um conjunto de especificações especificadas no “dicionário de dados”.

O dicionário de dados é um arquivo que contém os metadados, ou seja, dados que são informações sobre dados. Estes metadados contém as especificações do banco de dados, é consultado antes de dados reais serem lidos ou modificados no sistema de banco de dados.

Page 42: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.
Page 43: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.
Page 44: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo

NumDept NomeDept

1 Financeiro

2 Recursos Humanos

3 Administrativo

CREATE TABLE Departamento,

NumDept INTEGER,

NomeDept CHAR(20);

Page 45: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Linguagem de Manipulação de Dados

Linguagem que permite aos usuários acessar ou manipular dados organizados por um modelo de dados apropriado

A linguagem de manipulação de dados fornece as seguintes facilidades:Busca de informações armazenadas no banco de dados; Inserção de novas informações;Eliminação de informações;Modificação de informações.Ex:Select NumDept,NomeDept From Departamento Where NumDpet = 2;

Page 46: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

As Três Abordagens Clássicas

• O usuário vê o banco de dados segundo um modelo de visões;

• O modelo de visões e o modelo conceitual são bastante semelhantes, as vezes idênticos;

• Portanto os conceitos aplicados aqui servem tanto para o nível conceitual quanto para o de visões;– Abordagem Relacional;– Abordagem Hierárquica;– Abordagem em Rede

Page 47: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

A Abordagem Hierárquica• Esta seção e as seguintes são baseadas em um banco de

dados contendo as entidades: Filial, Departamento e Funcionário.

• Na abordagem hierárquica, como o próprio nome já diz, os dados são organizados de acordo com níveis hierárquicos preestabelecidos;

• Os primeiros bancos de dados estão baseados nesta abordagem. Segundo Date, “um banco de dados hierárquico, compõe-se de um conjunto ordenado de árvores – mais precisamente, de um conjunto ordenado de ocorrências múltiplas de um tipo único de árvore”.

Page 48: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

A Abordagem Hierárquica

• Na abordagem hierárquica, podemos ver o banco de dados como um único arquivo organizado em níveis. O nível superior que contém a filial é chamado de raiz.

• Qualquer acesso ao banco de dados deve ser feito a partir dele;

• Em geral, a raiz pode ter qualquer quantidade de dependentes, e estes, qualquer quantidade de dependentes de nível mais baixo

Page 49: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

001 - Curitiba

001- Comercial 002- Administrativo

001- João 002- Antonio

Page 50: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

A Abordagem em Rede• No modelo em rede as informações são representadas por uma coleção

de registros e o relacionamento entre elas é formado através de ligações (link);

• Extensão do modelo hierárquico;• É uma relação membro-proprietário, na qual um membro pode ter muitos

proprietários.• Em um bd estruturado como um modelo em rede há freqüentemente

mais de um caminho para acessar um determinado elemento de dado.• A principal diferença entre a abordagem hierárquica e a em rede é que

um registro-filho tem exatamente um pai na abordagem hierárquica, enquanto na estrutura de rede um registro-filho pode ter qualquer número de pais.

Page 51: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

001- Londrina

002- Curitiba 002 - Administrativo

003- Industrial

001- Comercial 001 - João

002- Antonio

003- Pedro

004- Maria

Page 52: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

A Abordagem Relacional

• Um banco de dados relacional consiste em uma coleção de tabelas, cada uma designada por um nome único.

• Tabelas – Uma tabela é uma representação bi-dimensional

de dados composta de linhas e colunas;– Uma tabela de alunos de uma escola é

apresentada a seguir.

Page 53: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

• AlunoNum-Matricula Nome-Aluno Sexo-Aluno

1 Maria F

2 João M

3 Pedro M

4 Carla F

5 Sandra F

Regras:

1) Nomes de tabelas devem ser únicos no banco de dados;

2) De preferência a nomes curtos.

Page 54: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Atributos ou Colunas

• Considerando a tabela Aluno;• Ela tem três colunas Num_Matrícula,

Nome_Aluno e Sexo_Aluno;• A cada uma destas colunas damos o nome de

atributo;• Um nome de atributo deve ser único em uma

tabela e dizer exatamente o tipo de informação que ele representa.

Page 55: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Atributos ou Colunas

• Regras:1) Uma coluna (atributo) não segue um

ordenamento especifico;2) Nome de uma coluna deve expressar

exatamente o que armazena;3) Sempre que possível utilizar prefixos

padronizados, Cod-Dept, Nome-Funcionário, Qtde-Estoque

Page 56: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Linhas, Registros ou Tuplas• A tabela Aluno possui cinco registros;• Cada registro representa um relacionamento entre um conjunto de

valores;• A este relacionamento damos o nome de registro, linha ou ainda Tupla;• Cada linha da tabela é única e possui um atributo identificador

(Num_Matrícula);• Este atributo identificador é chamado de chave primária.

Regras:1) Em uma tabela não devem existir linhas duplicadas;2) As linhas de uma tabela não seguem uma ordem especifica.

Page 57: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Domínio

• A tabela Aluno possui três atributos;• Para cada atributo existe um conjunto de valores

permitidos chamado domínio daquele atributo;• Para o atributo Num_Matrícula o domínio é o

conjunto de números naturais;• Para o atributo Nome_Aluno o domínio é qualquer

nome válido;• Enquanto que para Sexo_Aluno o domínio são os

mnemônicos M ou F.

Page 58: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Chave Primaria

• Uma chave primária ou chave candidata é uma coluna ou um grupo de colunas que assegura a unicidade das linhas dentro de uma tabela;

• Uma chave primária que tenha mais de uma coluna é chamada de chave primária composta;

• Chaves primárias são geralmente indicadas pela sigla PK (primary key) imediatamente abaixo do cabeçalho da coluna apropriada.

• Veja os exemplos:

Page 59: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Cod-Empregado

Nome-Empregado Tel-Empregado

PK

Cod-Empregado é uma chave simples ou compacta

Cod-Empregado Cod-Dept Salario

PK PK

A combinação das colunas Cod-Empregado e Cod-Dept formam uma chave primaria composta.

Empregado

Salário

Page 60: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Regras

• Valores de chave primária não podem ser nulos (NN – Not Null):– Um valor nulo é uma lacuna em uma coluna de uma tabela.– Valores de chaves primarias não podem ser nulos porque uma linha

sem chave primaria não se distingue de outras linhas da mesma tabela;

• Colunas com chaves primarias não podem ter valores duplicados (ND – No Duplicate):– Um valor duplicado é um valor exatamente igual a outro de uma ou

mais linhas da mesma coluna na mesma tabela;– Se a coluna possui valores duplicados esta não pode servir de

identificador da linha;

Page 61: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Regras

• Chaves primarias não podem ser alteradas (NC – No Change):– O conteúdo de uma chave primaria não pode

sofrer alterações.

Page 62: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Recomendações

• Selecione chaves primarias absolutamente disciplinadas e que permaneçam únicas;

• Selecione chaves primarias que não tenham qualquer tendência a alterações;

• Se possível seleciona chaves primarias simples;• De preferência a colunas numéricas para chaves primarias;• Selecione chaves primarias que sejam familiares;• Se não houver nenhuma coluna com chave primaria

candidata, utilize chaves primarias atribuídas pelo sistema.

Page 63: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Chave Estrangeira

• Uma chave estrangeira é uma coluna ou grupo de colunas que pode ou não ser chave primária da tabela em questão, mas, com certeza é chave primária de outra tabela;

• Uma chave estrangeira formada por mais de uma coluna é chamada de chave estrangeira composta. Chaves estrangeiras são indicadas pela sigla FK (Foreign Key) abaixo do cabeçalho da coluna apropriada.

Page 64: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Cod-Dept Nome-Dept

PK

Cod-Empregado Nome-Empregado

Cod-dept

PK FK

Departamento

Empregado

Page 65: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

ClienteCod-Cliente Nome-Cliente

PK

Cod-Produto Nome-Produto Qtde-Estoque

PK

Produto

Cod-Cliente Cod-Produto Qtde-Pedida

PK+ PK+

FK FK

Venda

Page 66: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Restrições de Integridade

• Um dos principais objetivos de um SGBD é a integridade dos dados.

• Um banco de dados íntrego é um banco que reflete corretamente a realidade representada pelo banco de dados.

• Para garantir a integridade de um banco de dados os SGBD oferecem o mecanismo de restrição de integridade.

Page 67: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Restrições de Integridade

• Uma regra que deve ser obedecida em todos estados válidos da base de dados (pode envolver uma ou mais

linhas de uma ou mais tabelas).

Page 68: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Restrições de Integridade

• Na abordagem relacional, costuma-se classificar as restrições em quatro categorias:– Integridade de domínio:

• Especificam qual valor um atributo pode admitir;• Ex.:

– numero inteiro, valores alfanuméricos, data....– O atributo nome_cliente e nome_empregado podem ter o

mesmo domínio: o conjunto de todos os nomes de pessoas, campo alfanumérico tamanho 40.

Page 69: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Restrições de Integridade

– Integridade de vazio:• Especificam se os atributos podem ou não serem

vazios, isto é, se podem conter valores nulos.

– Integridade de Chave:• Valores da chave primaria (PK) devem ser únicos.

– Integridade Referencial:• Os valores que aparecem nos atributos em uma chave

estrangeira devem aparecer na chave primaria da tabela referenciada.

Page 70: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Restrições de Integridade• Todas essas restrições são garantidas

automaticamente pelo SGBD.• As restrições que não se encaixam em nenhuma das

categorias acima são chamadas de restrições semânticas, isto é, restrições criadas pelo programador.

• Ex.: – Um empregado do departamento “Finanças” não

pode ter a categoria funcional “Engenheiro”...– Um empregado não pode ter salário maior que

seu superior imediato.

Page 71: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Regras

• Entidades têm existência própria e não são subordinadas a qualquer outra coisa;

• Entidades podem ser concretas ou abstratas;

• Informações sobre entidades, tais como o nome de uma pessoa, não são consideradas entidades, mas sim, atributos de entidades.

Page 72: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Atributos

– Atributos nulos. É usado quando uma entidade não possui valor para um determinado atributo.

• Ex.: se um empregado não possui dependentes, o valor do atributo nome_dependente para esse dependente será nulo, ou que o valor do atributo é desconhecido.

– Atributo derivado. O valor de um atributo pode ser derivado do valor de outros atributos.

• Ex. o valor do atributo tempo_de_casa pode ser derivado do valor do atributo data_contratação e da data_corrente.

Page 73: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Conceitos e Implementação sobre SGBD

• Views• Uma view(visão) é uma tabela virtual na qual os

dados não estão fisicamente armazenados. Ela é apenas uma visão de um grupo de colunas de uma ou mais tabelas do banco de dados. No exemplo abaixo, criaremos uma view que terá apenas as colunas COD_PRODUTO, DSC_PRODUTO.

• CREATE VIEW loja.VIEW_PRODUTOS AS SELECT cod_produto, dsc_produto FROM produtos;

Page 74: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

View

• Resultado:• CREATE VIEW loja.VIEW_PRODUTOS AS

SELECT cod_produto, dsc_produto FROM produtos;

Page 75: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Stored Procedures

• Conjunto de comandos SQL armazendos no servidor que realizam tarefas específicas e são ativadas como comandos. Podem receber parâmetros de entrada, saída ou entrada e saída.

Page 76: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Stored Procedures

• Exemplo:• DELIMITER $$

DROP PROCEDURE IF EXISTS escola.pr_total $$CREATE PROCEDURE escola.pr_total ( OUT total INT)BEGINSELECT count(0) INTO totalFROM produtos;END $$

Page 77: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Stored ProceduresExecutando a procedure via linha de comandoC:\ mysql -u root -p

(após teclar ENTER informe a senha do usuário root)

mysql> use loja (Informamos o database que iremos utilizar)

mysql> call pr_total(@teste); (Chamamos a procedure pr_total e armazenamos o resultado em teste.)

mysql> select @teste; (Exibimos o resultado. No exemplo acima, trazemos a quantidade de produtos cadastrados.)

Page 78: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Triggers• É um bloco PL/SQL armazendo em um banco de dados e executado sempre que o evento ocorrer.

• Esse evento pode ser um DML (update, insert, delete) , um DDL (create, alter, drop, truncate table) ou mesmo um evento ocorrido do banco, como uma conexão, por exemplo.

Page 79: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

TriggersExemplo:Criaremos a tabela HISTÓRICO que armazenará todas as

alterações de valores efetuadas na tabela de PRODUTOS.CREATE TABLE loja.historico (

COD_HIST INTEGER NOT NULL AUTO_INCREMENT , COD_PRODUTO INTEGER NOT NULL , DT_ALTERACAO DATE NOT NULL , VLR_ANTIGO DOUBLE(4,2) NOT NULL , VLR_NOVO DOUBLE(4,2) NOT NULL , FOREIGN KEY(COD_PRODUTO) REFERENCESprodutos(COD_PRODUTO) , PRIMARY KEY(COD_HIST) )ENGINE = INNODB;

Page 80: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

TriggersA trigger TR_PRODUP que será acionada quando ocorrer um

UPDATE na tabela de PRODUTOS.DELIMITER $$

DROP TRIGGER loja.tr_produp $$CREATE TRIGGER tr_produp BEFORE UPDATE ON produtosFOR EACH ROWBEGIN DECLARE TESTE VARCHAR(30); DECLARE DATA DATE; SET DATA = NOW();INSERT INTO HISTORICO SET COD_PRODUTO = OLD.cod_produto , VLR_ANTIGO = OLD.vlr_produto , VLR_NOVO = NEW.vlr_produto , DT_ALTERACAO = DATA;END $$

Page 81: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Triggers

• Após alterarmos algum dado na tabela produtos é disparado a trigger tr_produp que fará automaticamente uma inserção na tabela de histórico.

• Para testarmos, pode-se alterar o valor de um produto de R$ 22,00 para R$ 25,00.

• UPDATE produtos SET vlr_produto = 25.00 WHERE cod_produto = 1;

Page 82: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Triggers

• Após a atualização, se dermos um SELECT na tabela HISTÓRICO teremos como resultado:

• SELECT * FROM historico;

Page 83: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Introdução às consultas• Uma consulta é uma solicitação de resultados de

dados, de ação sobre os dados ou ambas.

Page 84: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Para que servem as consultas

• Revisar, adicionar, alterar ou excluir dados de seu banco de dados.

• Também é possível: – filtrar dados, executar cálculos com os dados,

resumir os dados e automatizar muitas tarefas de gerenciamento de dados.

Page 85: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Tipos de consulta

• As consultas que você usa para recuperar dados de uma tabela ou para fazer cálculos são denominadas consultas seleção. As consultas que adicionam, alteram ou excluem dados são denominadas consultas ação.

Page 86: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Outras finalidades• Você também pode usar uma

consulta para fornecer dados para um formulário ou relatório. Em um banco de dados bem estruturado, os dados que você deseja apresentar usando um formulário ou relatório geralmente estão localizados em várias tabelas diferentes. Usando uma consulta, você pode reunir os dados que deseja usar antes de criar seu formulário ou relatório.

Page 87: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Na prática então:• Pode-se responder perguntas muito

específicas sobre seus dados que seriam difíceis de responder observando os dados da tabela diretamente.

• Você pode usar consultas para e para revisar alterações nos dados antes de confirmar essas alterações.

??

Page 88: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Operações com Consultas

• Examinar um subconjunto de dados em uma tabela• Revisar dados de mais de uma tabela simultaneamente• Fazer variações de uma pergunta usando parâmetros com

uma consulta• Fazer cálculos com base nos dados• Examinar dados resumidos ou agregados• Criar uma nova tabela usando dados de outras tabelas• Adicionar dados a uma tabela usando dados de outras tabelas• Alterar dados de modo automatizado• Excluir dados de modo automatizado

Page 89: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Examinar um subconjunto de dados em uma tabela

• Quando você usa tabelas para registrar transações ou armazenar dados numéricos recorrentes, é útil poder revisar esses dados de forma agregada, como em somas ou médias.

• O Microsoft Office Access 2007 fornece um novo recurso, a linha Total, que permite revisar dados agregados simples em qualquer folha de dados.

• Folha de dados: dados de uma tabela, um formulário, uma consulta, um modo de exibição ou um procedimento armazenado exibido em um formato de linha e coluna.

Page 90: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Revisar dados de mais de uma tabela simultaneamente

• As tabelas em um banco de dados bem estruturado têm relações (relação: uma associação estabelecida entre campos comuns (colunas) em duas tabelas. A relação pode ser um-para-um, um-para-muitos ou muitos-para-muitos.) lógicas umas com as outras. Essas relações existem com base nos campos que as tabelas têm em comum. Quando deseja revisar dados de tabelas relacionadas, você usa uma consulta seleção.

Page 91: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo:• Suponha que você deseje revisar pedidos de clientes situados em uma

cidade específica. • Os dados sobre pedidos e os dados sobre clientes são armazenados em

duas tabelas no mesmo banco de dados. • Cada tabela tem um campo Código do Cliente, que constitui a base de

uma relação um-para-muitos entre as duas tabelas. • Você pode criar uma consulta que retorne pedidos de clientes em uma

cidade específica, por exemplo, Las Vegas,

Pedidos ClientesConsulta Pedidos Consulta Pedidos

Page 92: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Fazer variações de uma pergunta usando parâmetros com uma

consulta• Em algumas situações, talvez você deseje executar uma

consulta que é apenas ligeiramente diferente de uma consulta existente.

• Você pode alterar a consulta original para usar os novos critérios; contudo, se você freqüentemente deseja executar variações de uma consulta específica, considere a possibilidade de usar uma consulta parâmetro.

• Ao ser executada, uma consulta parâmetro solicita valores de campos e, em seguida, usa os valores fornecidos para criar critérios para a consulta.

Page 93: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Fazer cálculos com base nos dados

• Não é recomendável armazenar valores calculados nas tabelas no mesmo banco de dados.

Page 94: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo:

• A tabela Detalhes do Pedido não armazena subtotais de produtos, porque o subtotal para qualquer produto é calculado usando dados que estão armazenados nos campos Quantidade, Preço Unitário e Desconto da tabela Detalhes do Pedido.

Page 95: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Considerações importantes:

• Em alguns casos, os valores calculados podem ficar desatualizados, porque os valores em que se baseiam mudam.

• Por exemplo, não convém armazenar a idade de alguém em uma tabela, porque, todo ano, você teria que atualizar o valor; em vez disso, armazena-se a data de nascimento da pessoa e usa-se uma expressão em uma consulta para calcular a idade da pessoa.

Page 96: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Examinar dados resumidos ou agregados

• Quando você usa tabelas para registrar transações ou armazenar dados numéricos recorrentes, é útil poder revisar esses dados de forma agregada, como em somas ou médias.

Page 97: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Criar uma nova tabela usando dados de outras tabelas

• Você pode usar uma consulta criar tabela para criar uma nova tabela a partir de dados armazenados em outras tabelas.

Tab 1

Tab 2Tab 2

Consulta

Page 98: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo:

• Por exemplo, suponha que você deseje enviar dados de pedidos de Ribeirão Preto a um parceiro comercial para preparar relatórios.

• Em vez de enviar todos os dados de pedidos, você deseja restringir os dados enviados a dados específicos de pedidos de Ribeirão Preto.

• Você pode criar uma consulta seleção que contenha dados de pedidos de Ribeirão Preto e usar a consulta seleção para criar a nova tabela .

Page 99: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Adicionar dados a uma tabela usando dados de outras tabelas

• Você pode usar uma consulta acréscimo para recuperar dados de uma ou mais tabelas e adicionar esses dados a outra tabela.

Page 100: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo:

• Suponha que você tenha criado uma tabela para compartilhá-la com um parceiro comercial de São Paulo, mas tenha percebido que o parceiro também trabalha com clientes da área de Campinas.

• Você deseja adicionar linhas que contenham dados da área de Campinas à tabela antes de compartilhá-la com seu parceiro.

Page 101: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SQL – Definição

• 1. Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional.

• 2. A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra e Cálculo Relacional.

Page 102: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Álgebra relacional

• É uma coleção de operações utilizadas para manipular relações ( Tabelas). Essas operações são usadas para selecionar tuplas (registros) de uma determinada relação ou para combinar tuplas relacionadas a diversas relações com o propósito de especificar uma consulta - uma requisição de recuperação - sobre a base de dados.

Page 103: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Álgebra relacional

• As operações da álgebra relacional são normalmente divididas em dois grupos. O primeiro deles inclui um conjunto de operações da teoria de conjuntos.

• As operações são UNION, INTERSECTION, DIFFERENCE e CARTESIAN PRODUCT.

• O segundo grupo consiste de operações desenvolvidas especificamente para bases de dados relacionais, tais como:

• SELECT, PROJECT e JOIN entre outras.

Page 104: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplo• Por exemplo, suponha que se deseja selecionar as tuplas de todos os

empregados que ou trabalham no departamento 4 com salário superior a R$2.500,00 ou trabalham no departamento 5 e ganham mais que

• R$3.000,00. • Neste caso, pode-se especificar a consulta da seguinte forma:• σ (NDEP = 4 AND SALÁRIO > 2500) OR (NDEP = 5 AND SALÁRIO > 3000)

(EMPREGADO)

Page 105: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Resultado• σ (NDEP = 4 AND SALÁRIO > 2500) OR (NDEP = 5 AND SALÁRIO > 3000)

(EMPREGADO)

Page 106: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SQL

• Breve Histórico• O SQL foi desenvolvido originalmente no início dos anos 70 nos

laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd.

• O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada).

Edgar Frank Codd

Page 107: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

SQL - Componentes

• Linguagem de definição de dados (DDL)• Linguagem interativa de manipulação de

dados (DML)• • Incorporação DML (Embedded SQL)• • Definição de Visões• • Autorização• • Integridade• • Controle de Transações

Page 108: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

A linguagem SQL

• É um grande padrão de banco de dados. • Simplicidade e facilidade de uso.• Ela se diferencia de outras linguagens de consulta a

banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele.

• Ela é uma linguagem declarativa em oposição a outras linguagens procedurais.

• Ciclo de aprendizado reduzido.

Page 109: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

“Dialetos” SQL• Embora o SQL tenha sido originalmente criado pela IBM, rapidamente

surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987.

• O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente.

Page 110: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Revisões na SQL

• O SQL:1999 usa expressões regulares de emparelhamento, queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de tipos não-escalados e algumas características de orientação a objeto.

• O SQL:2003 introduz características relacionadas ao XML, seqüências padronizadas e colunas com valores de auto-generalização (inclusive colunas-identidade).

Page 111: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Padrões nos SGBDs

• O SQL, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados.

• Teoricamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais.

Page 112: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exemplos em SGBDs

• Permite que o código em linguagem procedural possa ser embutido e interagir com o banco de dados.

• Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens.

Page 113: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DML - Linguagem de Manipulação de Dados

• A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados.

• INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente.

• UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.

• DELETE permite remover linhas existentes de uma tabela.

Page 114: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DDL - Linguagem de Definição de Dados

• Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL.

• Os comandos básicos da DDL são poucos• CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados. • DROP apaga um objeto do banco de dados. • Alguns sistemas de banco de dados usam o comando ALTER, que permite ao

usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente.

• outros comandos DDL:• ALTER TABLE • CREATE INDEX • ALTER INDEX • DROP INDEX • CREATE VIEW

• DROP VIEW

Page 115: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DCL - Linguagem de Controle de Dados

• DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.

• Duas palavras-chaves da DCL:• GRANT - autoriza ao usuário executar ou setar operações. • REVOKE - remove ou restringe a capacidade de um usuário de

executar operações. • outros comandos DCL:• ALTER PASSWORD • CREATE SYNONYM

Page 116: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DTL - Linguagem de Transação de Dados

• BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não.

• COMMIT envia todos os dados das mudanças permanentemente. • ROLLBACK faz com que as mudanças nos dados existentes desde que o

último COMMIT ou ROLLBACK sejam descartadas. • COMMIT e ROLLBACK interagem com áreas de controle como transação e

locação. Ambos terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.

Page 117: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

DQL - Linguagem de Consulta de Dados

• Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas.

Page 118: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Cláusulas

• As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta.

• FROM - Utilizada para especificar a tabela que se vai selecionar os registros.

• WHERE – Utilizada para especificar as condições que devem reunir os registros que serão selecionados.

• GROUP BY – Utilizada para separar os registros selecionados em grupos específicos.

• HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.

• ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.

• DISTINCT – Utilizada para selecionar dados sem repetição.

Page 119: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Operadores Lógicos

• AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam corretos.

• OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto.

• NOT – Negação lógica. Devolve o valor contrário da expressão.

Page 120: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Operadores Relacionais• < – Menor que• > – Maior que• <> – Diferente de• <= – Menor ou Igual que• >= – Maior ou Igual que• = – Igual a• BETWEEN – Utilizado para especificar um intervalo de valores.• LIKE – Utilizado na comparação de um modelo e para especificar

registros de um banco de dados."Like" + extensão % vai significar buscar todos resultados com o mesmo início da extensão.

Page 121: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Funções de Agregação

• As funções de soma se usam dentro de uma cláusula SELECT em grupos de registros para devolver um único valor que se aplica a um grupo de registros.

• AVG – Utilizada para calcular a media dos valores de um campo determinado.

• COUNT – Utilizada para devolver o número de registros da seleção.• SUM – Utilizada para devolver a soma de todos os valores de um campo

determinado.• MAX – Utilizada para devolver o valor mais alto de um campo

especificado.• MIN – Utilizada para devolver o valor mais baixo de um campo

especificado.

Page 122: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Sistemas de G Banco de Dados que usam SQL

• Apache Derby • Caché • DB2 • Firebird • HSQLDB , banco de dados implementado em Java • Informix • Ingres • InterBase • Microsoft SQL Server • MySQL • Oracle • PointBase PointBase, banco de dados relacional implementado em Java • PostgreSQL • SQLite • LiteBase Mobile Dedicado a plataformas móveis tais como: Palm OS, Pocket PC, WinCE, Symbian • Sybase Adaptive Server Enterprise

Page 123: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exercícios

• Responda:• 1. O que é algebra relacional?• 2. Qual o significado da sigla SQL?• 3. Quais os tipos de linguagem para BD?• 4. Quais as cláusulas possíveis para o comando

SELECT?• 5. Para criar e popular uma determinada tabela,

quais os comandos usados respectivamente?

Page 124: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Webibliografia• Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. DCC-

IME-USP – Fevereiro – 2005

• Wikipedia.com em SQL

Page 125: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

ExercíciosPrática 1 – Manipulação de objetos no

MySQL, via SQLYog ,Verificação do serviço MySQL, conexão com MySQL através do MySQL Yog, criação Banco de Dados: Escola, criação tabela alunos

Prática 2 – Definindo chaves MySQL

Page 126: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exercício

• Desenvolver as consultas para a as tabelas criadas no banco de dados do trabalho individual.

Page 127: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Exercício

• Utilizando MS Access 2003, crie o banco e construa a estrutura principal das seguintes tabelas para a proposta do trabalho 1.

• Nome do banco: transportadora x• Tabelas: Aviões, Pilotos, Dependentes e Vôos.

Page 128: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Glossário• Campo Chave Primária identifica de maneira única cada registro de uma

Tabela, isto é, de posse do valor da Chave Primária somente localizaremos um registro com aquele valor no campo Chave Primária. Outros exemplos de campos que podem ser definidos como chaves primária: Campo CPF, Campo CNPJ em uma tabela de cadastro de fornecedores. ,Matrícula do aluno em uma tabela de cadastro de alunos, Código da Peça em uma tabela de cadastro de peças, Matrícula do funcionário em uma tabela de cadastro de funcionários.Número do pedido em uma tabela de cadastro de pedidos

• Chave estrangeira Um esquema de relação pode incluir entre seus atributos a chave primária de outro esquema. Essa chave é chamada chaveestrangeira.

• O atributo nome_agência em Conta é uma chave estrangeira, jáque é chave primária em Agencia.

Page 129: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Bibliografia• Izabel Cristina Mioranza, Banco de Dados - Conceitos e

Definições, Unopar, 2007. • Guia de referencia MySql 5.0, disponível em Mysql.com• Julio César Martini ,Imasters.com, Mysql 5.

Page 130: Banco de Dados I Resumo – 1 Bimestre 4P/SI – 2010/02 Prof. Carlos Alberto Seixas.

Webibliografia

• http://pt.wikiversity.org/• Nigro, M. Conceitos fundamentais em sistema

de banco de dados e aplicações, 2009. • www.unicamp.br – CUECC – Modelos de

dados• Microsoft Office online, disponível em

http://office.microsoft.com/