Baixe o app para aproveitar ainda mais
Prévia do material em texto
Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 1 – Parte I (Conceitos Fundamentais) Conceitos Fundamentais 11 páginas ♦♦ IINNTTRROODDUUÇÇÃÃOO ♦♦ HHIISSTTÓÓRRIIAA ♦♦ UUSSUUÁÁRRIIOOSS ♦♦ AARRQQUUIITTEETTUURRAA AANNSSII//SSPPAARRCC ((Tsichritzis & Klug) ♦♦ EESSQQUUEEMMAA DDEE DDAADDOOSS ♦♦ VVIISSÕÕEESS ♦♦ SSIISSTTEEMMAA DDEE GGEERREENNCCIIAAMMEENNTTOO DDEE BBAANNCCOOSS DDEE DDAADDOOSS ((SSGGBBDD)) ♦♦ DDIICCIIOONNÁÁRRIIOO DDEE DDAADDOOSS ♦♦ LLIINNGGUUAAGGEENNSS EE IINNTTEERRFFAACCEESS ♦♦ AARRQQUUIIVVOOSS DDEE DDAADDOOSS ♦♦ PPRROOCCEESSSSAAMMEENNTTOO DDEE AARRQQUUIIVVOOSS XX SSBBDD ♦♦ OOBBSSEERRVVAAÇÇÕÕEESS "Não basta ensinar ao homem uma especialidade, porque se tornará assim uma máquina utilizável e não uma personalidade. É necessário que adquira um sentimento, um senso daquilo que vale a pena ser empreendido, daquilo que é belo, do que é moralmente correto." Albert Einstein I Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 2 – Parte I (Conceitos Fundamentais) 1 - INTRODUÇÃO Há uma grande necessidade em se realizar o armazenamento de informações que não se encontram isoladas umas das outras. Além de uma forma adequada para definir o armazenamento destas informações, os usuários desejam realizar operações sobre esta coleção de dados, tais como, adicionar (inserir) novos dados, recuperar (consultar) um determinado subconjunto de dados, atualizar ou modificar a estrutura dos dados e eliminar informações não mais necessárias. Uma solução para este problema foi apresentada com o advento da tecnologia em Bancos de Dados (Bases de Dados, BD, Database em Inglês, Bases de Données em Francês, Bases de Datos em Espanhol, Databaser em Russo). Uma definição mais precisa de Banco de Dados não existe formalmente contudo pode-se dizer que: a). Um Banco de Dados é uma coleção logicamente coerente de dados com um determinado significado inerente. Isto significa que um conjunto aleatório de dados não pode ser considerada um Banco de Dados. b). Um Banco de Dados é projetado, construído e composto por um conjunto de dados para um propósito específico. Existe um grupo de usuários ou algumas aplicações pré-concebidas onde estes dados serão utilizados. c). Um Banco de Dados representa aspectos de uma parte restrita do mundo real, denominado de mini-mundo. Alterações que ocorra no mini-mundo são refletidas no Banco de Dados. Resumindo, um BD representa uma fonte de onde informações são derivadas, possui um nível de interação com eventos que ocorrem no mundo real, e uma audiência que está interessada em seu conteúdo. Além do conceito de BD, outros estão são necessários para se compreender o ambiente de um BD . Um Sistema de Gerenciamento de Bancos de Dados (SGBD) é uma coleção de programas que permite ao usuário definir, construir e manipular Bancos de Dados para as mais diversas aplicações. Definir um BD envolve a especificação e a descrição detalhada dos tipos de dados a serem armazenados. Construir um BD é o processo de armazenamento dos dados em si em um determinado meio físico que é controlado pelo SGBD. Manipular um BD inclui uma série de funções para se realizar operações de consulta, atualizações e remoções de dados do BD. O Banco de Dados e seu software são juntos denominados de Sistema de Bancos de Dados (SBD). Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 3 – Parte I (Conceitos Fundamentais) 2 – HISTÓRIA Os primeiros SBD’s foram implantados no mercado no final da década de 60 e eram conceitualmente muito simples (não possuindo todos os conceitos anteriores), de acordo com as necessidades das aplicações da época. Inicialmente os grandes impulsionadores deste segmento foram a IBM, ORACLE e SYBASE. 3 - USUÁRIOS Um Banco de Dados pode apresentar diversos usuários cada qual com uma necessidade em particular, e com um envolvimento diferente com os dados do BD. Os usuários podem ser classificados nas seguintes categorias: Administradores de Bancos de Dados (DBA): : em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num ambiente de base de dados, o recurso primário é a própria base de dados e os recursos secundários são o próprio SGBD e software relacionados. A administração desses recursos são de responsabilidade do DBA (“Database Administrator”). O DBA é responsável por autorizar acesso à base de dados e coordenar e monitorar seu uso. O DBA é responsável por problemas, tais como, quebra de segurança ou baixo desempenho. Em grandes organizações, existe uma equipe de DBA´s; Analistas de Bancos de Dados (Projetistas): possuem a responsabilidade de identificar os dados a serem armazenados no BD e pela escolha da estrutura apropriada utilizada para armazená- los. Eles devem se comunicar com os possíveis usuários do BD, obter a visão dos dados que cada um possui, integrando-as de forma a se obter uma representação adequada de todos os dados. Estas visões são então analisadas e, posteriormente, integradas para que, ao final, o projeto da base de dados possa ser capaz de dar suporte aos requisitos de todos os grupos de usuários; Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários. Existem algumas categorias de usuários finais: ♦ usuários ocasionais: ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso. Eles podem usar uma linguagem de consulta sofisticada para especificar suas requisições e são, tipicamente, gerentes de médio ou alto-nível; Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 4 – Parte I (Conceitos Fundamentais) ♦ usuários comuns ou paramétricos: estes usuários realizam operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados; ♦ usuários sofisticados: incluem engenheiros, analistas de negócios e outros que procuraram familiarizar-se com as facilidades de um SGBD para atender aos seus complexos requisitos; ♦ Analistas de Sistemas e Programadores de Aplicações: analistas de sistemas determinam os requisitos dos usuários finais, especialmente de usuários que necessitam de maior interação com o BD, enquanto que os programadores de aplicações utilizam-se destas especificações para desenvolver uma aplicação. 4 - ARQUITETURA ANSI/SPARC (TSICHRITZIS & KLUG) Um SBD se divide em geral em três níveis : ! Nível Interno: descreve a estrutura de armazenamento físico dos dados do BD, fornecendo um modelo físico dos dados que inclui detalhes sobre os caminhos de acesso aos dados internamente; ! Nível Conceitual: descreve a estrutura de todo o BD para uma determinada comunidade de usuários, ocultando detalhes sobre a organização física dos dados e apresentando a descrição lógica dos dados e das ligações existentes entre eles. ! Nível Externo: possui as diversas descrições do BD de acordo com os grupos de usuários. BASE DE DADOS ARMAZENADA ESQUEMA INTERNO ESQUEMA CONCEITUAL VISÃO EXTERNA 1 VISÃO EXTERNA N USUÁRIOS FINAIS NÍVEL EXTERNO NÍVEL CONCEITUAL NÍVEL INTERNO mapeamento externo/conceitual mapeamento conceitual/interno Figura I.1 - Níveis de Esquema Observe que os três níveis apresentados anteriormente apresentam apenas descrições dos dados. Como os três níveis apresentam descrições diferentes para os mesmos dados, torna-se Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 5 – Parte I (Conceitos Fundamentais) necessário converter uma representação em outra, ou seja, definir mapeamentos de dados entre os níveis. 5 - ESQUEMA DE DADOS O Esquema de Dados é uma partedo BD que contem informações sobre os próprios dados do BD, entre elas inclui a estrutura do BD. 6 - VISÕES Uma Visão consiste de um subconjunto de dados do BD, ou pode conter dados "virtuais" que são derivados dos existentes no BD, mas que não estão explicitamente armazenados. As Visões existem para satisfazer as necessidades dos usuários na apresentação apenas das informações importantes e ocultando aquelas desnecessárias. 7 - SGBD O Sistema de Gerenciamento de Bancos de Dados tem como principais funções: ♦ Controle de Redundância: Em um sistema tradicional de controle de arquivos cada usuário normalmente apresenta seus próprios arquivos armazenando o conjunto de dados que é de seu interesse, e nestes casos é comum ocorrer redundância de dados. Esta redundância consiste no armazenamento de uma mesma informação em locais diferentes, o que pode provocar sérios problemas. Alguns destes problemas consiste inicialmente no aumento de esforço computacional para realizar a atualização destes dados; aumento do espaço necessário para o armazenamento dos dados. Mas o problema mais sério é que a representação dos dados desta forma pode tornar-se inconsistente, pois duas informações podem aparecer em locais distintos, mas apresentando valores diferentes. Em um sistema de BD as informações só se encontram armazenadas em um único local ou estão existindo duplicação controlada dos dados. ♦ Compartilhamento dos Dados: O SGBD deve incluir um software para o controle de concorrência ao acesso dos dados em um ambiente multi-usuário, de forma a possibilitar o compartilhamento dos dados, garantindo que se vários usuários tentar realizar operações de atualização sobre um mesmo conjunto de dados, o resultado destas operações possa ser correto. Outro mecanismo que suporta a noção de compartilhamento de dados consiste na facilidade para definir visões de usuário, o qual torna disponível uma porção específica dos dados do BD de acordo com o seu interesse. ♦ Controle de Acesso: Quando vários usuários compartilham os dados, é comum que alguns não apresentem autorização para acesso a todo o BD. Por exemplo, os dados financeiros são freqüentemente considerados confidenciais e, desse modo, somente pessoas autorizadas devem ter acesso. Além disso, pode ser Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 6 – Parte I (Conceitos Fundamentais) permitido, a alguns usuários, apenas a recuperação dos dados. Já, para outros, são permitidas a recuperação e a modificação. Assim, o tipo de operação de acesso - recuperação ou modificação - pode também ser controlado. Tipicamente, usuários e grupos de usuários recebem uma conta protegida por palavras-chaves, que é usada para se obter acesso à base de dados, o que significa dizer que contas diferentes possuem restrições de acesso diferentes. Um SGBD deve fornecer um subsistema de autorização e segurança, que é usado pelo DBA, para criar contas e especificar restrições nas contas. O SGBD deve então obrigar estas restrições automaticamente. ♦ Controle de Transações: Uma Transação é um conjunto de operações sobre o BD que devem ser executados integralmente e sem falhas ou interrupções. O SGBD deve realizar o controle das Transações para que sejam executadas com segurança. ♦ Possibilidade de Múltiplas Interfaces: Vários usuários representam também necessidades diversas no que refere aos tipos de interfaces fornecidas pelo SGBD. Interfaces para consultas de dados, programação, e interfaces baseadas em menus ou em linguagem natural são exemplos de alguns tipos que podem estar disponíveis. ♦ Representação de Relacionamento Complexo entre Dados: uma base de dados pode possuir uma variedade de dados que estão inter-relacionados de muitas maneiras. Um SGBD deve ter a capacidade de representar uma variedade de relacionamentos complexos entre dados, bem como recuperar e modificar dados relacionados de maneira fácil e eficiente ♦ Reforçar Restrições de Integridade: A maioria dos aplicativos apresentam serviços que possibilitam garantir a integridade dos dados no BD. A restrição de integridade mais simples consiste na especificação do padrão de formato para os dados ou valores assumidos como “default”. ♦ Providenciar "Backup" e Restauração de Dados: Um SGBD deve fornecer recursos para restauração caso ocorra falhas de hardware ou software. O subsistema de backup e restauração do SGBD é o responsável pela restauração. Por exemplo, se o sistema de computador falhar no meio da execução de um programa que esteja realizando uma alteração complexa na base de dados, o subsistema de restauração é responsável em assegurar que a base de dados seja Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 7 – Parte I (Conceitos Fundamentais) restaurada no estado anterior ao início da execução do programa. Alternativamente, o subsistema de restauração poderia assegurar que o programa seja re-executado a partir do ponto em que havia sido interrompido. Sistema de Base de Dados Usuários/Programadores Consultas/Programas de Aplicações SGBD Software p/ processar consultas/programas Software p/ acessar a Base de Dados BaseBase Meta Figura I.2 – Arquitetura Simplificada ♦ Independências de Dados: O SGBD possibilita o desenvolvimento de programas aplicativos que não possuem a descrição real de como os dados (arquivos) estão fisicamente armazenados. Desta forma, alteração nas estruturas dos arquivos do BD não afetam os programas aplicativos. Os três níveis podem ser utilizados para melhor compreender o conceito de independência de dados. Pode-se apresentar dois tipos de independência de dados: ♦ Independência Lógica dos Dados: consiste na capacidade de alterar o esquema conceitual sem provocar modificações nos esquemas externos ou nos programas aplicativos. ♦ Independência Física dos Dados: consiste na capacidade de alterar o esquema interno sem provocar modificações no esquema conceitual. Apesar de todas as vantagens citadas anteriormente sobre um SGBD, há situações em que deve-se ponderar sobre sua utilização, como por exemplo, o alto investimento inicial e possibilidade de compra de um novo hardware; ou a possibilidade de insatisfação no desempenho geral do sistema que pode ser provocado pelas funções de segurança, controle de concorrência, recuperação e manutenção de integridade dos dados. Para que um SGBD possa fornecer as características de independência de dados, suporte a múltiplas visões de vários usuários, entre outras, torna-se necessário a existência de uma organização no sistema para que isto seja possível. 8 - DICIONÁRIO DE DADOS Bons SGBD’s normalmente apoiam a inclusão de descrições textuais sobre cada um dos arquivos do BD, como também de cada usuário e programas aplicativos que são utilizados. Estas informações são incluídas no Dicionário de Dados para servirem de apoio aos novos projetistas ou programadores que possam ser colocados no grupo de trabalho, e deste modo, facilitar o entendimento dos ambiente que está sendo utilizado. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 8 – Parte I (Conceitos Fundamentais) Outros documentos de apoio, como por exemplo, os textos sobre a especificação e a análise das necessidades dos usuários são valiosos e devem ser guardados contudo são informações externas ao BD. Exemplo de Dicionário de Dados para uma tabela denominada Cliente: Cliente Campo Descrição Tipo Máscara Tamanho Restrições Nome Nome do cliente char - 55 Não Nulo Idade Quantidade de anos desde nascimento int 99 - >0 Nascimento Dia e mês de nascim. char dd-mm 5 - Endereço Localização de moradia char 120 Não Nulo Profissão Ocupação profissional principal char 60 - Es_Civil Estado Civil char 15 Solteiro / Casado / Divorciado / Separado 9 - LINGUAGENS E INTERFACES Uma vez que o projeto do BD tenha se completado e um determinado SGBD tenha sido escolhido para a sua implementação, a primeira"ordem do dia" consiste em realizar uma especificação dos esquemas conceituais e internos, e os respectivos mapeamentos entre eles. Para estas etapas o SGBD oferece uma série de linguagens. A primeira delas consiste da Linguagem de Definição de Dados (DDL), a qual é utilizada pelos analistas e projetistas do BD para a definição dos esquemas. O SGBD também apresentará um interpretador para a DDL, o qual será responsável pelo processamento dos comandos da DDL, e realiza o armazenamento do esquema definido em estruturas internas do BD. Uma vez definido e preenchido o BD com os seus dados, estes normalmente sofrerão uma série de operações de acesso às informações nele armazenado. O SGBD fornece a Linguagem de Manipulação de Dados (DML) para a especificação destas operações. Os comandos da DML podem aparecer embutidos em uma outra linguagem (geralmente uma linguagem de programação de alto nível), e neste caso esta é denominada de Linguagem hospedeira, e DML é denominada de Sublinguagem de dados. De outra forma se DML for utilizada isoladamente de uma forma interativa, possa a ser denominada de Linguagem de consulta (ou "query language"). Para interagir com o SGBD além das linguagens descritas anteriormente, o sistema deve apresentar interfaces que sejam amigáveis. Estas interfaces podem ser diversas formas: a). Interfaces baseadas em Menus: permite ao usuário selecionar o trabalho a ser realizado através de uma lista de opções apresentada na forma de Menus. Neste tipo de interface uma consulta pode ser construída através da escolha apropriada de um conjunto de opções; Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 9 – Parte I (Conceitos Fundamentais) b). Interfaces Gráficas: apresenta ao usuário o esquema de Base em uma forma de diagrama, e a criação de consultas é realizada através da manipulação deste diagrama. Normalmente se apresenta associada a um conjunto de menus; c). Interface Baseadas em Formulários: o sistema apresenta ao usuário um formulário, através do qual pode ser preenchido certas entradas. Através destes formulários pode ser realizadas operações de consultas, inserções e remoções de dados; d). Interface em Linguagem Natural: aceita comandos ou requisições escritas em uma linguagem natural ou em alguma outra linguagem de consulta, sendo capaz de "compreender" o que está sendo pedido; e). Interface para usuários comuns: normalmente estes usuários, como o de um terminal bancário, pode realizar apenas um conjunto limitado de operações e de forma repetitiva. Sendo assim, é oferecida uma interface que seja fácil de compreender e com um número reduzido de informações a serem manipuladas e poucas opções disponíveis. No controle de acesso e transações dos dados utiliza-se uma Linguagem de Controle de Dados, que inclusive possibilita estabelecer os diversos níveis de segurança de cada usuário. 10 - ARQUIVOS DE DADOS Os Bancos de Dados são organizados em arquivos de dados que são estruturados dependendo do pacote SGBD adquirido, assim sendo, o relacionamento entre registros de um mesmo arquivo ou de arquivos diferentes depende do gerenciador. Internamente, as estruturas de arquivo são criadas de modo a tornar rápido e flexível o armazenamento e busca de informações, para isso são normalmente utilizados técnicas de indexação dos arquivos como por exemplo Árvore B, Árvore TRIE e etc. O extravio de algum ponteiro em arquivo pode significar a perda de valiosas informações ou o atraso no trabalho. Desta forma, alguns SGBD’s incorporam o conceito de estruturas robustas, ou seja, duplicações de ponteiro para evitar perdas desastrosas. 11 - PROCESSAMENTO DE ARQUIVOS X SBD Algumas características tornam distintas as duas abordagens (Sistemas de Processamento de Dados e o Sistema de Banco de Dados) para o armazenamento de informações, tais como: A). Característica auto-contida do Sistema de BD: o sistema de BD não apresenta apenas os dados em si, mas também o Esquema de Dados que armazena uma completa descrição ou definição das estruturas das informações armazenadas. Em um sistema de arquivos, a definição dos dados faz parte dos programas aplicativos, que são construídos para manipularem especificamente um conjunto de informações. B). Isolamento entre dados e programas: Em um sistema tradicional de arquivos os dados e suas definições se encontram embutidos no interior dos programas. Qualquer alteração na estrutura dos dados significa em alteração no código de todos os programas que manipulam estes dados. Um SGBD consiste de um programa que já apresenta funções próprias para manipular Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 10 – Parte I (Conceitos Fundamentais) qualquer conjunto de dados definidos pelo usuário. Além disso, estas definições são armazenadas separadamente dos dados, ou seja, apresenta a característica de independência de dados. C). Abstrações de Dados: Um BD fornece ao usuário uma representação conceitual dos dados que não inclui muitos detalhes sobre a sua forma de armazenamento, ou como será a organização física destes. D). Suporte a várias visões dos dados: Um BD geralmente apresentam uma série de usuários com diferentes perspectivas ou visões dos dados existentes Processamento Tradicional de Arquivos Processamento Base de Dados Definição dos dados é parte do código de programas de aplicação Meta Dados eliminação de redundâncias Dependência entre aplicação específica e dados Capaz de suportar diversas aplicações eliminação de redundâncias Independência entre dados e programas facilidade de manutenção Representação de dados ao nível físico Representação conceitual através de dados e programas facilidade de manutenção Cada visão é implementada por módulos específicos Suporte a múltiplas visões facilidade de consultas Tabela I.1 – Tipos de Processamento 12 - OBSERVAÇÕES A escolha da tecnologia adequada de Banco de Dados e sua correta utilização trazem algumas vantagens adicionais: ♦ Potencial para obrigar a Padronização: a abordagem de base de dados permite que o DBA defina e obrigue a padronização entre os usuários da base de dados em grandes organizações. Isso facilita a comunicação e a cooperação entre vários departamentos, projetos e usuários. Padrões podem ser definidos para formatos de nomes, elementos de dados, telas, relatórios, terminologias, etc. O DBA pode obrigar a padronização em um ambiente de base de dados centralizado, muito mais facilmente que em um ambiente onde cada usuário ou grupo tem o controle de seus próprios arquivos e software; ♦ Flexibilidade: mudanças na estrutura de uma base de dados podem ser necessárias devido a mudanças nos requisitos. Por exemplo, um novo grupo de usuários pode surgir com necessidade de informações adicionais, não disponíveis atualmente na base de dados. Alguns SGBD’s permitem que tais mudanças na estrutura da base de dados sejam realizadas sem afetar a maioria dos programas de aplicações existentes; ♦ Redução do Tempo de Desenvolvimento de Aplicações: uma das principais características de venda da abordagem de base de dados é o tempo reduzido para o desenvolvimento de novas aplicações, tal como a recuperação de certos dados da base de dados para a impressão de novos relatórios. Projetar e implementar uma nova base de dados pode tomar mais tempo do que escrever uma simples aplicação de arquivos especializada. Porém, uma vez que a base de dados Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 11 – Parte I (Conceitos Fundamentais) esteja em uso, geralmente o tempo para se criar novas aplicações, usando-se os recursos de um SGBD, é bastante reduzido. O tempo para se desenvolver uma nova aplicação em um SGBD é estimado em 1/4 a 1/6 do que o tempo de desenvolvimento, usando-se apenas o sistema de arquivos tradicional, devido as facilidades de interfaces disponíveis em um SGBD; ♦ Disponibilidade de Informações Atualizadas:tão logo um usuário modifique uma base de dados, todos os outros usuários “sentem” imediatamente esta modificação. Esta disponibilidade de informações atualizadas é essencial para muitas aplicações, tais como sistemas de reservas de passagens aéreas ou bases de dados bancárias. Isso somente é possível devido ao subsistema de controle de concorrência e restauração do SGBD; ♦ Economia de Escala: a abordagem de SGBD’s permite a consolidação de dados e de aplicações reduzindo-se, desse modo, o desperdício em atividades redundantes de processamento em diferentes projetos ou departamentos. Isto possibilita à organização como um todo investir em processadores mais poderosos, e periféricos de armazenamento e de comunicação mais eficientes. ❋
Compartilhar