Página
Inicial

Power

Artigos

BD
SQL

JavaScript

Vídeo Aulas

Xiko.php

Algoritmos

Alunos

SQL OnLine

Sugestões
e Críticas

Horário do
Professor

Cadastro

Lembrar Senha

Criação das Tabelas e Relacionamentos
.:( Voltar ):.

Usaremos como exemplo o DER abaixo :

DER - Diagrama Entidade Relacionamento

O modelo físico correspondente é :

PDM - Phisical Data Model

Este diagrama indica que :


a) Teremos 3 tabelas em nosso banco de dados : clientes, cidades e estados.
b) A tabela clientes tem as colunas : cpf, cidade, nome, endereco, sexo e nascimento. Na frente de cada nome de coluna temos o seu tipo, por exemplo cpf é numeric(11), nome é varchar(40). Após o tipo temos a indicação se a coluna poderá ou não armazenar null. (para conhecer os tipos de colunas com suas respectivas capacidades de armazenamento procure a documentação do SGBD).
c) A coluna cujo nome estiver sublinhado é a chave primária.
d) A seta que liga as tabelas indica um relacionamento entre as tabelas. Na seta tem a indicação das colunas que fazem parte deste relacionamento.
e) A seta aponta para a tabela que tem a chave primária do relacionamento. Exemplo : O relacionamento entre a tabela cidades e estados é através da coluna sigla = estado. A ponta da seta indica a tabela estados, assim a coluna sigla da tabela estados é a chave primária e a coluna estado da tabela cidades é a chave estrangeira. Consequentemente a cardinalidade do relacionamento é : 1 estado para várias cidades ou várias cidades para 1 estado. 1 Estado pode estar relacionado a várias cidades. Uma cidade pode estar relacionada a apenas um estado.

A seguir, teremos os passos para criação das tabelas e dos relacionamentos :

Coloque o SGBD no ar e utilizando o programa para execução de instruções SQL, e execute os comandos a seguir.


Criação das tabelas :
create table CIDADES (
CODIGO integer not null,
ESTADO char(2) null,
NOME varchar(40) not null,
AREA integer null,
POPULACAO integer null,
primary key (CODIGO) );
create table CLIENTES (
CPF numeric(11) not null,
CIDADE integer null,
NOME varchar(40) not null,
ENDERECO varchar(60) null,
SEXO char(1) not null,
NASCIMENTO date not null,
primary key (CPF) );
create table ESTADOS (
SIGLA char(2) not null,
NOME varchar(30) not null,
primary key (SIGLA) );
// No MySql você deve utilizar no final do comando CREATE TABLE, antes do ponto-e-vírgula : engine=InnoDB

Criação de índices :
create index idx_clientes_1 on clientes ( nome asc ) ; // Cria o índice IDX_CLIENTES_1 na tabela de CLIENTES ordenando os clientes pela coluna NOME de A para Z.
create index idx_clientes_2 on clientes ( codigo asc ) ;
create index idx_estados_1 on estados ( nome desc ) ;// Cria o índice IDX_ESTADOS_1 na tabela de ESTADOS ordenando os estados pela coluna NOME de Z para A.
create index idx_cidades_1 on cidades ( sigla asc ) ;

Criação dos Relacionamentos :
// No MySql é necessário criar índices para as chaves estrangeiras antes de criar os relacionamentos, então se estiver usando o MySql, você tem que criar 2 indices, na tabela clientes para a FK CIDADE e na tabela cidades para a FK ESTADO
alter table CIDADES
add foreign key FK1_CIDADES_X_ESTADOS (ESTADO)
references ESTADOS (SIGLA)
on update restrict
on delete restrict ;
alter table CLIENTES
add foreign key FK2_CLIENTES_X_CIDADES (CIDADE)
references CIDADES (CODIGO)
on update restrict
on delete restrict ;

Exclusão de tabelas :

Formato :
drop table nome_tabela ;

Exemplo :
drop table cidades ; // Exclui a tabela cidades

Exclusão de índices :

Formato :
drop index nome_do_indice ;

Exemplo :
drop index idx_estados_1 ; // Exclui o índice idx_estados_1
.:( Voltar :.)