Sie sind auf Seite 1von 23

BANCO DE DADOS I

Modelo Fsico de Dados


Linguagem SQL

Prof . Gladistone

Modelo Fsico de Dados


Objetivos Construo do Modelo Fsico de Dados Gerao do Script do Banco de Dados Criao do Banco de Dados Incluso de Dados (popular o banco) Utilizao da Linguagem SQL (consultas)
Prof . Gladistone
2

Modelo Fsico de Dados


Construo: Baseado no Modelo Lgico de Dados
Textual ou D E R (Lgico)

Conhecimento do SGBD a ser utilizado Utilizao de SQL (DML)


Data Manipulating Language
Prof . Gladistone
3

Modelo Fsico de Dados


Modelo Conceitual => Lgico

Prof . Gladistone

Modelo Fsico de Dados


Modelo Lgico:
PRODUTO=Codigo(PK) Serial, Nome(NN) Varchar(30), ValUnit(NN) Money CLIENTE=Codigo(PK) Serial, Nome(NN) Varchar(80), Fone Varchar(15) VENDEDOR=RG(PK) Integer, Nome(NN) Varchar(80) PEDIDO=Numero(PK) Serial, RGVend(FK1) Integer (NN), CodCli(FK2) Integer (NN), Data(NN) Date, Total Money RGVend REFERENCIA Vendedor(RG) CodCli REFERENCIA Cliente(Codigo) ITEMPEDIDO=CodProd(PK)(FK1) Integer, NumPed(PK)(FK2) Integer, ValorItem Money (NN), Quantidade Integer (NN) CodProd REFERENCIA Produto(Codigo) NumPed REFERENCIA Pedido(Numero)
Prof . Gladistone
5

Linguagem SQL
Structure Query Language (SQL):
Data Definition Language (DDL) Padro do SQL para definio de estrutura de dados. Usado para:
Criao de script para gerao do BD (Modelo Fsico) Alterao de estrutura de dados j existentes

manipulao de dados. Usado para:


Consultar dados

Data Manipulation Language (DML) Padro do SQL para

Alterar, Inserir e excluir valores (registros) de tabelas Montagem de relatrios, em aplicaes (sistemas)
Prof . Gladistone
6

Linguagem SQL
SQL DDL:
Criao do Banco de Dados no SQBD: CREATE DATABASE nome_do_banco; Criao de Tabelas: CREATE TABLE nome_da_tabela( campo1 campo2 campo2 ); tipo_dado tipo_dado tipo_dado restrio, restrio, restrio

restrio: Not Null ou Unique

Prof . Gladistone

Linguagem SQL
SQL DDL:
Definio de Tipo de Dados de Campo:
Integer => inteiro Varchar(tamanho) => caractere varivel Date => datas Time => hora Serial => inteiro (auto incremental) Money => monetrio (obsoleto) Number ou Decimal (tamanho, preciso) => nmero fracionrio

Definio de Restrio de Campo:


Not Null => para obrigatoriedade de dado Unique => valor nico (chave candidata)
Prof . Gladistone
8

Linguagem SQL
SQL DDL:
Criao de Chave Primria (PK):
CONSTRAINT nome_chave PRIMARY KEY (campo);

Criao de Chave Estrangeira (FK):


CONSTRAINT nome_chave FOREIGN KEY (campo) REFERENCES outra_tabela (campo pk);

Prof . Gladistone

Linguagem SQL
SQL DML:
Criao de Consulta simples: FROM nome_tabela SELECT campo1, campo2, , campoN WHERE campo = valor Exemplo:

ORDER BY campo2, campo3, ..., campoN ; SELECT nomecli, endereco FROM cliente WHERE codcli=3

ORDER BY endereco, nomecli ;


Prof . Gladistone
10

Linguagem SQL
SQL DML:
Criao de Consulta com duas tabelas relacionadas: Exemplo Modelo Lgico: CATEGORIA=codcategoria(PK), nome Varchar(20) (NN) PRODUTO=codprod(PK) integer, codcat(FK) integer (NN), nome Varchar(30) (NN) codcat referencia categoria(codcategoria) Deseja-se saber o nome das categorias, os cdigos e nomes de todos os produtos cadastrados no banco de dados, ordenados pelos cdigos dos produtos: SELECT c.nome, p.codprod, p.nome FROM categoria c, produto p WHERE (c.codcategoria = p.codcat) ORDER BY p.codprod
Prof . Gladistone
11

Linguagem SQL
SQL DML:
Contagem de registros de uma Tabela: Usar o COUNT. Exemplo: (informar o total de produtos cadastrados) SELECT COUNT(codprod) FROM produto; Soma de valores de um determinado campo da Tabela: Usar o SUM. Exemplo: (informar o valor total de pedidos cadastrados) SELECT SUM(total) FROM pedido;
Prof . Gladistone
12

