tecnicas e linguagens para banco de dados i

35
Técnicas e Linguagens para Banco de Dados I Prof. Eduardo Ribeiro www.eduardo.trisolution.com.br eduardo@ trisolution.com.br

Upload: anderson-aguiar

Post on 30-Jun-2015

193 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecnicas e Linguagens para Banco de Dados I

Técnicas e Linguagens para Banco de

Dados I

Prof. Eduardo Ribeiro

www.eduardo.trisolution.com.br

eduardo@ trisolution.com.br

Page 2: Tecnicas e Linguagens para Banco de Dados I

Introdução – Banco de Dados

Dados x Informações

Dados = É um elemento que mantém a sua forma

bruta (texto, imagens, sons, vídeos, etc.)

Informações = Significado dos dados para um

determinado usuário! (Dados compilados e

processados)

Page 3: Tecnicas e Linguagens para Banco de Dados I

Conceitos

Sistema de Bancos de Dados: É um software com

recursos específicos para facilitar a manipulação

das informações dos bancos de dados e o

desenvolvimento de programas aplicativos (Oracle,

SQLServer, Paradox, Access, DBase).

Possui quatro componentes principais:

o Dados

o Hardware

o Software

o Usuários

Page 4: Tecnicas e Linguagens para Banco de Dados I

Componentes de um Sistema de BD

Page 5: Tecnicas e Linguagens para Banco de Dados I

Linguagem de Banco de Dados

SQL (Structured Query Language – Linguagem de

consulta estruturada) é uma linguagem usada para a

consulta, atualização, criação e gerenciamento de

banco de dados relacionais. É um método para

selecionar determinados registros de um banco de

dados, seguindo um critério especificado a sua

escolha. O SQL é considerado uma linguagem

padrão para o gerenciamento de banco de dados

relacionais.

Page 6: Tecnicas e Linguagens para Banco de Dados I

Linguagem de Banco de Dados

Alguns Tipos de Dados

o Char;

o VarChar;

o Integer;

o Float;

o Decimais;

o Datas;

Page 7: Tecnicas e Linguagens para Banco de Dados I

Linguagens de Definição e Manipulação

de Dados

Exemplo de SQL:

CREATE TABLE cliente (

nome VARCHAR(50),

cidade VARCHAR(35),

rua VARCHAR(30)

)

TABLE cliente

João Curitiba Albino Sartori

Maria Marília Av Republica

Page 8: Tecnicas e Linguagens para Banco de Dados I

Segurança em Banco de Dados

Os bancos de dados são utilizados para armazenar

diversos tipos de informações, desde dados sobre

uma conta de e-mail até dados importantes da

Receita Federal. Para tal existem diversos tipos, os

quais variam em complexidade e sobretudo em

segurança.

Fonte: http://pt.wikipedia.org

Page 9: Tecnicas e Linguagens para Banco de Dados I

Meios de Proteger as Informações

Armazenadas num Banco de Dados

Criptografia

o São técnicas pelas quais a informação pode ser

transformada da sua forma original para outra ilegível, de

forma que possa ser conhecida apenas por seu

destinatário, o que a torna difícil de ser lida por alguém

não autorizado. Assim sendo, só o receptor da

mensagem pode ler a informação com facilidade.

Page 10: Tecnicas e Linguagens para Banco de Dados I

MD5

o Foi desenvolvido em 1991 por Ronald Rivest para

suceder ao MD4 que tinha alguns problemas de

segurança. Por ser um algoritmo unidirecional, uma

hash md5 não pode ser transformada novamente no

texto que lhe deu origem. O método de verificação

é, então, feito pela comparação das duas hash (uma

da base de dados, e a outra da tentativa de login).

Eduardo = MD5( 364a440226e1b575411a0e324e712d17 )

eduardo = MD5( 6d6354ece40846bf7fca65dfabd5d9d4 )

Page 11: Tecnicas e Linguagens para Banco de Dados I

Meios de Proteger as Informações

Armazenadas num Banco de Dados

Senhas

o É uma palavra ou uma ação secreta previamente

convencionada entre duas partes como forma de

reconhecimento.

Backup

o Em informática, cópia de segurança é a cópia de dados

dum dispositivo de armazenamento a outro para que

possam ser restaurados em caso da perda dos dados

originais, o que pode envolver apagamentos acidentais

ou corrupção de dados.

Page 12: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

O modelo de dados relacional apresenta o

banco de dados como uma coleção de tabelas.

O conceito de tabela, embora seja simples e

intuitivo, apresenta uma forte correspondência

com o conceito matemático de uma relação.

Um banco de dados relacional consiste de uma

coleção de relações, cada uma das quais

associada a um nome único.

Page 13: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

Chave Primária: a chave primária de uma

relação é o atributo ou coleção de atributos que

identifica univocamente uma dada tupla (linha).

Por exemplo, um dado código identifica uma

única linha (um vendedor específico). Assim,

COD-VEND é a chave primária da relação

VENDEDOR.

Page 14: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

Chave primária simples, é formada por um único campo

da tabela, esse campo não pode ter dois ou mais

registros de mesmo valor, e também não pode conter

nenhum registro nulo.

Chave primária composta, formada por mais de um

campo, os valores de cada campo podem se repetir, mas

não a combinação desses valores. Exemplo: a tabela

'Livros_Autores' tem como chave primária (cod_livro,

cod_autor). Podem existir nessa tabela os registros:

(5, 9), (5, 10), (4, 9), (9, 5)

Mas não podem existir dois registros (5, 9).

Fonte: http://pt.wikipedia.org

Page 15: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

Chave Estrangeira: a noção de chave

estrangeira oferece um mecanismo para

especificar explicitamente relacionamentos entre

duas relações diferentes. Consiste em incluir a

chave primária de uma relação como atributo da

outra.

Page 16: Tecnicas e Linguagens para Banco de Dados I

Entidades / Atributos

Entidades: têm existência própria.

Exemplo: Aluno, Cliente, Produto.

Atributos: os atributos da entidade Aluno são:

Número da matrícula

Nome

Endereço

Data nascimento

Page 17: Tecnicas e Linguagens para Banco de Dados I

Tipos de Relacionamentos Possíveis no

MER

Um para um (1 para 1) - indica que as tabelas têm relação unívoca

entre si. Você escolhe qual tabela vai receber a chave estrangeira;

Um para muitos (1 para N) - a chave primária da tabela que tem o

lado 1 vai para a tabela do lado N. No lado N ela é chamada de

chave estrangeira;

Muitos para muitos (N para N) - quando tabelas têm entre si relação

n..n, é necessário criar uma nova tabela com as chaves primárias

das tabelas envolvidas, ficando assim uma chave composta, ou seja,

formada por diversos campos-chave de outras tabelas. A relação

então se reduz para uma relação 1..n, sendo que o lado n ficará com

a nova tabela criada.

Os relacionamento 1 para 1 e 1 para N podem ser mapeados diretamente em

chaves estrangeiras nas tabelas originais. Já o relacionamento N para N

exige o uso de uma tabela auxiliar.

Fonte: http://pt.wikipedia.org/wiki/Banco_de_dados_relacional

Page 18: Tecnicas e Linguagens para Banco de Dados I

Tipos de Relacionamentos Possíveis no

MER

Page 19: Tecnicas e Linguagens para Banco de Dados I

Modelagem de dados

Modelagem de dados ou modelagem de banco de dados envolve uma

série de aplicações teóricas e práticas, visando construir um modelo de

dados consistente, não redundante e perfeitamente aplicável em

qualquer SGBD moderno.

A modelagem de dados está dividida em:

Modelo conceitual

Modelo lógico

Modelo físico

Page 20: Tecnicas e Linguagens para Banco de Dados I

Modelo conceitual

A modelagem conceitual é a forma mais natural dos fatos e estão mais

próximas da realidade do ambiente do cliente. No modelo conceitual o cliente

