Você não "desenha" relacionamentos de entidade nos bancos de dados diretamente; Você * modela -os * usando uma ferramenta visual (como um programa de desenho ou um software de design de banco de dados dedicado) e depois traduz esse modelo no esquema do banco de dados (a estrutura real do banco de dados). A representação visual é chamada de diagrama de relação de entidade (ERD).
Veja como você representa as relações de entidade no ERDs, juntamente com a implementação do banco de dados correspondente:
1. Entidades: *
Representação: Retângulos. Cada retângulo representa uma entidade (uma coisa ou conceito) como "cliente", "pedido", "produto".
*
Implementação do banco de dados: Estes se tornam tabelas em seu banco de dados. Cada tabela possui colunas (atributos) que representam as propriedades da entidade.
Exemplo: `` `
+---------++-----------+
| Cliente | | Ordem |
+---------++-----------+
| Custid | | OrderId |
| Nome | | Custid |
| Endereço | | OrderDate |
+---------++-----------+
`` `
2. Atributos: *
Representação: Ovais conectados ao retângulo representando a entidade. Eles descrevem as propriedades da entidade (por exemplo, "Nome", "Endereço", "OrderId", "OrderDate"). Você também pode indicar tipos de dados (por exemplo, `int`,` varchar`, `date`).
*
Implementação do banco de dados: Estes se tornam colunas nas tabelas de banco de dados correspondentes. O tipo de dados nos mapas ovais para o tipo de dados da coluna no banco de dados.
3. Relacionamentos: *
Representação: Linhas que conectam os retângulos da entidade. O tipo de linha e símbolos associados indicam o tipo de relacionamento:
*
um para um (1:1): Uma única instância de uma entidade está relacionada a no máximo uma instância de outra entidade (por exemplo, uma pessoa e seu passaporte). Freqüentemente representado com uma linha com um "1" em cada extremidade ou às vezes uma notação especial como uma linha que termina em um diamante no lado único.
*
um para muitos (1:m) ou muitos para um (M:1): Uma instância de uma entidade está relacionada a muitas instâncias de outra entidade (por exemplo, um cliente pode ter muitos pedidos). Representado por uma linha com "1" em uma extremidade e "m" (ou notação do pé de Crows - um símbolo de três pontas) no outro.
*
Many-to-Many (m:n): Muitas instâncias de uma entidade estão relacionadas a muitas instâncias de outra entidade (por exemplo, muitos estudantes podem fazer muitos cursos). Representado por uma linha com "M" nas duas extremidades. Isso geralmente requer uma tabela de junção (ou tabela de ponte) na implementação do banco de dados.
Exemplo:um para muitos (cliente a pedidos) `` `
+---------+-------------+
| Cliente | |
+---------+-------------+
| Custid | 1 |
| Nome | |
| Endereço | ---------------- | m
+ ---------+ |
|
V
+-------------+
| Ordem |
+-------------+
| OrderId |
| Custid |
| OrderDate |
+-------------+
`` `
Exemplo:muitos para muitos (estudantes e cursos) `` `
+---------++-----------+
| Aluno | | Curso |
+---------++-----------+
| StudId | -------- M | CourseId |
| Nome | | | Nome |
+ ---------+ | +-------------+
|
| M -------- 1
V
+---------------------+
| StudentCourse |
+---------------------+
| StudId |
| CourseId |
+---------------------+
`` `
4. Cardinalidade e participação: *
Cardinalidade: O número de instâncias de uma entidade que pode estar relacionada a outra (representada por "1" ou "m").
*
Participação: Se a participação no relacionamento é obrigatória ou opcional (indicada em algumas anotações de ERD com diferentes símbolos nas linhas, como um círculo para opcional).
Implementação de banco de dados (exemplo SQL): Para o exemplo da ordem do cliente (1:m), você criaria duas tabelas:
`` `SQL
Crie cliente de tabela (
Custid int Primary Key,
Nome Varchar (255),
Endereço Varchar (255)
);
Crie pedido de tabela (
OrderId int Primary Key,
Custid Int,
Data de ordem do pedido,
Chave estrangeira (Custid) Referências ao cliente (Custid)
);
`` `
A restrição de `` estrangeira `na tabela 'Order' aplica o relacionamento. Cada `OrderId` possui um` custid` e que o 'custid` deve existir na tabela `cliente'.
Para o exemplo de muitos para muitos, você teria três mesas (estudantes, cursos e curso de aluno). A tabela `StudentCourse` é a tabela de junção/ponte que liga os alunos aos cursos.
Em resumo, você cria o ERD visualmente para projetar seu banco de dados, mostrando entidades, atributos e relacionamentos. Em seguida, você traduz esse modelo visual para o esquema de banco de dados real usando SQL (ou outro idioma do banco de dados) para criar tabelas, definir colunas e definir restrições para fazer cumprir os relacionamentos. Muitas ferramentas de design de banco de dados gerarão SQL para você diretamente a partir do ERD.