Base de Dados Tema 1: Sistema de Base de Dados Sistema de Base de Dados • Objectivos Introduzir e conhecer os fundamentos gerais sobre sistemas de base de dados • Conteúdos - Introdução. - Modelo de dados. - Conceitos Gerais. - Abordagem base de dados Vs Processamento de arquivos. - Usuários e actividades envolvidas. - Vantagens de um SGBD. - Quando não usar um SGBD. - Arquitectura e independência de dados em SGBD. 1- Introdução
O uso da base de dados vem crescendo com a expansão
do uso da informática. As bases de dados existem para facilitar o armazenamento, processamento e o acesso à informação. O primeiro sistema gerenciador de base de dados surgiu em 1960 com base nos primitivos sistemas de arquivos disponíveis na época, os quais não controlavam o acesso concorrente. 2- Modelo de dados 2.1. Modelo hierárquico O primeiro a ser reconhecido como modelo de dados. Os dados são estruturados em hierarquia ou árvores. Os nós das hierarquias contem ocorrências dos registos, onde cada registo é uma colecção de campos (atributos), cada um contendo apenas uma informação. O registo da hierarquia que precede a outros é o registo pai, os outros registos são chamados de registos -filhos. 2. Modelo de dados • Uma ligação é uma associação entre dois registos. • O relacionamento entre um registo-pai e vários registos-filhos possui cardinalidade 1:N. • Para ter acesso aos dados organizados segundo este modelo segue-se uma sequência hierárquica com uma navegação do topo para as folhas e da esquerda para a direita. • Um registo pode estar associado a vários registos diferentes, desde que seja replicado. A replicação possui duas grandes desvantagens: • pode causar inconsistência de dados quando houver actualização e o desperdício de espaço é inevitável. 2. Modelo de dados 2.2. Modelo em rede • Uma norma foi estabelecida para este modelo de banco de dados, com linguagem própria para definição e manipulação de dados. • Os dados tinham uma forma limitada de independência física. • Também foram definidas as sintaxes para dois aspectos chaves dos sistemas gerenciadores de dados: concorrência e segurança. Concorrência : fornecia uma facilidade na qual parte do banco de dados (ou área) pudesse ser bloqueada para prevenir acessos simultâneos, quando necessário. Segurança: permitia que uma senha fosse associada a cada objecto descrito no esquema. Ao contrário do Modelo Hierárquico, em que qualquer acesso aos dados passa pela raiz, o modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz. O modelo hierárquico e em rede são orientados a registo, isto é, qualquer acesso a base de dados é feito em cada registo. 2. Modelo de dados 2.3. Modelo Relacional Este modelo apareceu 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 ad hoc. O Modelo relacional revelou-se ser o mais flexível e adequado ao solucionar os vários problemas que se colocam no nível da concepção e implementação da base de dados. A estrutura fundamental do modelo relacional é a relação (tabela). Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar. Cada instância do esquema (linha) é chamada de tupla (registo). O modelo relacional não tem caminhos pré-definidos para se fazer acesso aos dados como nos modelos que o precederam. O modelo relacional implementa estruturas de dados organizadas em relações. Porém, para trabalhar com essas tabelas, algumas restrições precisaram ser impostas para evitar aspectos indesejáveis, como: Repetição de informação, incapacidade de representar parte da informação e perda de informação. 2. Modelo de dados 2.4. Modelo Orientado a Objectos • Os bancos de dados orientados a objecto começaram a se tornar comercialmente viáveis em meados de 1980. A motivação para seu surgimento está em função dos limites de armazenamento e representação semântica impostas no modelo relacional. Quando os bancos de dados orientados a objectos foram introduzidos, algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do mercado. Hoje, porém, acredita-se que os Bancos de Dados Orientados a Objectos serão usados em aplicações especializadas, enquanto os sistemas relacionais continuarão a sustentar os negócios tradicionais, onde as estruturas de dados baseadas em relações são suficientes. 3. Conceitos gerais Base de dados Colecção de dados devidamente relacionado. Dados Factos que podem ser armazenados e possuem um significado implícito. Matéria prima para obtenção de informação. Informação Dados compilados e processados de acordo com a solicitação de consultas e analises. Sistema de Base de Dados É o conjunto composto pela base de dados e o software de gerenciamento de base de dados. 3. Conceitos gerais Sistema Gerenciador de Base de Dados é uma colecção de programas que permitem aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações. Definir – Envolve a especificação de tipo de dados a serem armazenados. Construir – Envolve a o processo de armazenar os dados em algum meio que possa ser controlado pelo SGBD. Manipular – Envolve a utilização de funções como a de consulta e de modificação. 3. Conceitos gerais Propriedades das bases de dados • Uma base de dados é uma colecção de dados logicamente relacionado, com algum significado. Associações aleatórias de dados não podem ser chamadas de base de dados. • Uma base de dados é projectada, construída e preenchida (instanciada) com dados para um propósito específico. Ela tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los; • Uma base de dados representa algum aspecto do mundo real, algumas vezes chamado de “minimundo”. Mudanças no minimundo provocam mudanças na base de dados. • Uma base de dados tem alguma fonte de dados, algum grau de interacção com eventos do mundo real e uma audiência que está activamente interessada no seu conteúdo. 4. Abordagem base da dados vs Sistema gerenciador de arquivo Natureza da auto-descrição de Sistema de Banco de Dados Uma característica importante da abordagem Banco de Dados é que o SGBD mantém não somente os dados mas também a forma como os mesmos são armazenados, contendo uma descrição completa do banco de dados. Estas informações são armazenadas no catálogo do SGBD, o qual contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições, etc. A informação armazenada no catálogo é chamada de “Meta Dados”. No processamento tradicional de arquivos, o programa que irá manipular os dados deve conter este tipo de informação, ficando limitado a manipular as informações que o mesmo conhece. Utilizando a abordagem banco de dados, a aplicação pode manipular muitas bases de dados diferentes. 4. Abordagem base da dados vs Sistema gerenciador de arquivo Separação entre Programas e Dados No processamento tradicional de arquivos, a estrutura dos dados está incorporada ao programa de acesso. Desta forma, qualquer alteração na estrutura de arquivos implica na alteração no código fonte de todos os programas. Já na abordagem banco de dados, a estrutura é alterada apenas no catálogo, não alterando os programas. 4. Abordagem base da dados vs Sistema gerenciador de arquivo Abstração de Dados O SGBD deve fornecer ao usuário uma “representação conceitual” dos dados, sem fornecer muitos detalhes de como as informações são armazenadas. Um “modelo de dados” é uma abstração de dados que é utilizada para fornecer esta representação conceitual utilizando conceitos lógicos como objetos, suas propriedades e seus relacionamentos. A estrutura detalhada e a organização de cada arquivo são descritas no catálogo. 4. Abordagem base da dados vs Sistema gerenciador de arquivo Múltiplas Visões de Dados Como um conjunto de informações pode ser utilizada por um conjunto diferente de usuários, é importante que estes usuários possam ter “visões” diferentes da banco de dados. Uma “visão” é definida como um subconjunto de um banco de dados, formando deste modo, um conjunto “virtual” de informações. 5. Usuários e Atividades envolvidas Administrador de Banco de Dados (DBA) Em um ambiente de banco de dados, o recurso primário é o banco de dados por si só e o recurso secundário é o SGBD e os softwares relacionados. A administração destes recursos cabe ao Administrador de Banco de Dados, o qual é responsável pela autorização de acesso a banco de dados e pela coordenação e monitoração de seu uso. 5. Usuários e Atividades envolvidas Projetista de Banco de Dados O Projetista de Banco de Dados é responsável pela identificação dos dados que devem ser armazenados no banco de dados, escolhendo a estrutura correta para representar e armazenar dados. Muitas vezes, os projetistas de banco de dados atuam como “staff” do DBA, assumindo outras responsabilidades após a construção do banco de dados. É função do projetista também avaliar as necessidades de cada grupo de usuários para definir as visões que serão necessárias, integrando-as, fazendo com que o banco de dados seja capaz de atender todas as necessidades dos usuários. 5. Usuários e Atividades envolvidas Usuários Finais Existem basicamente três categorias de usuários finais que são os usuários finais de banco de dados, fazendo consultas, atualizações e gerando documentos: usuários casuais: acessam o banco de dados casualmente, mas que podem necessitar de diferentes informações a cada acesso; utilizam sofisticadas linguagens de consulta para especificar suas necessidades; usuários novatos ou paramétricos: utilizam porções pré-definidas do banco de dados, utilizando consultas pré- estabelecidas que já foram exaustivamente testadas; usuários sofisticados: são usuários que estão familiarizados com o SGBD e realizam consultas complexas. 5. Usuários e Atividades envolvidas Analistas de Sistemas e Programadores de Aplicações Os analistas determinam os requisitos dos usuários finais e desenvolvem especificações para transações que atendam estes requisitos, e os programadores implementam estas especificações como programas, testando, depurando, documentando e dando manutenção no mesmo. É importante que, tanto analistas quanto programadores, estejam a par dos recursos oferecidos pelo SGBD. 6. Vantagens de um SGBD Controle de Redundância No processamento tradicional de arquivos, cada grupo de usuários deve manter seu próprio conjunto de arquivos e dados. Desta forma, acaba ocorrendo redundâncias que prejudicam o sistema com problemas como: Toda vez que for necessário atualizar um arquivo de um grupo, então todos os grupos devem ser atualizados para manter a integridade dos dados no ambiente como um todo; A redundância desnecessária de dados levam ao armazenamento excessivo de informações, ocupando espaço que poderia estar sendo utilizado com outras informações. 6. Vantagens de um SGBD Compartilhamento de Dados Um SGBD multi-usuário deve permitir que múltiplos usuários acessem o banco de dados ao mesmo tempo. Este fator é essencial para que múltiplas aplicações integradas possam acessar o banco. O SGBD multi-usuário deve manter o controle de concorrência para assegurar que o resultado de atualizações sejam corretos. Um banco de dados multi-usuários deve fornecer recursos para a construção de múltiplas visões. 6. Vantagens de um SGBD Restrição a Acesso não Autorizado Um SGBD deve fornece um subsistema de autorização e segurança, o qual é utilizado pelo DBA para criar “contas” e especificar as restrições destas contas; O controle de restrições se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SGBD. 6. Vantagens de um SGBD Representação de Relacionamentos Complexos entre Dados Um banco de dados pode incluir uma variedade de dados que estão inter-relacionados de várias formas. Um SGBD deve fornecer recursos para se representar uma grande variedade de relacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prática e eficiente. 6. Vantagens de um SGBD Tolerância a Falhas Um SGBD deve fornecer recursos para recuperação de falhas tanto de software quanto de hardware. 7. Quando não Utilizar um SGBD Em algumas situações, o uso de um SGBD pode representar uma carga desnecessária aos custos quando comparado à abordagem processamento tradicional de arquivos como por exemplo: Alto investimento inicial na compra de software e hardware adicionais; Generalidade que um SGBD fornece na definição e processamento de dados; Sobrecarga na provisão de controle de segurança, controle de concorrência, recuperação e integração de funções. 7. Quando não Utilizar um SGBD Problemas adicionais podem surgir caso os projetistas de banco de dados ou os administradores de banco de dados não elaborem os projetos corretamente ou se as aplicações não são implementadas de forma apropriada. Se o DBA não administrar o banco de dados de forma apropriada, tanto a segurança quanto a integridade dos sistemas podem ser comprometidas. 7. Quando não Utilizar um SGBD Problemas adicionais podem surgir caso os projetistas de banco de dados ou os administradores de banco de dados não elaborem os projetos corretamente ou se as aplicações não são implementadas de forma apropriada. Se o DBA não administrar o banco de dados de forma apropriada, tanto a segurança quanto a integridade dos sistemas podem ser comprometidas. 7. Quando não Utilizar um SGBD A sobrecarga causada pelo uso de um SGBD e a má administração justificam a utilização da abordagem processamento tradicional de arquivos em casos como: - O banco de dados e as aplicações são simples, bem definidas e não se espera mudanças no projeto; - A necessidade de processamento em tempo real de certas aplicações, que são terrivelmente prejudicadas pela sobrecarga causada pelo uso de um SGBD; - Não haverá múltiplo acesso ao banco de dados. 8. Arquitectura e independecia de dados de um SGBD • A arquitectura mais difundida na literatura é a three-schema, conhecida também por ANSI/SPARC. • A meta desta arquitectura é separar as aplicações dos usuários da base de dados física. • Nesta arquitectura os esquemas podem ser definidas em três níveis: Interno, Conceitual e Externo. 8. Arquitectura e independecia de dados de um SGBD • Nível interno: tem um esquema interno que descreve a estrutura de armazenamento físico da base de dados. O esquema interno usa um modelo de dados físico e descreve todos os detalhes de armazenamento de dados e caminhos de acesso à base de dados; • Nível conceitual: tem um esquema conceitual que descreve a estrutura de toda a base de dados. O esquema conceitual é uma descrição global da base de dados, que omite detalhes da estrutura de armazenamento físico e se concentra na descrição de entidades, tipos de dados, relacionamentos e restrições. Um modelo de dados de alto-nível ou um modelo de dados de implementação podem ser utilizados neste nível. • Nível externo ou visão: possui esquemas externos ou visões de usuários. Cada esquema externo descreve a visão da base de dados de um grupo de usuários da base de dados. Cada visão descreve, tipicamente, a parte da base de dados que um particular grupo de usuários está interessado e esconde deste o restante da base de dados. Um modelo de dados de alto-nível ou um modelo de dados de implementação podem ser usados neste nível. 8. Arquitectura e independecia de dados de um SGBD • Muitos SGBD’s não separam os três níveis completamente. Pode acontecer que alguns SGBD’s incluam detalhes do nível interno no esquema conceitual. Em muitos SGBD’s que permitem visões, os esquemas externos são especificados com o mesmo modelo de dados usado no nível conceitual. Note que os três esquemas são apenas descrições dos dados. • A arquitetura “three-schema” pode ser utilizada para explicar conceitos de independência de dados, que podem ser definidos como a capacidade de alterar o esquema de um nível sem ter que alterar o esquema no próximo nível superior. • Dois tipos de independência de dados podem ser definidos: Independência Lógica de Dados: É a capacidade de alterar o esquema conceitual sem ter que mudar os esquemas externos ou programas de aplicação. Pode-se mudar o esquema conceitual para expandir a base de dados, com a adição de novos tipos de registros (ou itens de dados), ou reduzir a base de dados removendo um tipo de registro. Neste último caso, esquemas externos que se referem apenas aos dados remanescentes não devem ser afetados; Independência Física de Dados: É a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual externo. Mudanças no esquema interno podem ser necessárias devido a alguma reorganização de arquivos físicos para melhorar o desempenho nas recuperações e/ou modificações. Após a reorganização, se nenhum dado foi adicionado ou perdido, não haverá necessidade de modificar o esquema conceitual. Referências • E. R. Elmasri and S. Navathe and. Fundamentals of Database Systems. Fourth Edition, Editora Pearson Addison Wesley, 2003 • E. R. Elmasri and S. Navathe and. Fundamentals of Database Systems. Editora Addison Wesley pub 2001 • Silberschatz, Abraham; Korth, Henry & Sudarshan, S.Sistema de banco de dados, Rio de Janeiro: Campus, 3ª ed., 2005C. J. Date, A. Kannan, S. Swamynathan; An Intrduction to Database Systems. EIGHTH EDITION • Apresentações elaboradas pelo docente