Sie sind auf Seite 1von 36

Estrutura e Banco de Dados

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

[tamanho dos campos, ndices, tipo de preenchimento dos campos,


nomenclaturas, etc] atravs de uma linguagem denominada SQL.
Linguagens e notaes variam de acordo com o produto (SGBD)

SQL significa Structured Query Language


(Linguagem Estruturada de Consulta);
A SQL foi desenvolvida originalmente na IBM Research no incio da

dcada de 1970;
Representa o padro para linguagens de SGBD Relacionais, sendo
padronizada pelo comit ANSI/ISO.

Em 1999 foi publicado o atual padro SQL/99 ou SQL3;

Projeto Fsico
Introduo
Quando

os

desenvolvidos,

Bancos
foram

de

Dados

criadas

Relacionais

linguagens

estavam

destinadas

sendo

sua

manipulao. O Departamento de Pesquisas da IBM, desenvolveu a

SQL como forma de interface para o sistema de BD relacional


denominado SYSTEM R, incio dos anos 70.
Em 1986 o American National Standard Institute ( ANSI ), publicou um

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

comandos Create, Alter e Drop.

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.

Como exemplo de comandos da classe DML temos os comandos Select,


Insert, Update e Delete.

Uma subclasse de comandos DML, a DCL (Data Control Language),


dispe de comandos de controle como Grant e Revoke.

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

Commit e Rollback so responsveis por estas facilidades.


Devemos notar que a linguagem SQL consegue implementar estas

solues, somente pelo fato de estar baseada em Banco de Dados, que


garantem por si mesmo a integridade das relaes existentes entre as
tabelas e seus ndices.

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 #.

Os nomes no podem ser iguais as palavras reservadas do


Oracle.

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)

Campo fixo com tamanho mximo de 2000 bytes.

DATE

Permite data entre 1 de janeiro de 4712 AC at 31 de dezembro de


4712 DC

LONG

Caractere varivel com tamanho de at 2 Gb

VARCHAR2(n)

Campo do tipo caractere com tamanho varivel e limitado a 4000


bytes.

NUMBER(n,d)

Onde n o nmero de dgitos e d o nmero de casas decimais.

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

Especifica que esta coluna no pode conter


valores nulos.

UNIQUE

Especifica uma coluna ou combinao de colunas


que tero seus valores nicos na tabela.

PRIMARY KEY

Identifica a unicidade de cada linha na tabela.

FOREIGN KEY REFERENCES

Estabelece um relacionamento entre a chave


estrangeira e a chave primria da tabela
referenciada.

CHECK

Especifica uma condio que deve ser verdadeira


obedecendo uma regra do negcio.

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

CREATE TABLE Fornecedor


( Cd_Fornecedor
Number (4),
Nm_Fornecedor
Varchar2 (50),
Ds_Endereco
Varchar2 (70),
Nr_Fone
Number (12),
Dt_Nascimento
Date,
Ie_Sexo
Char (1),
Ie_Fisica_Juridica
Char (1),
Cd_Situacao
Number (3)
)

OBS.: Copiem e colem o comando acima no SQL Commands do Oracle

Projeto Fsico
Exemplo

Projeto Fsico

Trabalhando com Valores Default


Se aps o tipo e tamanho do campo for colocada a palavra
DEFAULT seguida de uma expresso, esta representar um

valor padro.
CREATE TABLE NOTA_FISCAL
(...
...
Dt_Emissao Date Default Sysdate,
...)

Projeto Fsico

Verificando a Estrutura da Tabela


Para verificar a estrutura de uma tabela, utilizamos o comando desc.
OBSERVAO: Se logar no Oracle com o usurio HR e
selecionar SQL Commands. (Veja tutorial de instalao do Oracle).

Exemplo: desc employees;

Projeto Fsico
Constraint Primary Key
Especifica uma ou mais colunas que compem a chave primria de uma tabela.

CREATE TABLE Cliente


(cd_cliente
nm_cliente
ds_endereco
cd_municipio
sg_estado
nr_cep
nr_ddd
nr_fone
ie_sexo
)

number (4) primary key,


varchar2 (50),
varchar2 (70),
number (5),
char (2),
varchar2 (8),
number (3),
number(7),
char(1)

OBS: a expresso primary key declarada ao lado do campo, somente


valida para chaves primrias simples

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)
)

Aqui apresentado um exemplo de uma PK (Primary Key)


composta por 2 atributos: cd_cliente e 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)
)

Define uma ou mais colunas que no podem ter valor


repetido em mais de uma linha da tabela.
Por exemplo, no existem duas pessoas com o mesmo CPF
ou nmero do PIS , mas estes campos no sero colocados
como chave primria.

Projeto Fsico

Constraint FOREIGN KEY


Referencia um atributo que chave primria de outra tabela com o
propsito de implementar o relacionamento entre tabelas
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_sg_estado_fk foreign key (sg_estado) references
Estado(sg_estado)
)

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'))
)

insert into cliente


values(1,'rafael','rua',555
55,'sp','08290370',011,
1234567, 'f');

insert into cliente


values(1,'rafael','rua',555
55,'sp','08290370',011,
1234567,'F');

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)

insert into cliente


values(2,'rafael','rua',55555,'s
p','08290370',011,1234567,'
m');

insert into cliente


values(2,null,null,55555,'sp','
08290370',011,
1234567,'m');

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

dos Atributos ou Nomes de Campos de uma TABELA.


Para escolher-se o nome mais adequado de um Atributo, sugere-se
a adoo de uma Notao Padronizada, utilizando a Tcnica de

TRIGRAMAO.
.
codigo
CLIENTE

nome
endereco

cli_cod
CLIENTE

cli_nome
cli_end

Projeto Fsico

2) Qualificador_nome
descritivo
Os qualificadores mais

utilizados, com os seus devidos


significados, so apresentados

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.

Salve os comandos no arquivo Aula1.sql e envie via Link.

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

OBS.: Elaborar os relacionamentos e suas respectivas constraint.

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.

Das könnte Ihnen auch gefallen