Dúvida SQL - DDL e MER

17/03/2011

0

Quando fazemos modelagem e queremos dizer que determinada tabela tem o relacionamento opcional representamos por uma linha tracejada no MER, mas como faço esta representação em na DDL quando estou criando uma tabela? Create table cliente (id_cliente, nome, endereço, telefone, cep) e quero dizer, colocar na sintaxe ao lado, que a tabela é opcional, pois no MER ela aparece com um relacionamento opcional associado a outra tabela.

Obrigado.
Paulo Kutwak

Paulo Kutwak

Responder

Posts

18/03/2011

Adail Faleiro

Boa noite,

Paulo,

    Primeiro, só para conhecimento,  o que define se um relacionamento é opcional não é se ele é identificado(Representado por uma linha continua) ou não idenficado(Representado por uma linha tracejada). O que define a opcionalidade de um relacionamento é sua cardinalidade, pois mesmo um relacionamento não identificado(Representados por uma linha tracejada) pode ser obrigatório, a obrigatoriedade depende de sa cardinalidade.  0:N, 1:N, N:N etc.

Respondendo sua pergunta. A representação na DDL é feita conforme exemplo abaixo a inclusão da entiade "endereco":




CREATE TABLE endereco(
    "codigo do endereco"  CHAR(10)    NOT NULL,
     cep                   CHAR(10),
    codigo_pessoa         CHAR(10),
    PRIMARY KEY ("codigo do endereco"),
    CONSTRAINT Refpessoa1 FOREIGN KEY (codigo_pessoa)
    REFERENCES pessoa(codigo_pessoa)
)ENGINE=MYISAM
;

    Note que a opcionalidade do atributo FK, que nesse caso é o atributo "código_pessoa" , foi definido pela sua nulidade, como pode verificar ele está como null, assim sendo opcional.

OBS: Não é a tabela que é opcional, mais sim o relacionamento que essa faz com outras.


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar