Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos em Banco de Dados Material Teórico Responsável pelo Conteúdo: Prof. Ms. Rodrigo da Rosa Revisão Técnica: Prof. Me. Douglas Almendro Revisão Textual: Profa. Esp. Kelciane da Rocha Campos Sistemas Gerenciadores de Banco de Dados • Sistemas Gerenciadores de Banco de Dados • SGBDRs • Linguagem SQL · O aluno deverá, ao final deste módulo, reconhecer as particularida- des de cada um dos SGBDRs apresentados. Além disso, deverá ser capaz de identificar os pontos fortes e fracos de cada um deles em situações reais. OBJETIVO DE APRENDIZADO Sistemas Gerenciadores de Banco de Dados Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja uma maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como o seu “momento do estudo”. Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo. No material de cada Unidade, há leituras indicadas. Entre elas: artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma Não se esqueça de se alimentar e se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Sistemas Gerenciadores de Banco de Dados Sistemas Gerenciadores de Banco de Dados Quando o assunto é banco de dados, muitas pessoas, inclusive da área de TI, lembram-se de softwares, como, por exemplo, Oracle®, SQL Server®, MySQL®, dentre outros. Conceitualmente este é um erro que se comete, pois os bancos de dados não necessariamente precisam ser informatizados. Pessoas e organizações podem manter banco de dados através de formulários, cadastros físicos, agendas, por exemplo. Entretanto, à medida que elas vão acumulando grandes quantidades de dados, a consulta para a obtenção de informações se torna cada vez mais complicada e demorada. Surgiram, então, os SGBDs (Sistemas Gerenciadores de Banco de Dados, do inglês Data Base Management System (DBMS)), cujo significado é Sistemas Gerenciadores de Banco de Dados e que auxiliam as empresas a terem maior controle de seus dados, independentemente do volume que tenham. Importante! O SGBD é um conjunto de programas que gerenciam a estrutura do banco de dados e controlam o acesso aos dados armazenados. O SGBD pode ser chamado de um software poderoso (ROB; CORONEL, 2011). O SGBD é uma aplicação informatizada (software) que fornece a interface entre os dados que estão armazenados fisicamente no banco de dados e o usuário (SILBERSCHATZ; KORTH; SUDARSHAN, 2012). Um SGBD é uma coleção de dados inter-relacionados e um conjunto de programas para acessar estes dados (DAMAS, 2007). Trocando ideias... Os SGBDs são, desta forma, recursos de software que gerenciam banco de dados e que dão condições para que os usuários interajam com os dados ali armazenados. As vantagens destes sistemas são, em síntese: • a capacidade de gerenciar grandes volumes de dados; • a capacidade de rápida recuperação de informações a partir dos dados armazenados; • a redução de dados redundantes, quando são utilizados padrões relacionais; • a redução de informações inconsistentes: dois endereços residenciais cadastrados para um mesmo cliente, por exemplo; • a segurança, uma vez que são exigidos usuário e senha de acesso para alguém manipular os dados, além do fato de que é possível definir limites de acesso para cada usuário; • o compartilhamento de dados, já que estes sistemas podem ser acessados por vários usuários e aplicações. 8 9 Softwares como Oracle, SQL Server, MySQL, Access, dentre outros, não devem ser chamados de banco de dados. Estes fazem parte do contexto dos SGBDs, pois atuam diretamente na gestão dos dados. Existem SGBDs para as mais diversas plataformas de hardware e também de sistemas operacionais. SGBDRs SGBDRs são Sistemas Gerenciadores de Banco de Dados que atuam de acordo com o conceito de modelos de dados relacionais para controle e acesso aos dados. São utilizados quando se pretende implementar funcionalidades das linguagens de definição de dados (DDL ou Data Definition Language) e de manipulação de dados (DML ou Data Manipulation Language). Estas linguagens lidam com a criação, alteração e remoção de tabelas e inserção, atualização e remoção de registros nestas tabelas. Para que um SGBD seja relacional, deve seguir as 13 regras definidas por Edgar Frank Codd (12 regras mais uma fundamental), em 1985. Foi ele o criador do modelo relacional de dados. As regras são oriundas de seu artigo publicado em 1985 e são elas (ROB e CORONEL, 2011): Regra zero ou fundamental: todas as demais regras baseiam-se na noção de que para que um banco de dados seja considerado relacional, ele deve utilizar seus recursos relacionais para seu próprio gerenciamento. • Regra da informação: toda informação de um banco de dados relacional deve ser representada logicamente como valores de colunas em linhas nas tabelas. • Regra da garantia de acesso: todos os dados de uma tabela (valor atômico) podem ser acessados usando o nome da tabela, o valor da chave primária da linha e o nome da coluna. • Regra do tratamento sistemático de valores nulos: os valores nulos devem ser representados e tratados de modo sistemático, independentemente do tipo de dados. • Regra do catálogo on-line dinâmico com base no modelo relacional: os metadados devem ser armazenados e gerenciados como dados comuns, ou seja, em tabelas no interior do banco de dados. Devem também estar disponíveis aos usuários autorizados, utilizando a linguagem relacional do banco. Metadados são dados que descrevem outros dados, ou seja, informações úteis para identifi car, localizar, compreender e gerenciar dados (IBGE.gov.br, 2017). Exemplo: podemos ter uma tabela que armazena as tabelas criadas por cada usuário do sistema e outra tabela que irá armazenar o nome do criador da tabela, horário da criação, proprietário da tabela, entre outros dados. Ex pl or 9 UNIDADE Sistemas Gerenciadores de Banco de Dados • Regra da sublinguagem ampla de dados: um banco de dados relacional pode suportar várias linguagens, porém deve possuir ao menos uma linguagem declarativa de sintaxe bem definida com suporte a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a gerenciamento de transações. • Regra da atualização de visões: qualquer visão que teoricamente possa ser atualizada deve ser por meio do sistema. Visão em banco de dados, ou View, pode ser considerada uma tabela virtual onde uma consulta é armazenada em um objeto de modo a facilitar o desenvolvimento de uma sintaxe para execução desta consulta. Exemplo: Dada a sintaxe de uma consulta simples: SELECT cod_cli FROM cliente;. Ela é usada para recuperaro código de todos os clientes armazenados na tabela cliente. Podemos encapsular esta consulta em uma view chamada, por exemplo, consulta_codigo. Ao realizarmos a consulta de cliente_codigo (SELECT * FROM cliente_codigo;) o resultado será o mesmo da primeira consulta, pois a primeira sintaxe é que será interpretada. Ex pl or • Regra da inserção, atualização e exclusão de alto nível: o banco de dados deve dar suporte à configuração do nível de inserções, atualizações e exclusões. Em outras palavras, as tarefas de manipulação de dados devem permitir a ocorrência em diversas linhas de uma vez, ao invés de apenas uma por vez. • Regra da independência física dos dados: se houver alterações nos métodos de acesso ou nas estruturas de armazenamento físico, os aplicativos e recursos ad hoc não são afetados logicamente. Ad hoc é uma expressão para designar algo provisório. É uma expressão latina que signi- fica “para esta finalidade”. Um exame ad hoc, por exemplo, é um exame feito para um propósito específico e não permanente. Recursos ad hoc são recursos utilizados para um propósito específico também. Ex pl or • Regra da independência lógica de dados: se houver alterações de estruturas de tabelas que preservam os valores originais dela (inserção de colunas, por exemplo), os aplicativos e recursos ad hoc não são afetados logicamente. • Regra da independência de integridade: todas as restrições de integridade relacional devem ser definidas na linguagem relacional e armazenadas no catálogo do sistema e não em programas/ aplicações. • Regra da independência de distribuição: os usuários e aplicações não são afetados pela localização dos dados, estejam eles centralizados ou distribuí- dos fisicamente. • Regra da não transposição das regras: se o sistema dá suporte a acesso de baixo nível aos dados, não deve haver um modo de negligenciar as regras de integridade do banco de dados. 10 11 Embora estas regras definam muito bem um sistema gerenciador de banco de dados relacional, servem atualmente como referência para os desenvolvedores, pois até mesmo aqueles que estão no topo dos mais utilizados não dão suporte integral a todas elas. O Oracle® é considerado o SGBD mais popular, segundo a db-engines.com (DB-ENGINES.COM, 2017), entidade que coleta dados e fornece informações sobre SGBDs, relacionais ou não, do mercado. A figura abaixo apresenta o ranking de popularidade envolvendo somente SGBDRs. Figura 1. Ranking dos SGBDRs mais populares (DB-ENGINES.COM, 2017) Os dados coletados são baseados em indicadores que dizem respeito às referências em sites de busca mais conhecidos e frequência em debates sobre o assunto SGBDs. A seguir iremos descrever alguns destes sistemas que estão mais no topo do ranking. SGBDRs Comerciais • Oracle: Larry Ellison, Bob Miner e Ed Oates firmaram a sociedade Oracle Corporation em 1977. Os dois primeiros ficaram responsáveis por criar um sistema de linguagem SQL para a CIA (Agência de Inteligência Americana) que deveria funcionar com computadores IBM. Eles chamaram o projeto de Oracle, porém ele não foi bem aceito, sendo considerado até mesmo um desastre. Mesmo assim se empenharam em continuar com a ideia de um banco de dados relacional. A primeira versão do Oracle foi comercializada para computadores IBM em 1984. Ele é escrito em linguagem de programação C é está disponível para sistemas IBM, Microsoft, Linux e outros. 11 UNIDADE Sistemas Gerenciadores de Banco de Dados Como benefícios do SGBDR Oracle, podemos citar: 1. rápida recuperação de falhas no sistema: existem mecanismos que conse- guem fazer reparações no sistema garantindo maior segurança dos dados; 2. uso na WEB: existe a possibilidade de utilização do Oracle em ambientes Web; 3. é compatível com a maioria dos sistemas operacionais mais utilizados; 4. acessa dados dispostos de maneira distribuída; 5. mantém alto grau de confidencialidade dos dados: é considerado um sistema seguro, pois os dados não são acessíveis por qualquer perfil de usuário; 6. trabalha com sistema de backup de dados: é possível garantir que os dados estarão sempre protegidos, uma vez que são realizadas cópias deles sempre que necessário; 7. é capaz de armazenar dados binários como filmes, áudios e imagens; 8. pode ser acessado simultaneamente por diversos usuários sem reduzir seu desempenho (escalabilidade). • Microsoft SQL Server: a primeira versão do SQL Server chegou ao mercado no ano de 1988. No ano anterior foi quando tudo começou. Foi criado por meio de uma parceria entre Microsoft e Sybase, inicialmente para a plataforma OS/2 (sistema operacional da IBM), parceira esta que terminou no ano de 1994, porém a Microsoft continuou tendo os direitos de aperfeiçoar e comercializar este produto. A parceira teve fim quando houve o lançamento da versão para o Windows NT (sistemas operacionais Windows para ambientes corporativos). O MS SQL Server pode ser utilizado de duas maneiras: a primeira é através de linhas de comando (instruções T-SQL) para criação de usuários e de tabelas, permissões para os usuários criados, inserção de dados, dentre outras tarefas; a segunda é através de ambiente gráfico. T-SQL (Transact-SQL) é uma extensão da linguagem SQL para o SQL Server, implementada pela Microsoft. É utilizada para acesso e manipulação de dados por meio de uma aplicação.Ex pl or Abaixo um exemplo de criação de usuários utilizando ambos os métodos (W3II. com, 2017). Usando T-SQL Create login yourloginname with password=’yourpassword’ Podemos notar que esta sintaxe permite a criação de um usuário e a respectiva senha de seu acesso. Um exemplo para o usuário João Rocha com senha p@ ajh39 seria: Create login j.rocha with password=’ p@ajh39’ 12 13 Usando o ambiente gráfi co (SSMS - SQL Server Management Studio) O SSMS (SQL Server Management Studio) é um ambiente integrado para acessar, configurar, gerenciar, administrar e desenvolver todos os componentes do SQL Server. O SSMS combina um amplo grupo de ferramentas gráficas com vários editores de script avançados para fornecer acesso ao SQL Server para desenvolvedores e administradores de todos os níveis de conhecimento (MICROSOFT.COM, 2017). Figura 2. Criação de usuário por meio do SQL Server Management Studio Alguns benefícios do MS SQL Server são: 1. capacidade de gerenciar grandes volumes de dados armazenados no banco de dados; 2. acesso rápido e de alto desempenho aos dados do banco; 3. custo menor que o do Oracle, por exemplo; 4. suporte à linguagem T-SQL para consultas complexas. 5. ambiente gráfico Management Studio. • IBM DB2: A IBM lançou em 1983 o DB2, baseado em SQL/DS para ser trabalhado exclusivamente em mainframes. Muito tempo depois o DB2 começou a ser aplicado também em plataformas de servidores como Unix e Windows e mais adiante em Linux. Hoje em dia existem versões para OS/2, conhecida como DB2/2. 13 UNIDADE Sistemas Gerenciadores de Banco de Dados Importante! Mainframes são computadores de grande porte usados para processamento de elevado volume de dados. São sistemas centrais em grandes empresas e conseguem executar tarefas com alta velocidade. Você Sabia? Figura 3. Mainframe IBM Fonte: iStock/Getty Images O IBM DB2 permite que sua administração seja em linhas de comando quanto em ambiente gráfico, este último uma multiplataforma Java. Abaixo são apresentadas duas formas de criação de tabelas no BD2 (modo comandos e modo gráfico): Figura 4. Criando tabelas em modo texto (comandos) 14 15 Neste caso, é necessário conhecimento técnico para estruturar o texto com o máximo de detalhes possível. O exemplo mostra a construção de duas tabelas (ta- bela1 e tabela2) que possuem as mesmas características, ou seja, possuem duas co- lunas de mesmo nome e estas possuem, respectivamente, o mesmo tipo de dados. Figura 5. Ambiente gráfi co do DB2 para criação de tabelas Podemos notar na figura anterior que o ambiente gráfico para a criação de tabelas do DB2 permite a indicaçãodos nomes das colunas, dos tipos de cada coluna e ainda definir outros parâmetros, como a chave primária, se a coluna poderá ou não ter valores nulos e a quantidade máxima de caracteres que uma coluna poderá ter. Abaixo alguns benefícios do IBM DB2: 1. utiliza logs para armazenar dados, ainda que antigos, para facilitar a recuperação do banco de dados em algum ponto passado; 2. possui alta confiabilidade na questão de proteção dos dados; 3. permite armazenar dados em computadores de diversas características, desde os mais simples até os mais robustos; 4. possui certa facilidade de instalação e de uso; 5. inclui tecnologias compatíveis com a Web; 6. é capaz de armazenar diversos tipos de dados, como, por exemplo, texto, áudio, vídeo e imagem. Para efeitos de comparação de estrutura SQL para criação de tabelas envolvendo estes três grandes sistemas gerenciadores de banco de dados, vamos apresentar cada uma delas abaixo, escritas por meio de texto: 15 UNIDADE Sistemas Gerenciadores de Banco de Dados Tabela 1. Comparação entre estruturas de criação de tabelas em três grandes SBGDRs ORACLE MS SQL SERVER IBM DB2 CREATE TABLE tabela1 ( tab_cod integer, tab_descricao varchar2(20) ); CREATE TABLE tabela1 ( tab_cod int, tab_descricao Nvarchar(20) ); CREATE TABLE DA. tabela1 ( tab_cod integer, tab_descricao varchar(20) ); Perceba que as estruturas são basicamente as mesmas. Isso porque todos os SGBDs que são relacionais executam comandos na linguagem SQL (Structured Query Language). Linguagem SQL A linguagem SQL (Structured Query Language ou Linguagem de Consulta Estruturada) é uma linguagem padrão de banco de dados relacional que permite a manipulação de dados por meio de um SGBDR. Com ela é possível realizar diversas tarefas, como, por exemplo, gerenciar usuários, criar tabelas, inserir e atualizar dados nas tabelas, consultar informações, controlar transações, entre outros. Esta linguagem é composta por quatro outras linguagens que possuem funções específicas e são utilizadas dependendo da tarefa que se precisa executar. São elas: • Linguagem de Definição de Dados (DDL – Data Definition Language): inclui comandos para criação, alteração ou remoção de objetos de banco de dados. Alguns exemplos destes comandos são: 1. CREATE: utilizado para criação de objetos no banco de dados. CREATE TABLE, para criação de tabelas ou CREATE VIEW, para criação de visões, são exemplos; CREATE TABLE tabela1 ( tab_cod integer, tab_descricao varchar2(20) ); Neste exemplo foi criada uma tabela chamada “tabela1” com duas colunas, tab_cod e tab_descricao. 2. ALTER: utilizado para alteração de estruturas de objetos do banco de dados. ALTER TABLE, para alterar a estrutura de uma tabela é um exemplo; ALTER TABLE tabela1 MODIFY (tab_descricao varchar2(3)); 16 17 Neste exemplo a coluna tab_descricao da tabela1 teve seu tipo de dados modificado, de varchar2(20) para varchar2(30). 3. DROP: utilizado para remover objetos do banco de dados. Por exemplo, o comando DROP TABLE remove uma tabela e o comando DROP VIEW remove uma visão. DROP TABLE tabela1; Este comando elimina a tabela1 do banco de dados. • Linguagem de Manipulação de Dados (DML – Data Manipulation Language): inclui comandos para inserção, atualização, remoção e consulta de dados em banco de dados. Alguns exemplos destes comandos são: 1. INSERT: utilizado para inserção de dados (linhas) em tabelas do banco de dados; INSERT INTO tabela1 VALUES (198, ‘bola de futebol’); Este comando insere uma linha em tabela1. “198” é um dado da coluna tab_cod e ‘bola de futebol’ é dado da coluna tab_descricao. 2. UPDATE: utilizado para atualizar dados de uma ou mais linhas de tabelas do banco de dados; UPDATE tabela1 SET tab_descricao = ‘bola de basquete’ WHERE tab_cod = 198; Neste exemplo, o dado “bola de futebol” é substituído por “bola de basquete” na tabela1, na linha onde tab_cod é igual a 198. 3. DELETE: utilizado para remover linhas das tabelas do banco de dados; DELETE FROM tabela1 WHERE tab_cod = 198; Neste caso a linha onde a coluna tab_cod possui o dado 198 é removida da tabela1. 4. SELECT: utilizado para realizar as consultas em tabelas do banco de dados. SELECT * FROM tabela1; Este comando de recuperação apresenta os dados contidos na tabela1. • Linguagem de Controle de Dados (DCL – Data Control Language): esta linguagem está disponível para aqueles que administram os bancos de dados. Inclui comandos de controle de acesso aos dados. Alguns exemplos destes comandos são: 1. GRANT: utilizado para autorizar usuários a realizarem tarefas no banco de dados. Por exemplo, um usuário pode consultar dados de uma tabela, mas não pode alterar qualquer dado dela. A autorização de consulta é feita por meio deste comando; GRANT Insert, Update, Select ON tabela1TO j.rocha; 17 UNIDADE Sistemas Gerenciadores de Banco de Dados Este exemplo concede permissão de inserção, atualização e consulta de dados na tabela1 para o usuário j.rocha. 2. REVOKE: utilizado para restringir ou remover a permissão de um usuário realizar uma tarefa no banco de dados. Para o exemplo anterior, a restrição de permissão de alterar um dado na tabela é feita por meio deste comando. REVOKE ALL PRIVILEGES FROM j.rocha; Este exemplo serve para remoção dos privilégios do usuário j.rocha. • Linguagem de Transação de Dados (DTL – Data Transaction Language): inclui comandos para efetivação e cancelamento de transações em banco de dados. Alguns exemplos destes comandos são: 1. COMMIT: utilizado para efetivar as alterações realizadas no banco de dados. Por exemplo, no momento em que dados são inseridos no banco de dados é necessário que este comando seja executado, pois caso não seja e o SGBD precise ser reiniciado por um erro, os dados não estarão armazenados ali. 2. ROLLBACK: utilizado para cancelar as alterações realizadas no banco de dados. Por exemplo, se algum registro de uma tabela foi excluído por enga- no, é possível executar este comando para que esta ocorrência seja desfeita. 18 19 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Sites Metadados https://goo.gl/jf7XtT Documentação Oracle https://goo.gl/qMpVDc SQL Server 2016 https://goo.gl/Px6BkZ Livros Is your DBMS really relational? CODD, E. Is your DBMS really relational? Computerworld, October 21, 1985. 19 UNIDADE Sistemas Gerenciadores de Banco de Dados Referências DAMAS, Luís. SQL – Structured Query Language. 6ª ed. Rio de Janeiro: LTC, 2007. 384 p. DB-ENGINES, 2017. Microsoft SQL Server is the DBMS of the year. Dispo- nível em: <http://db-engines.com/en/ranking/relational+dbms>. Acesso em: 01 jan. 2018. MICROSOFT. Baixar o SQL Server Management Studio (SSMS). Disponível em: <https://msdn.microsoft.com/pt-BR/library/mt238290.aspx>. Acesso em: 01 jan. 2018. ROB, Peter; CORONEL, Carlos. Sistemas de banco de dados – projeto, imple- mentação e administração. 8ª ed. São Paulo: Cengage Learning, 2011. 711 p. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. 6ª ed. São Paulo: Elsevier, 2012. 904 p. W3II. MS SQL Server: guia rápido. Disponível em <http://www.w3ii.com/pt/ ms_sql_server/ms_sql_server_quick_guide.html>. Acesso em: 01 jan. 2018. 20
Compartilhar