Dúvida SQL - DDL e MER
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.
Obrigado.
Paulo Kutwak
Curtidas 0
Respostas
Adail Faleiro
17/03/2011
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.
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.
GOSTEI 0