Técnicas e Linguagens para Banco de
Dados I
Prof. Eduardo Ribeiro
www.eduardo.trisolution.com.br
eduardo@ trisolution.com.br
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)
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
o
o
o
Dados
Hardware
Software
Usuários
Componentes de um Sistema de BD
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.
Linguagem de Banco de Dados

Alguns Tipos de Dados
o
o
o
o
o
o
Char;
VarChar;
Integer;
Float;
Decimais;
Datas;
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
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
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.
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 )
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.
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.
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.
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
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.
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
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
Tipos de Relacionamentos Possíveis no
MER
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
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.
Modelo Físico / Modelo Lógico
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.
* = Muitos
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.
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, CODVEND)

VENDEDOR(COD-VEND, NOME-VEND, COMISSAO, CPF_VEND)
Modelo Relacional
CLIENTE(COD-CLI, NOME-CLI, ENDEREÇO, LIM-CRED, COD-VEND)
VENDEDOR(COD-VEND, NOME-VEND, COMISSAO, CPF_VEND)
COD-VEND
45852
57658
74253
COD-CLI
2584
3245
1256
5740
NOME-VEND
SERGIO
MARCOS
JOAO
COMISSAO
10
15
10
CPF_VEND
254.425.658-58
156.426.810-15
104.081.741-62
NOME-CLI
BAR X
RESTAURANTE Y
BAR Z
ENDERECO
R. DAS BROMELIAS, 45
R. DAS ROSAS, 94
R. DAS ORQUIDEAS, 2
CANTINA W
R. DAS VIOLETAS, 34
LIM-CRED COD-VEND
5600
45852
4200
57658
9800
45852
7500
74253
Diagrama de Entidade Relacionamento (DER)
COD_FUNCIONARIO
ID_SETOR
NOME
DESCRICAO
SALARIO
SETOR
1
N
FUNCIONARIO
SETOR
FUNCIONARIO
* ID_SETOR
DESCRICAO
* COD_FUNCIONARIO
NOME
SALARIO
CPF
ID_SETOR (FK)
SETOR (ID_SETOR, DESCRICAO)
FUNCIONARIO (COD_FUNCIONARIO, NOME, SALARIO, CPF, ID_SETOR)
Modelo Relacional
SETOR (ID_SETOR, DESCRICAO)
FUNCIONARIO (COD_FUNCIONARIO, NOME, SALARIO, ID_SETOR)
SETOR
PK (Chave
Primária)
Campo
Tipo
Tamanho
Nulo
PK_SETOR
ID_SETOR
NUMBER
(3)
N
DESCRICAO
VARCHAR2
(30)
N
FK (Chave
Estrangeira)
CK (Regra de Validação)
CK_SETOR_DESCRICAO
(DESCRICAO <> ‘’)
FUNCIONARIO
PK
Campo
Tipo
Tamanho
Nulo
NUMBER
(5)
N
NOME
VARCHAR2
(50)
N
SALARIO
NUMBER
(8,2)
S
CPF
CHAR
(11)
N
ID_SETOR
NUMBER
(3)
S
PK_FUNCIONARIO COD_FUNCIONARIO
AK_FUNC_CPF
FK
CK
CK_FUNC_SALARIO
(SALARIO > 0)
FK_FUNC_SETOR
Diagrama de Entidade Relacionamento (DER)
ID_CARGO
COD_FUNCIONARIO
NOME
FUNCIONARIO
DESCRICAO
DATA_INICIO
N
FUNCAO
M
CARGO
FUNCIONARIO
FUNCAO
CARGO
* COD_FUNCIONARIO
NOME
* COD_FUNCIONARIO (FK)
* ID_CARGO (FK)
DATA_INICIO
* ID_CARGO
DESCRICAO
FUNCIONARIO (COD_FUNCIONARIO, NOME)
CARGO (ID_CARGO, DESCRICAO)
FUNCAO (COD_FUNCIONARIO, ID_CARGO, DATA_INICIO)
Modelo Relacional
FUNCIONARIO (COD_FUNCIONARIO, NOME)
CARGO (ID_CARGO, DESCRICAO)
FUNCAO (COD_FUNCIONARIO, ID_CARGO, DATA_INICIO)
FUNCIONARIO
PK
Campo
PK_FUNCIONARIO COD_FUNCIONARIO
NOME
Tipo
Tamanho
Nulo
NUMBER
(5)
N
VARCHAR2
(50)
N
FK
CK
FK
CK
CK
CARGO
PK
Campo
Tipo
Tamanho
Nulo
PK_CARGO
ID_CARGO
NUMBER
(3)
N
DESCRICAO
VARCHAR2
(30)
N
FUNCAO
PK
Campo
Tipo
Tamanho
Nulo
FK
PK_FUNCAO
COD_FUNCIONARIO
NUMBER
(5)
N
FK_FUNCAO_FUNCIONARIO
PK_FUNCAO
ID_CARGO
NUMBER
(3)
N
FK_FUNCAO_CARGO
DATA_INICIO
DATE
N
Diagrama de Entidade Relacionamento (DER)
ID_HOMEM
COD_MULHER
NOME
NOME
MULHER
1
1
CASAMENTO
HOMEM
FUNCIONARIO
CARGO
* COD_MULHER
NOME
* ID_HOMEM
NOME
COD_MULHER (FK)
MULHER(COD_ MULHER, NOME)
HOMEM(ID_CARGO, NOME, COD_MULHER)
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
Administração do Modelo de Dados
Engenharia Direta (Geração de Esquema)
Entidade_X
Esquema
Físico
Entidade_Y
Modelo Relacional
Administração do Modelo de Dados
Engenharia Reversa
Entidade_X
Esquema
Físico
Entidade_Y
Modelo Relacional
Administração do Modelo de Dados
Comparação Modelo x Esquema (Sincronização)
Entidade_X
Esquema
Físico
Entidade_Y
Modelo Relacional
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)
Exercício: Modelo conceitual, Modelo
Lógico e Modelo Físico.
Cadastro de Pessoa
Nome
Endereço
Telefone
Data Nascimento
Estado
Cidade
CEP
CPF
RG
Ocupação
Sexo
Estado civil
Complemento
Email
Telefone Comercial
Celular
Ramal
FAX
Download

Técnicas e Linguagens para Banco de Dados I