BANCO DE DADOS Fixação dos conteúdos Integridade Referencial Normalização Exercícios
BANCO DE DADOS X SGBD Banco de Dados: Um "banco de dados" pode ser definido como um conjunto de "dados" devidamente relacionados. Por "dados" podemos compreender como "fatos conhecidos" que podem ser armazenados e que possuem um significado. SGBD: Sistema Gerenciador de Banco de Dados, é o software que trata de todo o acesso ao banco de dados. É um software com recursos específicos para facilitar a manipulação das informações dos bancos de dados e o desenvolvimento de programas aplicativos. Exemplos: Oracle, SQL Server, MySQL, Firebird 2
DIAGRAMA E-R MODELO CONCEITUAL Compostos pelas entidades (retângulo nomeado), atributos e relacionamentos (losango nomeado), bem como suas cardinalidades. 3
DIAGRAMA E-R MODELO LÓGICO - FÍSICO Entidades são as tabelas; Atributos os campos da tabela; Relacionamento permanecem mas não mais nomeados. Atributo identificador geralmente vem a ser a Chave Primária da tabela; Atributos/Campos recebem os tipos de dados que poderão receber; 4
DIAGRAMA E-R MODELO LÓGICO - FÍSICO Imagem 5
INTEGRIDADE REFERENCIAL Quando colocamos uma coluna como chave estrangeira em uma tabela, assumimos responsabilidade com o banco de dados por assim dizer. As colunas pertencentes à chave estrangeira da tabela A devem ter o mesmo domínio das colunas pertencentes à chave primária da tabela B. O valor de uma chave estrangeira em uma tabela A deve ser um valor de chave primária da tabela B, ou então ser nulo. 6
INTEGRIDADE REFERENCIAL Sintetizando: Uma tabela contém uma chave estrangeira, então o valor dessa chave só pode ser: Nulo neste caso pode, pois representa a inexistência de referência para uma linha da tabela. Igual ao valor de alguma chave primária na tabela referenciada. Como seria ter uma tabela com chave estrangeira nula? 7
INTEGRIDADE REFERENCIAL Na linha de Pedro Sergio Doto o valor para CodDepto esta nulo, o que pode significar que ele ainda não está alocado a nenhum departamento, ou foi deslocado de algum departamento. O que importa é que ele não tem departamento assinalado, o que é uma situação valida. O que não pode haver é um valor de chave estrangeira que não exista como chave primária de nenhuma linha da tabela referenciada, no caso a tabela Departamento. 8
INTEGRIDADE REFERENCIAL Na definição de uma chave estrangeira somente podemos nos referenciar a uma chave primária de uma outra tabela? Na criação de uma tabela estrangeira, além de podemos nos referenciar a um campo chave primária de outra tabela, também podemos nos referenciar a uma coluna que tenha sido definida como única, uma chave candidata. Qual a razão da integridade referencial? O que ela implica? Existe um conjunto de regras de operação para um banco de dados que coloca restrições, regras de atualização das tabelas do banco de dados, de forma a garantir e manter a integridade referencial. São elas: 9
INTEGRIDADE REFERENCIAL Deleção Restrita: Ao excluir (deletar) a tabela pai, se ela possuir filhos relacionados (ou seja, se o departamento tiver funcionários), a exclusão é impedida. Isso evita que o bando de dados fique inconsistente, ou seja, linhas de Funcionário com valor de chave estrangeira inexistente como chave primária na tabela associada. Outras opções para garantir a integridadede referências do banco de dados seriam excluir todos os filhos em cascata, fazendo com que todos os funcionários referenciem um departamento-padrão ou fazer com que todos os funcionários fiquem sem departamento. 10
INTEGRIDADE REFERENCIAL Inclusão e Linha Restrita: Ao inserir um funcionário, caso seja obrigatório que ele já possua departamento associado, verifica se ele está relacionado a um departamento existente na tabela Departamento, senão impede a operação. 11
INTEGRIDADE REFERENCIAL Atualização e Linha Restrita: Ao atualizar a chave estrangeira de uma tabela, verifica se existe uma linha da tabela associada que possua como chave primária o novo valor da chave estrangeira, senão impede essa operação. A opção cascata é sempre perigosa de ser utilizada em banco de dados, pois existe o risco de perder todos os dados existentes em uma determinada tabela se optar por apagar as suas linhas que estão associadas a uma determinada linha que será deletada da tabela que possui a chave primária referenciada. 12
NORMALIZAÇÃO Dependência Funcional Parcial Quando os campos dependem parcialmente da Chave Primária da Tabela Dependência Funcional Total Quando os campos dependem totalmente da Chave Primária da Tabela Dependência Transitiva Quando um campo depende de outro campo não chave da Tabela. 13
NORMALIZAÇÃO A normalização permite eliminar atributos: Com mais de um valor Duplicados ou repetidos Que contém dados derivados de outros atributos 14
NORMALIZAÇÃO 1FN (Forma Normal) Uma entidade/tabela está na primeira forma normal se não tem atributos com mais de um valor, nem atributos que ocorrem mais de uma vez. 2FN Uma tabela está na segunda forma normal se está na primeira forma normal e todos os seus atributos não identificadores (chaves primárias) são dependentes do atributo identificador (primary key) desta tabela. Toda tabela que está na 1FN e que possui apenas uma coluna como chave primária já está na 2FN. O mesmo aplica-se para uma tabela que contenha apenas colunas chave primária. 15
NORMALIZAÇÃO 3FN Uma tabela está na terceira forma normal se está na primeira e na segunda forma normal e não contém atributos não chaves dependentes de outros atributos não chaves; Uma dependência funcional transitiva ou indireta acontece quando uma coluna não chave primária depende funcionalmente de outra coluna ou combinação de colunas não chave primária. A passagem à 3FN consta em dividir tabelas de forma a eliminar as dependência transitivas. 16
EXEMPLOS PDF Banco de Dados Normalização Pg 27 30. 17
EXERCÍCIOS DE FIXAÇÃO Relacione as regras às suas respectivas formas normais. 1FN 2FN 3FN ( ) Campos devem depender da chave completa. (Dependência Funcional Total) ( ) Campos com dependência funcional transitiva são realocados ou eliminados no caso de campos calculados. ( )Não deve haver campos multivalorados nas tabelas. 18
EXERCÍCIOS DE FIXAÇÃO Em relação a Tabela 1 a seguir marque V nas observações corretas em relação a normalização da tabela e F nas observações incoerentes e/ou incorretas: CRM Médico DtConsulta Hrconsulta Valor Especialidade 12345 João 22/11/2010 10:30 R$ 50,00 Clínico 23456 Mariana 22/11/2010 08:20 R$ 50,00 Ortopedista 34567 Josefa 22/11/2010 08:20 R$ 50,00 Clínico Tabela 1 - Controle de consultas em uma clínica médica a partir da tabela MÉDICO. ( ) A tabela fere a primeira forma normal pois permite atributos multivalorados no campo Especialidade. ( ) O campo Valor possui dependência funcional transitiva e, portanto, precisa ser eliminado da tabela, pois fere a 3ª forma normal. ( ) O campo CRM não poderá ser chave primária pois ao agendar mais de uma consulta para o mesmo médico ele permitirá repetição. ( ) A tabela possui anomalias de inserção pois não permite inserir mais de uma consulta para o mesmo médico sem sobrescrever a consulta anterior. 19
EXERCÍCIOS DE FIXAÇÃO Ainda em relação a Tabela 1 acima, marque com V as afirmações verdadeiras sobre os processos necessário para normalizar a tabela e com F as falsas: ( ) É necessário a criação de uma chave primária na tabela. ( ) É necessário separar o campo Especialidade em outra tabela. ( ) Os campos Data, Hora e Valor da consulta podem ser eliminados. ( ) Será necessário criar a tabela consulta. Segue abaixo algumas das dependências funcionais da Tabela 1, após verificar quais modificações são necessárias para que o Esquema esteja na 3FN (3ª Forma Normal), diga usa FN atual e mostre como após a Normalização. CRM Médico CRM Especialidade Médico DtConsulta, HrConsulta Médico, Especialidade Valor 20