Linguagem SQL
SQL DML:
Incluso de registros em uma Tabela: Usar o INSERT INTO. Exemplo: (criar um registro na tabela produto)
INSERT INTO produto(codprod, nome, valunit) VALUES (100, 'Cadeira', '12.99'); ou INSERT INTO produto VALUES (100, 'Cadeira', '12.99');

Excluir determinado registro de uma Tabela: Usar o DELETE. Exemplo: (excluir o produto cujo cdigo igual a 100)
DELETE FROM produto WHERE (codprod = 100);
Prof . Gladistone
13

Modelo Fsico de Dados


Voltando ao Modelo Fsico:
Agora temos condies de criar o Modelo Fsico de Dados Para o nosso exemplo do Modelo Lgico anterior, teremos o seguinte Script:

Prof . Gladistone

14

Modelo Fsico de Dados


Modelo Fsico (script):
/* tabela produto */ CREATE TABLE produto ( codigo nome valUnit );
Prof . Gladistone
15

serial money

NOT NULL, NOT NULL,

varchar(30) NOT NULL,

CONSTRAINT pk_produto PRIMARY KEY(codigo)

Modelo Fsico de Dados


Modelo Fsico (script):
/* tabela cliente */ CREATE TABLE cliente ( codigo nome fone ); serial varchar(80) varchar(15), NOT NULL, NOT NULL,

CONSTRAINT pk_cliente PRIMARY KEY(codigo)

Prof . Gladistone

16

Modelo Fsico de Dados


Modelo Fsico (script):
/* tabela vendedor */ CREATE TABLE vendedor ( rg nome
);

integer varchar(80)

NOT NULL, NOT NULL,

CONSTRAINT pk_vendedor PRIMARY KEY(rg)

Prof . Gladistone

17

Modelo Fsico de Dados


Modelo Fsico (script):
/* tabela pedido */ CREATE TABLE pedido ( numero rgvend codcli data total serial integer integer date money, NOT NULL, NOT NULL, NOT NULL,

NOT NULL,

CONSTRAINT pk_pedido PRIMARY KEY(numero), CONSTRAINT fk_vendedor FOREIGN KEY(rgvend) REFERENCES vendedor(rg), CONSTRAINT fk_cliente FOREIGN KEY(codcli) REFERENCES cliente(codigo)

);

Prof . Gladistone

18

Modelo Fsico de Dados


Modelo Fsico (script):
/* tabela itempedido */ CREATE TABLE itempedido ( codprod numped valoritem integer integer money NOT NULL, NOT NULL, NOT NULL, NOT NULL,

quantidade integer

CONSTRAINT pk_itempedido PRIMARY KEY(codprod, numped), CONSTRAINT fk_produto FOREIGN KEY(codprod) REFERENCES produto(codigo), pedido(numero) ); CONSTRAINT fk_pedido FOREIGN KEY(numped) REFERENCES

Prof . Gladistone

19

Implantao do Banco de Dados


Criao do Banco de Dados:
Criao do banco de dados no SGBD escolhido

Rodar o Script para criar as tabelas e constraints; Pronto! Agora o banco de dados est pronto para ser usado!
Prof . Gladistone
20

Manipulao de Dados
Populao das Tabelas:
Tabela PRODUTO: Incluir cinco registros, usando o seguinte comando: INSERT INTO produto (nome, valunit) VALUES('caneta', 'R$2,30'); Tabela CLIENTE: Incluir cinco registros, usando o seguinte comando: INSERT INTO cliente (nome, fone) VALUES('ana', '9999-0000'); Tabela VENDEDOR: Incluir cinco registros, usando o seguinte comando: INSERT INTO vendedor (rg, nome) VALUES(1111, 'paulo');
Prof . Gladistone
21

Manipulao de Dados
Populao das Tabelas:
Tabela PEDIDO: Incluir registros, usando o seguinte comando: INSERT INTO pedido (rgvend, codcli, data, total) VALUES(1111, 1, '22/11/2010','R$112,30'); Tabela ITEMPEDIDO: Incluir cinco registros, usando o seguinte comando: INSERT INTO itempedido (codprod, numped, valoritem, quantidade) VALUES(1, 1, 'R$2,32', 13); Obs.: os valores dos campos dos registros inseridos devem ser diferentes, para caracterizarem novas tuplas
Prof . Gladistone
22

Consulta no Banco de Dados


Exerccios: (Usar o BD desta aula)
1) Use um comando SQL para informar o total de clientes cadastrados. 2) Fazer uma relao de pedidos cadastrados (todos os campos), ordenada, de forma crescente, pela data e total? 3) Apresentar uma relao de pedidos contendo: nmero e data do pedido e nome do cliente que fez cada pedido. 4) Qual o nome do vendedor e do cliente que realizou o pedido cujo nmero igual a 3? 5) Escreva o comando SQL que informa o somatrio dos valores totais de todos os pedidos?

Prof . Gladistone

23

Das könnte Ihnen auch gefallen