Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados 1 • Aula 02 Claudio Lobo Banco de Dados 1 Slide 2 Objetivos • C03. - Conhecer e Comparar os principais modelos de organização de bancos de dados. – C03H5. Identificar os principais modelos de organização de bancos de dados; – C03H6. Ser capaz de escolher o melhor modelo para uma aplicação. • C02. Entender o conceito de sistema gerenciador de banco de dados. – C02H3. Compreender as definições relativas a SGBD; – C02H4. Compreender o conceito de transação em um SGBD. Claudio Lobo Banco de Dados 1 Slide 3 Introdução • A criação do modelo conceitual de dados é um passo fundamental no desenvolvimento de qualquer sistema de Banco de Dados. • Quanto melhor for feita a modelagem, o BD resultante vai suportar com maior facilidade os requisitos atuais e as reestruturações futuras que forem necessárias. • O modelo conceitual é um modelo: – Lógico – Abstrato – Independente de qualquer implementação. Claudio Lobo Banco de Dados 1 Slide 4 Introdução • Os diferentes modelos de bancos de dados – Os bancos de dados apareceram no fim dos anos 60. – Era uma época em que a necessidade de um sistema de gestão da informação flexível se fazia sentir. – Existem cinco modelos de SGBD, diferenciados de acordo com a representação dos dados que contêm: • Hierárquico • De Rede • Relacional • Orientado a Objeto • Existe uma grande diferença na capacidade de modelagem dos vários modelos de BD existentes. Claudio Lobo Banco de Dados 1 Slide 5 Modelos de Organização de BD • Hierárquico – Foi o 1º modelo reconhecido. – Os dados estão estruturados em hierarquias ou árvores. – As árvores são percorridas desde a raiz até ao nó que contém o registo pretendido, para ser efetuado o acesso ao dado. – É adequado para acesso sequencial a dados, principalmente em casos em que, pela sua natureza, os dados estão organizados de forma sequencial. – O registo que, numa hierarquia, precede outros, é chamado registro pai dos outros registos (registros filhos). • Cada filho só pode ter um pai. • O relacionamento entre um registo pai e registos filhos é de 1:N no máximo. Claudio Lobo Banco de Dados 1 Slide 6 Modelos de Organização de BD • Hierárquico Cliente Encomenda 2 Produto A Encomenda 1 Encomenda 3 Produto B Produto C Produto A Produto B Produto B Produto C Claudio Lobo Banco de Dados 1 Slide 7 Modelos de Organização de BD • Hierárquico • Consultas realizadas "por faixas" Cliente Encomenda 2 Produto A Encomenda 1 Encomenda 3 Produto B Produto C Produto A Produto B Produto B Produto C Claudio Lobo Banco de Dados 1 Slide 8 Modelos de Organização de BD • Hierárquico – Problemas • Não é possível consultar um produto enquanto ele não estiver associado a uma encomenda. • Para consultar um produto, é obrigatório consultar antes o cliente e a encomenda. • Quando um produto é encomendado, ele é cadastrado novamente (redundância). – Para contornar isso, usam-se hierarquias paralelas. • A estrutura da árvore é difícil de manter quando o volume de dados aumenta. Claudio Lobo Banco de Dados 1 Slide 9 Modelos de Organização de BD • Em Rede – É uma extensão do modelo hierárquico. – Elimina o conceito de hierarquia. • Cada registro filho pode ser ligado a mais de um registro pai, criando conexões bastante complexas – No modelo em rede os registos estão organizados em grafos. – É possível representar relacionamentos: • 1:1 • 1:n • n:n – Torna a pesquisa mais rápida e mais flexível, pois não depende de um único nó raiz como vetor de inicialização de pesquisa. Claudio Lobo Banco de Dados 1 Slide 10 Modelos de Organização de BD • Em Rede Cliente Conta Agência João Conta: 1234-5 Agência: 045-X Maria Conta: 9876-5 Claudio Lobo Banco de Dados 1 Slide 11 Modelos de Organização de BD • Em Rede – Ao contrário do Modelo Hierárquico, em que qualquer acesso aos dados passa pela raiz, no modelo em rede é possível acessar qualquer nó da rede. • Problemas – Ainda apresenta os mesmos problemas com relação ao projeto de estrutura do modelo hierárquico. – Qualquer alteração feita em uma classe de dados implica na criação de uma nova estrutura para suportar aquela alteração. • Independência dos dados fica prejudicada. Claudio Lobo Banco de Dados 1 Slide 12 Modelos de Organização de BD • Relacional – Proposto por Ted Cold da IBM Research em 1990. • Artigo intitulado ‘Um Modelo Relacional de Dados para Grandes Bancos de Dados Compartilhados’, • Atraiu atenção imediata devido a sua simplicidade e base matemática. – Surgiu devido às seguintes necessidades • Aumentar a independência de dados nos sistemas gerenciadores de banco de dados. • Prover um conjunto de funções apoiadas em álgebra relacional para armazenamento e recuperação de dados. • Permitir processamento dedicado, exclusivo. Claudio Lobo Banco de Dados 1 Slide 13 Modelos de Organização de BD • Relacional – Este Modelo seria mais flexível e apropriado ao solucionar os vários problemas que se colocam no nível da compreensão e implementação da base de dados. – É um modelo padrão usado para aplicações comerciais, devido à sua simplicidade e desempenho. • Implementaram este modelo: System R (IBM), DB2 (IBM), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase, entre outros. Claudio Lobo Banco de Dados 1 Slide 14 Modelos de Organização de BD • Relacional – Representa os dados num BD como uma coleção de tabelas (relações). • A tabela é composta por linhas (tuplas) e colunas (atributos). – Todos os valores de uma coluna são do mesmo tipo de dados. Nome Endereço Tel CEP João SHS, Lote 5 32267012 23786632 Maria QNE 23, Bloco X 32263527 70227184 ... ... ... ... Pedro QNA 21, Lote 3 33322732 71266382 Tupla => Atributo Valores do mesmo tipo Claudio Lobo Banco de Dados 1 Slide 15 Modelos de Organização de BD • Relacional – Princípios matemáticos: • Uma relação é um subconjunto de um produto cartesiano de uma lista de domínios. – Cada relação é um conjunto de linhas (tuplas) e colunas (atributos) • Um BD é um conjunto de relações. Claudio Lobo Banco de Dados 1 Slide 16 Modelos de Organização de BD • Relacional – Aspectos do Modelo RELACIONAL • Estrutural – O modelo é manipulado por meio de tabelas. • Integridade – As tabelas devem satisfazer a certas restrições de integridade (regras do negócio, chaves). • Manipulativo – Os operadores derivam tabelas de tabelas (ex: restrição, projeção e junção) Claudio Lobo Banco de Dados 1 Slide 17 Modelos de Organização de BD • Relacional – Um banco de dados relacional é representado como uma coleção de relações, onde: • Relação: é um conjunto de linhas, chamadas de tuplas. • Tupla: é uma lista de valores de atributos. – Cada valor de atributo é retirado de um domínio de possíveis valores. • Atributo: corresponde a uma coluna da tabela. • Domínio: é um conjunto de valores atômicos. – Cada valor no domínio é indivisível. (Nulo= desconhecido ou não existe) • Grau: é o número de atributos. Claudio Lobo Banco de Dados 1 Slide 18 Modelos de Organização de BD • Relacional – Um banco de dados relacional é representado como uma coleção de relações, onde: • Esquema do banco de dados: é uma coleção de esquemas de relações. – Conjunto das descrições das relações em um banco de dados. • Instância do banco de dados: conjunto de dados de um banco de dados em um determinado instante. Claudio Lobo Banco de Dados 1 Slide 19 Modelos de Organização de BD • Relacional Nome Endereço Sexo Tel CEP Caracter Caracter M, F Numérico Numérico Nome Endereço Sexo Tel CEP João SHS, Lote 5 M 32267012 23786632 Maria QNE23, Bloco X F 32263527 70227184 ... ... ... ... ... Pedro QNA 21, Lote 3 M 33322732 71266382 Tuplas Relação Grau Atributos Domínios Claudio Lobo Banco de Dados 1 Slide 20 Modelos de Organização de BD • Relacional – Não aparecem as anomalias de alteração que existem na abordagem hierárquica. – A independência dos dados aumenta, pois programas não são influenciados pela presença/ausência de caminhos de acesso. Claudio Lobo Banco de Dados 1 Slide 21 Modelos de Organização de BD • Orientado a Objetos – A técnica da Orientação a Objetos (OO) está cada vez mais popular para projetar e implementar sistemas de natureza variada. – Com relação a bancos de dados, essa técnica tem sido empregada, com predominância, nos casos onde os dados envolvidos na aplicação considerada apresentam estrutura complexa. Claudio Lobo Banco de Dados 1 Slide 22 Modelos de Organização de BD • Orientado a Objetos – Diferença entre os modelos de dados tradicionais (relacional, hierárquico e em redes) e os modelos de dados orientados a objetos: • A maneira como eles veem os dados. – Os modelos de dados tradicionais veem os dados como uma coleção de tipos de registros ou relações, cada um tendo uma coleção de registros ou tuplas armazenadas em um arquivo. – No modelo de dados orientado a objetos, um banco de dados é uma coleção de objetos do mundo real. Claudio Lobo Banco de Dados 1 Slide 23 Modelos de Organização de BD • Orientado a Objetos – Embora a informação sobre objetos complexos do mundo real possa ser traduzida em tabelas relacionais, a meta dos bancos de dados orientados a objetos é manter uma correspondência direta entre os objetos do mundo real e os do banco de dados, podendo estes serem identificados e manipulados como um todo. • Representar um objeto complexo no modelo relacional significa subdividir o objeto em um grande número de tuplas. – Leva à necessidade de realizar um considerável número de operações de junção para recuperar o objeto. Claudio Lobo Banco de Dados 1 Slide 24 Transações • Sistemas monousuário versus multiusuário – Um critério para classificar um SGBD é o número de usuários que podem usar o sistema ao mesmo tempo. • Um SGBD é monousuário se no máximo um usuário de cada vez pode utilizar o sistema • Um SGBD é multiusuário se muitos usuários puderem acessar o banco de dados simultaneamente. Claudio Lobo Banco de Dados 1 Slide 25 Transações • Sistemas monousuário versus multiusuário – Os SGBDs monousuário são principalmente restritos a sistemas de computador pessoal. – A maioria dos outros SGBDs é multiusuário. • Podem acessar os bancos de dados e usar sistemas de computação simultaneamente devido ao conceito da multiprogramação. – A multiprogramação permite que o sistema operacional do computador execute vários programas (ou processos) ao mesmo tempo. » De forma intercalada (apenas uma CPU). » De forma realmente paralela (múltiplas CPU). Claudio Lobo Banco de Dados 1 Slide 26 Transações • Exemplos de sistemas multiusuários: – Reservas de passagens aéreas. – Bancários. – Cartões de Crédito. – Compras on-line. – Caixas de supermercado. • Exigem alta resposta e alta disponibilidade. Claudio Lobo Banco de Dados 1 Slide 27 Transações • Uma transação é um programa em execução que forma uma unidade lógica de processamento de banco de dados. – Inclui uma ou mais operações de acesso ao banco de dados. • Ex.: operações de inserção, exclusão, modificação ou recuperação. • Uma transação deve ser concluída por inteiro para ganhar a exatidão que se espera dela. • A transação pode ser embutida em programas (aplicações) ou serem interativas (em uma linguagem de consulta como o SQL). Claudio Lobo Banco de Dados 1 Slide 28 Transações • Uma transação é limitada pelas instruções explícitas BEGIN TRANSACTION e END TRANSACTION. – Todas as operações contidas dentro do bloco especificado por essas instruções são consideradas uma única transação. • Principais necessidades de uma transação: – Controle de Concorrência. – Mecanismo de Recuperação. Claudio Lobo Banco de Dados 1 Slide 29 Transações • Controle de Concorrência. – Vários problemas podem acontecer quando transações simultâneas são executadas de uma maneira descontrolada. – Ex.: Supondo um BD de reservas aéreas muito simplificado, em que um registro é armazenado para cada voo. • Cada registro inclui o número de assentos reservados nesse voo. • Os assentos podem ser transferidos entre voos. Claudio Lobo Banco de Dados 1 Slide 30 Transações • Controle de Concorrência. – Problema da atualização perdida • Ocorre quando duas transações que acessam o mesmo item do BD têm suas operações intercaladas, tornando alguns valores incorretos. • Se V1 tiver o valor inicial de 100, ficará com o valor final de 70, em vez de 90. Tempo Transação 1 Transação 2 1 Ler (V1) 2 V1= V1 - 10 Ler (V1) 3 V1 = V1 - 30 4 Grave (V1) 5 Grave (V1) Claudio Lobo Banco de Dados 1 Slide 31 Transações • Controle de Concorrência. – Problema da atualização temporária • Ocorre quando a transação atualiza um item e depois falha, por algum motivo. Nesse meio tempo, o item é lido por outra transação, antes de ter seu valor alterado de volta. • Se V1 tiver o valor inicial de 100, ficará com o valor final de 100 (ROLLBACK), em vez de 60. Tempo Transação 1 Transação 2 1 Ler (V1) 2 V1= V1 - 10 3 Grave (V1) 4 FALHA! Ler (V1) 5 V1 = V1 - 30 6 Grave (V1) Claudio Lobo Banco de Dados 1 Slide 32 Transações • Controle de Concorrência. – Problema do resumo incorreto • Ocorre quando a transação realiza cálculos sobre dados que estão sendo atualizados por outras transações. • Pode ocorrer que o cálculo seja feito parte sobre dados que já foram atualizados e parte sobre dados que ainda não foram, deixando a resposta incorreta. Claudio Lobo Banco de Dados 1 Slide 33 Transações • Mecanismos de recuperação – Sempre que uma transação é submetida a um SGBD para execução, o sistema é responsável por garantir que: • Todas as operações na transação sejam concluídas com sucesso e seu efeito seja registrado permanentemente no banco de dados • Ou que a transação não tenha qualquer efeito no banco de dados ou quaisquer outras transações. Claudio Lobo Banco de Dados 1 Slide 34 Transações • Mecanismos de recuperação – Tipos de falhas. As falhas geralmente são classificadas como falhas de transação, sistema e mídia. Existem vários motivos possíveis para uma transação falhar no meio da execução: • Uma falha do computador (falha do sistema). • Um erro de transação ou do sistema. • Erros locais ou condições de exceção detectadas pela transação. • Imposição de controle de concorrência. • Falha de disco. • Problemas físicos e catástrofes. Claudio Lobo Banco de Dados 1 Slide 35 Transações • Propriedades desejáveis – As transações devem possuir várias propriedades, normalmente chamadas propriedades ACID. • Atomicidade. • Preservação da consistência. • Isolamento. • Durabilidade ou permanência. – Elas devem ser impostas pelos métodos de controle de concorrência e recuperação do SGBD. Claudio Lobo Banco de Dados 1 Slide 36 Transações • Propriedades desejáveis – Atomicidade. • A transação se realiza como um todo ou não se realiza. – Preservação da consistência. • Se a transação for executada do começo ao fim, sem a interferência de outras transações, o BD deve ser levado de um estado de consistência a outro. – Isolamento. • A execução de uma transação não deve ser interferida por outras que executam simultaneamente. – Durabilidade ou permanência. • As mudanças feitas pela transação completada devem persistirno BD. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36
Compartilhar