135599538 resumao banco de dados

25
BANCO DE DADOS 1: INTRODUÇÃO Motivação para usarmos Bancos de Dados: Dados não Compartilhados Problema: redundância de dados: Esta redundância pode ser controlada ou não controlada . Objetivo Evitar redundância não controlada: Compartilhamento de dados; Cada informação é armazenada uma única vez; Banco de Dados: É o conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários. Sistema de Gerência de Banco de Dados (SGBD): É o software que incorpora as funçoes de definição, recuperação e alteração de dados em um banco de dados. Modelos Modelos de Dados: descrição formal da estrutura de um banco de dados. Modelo Conceitual: modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. Modelo lógico: modelo de dados que representa a estrutura de dados de um banco de d ados conforme vista pelo usuário do SGBD. Modelo Físico: é uma representação gráfica do detalhamento físico das estruturas dos dados qu e o banco de dados irá armazenar. Este modelo é dependente do SGBD em que será impleme ntado. Tipos de Modelos Modelo Hierárquico Modelo em Rede Modelo Relacional Modelo Relacional-Objeto Modelo Orientado a Objeto Níveis de Abstração Dependência nível de Modelagem versus SGBD Tipos de Modelos e suas dependências: Modelo Conceitual: Não depende do Modelo do SGBD e Não depende de SGBD Específico. Modelo Lógico: Sim, depende do Modelo do SGBD e Depende ou não de SGBD Específico. Modelo Físico: Sim, depende do Modelo do SGBD e Sim, depende de SGBD Específico. 2: Modelo Entidade Relacionamento Abordagem Entidade Relacionamento. Técnica para construir modelos conceituais de base de dados. Técnica de modelagem de dados mais difundida e utilizada. Criada em 1976 por Peter Chen. O Modelo E-R é representado graficamente pelo Diagrama Entidade Relacionamento (DER ). Conceitos Centrais Entidade: conjunto de objetos da realidade modelada, sobre os quais deseja-se ma nter informações na base de dados. Relacionamento: conjunto de associações entre entidades, sobre as quais deseja-se ma nter informações na base de dados. Atributo: dados ou informação que é associado a cada ocorrência de uma entidade ou de um

Upload: rodrigo-bertechini

Post on 26-Nov-2015

74 views

Category:

Documents


24 download

