Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMA GERENCIADOR DE BANCO DE DADOS SUMÁRIO Apresentação Autor 4 6 Modelo de Dados 34 UML Levantamento de requisitos Modelagem de dados UNIDADE 2 7 Banco de dados Modelos de Banco de Dados Sistema Gerenciador de Banco de Dados – SGBD Sistema de Gerenciamento de Banco de Dados UNIDADE 1 SUMÁRIO Normalização de dados 109 Engenharia reversa As três formas normais Forma normal Boyce-Codd UNIDADE 4 77 Conceito Relacionamento entre as classes Modelando o diagrama de classes Diagrama de classes UNIDADE 3 4 A disciplina Sistema Gerenciador de Banco de Dados (SGBD) visa ao entendimento da necessidade de aplicação e de implementação de um SGBD nas empresas. Ao longo das aulas, você vai perceber que o uso dessa tecnologia permite o fortalecimento e o engrandecimento do negócio junto ao mercado globalizado. Além disso, você vai ver que é importante ter um ou mais sistemas de informação conectados a uma excelente base de dados, para que os negócios possam ser geridos de forma plena e segura. O Sistema Gerenciador de Banco de Dados consiste em um conjunto tecnológico de recursos utilizados para: • Tratar a informação. • Gerar segurança nos dados. • Permitir eficiência e eficácia na comunicação, incluindo software, hardware e rede de comunicação de dados. O Sistema Gerenciador de Banco de Dados vem se tornando cada vez mais importante no nosso contexto por conta da globalização, que permitiu, ao longo dos anos, que as empresas pudessem ter informações mais rápidas e precisas. Além disso, o Sistema Gerenciador de Banco de Dados tem prospectado novas oportunidades de trabalho, crescimento de novos cenários de negócios, aumento do comércio e investimento de empresas internacionais. Entretanto, apesar dessas modificações positivas, os avanços em tecnologia estão gerando malefícios, como, por exemplo, os novos custos para os processos. Nesta unidade, você verificará que os Sistemas de Gerenciamento de Banco de Dados são essenciais para as operações diárias das empresas, para que possam ter o controle sobre as suas informações e, a partir delas, criar estratégias para potencializar o negócio. APRESENTAÇÃO 5 As inovações tecnológicas permitirão que as empresas experimentem sempre um rápido crescimento, tendo em vista a qualificação oferecida a seus profissionais, bem como as oportunidades de aquisição de hardwares e softwares com maior potência para o engrandecimento do negócio. Isso permitirá uma expansão até com o mercado internacional. 6 CLAUDIO FICO FONSECA Graduado em Informática, especialista em Marketing, MBA em Gestão Empresarial, MBA em Gerenciamento de Projetos, mestre em Educação e doutor em Gestão Educacional. Exerce na Universidade Veiga de Almeida – UVA os cargos de diretor de Desenvolvimento Institucional, coordenador do curso de Sistemas da Informação (presencial e EAD), coordenador do curso de Análise e Desenvolvimento de Sistemas (EAD), coordenador do curso de Gestão da Tecnologia da Informação (EAD), coordenador do Núcleo de Certificação Profissional e Internacional, coordenador de MBA em Gestão Estratégica de TI. Exerceu o cargo de diretor da Escola de Tecnologia da Informação e Inovação das Faculdades Integradas de Jacarepaguá – FIJ; diretor de pós-graduação e extensão e consultor de Tecnologia da Informação na Master Educacional, pró-reitor acadêmico e diretor de tecnologia do Grupo Educacional Anglo-Americano, vice-reitor adjunto, diretor de Certificação Profissional e gerente de TI do Centro Universitário da Cidade do Rio de Janeiro. Atua como conselheiro de Educação e Novas Tecnologias, membro da Associação Brasileira de Educação, membro titular do Conselho Ibero-Americano, avaliador institucional e de cursos da área de informática e cursos superiores de tecnologia do Ministério da Educação/INEP, avaliador de cursos do Guia do Estudante e perito de Tecnologia da Informação da Justiça do Trabalho. AUTOR C. Lattes http://lattes.cnpq.br/6387003742232768 Sistema de Gerenciamento de Banco de Dados UNIDADE 1 8 Nesta unidade, você estudará o conceito e a importância do Sistema de Gerenciamento de Banco de Dados dentro uma perspectiva teórica; conhecerá os diversos usos de um SGBD na empresa, bem como suas respectivas aplicações; saberá a importância dos princípios do gerenciamento da informação para a melhoria e a segurança do negócio. INTRODUÇÃO Nesta unidade, você será capaz de: • Conhecer os conceitos de banco de dados, seu papel na construção de um projeto de sistemas, especialmente o Sistema Gerenciador de Banco de Dados (SGBD), para garantir a aplicação em um sistema computacional de informações e a importância da informação em um sistema, de acordo com a perspectiva de cada usuário ou grupo de usuários. OBJETIVO 9 Banco de dados O que são bancos de dados? Podemos trabalhar com duas nomenclaturas diferentes: bancos de dados e/ou bases de dados. Definir bancos de dados, por outro lado, não é tão simples. Observe, a seguir, algumas definições possíveis: Bancos de dados são conjuntos de informações que se relacionam criando um sentido. São de grande importância para toda e qualquer empresa e, há duas décadas, se tornaram peça-chave de todos os sistemas de informação. Bancos de dados são conjuntos de arquivos que se comunicam entre si, proporcionando o armazenando de uma grande quantidade de dados: nomes, telefones, documentos, pagamentos, endereços, clientes, serviços etc. Os bancos de dados precisam ser configurados e administrados por meio das linguagens de programação, como, por exemplo: Java script, SQL, PL/SQL etc. De forma simples, um banco de dados nada mais é do que um ambiente de armazenamento de dados. Em um mundo cada vez mais digital, o controle, a necessidade e a gestão desses dados podem ser os diferenciais para conseguir sucesso no mercado. Um banco de dados é, na verdade, uma estrutura de dados organizada, que possibilita a busca de informações direcionadas. Banco de dados são uma coleção de dados interligados entre si e organizados para fornecer informações de grande importância. Como um banco de dados é estruturado? É importante frisarmos que um banco de dados pode possuir uma ou mais tabelas. Dentro da tabela, os dados são organizados em linhas e colunas e podem ser indexados ou 10 não (opção que a tabela oferece no momento de sua configuração), o que caracteriza uma grande facilidade para encontrar informações relevantes. Os dados, dentro de uma determinada tabela, podem ser incluídos, alterados e excluídos, conforme as informações são tratadas e em função das demandas. A tabela, em conjunto com o banco de dados, se ajusta para criar e atualizar seu próprio volume, consultando os dados e executando aplicativos internos. Nos dias de hoje, é possível encontrar diversos tipos de banco de dados, mas eles estão presentes na nossa vida há muito tempo. Como exemplo, podemos citar as antigas listas telefônicas, que, hoje, são os contatos dos respectivos Smartphones. Podemos levar em consideração esse exemplo por se tratar de um conjunto de informações importantes com grande representatividade para o nosso dia a dia. Afinal, quem é que hoje memoriza um número de telefone? No passado, era comum que as empresas armazenassem suas informações em arquivos físicos (folha de papel, cartão etc.), mas, com o surgimento e a evolução dos computadores portáteis e de grande porte, foi possível possibilitar o armazenamento de dados e informações de modo digital. Dessa forma, os bancos de dados passaram a evoluir em larga escala e começaram a se tornar o coração de vários sistemas de informação. Dados versus informações Muitos estudiosos consideram os termos dado e informação sinônimos, mas, na verdade, não são. Para que se possa entender, na íntegra, o que é um banco de dados é fundamental saber a diferença entre esses dois termos: Dados são fatos brutos, não lapidados, em sua forma mais primária. Na maioriadas vezes, os dados podem não fazer sentido quando estão sozinhos. Informações consistem na união de dados bem organizados para que haja um sentido e, assim, gere o conhecimento necessário para uma ou mais demandas. 11 Exemplo Observe o exemplo a seguir. O número 2019 de forma isolada faz algum sentido? É claro que não! Isso é o que chamamos de “dado”. E se fosse dito que: “O ano do crescimento da economia é 2019”? Agora pode- se dizer que há um sentido. Isso é o que chamamos de “informação”. No exemplo anterior, do número 2019, o dado “o ano do crescimento da economia” pode ser considerado um metadado, pois ele é um dado relevante sobre o dado “2019”. Outro exemplo bem interessante em banco de dados é o campo “telefone” da tabela “FORNECEDOR”. Este tipo de campo tem os seguintes metadados, entre outros: • Nome do campo (telefone). • Tipo do campo (inteiro). • Tamanho do campo (9 posições). • Obrigatoriedade de preenchimento (não) etc. Metadados Todo dado que é pertinente a outro dado é denominado metadado. Exemplo Um banco de dados é formado, obrigatoriamente, por dados e metadados. Sem a existência dos metadados não seria possível organizar e extrair informações pertinentes de um banco de dados e, assim, não seria possível atender as demandas. 12 A importância do banco de dados O banco de dados armazena, controla e gerencia os bens mais valiosos que uma empresa, na atualidade, pode possuir. Isso se dá porque o mercado profissional está cada vez mais competitivo, acelerado e dinâmico, demandando das empresas respostas ágeis e assertivas, além da necessidade de estratégias bem estruturadas para uma determinada execução. O banco de dados armazena dados e, nessa gigantesca luta de competitividade, o dado preciso é sinal de poder. Por meio dos processos de armazenamento, controle e gerenciamento de dados, toda a estrutura de funcionamento de uma empresa é galgada. Podemos afirmar que, em todo lugar, há um tipo de banco de dados. Por menor que seja o negócio, quando um gestor utiliza um aplicativo para organização financeira, por exemplo, está sendo utilizado uma espécie de banco de dados. Este tipo de banco de dados pode ser classificado como simplificado e automatizado, que armazena, processa e fornece informações sobre finanças. Por outro lado, quando se tem em seu negócio um banco de dados bem gerido e informações de qualidade, o resultado, na maior parte das vezes, é de total sucesso. Assim, é possível que o gestor possa analisar as informações e verificar em qual direção a sua empresa está caminhando, com isso poderá corrigir o caminho e/ou ampliar a sua atuação. Outro ponto importante quanto ao uso de banco de dados é que é possível realizar uma série de levantamentos. Veja alguns exemplos: • O rendimento de um ou mais funcionários pode ser analisado. • Bem como a qualidade do atendimento deste funcionário. • O impacto das ações de marketing realizadas pela empresa. • O retorno obtido por ações empreendidas. • Outras inúmeras aplicações. Para o cliente que também se utiliza do banco de dados, o efeito é rápido e objetivo. Acompanhe o exemplo a seguir: 13 Exemplo Pense no cliente que compra um produto em um site e, depois, faz o acompanhamento do processo de pagamento, de preparação do produto e de todas as etapas da entrega. No dia a dia, quando se tem à disposição um banco de dados bem administrado, a relação cliente e empresa fica muito mais transparente e prazerosa, pois as necessidades do consumidor são reconhecidas de imediato e atendidas prontamente. Todos esses cuidados criam uma experiência mais salutar para o cliente. Vantagens de um banco de dados Você já percebeu que são muitas as vantagens do uso de bancos de dados. A seguir, listamos algumas: Redução ou eliminação de redundâncias: faz com que haja a eliminação de dados repetidos entre cada sistema. Os dados, que serão os mesmos em mais de um sistema, possuem compartilhamento entre si, permitindo o acesso a uma mesma informação, sendo consultada por vários usuários em muitos sistemas. Eliminação de inconsistências: a informação é armazenada em um só local, cujo acesso é descentralizado e seu conteúdo é compartilhado com vários sistemas, isso permite que os usuários se utilizem de uma informação fidedigna. A inconsistência da informação ocorre quando um mesmo campo da tabela possui informações diferentes em sistemas diferentes. Veja o exemplo: o Estado de moradia de uma pessoa é “SP” em um determinado sistema e “MG” em outro sistema da empresa. Isto ocorre porque a informação, de certa forma, foi atualizada em um campo da “Tabela A”, mas não foi atualizada no mesmo campo “da Tabela B”. Quando a informação é armazenada em um único local e compartilhada pelos devidos sistemas de forma integrada, esse problema certamente não ocorrerá. Compartilhamento dos dados: faz com que ocorra o uso simultâneo e seguro de um dado de uma determinada tabela, utilizado por mais de um sistema ou usuário, independentemente da operação que esteja sendo realizada naquele momento. O importante é observar, apenas, o processo de atualização simultâneo da informação, 14 para que não haja geração de erros no momento do processamento. Esse cuidado deve ser tomado uma vez que os aplicativos, nos dias de hoje, são, na sua maioria, sistemas multiusuários, ou seja, permitem que vários usuários tenham acesso simultâneo àquela informação. Restrições de segurança: faz com que haja uma definição, deliberada por alguém de representatividade na empresa, para o nível de acesso ao sistema de cada usuário. Os níveis de acesso são: leitura, inclusão, alteração e exclusão. Dependendo do nível de acesso do usuário, ele será impedido de utilizar um ou outro recurso que possa impactar nos dados da tabela do banco de dados. Um exemplo é o impedimento de excluir alguma informação. Padronização dos dados: faz com que haja uma harmonização na forma como os dados são gravados nas respectivas tabelas. Por exemplo, para o campo “Sexo”, somente será permitido o armazenamento dos conteúdos “M” ou “F”. Assim, a tabela não aceitará nenhuma outra informação. Manutenção da integridade: tem o objetivo de evitar que valores indevidos ou inconsistentes sejam gravados em uma respectiva tabela do banco de dados, como por exemplo, a inclusão do campo código ou da chave primária de uma tabela que não tenha correlação com outra tabela do banco de dados. Acompanhe um caso prático: a criação de um código de uma determinada disciplina na tabela “Histórico Escolar” sem que haja a existência deste código na tabela “Disciplina”. Alguns importantes banco de dados utilizados no mercado Mesmo com o crescimento dos bancos de dados no mercado corporativo, ainda é comum ouvir dos profissionais a pergunta: quais são os bancos de dados mais utilizados do mercado? Veja, a seguir, uma lista com os principais exemplos de banco de dados existentes no mercado profissional. 15 • O banco de dados Oracle foi lançado em 1980 e é o que temos de melhor no mercado. • É um banco de dados relacional, que predomina no mercado há bastante tempo. • Sua linguagem de programação é o PL/SQL. • Para os profissionais de TI, o domínio do SQL é algo fundamental. Mas ter o domínio do Oracle e PL/SQL é o segundo passo para se ter uma infinidade de oportunidades junto ao mercado de trabalho. • Este é o famoso banco de dados da empresa Microsoft e, no momento, é o terceiro colocado no ranking de preferências. • Foi lançado em 1989 e também é um banco de dados relacional. • Com o crescimento das ferramentas de open source, depois de longos 27 anos de mercado, a Microsoft lançou uma versão para o sistema operacional Linux. • É um banco de dados bastante utilizado no mercado, mas devido ao fato de ele, hoje, suportar linguagens do pacote .NET, além da sua linguagem nativa o T-SQL, não é tão valorizado como o banco de dados Oracle. • É um banco de dados gratuito que tem sido muito utilizadoem sistemas online. Ele também pertence à família Oracle e foi lançado em 1996. • Também é considerado um banco de dados relacional. • Os profissionais com conhecimentos em MySQL também são bem valorizados pelo mercado profissional, embora menos do que os profissionais com domínio do Oracle. Oracle (pago) SQL Server (pago) MySQL (free) 16 • É um banco de dados relacional, com característica open source, da empresa PostgreSQL Global Development Group. Seu lançamento se deu em 1989. • Pelo fato de ser open source, assim como o banco de dados MySQL da Oracle, é bastante utilizado para sistemas web. PostgreSQL (free) MIDIATECA Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo professor sobre bancos de dados e sua importância no dia a dia das pessoas. 17 Modelos de Banco de Dados Neste tópico, você vai conhecer uma série de definições importantes para o desenvolvimento do trabalho com bancos de dados. Vamos lá? Modelos de banco de dados Um modelo de banco de dados demostra a sua estrutura lógica, inserindo e exibindo as relações e restrições que determinam como os respectivos dados poderão ser armazenados e acessados. Os modelos de banco de dados individuais são, na íntegra, projetados a partir das regras e dos conceitos do modelo de dados mais abrangente adotado pelos designers de banco de dados. A maior parte dos modelos de dados desenvolvidos pode ser representada por um determinado diagrama de banco de dados acompanhante. Instâncias É o conjunto de informações contidas em um banco de dados, em um dado momento. Independência de dados É a forma que se tem para a modificação e a respectiva definição dos esquemas existentes em determinado nível, sem que esse afete de alguma forma o esquema do nível superior. Existem dois tipos de independência. Conheça cada tipo, a seguir: Permite que haja a possibilidade de modificação do esquema físico sem que qualquer programa utilizado no sistema precise ser refeito. As modificações oriundas no nível físico são deveras importantes, principalmente para que haja uma melhora significativa no desempenho do sistema e do banco de dados. Faz com que se tenha uma capacidade de modificação do esquema lógico sem que qualquer programa desenvolvido na aplicação precise ser refeito. As modificações pertinentes no nível lógico são necessárias desde que uma referida estrutura lógica do banco de dados seja alterada por uma necessidade de adequação e/ou melhoria de performance. Física Lógica 18 Curiosidade A independência lógica de dados é muito mais difícil de ser mensurada do que a independência física de dados. Isso porque os programas desenvolvidos no sistema são mais dependentes da estrutura lógica dos dados do que de seu acesso. Os três níveis da arquitetura A arquitetura ANSI/SPARC se divide em três níveis, conhecidos como nível interno, nível conceitual e nível externo. Entenda como cada um está organizado: É conhecido, também, como nível físico. É o mais próximo do meio de armazenamento físico, ou seja, é aquele que se ocupa do modo como os dados são fisicamente armazenados. Também conhecido como nível lógico do usuário. É o mais próximo dos usuários, ou seja, é aquele que se ocupa do modo como os dados são vistos por usuários individuais. Este nível, também conhecido como nível lógico comunitário, é um nível de simulação entre os dois níveis anteriores: interno e externo. Nível interno Nível externo Nível conceitual Tipos de modelos de bancos de dados Temos vários tipos de modelos de dados utilizados no mercado profissional. Os mais comuns são: 19 • Hierárquico. • Relacional. • Rede. • Entidade-relacionamento. • Orientado para objetos. • Entidade-atributo-valor. • Modelo documental. • Esquema em estrela. • Relacional-objeto. Com uma lista tão vasta de modelos de bancos de dados, você deve estar se perguntando: qual o melhor modelo a ser utilizado? Nos dias de hoje, você poderá optar por desenvolver um banco de dados com qualquer um destes modelos. O fator diferenciador é se o sistema de gestão adotado pelo banco de dados que você usa, suportará o modelo escolhido. A maior parte dos sistemas de gestão de banco de dados é construída com um modelo de dados particular e demanda que seus usuários adotem esse modelo, mesmo sabendo que alguns disponibilizam suporte a vários outros modelos. Diante disso, diversos modelos de banco de dados aplicam-se para diferentes estágios do processo de criação de um banco de dados. Entenda que critérios colaboram para a escolha dos modelos de bancos de dados: Os modelos de dados conceitos de alto nível são tidos como os melhores para coordenar as relações entre os dados de forma que os desenvolvedores percebam esses dados. Os modelos lógicos, que são baseados em registros, refletem bem melhor as formas com que os dados são armazenados no servidor. 20 Importante Definir qual o modelo de dados a ser usado é uma questão de definir suas prioridades para o banco de dados, tendo em vista os pontos fortes de um determinado modelo, independentemente dessas prioridades incluírem no seu contexto a questão da velocidade, da usabilidade e da redução de custos. A seguir, saiba quais são os modelos de bancos de dados mais utilizados: 1. Modelo hierárquico O modelo hierárquico foi muito utilizado, principalmente, pelos Sistemas de Gestão de Informações da IBM, entre os anos de 1960 e 1970. Hoje raramente são vistos devido a certas dificuldades operacionais. Esse modelo organiza os dados em uma forma do tipo “árvore”, onde cada registro constituído tem um único “pai” ou uma raiz. Os registros caracterizados como “irmãos” são classificados em uma ordem específica. Essa ordenação é utilizada como a ordem física para armazenar o banco de dados. Este modelo é bom para descrever muitas relações do mundo real. 2. Modelo relacional O modelo relacional foi introduzido por E. F. Codd no ano de 1970. Os bancos de dados relacionais são escritos na linguagem SQL (Structured Query Language) e, atualmente, são considerados o modelo mais comum. Ele classifica os dados em tabelas, conhecidas como relações, cada uma das tabelas é constituída de linhas e colunas: • As colunas exibem atributos da entidade em questão, como: data de nascimento; valor; CEP entre outros. Unidos, os atributos em uma relação são denominados de domínio. Um atributo ou combinação de atributos específico é determinado como uma chave primária que pode ser consultada em outras tabelas, quando isso acontece existe a denominação de chave estrangeira. • • Cada linha da tabela, também denominada tupla, inclui os dados sobre uma instância específica da entidade. O modelo também ressalta os tipos de relações que há entre essas tabelas, incluindo as relações uma para uma, uma para muitas e muitas para muitas. Dentro do banco de dados é sabido que as tabelas podem ser normalizadas ou orientadas a seguir as regras de normalização que tornam o banco de dados adaptável, flexível e redimensionável. Quando normalizado, cada dado é atômico ou dividido em pequenos pedaços úteis. 21 3. Modelo de rede Sua popularidade se deu nos anos de 1970, depois de ter sido validado pela Conferência sobre Linguagens de Sistemas de Dados ― CODASYL. Esse modelo se caracteriza como o modelo hierárquico, permitindo que haja muitas possibilidades de relações entre os registros, formando vínculos. Isso implica na existência de vários registros do tipo “pai”. Com base na teoria dos conjuntos matemáticos, o modelo de rede é desenvolvido a partir de um conjunto de registros relacionados. Cada conjunto possui um registro proprietário, ou “pai”, e um ou mais registros membros, caracterizados como “filhos”. Um determinado registro pode ser caracterizado como membro ou como “filho”, em diversos conjuntos, permitindo, assim, que esse modelo seja capaz de transmitir relações complexas. 4. Modelo entidade-relacionamento Este modelo pega as relaçõesentre as entidades do mundo real, de forma parecida com o modelo de rede, mas não está diretamente conectado com a estrutura física do banco de dados. Contudo, ele é constantemente utilizado para projetar um banco de dados de forma conceitual. Temos definições de nomenclaturas como: pessoas; lugares; cidades. Essas definições serão armazenadas e referidas como “entidades”, cada uma possuirá determinados atributos que, em conjunto, compõem seu domínio. A cardinalidade, ou relação entre entidades, também é definida. Uma forma bem comum do diagrama entidade-relacionamento é o uso do esquema em estrela, onde uma tabela de fatos central se interliga a outras tabelas multidimensionais. Modelos de banco de dados orientado para objetos Este modelo define o banco de dados como um conjunto de objetos, ou elementos reutilizáveis, com recursos e métodos associados. Existem dois tipos de bancos de dados orientados para objetos no mercado: Multimídia Faz a incorporação de mídias, como, por exemplo, as imagens, que não podem ser gravadas em um banco de dados do tipo relacional. Hipertexto Possibilita que qualquer objeto seja ligado a qualquer outro objeto. É útil quando se tem a demanda de organizar lotes de dados diferentes, mas não é indicado para se trabalhar com análise numérica. 22 Saiba mais O modelo de banco de dados orientado para objetos é tido como um modelo “pós-relacional”, tendo em vista que ele incorpora tabelas, mas não se limita a elas, necessariamente. Esse modelo de banco de dados também é tido como modelo híbrido. Um banco de dados híbrido faz a sinergia entre a simplicidade do modelo de banco de dados relacional com algumas das funcionalidades avançadas do modelo de banco de dados orientado para objetos. Na sua essência, ele flexibiliza para que os designers possam incorporar objetos na estrutura familiar da tabela. As interfaces de linguagem de programação e chamadas incluem: linguagens de fornecedor; SQL3; JDBC; ODBC; interfaces de proprietárias cujas extensões permeiam as linguagens e interfaces usadas pelo modelo relacional. Mais modelos de bancos de dados utilizados Hoje temos uma gama de modelos de banco de dados que foram, ou ainda são, utilizados no mercado profissional para o desenvolvimento de softwares. Conheça esses modelos, a seguir: • Plano: esse é o modelo mais simples a ser utilizado pelo desenvolvedor e também é o mais antigo. Permite a listagem de todos os dados em uma única tabela, que consiste em um conjunto de linhas e colunas. • Arquivo invertido: esse modelo foi desenvolvido com base em uma estrutura de arquivo totalmente invertido. O objetivo desse desenvolvimento foi facilitar a agilidade em pesquisas e em textos com características mais complexas. • Multidimensional: nada mais é do que uma variação do modelo relacional criado para facilitar o processamento analítico das informações. O modelo relacional é otimizado para o processamento de transações online – OLTP. Este modelo, por sua vez, foi projetado para o processamento analítico online – OLAP. 23 • Associativo: permite que haja a divisão de todos os dados com relação ao que eles representam em uma entidade (tabela) ou em uma associação entre as entidades (tabelas). Uma entidade pode existir de forma independente, enquanto que uma determinada associação é um elo que só existirá quando houver um ponto de comunicação com uma outra entidade. É sabido que o modelo associativo permite a organização dos dados para que haja a existência de dois conjuntos: • Conjunto de itens: este fará com que haja um identificador exclusivo: nome e tipo. • Conjunto de links: esse fará com que cada identificador exclusivo tenha uma fonte: verbo; destino. A informação armazenada tem relação com a fonte definida e cada um dos dois identificadores poderá se conectar a um link ou a um item. Modelos de bancos de dados denominados “Não SQL” Com a evolução dos modelos de banco de dados utilizados pelos desenvolvedores de softwares, tivemos a criação de modelos tidos como “não SQL”, que surgiram em comparação com o modelo de banco de dados relacional, são eles: É ainda mais flexível do que um modelo de rede e permite que qualquer nó se conecte a qualquer outro. Se diferencia do modelo de banco de dados relacional, pois permite que os atributos contenham uma lista de dados ao invés de um único ponto de dados. É projetado para armazenar e gerenciar documentos ou dados semiestruturados, no lugar de dados atômicos, como a maioria dos modelos de banco de dados. Gráfico Multivalores Documento 24 Bancos de dados usados na internet A maioria dos sites desenvolvidos para empresas depende de algum tipo de banco de dados para armazenar, organizar, estruturar e apresentar resultados para os usuários. Cada vez que alguém acessa as funções de pesquisa contidas nesses sites, seus termos de pesquisa são transformados em consultas para um servidor de banco de dados processar e retornar com uma resposta. Geralmente, o “middleware” conecta o servidor da web com o banco de dados. A grande presença dos bancos de dados nos sistemas desenvolvidos para os sites permite que eles sejam usados em quase todas as áreas segmentadas, desde compras online até a microssegmentação de um determinado segmento. MIDIATECA Acesse a midiateca da Unidade 2 e veja o conteúdo complementar indicado pelo professor sobre a importância da modelagem dos bancos de dados utilizados na web. 25 Sistema Gerenciador de Banco de Dados – SGBD O que é um Sistema Gerenciado de Banco de Dados (SGBD)? O SGBD é constituído por um conjunto de programas para aceso a todos dados armazenados. O conjunto de dados, como você já sabe, é comumente chamado de banco de dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente como eficiente para a recuperação e o armazenamento das informações do banco de dados. Esses sistemas são projetados para gerir grandes volumes de informações, o que implica: • Na definição de estruturas de armazenamento das informações. • Na definição dos mecanismos para a manipulação dessas informações. Além disso, um sistema de banco de dados deve garantir a segurança das informações armazenadas contra eventuais problemas com o sistema e impedir tentativas de acesso não autorizadas. Se os dados são compartilhados por diversos usuários, o sistema deve evitar a ocorrência de resultados anômalos. Na sequência, você vai conhecer melhor os SGBD e suas especificidades. Componentes Os componentes de um SGBD são: • Ferramenta CASE. • Gerador de relatórios. • Linguagem de consulta. • Planilhas eletrônicas. • Pacotes estatísticos. • Ferramentas para gerenciamento de cópias ou extração de dados. 26 Classificação quanto ao número de usuários Como vimos anteriormente, o SGBD é um sistema de computador com um propósito geral de armazenar informações importantes e permitir aos usuários que tenham acesso para buscar e atualizar informações quando solicitado. Quanto ao número de usuários, os SGBD podem ser classificados em dois tipos: É um sistema em que no mínimo um usuário e no máximo um usuário poderá ter acessoà base de dados. Isto significa que, somente um usuário poderá, através do sistema, acessar a base de dados. É um sistema em que vários usuários, simultaneamente, poderão acessar o banco de dados. É a forma em que o mercado, nos dias de hoje, tem projetado seus bancos de dados. Monousuário Multiusuário Funcionalidades, requisitos e elementos As funcionalidades, requisitos e elementos de um SGBD podem ser observados a seguir: A diferenciação entre os SGBDs é feita pelo conjunto de funcionalidades e requisitos que eles oferecem, tais como: • Controle de concorrência. • Integridade. • Recuperação/tolerância a falhas. • Segurança. OS SGBD também são identificados por possuírem elementos como: • “Motor de arranque” da base de dados. • Subsistema de manipulação de dados. • Subsistema de definiçãodos dados. • Administração de dados. • Subsistema de geração das aplicações. É importante que os SGBD abranjam as funcionalidades específicas necessárias para que as tabelas das bases de dados possam se relacionar plenamente e para que haja interação entre os dados constantes nos bancos de dados. 27 Características e funções Veja, na lista abaixo, as características mais importantes que um SGBD precisa ter: • Controle de redundância de dados. • Representatividade de associações complexas. • Disponibilidade de dados. • Várias interfaces. • Controle de acesso aos dados. • Recuperação de falhas. • Restrições de integridade. Agora, me diga, você sabe para que servem os bancos de dados? Veja, na lista abaixo, alguns exemplos de dados que podem ser geridos pelos SGBDs: • Listas de discussão. • Informação financeira. • Informação contábil. • Dados oriundos de pesquisas científica. • Informações sobre clientes. • Registros de pessoas. • Informações acadêmicas. Vantagens E quais são as vantagens de um SGBD? Confira, a seguir: • Maior segurança: permite que múltiplos usuários acessem os mesmos dados de forma isolada ou simultânea. Essa característica é, geralmente, vista como um benefício para o sistema. • Maior disponibilidade: uma das grandes vantagens existentes em um SGBD é que a mesma informação encontrada na base de dados pode ser liberada para utilizadores diferentes, ou seja: compartilhamento de informações. • Redundância minimizada: os dados existentes em um SGBD são mais concisos, pois, como regra, a informação aparece apenas uma única vez. Isto faz com que haja diminuição da redundância de dados. Como consequência, haverá redução significativa do custo de armazenamento de informações em discos rígidos e outros dispositivos de armazenamento. 28 • Programa e arquivo de consistência: com o uso de um SGBD, os formatos das tabelas e os programas do sistema obedecem a um padrão. Isto permite que as tabelas de dados sejam mais fáceis de se manter, pois as mesmas diretrizes e regras se aplicam a todos os tipos de dados. O nível de consistência entre as tabelas e os programas também tornam mais fácil o gerenciamento de dados quando vários programadores estão envolvidos no desenvolvimento de uma aplicação. • Precisão: dados consistentes são um bom sinal de que há integridade dos dados. Os SGBDs caracterizam a integridade dos dados, uma vez que as atualizações e alterações dos dados só precisam ser realizadas em um só lugar. Finalidades Você consegue listar as finalidades de um SGBD? Faça sua lista mental e, depois, confira com as finalidades detalhadas a seguir: Segurança da informação Talvez essa seja a principal funcionalidade de um SGBD. É importante que os sistemas de gerenciamento de bancos de dados possuam regras para restringir e garantir o acesso somente de pessoas autorizadas ao banco de dados. Além disso, é preciso definir qual o nível de acesso que cada usuário irá possuir: escrita; alteração; leitura; exclusão. Outros pontos importantes que estão no contexto da segurança são a cópia e a recuperação de dados em caso de falhas, permitindo que informações sejam recuperadas a partir de outro local qualquer. Controle de redundância de dados Imagine um sistema sendo executado em diversos computadores. Esse sistema certamente possui os dados armazenados em um único local (o servidor). O controle de redundâncias irá organizar o fluxo de acesso à base de dados no servidor, para que os dados inconsistentes não sejam armazenados, a fim de que uma série de regras sejam criadas visando a que os dados sejam armazenados corretamente e não aconteça duplicação de dados e/ou dados inválidos. 29 Integridade de dados Esse é um item que pode ser considerado como parte da segurança. O controle da integridade de dados deve impedir que aplicações ou acessos que possam comprometer a integridade dos dados sejam feitos. Sendo assim, o acesso ao sistema será permitido somente a pessoas autorizadas e, ainda, de acordo com os níveis de acesso. Compartilhamento de dados Todo SGBD deve possuir um controle de concorrência de dados para garantir a leitura e a escrita dos dados sem erros. É comum que os dados estejam sendo disponibilizados a mais de um usuário, e não pode haver prejuízos para nenhum deles. Acesso O controle de acesso é tido como um fator bem importante, pois colabora com a integridade dos dados. Como isto acontece? Com o SGBD é possível configurar níveis de autoridade para cada usuário. Alguns usuários poderão ter acesso total às informações, enquanto outros poderão ter acesso a apenas algumas das funcionalidades previstas, como, por exemplo: leitura, escrita e atualização. Interfaceamento Permite uma forma de acesso gráfico ao ambiente, desenvolvido em linguagem natural, menus de acesso e em SQL. Dessa forma, o banco de dados pode ser acessado diretamente, não tendo a necessidade de passar pela aplicação que utiliza. Esquematização Em um banco de dados a ser trabalhado, as tabelas se relacionam entre si, e, dessa forma, um SGDB deve fornecer meios para que haja compreensão destes relacionamentos. 30 Backups As cópias de segurança são imprescindíveis para a segurança de qualquer informação em uma empresa, pois hoje a informação é o coração da empresa e, em um SGBD, isso é mais evidenciado. É fato que estamos sujeitos a falhas, tanto no componente de hardware como no desenvolvimento do software, e, por intermédio de mecanismos previamente estabelecidos e ajustados, é possível recuperar as informações, minimizando as perdas. Quem gerencia o SGBD? Para realizar o gerenciamento do SGBD entra a figura do Administrador, que pode ser de dois tipos: Administrador de banco de dados (DBA) É a pessoa que fornece o suporte técnico necessário para implementação de decisões, como: • Definir o esquema conceitual. • Definir o esquema interno. • Ligação com o usuário. • Definir restrições de segurança e integridade. • Definir normas de descarga e recarga. Administrador de dados (DA) Toma as decisões estratégicas e de normas com relação aos dados da empresa, a saber: • Que dados devem ser armazenados. • Tratamento desses dados. MIDIATECA Acesse a midiateca da Unidade 3 e veja o conteúdo complementar indicado pelo professor sobre a importância de um SGBD, suas características e suas vantagens. 31 NA PRÁTICA A questão da dificuldade no acesso aos dados é uma questão bem interessante e preocupante. Temos o caso do Banco CICLE S.A que ainda não modernizou sua estrutura de dados e trabalha com o modelo de arquivos que armazenam as informações. O Diretor de Marketing do banco necessita encontrar os nomes de todos os clientes que vivem numa rua da cidade com CEP 78733-001 para que seja ofertada uma campanha de empréstimo pessoal a esses correntistas. O Diretor, então, solicita ao departamento de processamento de dados (TI da empresa) que gere tal relação. O problema é que, caso esse tipo de solicitação não tenha sido antecipado quando o sistema original foi projetado, não haverá nenhum programa/aplicativo disponível para fazê-lo. O máximo que a equipe de TI consegue é gerar uma lista de todos os clientes do banco, e o respectivo Diretor terá agora duas saídas: ou ele pega a lista de clientes e extrai a informação necessária manualmente, ou pede ao departamento de processamento de dados para que um programador escreva o programa aplicativo necessário (o que demandará bastante tempo). Ambas as alternativas são obviamente insatisfatórias, mas devido à falta de investimento em um bom banco de dados, isto é o que terá de ser feito. 32 Resumo da Unidade 1 Nesta unidade, você estudou toda a importância de se trabalhar com o Sistema Gerenciador de Banco de Dados ― SGBD. Os bancos de dados são conjuntos de arquivos que falam entre si, proporcionando o armazenando de uma grande quantidade de dados: nomes, telefones, documentos, pagamentos, endereços, clientes, serviços etc. Daí sua importância. Os bancosde dados precisam ser configurados e administrados por meio das linguagens de programação, como, por exemplo: Java script; SQL; PL/SQL entre outros. Os modelos de banco de dados também são muito importantes, pois, de acordo com suas variações, permitirão que os desenvolvedores escolham um padrão que se adeque mais à realidade da empresa e do negócio que serão atendidos. Por último, temos o entendimento de que os SGBDs são constituídos por um conjunto de programas para aceso aos dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente como eficiente para a recuperação e o armazenamento das informações no banco de dados. Nesta unidade destacam-se os conceitos fundamentais do que é um banco de da- dos e qual a sua importância, os diversos modelos de banco de dados existentes e as suas atuações frente ao mercado de trabalho. Por último, mostra-se a necessida- de e a importância de se ter um sistema gerenciador de banco de dados para poder administrar o acesso, com segurança, a uma base de dados disponibilizada pela empresa para seus clientes. CONCEITO 33 Referências ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson, 2005. Biblioteca Virtual. VICCI, C. Banco de Dados. São Paulo: Pearson, 2015. Biblioteca Virtual. Modelo de Dados UNIDADE 2 35 Nesta unidade, você vai estudar o conceito e a importância do Sistema de Gerenciamen- to de Banco de Dados dentro da perspectiva teórica dos diversos usos de um SGBD na empresa, bem como as respectivas aplicações e importâncias de seus princípios no ge- renciamento da informação para a melhoria e segurança do negócio. INTRODUÇÃO OBJETIVO Nesta unidade, você será capaz de: • Desenvolver um modelo de dados a partir de um problema que represente uma situação real de desenvolvimento de sistemas. 36 UML Introdução Sabe-se que uma imagem pode representar muito mais do que muitas palavras. Por isso, a diagramação em linguagem de modelagem unificada – UML foi desenvolvida. Esse tipo de diagramação tem o objetivo de estabelecer relação e/ou uma linguagem visual comum no ambiente de desenvolvimento de softwares. Além disso, ela também poderia ser interpretada por todos os usuários do mundo dos negócios e/ou qualquer outra pessoa que queira entender mais sobre a aplicação desenvolvida. A UML foi desenvolvida para criar uma relação da linguagem de modelagem visual comum, semanticamente, para a arquitetura, design e implementação dos softwares mais complexos, tanto de forma estrutural como em termos de comportamentos. Ela não é uma linguagem desenvolvida para a programação de aplicativos. Existem outras ferramentas que podem e devem ser usadas para gerar códigos de programas em várias linguagens por meio de diagramas UML. É sabido que a linguagem de modelagem unificada tem um elo direto com a análise para o desenvolvimento do software e com o design da orientação a objetos. Existem diversos modelos para a resolução de problemas na informática, que é o estudo de algoritmos e de dados. Diante disso, temos quatro modelos para a resolução de problemas: 1. Linguagens funcionais. 2. Linguagens declarativas. 3. Linguagens imperativas. 4. Linguagens orientadas a objetos. Nas linguagens orientadas a objetos, temos os algoritmos (sequência lógica e estruturada de ações) determinados com a definição de objetos (representarão, no futuro, a tabela no banco de dados), e por meio da ligação dos objetos entre si. Esses objetos serão manuseados, e eles fazem parte do nosso mundo. As linguagens orientadas a objetos estão cada vez mais dominando o universo da programação, pois elas têm o poder de modelar os objetos pertencentes ao nosso mundo real. 37 A linguagem de modelagem unificada - UML é uma interseção de várias notações orientadas a objetos, que são: • Técnica de modelagem de objetos. • Design orientado a objetos. • Engenharia de software orientada a objetos. A UML usa todos os pontos fortes das abordagens citadas acima para caracterizar uma metodologia mais robusta e de fácil utilização. Ela visa a representar as melhores práticas para o desenvolvimento e para a documentação de aspectos diferenciados da modelagem de um software e dos sistemas corporativos. Um ponto importante a ser observado nesse processo é que há um balizador para que a UML possa caminhar de forma sólida e respeitosa, ou seja, temos a Object Management Group – OMG, que supervisiona e controla a definição e a manutenção das especificações da UML. Todo esse controle é deveras importante, pois permite que os engenheiros e programadores utilizem uma única linguagem para muitas finalidades durante todas as fases do ciclo de vida do software. Saiba mais A UML em funcionamento com as bases da OMG visa: • Fornecer aos desenvolvedores de sistemas, engenheiros de software e arquitetos de software as devidas ferramentas de análise, de design do software e a implementação para sistemas baseados em software, bem como a oferta de recursos para a criteriosa modelagem dos processos de negócios que o software possa demandar; • Desenvolver os caminhos e as condições necessárias da indústria ao permitir a união de ferramentas de modelagem visual de objetos existentes nesse contexto. Diante disso, para que haja a troca fundamental de informações dos modelos a serem utilizados entre as ferramentas, é importante que haja um acordo sobre o uso da semântica e da notação. 38 Requisitos A UML visa a atender os seguintes requisitos: • Estabelecer uma definição formal de um metamodelo – MOF, baseado em metaobjetos que são comuns e que especificam uma sintaxe abstrata da UML. A sintaxe abstrata estabelece um conjunto de conceitos da modelagem UML. Isso porque os seus devidos atributos e respectivos relacionamentos, bem como as regras que foram definidas para unir esses conceitos para a construção de modelos UML parciais ou completos, tratam da relação entre os objetos; • Oferecer uma explicação minuciosa da semântica de cada conceito aplicado na modelagem UML. A semântica tende a definir, de forma independente, como os conceitos aplicados na UML devem ser tratados pelos computadores; • Determinar os elementos de notações legíveis, utilizados pelos seres humanos, com o intuito de representar os reais conceitos da modelagem UML individual. Da mesma forma, determinar as regras para combiná-los em uma determinada variedade de tipos de diagramas, correspondentes a diferentes aspectos utilizados dos sistemas modelados; • Estipular algumas maneiras para que as ferramentas UML possam entrar em conformidade com essa especificação. Tudo isto é suportado por uma outra especificação baseada em XML, cujos formatos de modelos e de intercâmbio correspondentes devem ser realizados por ferramentas que sejam compatíveis. Modelagem por meio da UML O desenvolvimento dos sistemas está concentrado em três modelos gerais e diferentes. Conheça-os a seguir: Diagrama de caso de uso, que descreve de que forma a funcionalidade do sistema irá partir sobre a visão do usuário. Diagrama de classes, que descreve como a estrutura do sistema ficará no que tange aos objetos, aos atributos, às associações e às respectivas operações. Temos o uso de três diagramas: diagramas de máquinas de estados, diagramas de interação, diagramas de atividade, que servem para descrever o comportamento interno do sistema. FU N C IO N A L O B JE TO D IN Â M IC O 39 Esses três modelos de sistemas são visualizados a partir de dois tipos diferentes de diagramas: o diagrama estrutural e o diagrama comportamental. Você vai conhecer cada um desses tipos mais adiante. Orientação a objetos na UML Os objetos na UML são tidos como entidades do mundo real. No desenvolvimento de um determinado software, os objetos podem ser utilizados para descrever ou para modelar o sistema que está em desenvolvimento. Os objetos também devem permitir que, no processo de decomposição de sistemascomplexos em componentes compreensíveis, haja uma peça de cada vez que pode ser criada. Existem alguns conceitos importantes referentes à orientação a objetos. Vamos conhecê- los? Objeto: é a representação de uma entidade e um componente básico essencial. Abstração: é o devido comportamento de uma entidade. Herança: é o mecanismo para criar novas classes a partir de uma já existente. Classe: é o modelo de um objeto. Encapsulamento: é o mecanismo para unir os dados e escondê-los do mundo exterior. Polimorfismo: define o mecanismo de utilização em diferentes formatos. Tipos definidos de diagramas UML A linguagem de modelagem unificada utiliza elementos e os associa de diversas maneiras, com o objetivo de formar diagramas que tenham representatividade e aspectos estáticos ou estruturais de um sistema. Com isso formam diagramas comportamentais, que fazem o registro dos aspectos dinâmicos do sistema. Já os diagramas estruturais referem-se aos aspectos estáticos do sistema. Como visto anteriormente, os diagramas podem ser do tipo estrutural ou do tipo comportamental. Na sequência, entenda melhor cada tipo. 40 Diagrama Comportamental: é aquele em que há a necessidade de alguma alteração de comportamento das classes mapeadas. Diagrama Estrutural: é utilizado nos casos em que há a necessidade para visualizar, especificar, construir e documentar os aspectos estáticos existentes em um sistema. Os diagramas UML do tipo comportamental são: DIAGRAMAS DE SEQUÊNCIA Demonstram como os objetos interagem entre si, e, da mesma forma, demonstram a ordem de ocorrência. Fazem a representatividade das interações para um cenário específico. Conheça um exemplo: 41 DIAGRAMAS DE CASO DE USO DIAGRAMAS DE ATIVIDADE Representam uma funcionalidade específica de um determinado sistema. Foram elaborados para demonstrar a forma como as funcionalidades se relacionam e o respectivos controladores internos e externos (denominados de atores). Observe o exemplo: São os fluxos de trabalho de negócios ou operacionais, representados de forma gráfica, para a exibição de uma atividade de qualquer parte ou componente de um respectivo sistema. Veja um exemplo: 42 DIAGRAMAS DA VISÃO GERAL DA INTERAÇÃO DIAGRAMAS DE MÁQUINA DE ESTADOS DIAGRAMAS DE TEMPO DIAGRAMAS DE CLASSES DIAGRAMAS DA COMUNICAÇÃO Nesses diagramas, cujo objetivo é exibir uma sequência em que eles próprios atuam, temos determinados sete outros tipos de diagramas de interação. Há uma semelhança com os diagramas de atividade, pois descrevem como o comportamento dos objetos irá ocorrer, mas de maneira diferente em seu estado atual. Assim como o diagrama de sequência, esse diagrama representa o comportamento de objetos em um período de tempo específico. Havendo um único objeto, o diagrama é bem simples. Havendo mais de um objeto, as interações entre eles são exibidas durante o período de tempo determinado. São os mais usados por serem considerados a principal base de qualquer solução orientada a objetos. Esses diagramas definem as classes dentro de um sistema, os atributos, as operações e a relação entre cada classe. As classes são agrupadas para criar diagramas de classes quando há uma diagramação de grandes sistemas. Veja um exemplo do diagrama de classes: Nesses diagramas, cujo objetivo é exibir uma sequência em que eles próprios atuam, temos determinados sete outros tipos de diagramas de interação. Os diagramas UML do tipo estrutural podem ser divididos em: 43 DIAGRAMAS DE COMPONENTES Mostram a relação estrutural de elementos do sistema de software. Na maioria das vezes, são utilizados quando se trabalha com sistemas complexos com múltiplos componentes. Os componentes têm a sua comunicação por meio de interfaces. Observe um exemplo: DIAGRAMAS DE ESTRUTURA COMPOSTA São utilizados para demonstrar a estrutura interna de uma classe utilizada no diagrama. DIAGRAMAS DE IMPLEMENTAÇÃO Exibem o hardware utilizado no sistema e o seu respectivo software. É muito importante quando uma determinada solução de software é implantada em diversos computadores com configurações únicas. Veja um exemplo: 44 DIAGRAMAS DE OBJETOS DIAGRAMAS DE PACOTES Demonstram a relação existente entre os objetos, usando exemplos do mundo real, e retratam um sistema em um momento específico. É sabido que os dados estão disponibilizados dentro dos objetos, e eles podem ser usados para esclarecer as relações existentes entre objetos. Nesse cenário, existem dois tipos especiais de dependências definidas entre os respectivos pacotes: • A importação do pacote. • A mesclagem do pacote. Para que haja o apontamento da arquitetura utilizada, os pacotes irão representar os diferentes níveis de um sistema. As respectivas dependências de pacotes podem ser marcadas para demonstrar o real mecanismo de comunicação entre os respectivos níveis. MIDIATECA Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo professor sobre UML. 45 Levantamento de requisitos Introdução Dentro do cenário do desenvolvimento de um excelente banco de dados é fundamental que o levantamento de requisitos seja muito bem executado pelo analista responsável pelo projeto, pois através dele toda a modelagem UML será executada. Importante O levantamento de requisitos e/ou informações com um ou mais usuários permitirá que o analista responsável tenha uma visão clara e objetiva do negócio proposto. Sabe-se que o início do desenvolvimento de um novo software para uma empresa é marcado pelo levantamento de requisitos. Essa atividade deve ser repetida de forma constante, e realizada até por outros analistas responsáveis, nas demais etapas da engenharia de requisitos. É importante que o processo de levantamento e análise de requisitos contenha as seguintes atividades: Compreensão do domínio: os analistas de sistemas devem desenvolver sua compreensão do domínio com relação à aplicação a ser desenvolvida. Coleta de requisitos: é o processo de interagir com os parceiros do sistema para determinar seus requisitos. O entendimento do domínio desenvolve-se fortemente durante essa atividade. Classificação: a atividade executada leva em consideração o conjunto não estruturado dos requisitos e os organiza em respectivos grupos com a devida coerência. 46 Resolução de conflitos: quando há vários parceiros envolvidos, os requisitos deverão apresentar conflitos. Essa atividade visa à solução desses conflitos. Definição das prioridades: nos conjuntos de requisitos teremos alguns mais importantes do que outros. Nesse momento há envolvimento e interação com os parceiros para a definição dos requisitos mais importantes. Verificação de requisitos: os requisitos serão checados para descobrir se estão consistentes e se estarão em consonância com o que os parceiros desejam para o sistema. O levantamento e análise de requisitos é um processo interativo, com uma contínua validação de uma atividade para outra. REQUISITOS Fonte Status Grupo de importânciaPonto de vista Tipo Agora que você já sabe a importância da etapa de levantamento de requisitos para a construção de um sistema, conheça as dificuldades que podem ser encontradas ao longo desse processo. Dificuldades encontradas no processo de levantamento de requisitos Não saber especificar, claramente, o que o sistema deverá fazer e/ou produzir é uma questão que acontece de longa data. Na maior parte das vezes os usuários são temerosos 47 com esse processo, pois acreditam que, com a chegada do novo sistema, o seu cargo estará ameaçado. Isso faz com que, muitas vezes, os usuários omitam informações importantes. Além disso, é fato que também nossos analistas de sistemas podem pecar em alguns processos. Entre as razões para o baixo grau de satisfação dos usuários com relação aos sistemas, destacam-se: • A fase de levantamento de requisitos, quando não é usada uma técnica adequada para extrair os requisitos dosistema; • Falha do analista de sistema em não descrever os requisitos do sistema de modo claro e efetivo, sem uma atuação ambígua, de forma concisa e coerente com todos os aspectos significativos para o sistema proposto. Dentre as mais variadas dificuldades encontradas na fase de levantamento de requisitos temos: • O usuário responsável pelo sistema não sabe o que deseja e quer que ele faça e não consegue passar adiante as informações pertinentes para o analista de sistemas; • Requisitos que são identificados, mas não são realistas nem identificam os requisitos similares informados por pessoas diferentes; e • Um parceiro equivocado no processo fará com que haja perda de tempo e de dinheiro para ambas as partes envolvidas no desenvolvimento do sistema. Podemos verificar que o levantamento de requisitos deve ser adequado e coerente, feito a partir de uma ótima definição do projeto, visando à aquisição de informações pertinentes e necessárias para o diagnóstico das necessidades do sistema e visando a propor soluções inteligentes. Quando o levantamento de requisitos é inadequado, o resultado será um diagnóstico ruim, com conclusões comprometedoras, não caracterização das causas dos problemas, custos altamente elevados, prazos vencidos e/ou comprometedores, além da omissão dos processos fundamentais. Técnicas importantes para o levantamento de requisitos As técnicas utilizadas para o levantamento de requisitos têm por objetivo superar as grandes dificuldades relativas a essa fase tão importante. Todas as técnicas possuem 48 um conceito definido, que caracterizam suas respectivas vantagens e desvantagens, e podem ser utilizadas em conjunto com outras técnicas pelo analista de sistemas. Na sequência, conheça oito técnicas que podem ser utilizadas no levantamento de requisitos. 1. Prototipagem Essa técnica tem como objetivo fazer análises dos aspectos críticos dos requisitos de um determinado produto, implementando, de forma rápida e objetiva, um pequeno subconjunto de funcionalidades do produto que está sendo tratado. O protótipo tem como indicação básica: • Estudo de alternativas de interface para o bem-estar do usuário. • Problemas de comunicação com os demais produtos. • Viabilidade para o atendimento dos requisitos de desempenho. As técnicas utilizadas na elaboração do protótipo são várias. Dentre elas, podemos citar: • Interface de usuário. • Relatórios gráficos. • Relatórios textuais. 2. Levantamento orientado a pontos de vista No desenvolvimento de sistemas, seja no âmbito de médio ou de grande porte, na maior parte das vezes, há diferentes tipos de usuários finais. Muitos usuários que fazem uso de um ou de outro processo têm algum tipo de interesse nos requisitos do sistema a ser desenvolvido. Dessa forma, mesmo para um sistema mais simples, existem muitos pontos importantes que diferem dos que devem ser considerados. Os vários pontos de vista a respeito de um determinado problema podem ser enxergados de diversas formas. Diante disso, as suas perspectivas não serão independentes, mas, de um modo geral, podem apresentar alguma duplicidade, de forma que teremos requisitos comuns. 49 O Método VORD (viewpoint-oriented requirements definition – definição dos requisitos orientados para o ponto de vista) teve na sua essência de concepção a estruturação como um framework orientado a serviço para o levantamento e análise de requisitos. Ele é definido em quatro etapas, detalhadas a seguir: • Primeira etapa: sua conexão é com o ponto de vista que tem como objetivo identificar os possíveis pontos importantes a serem observados. Nesse momento, os analistas de sistemas responsáveis pelo projeto se reúnem com os respectivos parceiros e utilizam a tradicional abordagem de brainstorming para elencar os devidos serviços em potencial e as entidades que interagem com o sistema em desenvolvimento. • Segunda etapa: é a estruturação de pontos de vista, com o objetivo de envolver e de agrupar os pontos de vista relacionados, de acordo com uma hierarquia. Serviços comuns estão localizados nos níveis mais altos da hierarquia e são herdados por pontos de vista existentes no nível inferior. • Etapa de documentação: tem como objetivo aprimorar a descrição dos pontos de vista e dos serviços identificados pelos analistas. • Mapeamento de sistema: conforme o ponto de vista, há um envolvimento e uma identificação de objetos em um projeto orientado a objetos, que se utilizam das informações e dos serviços que estão encapsulados nos pontos de vista. A seguir, veja, graficamente, a estruturação das etapas: Identificação de ponto de vista Documentação de ponto de vista Estruturação de ponto de vista Mapeamento de sistema de ponto de vista 3. Etnografia Essa técnica visa ao desenvolvimento de um olhar atento para o entendimento dos requisitos, ou seja, tem como objetivo ajudar o analista a compreender como se dá a política organizacional, bem como a cultura dos trabalhos realizados para que ele se familiarize com o sistema e sua história. Na prática, o analista de sistemas insere-se no ambiente dinâmico de trabalho em que o sistema será usado. O trabalho realizado diariamente é observado e as tarefas reais são 50 anotadas para identificar o ponto de atuação do sistema. O principal objetivo é que essa técnica possa ajudar a descobrir requisitos que estejam implícitos no sistema, que possam refletir os processos reais, no lugar dos processos formais, onde algumas pessoas estão envolvidas. A etnografia é eficaz na descoberta de dois tipos de requisitos: • Aqueles oriundos da forma como as pessoas realmente trabalham, em vez da forma pelas quais as definições de processo dizem como elas deveriam trabalhar. • Os oriundos da conscientização das atividades de outras pessoas. 4. Questionários O uso de questionário é sempre recomendado. Sobretudo quando há vários grupos de usuários que podem estar em locais diferentes do país. Dessa forma, elaboram-se pesquisas extremamente específicas de acompanhamento, com usuários selecionados no processo, cuja contribuição em potencial pareça mais importante. Essa seleção prévia tem como objetivo evitar um grande número de entrevistas, pois não seria nada prático ter que entrevistar todas as pessoas em todos os locais. Existem diversos tipos de questionários que podem ser utilizados no processo. Entre eles podemos elencar: múltipla escolha, lista de verificação e questões com espaços em branco. O questionário deve sempre ser desenvolvido de maneira a minimizar o tempo gasto em sua resposta. 5. Workshops Trata-se de uma técnica aplicada para um grupo em uma reunião estruturada. Os analistas de sistemas devem estar envolvidos e deve ser feita uma seleção dos parceiros que melhor representam a organização e o contexto em que o sistema será utilizado, angariando assim um conjunto de requisitos bem estruturados. O workshop tem por objetivo o acionamento do trabalho em grupo. Nele, existe a figura do facilitador, cujo papel é conduzir a técnica aplicada e promover a discussão entre os diversos grupos. As tomadas de decisão feitas durante o evento são baseadas em processos extremamente definidos e com o real objetivo de obter um processo de negociação, mediado pelo facilitador. 51 Uma técnica bastante usada em workshops é o brainstorming, que será detalhada mais adiante. Após a realização dos workshops, serão produzidas documentações que reflitam os requisitos e as decisões tomadas sobre o sistema a ser desenvolvido. Aspectos importantes que precisam ser levados em conta: • A postura que o facilitador deve adotar é de ser mediador e observador. • A convocação a ser realizada deve conter: dia, hora, local, horário de início e término, o assunto que será abordado e a documentação a ser tratada. 6. JAD Técnica que visa a promover cooperação, entendimento, integração e trabalho em equipe entre os diversos usuários desenvolvedores do sistema. O uso desta técnica visa a facilitara criação de uma visão que será compartilhada por todos com base no que o produto de software deve ser. Com isso, os desenvolvedores de sistemas ajudam os demais usuários na formulação de problemas e na exploração de soluções. Dessa forma, todos os usuários ganharão um determinado sentimento de pura sinergia e envolvimento, além do desenvolvimento do sentimento de responsabilidade com o sucesso do produto a ser desenvolvido. Princípios básicos da técnica: • Dinâmica de grupo. • Uso de técnicas visuais. • Manutenção do processo organizado e racional. • Utilização de documentação padrão. 7. Entrevistas Técnica bem tradicional e muito simples de ser utilizada. As entrevistas produzem bons resultados na fase inicial de obtenção de informações. É importante que o entrevistador permita ao entrevistado expor suas ideias. Para tanto, é necessário ter um bom plano de entrevista, que evite a dispersão do assunto principal 52 e impeça que ela se alongue além do necessário, fazendo com que o entrevistado fique exausto e não produza bons resultados. Para elaborar perguntas detalhadas, o entrevistador deve: • Explicar a relação entre o que se quer discutir e as demais partes do sistema. • Descrever o ponto de vista dos demais usuários com base no ponto em discussão. • Descrever as informações que o analista de sistemas deseja obter. • Verificar, com o usuário, se o ponto em questão está ligado a outro item. Dessa forma, poderá ser juntado com os requisitos comuns do sistema em desenvolvimento, permitindo que haja um escopo conciso. 8. Brainstorming Técnica desenvolvida para geração de ideias. Essa técnica consiste numa sequência de reuniões que permitirão que as pessoas envolvidas possam sugerir e explorar diversas ideias. As principais etapas de condução de uma brainstorming são: • Seleção minuciosa dos seus participantes. • Explicação da técnica a ser utilizada, bem como as regras a serem adotadas. • Produção de muitas ideias. MIDIATECA Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo professor sobre Modelagem de Dados Tutorial. 53 Modelagem de dados A seguir serão apresentados alguns conceitos importantes para o entendimento da modelagem de dados. Instâncias É definida como um conjunto de informações quaisquer que estão armazenadas em um determinado banco de dados. Independência de dados É a capacidade de transformar a definição dos esquemas desenvolvidos em um determinado nível, sem afetar o esquema do nível superior. Podem ser classificadas em dois tipos: Independência física: capacidade de modificar o esquema físico projetado sem que, com isso, qualquer programa de aplicação precise ser refeito. As modificações exercidas no nível físico são importantes, principalmente para melhorar o desempenho da aplicação. Independência lógica: capacidade de transformar o esquema lógico sem que, com isso, qualquer programa de aplicação precise ser refeito. As modificações no nível lógico são importantes sempre que uma estrutura lógica do banco de dados é alterada para a melhoria da aplicação. É sabido que a independência lógica de dados é mais difícil de ser mensurada do que a independência física, pois os programas de aplicação são mais fortemente dependentes da estrutura lógica dos dados do que particularmente o seu acesso. Os três níveis da arquitetura A arquitetura ANSI/SPARC se divide em três níveis, conhecidos como nível interno, nível conceitual e nível externo. Os níveis foram definidos na Unidade 1, abaixo você pode ver como eles se relacionam graficamente: 54 Nivel Externo Nivel Conceitual Nivel Físico Agora que você já está a par dos principais conceitos, vamos avançar no estudo da modelagem dos dados. Modelagem de dados A modelagem de dados é definida como uma técnica utilizada para a especificação das regras de negócio e as estruturas de dados que um banco de dados precisa ter para ser definido e/ou criado. Essa técnica está em sintonia com o ciclo de desenvolvimento de um sistema de informação para uma empresa e é de suma importância para o bom resultado de um projeto. Modelar os dados consiste em conceber/desenhar o sistema de informações a ser utilizado, concentrando-se nas entidades e nas dependências lógicas entre essas entidades. A modelagem de dados pode ser conceituada, ainda, como uma técnica que envolve um conjunto de aplicações teóricas e práticas, com o objetivo de construir um modelo de dados consistente, robusto, não redundante e aplicável em qualquer Sistema Gerenciador de Banco de Dados ― SGBD. Para que esse objetivo seja atingido, devemos considerar a definição de um conjunto de conceitos para a representação de dados. Como exemplos, podemos citar: entidade, tabela, atributo etc. Modelos de representação de dados Existem modelos para diferentes níveis de abstração de representação de dados: A. Modelos conceituais. B. Modelos lógicos. C. Modelos físicos. 55 Os modelos físicos têm como características: • Organização dos arquivos de dados em disco rígido (organização sequencial, uso de índices hashing ou b-trees). • Os dados não são manipulados por intermédio de usuários ou de aplicações que acessam o banco de dados, mas diretamente pelas ferramentas do próprio banco de dados. • A caracterização sobre a importância e as decisões de implementação de cada SGBD para a gestão do banco de dados. Na sequência, conheça, detalhadamente, os modelos de representação de dados e suas particularidades. A. Modelo conceitual O modelo conceitual está caracterizado pelo mais alto nível e é importante que seja usado para envolver o cliente, pois o foco fundamental é tratar dos aspectos do negócio do cliente e não da tecnologia em si. Os diversos exemplos de modelagem de dados tratados pelo modelo conceitual são fáceis de compreender, já que não existem limitações ou aplicação de uma tecnologia específica. O diagrama de dados que deverá ser construído pelo analista responsável é tido como o Diagrama de Entidade e Relacionamento – DER. É importante que nesses diagramas sejam identificados, diante da necessidade do cliente, todas as entidades e os relacionamentos entre elas. Esse diagrama é a mola mestra para a compreensão do modelo conceitual de dados. Algumas características importantes do modelo conceitual são: • Modelam de forma mais natural os fatos do mundo real, suas propriedades e seus relacionamentos. • São independentes do banco de dados. • Possuem preocupação com a semântica da aplicação. 56 Exemplo Exemplo Observe um exemplo de modelagem conceitual: Observe um exemplo de modelagem lógica de dados: Alunos AlunosCursa B. Modelo lógico O modelo lógico leva em consideração algumas limitações no mapeamento das necessidades do cliente e implementa recursos como adequação de padrão e nomenclatura, definição das chaves primárias e estrangeiras, normalização, integridade referencial, entre outras. É importante que o modelo lógico seja criado levando em consideração a modelagem de dados criada no modelo conceitual. Conheça, a seguir, algumas características importantes do modelo lógico: • Também são chamados de modelo de banco de dados. • São dependentes do banco de dados. Podemos citar como exemplos de utilizações: • O modelo relacional (tabelas). • O modelo hierárquico e XML (árvore). • O modelo orientado a objetos (classes - objetos - complexos). 57 Percebe-se a ligação das tabelas Alunos e Cursos por meio dos seus respectivos campos Curso e Cod_Curso. Dessa forma, há um elo entre as tabelas: uma determinada matrícula possui um curso e esse curso está referendado na tabela Cursos. Como suporte aos métodos de acesso à base de dados, o modelo lógico possui: • Especificação dos conceitos do modelo (DDL): • Dados, seus domínios, relacionamentos e restrições existentes. • Manipulação de conceitos modelados (DML): • Esquema (lógico) de um banco de dados. • Resultado da especificação dos dados de um domínio de aplicação em ummodelo de banco de dados, conforme mostrado no esquema a seguir: Requisitos da aplicação Modelo de banco de dados Esquema lógico 58 C. Modelo físico É realizada a modelagem física do esquema criado para o novo banco de dados. Dessa forma, são levadas em consideração as limitações impostas pelo SGBD escolhido e devem ser criados com base nas modelagens de dados produzidos no modelo lógico. O modelo físico irá partir do modelo lógico e descreve as estruturas físicas de armazenamento de dados, tais como: tamanho de campos, índices, tipo de preenchimento destes campos etc. Agora que você já sabe como são os modelos de representação de dados, conheça as gerações dos modelos de banco de dados. Geração dos modelos de banco de dados Pode-se dizer que os modelos de bancos de dados possuem três gerações. Primeira geração: modelos pré- relacionais. Dentre os modelos pré-relacionais destacam-se os modelos hierárquico e de rede. Terceira geração: modelos pós- relacionais. Dentre os modelos pós-relacionais, destacam-se os modelos orientados a objetos, objeto- relacional, temporal, geográfico. Segunda geração: modelo relacional. Conheça cada geração com mais detalhe, a seguir. 59 Modelos pré-relacionais: • Modelos com várias limitações: não há representatividade de forma adequada. • Os relacionamentos dos objetos no mundo real são do tipo hierarquias (1-1 ou 1-N). • Problema de performance: varredura em estruturas em grafo (rede). • Inexistência de uma linguagem de consulta declarativa. • As consultas exigem programação pela aplicação: • Há manipulação de um registro por vez. • Existência de baixa performance de acesso às informações. Modelo relacional: • Foi criado no ano de 1970. Seu criador foi E. Codd – IBM/Califórnia. • Esse modelo de dados possui uma sólida base formal, baseada na Teoria dos Conjuntos. • É um modelo simples: com estruturas tabulares e poucos conceitos. • Utiliza linguagens declarativas para a manipulação de dados na base de dados: • Uso da Álgebra relacional e cálculo relacional. • Linguagem SQL, de uso comercial. Modelos pós-relacional • Banco de dados orientado a objetos utilizado para a linguagem Python. • Alto grau de transparência dos processos. • Objetos atualizados por meio das interações normais dos objetos. • Alto desempenho para tratar as informações e uso eficiente da memória. Saiba mais O modelo relacional O modelo relacional é um modelo de dados representativo ou um modelo de implementação, pois se trata de um modelo subjacente de um SGBD, que se baseia na concepção de que todos os dados estão armazenados em tabelas. Esse conceito foi criado por Edgar Frank Codd no ano de 1970. 60 No âmbito da gerência de bases de dados (SGBD), o modelo relacional é tido como um modelo de dados baseado em lógica e na teoria de conjuntos. Esse modelo é amplamente utilizado. Por isto, você vai conhecê-lo em detalhes na sequência. Características do modelo relacional • Organização dos dados: • Conceitos do modelo de dados: • Atributo, relação, chave. • Integridade de dados: • Restrições básicas para dados e relacionamentos entre as tabelas. • Manipulação de dados: • Linguagens formais e SQL. Organização do Modelo Relacional • O modelo apresenta cinco conceitos: • Domínio. • Atributo. • Tupla. • Relação. • Chave. Entenda cada um destes conceitos, na tabela abaixo: 61 Conceito Domínio Atributo Tupla Relação Detalhamento • Conjunto de valores permitidos para um dado: • Tipos de dados: • Tipo inteiro, tipo string (domínios básicos). • Tipo data e hora (domínios compostos). • [0, 120], (‘M’, ‘F’) (domínios definidos). • Em um domínio existem operações válidas: • Tipo inteiro (somar, dividir, i1 maior que i2). • Tipo data (obter o dia, obter o mês, d1 anterior a d2). • Definição de domínios de dados: • DDL (indicação de tipos de dados). • Um conjunto de pares (atributo, valor). • Define uma ocorrência de um fato do mundo real ou de um relacionamento entre fatos. • Valor de um atributo: • Deve ser definido no momento da criação de uma tupla. • Precisa ser: • Compatível com o domínio OU NULL (valor inexistente ou indeterminado). • Atômico (indivisível: não-estruturado e monovalorado). • Vejamos um exemplo: • Tupla de aluno: {(nome, ‘João’), (idade, 34), (matrícula, 03167034)} • Composto por um cabeçalho e um corpo. • Cabeçalho: • Número fixo de atributos (grau da relação). • Atributos não ambíguos. • Corpo: • Número variável de tuplas (cardinalidade existente na relação). • Definição formal: • Subconjunto do produto cartesiano de todos os domínios (D1 X D2 X... X Dn) de atributos. • Relação é um conjunto. • Na prática, uma relação em um banco de dados é chamada de tabela e uma tabela definida no banco de dados admite uma coleção de tuplas. • Um item de dado do banco de dados. • Possui um nome e um domínio: • Nome: string (tipo definido para o atributo). • Idade: [0,100] (intervalo de valores do atributo idade). 62 Chave • Conjunto de um ou mais atributos de uma relação. • Tipos de chaves: • Chave primária (primary key - pk). • Atributo(s) cujo (conjunto de) valor(es) identifica(m) unicamente uma tupla em uma relação. • Notação para a pk de uma relação R: pk(R). • Conceitos associados: • Chaves candidatas e chaves alternativas. • Veja alguns exemplos: • Alunos: matrícula. • Cidades: (nome, estado) A seguir, conheça outro tipo de modelo: o modelo entidade-relacionamento. Na sequência serão detalhados o modelo entidade-relacionamento, os tipos de entidades, os seus atributos e o que é relacionamento. Modelo entidade-relacionamento Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o relacionamento existente entre os dados. Hoje, sabemos que várias empresas usam este modelo por meio de conceitos de UML e do diagrama de classe. A seguir, você vai conhecer as características que envolvem o modelo entidade- relacionamento para que todo o seu mapeamento seja criado da forma correta e atenda à demanda do usuário. Tipos de entidades No que diz respeito a entidades, ainda podemos classificá-las de duas formas: entidade forte e entidade fraca. Entidade Fraca Entidade Forte É uma entidade dependente da existência de alguma outra entidade, no sentido que ela não pode existir se a outra entidade também não existir. É uma entidade que não é dependente da existência de alguma outra entidade. 63 Atributos Todo objeto, para ser uma entidade, possui propriedades que são descritas por seus atributos e valores. Atributos e valores, juntos, descrevem as instâncias de uma entidade. Os atributos podem ser: Simples ou compostos Chave Chave primária Chave estrangeira Chave secundária Chave candidata Índice Univalorado ou multivalorado O atributo simples é único, já o atributo composto pode ser desmembrado em vários atributos (mais de um). Designa o conceito de item de busca, ou seja, um dado que será empregado nas consultas à base de dados. É o atributo da tabela que identifica univocamente uma tupla. É o elo entre as tabelas. Serve para definir uma segunda chave primária. Uma tabela pode possuir alternativas de identificador único, ou seja, várias colunas ou concatenações diferentes de colunas podem ter essa propriedade. É o recurso físico que visa a otimizar a recuperação de uma informação, via método de acesso. Seu objetivo principal está relacionado com a performance de um sistema. Um atributo univalorado possui um único valor. Por sua vez, um atributo multivalorado possui vários valores. Relacionamentos As entidades envolvidas em um dado relacionamento são ditas participantes desse relacionamento. O número de participantes em um dado relacionamento é chamado de cardinalidade máxima. O relacionamento é representado pelo losango. 64 O relacionamento é igual ao conjunto de associações que podem ser feitas entre as entidades. Observe o relacionamento abaixo: Alunos AlunosCursa Um
Compartilhar