Beruflich Dokumente
Kultur Dokumente
Projeto Fsico
(Criando Tabelas e Estrutura de Dados)
Prof. Claudiney
Reviso
Analista:
Entrevista
Necessidade do negcio
Modelagem de dados
Definio: entidade,
atributo, relacionamentos.
Definio de tabelas
ndices, Vises (Projeto Lgico)
Construo do BD
Ling. SQL
Dicionrio de dados
Agenda
Introduo
Tipos de dados
Criao de tabelas
Exemplo
Verificando a estrutura de uma tabela
Constraint
Primary key
Foreign Key
Not null
Check
Padres
Exerccio
Referncias Bibliogrficas
Projeto Fsico
Introduo
Para as prximas aulas, iremos utilizar o software de banco
de dados Oracle.
O Oracle Database 10g Express Edition (Oracle Database XE)
uma verso bsica simplificada do banco de dados Oracle.
Preparei um tutorial a parte para que vocs possam realizar
o download e instalar a ferramenta no qual iremos utilizar.
Acesse o tutorial Instalando o Oracle, instale o aplicativo
para podermos praticar nossas prximas aulas.
Projeto Fsico
Introduo
Nesta etapa que detalhamos o modo de armazenamento interno
dcada de 1970;
Representa o padro para linguagens de SGBD Relacionais, sendo
padronizada pelo comit ANSI/ISO.
Projeto Fsico
Introduo
Quando
os
desenvolvidos,
Bancos
foram
de
Dados
criadas
Relacionais
linguagens
estavam
destinadas
sendo
sua
padro SQL.
A SQL estabeleceu-se como linguagem padro de Banco de Dados
Relacional.
Projeto Fsico
Introduo
SQL apresenta uma srie de comandos que permitem a definio dos
dados, chamada de DDL (Data Definition Language), composta entre
outros pelos comandos Create, que destinado a criao do Banco de
Dados, das Tabelas que o compe, alm das relaes existentes entre
as tabelas. Como exemplo de comandos da classe DDL temos os
Projeto Fsico
Introduo
Os comandos da srie DML (Data Manipulation Language), destinados a
consultas, inseres, excluses e alteraes em um ou mais registros de
uma ou mais tabelas de maneira simultnea.
Projeto Fsico
Introduo
A Linguagem SQL tem como grandes virtudes sua capacidade de
gerenciar ndices, sem a necessidade de controle individualizado de
ndice corrente, algo muito comum nas linguagens de manipulao de
dados do tipo registro a registro. Outra caracterstica muito importante
disponvel em SQL sua capacidade de construo de vises, que so
formas de visualizarmos os dados na forma de listagens independente
das tabelas e organizao lgica dos dados.
Projeto Fsico
Introduo
Outra caracterstica interessante na linguagem SQL a capacidade que
dispomos de cancelar uma srie de atualizaes ou de as gravarmos,
depois de iniciarmos uma sequncia de atualizaes. Os comandos
Projeto Fsico
Regras de Nomeao
Os nomes das tabelas e colunas devem conter de 1-30
caracteres, sendo o 1 caractere alfabtico.
Os nomes devem conter apenas caracteres de a-z, A-Z, 0-9,
_, S e #.
Projeto Fsico
Tipos de Dados
Ao se criar a estrutura de uma tabela necessrio que o usurio fornea, para
cada coluna as seguintes informaes:
Tipo de Dado
Tamanho
Restries
Tipo de Dado
Descrio
CHAR(n)
DATE
LONG
VARCHAR2(n)
NUMBER(n,d)
Projeto Fsico
Restries - CONSTRAINT
As restries so regras bsicas estabelecidas para o preenchimento
de uma ou mais colunas da tabela, e so definidas ao final da
especificao de cada coluna ou ao final do comando.
Entre as restries encontram-se:
Chaves primrias;
Chaves nicas;
Chaves estrangeiras;
Identificadores de campos obrigatrios;
Condies para valores permitidos para determinado campo.
Projeto Fsico
Constraints de integridade de dados
CONSTRAINT
DESCRIO
NOT NULL
UNIQUE
PRIMARY KEY
CHECK
Projeto Fsico
Criao de Tabela
CREATE TABLE nome_tabela
( nome_coluna tipo de dado | constraint_tabela ),
( nome_coluna tipo de dado | constraint_tabela )
Onde:
Nome_tabela o nome da tabela
Nome_coluna o nome da coluna
Tipo de dado o tipo de dado da coluna
Constraint_tabela a constraint ou restrio para a coluna.
Projeto Fsico
Pr requisito para este material
Se logar com o usurio HR e Selecionar SQL Commands
Projeto Fsico
Exemplo
Nome da
tabela
Atributos
Projeto Fsico
Exemplo
Projeto Fsico
valor padro.
CREATE TABLE NOTA_FISCAL
(...
...
Dt_Emissao Date Default Sysdate,
...)
Projeto Fsico
Projeto Fsico
Constraint Primary Key
Especifica uma ou mais colunas que compem a chave primria de uma tabela.
Projeto Fsico
Constraint Primary Key
OBSERVAO: Caso queira apagar a tabela para gerar
novamente utilize o comando DROP TABLE Cliente
CREATE TABLE Cliente
(cd_cliente
number (4)
constraint cliente_cd_cliente_pk primary key,
nm_cliente
varchar2 (50),
ds_endereco varchar2 (70),
cd_municipio
number (5),
sg_estado
char (2),
nr_cep
varchar2 (8),
nr_ddd
number (3),
nr_fone
number(7),
ie_sexo
char(1)
)
Padronizando a restrio, seguiremos o seguinte padro:
Constraint=> nome_tabela_nome_campo_tipodaconstraint
Projeto Fsico
Constraint Primary Key
Uma forma mais organizada, onde aps definirmos todos os campos da
tabela definimos as restries
CREATE TABLE Cliente
(cd_cliente
number (4),
nm_cliente
varchar2 (50),
ds_endereco varchar2 (70),
cd_municipio
number (5),
sg_estado
char (2),
nr_cep
varchar2 (8),
nr_ddd
number (3),
nr_fone
number(7),
ie_sexo
char(1),
constraint cliente_cd_cliente_pk primary key (cd_cliente)
)
Projeto Fsico
Constraint Primary Key Composta
CREATE TABLE Historico
(cd_cliente
number (4),
dt_compra
date,
vl_compra
number (12,2),
CONSTRAINT Historico_PK PRIMARY KEY (cd_cliente, Dt_Compra)
)
Projeto Fsico
Constraint UNIQUE
CREATE TABLE Estado
(Sg_Estado
char(2) primary key,
Nm_Estado
varchar2 (35),
constraint Estado_nm_Estado_UN UNIQUE (nm_Estado)
)
Projeto Fsico
Projeto Fsico
Constraint FOREIGN KEY
Neste tipo de constraint, relacionamentos que utilizem mais de uma coluna (chave
composta) podem ser criados.
Para definio desta constraint utilizarmos o padro
[nome_tabela/atributo/tipo_constraint]
REGRAS:
Caso o tipo de dados da coluna na tabela inicial e na tabela referenciada sejam
diferentes, ser apresentado um erro;
Caso a tabela referenciada no possua chave primria (a foreign key ser
estabelecida sobre a chave primria da tabela referenciada);
O uso de chaves estrangeiras garante que no existiro linhas rfs nas tabelasfilhas (tabelas que possuem dados que devem estar cadastrado previamente em
outra tabela, denominada tabela me).
Projeto Fsico
Constraint CHECK
Define um conjunto de valores permitidos ou condio para insero de valores
em uma determinada coluna.
CREATE TABLE Cliente
(cd_cliente
number (4),
nm_cliente
varchar2 (50),
ds_endereco varchar2 (70),
cd_municipio
number (5),
sg_estado
char (2),
nr_cep
varchar2 (8),
nr_ddd
number (3),
nr_fone
number(7),
ie_sexo
char(1),
constraint cliente_ie_sexo_ck
check(ie_sexo in ('F', 'M'))
)
Projeto Fsico
Constraint NOT NULL
Indica que obrigatria a insero de algum valor nessa
coluna. Somente pode ser declarado junto coluna e no
recebe nome da restrio.
CREATE TABLE Cliente
(cd_cliente
nm_cliente
ds_endereco
cd_municipio
sg_estado
nr_cep
nr_ddd
nr_fone
ie_sexo
)
number (4),
varchar2 (50) not null,
varchar2 (70) not null,
number (5),
char (2),
varchar2 (8),
number (3),
number(7),
char(1)
Projeto Fsico
Padronizao
A padronizao em nomes de campos e restries de tabelas de
suma importncia para facilitar o entendimento e a velocidade de
desenvolvimento de programadores e analistas.
Apresentaremos 2 tcnicas de padres utilizados em banco de dados:
1) Trigramao
2) Qualificador_nomedescritivo
Projeto Fsico
1) TRIGRAMAO
Um TRIGRAMA uma cadeia de caracteres normalmente
constituda pelas trs primeiras letras ou pelas trs letras mais
significativas de uma ENTIDADE, que so utilizadas como prefixo
TRIGRAMAO.
.
codigo
CLIENTE
nome
endereco
cli_cod
CLIENTE
cli_nome
cli_end
Projeto Fsico
2) Qualificador_nome
descritivo
Os qualificadores mais
Qualificador Significado
Cd
Cdigo
Nm
Nome
Nr
Nmero
Vl
Valor
Qt
Quantidade
Tx
Taxa ou percentual
Ds
Descrio
Sg
Sigla
Dt
Data
Hr
Hora
Ie ou Id
Identificador
Im
Imagem
na tabela ao lado:
Projeto Fsico
Padronizaes
Qualificador_nome descritivo
Cd_cliente
CLIENTE
Nm_cliente
Ds_endereco
Trigramao
cli_cod
CLIENTE
cli_nome
cli_end
Projeto Fsico
Exerccio
Com base no DER abaixo e na estrutura da prxima pgina, crie as tabelas
envolvidas.
Projeto Fsico
Exerccio
Aluno
Nr_Rgm Numrico(8) Campo Chave
Nm_Nome - Varchar2(40) Obrigatrio
Nm_Pai Varchar2(40) Obrigatrio
Nm_Mae Varchar2(40) Obrigatrio
Dt_Nascimento Date Obrigatrio
ID_Sexo Char(1) Obrigatrio
Matricula
Cd_Classe - Numrico (8) Campo Chave e (FK)
Nr_Rgm- Numrico(8) Campo Chave e (FK)
Dt_Matricula Date Obrigatrio
Escola
Cd_Escola - Numrico(6) Campo Chave
Nm_Escola Varchar2 (50) Obrigatrio
Ds_Endereco - Varchar2(50) Obrigatrio
Ds_Bairro - Varchar2 (40) Obrigatrio
Classe
Cd_Classe - Numrico(8) Campo Chave
Nr_AnoLetivo - Numrico (4) Obrigatrio e maior que 2000
Cd_Escola - Numrico (6) (FK)
Cd_Grau - Numrico (2) (FK)
Nr_Serie - Numrico (2) Obrigatrio
Sg_Turma Varchar2(2) Obrigatrio
Cd_Periodo - Numrico (2) - (FK)
Grau
Cd_Grau - Numrico(2) Campo Chave
Nm_Grau Varchar2 (50) Obrigatrio
Periodo
Cd_Periodo - Numrico(2) Campo Chave
Nm_Periodo Varchar2 (50) Obrigatrio
Referncias Bibliogrficas
[1] Fanderuff, Damaris. Dominando o Oracle 9i: Modelagem e
desenvolvimento. So Paulo:Pearson Education do Brasil, 2003.
[2] Costa, Rogrio Luis de C., SQL : guia prtico. 2. ed. Rio de
Janeiro : Brasport, 2006.
[3] SILBERSCHATZ, A. Sistema de bancos de dados. So Paulo:
Pearson Education do Brasil, 2004.
[4] Morelli, Eduardo M. Terra, 1996. Oracle 9i Fundamental: Sql, Pl/SQL e
Administrao. So Paulo: rica, 2002.