TRANSCRIPT

  • BANCO DE DADOS1: INTRODUO

    Motivao para usarmos Bancos de Dados:Dados no CompartilhadosProblema: redundncia de dados: Esta redundncia pode ser controlada ou no controlada.

    ObjetivoEvitar redundncia no controlada:Compartilhamento de dados;Cada informao armazenada uma nica vez;

    Banco de Dados: o conjunto de dados integrados que tem por objetivo atender a uma comunidade de usurios.

    Sistema de Gerncia de Banco de Dados (SGBD): o software que incorpora as funoes de definio, recuperao e alterao de dados em um banco de dados.

    ModelosModelos de Dados: descrio formal da estrutura de um banco de dados.Modelo Conceitual: modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular.Modelo lgico: modelo de dados que representa a estrutura de dados de um banco de dados conforme vista pelo usurio do SGBD.Modelo Fsico: uma representao grfica do detalhamento fsico das estruturas dos dados que o banco de dados ir armazenar. Este modelo dependente do SGBD em que ser implementado.

    Tipos de ModelosModelo HierrquicoModelo em RedeModelo RelacionalModelo Relacional-ObjetoModelo Orientado a Objeto

    Nveis de AbstraoDependncia nvel de Modelagem versus SGBD

    Tipos de Modelos e suas dependncias:Modelo Conceitual: No depende do Modelo do SGBD e No depende de SGBD Especfico.Modelo Lgico: Sim, depende do Modelo do SGBD e Depende ou no de SGBD Especfico.Modelo Fsico: Sim, depende do Modelo do SGBD e Sim, depende de SGBD Especfico.

    2: Modelo Entidade Relacionamento

    Abordagem Entidade Relacionamento. Tcnica para construir modelos conceituais de base de dados. Tcnica de modelagem de dados mais difundida e utilizada. Criada em 1976 por Peter Chen.O Modelo E-R representado graficamente pelo Diagrama Entidade Relacionamento (DER).

    Conceitos Centrais Entidade: conjunto de objetos da realidade modelada, sobre os quais deseja-se manter informaes na base de dados. Relacionamento: conjunto de associaes entre entidades, sobre as quais deseja-se manter informaes na base de dados. Atributo: dados ou informao que associado a cada ocorrncia de uma entidade ou de um

  • relacionamento. Generalizao/Especializao: permite atribuir propriedades particulares a um subconjunto das ocorrncias (especializadas) deuma entidade genrica. Entidade Associativa.

    EntidadeRepresentada atravs de um retngulo.Retngulo contm o nome da entidade.Para referir um objeto particular fala-se em instncia ou ocorrncia da entidade.

    RELACIONAMENTOSCom o advento do Modelo de Entidades e Relacionamentos foi causada uma confuso entre os termos relao e relacionamento.O Modelo Relacional, quando descrito de forma matemtica, definido como um modelo formado por relaes (no sentido matemtico) entre os domnios. Cada tupla um elemento do conjunto relao.Ou seja, a relao a tabela.Um relacionamento do Modelo de Entidades e Relacionamentos uma associao entre entidades distintas. No h relao direta entre o nome relacionamento e o nome relao.Porm, um relacionamento, do Modelo de Entidades e Relacionamentos traduzido para a criao de atributos com chaves externas do Modelo Relacional. Esta traduo feita ligando-se um campo de uma tabela X com um campo de uma tabela Y, por meio da incluso do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X.Por meio das chaves estrangeiras, possvel implementar restries nos SGBDR.Existem alguns tipos de relacionamentos possveis no MER:Um para um (1 para 1) - indica que as tabelas tm relao unvoca entre si. Voc escolhe qual tabela vai receber a chave estrangeira;Um para muitos (1 para N) - a chave primria da tabela que tem o lado 1 est para ir para a tabela do lado N. No lado N ela chamada de chave estrangeira;Muitos para muitos (N para N) - quando tabelas tm entre si relao n..n, necessrio criar uma nova tabela com as chaves primrias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relao ento se reduz para uma relao 1..n, sendo que o lado n ficar com a nova tabela criada.Os relacionamentos 1 para 1 e 1 para N podem ser mapeados diretamente em chaves estrangeiras nas tabelas originais. J o relacionamento N para N exige o uso de uma tabela auxiliar. No relacionamento N:N no h chave estrangeira.

    Auto-Relacionamemto Normalmente um relacionamento associa entidades dife-rentes. H um caso especial no qual h um relacionamento entre a mesma entidade. Nesta situao surge o conceito de PAPEL que identificar o relacionamento.

    Papis em Relacionamentos Funo que uma ocorrncia de uma entidade cumpre em uma ocorrncia de um relacionamento. Relacionamento de casamento: Uma ocorrncia de pessoa exerce o papel de marido. Uma ocorrncia de pessoa exerce o papel de esposa. Relacionamento entre entidades diferentes no necessrio indicar os papis das entidades.

    Cardinalidade de Relacionamentos

    CARDINALIDADE MXIMAA cardinalidade mxima de uma entidade em relacionamento o nmero mximo de ocorrncias de entidade associadas uma ocorrncia da entidade em questo atravs do relacionamento.

  • Para fins prticos, apenas duas cardinalidades mximas so de nosso interesse, as:- de valor 1; e a- de valor n.

    Relacionamentos Binrios A cardinalidade mxima usada para classificar os relacionamentos binrios, aqueles nos quais os relacionamentos se do entre duas entidades.

    TIPOS DE RELACIONAMENTOS BINRIOS- 1:1 ( um-para-um );- 1:n ( um-para-muitos ); e- n:n ( muitos-para-muitos).

    Relacionamentos TernriosA abordagem ER permite que sejam definidos relacionamentos de graus maiores que dois, muito embora no sejam comuns.

    ANLISEA cardinalidade refere-se a pares de entidades e relacionadas com a terceira.

    Cardinalidade de Relacionamento

    CARDINALIDADE MNIMAA cardinalidade mnima de uma entidade em relacionamento o nmero mnimo de ocorrncias de entidade associadas uma ocorrncia da entidade em questo atravs do relacionamento.

    Cardinalidade de RelacionamentoPara fins prticos, apenas duas cardinalidades mnimas so de nosso interesse, a de valor 0 e a de valor 1.A cardinalidade mnima 1 recebe a denominao de associao obrigatria, uma vez que indica que o relacionamento DEVE obrigatoriamente associar uma ocorrncia de entidade cada ocorrncia daoutra entidade em questo.A cardinalidade mnima 0 recebe a denominao de associao opcional, uma vez que indica que o relaciona-mento PODE ou no associar uma ocorrncia de entidade cada ocorrncia da outra entidade em questo.

    ATRIBUTODado que associado a cada ocorrncia de uma entidade ou de um relacionamento.

    Cardinalidade de AtributosUm atributo pode possuir uma cardinalidade, de maneira anloga uma entidade num relacionamento.Esta cardinalidade define quantos valores deste atributo podem estar associados com uma ocorrncia da entidade ou relacionamento ao qual ele pertence.

    CARDINALIDADES DE INTERESSE- Cardinalidade (1,1): obrigatria (no precisa representar a cardinalidade no diagrama);- Cardinalidade (0,1): opcional;- Cardinalidade (0,n): opcional e multivalorada;

    IDENTIFICADORESUm identificador um conjunto de um ou mais atributos, ou relacionamentos, cujos valores servem para distinguir uma ocorrncia da entidade das demais ocorrncias da mesma entidade.

    IDENTIFICADOR SIMPLESUm nico atributo suficiente para distinguir uma ocorrncia da entidade das demais o

  • corrncias da mesma entidade.

    IDENTIFICADOR COMPOSTODois ou mais atributos podem ser necessrios para distinguir uma ocorrncia da entidade das demais ocorrncias da mesma entidade, neste caso o identificador dito composto.

    Relacionamento IdentificadorH casos em que o identificador de uma entidade composto no somente por seu ou seus atributos, mas tambm atravs de relacionamentos em que ela participa.Para exemplificarmos o conceito usaremos duas entidades: Funcionrio e DependentesA entidade Dependentes identificada por seu atributo seqncia e pelo relacionamento com a entidade Empregado. semelhana do atributo identificador - que tem a sua bolinha cheia - o relacionamento identificador recebe uma linha espessa no diagrama.

    Propriedades dos IdentificadoresO identificador dever ser MNIMO, isso significa que se o identificador deve ser composto de tal forma que retirando-se um de seus atributos ou relacionamentos que o compem, ele deixa de ser identificador.Um identificador composto poderia ser, por exemplo, os atributos cdigo e nome. Mas no forma um identificador mnimo pois somente o cdigo j suficiente para tal.

    Propriedades dos IdentificadoresCada entidade dever ter um NICO identificador.A entidade Empregado tem dois atributos que poderiam ser o identificador da entidade: cdigo ou CPF. Caber ento ao modelador decidir qual deles ser utilizado como identificador.

    IdentificadoresUm relacionamento identificado pelas entidades dele participantes, bem como pelos seus prprios atributos identificadores porventura existentes.

    Especializao/GeneralizaoAtravs deste conceito possvel atribuir propriedades particulares a um subconjunto das ocorrncias especializadas de uma entidade genrica.A entidade especializada herda as propriedades da entidade genrica.

    A Especializao / Generalizao pode ser:TOTAL: quando para cada ocorrncia da entidade genrica existe sempre uma ocorrncia numa das entidades especializadas.PARCIAL: quando nem toda ocorrncia da entidade genrica possui uma ocorrncia numa das entidades especializadas.

    - Admite-se at que uma mesma entidade seja a especializao de diversas entidades genricas ( herana mltipla).

    Sobreposio/Disjuno- Sobreposio: a generalizao/especializao no exclusiva descreve mais de uma ocorrncia dentidade genrica na generalizao/especializao. Quando ela ocorrer dever ser tratada como relacionamentos entre as entidades envolvidas.

    - Disjuno: generalizao/especializao exclusiva descreve uma ocorrncia da entidade genri no mximo uma vez na generalizao/especializao.

    Entidade AssociativaPor definio um relacionamento uma associao entre entidades.Na modelagem ER no prevista a possibilidade de associar uma entidade a um relacionamento, ou de associar dois relacionamentos entre si.Em certas oportunidades, durante a modelagem surgem situaes nas quais desejvel perm

  • itir uma associao entre uma entidade e um relacionamento.A soluo transformar o relacionamento entre as duas primeiras entidades numa Entidade Associativa e relacion-la com a terceira entidade.

    3: Engenharia da InformaoPadres de Modelagem Inmeros autores propondo inmeros modelos. Na prtica e na literatura no h um s modelo Eentidade-Relacionamento. H variaes na representao grfica, na sintaxe e na semntica.

    VARIANTES DE MODELOS Eentidade-Relacionamento: Modelo proposto por Peter Chen; Notao de Engenharia da Informao; MERISE (notao europeia); e UML.

    4: Abordagem Relacional. Abordagem de modelagem de dados utilizada nos sistemas de gerenciamento de bancos de dados do tipo relacional. Modelagem a nvel lgico.

    Tabelas: As tabelas so compostas de:

    Linhas; Colunas; e Chaves Primrias.

    As tabelas so relacionadas atravs de: Chaves estrangeiras.

    Caractersticas das Tabelas: Linhas de uma tabela no esto ordenadas. Valor do campo deve ser:

    Atmico; e Monovalorado.

    Implementao de Relacionamento 1:nUm para muitos (1 para N) - a chave primria da tabela que tem o lado 1 est para ir para a tabela do lado N. No lado N ela chamada de chave estrangeira.

    Implementao de Relacionamento n:nMuitos para muitos (N para N) - quando tabelas tm entre si relao n..n, necessrio criar uma nova tabela com as chaves primrias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relao ento se reduz para uma relao 1..n, sendo que o lado n ficar com a nova tabela criada.

    CHAVES Conceito bsico para estabelecer relaes entre as linhas da tabela; No modelo relacional so consideradas as chaves: primrias; alternativas; e estrangeiras.

    Chave Primria Coluna ou combinao de colunas cujos valores distinguem uma linha das demais dentro de uma tabela.

    Chave Estrangeira

  • Coluna ou combinao de colunas, cujos valores aparecem na chave primria (candidata) de uma tabela do banco. Mecanismo que permite a implementao de relacionamentos em um banco de dados relacional.

    Quando da incluso de uma linha na tabela que a contm: deve ser garantida a existncia do valor da chave estrangeira na tabela re

    ferenciada que contm a chave primria respectiva.

    Quando da alterao do valor da chave estrangeira: deve ser garantida a existncia do valor da chave estrangeira na tabela re

    ferenciada que contm a chave primria respectiva.

    Validao Chave Estrangeira Quando da excluso de uma linha da tabela que contm a chave primria referenciada pela chave estrangeira: deve ser garantida que na coluna chave estrangeira no aparea o valor da chave primria excluda.

    Observaoervao: O termo chave estrangeira pode levar a crer que est sempre referenciada a uma chave primria de outra tabela, mas em certos casos ela pode estar referenciada a uma chave primria da mesma tabela.

    Chave Alternativa EM certas situaes mais de uma coluna ou combinao de colunas servem para distinguir uma linha das demais dentro de uma tabela. Se uma destas for escolhida como chave primria, as demais serochamadas de chaves alternativas.

    Domnios e Valores Vazios Quando uma tabela criada pode ser definido, para cada coluna, um conjunto de valores que os campos da respectiva coluna podem assumir. Este conjunto de valores conhecido como domnio da coluna ou domnio do campo. Deve ainda, ser especificado se os campos da coluna podem assumir vazios (null). Vazio significa que o campo no assumiu nenhum valor do seu domnio. As colunas para as quais no so admitidos vazios so chamadas de colunas obrigatrias. As colunas para as quais so admitidos vazios so chamadas de colunas opcionais. Os SGBDR exigem que todas as colunas que compem a chave primria sejam obrigatrias. chave estrangeira pode conter coluna ou colunas opcionais.

    Restries de Integridade uma regra de consistncia de dados que garantida pelo prprio SGBD. Restries de Integridade: Integridade de Domnio: Define os valores que podem ser assumidos pelos campos de uma coluna. Integridade de Vazio: Especifica se os campos de uma coluna podem ou no serem vazios. Integridade de Chave: Define que os valores da chave primria e alternativa devem ser nicos. Integridade Referencial: Define que os valores dos campos que aparecem numa chave estrangeira devem aparecer na chave primria (candidata) da tabela referenciada. Integridade de Unicidade: Define que o valor do campo ou campos so nicos. Integridade de Entidade: Define que nenhum valor da chave primria pode ser nulo.

    So garantidas automaticamente pelo SGBD Relacional. O programador no precisa implement-las.

    Categorias de Restries (Date, p.231) Restries de Banco de Dados (Tabelas): Valores que determinado banco de dados tem p

  • ermisso para assumir. Restries de RelVar (Atributos): Valores que determinada RelVar tem permisso para assumir. Restries de Atributo (Tipagem): Valores que determinada atributo tem permisso para assumir. Restries de Tipo (Domnio): Valores que constituem determinado tipo.

    Restries Semnticas (regras de negcio) Existem outras restries que no se encaixam nas acima citadas, mas so necessrias para um BDR, so as restries semnticas e precisam ser desenvolvidas pelos programadores.Exemplos: um empregado do Setor de Finanas no pode ser Mdico. um empregado no pode ter salrio maior do que seus chefes.

    Especificao de Banco de Dados A especificao do Banco de Dados Relacional (BDR), ou esquema do BDR, deve conter no mnimo: Tabelas que formam o BDR; Colunas que as tabelas possuem; Restries de integridade. Cada tabela listada pelo seu nome. Aps o nome da tabela e entre parntesis so listados os nomes das colunas, separados por vrgula. A coluna ou colunas que contm a chave primria so sublinhadas. Aps a definio da tabela so listadas as definies das chaves estrangeiras que aparecem na tabela. Se a chave estrangeira formada por vrias colunas, elas so declaradas separadas por vrgulas.

    Transformao de ModelosOBJETIVOS DO PROJETO DE BANCOS DE DADOS- boa performance;- simplicidade de desenvolvimento;- simplicidade de manuteno.

    PRINCPIOS PARA UMA BOA TRADUO- evitar junes - ter os dados necessrios a uma consulta numa mesma linha;- diminuir a repetio de chaves primrias; e - evitar campos opcionais.

    Implementao da Generalizao Trs formas de implementao: Uma TABELA para toda a hierarquia. Uma TABELA para cada entidade da hierarquia. Uma TABELA para cada entidade especializada.Banco de Dados: Normalizao

    5: Normalizao de dados: decomposio de esquemas para evitar anomalias de atualizao.Bom design evita redundncia de dados e anomalias de atualizao.Mecanismo formal para analisar esquemas de relaes baseado nas suas chaves e nas dependncias funcionais entre seus atributos.Projeto conceitual bem feito resulta naturalmente em esquemas normalizados.

    Primeira Forma Normal (1FN): parte da definio formal de uma relao.Foi definida para no permitir atributos multivalorados, atributos compostos e suas combinaes.

    Uma relao est em 1FN se e somente se todos os seus atributos contm apenas valores atmicos (simples, indivisveis).

  • Dependncia Funcional:Em uma tabela relacional, diz-se que uma coluna C2 depende funcionalmente de uma coluna C1 ( ou que uma coluna C1 determina a coluna C2) quando, em todas as linhas da tabela, para cada valor de C1

    que aparece na tabela, aparece o mesmo valor de C2.Dendncia Funcional deve ser explicitamente definida por algum que conhea a semntica dos atributos de uma relao.

    Segunda Forma Normal (2FN)Uma relao encontra-se na 2FN se e somente se estiver em 1FN e no contm dependncias parciais.

    Dependncia Parcial: ocorre quando uma coluna depende apenas de uma parte de uma chave primria composta.

    Terceira Forma Normal (3FN)Uma relao est em 3FN se e somente se estiver em 2FN e nenhum atributo no-primo (isto , que no seja membro de uma chave) for transitivamente dependente da chave primria. Dependncia Transitiva: ocorre quando uma coluna, alm de depender da chave primria de uma tabela, depende de outra coluna ou conjunto de colunas da tabela. A relao no deve ter um atributo no-chave funcionalmente determinado por um outro atributo nochave(ou por um conjunto de atributos no-chave).

    Relaes no normalizadas so sujeitas a anomalias durante as atualizaes: Anomalias de insero: Inserir empregado requer repetir dados de departamento. Anomalias de excluso: Excluir nico empregado de departamento tambm exclui o departamento. Anomalias de modificao: Mudar gerente de departamento requer modificar vrias tuplas.

    Forma Normal de Boyce Codd (FNBC)Uma relao est em FNBC se para toda dependncia funcional X ? Z, X uma super-chave.

    uma forma mais restritiva de 3FN, isto toda relao em FNBC est tambm em 3FN; entretanto, uma relao em 3FN no est necessariamente em FNBC. Uma superchave SK especifica uma restrio de unicidade de que duas tuplas distintas em um estado r de R no podem possuir o mesmo valor para SK. Chave primria a superchave mnima.

    Anomalia de excluso : Se Carlos sair da aula de Fsica, no teremos nenhum registro de que Antonio leciona Fsica.

    Outras Formas Normais

    Normalizao uma Ferramenta para Validao da Qualidade de um Esquema.As formas normais at FNBC so baseadas em dependncias funcionais, exceto a 1FN, que faz parte da definio do modelo relacional.O design conceitual baseado no modelo ER tende naturalmente a produzir esquemas normalizados, a menos da 1FN.A separao de conceitos o resultado natural do design conceitual bem feito.Na prtica, esquemas que violam a normalizao so exemplos de esquemas mal projetados.A utilidade prtica da 4FN e 5FN limitada, porque num banco de dados real com muitos atributos, muito difcil (e praticamente irrelevante) descobrir tais dependncias e restries.

    Quarta Forma Normal (4FN)Uma relao est em 4 Forma Normal (4FN) se, e somente se, estiver na 3FN e no contiver dependncias multivaloradas.

  • Dada uma relao qualquer com trs atributos x, y e z, diz-se que y depende de forma multivalorada de x se e somente se sempre que existirem duas tuplas (x1,y1,z1) e (x1,y2,z2) existiro tambm duas tuplas (x1,y1,z2) e (x1,y2,z1).Refere-se combinao de valores de atributos multivalorados disjuntos (y e z).x na verdade, relaciona-se com y e com z de forma independente.

    Quinta Forma Normal (5FN)Existem relaes que no podem ser decompostas em duas projees sem perda, mas podem ser decompostas em trs ou mais. Estas relaes podem ser descritas como decomponvel n (n>2) (Date), significando que a relao em questo pode ser decomposta sem perda em n projees, mas no em m projees, m < n.Esta limitao denominada dependncia de juno (DJ).Uma relao R satisfaz a dependncia de juno * (X, Y,...Z) se, e somente se, R for igual juno de suas projees em X, Y, ...Z, onde X, Y, ...Z forem subconjuntos do conjunto de atributos de R.

    Quinta Forma Normal (5FN)Uma relao R est na 5FN , tambm chamada de forma normalizada de projeo-juno (PJ/NF) sesomente se, toda dependncia de juno em R for conseqncia de chaves candidatas de R.

    As DM so uma tentativa de detectar decomposies sem perdas que se apliquem a todas as relaes de um dado esquema.Se no possvel reconhecer qualquer DM em R, no existe decomposio sem perdas em duas relaes.

    7: Structured Query Language (SQL): Caractersticas dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catlogo ou dicionrio de dados. Independncia entre programas e dados: estrutura dos arquivos de dados armazenada no catlogo separadamente dos programas de acesso. Abstrao de dados: representao conceitual dos dados atravs de modelos de dados. Suporte de mltiplas vises de dados: diferentes perspectivas ou vises de usurios. Suporte a transaes: compartilhamento de dados e processamento multiusurio.

    Esquemas, Instncias e Estado do BD Esquema: descrio do banco de dados. definido durante o projeto de banco de dados e no se espera que seja alterado freqentemente. Estado ou Instncia: composto pelos dados do banco de dados em um determinado momento.

    Arquitetura de Trs-Esquemas Tem por objetivo separar o usurio da aplicao do banco de dados fsico. organizada em trs nveis:

    Nvel Interno: descreve a estrutura de armazenamento fsico do banco de dados.

    Nvel Conceitual: descreve a estrutura de todo o banco de dados para a comunidade de usurios.

    Nvel Externo ou Viso: cada esquema externo descreve a parte do banco de dados que um dado grupo de usurios tem interesse e oculta o restante do banco de dados desse grupo. A maioria dos SGBDs no separa completamente os trs nveis, mas suporta essa arquitetura de alguma forma.

    Independncia de Dados Consiste da capacidade de mudar o esquema em um nvel do sistema de banco de dados sem que ocorram alteraes do esquema no prximo nvel mais alto. Independncia lgica de dados: a capacidade de alterar o esquema conceitual sem muda

  • r o esquema externo ou os programas. Independncia fsica de dados: a capacidade de alterar o esquema interno sem mudar o esquema conceitual.

    Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas Gerenciadores de Banco de Dados Relacionais. ISO e ANSI lanou em 1986 a primeira verso do padro da linguagem SQL, o SQL-86. A linguagem passou por aperfeioamentos em 1989 e, em 1992, foi lanada a SQL-92 ou SQL2. Um novo padro, chamado de SQL-99 ou SQL3 foi lanado no ano de 2000. Foi o primeiro padro a estender a linguagem para permitir a utilizao de tipos de dados complexos e a incorporar caractersticas da orientao a objetos. Aps uma grande reviso do padro SQL3 foi lanada a SQL:2003. Nesta vero foi adicionada uma nova parte ligada ao tratamento de XML.

    Linguagem de Definio de Dados (DDL): usada para especificar o esquema conceitual. Linguagem de Definio de Armazenamento (SDL): usada para especificar o esquema interno, mas na maioria dos SGBDs a DDL usada para definir este esquema. Linguagem de Definio de Vises (VDL): usada para especificar as vises dos usurios e os seus mapeamentos para o esquema conceitual, mas na maioria dos SGBDs a DDL usada para definir ambos os esquemas, o conceitual e o externo. Linguagem de Manipulao de Dados (DML): usada para manipular os dados em um banco de dados. As manipulaes tpicas so a recuperao, insero, remoo e modificao dos dados.

    Linguagem de Definio de Dados (DDL)

    Criao de Tabelas:CREATE TABLE NOME_TABELA(COL1 TIPO_COLUNA [NOT NULL],COL2 TIPO_COLUNA [NOT NULL],COL3 TIPO_COLUNA [NOT NULL])

    Na criao de tabelas, possvel especificar vrios tipos de restries: Chave Primria: PRIMARY KEY ;

    Chave Estrangeira: FOREIGN KEY; Chave Alternativa (ou alternada): UNIQUE; Restrio de Domnio: CHECK.

    Pode-se atribuir nomes s restries de integridade: CONSTRAINT NOME_RESTRIO TIPO RESTRIO.

    Deleo de item referenciado:ON DELETE RESTRICT: impede a excluso (default);ON DELETE SET NULL: transforma o valor em nulo;ON DELETE CASCADE: exclui a linha da tabela.

    Criao de uma tabela com linhas de outra:CREATE TABLE Pessoa_NovaAS SELECT CPF, Nome, SexoFROM Pessoa_Antiga;

    Criao de Vises:CREATE VIEW [ (lista-de-colunas) ]AS [WITH CHECK OPTION]

    Atualizao (INSERT, UPDATE, DELETE) de viso:

  • A query no pode conter join, ou seja, deve ser baseada apenas em uma tabela. A query deve conter todas as colunas nott null da tabela referenciada. A query no pode conter operadores de conjunto: UNION, EXCEPT e INTERSECT. A query no pode conter o operador DISTINCT. A query no pode conter funes de agregao. A query no pode conter GROUP BY.

    Alterao de Tabelas: possvel com a DDL: Incluir novas colunas em uma tabela; Excluir colunas existentes em uma tabela; Adicionar a definio de uma restrio em uma tabela; Excluir a definio de uma restrio existente em uma tabela; Modificar uma coluna.

    Renomear Tabela: No um comando SQL:2003.RENAME Pessoa TO Pessoa_Nova; este o comando no Oracle.RENAME TABLE Pessoa TO Pessoa_Nova; este o comando no ANSI.

    Deletar Tabela (estrutura):DROP TABLE Pessoa;

    Linguagem de Manipulao de Dados (DML)

    Incluso de dados:INSERT INTO NOME_TABELA (COL1, COL2,...,COLN)VALUES (VAL1, VAL2,...,VALN);

    Consulta simples:SELECT COL1, COL2,...,COLNFROM NOME_TABELAWHERE (expresso lgica)GROUP BY (atributos de agrupamento)HAVING (condio de agrupamento)ORDER BY (lista de atributos)

    Where: filtra antes do agrupamento. Having: filtra depois do agrupamento.

    Atualizao:UPDATE NOME_TABELASET COL1=VAL1, COL2=VAL2,...,COLN=VALNWHERE (expresso lgica)

    Deleo:DELETE FROM NOME_TABELAWHERE (expresso lgica)

    TRUNCATE TABLE NOME_TABELA (sem rollback): O comando TRUNCATE remove rapidamente todas as linhas da tabela. Tem o mesmo efeito do comando DELETE sem a clusula WHERE, mas como no varre a tabela mais rpido. mais vantajoso para tabelas grandes.

    O comando TRUNCATE no pode ser utilizado dentro de um bloco de transao (delimitado por BEGIN/COMMIT), porque no existe a possibilidade de desfaz-lo.

    Eliminao de Repeties:SELECT DISTINCT : usado para assuntos distintos.

  • SELECT COUNT (ASSUNTO) AS : Quantidade de ocorrncia de assuntos.

    SELECT COUNT (DISTINCT ASSUNTO) AS : Quantidade de assuntos distintos.

    Ordenao de Resultados: ORDER BY

    Funes para cadeias de caracteres:- LOWER(coluna) = apresenta o resultado em minsculas.- UPPER (coluna)= apresenta o resultado em maisculas.- INITCAP (coluna)= apresenta o resultado com a primeira letra maiscula de cada palavra.- REPLACE (coluna, cadeia1, cadeia2)= Substitui um caractere ou caracteres de uma cadeia com 0 ou mais caracteres.- SUBSTR (col, inicio, qtd)= Obtm parte de uma cadeia.- CONCAT (col1, col2)= Devolve col1" concatenada com col2".- LPAD (col, tam, char)= Adiciona caracteres esquerda do resultado at que tenha uma certa longitude.- RPAD (col, tam, char)= Adiciona caracteres direita do resultado at que tenha uma certa longitude.- LTRIM (col, chars)= Suprime um conjunto de caracteres esquerda do resultado.- RTRIM (col, chars)= Suprime um conjunto de caracteres direita da cadeia.

    Funes para nmeros: ABS(n)= Devolve o valor absoluto de (n). CEIL(n)=Obtm o valor inteiro imediatamente superior ou igual a "n". FLOOR(n) = Devolve o valor inteiro imediatamente inferior ou igual a "n". MOD (m, n)= Devolve o resto resultante de dividir "m" por "n". NVL (col, valor)= Substitui um valor nulo por outro valor. NULLIF(col, valor) = retorna NULL se col = valor; POWER (m, exponente)= Calcula a potncia de um nmero. SQRT(n)= Devolve a raiz quadrada de "n".

    Funes para converso de tipos: CAST Sintaxe do CAST: CAST(dado_origem as tipo_dado_destino)

    JUNES (tambm chamadas de JOINS)Tipos de JOIN:INNER JOIN: seleciona as tuplas que satisfaam a condio do JOIN.LEFT OUTTER JOIN (Juno Externa Esquerda): Todas as tuplas da tabela do lado esquerdo do ON so selecionadas. Caso no haja uma tupla correspondente na tabela do lado direito do JOIN, os valores so preenchidos com NULL.RIGHT OUTTER JOIN (Juno Externa Direita): a condio inversa do LEFT JOIN. Todas as tuplas da tabela do lado direito do ON so selecionadas. Caso no haja uma tupla correspondente na tabela do lado esquerdo do JOIN, os valores so preenchidos com NULL.FULL OUTTER JOIN (Juno Externa Completa): Todas as tuplas dos dois lados do JOIN so selecionadas. Caso no haja correspondncia na condio do JOIN, o lado vazio preenchido com NULL.

    CROSS JOIN: Juno Cruzada (Produto Cartesiano).

    DCL - Linguagem de Controle de DadosLinguagem de controle de dados (ou DCL, de Data Control Language) o grupo de comandos que permitem ao administrador de banco de dados controlar o acesso aos dados deste banco. Alguns exemplos de comandos DCL so:GRANT: Permite dar permisses a um ou mais usurios e determinar as regras para tarefas determinadas;REVOKE: Revoga permisses dadas por um GRANT.

  • As tarefas bsicas que podemos conceder ou barrar permisses so:CONNECTSELECTINSERTUPDATEDELETEUSAGE

    11:TransaesTransaes Uma transao uma unidade lgica do processamento do banco, que inclui uma ou mais operaes de acesso ao banco de dados que precisa ser completada (ou desfeita) integralmente para garantir preciso.Essas operaes podem incluir incluso, excluso, modificao ou seleo. Iniciar: start transaction (begin). Finalizar: commit (work).

    Procedural Language / SQL Controle de transaes:BEGIN........SAVEPOINT P1;........END;

    ROLLBACK TO SAVEPOINT P1;

    RELEASE SAVEPOINT P1 (destruir um ponto de salvamento) Observao: Blocos no caracterizam incio e trmino de transao.

    Propriedades de uma Transao Atomicidade: uma transao uma unidade de processamento, realizada integralmente ou no realizada. Consistncia: uma transao leva um banco de dados de um estado consistente para outro estado consistente. Isolamento: uma transao deve parecer como se estivesse sendo executada isoladamente. Durabilidade: as alteraes aplicadas a um banco de dados por meio de uma transao confirmada (commited) devem persistir no banco de dados.

    Estados de uma TransaoAtiva: estado inicial.Parcialmente confirmada: depois que a instruo final foi executada.Falha: depois da descoberta que a transao no pode mais prosseguir.Abortada: depois que a transao foi revertida.Confirmada: aps o trmino bem-sucedido.

    Escalonamento de Transaes Quando transaes esto sendo executadas concorrentemente e de modo entrelaado, a ordem de execuo das operaes das vrias transaes conhecida como escalonamento (schedule). Dois escalonamentos so considerados seriais quando as operaes de cada transao so executadas em srie, consecutivamente, sem quaisquer operaes entrelaadas as outra transao. Um escalonamento serial se, para todas as transaes T participantes do escalonamento, todas as operaes de T forem executadas consecutivamente no escalonamento; caso contrrio, o escalonamento dito no-serial. Um escalonamento S de n transaes serivel (ou serializvel) se for equivalente a algum escalonamento serial das mesmas n transaes.

    Escalonamento de Transaes

  • T1: T1Op1 T1Op2 T1Op3 T1Op4

    T2: T2Op1 T2Op2 T2Op3 T2Op4

    Escalonamento Serial: Op1 Op2 Op3 Op4 Op1 Op2 Op3 Op4

    Escalonamento Serializvel ou Serivel: T1Op1 T2Op1 T2Op2 T1Op2 T1Op3 T1Op4 T2Op3 T2Op4 T1Op1 T1Op2 T2Op1 T1Op3 T2Op2 T2Op3 T2Op4 T1Op4

    Problemas de Consistncia Leitura Suja: leitura de dados no confirmados de uma linha existente, podendo ocasionar a leitura de uma informao nunca confirmada. Leitura No-Repetida: duas leituras de dados na mesma transao no se repetem. Na segunda leitura, dados no existem ou foram modificados. Leitura Fantasma: na releitura de um conjunto de dados, surgem novas informaes no conjunto. Perda de atualizao: duas transaes que ocorrem simultaneamente atualizam o mesmo dado. Isto pode ocorrer em uma seqncia segundo a qual uma das atualizaes perdida.

    Nveis de isolamento (SQL) SERIALIZABLE: uma transao totalmente isolada das outras. Caso a transao tenha comandos DML que tentem atualizar dados no gravados de outra transao, essa transao no ser efetuada.

    REPEATABLE READ: os dados podem ser lidos mais de uma vez, e se outra transao tiver includo ou atualizado linhas e estas forem gravadas no banco de dados entre uma e outra leitura dos dados, ento os dados retornados da ltima busca sero diferentes dos dados da busca anterior. Esse efeito conhecido como leitura fantasma.

    READ COMMITED: caso a transao utilize comando DML que precise do bloqueio de linhas que outras transaes esto utilizando, a operao somente ser concluda aps a liberao da da outra transao.

    READ UNCOMMITED: sero lidos contedos no gravados ainda pelo banco de dados (transaes passveis de ROLLBACK). H um enorme risco nessas operaes, visto que o usurio que est bloqueando a informao pode descart-la. Esse efeito conhecido como leitura suja.

    Exemplo: START TRANSACTION SERIALIZABLE SET TRANSACTION LEVEL SERIALIZABLE

    Nveis de isolamento (Resumo) READ UNCOMMITED: No Permite Perda de Atualizao, Permite Leitura Suja, Permite Leitura No-Repetida e Permite Leitura Fantasma; READ COMMITED: No Permite Perda de Atualizao, No Permite Leitura Suja, Permite Leitura No-Repetida e Permite Leitura Fantasma; REPEATABLE READ: No Permite Perda de Atualizao, No Permite Leitura Suja, No Permite Leitura No-Repetida e Permite Leitura Fantasma; SERIALIZABLE: No Permite Perda de Atualizao, No Permite Leitura Suja, No Permite Leit

  • ura No-Repetida e No Permite Leitura Fantasma

    Bloqueio Um bloqueio (lock) uma varivel associada a um item de dado que descreve o status do item com relao a possveis operaes que podem ser aplicadas ao mesmo:

    Bloqueio Binrio: locked (1) ou unlocked (0). lock_item read_item ou write_item unlock_item

    Bloqueios Compartilhados/Exclusivos: Read/Write. read_lock (share-locked) write_lock (exclusive-locked) unlock

    Granularidade de Itens de Dados Todas as tcnicas de controle de concorrncia consideram que o banco de dados formado a partir de uma srie de itens de dados com nomes.Um iten de dados pode ser escolhido como sendo entr os seguintes: Um valor de um campo de um registro do banco de dados. Um registro do banco de dados. Um bloco de disco. Um arquivo inteiro. Todo o banco de dados.

    Tcnicas de Controle de Concorrncia Protocolos de Serializao: Tcnica de Bloqueio. Ordenamento de Registros de Timestamp (data/hora/minuto/segundo). Validao (otimistas).

    Bloqueio em Duas Fases (2PL) Diz-se que uma transao segue o protocolo de bloqueio em duas fasesse todas as operaes de bloqueio (read_lock ou write_lock) precedem aprimeira operao de desbloqueio na transao. Essa transao pode serdividida em duas fases: uma fase de expanso ou crescimento, durantea qual podem-se obter novos bloqueios em itens mas nenhum pode serliberado; e uma fase de encolhimento ou retrao (segunda fase),durante a qual bloqueios existentes podem ser liberados, mas nenhumbloqueio pode ser obtido.

    T1_____________read_lock(Y);read_item(Y);write_lock(X);unlock(Y);read_item(X);X:=X+Y;write_item(X);unlock(X);

    2PL bsico.

    2PL conservador: requer que uma transao bloqueie todos os itens que acessa antes que a tran

    sao inicie sua execuo; se qualquer um dos itens no puder ser bloqueado, a transao no bloqueia item

    algum; livre de deadlock; difcil de se utilizar na prtica.

  • 2PL estrito: uma transao T no libera qualquer um de seus bloqueios exclusivos (de gravao)

    at que conclua (commit) ou seja abortada; nenhuma outra transao pode ler ou gravar um item que esteja gravado por T

    at que T esteja concluda (commit);

    2PL rigoroso: uma transao T no libera qualquer um de seus bloqueios exclusivos ou compart

    ilhados (de gravao ou leitura) at que conclua (commit) ou seja abortada; nenhuma outra transao pode ler ou gravar um item que esteja gravado por T

    at que T esteja concluda (commit).

    Serializao de Transaes1. Para cada transao Ti participante no schedule S, crie um n rotuladocom Ti no grafo de precedncia.2. Para cada caso em S onde Tj executa um read_item (X) depois de Tiexecutar um write_item(X), crie uma aresta (Ti Tj) no grafo de precedncia.3. Para cada caso em S onde Tj executa um write_item (X) depois de Tiexecutar um read_item(X), crie uma aresta (Ti Tj) no grafo de Professor precedncia.4. Para cada caso em S onde Tj executa um write_item (X) depois de Tiexecutar um write_item(X), crie uma aresta (Ti Tj) no grafo de precedncia.5. O schedule S serializvel se, e somente se, o grafo de precedncia notiver ciclos.

    Serializao de Conflitos

    Casos possveis (Korth): T1 Read(tupla(i)) e T2 Read(tupla(i)): a ordem no importa. T1 Read(tupla(i)) e T2 Write(tupla(i)): a ordem importa. T1 Write(tupla(i)) e T2 Read(tupla(i)): a ordem importa. T1 Write(tupla(i)) e T2 Write(tupla(i)): a ordem importa caso haja outra operao de leitura no mesmo schedule.

    Ordenamento de Registros de Timestamp

    No utilizam bloqueios (sem deadlock). As transaes so ordenadas com base em seus registros de timestamp. Um escalonamento no qual as transaes participam ento serializvel e o escalonamento serial equivalente tem as transaes na ordem de seus valores de timestamp. Pode causar rollback em cascata.

    Validao ou Certificao (Otimistas)

    Nenhuma verificao realizada enquanto a transao est sendo executada. As atualizaes na transao no so aplicadas diretamente aos itens de dados at que a transatinja seu final. Durante a execuo da transao, todas as atualizaes so aplicadas a cpias locais dos itene dados que so mantidos para a transao. Ao final da execuo da transao, a fase de validao verifica se qualquer uma das atualiza da transao viola a serializao. Se a serializao no for violada, a transao concluda; caso contrrio, a transao aboosteriormente reiniciada.

    Falhas de Transaes

    Tipos de Falhas: Falha de Transao. Falha do Sistema.

  • Falha de Mdia. Razes possveis para que uma transao falhe no meio da execuo: Falha do computador (ex. memria principal). Erro de transao ou do sistema (ex. diviso por zero). Erros locais ou condies de execuo detectados pela transao (ex. saldo insuficiente). Imposio do controle de concorrncia (ex. deadlock). Falha de disco. Problemas fsicos e catstrofes.

    Observao: Normalmente os 4 primeiros tipos de falhas (no-catastrficas) so recuperveis sem backup, pode-se usar apenas os arquivos de log.

    Recuperao de Falhas

    A recuperao de falhas de transaes geralmente significa que o bancode dados devolvido ao estado consistente mais recente, imediatamenteanterior ao momento da falha. Para fazer isso, sistema deve manter informaes sobre as alteraes que foram aplicadas a itens de dados pelas vrias transaes. Essas informaes geralmente so mantidas no log do sistema.

    A recuperao pode ocorrer em dois contextos gerais: Se houver um dano extenso em uma grande parte do banco de dados devido a

    uma falha catastrfica, o mtodo de recuperao recupera uma cpia do banco de dados (backup) e aplica as operaes confirmadas registradas no log at o momento da falha.

    Quando o banco de dados no fisicamente danificado mas torna-se inconsistente devido a falhas no catastrficas, a estratgia reverter quaisquer alteraes que tenham causado a inconsistncia. Tambm pode ser necessrio refazer algumas operaes. Neste caso bastam os arquivos de log.

    Tcnicas para a recuperao de Falhas no-catastrficas: Atualizao Postergada (NO-UNDO/REDO): no atualiza fisicamente o banco de dad

    os em disco antes que uma transao atinja seu ponto de commit; a ento as atualizaes so registradas no banco. Antes de atingir o commit, todas as atualizaes da transao so registradas nos buffers locais. Durante o commit, as atualizaes so primeiramente registradas no log e ento gravadas no banco. Se uma transao falha antes de atingir seu ponto de commit, no ter alterado o banco. Assim no necessrio executar UNDO (desfazer). Pode ser necessrio fazer um REDO (refazer) para refazer o efeito das operaes de uma transao commited a partir do log, porque seus efeitos podem ainda no ter sido registrados no banco de dados.

    Atualizao Imediata (UNDO/REDO): atualiza o banco de dados antes que uma transao atinja seu ponto de commit. No entanto, essa operaes so registradas no log em disco, atravs da gravao forada, antes de serem aplicadas ao banco, tornando a recuperao ainda possvel. Se uma transao falha depois de gravar algumas operaes, porm antes detingir seu ponto de commit, o efeito de suas operaes deve ser desfeito. No caso geral de atualizao imediata, desfazer e refazer devem ser exigidos durante a recuperao. Este mais utilizado.

    Atualizao Imediata (UNDO/NO-REDO).

    Recuperao de Falhas Tcnicas para a recuperao de Falhas no-catastrficas:

    Paginamento Shadow (Sombra): Esse esquema no requer a utilizao de um log em um ambiente monousurio. Em um ambientemultiusurio pode ser necessrio para o mtodo de controle de concorrncia. O paginamento Shadow considera o banco de dados como sendo feito de uma sria de pginas de disco com tamanho fixo para fins de recuperao. construdo um diretrio com n entradas, onde a i entrada aponta para a i pgina do banco de dados armazenado no disco. O diretrio mantido na memria principal, se no for muito grande. Quando uma transao comea a ser executada, o diretrio corrente cujas entradas apontam para as pginas mais recentes ou atuais do banco de dados armazenado no disco copiado em um diretrio shadow.

  • O diretrio shadow ento salvo em disco enquanto o diretrio corrente utilizado pela transao.

    Ocorreu uma falha no instante tf. O checkpoint mais recente, antes do instante tf foi marcado no tempo tc.

    1) As transaes do tipo T1 foram concluda com sucesso antes do tempo tc.2) As transaes do tipo T2 foram iniciadas antes do instante tc e foram concludas com sucesso aps o instante tc e antes de tf.3) As transaes do tipo T3 foram iniciadas antes do instante tc, mas no foram concludas at o instante tf.4) As transaes do tipo T4 comearam aps o instante tc e foram concludas com sucesso antes do instante tf.5) As transaes do tipo T5 comearam aps o instante tc, mas no foram concludas at o instante tf.

    Aes: T3 e T5 devem ser desfeitas e T2 e T4 refeitas.

    Procedimento:1) Comear com duas listas de transaes, alista UNDO e a lista REDO.2) Definir a lista de UNDO como igual lista de todas as transaes dadas no

    registro de checkpoint mais recente e definir a lista de REDO como vazia.3) Pesquisar o log para a frente, a partir do registro do checkpoint.4) Se for encontrada uma entrada de log BEGIN TRANSACTION para a transao T

    , acrescentar T lista UNDO.5) Se for encontrada uma entrada de log COMMIT para a transao T, mover T d

    a lista UNDO para REDO.

    Check point: Lista de transaes ativas. Um registro de checkpoint gravado no log periodicamente no ponto em que

    o sistema grava, no banco de dados em disco, todos os buffers do SGBD que foram modificados.

    12: Banco de Dados Distribudos Tecnologias associadas:

    Banco de Dados; Redes de computadores.

    Sistema de computao distribudo: Consiste em uma srie de elementos de processamento, no necessariamente hom

    ogneos, que so interligados por um sistema de rede de computadores e que cooperam na realizao de determinadas tarefasespecficas.

    Repartem um grande e ingerencivel problema em partesmenores e resolvem o mesmo de maneira eficiente e coordenada.

    Banco de Dados Distribudo (BDD): Uma coleo de vrios bancos de dados logicamente inter-relacionados, distribud

    os ao longo de um sistema de rede de computadores.

    Sistema de Gerncia de Banco de Dados Distribudos (SGBDD): Um sistema de software que gerencia um banco de dados distribudo ao mesmo

    tempo tornando a distribuio transparente para o usurio.

    Vantagens de BDD: Gerncia de dados distribudos com diferentes nveis de transparncia:

    Transparncia de distribuio ou de rede: libera o usurio dos detalhes sobre a rede.

    Transparncia de replicao: cpias dos dados podem ser armazenadas em vrios sites para aprimorar a disponibilidade, desempenho e confiabilidade.

  • Transparncia de fragmentao: o usurio no tomaconhecimento da existncia dos fragmentos horizontais (linhas) ou verticais (colunas).

    Confiabilidade e disponibilidade crescentes. Melhor desempenho. Expanso mais fcil.

    Funes adicionais de um SGBDD: Controlar dados: fragmentao, replicao, etc. Gerenciamento de transaes distribudas. Recuperao de BDD. Segurana. Gerenciamento do catlogo distribudo.

    Projeto de Banco de Dados Disribudos: Fragmentao; Replicao; Alocao.

    Fragmentao consiste na tcnica de dividir o banco de dados em unidades lgicas chamadas fragmentos, que podem ser armazenados em sites diferentes. Fragmentao de Banco de Dados:

    Horizontal: um fragmento horizontal de uma relao um subconjunto das tuplas dessa relao.

    Vertical: um fragmento vertical de uma relao mantm somente certos atributos da relao.

    Mista ou Hbrida: combinao dos dois tipos anteriores.

    Esquema de fragmentao: Consiste da definio de um conjunto de fragmentos que inclui todos os atrib

    utos e tuplas do banco de dados e satisfaz a condio de que todo o banco de dados pode ser reconstrudo a partir dos fragmentos.

    Esquema de alocao: Descreve a alocao dos fragmentos aos sites do SBDD; portanto, um mapeament

    o que especifica para cada fragmento o site no qual ser armazenado.

    Replicao consiste em gerar cpias controladas das relaes ou dos fragmentos. Replicao de Banco de Dados:

    Melhora a disponibilidade. Melhora desempenho. Desacelera operaes de atualizao.

    Tipos de SBDD: Homogneo ou Heterogneo. Com ou sem autonomia local.

    SGBDD Federado: Composto por vrios SGBDs independentes e autnomos com seus usurios e transaes

    . O esquema global montado interativamente por parte da aplicao que o acessa

    .

    Controle de concorrncia e recuperao: Vrias cpias dos itens de dados; Falhas de sites individuais; Falhas nos links de comunicao; Commit distribudo (protocolo de commit de duas fases);

    Deadlock distribudo.

  • Controle de concorrncia distribuda baseado em cpia distinta de um item de dado: Tcnica do site primrio (principal); Site primrio (principal) com site de backup; Tcnica da cpia primria ( principal).

    Controle de concorrncia distribuda baseado em Votao.

    Tcnica do site primrio (principal): Todas as cpias distintas dos itens de dados so mantidas no mesmo site; Um nico site designado coordenador; Todos os bloqueios so mantidos neste site; Todas as solicitaes de bloqueio e desbloqueio so enviadas para este site; uma extenso do bloqueio centralizado; Causa sobrecarga do site; Falha do site primrio paralisa o sistema; Uma vez que uma transao obtenha um bloqueio em um item de dado no site pri

    mrio, ela pode acessar qualquer cpia desse item de dado.

    Site primrio (principal) com site de backup: Caso anterior co um site de backup; As informaes de bloqueio so mantidas nos dois sites (primrio e backup); O site de backup assume no caso de falha do site primrio e um novo site d

    e backup escolhido; Desacelera o processo de aquisio de bloqueio.

    Tcnica da cpia primria (principal): Distribui a carga da coordenao de bloqueio entre vrios sites, fazendo com q

    ue cpias distintas de diferentes itens de dados sejam armazenados em sites diferentes.

    Falhas em um site afetam quaisquer transaes que estejam acessando bloqueios em itens cujas cpias primrias residam naquele site, mas outras transaes no so afetadas;

    Esta mtodo tambm pode utilizar sites de backup para melhorar a disponibilidade.

    Controle de concorrncia distribuda baseado em Votao. No existe uma cpia distinta como nos casos anteriores; Uma solicitao de bloqueio enviada para todos os sites que possuem uma cpia

    do item de dado; Cada cpia mantm seu prprio bloqueio e pode conceder ou negar o pedido; Se uma transao tem o bloqueio concedido pela maioria das cpias, ela segura

    o bloqueio e informa a todas as cpias que teve o bloqueio concedido; Caso contrrio ela informa o cancelamento da requisio; um mtodo verdadeiramente distribudo.

    Commit em Duas Fases (2PC) Um mecanismo de commit em duas fases garante que todos os servidores de banco de dados que participam de uma transao distribuda tenham o commit ou rollback da transao.

    Algoritmo que garante a consistncia da terminao da transao: Atomic Commitment Protocol (ACP).

    1 Fase: todos os ns participantes da transao sinalizam ao coordenador que sua parte da transao foi realizada. O coordenador envia uma mensagem preparar para commit. Cada n far uma gravao forada em disco de todos os registros de log e informaes necessriasara recuperao local, e em seguida envia um sinal OK ao coordenador, caso contrrio envia um sinal no OK. Na falta de uma resposta o coordenador considera o n no OK.

    2 Fase: se todos os ns respondem OK e o voto do coordenador tambm for OK, a transao

  • em sucedida e o coordenador envia um sinal commit para os ns, caso contrrio, a transao falhou e o oordenador envia uma mensagem para rollback. Neste caso a transao ser desfeita utilizando-se os arquivos de log.

    Commit em Trs Fases (3PC) 1 Fase: o coordenador envia uma mensagem canCommit para os ns e passa para o estado waiting. Os ns respondem com OK ou no OK.

    2 Fase: se o coordenador receber alguma mensagem no OK a transao abortada e manda a mnsagem abort para os ns que passam para o estado abort. Caso contrrio o coordenador envia a mensagem preCommit para os ns e estes passam para o estado prepared.

    3 Fase: o coordenador recebe o OK de todos os ns e todos passam para o estado commit, caso contrrio aborta a transao.

    13: Otimizao de Consultas

    Otimizador um programa com a finalidade de escolher uma estratgia eficiente para avaliar uma dada expresso relacional. Caractersticas:

    atingir um desempenho aceitvel; factvel devido ao nvel de abstrao do modelo relacional; a estratgia otimizada uma verso otimizada da verso original; capaz de executar a reotimizao.

    Processamento de Consultas Estgios no processamento de consultas:1) Moldar a consulta em alguma forma interna. Envolve a converso da consulta original em alguma representao interna mais adequada manipulao pela mquina e prepara o caminho para estgios subsequentes do processo de otimizao. O processo de substituir a viso pela respectiva consulta executado neste estgio. A representao interna mais utilizada a rvore de consulta (lgebra relacional).

    2) Converter para a forma cannica. O otimizador executa uma srie de otimizaes que so gradativamente boas. Isso possvel ido ao fato das linguagensrelacionais permitirem que uma consulta seja expressa de vrios modos distintos. O desempenho de uma consulta no deve depender do modo particular que o desenvolvedor escolheu para escrev-la. A representao interna convertida em alguma forma cannica equivalente, com a finalidade de eliminar as distines superficiais(A=B ou B=A) e encontrar uma representao mais eficiente que a original em algum aspecto. Para transformar a sada do estgio 1 em alguma forma equivalenteporm mais eficiente, o otimizador faz uso de regras ou leis de transformaes: Ex: (A join B) where restrio sobre A :: (where restrio sobre A) join B

    3) Escolher procedimentos candidatos de baixo nvel. Aps a converso da representao interna da consulta em uma formacannica, o otimizador deve decidir como executar esta nova forma daconsulta. Neste estgio so considerados os ndices, distribuio de valores de dados, agrupamento fsicos (clustering) de dados, etc. Considera que a expresso da consulta especifica uma srie de operaes de baixo nvel (juno, restrio, totalizao, etc), com certas interdependncias entre elas. Para cada operao de baixo nvel possvel, o otimizador ter a sua disposio um conjunto deprocedimentos de implementao predefinidos. Cada procedimento ter uma frmula de custo parametrizada associada a ele, indicando o custo em termos de operaes de E/S. Finalmente o otimizador escolher um ou mais procedimentos candidatos para impleme

  • ntar cada uma das operaes de baixo nvel na expresso da consulta

    4) Gerar planos de consulta e escolher o mais econmico. Neste estgio final, so elaborados planos de consulta candidatos, seguida pela escolha do melhor (mais econmico). Cada plano de consulta construdo combinando-se um conjunto de procedimentos de implementao candidatos, um procedimento para cada uma das operaes de baixo nvel da consulta. Gerar todos os planos possveis pode ser invivel na prtica, neste caso alguma tcnica heurstica altamente desejvel.

    Transformaes de Expresses (2) Restries e Projees:

    Seqncia de restries: Seqncia de projees: Restrio de projeo = Projeo de restrio:

    Normalmente uma boa idia efetuar restries antes de projees, porque o efeito da restrio ser reduzir o tamanho da entrada da projeo e, portanto, diminuir a quantidade de dados que talvez precisassem ser classificados para fins de eliminao de duplicatas.

    Distributividade: SQRT (A*B) = SQRT (A) * SQRT (B) SQRT (A+B) SQRT (A) + SQRT (B) lgebra Relacional:

    O operador de RESTRIO distributivo sobre a UNIO, INTERSEO e DIFERENA. O operador de RESTRIO distributivo sobre a JUNO nos casos em que as restries

    unidas por AND e operam em apenas um dos operadores da JUNO. O operador de PROJEO distributivo sobre a UNIO e

    INTERSEO, mas no sobre a DIFERENA.

    Comutatividade: A U B = B U A So: UNIO, INTERSEO e JUNO. No so: DIFERENA E DIVISO.

    Associatividade: A U (B U C) = (A U B) U C So: UNIO, INTERSEO e JUNO. No so: DIFERENA E DIVISO.

    Idempotncia: A U A = A So: UNIO, INTERSEO e JUNO. No so: DIFERENA E DIVISO.

    Estatsticas de Banco de Dados (3 e 4) Para cada tabela:

    Nmero de tuplas da tabela; Nmero de blocos contendo tuplas da tabela; O tamanho, em bytes, de uma tupla da tabela; Nmero de tuplas da tabela que cabem em um bloco

    (fator de blocagem); Nmero de valores distintos que de um atributo em uma

    tabela; Estatsticas de ndices.

    Observao: normalmente estas estatsticas no so atualizadas toda vez que o banco de dados atualizado. O DBA roda um utilitrio para que esta atualizao ocorra.

  • Processamento de Consulta Elmasri e Navathe:

    Anlise lxica (scanner): identifica os itens lxicos da linguagem, palavras-chave da SQL.

    Anlise sinttica (par): verifica as regras sintticas (gramaticais) da SQL. Validao: verifica se todos os atributos, tabelas, etc; fazem parte do esqu

    ema. Forma intermediria da consulta: rvore de consulta. Otimizao da consulta: a partir de vrias estratgias de execuo o otimizador esco

    lher uma. O otimizador monta um plano de execuo. Gerador de cdigo da consulta: gera o cdigo da consulta relativa ao plano d

    e execuo. Processador em tempo de execuo: executar o cdigo da consulta.

    Silberschatz, Korth e Sudarshan Existem duas tcnicas para escolher o melhor plano de avaliao para uma consulta: Otimizao baseada em custo: gera um srie de planos de avaliao de consulta e escolhe a de menor custo.

    Observao: As estimativas no so muito precisas, portanto um plano de avaliao de

    consulta que possui o menor custo de execuo estimado pode no ter o menor custo de execuo real.

    Uma desvantagem da otimizao baseada em custo o prprio custo da otimizao.

    Heursticas na otimizao (Navathe): Realizar selees o mais cedo possvel (reduz o nmero de tuplas). Realize projees (reduz o nmero de colunas). Realizar selees e Junes mais restritivas.

    Observao: nem sempre reduz o custo (Korth).

    13: ndices: So estruturas de acesso adicionais auxiliares usadas para aumentar a velocidade de recuperao de registros na resposta a certas condies de busca. ndices ordenados:

    primrio; secundrio; clustering.

    ndice Primrio um arquivo ordenado cujos registros so de tamanho fixo e contm dois campos: campo-chave de classificao e um porteiro para o bloco do disco onde se encontra o registro referenciado. Esparso: possui uma entrada de ndice para cada bloco do arquivo de dados e as chaves dos seus registros ncoras. Denso: possui uma entrada de ndice para cada valor da chave de busca de arquivo de dados (um registro). Pode existir apenas um ndice primrio.

    ndice Clustering um arquivo ordenado cujos registros so de tamanho fixo e contm dois campos: campo clustering (no exclusivo) de classificao e umponteiro para o bloco do disco onde se encontram os registros referenciados. Pode existir apenas um ndice clustering ou primrio.

    ndice Secundrio Fornece um meio secundrio de acesso a um arquivo para o qual j existe algum acesso primrio.

  • O ndice secundrio pode ser usado sobre um campo que uma chave candidata e possui um valor nico em cada registro, ou um campo que no chave e possui valores duplicados. um arquivo ordenado que contm dois campos: o primeiro do mesmo tipo de dados de algum campo que no seja o de classificao do arquivo de dados, que um campo de indexao. O segundo um ponteiro do bloco ou ponteiro do registro. Pode existir muitos ndices secundrios para o mesmo arquivo.

    ndice Multinvel ndice de ndice. Primeiro nvel: arquivo ordenado pela chave de indexao, valores distintos, entradas de tamanho fixo. Demais nveis: ndice sobre o ndice do nvel anterior e assim sucessivamente at que no ltimo nvel o ndice ocupe apenas um bloco. Nmero de acessos a bloco: um a cada nvel de ndice, mais um ao bloco do arquivo de dados.

    14:Dicionrio de dados:Um dicionrio de dados (do ingls data dictionary) uma coleo de metadados que contm definies e representaes de elementos de dados.Dentro do contexto de SGBD, um dicionrio de dados um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, uma base de dados, propriamente dita, que entre outras coisas, mantm as seguintes informaes:1. Definio precisa sobre elementos de dados2. Perfis de usurios, papis e privilgios3. Descrio de objetos4. Restries de integridade5. Stored procedures (pequeno trecho de programa de computador, armazenado em um SGBD, que pode ser chamado freqentemente por um programa principal) e gatilhos6. Estrutura geral da base de dados7. Informao de verificao8. Alocaes de espao9. ndices

    Um dos benefcios de um dicionrio de dados a consistncia entre itens de dados atravs de diferentes tabelas. Por exemplo, diversas tabelas podem conter nmeros de telefones; utilizando uma definio de um dicionrio de dados bem feito, o formato do campo 'nmero de telefone' definido com "( )9999-9999" dever ser obedecido em todas as tabelas que utilizarem esta informao.

    Quando uma organizao constri um dicionrio de dados de dimenso empresarial, o intuito deve ser o de extinguir precisamente definies semnticas a serem adotadas na empresa toda; portanto, ele deve incluir tanto definies semnticas como de representao para elementos de dados, sendo que os componentes semnticos focam na criao precisa do significado dos elementos de dados, e de outro lado, as definies de representao indicam como os elementos de dados so armazenados em uma estrutura de computador de acordo com seu tipo, ou seja, se so dados do tipo inteiro, caracter ou formato de data (veja Tipos de Dados). Os dicionrios de dados so menos precisos que glossrios (termos e definies) porque costumam ter uma ou mais representaes de como o dado estruturado e podem envolver ontologias completas quando lgicas distintas sejam aplicadas a definies desses elementos de dados.

    Os dicionrios de dados so gerados, normalmente, separados do Modelo de Dados visto que estes ltimos costumam incluir complexos relacionamentos entre elementos de dados.

    NotaoSmbolo e Significado= Significa: composto de() Significa: opcional (pode estar presente ou ausente)

  • {} Significa: iterao[] Significa: escolha em uma das alternativas** Significa: comentrio@ Significa: identificador (chave) em um depsito| Significa: separa opes alternativas na construo []