Transações com banco de dados Uma transação é um conjunto de operações realizadas no banco de dados. Esse conjunto de operações deve ter sua integridade garantida por meio de quatro propriedades: 1. Atomicidade – Execução da transação por completo ou o aborto da mesma. Impede que a transação seja executada pela metade. É o famoso “Tudo ou nada”. 2. Consistência – Validação dos dados usados na transação, ou seja, no final da transação, cada campo deve ter valores válidos dentro de seu domínio de dados (tipo de dados – número, texto, data, etc...), assim como válidos também para seus relacionamentos. 3. Isolamento – Cada transação deve ter acesso privado aos dados que necessita para acontecer. Imagine que uma transação A esteja alterando o valor de um campo e uma transação B faça a leitura do valor desse campo nesse momento. Neste intervalo de tempo o valor do campo pode variar prejudicando a operação B. 4. Durabilidade – Garante que, no caso de erro na execução da transação, os campos voltarão ao seu estado inicial. Essas propriedades são comumente chamadas de ACID. ================================================================== Introdução à Modelagem de Dados – Modelo Conceitual, Lógico e Físico O banco de dados é formado por muitas tabelas e sua principal finalidade é garantir a integridade dos dados armazenados. Projetar uma solução em banco de dados é representar todas as informações manipuladas por uma organização no seu dia-a-dia. Transcrever essas tarefas, informações, dados e regras de utilização é um processo demorado, exige um forte padrão de análise e documentação das metodologias utilizadas. Projetar um banco de dados significa estruturar a solução que mais tarde será implementada em um SGBD. O SGBD é uma ferramenta computacional que apenas formalizará as regras definidas no projeto da solução de banco de dados. Observe a seguir, algumas regras que devem ser seguidas na definição do modelo de dados: Determinar qual a finalidade do banco de dados que está sendo modelado Isso é importante para a definição de quais dados serão armazenados. Dividir o problema em várias tabelas Dividir em quantas tabelas forem necessárias, de forma que representem um conjunto de dados semelhantes ao mundo real, definindo um formato específico para cada campo. Determinar os relacionamentos Gerar as chaves primárias e estrangeiras de cada tabela, de forma que a integridade dos dados seja mantida. Refinar o modelo criado Validar e comparar os resultados obtidos com os valores do mundo real. Problemas mais comuns em um projeto de banco de dados: Número excessivo de campos nas tabelas Certifique-se de que os campos definidos para uma tabela dizem realmente respeito ao assunto e são necessários dentro do contexto. Campos que normalmente não são cadastrados Isso é um grande indício de que essas informações estão no lugar errado e devem ser melhor estruturadas. Várias tabelas com os mesmos campos Isso gera redundância de informações. Tabelas sem chaves primárias e estrangeiras Analise cada dado de forma separada, identificando a função de cada um dos dados armazenados, de forma a encontrar as chaves primárias e estrangeiras. Nota: A solução proposta deve refletir o mesmo funcionamento atual, de forma mais rápida, precisa e automática, pois, o cliente espera que a solução agilize as tarefas executadas diariamente e garantam a integridade dos dados. Cardinalidade Cardinalidade Indica o número máximo e mínimo de relacionamentos que podem ocorrer entre as tabelas. As cardinalidades se classificam em máxima e mínima: o Cardinalidade Mínima: define se o relacionamento entre duas tabelas é obrigatório ou não. Exemplo: Analisando a figura, é possível perceber que uma UF(Unidade Federativa) pode ser cadastrada sem que haja uma Cidade para ela. o Cardinalidade Máxima: define a quantidade máxima de ocorrências entre as entidades que participam de um relacionamento. Exemplo: Analisando a figura acima, podemos perceber que uma UF pode ter várias cidades para ela. Por outro lado, a cardinalidade máxima de cidade para UF continua 1(um), ou seja uma cidade deve pertencer a uma única UF (Unidade Federativa). Modelagem de Dados Normalmente, em banco de dados, trabalha-se com três níveis de abstração, conhecidos como modelo conceitual, modelo lógico e modelo físico. O três níveis de abstração estão hierarquicamente organizados da seguinte forma: 1. O modelo conceitual trata os conceitos fundamentais abstraídos do mundo real, e não depende da arquitetura do banco de dados, é usado para compreensão do problema; 2. O modelo lógico está ligado ao tipo de banco de dados (orientado a objetos, objeto-relacional, relacional ou hierárquico, por exemplo); 3. O modelo físico está diretamente ligado ao banco de dados escolhido (PostgreSQL, MySql, Oracle, Sybase). Para entender melhor a definição de cada modelo, acesse o link abaixo: http://sis4.com/brModelo/monografia/monografia.htm#_Toc102163880