Baixe o app para aproveitar ainda mais
Prévia do material em texto
alfaconcursos.com.br MUDE SUA VIDA! 1 SUMÁRIO Banco de Dados ........................................................ 2 Arquitetura de Três-Esquemas ............................. 2 Independência de Dados .................................. 2 Propriedades das Transações em Bancos de Dados .................................................................... 2 Sistema Gerenciador de Banco de Dados (SGBD) .... 3 Características de um SGBD ................................. 3 Linguagens dos SGBDs .......................................... 4 Interfaces do SGBD ............................................... 4 Arquiteturas de Banco de Dados .............................. 4 Exercícios .................................................................. 6 Gabarito ................................................................ 6 Conceitos Banco de Dados ....................................... 6 Esquema ............................................................... 6 Instância ............................................................... 6 Entidade ................................................................ 6 Relacionamento .................................................... 6 Atributos ............................................................... 6 Tupla ..................................................................... 7 Chaves................................................................... 7 https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 2 BANCO DE DADOS ARQUITETURA DE TRÊS- ESQUEMAS arquitetura dos três-esquemas, conforme Figura 1, é empregada, ela apresenta 3 níveis: Interno, Conceitual e Externo. O nível interno descreve como os dados estão armazenados fisicamente no banco de dados, assim utiliza o modelo físico de descrição que é bastante detalhado. O nível conceitual neste nível utiliza-se o modelo conceitual, nesse cenário o objetivo são as descrições de forma mais próximas ao entendimento dos usuários, por isso ele se concentra em descrever as entidades, tipos de dados, conexões (relações), operações de usuários e restrições. já o nível externo se preocupa com a parte que cada usuário precisa, ou tem a necessidade, de ver, ocultando deste o resto das informações (dados) que não precisa ou que não deve acessar. Neste nível temos as Views (visões) de um banco de dados. Figura 1: A arquitetura de três-esquemas [1] INDEPENDÊNCIA DE DADOS ➢ Independência de dados lógica: “é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas” [2]. ➢ Independência física de dados: “é a capacidade de mudar o esquema interno sem ter de alterar o esquema conceitual” [2]. PROPRIEDADES DAS TRANSAÇÕES EM BANCOS DE DADOS Existem algumas propriedades que garantem que transações em um Banco de Dados são processadas de forma correta; portanto, garantindo a confiabilidade: ➢ Atomicidade: indivisível (todas as operações são executadas ou nada acontece); ➢ Consistência: transações não podem quebrar as regras do BD (manter consistência); ➢ Isolamento: transações simultâneas não sofrem interferências umas das outras; ➢ Durabilidade: efeitos de uma transação de sucesso são persistidos no BD (mesmo em presença de falhas). mecanismos para controlar transações no banco de dados. No exemplo a seguir veremos como os comandos COMMIT e ROLLBACK são utilizados. Exemplo: transferir R$ 500,00 da conta corrente para conta poupança. Durante a transferência, expirou bloqueio ou o servidor desligou. Etapas: 1. Inicia 2. Invoca instruções SQL 3. Se algo errado, ROLLBACK (desfaz os comandos, abortando a operação como um todo). Se não, COMMIT (efetiva a transação – operações executadas no banco de dados). Veja a imagem a seguir que ilustra como a transação do exemplo acima é implementada com comandos SQL. https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 3 Sistema Gerenciador de Banco de Dados (SGBD) Um SGBD é um conjunto de programas que possibilita ao usuário manipular e gerenciar uma base de dados, ou seja, uma coleção de dados que estão relacionados entre si. Um SGBD pode ser definido como “um pacote de software, um sistema de finalidade genérica para gerenciar os Bancos de Dados” (Caiut, 2015) Em via de regra um SGBD deve permitir definir um banco de dados, construir o banco e manipular as informações. Um Sistema de Gerenciamento de banco de dados (SGBD) é um software que incorpora e facilita as funções de definição, recuperação e alteração de dados em um Banco de Dados. “Tem a função de proteção (contra falhas de hardware e software) e de segurança (acessos não autorizados ou maliciosos) dos dados nele armazenados, ao mesmo tempo em que permite o compartilhamento desses dados entre vários usuários e aplicações” (Cayres, 2015). Organização Lógica do Banco de Dados (instâncias) SGBD Camada Física de armazenamento dos dados (discos, storage, métodos de acesso, clustering de dados etc.) Exemplos: PostgreSQL, MySQL, OracleDB, MS SQLServer, MS Access, FireBird, etc. CARACTERÍSTICAS DE UM SGBD Controle de Redundância: um SGBD deve ser capaz de gerenciar os arquivos de modo a evitar a duplicação de dados que leva a desperdício de espaço de armazenamento como também a possível inconsistência uma vez que apenas um dos arquivos possa ser alterado enquanto o outro não. Compartilhamento de Dados: também é responsabilidade do gerenciador controla o acesso simultâneo aos dados de modo que as alterações sejam devidamente salvas sem que haja duplicidade. Normalmente um arquivo pode ser lido por vários usuários ao mesmo tempo, porém somente um pode salvar por vez. Restrições de Acesso Multiusuário: os SGBDs devem ter a capacidade de controlar o acesso de forma hierárquica aos dados, de modo que impeça o acesso por pessoas sem a devida autorização. Fornecimentos de Múltiplas Interfaces: os programas atendem as necessidades dos usuários, logo alguns precisam de interfaces mais simples como a de um formulário, outros tem conhecimento mais aprofundado e desenvolvem programas, como também oferecem interfaces para consultas diretas. Representação de Relacionamento Complexo entre os Dados: as bases de dados muitas vezes possuem sentido por meio de seus inter-relacionamento de dados, logo os SGBDs devem oferecem estruturas que permitam organizar os dados relacionando-os da maneira mais eficiente. https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 4 Reforçar Restrições de Integridade: a integridade preza por manter os dados fidedignos as suas definições, como definir um atributo do tipo numérico, nesse caso o SGBD deve viabilizar a restrição para não possa ser inserido um texto nesse campo. Fazer Backup e Restauração: é comum a ocorrência de falhas nos processos de comunicação e armazenamento, logo as ferramentas devem oferecem o mínimo de recursos para regredir ao último estado estável dos dados. LINGUAGENS DOS SGBDS A linguagem SQL é uma só, porém ela é dividida em tipos de acordo com a funcionalidade dos comandos. Os tipos da linguagem SQL são: ➢ DDL - Data Definition Language - Linguagem de Definição de Dados. São os comandos que interagem com os objetos do banco. ➢ São comandos DDL: CREATE, ALTER e DROP ➢ DML - Data Manipulation Language - Linguagem de Manipulação de Dados. São os comandos que interagem com os dados dentro das tabelas. ➢ São comandos DML: INSERT, DELETE e UPDATE ➢ DQL - Data Query Language - Linguagem de Consulta de dados. São os comandos de consulta. ➢ São comandos DQL: SELECT (é o comando de consulta) Aqui cabe um parêntese. Em algumas bibliografias o SELECT fica na DML em outros tem esse grupo próprio. • DTL - Data Transaction Language - Linguagem de Transação de Dados.São os comandos para controle de transação. o São comandos DTL: BEGIN TRANSACTION, COMMIT E ROLLBACK • DCL - Data Control Language - Linguagem de Controle de Dados. São os comandos para controlar a parte de segurança do banco de dados. o São comandos DCL: GRANT, REVOKE E DENY. • SDL Linguagem de Definição de Armazenamento (storage) é usada para especificar o esquema interno. • VDL Linguagem de Definição de Visões, embora na maioria dos SGBDs a linguagem DDL acaba sendo usada para definir o conceitual e o externo; INTERFACES DO SGBD ➢ Baseadas em Menus para os Clientes Web ou Navegação: uso de menus de seleção de opções, com isso o usuário isenta-se de conhecer comandos específicos de consulta; ➢ Baseadas em Formulários: utilização de formulários a serem preenchidos pelo usuário de modo que o SGBD complete os campos ou dados faltantes, para a pesquisa; ➢ Gráficas para Usuários: apresenta diagramas para usuário realizar a busca; ➢ Linguagem Natural: uso de expressões idiomáticas para realizar a pesquisa no banco de dados; ➢ Usuários Parametrizáveis: utilizado em ambientes limitados, em que o usuário se utiliza de poucos comandos com frequência para realizar pesquisa no banco de dados, como fixar comandos de pesquisa a combinações de atalhos de teclado; ➢ Para o DBA: é a interface de uso específico para a criação e gerenciamento de um banco de dados. Arquiteturas de Banco de Dados A arquitetura de um banco de dados depende da arquitetura computacional usada, https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 5 se baseada em mainframes, modelo cliente/servidor ou paralela. O sistema pode ainda ser dividido em duas categorias principais: ➢ Front-end: (interface de usuário) uma interface gráfica familiar mais simplificada para o usuário como formulários, tabelas, geradores de relatórios, por uso de linguagens de consulta SQL. ➢ Back-end: (servidor) responsável por interpretar a linguagem SQL e executar a consulta, bem como gerenciar o acesso e controle de recuperação e execução simultânea (concorrência). ➢ Deve-se avaliar o desempenho do sistema de banco de dados por meio de: ➢ Throughput: que descreve a quantidade de tarefas por período de tempo; ➢ Tempo de resposta: ou tempo de execução de cada tarefa. Os principais sistemas são descritos a seguir. 1.1 Sistemas Centralizados Baseada no uso de mainframes, o que gera custo elevado para a manutenção do supercomputador. Nesse modelo o mainframe concentra os dados que são acessados pelos terminais. Vantagens: ➢ Um único host fornece alto grau de segurança, concorrência e controle de cópias de segurança e recuperação. ➢ Não há necessidade de um diretório distribuído, já que todos os dados estão localizados em um único host. ➢ Não existe a necessidade de junções distribuídas, já que todos os dados estão em um único host. Desvantagens: ➢ Todos os acessos aos dados realizados por outro que não seja o host onde o banco de dados está, gera alto custo de comunicação. ➢ O host em que o banco de dados está localizado pode criar um “gargalo”, dependendo da quantidade de acessos simultâneos. ➢ Podem acontecer problemas de disponibilidade dos dados, se o host onde os dados estão armazenados sair do ar. 1.2 Local O modelo local é empregado no próprio computador de uso pessoal. Geralmente é usado para aplicações que funcionam isoladamente de modo que o PC funciona como hospedeiro do banco como terminal de acesso. Esse modelo é mais simples, pois isenta-se da necessidade de sincronização e controle de acesso simultâneo. 1.3 Cliente/Servidor Formato popularmente usado e que usa amplamente o formato front-end e back-end. Apresenta a necessidade de confirmações de gravação após a realização correta das ações (commit), possibilidade de retroceder em caso de erros (rollback), funções de consulta (store procedures) e execução automatizada de tarefas de acordo com gatilhos (triggers). Neste modelo ao invés de terminais usa-se como clientes os computadores pessoais. https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 6 1.4 Distribuídos As informações (banco de dados) são armazenadas em computadores diferentes que interagem por meio da rede. A exemplo de sites que quando um servidor apresenta problema demais mantem-se em funcionamento, até mesmo podendo substituir o servidor com problema (nesse caso necessita-se da replicação dos dados). A desvantagem desse formato é a dificuldade em desenvolver e sistemas que mantenham a simetria e precisão das informações. 1.5 Paralelos Os sistemas paralelos são usados em limitadas situações, pois é necessário que o conjunto de dados possa ser dividido em partes para que sejam processadas simultaneamente por computadores diferentes, ou seja, cada computador executa uma parte da informação. Nesse método pode haver compartilhamento da memória ou disco ou mesmo sem realizar o compartilhamento do hardware. Exercícios 1) Quanto aos níveis de abstração de bancos de dados, é correto afirmar que: (A) no nível lógico os usuários do computador vêem um conjunto de programas de aplicação que ocultam detalhes dos tipos de dados. (B) no nível view os usuários do computador vêem um conjunto de programas de aplicação e os detalhes dos tipos de dados. (C) no nível lógico, não há descrição de cada tipo de registro. (D) no nível view, cada tipo de registro é descrito por um tipo de informação, como um segmento de código anterior e a relação desses tipos de registro também é definida. (E) no nível view os usuários do computador vêem um conjunto de programas de aplicação que ocultam detalhes dos tipos de dados. GABARITO 1) E. Conceitos Banco de Dados Nesta seção vamos conhecer os termos usados em bancos de dados e alguns conceitos de projeto. ESQUEMA Um esquema é o projeto do banco de dados, composto por suas entidades e relacionamentos, indicando a organização dos dados, um esquema consiste na descrição de um banco de dados. INSTÂNCIA É um esquema populado com dados visto em determinado instante. ENTIDADE Também muito citada como tabela é uma estrutura composta por colunas chamadas atributos, e linhas chamadas tuplas. Ela é a representação de uma variedade de objetos com suas caraterísticas. RELACIONAMENTO É uma associação entre entidades que aponta sua interligação, exemplo: uma pessoa trabalha em um departamento, são entidades departamento e pessoa, a definição trabalha em é um relacionamento entre as entidades. Grau de relacionamento é o número de entidades que participam do relacionamento. ATRIBUTOS https://www.alfaconcursos.com.br/ alfaconcursos.com.br MUDE SUA VIDA! 7 Os atributos são os dados armazenados acerca de uma informação e que são definidos com domínios específicos, ou seja, os atributos são definidos com uma descrição (o que ele armazena) e com o domínio (tipo de informação: valor inteiro, real, texto, palavra, caractere, booleano - aqui citados a fim de entendimento na aplicação prática recebem outros nomes). Os atributos podem ser classificados em: Simples ou compostos: Os atributos simples são aqueles que são únicos e não possuem subdivisão. Já os compostos podem ser divididos como, endereço, pode ser estruturado em logradouro, número, bairro, CEP e complemento. Monovalorados ou multivalorados: Um exemplo de um atributo monovalorado poderia ser o atributo CPF, o qual teria associado apenas um número de CPF. Pode acontecer, no entanto, que uma determinada instância possua um conjunto de valores para uma única entidade. Por exemplo, o atributo filho, da entidade pessoa, que pode ter um, nenhum ou vários filhos cadastrados. Nulo: um atributo é nulo quando pode ser vazio, como o nome do filho caso a pessoa não possua filhos, aocontrário do campo CPF que por ser chave jamais poderá ser nulo. Derivado: ou calculado, é o atributo que pode ser obtido por intermédio de consultas como a idade de uma pessoa, que por decisões de projeto pode vir a ser guardada, sendo que poderia ser calculada com base na data de nascimento. Ao definir um relacionamento entre duas entidades é necessário definir qual é essa relação bem como a sua cardinalidade. A cardinalidade define se uma entidade pode ter apenas uma instancia de outra entidade atrelada a ela (um pra um) ou se ela pode ter várias instâncias (um pra muitos), também é possível que várias instâncias de uma entidade sejam relacionadas com uma instância de outra entidade, que por sua vez pode ser ligada a várias outras instâncias da primeira entidade (muitos pra muitos). Exemplos: Um pra muitos: um departamento de uma empresa pode ter vários empregados, mas um empregado só pode estar em um departamento da empresa. Muitos pra muitos: podemos pegar o exemplo similar ao anterior, mas dessa vez um empregado pode trabalhar em dois departamentos diferentes ao mesmo tempo. TUPLA Uma tupla é uma linha de uma tabela, ou seja, são os dados de uma instância de uma entidade que possui atributos. CHAVES Uma chave é um valor usado para identificar/selecionar uma tupla dentre as demais. https://www.alfaconcursos.com.br/
Compartilhar