Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 1 Saudações caros(as) amigos(as), Cabe destacar que estamos juntos para buscar o 100% da prova e a tão sonhada aprovação. Para isso, continuarei repassando a vocês o máximo de minha experiência como concurseira e professora, já que “melhor do que aprender o caminho é aprender os atalhos”. Estamos aqui para isso, ensinar os atalhos, os macetes, tentar encurtar essa longa trajetória, e ajudá-los a chegar ao tão almejado objetivo. Que Deus os abençoe, bom proveito e rumo agora à quarta aula, sobre Banco de Dados, com toda a garra e perseverança. Essa aula foi antecipada, em virtude da sua importância para o certame que se aproxima. Todos prontos? Então vamos nessa! Um abraço, Profa Patrícia Quintão. Aula 04 – Banco de Dados e Tópicos Relacionados WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 2 Sumário Conceitos Básicos de Armazenamento de Dados .................................... 4 Dado x Informação x Conhecimento ......................................................... 4 O Que é um Banco de Dados? ................................................................. 5 Por Que Usar um Banco de Dados? .......................................................... 7 Principais Tipos de Banco de Dados .......................................................... 7 Novos Tipos de Aplicações que Usam Banco de Dados (BD) ......................... 9 Sistemas de Gerenciamento de Banco de Dados (SGBDs) ......................... 10 Funções Básicas de um SGBD ................................................................ 12 Atores Envolvidos com o SGBD .............................................................. 13 Estrutura de um SGBD ......................................................................... 14 Sistema de Banco de Dados .................................................................. 14 Abstração de Dados e a Arquitetura de Três Níveis ................................... 18 Independência de Dados ....................................................................... 19 Dicionário de Dados ............................................................................. 20 Esquemas e Instâncias ......................................................................... 21 Projeto de um Banco de Dados ............................................................ 21 Análise e Coleta de Requisitos (Especificação das necessidades do usuário do banco) ................................................................................................ 22 Projeto Conceitual (ou Modelo Conceitual)............................................... 22 Projeto Lógico (ou Modelo Lógico) .......................................................... 23 Projeto Físico (ou Modelo Físico) ............................................................ 23 Modelo de Dados.................................................................................. 23 Modelo Entidade-Relacionamento (Exemplo de Modelo Conceitual) .... 24 Entidades ............................................................................................ 24 Atributos ............................................................................................. 25 Relacionamentos .................................................................................. 27 Grau de um Relacionamento ................................................................. 28 Cardinalidade de Relacionamento ........................................................... 30 Cardinalidade de Atributos .................................................................... 35 Generalização/Especialização ................................................................. 35 Entidade Fraca ..................................................................................... 36 Entidade Associativa ............................................................................. 37 Diagrama Entidade – Relacionamento (DER) ........................................... 38 Recapitulando as Fases da Modelagem de Dados... .............................. 39 Modelo Relacional (Exemplo de Modelo Lógico) ................................... 39 Tuplas ................................................................................................ 40 Características das Relações .................................................................. 41 Principais Tipos de Chaves Consideradas no Modelo Relacional .................. 42 Restrições de Integridade ..................................................................... 43 Propriedades ACID (Atomicidade, Consistência, Isolamento, Durabilidade) .. 45 Especificação de Banco de Dados Relacional ............................................ 45 Dependência Funcional ......................................................................... 46 Normalização ...................................................................................... 46 Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 3 SQL ...................................................................................................... 49 Regras Básicas para Escrever Comandos SQL .......................................... 50 **DDL – Data Definition Language ou Linguagem de Definição de Dados .... 51 **DML – Data Manipulation Language ou Linguagem de Manipulação de Dados ................................................................................................. 54 **DCL – Data Control Language ou Linguagem de Controle de Dados ........ 60 ** Transaction Control - Controle de Transação ....................................... 60 Data Warehousing e Business Intelligence .......................................... 60 Memorex .............................................................................................. 80 Questões de Provas Comentadas ......................................................... 87 Considerações Finais ......................................................................... 173 Referências Bibliográficas.................................................................. 174 Lista de Questões Apresentadas na Aula ........................................... 175 Gabarito ............................................................................................. 209 Acompanhe a Evolução do seu Aproveitamento ................................. 210 WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 4 Conceitos Básicos de Armazenamento de Dados Dado x Informação x Conhecimento O que é um Dado? É um registro de alguma entidade. Um nome é um dado, uma foto é um dado, 134 é um dado, 5 é um dado, etc. Já a informação é um dado depois de processado, é uma contextualização de um dado... Como assim? “5” é um dado, mas e se eu disser o seguinte: “No dia 5 não haverá aula!!”. Nesse caso, o 5 passou a ter sentido (ou passou a ter “contexto”) e agora é uma informação! Assim, informações são conjuntos de dadossignificativos e úteis a seres humanos em processos, como o de tomada de decisões. Na figura seguinte, dados brutos registrados por um caixa de supermercados podem ser processados e organizados de modo a produzir informações úteis, tal como o total de unidades de detergentes vendidas ou a receita total de vendas do detergente para determinada loja ou território de vendas. Fonte: (O´BRIEN, 2006) E conhecimento? Setzer (2001), em http://www.ime.usp.br/~vwsetzer/dado- info.html, destaca que o conhecimento pode ser considerado como “uma abstração interior, pessoal, de algo que foi experimentado, vivenciado, por alguém”. Conforme destaca Rob e Coronel (2011), o conhecimento implica familiaridade, consciência e compreensão das informações conforme se apliquem a um ambiente. Uma característica fundamental do conhecimento é que o "novo" conhecimento pode ser obtido a partir do "antigo". A seguir, alguns pontos fundamentais: Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 5 • os dados constituem os blocos de construção das informações; • as informações são produzidas pelo processamento de dados e são utilizadas para revelar o significado dos dados; • informações precisas, relevantes e rápidas são a chave para a boa tomada de decisões; • a boa tomada de decisão é a chave para a sobrevivência de uma organização no ambiente global. Vale destacar que informações rápidas e úteis exigem dados precisos. Esses dados devem ser gerados de forma adequada e armazenados em um formato de fácil acesso. E, como qualquer recurso básico, o ambiente de dados deve ser gerenciado com cuidado. O gerenciamento de dados é uma disciplina que foca na geração, no armazenamento e na recuperação adequada dos dados. Diante do papel crucial executado pelos dados, você não deve estar surpreso que o gerenciamento de dados seja uma atividade central para qualquer negócio, ou organização (Rob e Coronel, 2011). Em geral, o gerenciamento eficiente de dados exige a utilização de um banco de dados computacional. O Que é um Banco de Dados? Elmasri e Navathe (2006) definem um Banco de Dados como uma coleção de dados relacionados, sendo esses dados definidos como fatos que possuem um significado implícito. Korth e Silberchatz (2011) destacam que banco de dados é uma coleção de dados interrelacionados que contém informações relevantes para uma empresa. Considere um exemplo de um banco de dados de funcionários de uma empresa. Nele podemos encontrar alguns arquivos, tais como: arquivos de dados pessoais (nome, endereço, data de nascimento, etc.), arquivos de dados funcionais (cargo, data de admissão, etc.) e dados para pagamento (salário base, horas trabalhadas, adicionais, etc.). Para obter informações sobre a folha de pagamento da empresa de cada funcionário, é preciso que os três arquivos estejam relacionados para fazermos uma consulta. Assim conseguimos informações como nome, cargo e salário de cada funcionário. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 6 Vale ressaltar que para ser caracterizado como banco de dados a coleção de dados deve ter uma relação coerente na qual se pode extrair informações com significado inerente. Uma coleção de dados ao acaso não pode ser interpretada como um banco de dados. Por exemplo, se em uma pasta está armazenado o fluxo de caixa da loja da sua mãe, arquivos de músicas de um álbum do seu cantor preferido e anúncios de imóveis que seu pai estava analisando, isso corresponde a um conjunto de dados sem nenhuma relação lógica ou coerente entre eles. Logo, não pode ser caracterizado como banco de dados. Nem sempre um banco de dados precisa estar informatizado no computador. O que caracteriza um banco de dados é a forma como os dados estão interrelacionados, representando um universo de discurso, que apresenta um significado relevante a um grupo de usuários. Por exemplo, um armário no hospital que tem as fichas de prontuários de todos os pacientes pode ser considerado um banco de dados, mesmo estando os dados em papéis. Ali você tem dados pessoais dos pacientes, dados de laudos de exames realizados com esses pacientes e dados de acompanhamento dos pacientes, como temperatura e pressão medidas diariamente durante a internação. E um banco de dados pode atender a usuários diferentes com visões diferentes. Por exemplo, cada médico pode olhar os dados que o ajudem a tomar uma decisão de tratamento para o problema referente à sua área de atuação. Dados São fatos em sua forma primária, os quais podem ser armazenados, como, por exemplo: nome, telefone e endereço. Estes dados ou fatos organizados de maneira significativa e relacionados formam uma informação, como por exemplo: os dados das peças em estoque. Assim é possível obter uma lista de peças em falta. Banco de Dados Um conjunto de dados devidamente relacionados capazes de apresentar uma informação. Coleção de dados inter-relacionados, armazenados de forma centralizada ou distribuída, com algum significado inerente, isto é, informações de interesse de uma ou mais organizações. Um banco de dados é projetado, construído e povoado por dados, atendendo a uma proposta específica. Possui um grupo de usuários definido e algumas aplicações preconcebidas, de acordo com o interesse desse grupo de usuários. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 7 Por Que Usar um Banco de Dados? Comparando-se ao trabalho manual de armazenar dados: • densidade: não há necessidade de volume de papéis; • velocidade: a recuperação e modificação dos dados é realizada de maneira muito rápida; • atualidade: informações precisas e atualizadas estão disponíveis a qualquer momento; • proteção: os dados podem ficar melhor protegidos a perdas não intencionais e acesso ilegal; • controle centralizado dos dados operacionais: • redundância dos dados (dados armazenados de forma desnecessária em locais diferentes) evitada -> desperdício de espaço evitada; • inconsistência evitada -> informações incorretas evitadas, através da remoção de redundâncias ou da redundância controlada (propagação de atualizações); • compartilhamento dos dados por várias aplicações; • permite a aplicação de restrições de segurança; • mantém a integridade dos dados, através da geração de regras de integridade; • suporte a transações (unidade lógica de trabalho) é oferecido; • padrões (documentação, de instalação, etc.) podem ser impostos. Principais Tipos de Banco de Dados Com o avanço da tecnologia e da computação, houve um crescimento do volume e dos tipos de dados a serem armazenados nas organizações. Isso demandou a necessidade de se utilizar softwares especiais para gerenciar os dados, os chamados SGBDs (Sistemas Gerenciadores de Banco de Dados). O SGBD pode dar suporte a muitos tipos de bancos de dados, classificados de acordo com o número de usuários, localização(ões), tipo e a extensão do uso esperado. i)Quanto ao número de usuários (monousuário/multiusuário) O número de usuários determina se o banco de dados é classificado como monousuário (de um único usuário) ou multiusuário. • Banco de dados monousuário: dásuporte a apenas um usuário por vez. Em outras palavras, se o usuário A estiver utilizando o banco, os usuários B e C devem esperar até que o A termine. Um banco de dados monousuário executado em um computador pessoal é chamado banco de dados de desktop. • Por outro lado, um banco de dados multiusuário dá suporte a vários usuários simultaneamente. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 8 ii)Quanto à localização de dados (Centralizado/Distribuído) • A localização também pode ser utilizada para classificar o banco de dados. Por exemplo, um banco que dê suporte a dados localizados em um único local é chamado de banco de dados centralizado. Já um que dê suporte a dados distribuídos por vários locais diferentes é chamado de banco de dados distribuído. iii)Quanto à utilização de dados (Banco de Dados Operacional/Data Warehouse/Bancos de Dados em XML,...) • Atualmente, o modo mais popular de classificação baseia-se em como os bancos de dados serão utilizados e na sensibilidade ao tempo das informações nele coletadas. Por exemplo, transações como vendas, pagamentos e aquisições de suprimentos de produtos ou serviços refletem operações diárias fundamentais. Essas transações devem ser registradas de modo preciso e imediato. Um banco projetado principalmente para dar suporte às operações diárias de uma empresa é classificado como banco de dados operacional (às vezes referido como transacional ou de produção). Por outro lado, os data warehouses (armazém de dados) focam na armazenagem dos dados utilizados para gerar informações necessárias à tomada de decisões táticas e estratégicas. A maioria dos dados de suporte a decisões baseiam-se em dados históricos obtidos de bancos de dados operacionais. Além disso, o data warehouse pode armazenar dados provenientes de muitas fontes. Para facilitar a recuperação desses dados, a estrutura do Data Warehouse difere muito de um banco operacional ou transacional. Os bancos de dados também podem ser classificados de modo a refletir até que grau seus dados são estruturados. • Dados não estruturados são aqueles que existem em seu estado original (bruto), ou seja, no formato em que foram coletados. Portanto, estão em um formato que não possibilita o processamento (que produz informações). • Dados estruturados são o resultado da obtenção de dados não estru- turados e de sua formatação (estruturação), visando facilitar o armazenamento, a utilização e a geração de informações. A estrutura (formato) é aplicada com base no tipo de processamento que se deseja executar nos dados. Alguns dados podem não estar prontos (não estruturados) para determinados tipos de processamento, mas podem estar prontos (estruturados) para outros tipos. Por exemplo, o valor de dados 37890 pode se referir a um CEP, um valor de vendas ou um código de produto. Se representar um CEP ou um código de produto e for armazenado como texto, não será possível executar cálculos matemáticos com ele. Por Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 9 outro lado, se esse valor representar uma transação de vendas, será necessário formatá-lo como numérico. Para ilustrar o conceito de estrutura, imagine uma pilha de faturas impressas em papel. Caso deseje simplesmente armazená-las como imagens para recuperação e exibição futura, é possível escaneá-las e salvá-las em formato gráfico. Por outro lado, se desejar obter informações como vendas mensais totais e médias, esse armazenamento gráfico não seria útil. Em vez disso, é possível armazenar os dados das faturas em um formato de planilha (estruturado) de modo a permitir a execução dos cálculos necessários. Na verdade, em sua maioria, os dados que encontramos são mais bem classificados como semiestruturados. • Dados semiestruturados são aqueles que foram parcialmente processados. Por exemplo, olhando-se uma página comum da web, os dados são apresentados em um formato pré-organizado para transmitir alguma informação. Os tipos de bancos de dados mencionados até aqui focam no armazenamento e gerenciamento de dados altamente estruturados. No entanto, as corporações não se limitam ao uso de dados estruturados, também utilizam dados semiestruturados e não estruturados. Basta pensar nas informações muito valiosas que podem ser encontradas em e-mails da empresa, memorandos, documentos como procedimentos e regras, conteúdos de páginas da web e assim por diante. As necessidades de armazenamento e gerenciamento de dados não estruturados e semiestruturados estão sendo atendidas pela nova geração de bancos de dados em XML. A Linguagem de Marcação Extensível (XML, sigla em inglês para Extensible Markup Language) é uma linguagem especial utilizada para representar e manipular elementos de dados em formato textual. Os bancos de dados em XML dão suporte ao armazenamento e gerenciamento de dados semiestruturados em XML. Novos Tipos de Aplicações que Usam Banco de Dados (BD) • Banco de dados ativos: controle de bolsa de valores, controle de tráfego aéreo: tempo real, dados históricos. • Banco de dados distribuídos e heterogêneos: projeto colaborativo, sistemas de informação médicas, data warehousing, “transações na web". • Dados científicos - e.g., satélites, sensores, genoma: guardam terabytes ou mais de informações. • O rápido crescimento dos sites na Internet e intranets e extranets empresariais tem aumentado drasticamente o uso de bancos de dados em documentos em hipertexto e hipermídia. Alguns exemplos: o Bancos de Dados em Hipermídia: um site de rede armazena informações em um banco de dados em hipermídia que consiste em WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 10 uma home page e outras páginas de multimídia ou mídias mistas (texto, imagens gráficas e fotográficas, videoclipes, segmentos de áudio e assim por diante) com hiperlinks. o Site de Rede: um site de rede utiliza um banco de dados em hipermídia que consiste em páginas de HTML (Linguagem de Marcação de Hipertexto), arquivos GIF (arquivos de imagens gráficas) e arquivos de vídeo. Sistemas de Gerenciamento de Banco de Dados (SGBDs) Um banco de dados pode ser criado e mantido por um conjunto de aplicações desenvolvidas especialmente para esta tarefa ou por um Sistema Gerenciador de Banco de Dados ou Sistema de Gerenciamento de Banco de Dados (SGBD). Um SGBD é um SOFTWARE (conjunto de programas) de caráter geral, que executa os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações, incluindo módulos para consulta, atualização e as interfaces entre o sistema e o usuário. Figura. O SGBD gerencia a interação entre o usuário final e o banco de dados. Fonte: Rob e Coronel, 2011. Em um SGBD, as grandes coleções de informações são estruturadas e armazenadas de uma forma consistente e integrada. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . PatríciaLima Quintão 11 Os SGBDs são programas capazes de criar bancos de dados, e a partir daí realizar uma série de operações básicas, tais como: inclusão, pesquisa, atualização, impressão e ordenação. Podemos dizer então que SGBD = Conjunto de dados + Conjunto de programas de acesso aos dados. Dentre os SGBDs que estão sendo mais utilizados atualmente tem-se: • SGBDs livres, como o MySQL, que possui o código fonte aberto, projetado para servir como opção aos SGBDs corporativos proprietários. Apesar de seu crescimento nos últimos anos e de sua grande popularidade, especialmente em aplicativos voltados para a web, ainda não tem uso difundido em grandes empresas, que ainda preferem confiar seus dados a aplicações mais “maduras” e com maior capacidade de suporte. Há outros SGBDs livres que seguem a linha do MySql, como o PostgreSql, por exemplo. • Microsoft Access (Faz parte do pacote Microsoft Office, voltado para bancos de dados pessoais (uso doméstico) e menos robustos (pequenas aplicações de uso não crítico)); • Base (Faz parte do pacote BrOffice/LibreOffice, também mais voltado para uso doméstico); • SGBDs comerciais e proprietários para uso corporativo, como o SQL Server e o Oracle, utilizados em projetos mais volumosos que envolvem bancos de dados corporativos (de grandes empresas). Outros SGBDs podem ser destacados, como: SyBase, Adabas, DB2, etc. Muitas vezes, até mesmo profissionais de TI referem-se aos SGBDs como banco de dados. Até certo ponto, o banco de dados se assemelha a um arquivo eletrônico com conteúdo muito bem organizado com a ajuda de um software poderoso, conhecido como sistema de gerenciamento de banco de dados. No entanto, os SGBDs são softwares, já banco de dados conceitualmente NÃO é um software. Porém os SGBDs sozinhos não têm nenhuma relevância, os bancos de dados armazenados em um SGBD é que têm significado e são importantes para a organização que os mantém. SGBD: Conjunto de software para gerenciar um BD, que provê armazenamento e acesso multiusuário eficiente a uma grande quantidade de dados armazenados. Os SGBDs surgiram para atender à necessidade de armazenamento e de recuperação de grandes volumes de informações, propiciando um ambiente seguro e adequado. O SGBD ajuda a tornar o gerenciamento de dados mais eficiente e eficaz. Por exemplo, fornece vantagens como (Rob e Coronel, 2011): WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 12 • Evitar/controlar a REDUNDÂNCIA. O que é: é a repetição de um mesmo dado em locais distintos. Temos a redundância controlada e a não controlada. Como podemos evitar: centralizando os dados através do banco. Pode ser utilizada em situações em que haja necessidade de melhoria no desempenho e/ou economia de recursos da transmissão. • Manter a integridade. Garante que os dados armazenados no BD estão corretos. Para manter a integridade, lança-se mão da implementação de regras de negócio através de restrições de integridade (automáticas ou implementadas através de triggers (gatilhos) ou stored procedures (procedimentos armazenados no banco)). • Melhoria na INTEGRAÇÃO dos dados. • Minimização da INCONSISTÊNCIA dos dados, que ocorre quando diferentes versões dos mesmos dados aparecem em locais diferentes. Por exemplo, quando o departamento de vendas de uma empresa armazena o nome de uma representante de vendas como "Gris Silva" e o departamento de recursos humanos armazena o nome da mesma pessoa como "Cristina G. Da Silva". Esse problema é reduzido por meio de um adequado projeto de banco de dados. • Aprimoramento do acesso aos dados. Aprimoramento da tomada de decisão. Aumento de produtividade do usuário final. • Tolerância a falhas: Fornece recursos para recuperação de falhas tanto de software quanto de hardware. • Restrição a acesso não autorizado: Fornece um subsistema de autorização e segurança, o qual é utilizado pelo DBA para criar contas e especificar as restrições destas contas. O controle de restrições se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao Sistema Gerenciador de Banco de Dados. As vantagens da utilização de um SGBD não se limitam aos itens aqui listados. Na verdade, você descobrirá muito mais vantagens ao conhecer os detalhes técnicos dos bancos de dados e seu projeto adequado. Funções Básicas de um SGBD Como todo e qualquer aplicativo, os SGBDs dispõem de funções que são compartilhadas por qualquer tipo de sistema gerenciador de banco de dados, independente de seu fabricante. Dentre elas, merecem destaque: • proporcionar maior abstração, isolando o usuário dos pormenores internos de como os dados estão armazenados; • rapidez no acesso às informações; Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 13 • proporcionar independência dos dados em relação aos programas de recuperação, cuja estrutura física de armazenamento independe da estratégia de acesso; • compartilhar a base de dados entre vários aplicativos, em que diferentes tipos de interfaces atendem às necessidades de distintos usuários; • maior facilidade de realizar cópias de segurança; • proporcionar a comunicação diretamente com um software ou servidor; • proporcionar integridade dos dados. Atores Envolvidos com o SGBD Para um grande banco de dados, existe um variado número de pessoas envolvidas, desde o projeto, uso, até manutenção, executando funções exclusivas e complementares. • Os administradores de banco de dados, também conhecidos como DBAs (sigla em inglês para database administrator), gerenciam o SGBD e garantem que o banco de dados funcione adequadamente. São usuários especializados em banco de dados. Cabe a eles a administração dessas bases, definição da melhor estrutura de armazenamento desses dados, definição de aspectos de segurança, programação de cópias de segurança (backups) dos dados, dentre outros. • Os projetistas de banco de dados projetam a estrutura do banco. Na prática, são os arquitetos dos bancos de dados. Se o projeto for ruim, mesmo os melhores programadores de aplicações e os DBAs mais dedicados não serão capazes de produzir um ambiente útil de sistema de banco de dados. Como as organizações esforçam-se para otimizar seus recursos de dados, a descrição do trabalho do projetista expandiu-se para cobrir novas dimensões e suas responsabilidades são crescentes. • Os programadores de aplicações e analistas de sistemas projetam e implementam os aplicativos. Desenvolvem e criam as telas de entrada de dados, os relatórios e os procedimentos por meio dos quais os usuários finais acessam e manipulam os dados do banco de dados. • Usuários Finais. Existem basicamente três categorias de usuários finais que são os usuários finais do banco de dados, fazendo consultas, atualizações e gerando documentos: - usuários casuais: acessam o banco de dados casualmente, mas que podem necessitar de diferentes informações a cada acesso; utilizam sofisticadas linguagens de consulta para especificar suas necessidades; - usuários novatos ou paramétricos: utilizam porções pré-definidas do banco de dados, utilizando consultas preestabelecidas que já foram exaustivamente testadas; WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados -Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 14 - usuários sofisticados: são usuários que estão familiarizados com o SGBD e realizam consultas complexas. Estrutura de um SGBD Figura. Estrutura de um SGBD Sistema de Banco de Dados Para completar nossa definição inicial chamaremos o banco de dados e o software SGBD, juntos, de Sistema de Banco de Dados. O termo sistema de banco de dados refere-se a uma organização de componentes que define e regula a coleta, o armazenamento, o gerenciamento e Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 15 a utilização de dados em um ambiente de banco de dados. Do ponto de vista do gerenciamento real, o sistema de banco de dados é composto de cinco partes principais, apresentadas na figura seguinte: hardware, software, pessoas, procedimentos e dados. Figura. Sistema de Banco de Dados � Hardware: refere-se a todos os dispositivos físicos do sistema, como, por exemplo, computadores (microcomputadores, estações de trabalho, servidores, clusters e supercomputadores), dispositivos de armazenamento, impressoras, dispositivos de rede (hubs, switches, roteadores) e outros dispositivos (caixas automáticos, leitores de ID etc.). � Software. Embora o software identificado de imediato seja o próprio SGBD, o funcionamento completo do sistema de banco de dados necessita de três tipos de softwares: sistema operacional, SGBD e aplicativos e utilitários. o O sistema operacional gerencia todos os componentes de hardware e possibilita que os outros softwares sejam executados nos computadores. Os exemplos de sistema operacional incluem o Microsoft Windows, o Linux, o UNIX, etc. o O SGBD gerencia o banco de dados em um sistema de banco de dados. Alguns exemplos desse tipo de software são o Microsoft SQL Server, o Oracle da Oracle Corporation, o MySQL da MySQL AB e o DB2 da IBM. o Os aplicativos e utilitários são utilizados para acessar e manipular dados no SGBD e gerenciar o ambiente computacional no qual ocorre o acesso e a manipulação de dados. Os aplicativos são usados com mais frequência para acessar os dados encontrados no banco de dados e gerar relatórios, tabelas e outras informações que WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 16 facilitem a tomada de decisões. Os utilitários são as ferramentas de software utilizadas para ajudar no gerenciamento dos componentes computacionais do sistema de bancos de dados. Por exemplo, todos os principais fornecedores de SGBD atualmente fornecem interfaces gráficas de usuário (GUIs) para ajudar a criar estruturas de bancos de dados, controlar seu acesso e monitorar suas operações. � Pessoas. Esse componente inclui todos os usuários do sistema de banco de dados. Com base na função de trabalho principal, é possível identificar cinco tipos de usuários em um sistema: administradores de sistemas, administradores de bancos de dados, projetistas de bancos de dados, ana- listas e programadores de sistemas, e usuários finais. � Procedimentos. São as instruções e regras que orientam o projeto e a utilização do sistema de banco de dados. Os procedimentos são um componente fundamental, embora às vezes esquecido, do sistema. Executam um papel importante na empresa, pois aplicam os padrões pelos quais os negócios são conduzidos dentro da organização e em relação aos clientes. Também são utilizados para garantir que haja um modo organizado de monitorar e auditorar tanto os dados que entram no banco como as informações geradas pela utilização desses dados. � Dados. A palavra dados cobre o conjunto de fatos armazenados no banco de dados. Como eles são o material bruto a partir do qual as informações são geradas, a definição de quais dados devem ser inseridos no banco e como esses dados devem ser organizados constitui uma parte vital do trabalho do projetista. Um sistema de banco de dados adiciona uma nova dimensão à estrutura de gerenciamento de uma organização. A complexidade dessa estrutura depende do tamanho da organização, de suas funções e de sua cultura corporativa. Portanto, os sistemas de banco de dados podem ser criados e gerenciados em diferentes níveis de complexidade e com adesão variável a padrões precisos. Por exemplo, compare um sistema local de locação de filmes com um sistema nacional de reclamações de seguros. • O sistema de locação de filmes pode ser gerenciado por duas pessoas, o hardware utilizado provavelmente é um único microcomputador, os procedimentos são simples e o volume de dados tende a ser baixo. • O sistema nacional de reclamações de seguros possui pelo menos um administrador de sistemas, vários DBAs em tempo integral e muitos projetistas e programadores; o hardware inclui diversos servidores em vários locais; é provável que os procedimentos sejam numerosos, complexos e rigorosos e que o volume de dados tenda a ser alto. Além dos diferentes níveis de complexidade dos sistemas de banco de dados, os gerentes também devem levar em consideração: as soluções de bancos de dados devem ser efetivas em relação a custos-benefícios e a fatores táticos e estratégicos. A criação de uma solução de um milhão de Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 17 dólares para um problema de mil dólares dificilmente constará entre os exemplos de boa seleção de sistema e de bom projeto e gerenciamento de bancos de dados. Por fim, é provável que a tecnologia de bancos de dados já em uso afete a seleção de um sistema. Embora o sistema de banco de dados apresente vantagens consideráveis em relação a abordagens de gerenciamento anteriores, também trazem desvantagens significativas. Por exemplo (Rob e Coronel, 2011): • Aumento de custos. Os sistemas de banco de dados exigem hardware e software sofisticados e pessoal altamente treinado. O custo de manutenção do hardware, software e pessoal necessários para operar e gerenciar um sistema de banco de dados pode ser substancial. Os custos de treinamento, licenciamento e atendimento às regulamentações costumam ser negligenciados quando da implementação desses sistemas. • Complexidade de gerenciamento. Os sistemas de banco de dados apresentam interfaces com muitas tecnologias diferentes e têm um impacto significativo sobre os recursos e a cultura de uma empre- sa. As alterações introduzidas pela adoção do sistema de banco de dados deve ser adequadamente gerenciadas para garantir que ajudem no progresso dos objetivos da empresa. Levando em conta o fato de que os bancos de dados mantêm dados fundamentais da empresa que são acessados a partir de várias fontes, as questões de segurança devem ser uma constante preocupação. • Manutenção do banco de dados atualizado. Para maximizar a eficiência do sistema de banco de dados, deve-se manter o sistema atualizado. Portanto, é necessário fazer atualizações frequentes e aplicar os últimos pacotes e medidas de segurança a todos os componentes. Como a tecnologia dos bancos de dados avança rapidamente, os custos com treinamento de pessoal tendem a ser significativos. • Dependência do fornecedor. Em virtude do alto investimento em tecnologiae treinamento de pessoal, as empresas podem hesitar em trocar os fornecedores de bancos de dados. Por essa razão, é menos provável que estes ofereçam vantagens de preço aos clientes existentes, que ficarão restritos quanto a suas escolhas de componentes de sistemas de banco de dados. • Ciclos frequentes de atualização/substituição. Os fornecedores de SGBDs atualizam seus produtos adicionando novas funcionalidades. Em geral, esses recursos são integrados a novas versões de atualização do software. Algumas dessas versões exigem atualizações de hardware. Não são apenas as atualizações que geram custo, mas também o treinamento dos usuários e administradores para que utilizem e gerenciem adequadamente os novos recursos. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 18 Abstração de Dados e a Arquitetura de Três Níveis O grande objetivo de um sistema de banco de dados é prover aos usuários uma visão abstrata dos dados, dessa forma o sistema omite certos detalhes de como os dados são armazenados e mantidos. No entanto, para que o sistema possa ser utilizado, os dados devem ser buscados de forma eficiente. Este conceito tem direcionado o projeto de estrutura de dados complexas para a representação de dados em um banco de dados. Uma vez que muitos dos usuários de banco de dados não são treinados para computação, a complexidade está escondida desses usuários através de diversos níveis de abstração pelos quais o Banco de Dados pode ser visto, que simplificam a interação do usuário com o sistema. Atualmente, existem várias tendências para arquitetura de Banco de Dados nas mais diversas direções. A arquitetura mais conhecida é a ANSI/SPARC, fundamentada em TRÊS NÍVEIS em que cada um desses níveis corresponde às abstrações dos dados armazenados no banco de dados. A figura seguinte representa esses três níveis de abstração, que são: • Nível de Visões do Usuário (Externo); • Nível Lógico (Conceitual); • Nível Físico (Interno). Figura. Níveis de abstração de dados Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptação Vamos ao detalhamento de cada um desses níveis, muito importante para a prova: Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 19 Nível de Visões do Usuário (Externo) É o nível mais alto de abstração, que descreve partes do banco de dados, de acordo com as necessidades de cada usuário, individualmente. Em outras palavras, descreve o modo pelo qual os dados são vistos pelos usuários do sistema gerenciador de banco de dados. Nível Lógico (Conceitual) Descreve QUAIS dados estão armazenados e seus relacionamentos. Neste nível, o banco de dados é descrito através de estruturas relativamente simples, que podem envolver estruturas complexas no nível físico. Nível Físico (Interno) Nível mais baixo de abstração. Descreve COMO os dados estão realmente armazenados, englobando estruturas complexas de baixo nível que são descritas em detalhe. Independência de Dados A independência de dados pode ser definida como a imunidade das aplicações às alterações feitas, seja no nível físico seja no nível lógico de um banco de dados. O objetivo é alcançar o máximo de independência possível. Pode ser classificada em: • Independência de dados FÍSICA: modifica o esquema físico sem que, com isso, qualquer programa aplicativo precise ser reescrito (As modificações no nível físico são ocasionalmente necessárias para aumento de desempenho). • Independência de dados LÓGICA: modifica o esquema lógico sem que, com isso, qualquer programa aplicativo precise ser reescrito. As modificações no nível conceitual são necessárias quando a estrutura lógica do banco de dados é alterada (por exemplo, a adição de contas de bolsas de mercado num sistema bancário). É a capacidade de MODIFICAR a definição dos esquemas em determinado nível, sem afetar o esquema do nível superior. Existem dois níveis de INDEPENDÊNCIA DOS DADOS: física e lógica! WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 20 Normalmente, modificações no nível físico visam à melhoria de desempenho, como a criação de índices. A independência lógica dos dados é mais difícil de ser alcançada do que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam. Este conceito de independência dos dados é similar em muitos aspectos ao conceito de tipos abstratos de dados em modernas linguagens de programação. Ambos escondem detalhes de implementação do usuário. Isto permite ao usuário concentrar-se na estrutura geral em vez de detalhes de baixo nível de implementação. Dicionário de Dados É uma coleção de metadados que contêm definições e representações de elementos de dados. Dentro do contexto de SGBDs, um dicionário de dados é um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma base de dados, propriamente dita, que entre outras coisas, mantém as seguintes informações: - Definição precisa sobre elementos de dados; - Perfis de usuários, papéis e privilégios; - Descrição de objetos; - Integridade de restrições; - Stored procedures e gatilhos; - Estrutura geral da base de dados; - Informação de verificação; - Alocações de espaço. Um dos benefícios de um dicionário de dados bem preparado é a consistência entre itens de dados através de diferentes tabelas. Por exemplo, diversas tabelas podem conter números de telefones. Utilizando uma definição de um dicionário de dados bem feito, o formato do campo 'número de telefone' definido com "(99)9999-9999" deverá ser obedecido em todas as tabelas que utilizarem esta informação. Os dicionários de dados são gerados, normalmente, separados do Modelo de Dados visto que estes últimos costumam incluir complexos relacionamentos entre elementos de dados. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 21 Esquemas e Instâncias Em qualquer modelo de dados utilizado, é importante distinguir a descrição do banco de dados do banco de dados por si próprio. A descrição de um banco de dados é chamada de esquema de um banco de dados e é especificada durante o projeto do banco de dados. Geralmente, poucas mudanças ocorrem no esquema do banco de dados. Os dados armazenados em um determinado instante do tempo formam um conjunto chamado de instância do banco de dados. A instância altera toda vez que uma alteração no banco de dados é feita. • Esquema = Projeto geral do Banco de Dados -> os esquemas são alterados com pouca frequência. • Instância do Banco de Dados = Conjunto de informações contidas em determinado BD em um dado momento. O Sistema Gerenciador de Banco de Dados (SGBD) é responsável por garantir que toda instância do banco de dados satisfaça ao esquema do banco de dados, respeitando sua estrutura e suas restrições. Projeto de um Banco de Dados A modelagem é uma tarefa de grande importância no desenvolvimentode um sistema e envolve a criação de um modelo para o banco de dados. É nessa etapa que o Analista de Sistemas ou Projetista de Banco de Dados busca informações, para entender o que acontece no mundo real (nosso minimundo), e transformar isso em um modelo que possa ser representado no computador, tornando-se parte do Sistema de Informação. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 22 A seguir, destacamos cada uma das fases relacionadas à modelagem de dados, importantes para a prova: Figura. Projeto de um Banco de Dados Análise e Coleta de Requisitos (Especificação das necessidades do usuário do banco) Busca-se nesta primeira etapa identificar os atores, os documentos, as informações, as regras de negócio, as necessidades e assim sucessivamente. Nesta fase procura-se conhecer o minimundo do seu problema. No final, devemos ter aquele primeiro esboço do modelo, que pode ser um desenho, um documento descrevendo o que foi entendido etc. Projeto Conceitual (ou Modelo Conceitual) É uma representação de alto nível (ou seja, próximo do minimundo) do Modelo de Banco de Dados (BD). Esse é o primeiro modelo que aprenderemos a fazer e interpretar. É a descrição de mais alto nível da estrutura do Banco de Dados, NÃO contendo detalhes de implementação. Nessa etapa não é necessário se preocupar com o tipo de SGBD a ser usado, ou seja, o projeto é independente do tipo de SGBD usado. É o ponto de partida do projeto de Banco de Dados e seu objetivo é representar a semântica da informação, independente de considerações de eficiência. O objetivo é a representação dos requisitos de dados do domínio. Requisitos: clareza (facilidade de compreensão) e exatidão (formal). Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 23 Projeto Lógico (ou Modelo Lógico) No modelo lógico existe a descrição da estrutura do Banco de Dados que pode ser processada pelo SGBD. Este modelo está mais próximo de uma representação no computador. Veremos que nesse ponto o Analista já sabe qual modelo de dados vai usar. A ênfase do modelo lógico está na eficiência de armazenamento, ou seja, em evitar muitas tabelas; tabelas subutilizadas, etc. Futuras alterações no Modelo Lógico devem ser primeiro efetuadas no Modelo Conceitual. Projeto Físico (ou Modelo Físico) É uma representação da implementação do modelo em um SGBD específico. Nesta etapa ocorre o mapeamento do modelo lógico em um esquema físico de acordo com o SGBD específico, ou seja, o modelo criado está diretamente ligado ao SGBD escolhido. Assim, poderíamos a partir de um projeto lógico criar dois projetos físicos, um para ser implementado no SGBD MySQL e outro para o SQL Server, por exemplo. Modelo de Dados Conforme visto, uma das principais características da abordagem de banco de dados é o fato de ele fornecer alguns níveis de abstração de dados, omitindo ao usuário final detalhes de como estes dados são armazenados. Um modelo de dados é um conjunto de conceitos que podem ser utilizados para descrever a estrutura lógica e física de um banco de dados. Por estrutura podemos compreender o tipo dos dados, os relacionamentos e as restrições que podem recair sobre os dados. Os modelos de dados podem ser basicamente de dois tipos: • Alto nível: ou modelo de dados conceitual, que fornece uma visão mais próxima do modo como os usuários visualizam os dados realmente; • Baixo nível: ou modelo de dados lógico ou físico, que fornece uma visão mais detalhada do modo como os dados estão realmente armazenados no computador. A seguir, vamos ao estudo dos modelos principais, que podem ser cobrados na prova, a saber: Modelo E-R (exemplo de modelo conceitual) e Modelo Relacional (exemplo de modelo lógico). WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 24 Modelo Entidade-Relacionamento (Exemplo de Modelo Conceitual) A abordagem entidade-relacionamento é um padrão para a modelagem conceitual. Foi criada em 1976, por Peter Chen, que junto com alguns conceitos apresenta uma notação gráfica para diagramas que tem por características: ser um modelo simples, com poucos conceitos e com representação gráfica de fácil compreensão. O modelo Entidade-Relacionamento (MER ou Modelo ER) é um modelo de dados conceitual de alto nível, cujos conceitos foram projetados para estar o mais próximo possível da visão que o usuário tem dos dados, não se preocupando em representar como estes dados estarão realmente armazenados. O modelo ER é utilizado principalmente durante o processo de projeto de banco de dados, e é representado graficamente pelo Diagrama Entidade Relacionamento (DER). Os principais elementos de um Diagrama de Entidades e Relacionamentos (DER) estão identificados a seguir: • Entidades; • Atributos; • Relacionamentos; • Generalização/Especialização; • Entidade Associativa. • Entidade Fraca. Vamos ao detalhamento de cada um desses elementos. Entidades O objeto básico tratado pelo modelo ER é a entidade, que pode ser definida como um objeto do mundo real, concreto (por exemplo, uma pessoa, um carro, um funcionário, etc.) ou abstrato (um projeto, um curso, uma disciplina, etc.) e que possui existência independente. Figura. Exemplos de Entidades Para se referir a uma entidade em particular é também usado o termo instância (ou ocorrência). Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 25 A entidade é representada no DER (Diagrama Entidade-Relacionamento) como um retângulo contendo o nome da entidade. Exemplos: Figura. Notação de Entidade Principais características dos conjuntos de entidades: • são substantivos e perduram no tempo; • cada elemento de um conjunto de entidades só ocorre uma única vez e a ordenação do conjunto é irrelevante; • representa-se em um conjunto de entidades todos os elementos do mundo real referidos pelo universo de discurso. Ex: ALUNOS = todos os alunos de uma escola. Atributos Os atributos são propriedades particulares que descrevem uma entidade, ou mesmo características de um relacionamento. Por exemplo, uma entidade Carro pode ter como atributos: Marca, Modelo, Cor, Fabricante, Ano de fabricação, Chassi e, assim, sucessivamente. Uma entidade Empregado pode ter como atributos Nome, Setor, Data de Nascimento, RG, Salário etc. Um entidade Filme pode ter como atributos: Título, Ano, Tamanho, TipoFilme, etc. Quando transpostos para o modelo físico os atributos são chamados de colunas (ou campos). A primeira característica importante de um atributo é que ele tem um domínio. O domínio de um atributo é o conjunto de possíveis valores para o mesmo. Em outras palavras, o domínio determina que valores um atributo pode receber. Exemplo: Figura. Atributos de Entidade WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma:04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 26 No exemplo aqui ilustrado, o domínio do atributo Título pode ser o conjunto de todos os textos string de um certo tamanho. O domínio do atributo TipoFilme pode ser o conjunto de strings {drama, comédia, romance...}. Existe um valor especial em Bancos de Dados, conhecido como NULL (nulo), que é a ausência de qualquer valor naquele atributo. Como exemplo, imagine a entidade Carro, que tenha um atributo número de marchas. Para os carros automáticos, esse atributo não se aplica, portanto teria o valor NULL. Vamos às principais classificações de atributos: • Simples (ou atômicos) x Compostos Atributos Simples (ou Atômicos) Atributos Compostos Atributos que não são divisíveis (não é dividido em partes). São chamados também por atributos atômicos. Podem ser divididos em partes menores, ou subpartes, os quais representariam atributos básicos mais simples com significados independentes. Exemplo: CEP. Exemplo: o atributo Endereço pode ser subdividido em número, logradouro, cidade, estado e CEP. • Monovalorados x Multivalorados Atributos Monovalorados Atributos Multivalorados Possuem apenas um valor para uma entidade em particular. Também conhecidos como atributos atômicos. Podem assumir múltiplos valores. Uma única entidade tem diversos valores para este atributo. Esse tipo de atributo é representado por uma elipse com linha dupla. Por exemplo, o atributo CPF de uma entidade Funcionário é monovalorado, pois cada funcionário possui apenas um CPF. Ex1: O atributo telefone é multivalorado, pois um funcionário pode possuir vários telefones ao mesmo tempo ou até mesmo nenhum valor. Ex2: O atributo idioma de uma entidade aluno pode conter os valores inglês e francês. Para outro aluno poderia conter apenas um valor - espanhol. Para um terceiro aluno, poderíamos ter 3 valores para este atributo. • Armazenados x Derivados Atributos Armazenados Atributos Derivados Atributos que realmente pretendemos guardar no Banco de Dados. Podem ser gerados ou calculados a partir de outros atributos. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 27 Por exemplo, o atributo Data de Nascimento de uma entidade Funcionário é armazenado. Caso tivéssemos no nosso modelo um atributo armazenado Data de Nascimento, na entidade Funcionário poderíamos ter um atributo derivado idade, calculada a partir da Data de Nascimento. • Atributo Chave (ou Determinante) Existem alguns atributos cujos valores são distintos para cada elemento do conjunto. Esses atributos são chamados de chaves. Uma chave é um atributo ÚNICO para cada elemento do conjunto, servindo para identificar univocamente um elemento. Em outras palavras ... o atributo chave identifica (determina) cada elemento de uma Entidade de forma única dentro do conjunto-entidade. Como exemplo, o atributo CPF pode ser uma chave para a entidade Funcionário, pois diferencia cada funcionário de forma única dentro do conjunto, já que dois funcionários não podem ter o mesmo CPF. Veja a seguir as formas mais usadas para representação dos atributos no DER. Relacionamentos Um relacionamento pode ser entendido como uma associação entre instâncias de entidades devido a regras de negócio. São relações entre duas ou mais entidades, determinando uma associação entre as mesmas. Por exemplo, imaginem que existe no minimundo de uma Universidade a entidade Aluno e a entidade Disciplina. Essas duas entidades têm um relacionamento, uma vez que os alunos cursam disciplinas. Normalmente, um relacionamento é representado por um losango com um verbo para indicar a ação de relacionamento. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 28 Figura. Notação de Relacionamento Grau de um Relacionamento A primeira característica de um relacionamento é que este tem um grau. E o que é o grau de um relacionamento? É simplesmente o número de entidades que fazem parte desse relacionamento, guarde isso! Inicialmente, entendam também grau do relacionamento como cardinalidade do mesmo, ok? Isso já foi cobrado em prova☺☺☺! Várias são as possibilidades de relacionamentos. Uma entidade pode participar de relacionamentos com quaisquer outras entidades do modelo, inclusive com ela mesma. • Relacionamento Unário ou Auto-relacionamento Quando uma entidade se relaciona com si própria, temos o relacionamento unário, ou auto-relacionamento. Esse é caso do relacionamento ”casamento” da figura seguinte. Figura. Exemplo de auto-relacionamento. No relacionamento de casamento: � Uma ocorrência de pessoa exerce o papel de marido. � Uma ocorrência de pessoa exerce o papel de esposa. Observe que nessa situação surge o conceito de PAPEL que identificará o relacionamento. O PAPEL é a função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento. Em relacionamento entre entidades diferentes não é necessário indicar os papéis das entidades. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 29 • Relacionamentos Binários Com duas entidades, temos relacionamentos binários, como o listado a seguir. • Relacionamentos N-ários Acima de duas entidades, esses relacionamentos normalmente são denominados n-ários (Podemos ter relacionamentos ternários - com três entidades, quaternário – com quatro entidades, e assim por diante). A seguir, tem-se um relacionamento ternário: Outros exemplos de relacionamentos: Bares vendem cervejas e são frequentados por apreciadores de cerveja. • O valor corrente de um conjunto de entidades é o conjunto de entidades que pertence a ele. Exemplo: Conjunto de Entidades BAR={Muito Prazer, Bigode, Churrasqueira, AeroPub...}. • O valor de um relacionamento é o conjunto de pares de entidades que se relacionam, de acordo com o mesmo. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 30 Observe no exemplo seguinte que um relacionamento pode ter atributos descritivos. No exemplo dado, o atributo salário não pertence nem à entidade filme e nem à entidade estrela isoladamente, mas pertence ao relacionamento entre a estrela e o filme. Uma estrela em um filme diferente pode ter outro salário e uma outra estrela do mesmo filme pode ter salário diferente. Exemplo: “Rodrigo Santoro” no filme “As panteras” é uma estrela do filme e seu salário é de $ 500.000,00. A estrela “Lucy Liu” também é estrela do filme e tem salário de $1.000.000,00. Cardinalidade de Relacionamento Para definir o número de ocorrências de uma entidade usamos o conceito de Cardinalidade, que indica quantas ocorrências de uma entidade participam no mínimoe no máximo do relacionamento. Em outras palavras, a cardinalidade de um relacionamento expressa quantas entidades de um grupo se relacionam com uma entidade do outro. • Cardinalidade Mínima Define se o relacionamento entre duas entidades é obrigatório ou não. É o número mínimo de instâncias da entidade associada que devem se relacionar com uma instância da entidade em questão. Usada para indicar o tipo de participação da entidade em um relacionamento. Esta participação pode ser: parcial/opcional ou total/obrigatória. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 31 Parcial ou opcional • Uma ocorrência da entidade pode ou não participar de determinado relacionamento. • É indicado pela cardinalidade = 0 (zero). • A cardinalidade mínima 0 recebe a denominação de associação opcional, uma vez que indica que o relacionamento PODE ou não associar uma ocorrência de entidade a cada ocorrência da outra entidade em questão. Exemplo: • Um Departamento pode ter no mínimo nenhum empregado (0) e, no máximo, vários empregados. • Indica que podem existir departamentos que não tem nenhum empregado relacionado a ele. Total ou Obrigatória • Quando TODAS as ocorrências de uma entidade devem participar de determinado relacionamento. • É indicado pela cardinalidade mínima > 0 (zero) ... geralmente 1. • A cardinalidade mínima 1 recebe a denominação de associação obrigatória, uma vez que indica que o relacionamento DEVE obrigatoriamente associar uma ocorrência de entidade a cada ocorrência da outra entidade em questão. Exemplo: WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 32 • Todos os departamentos devem possuir pelo menos (no mínimo) um empregado alocado. • Indica que não poderá existir no banco um departamento que não tenha nenhum empregado. • Cardinalidade Máxima de uma entidade É o número máximo de instâncias da entidade associada que devem se relacionar com uma instância da entidade em questão. A cardinalidade, então, representa o número máximo de elementos de uma entidade que se relacionam com elementos da outra entidade. Assim, é definida como: - 1:1 (Um para um); - 1:N (Um para muitos); - N:1 (Muitos para um); - N:N (Muitos para muitos) (observe que N é um número arbitrário que representa qualquer valor maior que 1). Note que a cardinalidade vai anotada do outro lado do relacionamento a que se refere! Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 33 A seguir, destacamos alguns exemplos de restrições de Mapeamento (cardinalidade): Um-para-um: uma entidade em A está associada no máximo a uma entidade em B e uma entidade em B está associada no máximo a uma entidade em A. Um-para-muitos: uma entidade em A está associada a qualquer número de entidades em B, enquanto uma entidade em B está associada no máximo a uma entidade em A. Muitos-para-muitos: uma entidade em A está associada a qualquer número de entidades em B, e uma entidade em B está associada a qualquer número de entidades em A. O número de entidades que participam de um tipo relacionamento é irrestrito e armazenam muito mais informações do que diversos relacionamentos binários. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 34 Como ler a cardinalidade nos relacionamentos? Alguns modelos ER mostram somente a cardinalidade máxima, e outros mostram a mínima e a máxima. Observe o modelo seguinte que apresenta a cardinalidade mínima e a máxima. Parcialidade mínima: para um departamento ser criado, devem existir pelo menos 10 empregados alocados! A leitura é feita da seguinte forma: você pega a primeira entidade, esquece a cardinalidade que está do lado dela e segue pelo relacionamento, lê a outra cardinalidade e chega até a próxima entidade. Ou seja, a leitura é assim: UM(A) + ENTIDADE ORIGEM + RELACIONAMENTO + CARDINALIDADE + ENTIDADE DESTINO. Veja o exemplo de relacionamento de ALOCAÇÃO de EMPREGADO no DEPARTAMENTO: 1. Partindo de DEPARTAMENTO para EMPREGADO, lê-se: Um DEPARTAMENTO (Entidade Origem) ALOCA (relacionamento) de no mínimo 10 e no máximo N (cardinalidade) EMPREGADO (Entidade Destino). Ou seja, um DEPARTAMENTO tem que ter no mínimo 10 e no máximo N EMPREGADOS. 2. Partindo de EMPREGADO para DEPARTAMENTO: Um EMPREGADO (Entidade Origem) É ALOCADO EM (relacionamento) no mínimo 1 e no máximo 1 (cardinalidade) DEPARTAMENTO (Entidade Destino). Ou seja, um EMPREGADO só pode ser alocado em 1 e somente 1 (é o mesmo que no mínimo e no máximo 1) DEPARTAMENTO. Por que o relacionamento é necessário? • Quando existem várias possibilidades de relacionamento entre o par das entidades e se deseja representar apenas um. • Quando ocorrer mais de um relacionamento entre o par de entidades. • Para evitar ambiguidade. • Quando houver auto-relacionamento. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 35 Cardinalidade de Atributos Um atributo pode possuir uma cardinalidade, de maneira análoga a uma entidade num relacionamento e essa cardinalidade irá definir quantos valores desse atributo podem estar associados com uma ocorrência da entidade ou relacionamento ao qual ele pertence. Alguns exemplos: • Cardinalidade (1,1): obrigatória, mas não precisa ser representada no diagrama; • Cardinalidade (0,1): opcional; • Cardinalidade (0,n): opcional e multivalorada; Generalização/Especialização É possível incluir nos modelos entidade-relacionamento (MER) conjuntos de entidades com diversas características em comum, diferenciando apenas em algumas características. Nesse caso, pode-se usar o conceito de generalização, em que se cria um conjunto de entidades genérico contendo as características em comum, e de especialização em que se especializam (apresentam diferenças) nas características que são distintas. Assim, existem casos em que as entidades podem ser divididas em categorias, cada qual com seus atributos específicos. Querem um exemplo? Pensem nos clientes de uma empresa. Vamos supor que essa empresa atende clientes pessoa física e pessoa jurídica. No modelo de alto nível, é tudo cliente. Mas se analisarmos com calma, vamos ver que eles têm atributos comuns e atributos distintos. Veja então como fica um DER com clientes em categorias diferentes. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 36 O triângulo representa uma associaçãode especialização/ generalização (Significa que a entidade Cliente foi especializada em duas outras entidades, Pessoa Física e Pessoa Jurídica). A entidade especializada herda as propriedades da entidade genérica. Conforme visto, existem atributos comuns a todos os Clientes, como código e nome. Se o Cliente for Pessoa Física, ele tem também os atributos CPF e sexo. Se for Pessoa Jurídica, ele tem também CGC e tipo. Veja que os atributos das entidades que especializaram Cliente são os atributos herdados de Cliente (Código e Nome) e mais os atributos próprios. Assim, especialização é o processo de definir um conjunto de subclasses de um tipo de entidade. A entidade que foi especializada é denominada superclasse. Já a generalização é o processo contrário, no qual encontramos características comuns de algumas entidades, e criamos uma superclasse para elas. É como se tivéssemos pensando o modelo anterior com as entidades Pessoa Física e Pessoa Jurídica, e, depois, chegássemos à conclusão de que tudo é cliente, o que caberia generalizar essas duas entidades em uma entidade Cliente, que teria os atributos comuns. Entidade Fraca Uma entidade fraca é uma entidade que tem uma relação de dependência com outra entidade. Isto quer dizer que a entidade fraca só existe se existir a entidade com a qual está relacionada. Um exemplo de entidade fraca é a entidade Dependente, na relação com a entidade Funcionário. Cabe destacar que só existe Dependente se existir Funcionário. As entidades fracas são representadas por retângulos duplos, e seus relacionamentos também podem ser representados por losangos duplos. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 37 Em entidades fracas, sempre teremos uma participação total da entidade fraca com sua entidade normal, pois um elemento de uma entidade fraca tem que estar associado a pelo menos um elemento da entidade normal. Chamamos o tipo relacionamento entre a entidade fraca e seu tipo proprietário de relacionamento identificador. Entidade Associativa Por definição um relacionamento é uma associação entre entidades. Na modelagem ER não é prevista a possibilidade de associar uma entidade a um relacionamento, ou de associar dois relacionamentos entre si. Mas, em certas oportunidades, durante a modelagem surgem situações nas quais é desejável permitir uma associação entre uma entidade e um relacionamento, gerando aí uma entidade associativa. Observe como exemplo o modelo ilustrado a seguir: Deseja-se modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. A solução é então transformar o relacionamento entre Médico e Paciente numa Entidade Associativa e relacioná-la com a entidade Medicamento. WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 38 Diagrama Entidade – Relacionamento (DER) O DER é composto por um conjunto de objetos gráficos que visa representar todos os objetos do modelo ER tais como entidades, atributos, atributos chaves, relacionamentos, etc. O DER fornece uma visão lógica do banco de dados, fornecendo um conceito mais generalizado de como estão estruturados os dados de um sistema. Veja a seguir os objetos que costumam aparecer em um DER. TIPO ENTIDADE TIPO ENTIDADE FRACA TIPO RELACIONAMENTO TIPO RELACIONAMENTO IDENTIFICADOR ATRIBUTO ATRIBUTO CHAVE ATRIBUTO MULTI VALORADO ATRIBUTO COMPOSTO ATRIBUTO DERIVADO E1 E2 R E1 E2 R 1 N Participação Parcial de E1 em R, Participação Total de E2 em R Taxa de Cardinalidade 1:N para E1:E2 em R R E1 (min, max) Restrição Estrutural (min,max) na Participação de E1 em R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 39 Recapitulando as Fases da Modelagem de Dados... Vamos relembrar o esquema das fases da modelagem de dados a partir da figura seguinte. Já estudamos a fase de construção do modelo conceitual (no nosso caso, com o uso do MER). Figura. Etapas da Modelagem de Dados Agora que o problema está entendido, iremos transformar nosso MER em Modelo Relacional. Importante destacar que, se na fase anterior entendermos errado as especificações e necessidades do cliente, nosso erro vai se propagar para as próximas fases! Vamos então ao detalhamento do Modelo Relacional, questão certa na sua prova ☺☺☺! Como vocês devem se lembrar, ele é o nosso modelo lógico, e, ao seu término, estaremos mais perto de montar nosso Banco de Dados propriamente dito, faltando somente o modelo físico. Modelo Relacional (Exemplo de Modelo Lógico) � Abordagem de modelagem de dados utilizada nos SGBDs do tipo relacional, criado por Codd em 1970. � Modelagem a nível lógico. � O conceito de tabela é o mais forte no modelo relacional. � Opera com os dados organizados como um conjunto de tabelas. � Os modelos de bancos de dados definem a forma como os dados encontram-se organizados internamente. Dentre os diversos modelos encontrados na literatura, os modelos relacionais se tornaram os mais populares. A finalidade global deste modelo é descrever o dado usando WW W.T HA LIT AC ON CU RS OS .CO M.B R Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 40 um formato tabular padrão (todos os elementos são localizados em tabelas bidimensionais). � As tabelas organizam os dados em linhas e colunas, simplificando o acesso e a manipulação dos dados. � Uma vez colocados os dados no Banco de Dados relacional, pode-se fazer perguntas e manipular dados utilizando as operações da álgebra relacional. Figura. Representação de tabelas do modelo relacional Tuplas Os atributos e seus valores descrevem as instâncias de uma entidade, formando o que chamamos de tuplas ou registros. Figura. Tupla ou registro • Na terminologia do modelo relacional, cada tabela é chamada de relação; uma linha de uma tabela é chamada de tupla; o nome de cada coluna é chamado de atributo; o tipo de dado que descreve cada coluna é chamado de domínio. • As relações tem um grau. O grau da relação é simplesmente o número de atributos que a mesma possui. Tecnologia da Informação p/ SEFAZ-RS – Turma: 04 Foco: Fundatec e Similares Aula 04 – Banco de Dados e Tópicos Relacionados - Prof a . Patrícia Quintão www.pontodosconcursos.com.br | Prof a . Patrícia Lima Quintão 41 Na figura seguinte temos uma relação chamada de Emp. Essa relação é composta por atributos (campos), que descrevem cada elemento da Relação. Os atributos são CódigoEmp, Nome, CódigoDepto, CategFuncional. Cada linha da relação tem valores diferentes para os seus atributos, representando diferentes elementos desse conjunto. Para cada linha damos o nome de tupla. Uma tupla é equivalente a um registro de uma tabela, pois representa um elemento da mesma. No Modelo
Compartilhar