Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Sistemas de Banco de Dados Aula 01: Sistemas de banco de dados Apresentação No mundo digital, nossas vidas são regidas por diversos sistemas. Para funcionar, esses sistemas necessitam de grande volume de dados. Não é possível conceber qualquer sistema que possa prescindir de um Banco de Dados. Você já parou para pensar o que é um Banco de Dados? Nesta aula, procuraremos responder a essa pergunta. Objetivos Identi�car as características de um sistema de banco de dados; Diferenciar sistemas de banco de dados, sistemas gerenciadores de banco de dados e banco de dados; Explicar as fases do projeto de banco de dados. Dados e informações Quando vamos realizar um saque no caixa eletrônico de um banco, o sistema do equipamento tem que acessar os números da agência e da conta, senha e saldo disponível. Estes dados necessitam de gerenciamento e�ciente e con�ável, que permita sua rápida recuperação e atualização. Mas muita gente confunde dados com informações. Por isso, vamos fazer a distinção entre eles. Dados Fatos, eventos, conceitos, instruções antes de terem sido organizadas em um formato inteligível e útil para o usuário. Informações Dados já formatados de uma maneira inteligível e útil ao usuário. Sistemas de Informação e Fluxo de Informação Um Sistema de Informação pode ser de�nido como um conjunto de componentes que coletam, processam, armazenam e distribuem informações para suportar a tomada de decisão e o controle das operações de uma organização. Ele contém informações sobre pessoas e lugares dentro da organização ou do ambiente externo à organização, com o qual ela mantenha constante intercâmbio. Há basicamente três níveis de intercâmbio de informações: Ambiente externo Organização Sistemas de informações Em um Sistema de Informação, há três atividades básicas, através das quais ele produz as informações necessárias para a tomada de decisão e controle das operações dentro da organização: Entrada (input) Coleta os dados dentro da organização ou do ambiente externo para o processamento. Processamento Converte os dados coletados, colocando-os em uma forma inteligível. Saída (output) Distribui as informações processadas para os usuários e para outras atividades, ou armazena-os para futura utilização. Os Sistemas de Informação também necessitam de realimentação (feedback). A saída (output) retorna aos membros da organização para avaliação e correção dos dados coletados e processados. O desenvolvimento de Sistemas de informações evoluiu,ao longo do tempo, de Sistemas Tradicionais para Sistema de Banco de Dados. Sistemas de informação Sistemas tradicionais Estes sistemas são baseados no uso de arquivos que, normalmente, são associados a um único sistema de aplicação, que traz, por consequência, redundância de dados quando os mesmos dados se faziam necessários em outros sistemas. A maioria das organizações desenvolve os seus Sistemas de Informação um por vez, à medida que se tornam necessários, utilizando, cada um, o seu próprio conjunto de programas, arquivos e usuários. A �gura abaixo mostra a estrutura de um sistema baseado em arquivo. Com ela podemos notar que: 1. Cada aplicação possui seus próprios arquivos de dados; 2. Se uma aplicação compartilha dados com outras, estes têm que ser duplicados; 3. Qualquer alteração no modelo de dados resulta na mudança do código da aplicação. O desenvolvimento de Sistemas de informações evoluiu,ao longo do tempo, de Sistemas Tradicionais para Sistema de Banco de Dados. De acordo com Silberschatz, Korth e Sudarshan (2006), o esquema apresentado acaba acarretando em: Sistemas baseados em arquivo Redundância de dados Duplicação dos mesmos dados em dois ou mais arquivos. O problema da redundância é que as mudanças, ao serem feitas no arquivo de uma aplicação, não são automaticamente realizadas nos arquivos das outras aplicações, gerando a falta de integridade dos dados. Dependência entre programas e dados Os aplicativos tradicionais de banco de dados de arquivos são caracterizados pela dependência entre programas e dados, isto é, programas e dados desenvolvidos e organizados para uma aplicação são incompatíveis com os programas e dados organizados para um outro aplicativo. Custo excessivo em software Custo resultante da criação, documentação e acompanhamento de muitos arquivos e aplicações diferentes. Características de um sistema de banco de dados A abordagem de bancos de dados ao gerenciamento de dados surgiu por causa dos problemas associados à abordagem tradicional do gerenciamento de dados como: Redundância Di�culdades de acesso Integridade Problemas de segurança Um banco de dados é uma coleção de dados organizados de tal forma que possam ser acessados e utilizados por muitas aplicações diferentes. Ou seja, em vez de armazenar dados em arquivos separados para utilização, os dados são armazenados e organizados em um só local, permitindo compartilhamento e interrelacionamento por múltiplos usuários. A �m de usar a abordagem de banco de dados para o gerenciamento de dados, foi necessário um software adicional – um sistema de gerenciamento de banco de dados (SGBD ).1 http://estacio.webaula.com.br/cursos/go0095/aula1.html Sistemas de banco de dados A �gura a seguir nos mostra a constituição de um Sistema de Banco de Dados: Agora, veremos mais detalhes sobre cada elemento apresentado na imagem: Clique nos botões para ver as informações. Sistema de informações, computadorizado, que possibilita o armazenamento, manuseio, alteração e divulgação das informações armazenadas. Essas informações se fazem representar por dados organizados e formatados de maneira que sejam conhecidos e utilizados pelos usuários. Sistema de banco de dados Os programas são escritos em uma linguagem de front-end, possibilitando o acesso do usuário informações contidas no banco. Já as consultas representam as informações solicitadas pelo usuário ao banco de dados. Programas aplicativos e consultas Coleção de programas que permite aos usuários criar e manipular uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral, que facilita o processo de de�nir, construir e manipular a base de dados de diversas aplicações. Sistema Gerenciador de Banco de Dados (SGBD) Módulo do SGBD responsável por determinar a forma de executar a consulta solicitada pelo usuário, via aplicação. Realiza a interpretação do comando (análise sintática, léxica e semântica) e elabora o plano de execução do comando, estabelecendo a forma de acessar �sicamente os dados. Software para processar consultas/manipulação Módulo do SGBD responsável pelo controle do acesso físico aos dados. Software para acessar dados armazenados Conjunto de valores armazenados pelo banco de dados em seus arquivos. Dados Local onde são armazenados os metadados, ou seja, informações referentes ao tipo e organização dos dados do banco. Catálogo De�nição de Banco de Dados Um banco de dados é uma coleção de dados interrelacionados, representando informações sobre um domínio especí�co. Estes dados são fatos que podem ser armazenados e têm signi�cado implícito. Como exemplo podemos citar listas telefônicas, o controle do acervo de uma biblioteca e o sistema de controle de recursos humanos de uma empresa. Um banco de dados tem as seguintes propriedades implícitas: 1 Um banco de dados representa alguns dos aspectos do mundo real, algumas vezes chamado de minimundo. Asmudanças neste minimundo são re�etidas no banco de dados. 2 Um banco de dados é uma coleção lógica e coerente de dados com algum signi�cado. Uma coleção aleatória de dadosnão pode, corretamente, referir-se a um banco de dados. 3 Um banco de dados é projetado, construído e povoado com dados para um propósito especí�co. Ele tem um grupo deusuários e algumas aplicações pré-concebidas nas quais estes usuários estão interessados. Características da abordagem de banco de dados De acordo com Elmasri e Navathe (2011), existem quatro características.A Saber: Autoinformação Uma característica importante da abordagem de banco de dados é que o SGBD mantém, além dos dados, a forma como os eles são armazenados, contendo uma descrição completa do banco de dados. Uma característica importante da abordagem de banco de dados é que o SGBD mantém, além dos dados, a forma como os eles são armazenados, contendo uma descrição completa do banco de dados. 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 de banco de dados, a estrutura é alterada apenas no catálogo, não alterando os programas. 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 empregada 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. Múltiplas Visões de Dados Como um conjunto de informações pode ser utilizada por um conjunto diferenciado de usuários, é importante que estes usuários possam ter “visões” diferentes da base de dados. Uma “visão” é de�nida como um subconjunto de uma base de dados, formando, deste modo, um conjunto “virtual” de informações. São vantagens da utilização de Sistemas de Banco de Dados: 1 - Redução ou eliminação de redundâncias Possibilita a eliminação de dados privativos de cada sistema. Os dados comuns a mais de um sistema são compartilhados, sendo mantida uma única informação a ser consultada por vários sistemas. 2 - Eliminação de inconsistências Ocorre através do armazenamento da informação em um único local com acesso descentralizado. A inconsistência acontece quando um mesmo campo tem valores distintos em sistemas diferentes. Exemplo: o estado civil de uma pessoa é solteiro em um sistema e casado em outro. Isto ocorre porque o campo em um sistema foi atualizado e, no outro, não. Quando o dado é armazenado em um único local e compartilhado pelos sistemas, este problema não ocorre. 3 - Compartilhamento dos dados Permite a utilização simultânea e segura de um dado por mais de uma aplicação ou usuário independentemente da operação que esteja sendo realizada. Nesse caso, deve ser observado o processo de atualização. Para não gerar erros de processamento, é preciso atualizar simultaneamente o mesmo campo do mesmo registro. Os aplicativos são, por natureza, multiusuários. 4 - Restrições de segurança De�nem, para cada usuário, o nível de acesso (leitura, leitura e gravação ou sem acesso) ao arquivo e ao campo. Este recurso impede que pessoas não autorizadas utilizem ou atualizem um determinado arquivo ou campo. 5 - Padronização dos dados Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato (padronização de tabela, conteúdo de campo), seguindo critérios padrões preestabelecidos pela organização. Para o campo "Sexo", por exemplo, somente será permitido armazenamento dos conteúdos "M" ou "F". 6 - Independência dos dados A independência dos dados dita que recuperação das informações pelos programas de aplicação deve ser totalmente independente da maneira como os dados estão �sicamente armazenados. Este conhecimento do formato de armazenamento do campo é totalmente transparente para o usuário. 2 7 - Manutenção da integridade Consiste em impedir que um determinado código ou chave em uma tabela não tenha correspondência em outra. Exemplo: Um código de uma determinada disciplina na tabela “Histórico Escolar” sem a sua descrição na tabela “Disciplina”. Arquitetura Três Esquemas Para facilitar o desenvolvimento de sistemas e realçar as vantagens da utilização de Sistemas de Banco de Dados, foi criada a Arquitetura Três Esquemas, cuja principal meta é separar as aplicações do usuário do banco de dados físico. http://estacio.webaula.com.br/cursos/go0095/aula1.html Elmasri e Navathe (2011) destacam as funções de cada um dos três esquemas: Arquitetura – 3 esquemas Esquema Interno Descreve a estrutura de armazenamento físico do banco de dados; Utiliza um modelo de dados; Lista detalhadamente os dados armazenados e os caminhos de acesso ao banco de dados. Esquema Conceitual Descreve a estrutura do banco de dados como um todo; Apresenta uma descrição global do banco de dados, que não fornece detalhes do modo como os dados estão �sicamente armazenados. Esquema Externo Descreve as visões do banco de dados para um grupo de usuários; De�ne, em cada visão, quais porções do banco de dados um grupo de usuários terá acesso. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Usuários de Banco de Dados A implantação e a utilização de um SGBD envolvem uma gama de pro�ssionais em diferentes níveis e especialidades dentro de uma organização. De acordo com as bibliogra�as pesquisadas, foi possível localizar os seguintes pro�ssionais e suas atividades em um banco de dados: Analista de sistema Determina especi�cações dos usuários funcionais na organização; De�ne parte do projeto lógico do sistema de acordo com a necessidade do seu negócio ou departamento. Programadores de aplicação Implementam as especi�cações avaliadas pelo analista de sistema produzindo programas escritos na linguagem hospedeira (por exemplo, Cobol, PL/1, Pascal, C); Testam, depuram, documentam e mantêm estes programas. Testam, depuram, documentam e mantêm estes programas. Identi�ca os dados a serem armazenados no banco de dados; Escolhe estruturas apropriadas para representar e armazenar tais dados; Obtém requisitos necessários dos futuros usuários do banco de dados para que o projeto de banco de dados possa ser capaz de dar suporte a todos os níveis e departamentos da organização. Administrador de banco de dados Supervisiona e gerencia o compartilhamento de todos usuários na utilização do banco de dados; Autoriza o acesso ao banco de dados; Coordenar e monitorar seu uso; Coordena o projeto global de banco de dados; Desenvolve e mantém dos esquemas e subesquemas; Desenvolve e mantém os dicionários de dados; Implementa o SGBD. Projeto de banco de dados Projetar um banco de dados pode ser de�nido como modelar uma realidade, é criar um modelo a partir da análise de uma parcela do mundo real denominada minimundo, ou por reconstrução de um modelo já existente. Ao realizarmos a modelagem, devemos executar um conjunto de atividades sucessivas, que podem se subdividir em outras atividades mais simples, até atingimos o nível de atividades elementares. O que é necessário para executar as atividades? Insumos Os insumos servem de matéria-prima para a geração de produtos. Normalmente, os insumos de uma atividade são o produto da atividade anterior, ou seja, uma atividade A produz os insumos da atividade B que a sucede. A sucessão de atividades organizada de forma lógica e sequencial formam a metodologia. Técnica Outro componente da modelagem é a técnica, que nada mais é do que a forma como os insumos são transformados em produtos no âmbito da atividade. Ferramentas Para aplicar a técnica, necessitamos de ferramentas, que são os instrumentos utilizados para transformar os insumos em produtos. No nosso caso especí�co, são denominadas Ferramentas de Modelagem. Em resumo, poderíamos resumir os componentes de modelagem da seguinte forma: Metodologia Conjunto de atividades para produzir o modelo. Técnica Como cada atividade é executada. Ferramenta Instrumento utilizada para executar a atividade. Veja uma representação grá�ca da modelagem: Modelagem de dados Modelos Temos aqui duas acepções para o termo modelo: Ferramenta de modelagem Observe na �gura anterior a seta amarela, pois ela representa as técnicas utilizadas na modelagem e o conjunto de suas ferramentas,que visam de�nir as estruturas de armazenamento de dados necessárias para o atendimento das necessidades dos sistemas. Produto �nal da atividade de modelagem Como produto �nal que são representam gra�camente, na maioria das vezes, o minimundo. Repare na �gura anterior o Modelo 1 e o Modelo n. Repare também que, a partir do minimundo (insumo), foi gerado Modelo 1 (produto) e que, a partir de Modelo 1 (insumo), foi realizada uma nova atividade de modelagem e gerado o Modelo n (produto). Mundo real Na busca pela compreensão do mundo que o cerca, o homem produz modelos do mundo real, visando a sua formalização. Ao construirmos um DER ou ao escrevermos um texto descritivo de uma realidade, estamos formalizando no papel a situação que examinamos e da qual, ao abstrairmos detalhes irrelevantes, criamos conceitos que irão estabelecer modelos que servirão sucessivamente de insumos para a criação de modelos cada vez mais complexos. Podemos, dessa forma, compreender o conjunto de modelos que criamos a partir de parcelas do mundo real ou a partir de outros modelos, que compõem o conhecimento humano. A transformação da realidade observada em algo que possa ser processado em um computador é um grande desa�o. Para fazer essa transformação, temos o projeto de banco de dados, que é a metodologia utilizada para criar o esquema de um ou mais bancos de dados que irão armazenar os valores (instância) necessários ao funcionamento dos sistemas de uma organização. Atividade de modelagem Objetivo do projeto de banco de dados A atividade de projetar um banco de dados é complexa devido aos seguintes fatores: Nebulosidade existente no minimundo; Di�culdade de entendimento das características dos objetos do minimundo; Necessidade de utilização e�ciente das ferramentas de modelagem; Necessidade de atendimento de todos os requisitos de informação; Di�culdade inerentes ao gerenciamento de projetos de TI. Visando minimizar a complexidade, é possível utilizar a estratégia de particionamento, ou seja, dividir o projeto de Banco de Dados em fases sucessivas. Para isso, pode ser necessário responder às seguintes perguntas: Como elas se relacionam? Quais são as partes (atividades do processo)? Quais são seus produtos? Criação de um modelo abstrato do minimundo Este modelo deve ser elaborado independentemente de qualquer tecnologia da Informação. Ela visa formalizar a realidade a ser modelada de gra�camente e com o maior rigor matemático possível. Criação de um modelo processável A partir do modelo abstrato, criamos um modelo que possa ser implementado em um meio computacional. Como a criação do modelo processável ainda é inerentemente complexa, vamos subdividi-la em duas fases: Clique nos botões para ver as informações. A partir do modelo abstrato, criamos um modelo que pode ser implementado em uma classe de tecnologia da informação de banco de dados (orientado a objetos, banco relacional, banco objeto relacional, noSQL). Criação de um modelo implementável A partir do modelo implementável, criamos um modelo que possa ser colocado em produção em uma implementação da tecnologia de banco de dados especí�ca (SGBD, PostgreSQL), rodando em Windows Server constituindo um Servidor de Banco de Dados para até 64 usuários acessando o Banco de Dados de forma não simultânea. Criação de um modelo processável Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Fases e ferramentas do projeto de banco de dados As três etapas descritas anteriormente dão origem à metodologia do projeto de banco de dados, que se divide em: 1 Projeto conceitual de banco de dados - Quando o DER é utilizado, construímos um modelo da realidade dissociado dequalquer Tecnologia da Informação. 2 Projeto lógico de banco de dados - Quando um modelo de dados (Relacional, Orientado a Objetos, Documentos etc.) éutilizado, criamos um esquema de armazenamento para os dados. 3 Projeto físico de banco de dados - Quando uma linguagem de acesso a um determinado SGBD é utilizada, escrevemosos comandos que irão criar o banco e as estruturas de armazenamento. Na �gura seguinte, são expostas as fases do projeto de banco de dados e as ferramentas a serem utilizadas em cada uma delas: Fases do projeto de banco de dados Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Ferramentas CASE A Engenharia de Software Auxiliada por Computador, do inglês CASE (Computer-Aided Software Engineering), visa dar suporte ao desenvolvedor, fornecendo serviços de apoio, contribuindo para o aumento da produtividade e para a melhoria da qualidade do sistema criado. Existe no mercado grande quantidade de ferramentas que fornecem diferentes serviços. A grande maioria possui em comum a possibilidade de fazer a modelagem de forma visual, gerando os modelos de forma grá�ca. As ferramentas CASE utilizadas em modelagem de dados permitem realizar a diagramação do modelo conceitual, gerar o modelo lógico e, normalmente, gerar o script SQL para a criação do banco de dados no SGBD. Ferramentas pro�ssionais permitem ainda fazer a engenharia reversa do banco, ou seja, acessar o banco no SGBD e criar o modelo lógico e o modelo conceitual a partir do banco criado �sicamente. (Fonte: Shutterstock). Atividades 1. Dentro da estrutura de um sistema de banco de dados, onde a autoinformação é materializada? 2. Quem é o usuário de banco de dados que gerencia o SGBD? Explique sua função. 3. Os desenvolvedores de aplicações que usam o banco de dados atuam em que esquema? Notas SGBD1 Grupo de programas que pode ser usado como uma interface entre o banco de dados e um usuário, ou entre um banco de dados e um programa aplicativo. Independência dos dados2 A independência dos dados permite que: Os programas de aplicação de�nam apenas os campos que serão utilizados, independentemente da estrutura interna dos arquivos; Ao incluir novos campos no arquivo, a manutenção seja feita apenas nos programas que utilizam esses campos, não sendo necessário alterar os demais programas. Observação: Nos sistemas tradicionais, este tipo de operação requer a alteração no layout de todos os programas do sistema que utilizam o arquivo. Referências DATE, C. J. Introdução a sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000. ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson Addison Wesley, 2011. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de banco de dados. 5. ed. Rio de Janeiro: Campus, 2006. Próxima aula Modelo Relacional. Explore mais Leia os textos: A história dos bancos de dados;. O que são metadados.. Assista ao vídeo: História do SQL Server.. javascript:void(0); javascript:void(0); javascript:void(0);
Compartilhar