Nome Número: Série Relacionamentos Competências: Organizar dados coletadas de acordo com as ferramentas de gerenciamento e Selecionar ferramentas para manipulação de dados; Habilidades: Utilizar um ambiente para manipulação de dados no diverso modelo de SGBD (Sistemas Gerenciadores de Bancos de Dados); Bases Tecnológicas: Ambientes/ferramentas de gerenciamento de bancos de dados. MS Access. Os relacionamentos são uma forma de vínculo entre os dados armazenados nas tabelas de um banco de dados relacional. Por isso, saber relacionar as tabelas criadas usando um SGBD é fundamental para concluir o processo de modelagem física, e assim, concluir a criação do banco de dados. A criação dos relacionamentos é a última etapa da modelagem física de banco de dados, as próximas etapas propõe a criação de ferramentas que auxiliam o uso do banco de dados pronto e dos dados contidos nele, portanto, crie os relacionamentos de forma crítica e não desanime se precisar rever, ao terminar esta etapa, toda a modelagem do banco de dados, pois isso é muito comum. Observação REALIDADE NEBULOSA Descreve estado ANALISTA ANALISTA Organiza Idéias Descreve MINI - MUNDO Define MODELO CONCEITUAL MODELO LÓGICO Atualiza Valores MODELO FÍSICO Cria BANCO DE DADOS Figura 1 - Detalhamento das etapas para a construção de um projeto de banco de dados. Vamos lembrar o que é relacionamento: para ALVES. William Pereira Fundamentos de Banco de Dados. Érica. 2004, relacionamento é a representação de uma ação ou fato que associa os itens de uma entidade com os itens de outra entidade. Poderiamos dar uma série de outras definições para relacionamento, porém, apenas esta, por sí só, já é suficiente para o entendimento necessário ao técnico responsável pelo trabalho de construção de um banco de dados. 1
Graus de relacionamentos (cardinalidade): Podemos representar as entidades, que são as tabelas do banco de dados por conjuntos, esses conjuntos podem ser vinculados através de três tipos de relacionamentos: 1:N (um-para-muitos): Onde um registro de uma tabela está relacionado com muitos registros da outra, enquanto um registro da outra tabela está relacionado com um e apenas um registro da primeira tabela. Tabela 1 Registro 1 Registro 2 Registro 3 Registro 4 Tabela 2 Registro 1 Registro 2 Registro 3 Registro 4 Figura 2 - Relação entre os registros de duas tabelas em um relacionamento 1:N N:N (muitos-para-muitos): Onde um registro de uma tabela está relacionado com muitos registros da outra, enquanto um registro da outra tabela está relacionado com muitos registros da primeira tabela. Tabela 1 Registro 1 Registro 2 Registro 3 Registro 4 Tabela 2 Registro 1 Registro 2 Registro 3 Registro 4 Figura 3 - Relação entre os registros de duas tabelas em um relacionamento N:N 1:1 (um-para-um): um elemento de uma tabela está relacionado com um e somente um elemento de outra, enquanto um elemento da outra tabela está relacionado com um e somente um elemento da primeira tabela. Tabela 1 Registro 1 Registro 2 Registro 3 Registro 4 Tabela 2 Registro 1 Registro 2 Registro 3 Registro 4 Figura 4 - Relação entre os registros de duas tabelas em um relacionamento 1:1 2
Assim podemos resumir as possíbilidades de relacionamento entre as tabelas do MS Access aos três graus apresentados aqui. Porém, cada tipo de relacionamento exige um procedimento específico para efetivação física. Criando um relacionamento em MS Access Primeiro: Antes de criar o relacionamento entre as tabelas de um banco de dados em MS Access vamos pressupor um MER (Modelo Entidade-Relacionamento) no qual possamos nos orientar e um Modelo Lógico-Relacional que permita que os campos chaves a serem relacionados nas tabelas sejam identificados corretamente. Modelo de negócio: Oficina Mecância MECANICO N Revisa N VEICULO N Tem 1 CLIENTE 1 e MECANICO VEICULO CLIENTE Figura 5 - Modelo Entidade-Relacionamento Oficina Mecânica ENTIDADE ATRIBUTOS RELACIONAMENTO *CREA Nome Com Veiculo 1:N Endereco Parcial Celular #CPF VEICULOPESADO *Placa CodCliente Ano #RENAVAM Marca Modelo 1 *CodCliente Nome Endereco Telefone #CNH *Placa ComprimentoMetros NumeroEixos PesoToneladas VEICULOPESADO com VeiculoLeve 1:1 Parcial com VeiculoPesado 1:1 Parcial com Mecanico 1:N Total com Cliente 1:1 Total com Veiculo 1:N Parcial com Veiculo 1:1 Total 3
Revisao RELACIONAMENTO ATRIBUTOS *CodRevisao Placa CREA Data Hora Valor Relatorio TrocaPecas Tabela 1 - Modelo Lógico-Relacional de Oficina Mecânica Acessando o ambiente de relacionamento em MS Access: Segundo: A partir dos modelos Entidade-Relacionamento e Lógico- Relacional podemos modelar o banco de dados no processo de modelagem física e teremos criadas as tabelas do SGBD conforme Figura 6 a seguir. Figura 6 - Banco de Dados Oficina Mecânica modelado fisicamente. Terceiro: Acesse a área de relacionamentos do SGBD MS Access, mas antes, faça as verificações a seguir: 1. Verifique se todas as tabelas foram criadas com sucesso; 2. Revise os campos chaves primárias e chaves estrangeiras; 3. Observe se são equivalentes os tipos de dados e a propriedade tamanho do campo dos campos chaves primárias e chaves estrangeiras que serão relacionados. 4. Se tiver inserido algum dado em algum campo chave primária ou chave estrangeira verifique se eles contemplam a regra de integridade referencial. 5. Verificar se todas as tabelas foram fechadas, se não há nenhuma tabela aberta para edição ou para inclusão de dados. 4
Clique na ferramenta Relacionamentos na barra de ferramentas padrão do MS Access ou no menu ferramentas na opção relacionamentos conforme Figura 7 a seguir. Figura 7 - Ferramenta Relacionamentos no menu e na barra de ferramentas. Surge a área de relacionamentos juntamente com uma caixa de diálogo que disponibiliza todas as tabelas do banco de dados conforme Figura 8 a seguir. Figura 8 - Caixa de diálogo Mostrar tabela: Exibe tabelas, consultas ou ambs para serem inseridas na área de relacionamnetos. Clique em cada uma das tabelas listadas com a tecla control [Ctrl] do teclado pressionada ou selecione a primeira tabela, segure a tecla [Shift] e pressione a seta do teclado de controle para baixo até que todas as tabelas que desejamos relacionar estejam selecionadas, clique em adicionar e clique em fechar para fechar a caixa de diálogo Mostrar tabela. 5
Após todas as tabelas serem inseridas na área de relacionamentos podemos clicar na ferramenta salvar, agora ou a qualquer momento, para que o MS Access salve a área de relacionamento com as tabelas que foram inseridas ou alteradas. Figura 9 - Área de relacionamento do MS Access: Tabelas do banco de dados OficinaMecânica. Relacionamentos 1:N (um-para-muitos): É o tipo de relacionamento mais comum. No nosso exemplo um registro de um Cliente da mecânica, um proprietário de um veículo, deverá ter o seu registro vinculado a um ou mais registros de Veículos na oficina. Enquanto um registro de um Veículo deverá estar relacionado a um e somente um Cliente da oficina. O que caracteriza que o grau do relacionamento é um-para muitos. Em MS Access, assim como na maioria dos SGBD relacionais, o relacionamento é realizado apenas através do vínculo da chave primária de uma tabela, no caso a chave primária da tabela Cliente, com a chave estrangeira da tabela Veículo. Para facilitar o processo colocamos o mesmo nome da chave primária da tabela cliente, no caso CodCliente, na chave estrangeira da tabela veiculo conforme mostra a Tabela 1 acima. Assim fica fácil efetuar o relacionamento. Quarto: Finalmente, para relacionar o cliente ao veículo devemos: 6. Apontar a seta do mouse no campo chave primária da tabela que está no lado um do relacionamento (1:N), no caso, campo CodCliente da tabela Cliente; 7. Clicar sobre o campo, no caso CodCliente; 8. Segurar o clique do mouse; 9. Arrastar o campo até o campo chave estrangeira da outra tabela, no caso campo CodCliente na tabela Veículo; 6
10. Soltar o clique do mouse sobre o campo Chave estrangeira, no caso CodCliente da tabela Veículo. Surgirá a caixa de diálogo indicando a tabela do lado 1, isto é, aquela que contem a chave primária do relacionamento e o seu campo chave primária. A tabela que é a entidade fraca, isto é, que tem o campo chave estrangeira do relacionamento e o seu campo chave estrangeira. A opção Impor integridade referencial desmarcada, mas que deve ser marcada sempre. E, o grau do relacionamento, neste caso é necessário observar se o grau é coerente com o que está no modelo Entidade Relacionamento que está na Figura 5 acima. Teremos portanto uma tela conforme a da Figura 10 a seguir: Figura 10 - Caixa de diálogo Editar relacionamentos. Quinto: Para finalizar, observe se as tabelas, os campos e o grau do relacionamento são coerentes com o relacionamento modelado na Figura 5 - Modelo Entidade-Relacionamento Oficina Mecânica acima; Caso não seja, corrija o nome do campo ou cancele e operação e recomece do Quarto passo indicado acima, apontar a seta do mouse para o campo chave primária. Caso os campos e as tabelas estejam corretos marque a opção impor integridade referencial (sempre), pois sem ela o banco de dados não estará minimamente íntegro, isto é, pode existir um veículo que pertence a um cliente que não existe, por exemplo; Clique em Criar e estará criado o relacionamento 1:N entre Cliente e Veículo. 7
Figura 11 Relacionamento entre as tabelas Cliente e Veículo com Integridade referencial. Editando um relacionamento básicas: Para editar um relacionamento criado em MS Access existem duas formas 1. Apontar o mouse exatamente em cima da linha que liga as duas tabelas; clicar com o botão direito do mouse exatamente sobre a linha do relacionamento; escolher a opção Editar relacionamento no menú rápido que surge. 2. Ou, apontar a seta do mouse exatamente em cima da linha que liga as duas tabelas; dar um clique simples para selecioná-la; acessar o menu Relacionamento e clicar na opção Editar relacionamento, conforme mostra a Figura 12 a seguir. Figura 12 - Editando um relacionamento através do menu 8
A caixa de dialogo mostrada na Figura 10 acima será reaberta e o administrador do banco de dados poderá alterar todos os ítens citados na definição do relacionamento (as tabelas, seus campos relacionados, Integridade referencial, etc.) porém, neste exemplo, pretendemos alterar apenas a opção Propagar eliminação dos registros relacionados, pois, caso um cliente da oficina simplesmente seja excluído do cadastro, os registros dos veículos que pertencem a ele serão automáticamente excluídos também. Isso será realizado com todos os relacionamentos 1:N ou 1:1 que tenham marcada a opção de condicionalidade Total em um sentido e Parcial em outro. O que significa que, no nosso exemplo, o registro do veículo depende de um cliente cadastrado mas, o registro do cliente não depende necessáriamente de um veículo cadastrado confira o modelo na Tabela 1 acima. Portanto, marque a opção Propagar eliminação dos registros relacionados e clique em Ok conforme mostrado na Figura 13 a seguir. Figura 13 - Edição de relacionamento criado entre as tabelas Cliente e Veículo Relacionamentos N:N (muitos-para-muitos): É o segundo tipo de relacionamento mais comum. No nosso exemplo um registro de um Mecânico, poderá estar vinculado a uma ou mais revisões de Veículos na oficina. Enquanto um registro de um Veículo deverá estar relacionado a revisões com um ou mais Mecânicos da oficina. O que caracteriza que o grau do relacionamento é muitos-para-muitos. Como já sabemos este relacionamento é caracterizado por uma navegação disjunta, isto é, é necessário criar uma terceira tabela que levará o nome do relacionamento, no caso Revisão, e colocar nela as chaves estrangeiras baseadas nas chaves primárias das duas tabelas relacionadas, isto é: Na tabela Mecânico a 9
chave primária é CREA, portanto haverá um campo CREA chave estrangeira na tabela Revisão; Na tabela Veículo a chave primária é o campo Placa, portanto haverá um campo Placa, chave estrangeira, na tabela Revisao, permitindo o relacionamento entre Mecânico e Veículo. Para entender melhor observe a Tabela 1. Efetivando a primeira parte do relacionamento N:N em MS Access: Para relacionar o Veículo ao Mecânico devemos: 3. Apontar a seta do mouse no campo chave primária de uma das tabelas, no caso, campo CREA da tabela Mecânico; 4. Clicar sobre o campo, no caso CREA; 5. Segurar o clique do mouse; 6. Arrastar o campo até o campo chave estrangeira da tabela que está intermediando o relacionamento, no caso o campo CREA da tabela Revisao; 7. Soltar o clique do mouse sobre o campo Chave estrangeira, no caso CREA da tabela Revisao. Surgirá a caixa de diálogo indicando a tabela principal, isto é, aquela que contem a chave primária do relacionamento e o seu campo chave primária. A tabela que é a entidade fraca, isto é, a que tem o campo chave estrangeira do relacionamento e o seu campo chave estrangeira. A opção Impor integridade referencial desmarcada, mas que, lembramos, deve ser marcada sempre. E, neste caso, é necessário observar que o grau do relacionamento não estará coerente com o que está no modelo Entidade Relacionamento que está na Figura 5 acima por que para modelá-lo fisicamente em MS Access precisamos fazer o relacionamento parcial entre Mecânico e Revisão e depois entre Veículo e Revisão. Teremos portanto uma tela conforme a da Figura 10 a seguir: Figura 14 - Caixa de diálogo Editar relacionamentos. 10
Sempre observe se as tabelas e os campos são coerentes, lembrando que o grau do relacionamento parcial será um-para-muitos e não muitos-paramuitos conforme o relacionamento modelado na Figura 5 - Modelo Entidade- Relacionamento Oficina Mecânica acima; Caso não seja, corrija o nome do campo ou cancele e operação e recomece novamente. Caso os campos e as tabelas estejam corretos marque a opção impor integridade referencial sempre, pois sem ela o banco de dados não estará minimamente íntegro, isto é, pode existir um revisão que foi realizada por um mecânico que não existe, por exemplo; Clique em Criar e estará criado o relacionamento parcial 1:N entre Mecanico e Revisao. Figura 15 Relacionamento (PARCIAL 1:N) entre as tabelas Mecânico e Revisão com Integridade referencial. Efetivando a segunda parte do relacionamento N:N em MS Access: Para concluir o relacionamento entre Veículo e Mecânico devemos: 1. Apontar a seta do mouse no campo chave primária de uma das tabelas, no caso, campo Placa da tabela Veículo; 2. Clicar sobre o campo, no caso Placa; 3. Segurar o clique do mouse; 4. Arrastar o campo até o campo chave estrangeira da tabela que está intermediando o relacionamento, no caso campo Placa da tabela Revisao; 11
5. Soltar o clique do mouse sobre o campo Chave estrangeira, no caso Placa da tabela Revisão. Novamente surgirá a caixa de diálogo indicando a tabela principal, a tabela que é a entidade fraca e os seus campos chave primária e chave estrangeira, respectivamente. A opção Impor integridade referencial que deve ser marcada sempre. E, o grau do relacionamento, que neste caso não estará coerente com o que está no modelo Entidade Relacionamento da Figura 5 acima por que, conforme já mencionamos, será a segunda parte do relacionamento parcial, isto é, a parte que faltava entre o relacionamento Veículo-Revisão- Mecanico isto é, a parte Veículo-Revisão de grau um-para-muitos. Teremos portanto uma tela conforme a da Figura 10 a seguir: Figura 16 - Caixa de diálogo Editar relacionamentos. Observe se as tabelas e os campos são coerentes, lembrando que o grau do relacionamento parcial será um-para-muitos e não muitos-para-muitos; Caso não seja, corrija ou cancele e operação e recomece novamente. Caso os campos e as tabelas estejam corretos marque a opção impor integridade referencial sempre, pois sem ela o banco de dados não estará minimamente íntegro, isto é, pode existir um revisão que foi realizada em um veículo que não existe, por exemplo; Clique em Criar para efetivar o relacionamento parcial 1:N Veiculo- Revisao. 12
Figura 17 Relacionamento (N:N) entre as tabelas Veiculo-Revisao-Mecanico com Integridade referencial. Relacionamentos 1:1 (um-para-um): É o tipo de relacionamento menos comum. No nosso exemplo um registro de um Veículo da mecânica, poderá estar vinculado a um ou e somente um registros de VeículosPesados. Enquanto um registro de um VeículoPesado deverá estar relacionado a um e somente um Veículo na oficina. O que caracteriza que o grau do relacionamento é um-para-um. Em MS Access, assim como na maioria dos SGBD relacionais, o relacionamento é realizado através do vínculo da chave primária de uma tabela, no caso a chave primária da tabela Veículo, com a chave estrangeira da tabela VeículoPesado, porém, para o relacionamento 1:1 existe uma exceção. A regra de efetivação lógica diz que o identificador único de uma tabela tem que ser o identificador único da outra, como, neste caso a entidade forte, isto é, a tabela generalista (por que se trata de uma especialização), é a tabela principal no relacionamento, (tabela Veículo), logo é justo que a chave primária da tabela especializada, isto é, a chave primária da entidade fraca, no caso a tabela VeiculoPesado seja a mesma chave primária da entidade forte, que no caso é o campo Placa na tabela Veículo, sendo assim a placa do veículo será chave primária em ambas as tabelas, conforme a regra. Observe o modelo criado na Tabela 1 para melhor entendimento. Relacione o Veiculo ao VeículoPesado conforme o procedimento a seguir: 13
1. Aponte a seta do mouse no campo chave primária da tabela generalista, no caso, campo Placa da tabela Veiculo; 2. Clique sobre o campo, no caso Placa; 3. Segure o clique do mouse; 4. Arraste o campo até o campo chave primária da tabela especialista, no caso campo Placa da tabela VeiculoPesado; 5. Solte o clique do mouse sobre o campo Chave primária da tabela especialista, no caso Placa da tabela VeículoPesado. Surgirá a caixa de diálogo indicando a tabela generalista, isto é, aquela que contem uma das chaves primárias do relacionamento, a esquerda. A tabela especialista, isto é, a que tem o outro campo chave primária, VeiculoPesado. A opção Impor integridade referencial desmarcada, mas que deve ser marcada sempre. E, o grau do relacionamento, neste caso é necessário observar se o grau é coerente com o que está no modelo Entidade Relacionamento da Figura 5 acima. Teremos portanto uma tela conforme a da Figura 18 a seguir: Figura 18 - Caixa de diálogo Editar relacionamentos. Finalmente, observe se as tabelas, os campos e o grau do relacionamento são coerentes com o relacionamento modelado na Figura 5 - Modelo Entidade- Relacionamento Oficina Mecânica acima; Caso os campos e as tabelas estejam corretos marque a opção impor integridade referencial e clique em Criar. Sempre marque a opção Impor integridade referencial senão o banco de dados não estará íntegro, isto é, pode existir um veículo pesado relacionado ao registro de um veículo que não existe, por exemplo. Se não, corrija o nome do campo ou cancele e operação e recomece. Obs: Em casos de especialização marque também a opção Propagar eliminação dos registros relacionados para evitar falha de integridade 14
referencial entre os registros do banco de dados, isto é, o usuário exclui um registro da tabela generalista e se esquece que excluir o da tabela especialista. Figura 19 Relacionamento (1:1) entre VeiculoPesado e Veiculo com Integridade referencial. Observe sempre o grau do relacionamento os nomes das tabelas e dos campos, caso tenha problemas, cancele o processo e inicie novamente. Excluindo um relacionamento Podemos excluir um relacionamento a qualquer momento seguindo o procedimento abaixo: 1. Clique exatamente sobre a linha que relaciona as duas tabelas; 2. Pressione [Delete] no teclado de controle. Ou 1. Clique com o botão direito sobre o relacionamento; 2. A partir do menu rápido que surge, clique na opção excluir. O MS Access apenas confirma a exclusão conforme Figura 20 e ao clicar em Sim o relacionamento é excluído. Figura 20 - Caixa de diálogo do MS Access confirmando exclusão do relacionamento entre tabelas Veja na Figura 21 as tabelas já com o relacionamento excluído. 15
Figura 21 - Relacionamento entre as tabelas Cliente e Veiculo excluído Refaça o relacionamento 1:N entre as tabelas Cliente e Veiculo. Obs: Você poderá rever os passos para criar o relacionamento 1:N neste material. Obs2: Tenha cuidado pois muita coisa que é feita durante a administração e criação de um banco de dados em MS Access é definitiva, por exemplo, se você tentar as teclas [Ctrl] + [Z] para desfazer a exclusão do relacionamento não conseguirá, portanto tenha ceteza de que realmente quer excluí-lo. Cadastrando dados em tabelas relacionadas Para cadastrar dados nas tabelas basta: 1. Salvar e fechar a área de relacionamentos; 2. Dê um duplo clique na tabela que se deseja preencher e; 3. Iniciar o preenchimento. Obs: Sempre preencha as tabelas do banco de dados da esquerda para direita, de cima para baixo. No nosso exemplo precisamos iniciar o preenchimento pela tabela Cliente pois o relacionamento 1:N exige que exista um cliente previamente cadastrado para depois cadastrar o Veiculo do cliente ou que o campo CodCliente na tabela Veiculo permaneça em branco, conforme dita a regra de integridade referencial. 16
Tabela Cliente: Figura 22 - Tabela Cliente preenchida Tabela Veiculo: Figura 23 - Tabela Veiculo preenchida. 4. Salvar os dados preenchidos; 5. Feche a tabela. Experimentando a regra de integridade referencial A regra de integridade referencial estudada durante o processo de modelagem lógica dita que um campo chave estrangeira deverá ter um valor nulo ou igual ao da chave primária relacionada o que significa que se o usuário preencher o campo chave estrangeira com um valor diferente da chave primária relacionada o banco de dados não permitirá gravar o registro. Preenchendo tabelas relacionadas Para ver se o relacionamento realmente garante esta integridade vamos preencher, por exemplo, o registro de um carro cujo dono não se lembra do código e o usuário não irá informar o código do cliente ao cadastrar o carro no banco de 17
dados (afinal a regra diz que é possível ter valor nulo no campo chave estrangeira), veja então a mensagem de erro que surge. Figura 24 - Mensagem de erro emitida ao tentar inserir um valor que fere a regra de integridade referêncial. Verifique que por mais que o usuário insista o banco de dados não permite que o registro seja gravado na base. Observe que o banco de dados já é iniciado com um valor pré-definido no campo chave estrangeira, o valor é 0 (zero). Mas 0 (zero) não é igual a nulo, portanto o banco de dados não permitirá que seja inserido um veículo que pertence ao cliente cujo código seja 0, mas permitirá que seja inserido um registro de um veículo cujo cliente ainda não sabe o seu código, portanto se o usuário simplesmente deletar o 0 do campo CodCliente da tabela Veiculo e pressionar [Enter] o banco de dados aceitará. Figura 25 - Tabela Veiculo destaque para a propriedade Valor predefinido do campo CodCliente. Para evitar que o valor pré-definido de uma chave estrangeira venha diferente de nulo, abra todas as tabelas que possuem chaves estrangeiras do tipo número em modo designe, selecine o campo chave estrangeira, procure a propriedade valor predefinido, apague o valor proposto pelo MS Access e salve a tabela, assim, da próxima vez o valor padrão para a chave estrangeira será nulo. 18
Relacionando tabelas preenchidas Vamos supor que não foi definido o relacionamento entre cliente e veículo. Neste caso é necessário deletar o relacionamento. (veja o procedimento passo a passo no tópico Excluindo um relacionamento acima). Teremos então tabelas que não estão relacionadas, experimente agora colocar o codigo de um cliente que não existe, 0 (zero) por exemplo, e pressione a tecla [Enter] como foi feito da última vez, observe que o banco de dados aceita. Agora, salve as alterações, feche as tabelas que estiverem abertas, acesse a área de relacionamentos e experimente relacionar as tabelas (ver Relacionamentos 1:N (um-para-muitos) acima) observe a mensagem de erro conforme Figura 26 abaixo. Figura 26 - Caixa de dialogo de falha ao impor integridade referencial. A mensagem indica que não é possível relacionar tabelas que tem dados que ferem a regra de integridade referencial. Abra a tabela veículo, troque o Código do Cliente de 0 (zero) para nulo, salve a tabela, feche-a e tente criar o relacionamento, impor integridade referencial e propagar eliminação dos registros relacionados. Observe que nenhuma mensagem de erro será exibida. Ao lado da incompatibilidade dos tipos de dados e/ou propriedade tamanho do campo modelado durante o processo de construção das tabelas na modelagem lógica, essa é uma das principais falhas de um administrador de banco de dados durante o processo de criação dos relacionamentos, isto é, a pessoa que está modelando fisicamente os relacionamentos se esquece que testou a inserção de dados nas tabelas de maneira aleatória e depois se depara com dados incoerentes entre chave primária e chave estrangeira e não consegue relacioná-las. 19
Figura 27 - Mensagem de erro indica tipos de dados ou tamanho de campos incompatíveis entre chaves primárias e estrangeiras Experimentando Propagar eliminação dos registros relacionados Abra a tabela cliente em Modo Folha de Dados, isto é, para editar os dados contidos na tabela; Observe através da Figura 23 os registros que você tem na tabela Veiculo, veja que o primeiro e o terceiro veículos estão relacionados ao cliente código 2 (Maria dos Santos). Figura 28 - Registro selecionado: destaque para o cabeçalho de linha. Sendo assim, vamos excluir o registro do cliente de código 2 salvar a tabela e depois abrir a tabela veículo para ver se os veículos 1 e 3, relacionados ao cliente 2, foram excluídos. Clique no cabeçalho de linha do registro do cliente cujo código é 2, marcado com uma seta para a direita na Figura 28 acima e pressione a tecla [Delete] do teclado de controle, confirme a exclusão clicando em Sim na caixa de diálogo, salve a tabela e feche-a. 20
Figura 29 - Caixa de diálogo ao excluir um registro. Observe que os registro a ele relacionados foram excluídos. Se quiser tente fazer o oposto, observe que a exclusão se dá de forma que o cliente não é excluído se os veículos a ele relacionados forem; Mas o oposto, isto é, se o cliente for excluído os veículos a ele vinculados serão. 21
EXERCÍCIO: 1. Construa, com base no MER e no Modelo Lógico-Relacional as tabelas de um novo banco de dados baseado no modelo de negócio Modelo de Negócio: Vídeo Locadora Modelo Entidade-Relacionamento: ACAO 1 e CLIENTE 1 N Loca N FITA N Tem 1 DISTRIBUIDOR Figura 30 MER para o projeto Vídeo Locadora Modelo Lógico-Relacional CLIENTE FITA ACAO ENTIDADE ATRIBUTOS RELACIONAMENTO *CodCliente Nome Endereco com Fita 1:N Telefone Parcial Celular #CPF DISTRIBUIDOR *CodFita CodDistribuidor Titulo Duracao Sinopse Quantidade *CodFita AtorPrincipal Diretor *CodDistribuidor RazaoSocial Endereco Contato Telefone #CNPJ com Cliente 1:N Parcial com Acao 1:1 Parcial com Comedia 1:1 Parcial com Distribuidor 1:1 Total com Fita 1:1 Total com Fita 1:N Parcial RELACIONAMENTO ATRIBUTOS *CodLocacao CodCliente CodFita Locação Data Hora Historico Valo Tabela 2 - Modelo Lógico-Relaciona 22