deverá ser envolvido a fim de obter o levantamento de dados que darão

suporte à construção de todo o modelo.

Page 21: Tecnicas e Linguagens para Banco de Dados I

Modelo Físico / Modelo Lógico

* = Muitos

O modelo lógico já leva

em conta algumas

limitações e implementa

recursos como

adequação de padrão e

nomenclatura. Define as

chaves primárias e

estrangeiras. deve ser

criado levando em conta

os exemplos de

modelagem de dados

criados no modelo

conceitual.

Page 22: Tecnicas e Linguagens para Banco de Dados I

Modelo Físico / Modelo Lógico

No modelo físico fazemos

a modelagem física do

modelo de banco de

dados. Leva-se em conta

as limitações impostas

pelo SGBD escolhido e

deve ser criado sempre

com base nos exemplos

de modelagem de dados

produzidos no item

anterior, modelo lógico.

Page 23: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

Representação Simplificada: uma estrutura de tabela

pode ter a seguinte representação simplificada:

NOME-DA-TABELA=(LISTA-DE-ATRIBUTOS)

Nessa representação grifa-se a chave primária da relação para

destacá-la.

Exemplo:

CLIENTE(COD-CLI, NOME-CLI, ENDEREÇO, LIM-CRED, COD-

VEND)

VENDEDOR(COD-VEND, NOME-VEND, COMISSAO, CPF_VEND)

Page 24: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

CLIENTE(COD-CLI, NOME-CLI, ENDEREÇO, LIM-CRED, COD-VEND)

VENDEDOR(COD-VEND, NOME-VEND, COMISSAO, CPF_VEND)

COD-VEND NOME-VEND COMISSAO CPF_VEND

45852 SERGIO 10 254.425.658-58

57658 MARCOS 15 156.426.810-15

74253 JOAO 10 104.081.741-62

COD-CLI NOME-CLI ENDERECO LIM-CRED COD-VEND

2584 BAR X R. DAS BROMELIAS, 45 5600 45852

3245 RESTAURANTE Y R. DAS ROSAS, 94 4200 57658

1256 BAR Z R. DAS ORQUIDEAS, 2 9800 45852

5740 CANTINA W R. DAS VIOLETAS, 34 7500 74253

Page 25: Tecnicas e Linguagens para Banco de Dados I

SETOR FUNCIONARIO

ID_SETOR

DESCRICAO

COD_FUNCIONARIO

NOME

SALARIO

1 N

SETOR

* ID_SETOR

DESCRICAO

FUNCIONARIO

* COD_FUNCIONARIO

NOME

SALARIO

CPF

ID_SETOR (FK)SETOR (ID_SETOR, DESCRICAO)

FUNCIONARIO (COD_FUNCIONARIO, NOME, SALARIO, CPF, ID_SETOR)

Diagrama de Entidade Relacionamento (DER)

Page 26: Tecnicas e Linguagens para Banco de Dados I

Modelo Relacional

SETOR (ID_SETOR, DESCRICAO)

FUNCIONARIO (COD_FUNCIONARIO, NOME, SALARIO, ID_SETOR)

SETORPK (Chave

Primária)

Campo Tipo Tamanho Nulo FK (Chave

Estrangeira)

CK (Regra de Validação)

PK_SETOR ID_SETOR NUMBER (3) N

DESCRICAO VARCHAR2 (30) N CK_SETOR_DESCRICAO

(DESCRICAO <> ‘’)

FUNCIONARIOPK Campo Tipo Tamanho Nulo FK CK

PK_FUNCIONARIO COD_FUNCIONARIO NUMBER (5) N

NOME VARCHAR2 (50) N

SALARIO NUMBER (8,2) S CK_FUNC_SALARIO

(SALARIO > 0)

AK_FUNC_CPF CPF CHAR (11) N

ID_SETOR NUMBER (3) S FK_FUNC_SETOR

Page 27: Tecnicas e Linguagens para Banco de Dados I

COD_FUNCIONARIO

NOME

ID_CARGO

DESCRICAO

FUNCIONARIO

* COD_FUNCIONARIO

NOME

CARGO

* ID_CARGO

DESCRICAO

FUNCIONARIO CARGON M

FUNCAO

DATA_INICIO

FUNCAO

* COD_FUNCIONARIO (FK)

* ID_CARGO (FK)

DATA_INICIO

CARGO (ID_CARGO, DESCRICAO)

FUNCIONARIO (COD_FUNCIONARIO, NOME)

FUNCAO (COD_FUNCIONARIO, ID_CARGO, DATA_INICIO)

Diagrama de Entidade Relacionamento (DER)

Page 28: Tecnicas e Linguagens para Banco de Dados I

FUNCAOPK Campo Tipo Tamanho Nulo FK CK

PK_FUNCAO COD_FUNCIONARIO NUMBER (5) N FK_FUNCAO_FUNCIONARIO

PK_FUNCAO ID_CARGO NUMBER (3) N FK_FUNCAO_CARGO

DATA_INICIO DATE N

CARGOPK Campo Tipo Tamanho Nulo FK CK

PK_CARGO ID_CARGO NUMBER (3) N

DESCRICAO VARCHAR2 (30) N

FUNCIONARIOPK Campo Tipo Tamanho Nulo FK CK

PK_FUNCIONARIO COD_FUNCIONARIO NUMBER (5) N

NOME VARCHAR2 (50) N

CARGO (ID_CARGO, DESCRICAO)

FUNCIONARIO (COD_FUNCIONARIO, NOME)

FUNCAO (COD_FUNCIONARIO, ID_CARGO, DATA_INICIO)

Modelo Relacional

Page 29: Tecnicas e Linguagens para Banco de Dados I

COD_MULHER

NOME

ID_HOMEM

FUNCIONARIO

* COD_MULHER

NOME

CARGO

* ID_HOMEM

NOME

COD_MULHER (FK)

MULHER HOMEM1 1

CASAMENTO

HOMEM(ID_CARGO, NOME, COD_MULHER)

MULHER(COD_ MULHER, NOME)

NOME

Diagrama de Entidade Relacionamento (DER)

Page 30: Tecnicas e Linguagens para Banco de Dados I

Administração do Modelo de Dados

Manutenção da Documentação do Projeto Lógico (Modelo)

e Físico (Esquema) do Banco de dados

Métodos de Atualização:

Engenharia Direta (Geração do Esquema)

Engenharia Reversa

Comparação Modelo x Esquema (Sincronização)

Utilização de Ferramentas Case

Page 31: Tecnicas e Linguagens para Banco de Dados I

Administração do Modelo de Dados

Entidade_X

Entidade_Y

Modelo Relacional

Engenharia Direta (Geração de Esquema)

Esquema

Físico

Page 32: Tecnicas e Linguagens para Banco de Dados I

Administração do Modelo de Dados

Entidade_X

Entidade_Y

Esquema

Físico

Modelo Relacional

Engenharia Reversa

Page 33: Tecnicas e Linguagens para Banco de Dados I

Administração do Modelo de Dados

Entidade_X

Entidade_Y

Esquema

Físico

Modelo Relacional

Comparação Modelo x Esquema (Sincronização)

Page 34: Tecnicas e Linguagens para Banco de Dados I

Administração do Modelo de Dados

Ferramentas Case

Dr. Case (www.squadra.com.br)

ER/Studio (www.embarcadero.com)

DB-MAIN (www.db-main.be)

DBDesigner (www.fabforce.net/dbdesigner4)

ER-WIN (www.ca.com/us/products/product.aspx?id=260)

Page 35: Tecnicas e Linguagens para Banco de Dados I

Exercício: Modelo conceitual, Modelo

Lógico e Modelo Físico.

CEP

CPF

RG

Ocupação

Sexo

Estado civil

Complemento

Nome

Endereço

Telefone

Data Nascimento

Estado

Cidade

Cadastro de Pessoa

Email

Telefone Comercial

Celular

Ramal

FAX