Articles

Crow’s Foot Notation

Posted on

Crow’s Foot Notation

Actualmente está a ser utilizada uma série de técnicas de modelação de dados. Uma das mais comuns é o diagrama de entidade-relação (ERD). Estão disponíveis várias notações ERD. Para os fins do CS270, utilizaremos a notação Crow’s Foot Notation.

Componentes utilizados na criação de uma ERD:

Entity – Uma pessoa, lugar ou coisa sobre a qual queremos recolher e armazenar múltiplas instâncias de dados. Tem um nome, que é um substantivo, e atributos que descrevem os dados que estamos interessados em armazenar. Tem também um anidentificador, que identifica de forma única uma instância de uma entidade. O atributo que actua como identificador é marcado com um asterisco.

Relação – Ilustra uma associação entre duas entidades. Ithas a name which is a verb. Tem também cardinalidade e modalidade.

Cardinalidade e Modalidade são os indicadores das regras do negócio em torno de uma relação. A cardinalidade reflecte o número máximo de vezes que uma instância numa entidade pode ser associada a instâncias na entidade relacionada. A modalidade refere-se ao número mínimo de vezes que uma instância numa entidade pode ser associada a uma instância na entidade relacionada.

Cardinality pode ser 1 ou Many e o símbolo é colocado nos extremos exteriores da linha da relação, mais próximos da entidade, a modalidade pode ser 1 ou 0 e o símbolo é colocado no interior, ao lado do símbolo de cardinalidade. Para a acardinalidade de 1, é traçada uma linha recta. Para uma cardinalidade de Muitos um pé com três dedos dos pés é traçado. Para uma modalidade de 1 é traçada uma linha recta. Para uma amodalidade de 0 desenha-se um círculo.

zero ou mais

1 ou mais

1 e apenas 1 (exactamente1)

zero ou 1

A originalidade e a modalidade são indicadas em ambos os extremos da linha de relação. Uma vez feito isto, as relações são lidas como sendo 1 para 1 (1:1), 1 para muitos (1:M), ou muitos para muitos (M:M).

1:1

/p>

1:M

M:M

1:M

Tipicamente, As ERDs são muito mais complexas do que isto, envolvendo um grande número de entidades e relações. Se juntarmos todas as relações acima e adicionarmos alguns atributos, uma pequena colecção de dados pode ser representada da seguinte forma, utilizando a Notação Crow’sFoot:

Considerar as seguintes regras de negócio para um sistema de marcação de consulta de pacientes:

Um médico pode ser agendado para muitas consultas, mas pode não ter nenhuma agendada. Cada consulta é agendada com exactamente 1 médico. Um paciente pode agendar 1 ou mais consultas. Uma consulta é agendada com exactamente 1 paciente. Uma consulta deve gerar exactamente 1 factura, uma factura é gerada por apenas 1 consulta. Um pagamento aplica-se exactamente a 1 factura, e 1 factura pode ser paga ao longo do tempo por vários pagamentos. Uma conta pode estar pendente, não tendo ainda nada pago sobre ela. Onepatient pode fazer muitos pagamentos, mas um único pagamento é feito por apenas 1 paciente. Alguns pacientes são segurados por uma companhia de seguros. Se estiverem segurados, a onepatiente só tem seguro com uma companhia de seguros. Uma companhia de seguros pode ter muitos pacientes a transportar as suas apólices. Para os pacientes que transportam seguros, a companhia de seguros fará pagamentos, cada pagamento único é feito por exactamente 1 companhia de seguros.

Dadas as informações acima, a seguinte DRE pode ser retirada:

Intersecção Entidades

As entidades de interseção são utilizadas na resolução de uma relação entre muitas e muitas. Esta resolução é feita de modo a armazenar informação adicional que não se enquadra na lista de atributos de nenhuma das entidades da relação M:M. Por exemplo, no exemplo instrutor-curso dado anteriormente, existe uma relação M:M entre Curso e Secção. Um curso pode ter muitas secções, e uma secção pode ter muitos cursos. Se quisermos saber quantos alunos estão inscritos numa determinada turma, não podemos dar a informação sobre qualquer uma das entidades. Podemos armazenar o número total de alunos registados em todas as secções de um determinado curso, na entidade do curso,ou seja: 300 alunos estão registados no CS270, todas as secções incluídas. Poderíamos armazenar o número total de estudantes registados em todos os cursos com um número de secção particular, na entidade do curso, ou seja: 25.000 estudantes estão registados na secção com o número 002. Se quisermos mais informações práticas, tais como a forma como os estudantes estão registados na secção 002 do CS270, precisamos de outra entidade na qual possamos armazenar a informação. Assim, criamos uma entidade de intersecção, e colocamos entre as suas entidades relacionadas com os atributos adicionais. A relação M:M transforma-se em duas relações 1:M. Ver resolução abaixo.

Entidades independentes

As entidades independentes são aquelas que podem existir sem outra entidade. Estudante, assento, instrutor, etc. são exemplos de entidades independentes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *