UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO ANÁLISE DE MÉTODOS DE CONSULTA POR SIMILARIDADE DE TEXTOS EM BANCO DE DADOS Área de Banco de Dados por Rodrigo Andreatta da Costa Julia Marques Carvalho da Silva, MSc Orientadora Itajaí (SC), dezembro de 2008

2 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO ANÁLISE DE MÉTODOS DE CONSULTA POR SIMILARIDADE DE TEXTOS EM BANCO DE DADOS Área de Banco de Dados por Rodrigo Andreatta da Costa Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientadora: Julia Marques C. da Silva, MSc Itajaí (SC), dezembro de 2008

3 SUMÁRIO LISTA DE ABREVIATURAS...v LISTA DE FIGURAS...vi LISTA DE TABELAS...ix RESUMO...x ABSTRACT...xi 1 INTRODUÇÃO PROBLEMATIZAÇÃO Formulação do Problema Solução Proposta OBJETIVOS Objetivo Geral Objetivos Específicos METODOLOGIA ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA BANCO DE DADOS Linguagem SQL Algoritmos para Operações de Consulta Funções para Tratamento de Strings ALGORITMOS DE BUSCA Algoritmo da Força Bruta Algoritmo de Knuth-Morris-Pratt Algoritmo de Boyer-Moore Algoritmo de Rabin-Karp Algoritmo de Levenshtein Algoritmo de Smith Waterman Algoritmo de Stochastic Model Algoritmo de Jaro Metric Algoritmo de Hamming Distance Algoritmo de Soundex Distance Metric Algoritmo de Convington s Distance Function Considerações sobre os Algoritmos de Similaridade Analisados APLICAÇÕES COM ALGORITMOS DE SIMILARIDADE Similarity Retrivel Engine XSimilarity Sistema de Reconhecimento de Imagens Similares Considerações sobre os aplicativos similares ii

4 2.4 SISTEMA DE AVALIAÇÃO DA PESQUISA INSTITUCIONAL PROJETO Hamming Distance Levenshtein KMP Jaro Rabin-Karp Algoritmo Proposto TESTES RESULTADOS OBTIDOS ANÁLISE DA HIPÓTESE Hipótese Hipótese Hipótese Hipótese Hipótese Hipótese Conclusões CONCLUSÃO...75 REFERÊNCIAS BIBLIOGRÁFICAS...77 A Cenários de testes...80 A.1 CENÁRIO 1: USUÁRIO COM POUCAS PRODUÇÕES A.1.1 Cenário 1a: Participação em Bancas A.1.2 Cenário 1b: Projeto de Pesquisa A.1.3 Cenário 1c: Artigo em Evento Nacional A.1.4 Cenário 1d: Orientação de TCC A.1.5 Cenário 1e: Projeto de Pesquisa A.1.6 Cenário 1f: Projeto de Pesquisa A.1.7 Cenário 1g: Participação em Banca A.1.8 Cenário 1h: Participação em Banca A.1.9 Cenário 1i: Participação em banca A.2 CENÁRIO 2 USUÁRIO COM MAIS DE 1000 PRODUÇÕES A.2.1 Cenário 2a: Participação em Banca A.2.2 Cenário 2b: Artigo em Evento Internacional A.2.3 Cenário 2c: Artigo em Evento Nacional A.2.4 Cenário 2d: Curso de Curta Duração A.2.5 Cenário 2e: Participação em Banca A.2.6 Cenário 2f: Artigo em Evento Internacional A.2.7 Cenário 2g: Resumo em Evento Nacionais A.2.8 Cenário 2h: Artigo em Evento Internacional A.2.9 Cenário 2i: Comissão de Avaliação de Cursos iii

5 A.2.10 Cenário 2j: Artigo em Evento Nacional iv

6 LISTA DE ABREVIATURAS BD CCIFM CGI CNPq CPF DCL DDL DLL DML DNA DQL HCFMRP KMP ODBC PACS PL/SQL PROPPEC SAPI SIREN SGBD SQL SRIS TCC UNIVALI XML Banco de Dados Centro de Ciências das Imagens e Física Médica Common Gateway Interface Conselho Nacional de Desenvolvimento Científico e Tecnológico Cadastro de Pessoa Física Data Control Language Data Definition Language Dynamic-link library Data Manipulation Language Deoxyribonucleic acid Data Query Language Hospital das Clínicas da Faculdade de Medicina de Ribeirão Preto Knuth-Morris-Pratt Open Data Base Connectivity Picture Archiving and Communication System Procedural Language/Structured Query Language Pró-reitoria de Pesquisa, Pós-graduação, Extensão e Cultura Sistema de Avaliação da Produção Institucional Similarity Retrivel Engine Sistema Gerenciador de Banco de Dados Structured Query Language Sistema de Reconhecimento de Imagens Similares Trabalho de Conclusão de Curso Universidade do Vale do Itajaí Extensible Markup Language v

7 LISTA DE FIGURAS Figura 1. Exemplo de banco de dados relacional...8 Figura 2. Sintaxe do comando de consulta...10 Figura 3. Exemplo de uma consulta SQL...12 Figura 4. Exemplo de uma consulta SQL com operador LIKE...12 Figura 5. Tipos de alinhamentos de strings...15 Figura 6. Exemplo de funcionamento do algoritmo de força bruta...16 Figura 7. Exemplo da fórmula para calculo da próxima posição a ser utilizada na comparação do algoritmo KMP...18 Figura 8. Valores de d(k) para o exemplo da Figura Figura 9. Algoritmo para determinação do D(k)...19 Figura 10. Resolução do mesmo exemplo mostrado na Figura 6, mas com a utilização do algoritmo de KMP...20 Figura 11. Explicação da heurística do bom sufixo e do mau caractere...21 Figura 12. Exemplo da utilização da heurística do mau caractere baseado na Figura Figura 13. Exemplo da utilização da heurística do bom sufixo baseado na Figura Figura 14. Exemplo de applet comparando as palavras a costa e rodrigo a costa...23 Figura 15. Resultado da pesquisa do algoritmo Boyer-Moore...24 Figura 16. Exemplo do algoritmo de Rabin Karp Figura 17. Definição da função de Levenshtein...27 Figura 18. Exemplo de applet comparando as palavras andreata e andreatta...28 Figura 19. Definição da função de Smith Waterman...29 Figura 20. Exemplo de comparação usando a função Smith Waterman...29 Figura 21. Métrica do algoritmo de Jaro...30 Figura 22. Exemplo da métrica de Jaro...31 Figura 23. Exemplo de cadeia de bits...31 Figura 24. Atribuição de valores do algoritmo de Convington s Distance...33 Figura 25. Exemplo de execução de consultas por similaridade sobre a tabela Exame, k-nn query usando a métrica textura...36 Figura 26. Exemplo da execução de consultas por similaridade sobre a tabela automóveis Figura 27. Casos de uso apresentando as principais funcionalidades do sistema...38 Figura 28. Interface do Xsimilarity...39 Figura 29. Exemplo arquivo XML...40 Figura 30. Exemplo de uma consulta do XSimilarity...41 Figura 31. Visualização das imagens médicas do SRIS...42 Figura 32. Tela de resultados de consultas por similaridade do SRIS...43 Figura 33. Tela do SAPI...46 Figura 34. Referências das produções...47 Figura 35. Detalhes das produções...48 Figura 36. Diagrama entidade-relacionamento do SAPI...49 Figura 37. Código PHP do SAPI utilizado para efetuar a comparação...51 Figura 38. Sintaxe das funções de similaridade produzidas...52 Figura 39. Comparação entre as strings ABACATE e ABATE...53 Figura 40. Implementação da função Hamming Distance Figura 41. Resultado da comparação entre as palavras ABACATE e ABATE utilizando a função Hamming Distance...54 vi

8 Figura 42. Tabela gerada na comparação entre as palavras ABACATE e ABATE utilizando a função Hamming Distance Figura 43. Trecho principal do código da função Levenshtein...55 Figura 44. Resultado da comparação entre as palavras ABACATE e ABATE utilizando a função Levenshtein Figura 45. Primeiro passo do exemplo do algoritmo de Levenshtein...56 Figura 46. Primeira comparação da segunda iteração do exemplo do algoritmo de Levenshtein Figura 47. Segunda comparação da segunda iteração do exemplo do algoritmo de Levenshtein Figura 48. Terceira comparação da segunda iteração do exemplo do algoritmo de Levenshtein...58 Figura 49. Quarta comparação da segunda iteração do exemplo do algoritmo de Levenshtein Figura 50. Quinta comparação da segunda iteração do exemplo do algoritmo de Levenshtein Figura 51. Resultado final da tabela de comparações do exemplo do algoritmo de Levenshtein...60 Figura 52. Implementação da função KMP Figura 53. Resultado da comparação entre as strings ABACATE e ABATE utilizando o algoritmo KMP...61 Figura 54. Primeira comparação do exemplo do algoritmo KMP Figura 55. Segunda comparação do exemplo do algoritmo KMP Figura 56. Resultado da comparação entre ABACATE e ABATE utilizando o algoritmo Jaro Figura 57. Implementação da função KMP Figura 58. Implementação da função Rabin-Karp Figura 59. Resultado da comparação entre as strings ABACATE e ABATE utilizando o algoritmo Rabin-Karp Figura 60. Primeira comparação do exemplo do algoritmo de Rabin-Karp Figura 61. Segunda comparação do exemplo do algoritmo de Rabin-Karp Figura 62. Terceira comparação do exemplo do algoritmo de Rabin-Karp...66 Figura 63. Terceira comparação do exemplo do algoritmo de Rabin-Karp...67 Figura 64. Gráfico do número de docentes por faixa de quantidade de produções Figura 65. Gráfico da média do grau de similaridade resultante dos dois cenários de testes Figura 66. Gráfico da média do tempo de execução em segundos resultante dos dois cenários de testes...71 Figura 67. Teste Z para comparação entre médias...72 Figura 68. Produção original e alterada do cenário 1a...80 Figura 69. Produção original e alterada do cenário 1b...81 Figura 70. Produção original e alterada do cenário 1c...82 Figura 71. Produção original e alterada do cenário 1d...83 Figura 72. Produção original e alterada do cenário 1e...84 Figura 73. Produção original e alterada do cenário 1f Figura 74. Produção original e alterada do cenário 1g...86 Figura 75. Produção original e alterada do cenário 1h...87 Figura 76. Produção original e alterada do cenário 1i...88 Figura 77. Produção original e alterada do cenário 2a...89 Figura 78. Produção original e alterada do cenário 2b...90 Figura 79. Produção original e alterada do cenário 2c...91 Figura 80. Produção original e alterada do cenário 2d...92 Figura 81. Produção original e alterada do cenário 2e...93 Figura 82. Produção original e alterada do cenário 2f Figura 83. Produção original e alterada do cenário 2g...95 Figura 84. Produção original e alterada do cenário 2h...96 vii

9 Figura 85. Produção original e alterada do cenário 2i...97 Figura 86. Produção original e alterada do cenário 2j...98 viii

10 LISTA DE TABELAS Tabela 1. Composição de um comando de seleção...11 Tabela 2. Comparação entre funções dos bancos Oracle, Postgre e SQL Server...14 Tabela 3. Regras do Soundex Code...32 Tabela 4. Exemplo da regra do algoritmo Soundex Code com a string Dickson e Dixon Tabela 5. Valores das penalidades da função de Convigton s Distance...33 Tabela 6. Tabela comparativa entre aplicativos similares...44 Tabela 7. Tabela de resultados geral dos testes quanto ao grau de similaridade...69 Tabela 8. Tabela de resultados do cenário 1a...81 Tabela 9. Tabela de resultados do cenário 1b Tabela 10. Tabela de resultados do cenário 1c...82 Tabela 11. Tabela de resultados do cenário 1d Tabela 12. Tabela de resultados do cenário 1e...84 Tabela 13. Tabela de resultados do cenário 1f Tabela 14. Tabela de resultados do cenário 1g Tabela 15. Tabela de resultados do cenário 1h Tabela 16. Tabela de resultados do cenário 1i Tabela 17. Tabela de resultados do cenário 2a...89 Tabela 18. Tabela de resultados do cenário 2b Tabela 19. Tabela de resultados do cenário 2c...91 Tabela 20. Tabela de resultados do cenário 2d Tabela 21. Tabela de resultados do cenário 2e...93 Tabela 22. Tabela de resultados do cenário 2f Tabela 23. Tabela de resultados do cenário 2g Tabela 24. Tabela de resultados do cenário 2h Tabela 25. Tabela de resultados do cenário 2i Tabela 26. Tabela de resultados do cenário 2j ix

11 RESUMO COSTA, Rodrigo Andreatta da. Análise de Métodos de Consulta por Similaridade de Textos em Banco de Dados. Itajaí, f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, Os sistemas de bancos de dados evoluíram nos últimos anos, sendo cada vez mais comum encontrar bases com grandes volumes de dados. Nelas são encontradas informações dos mais diversos tipos, números, textos, datas e inclusive dados de tipos mais complexos, como arquivos e imagens. Porém estas informações não têm muita valia se não puderem ser recuperadas de alguma forma. A consulta vem a ser, por este motivo, uma funcionalidade muito importante para auxiliar os usuários. Contudo este procedimento permite apenas pesquisas por palavras fixas. Por outro lado, existem aplicações que necessitam realizar buscas textuais cujas consultas não podem retornar resultados iguais (idênticos) ou distintos, mas qual é o grau de semelhança. O objetivo deste trabalho é apresentar os principais algoritmos de busca por similaridade de textos, escolher alguns para serem implementados e analisar qual melhor se adequa ao cenário do Sistema de Avaliação da Produção Institucional (SAPI) e executar uma comparação entre os resultados obtidos nos testes. Palavras-chave: Busca por String. Algoritmos de Similaridade. Similaridade de Textos. x

12 ABSTRACT The databases systems have been improved significantly in the last years. Nowadays, it s very common to find bases with a large number of records. They are able to store different kinds of data, like numbers, characters, date and also complex data as images and files. But this stored information doesn t have any value if it cannot be recovered. The query comes to be, therefore, a very important feature to help the users. The problem is that the database management systems allow only exact searches. Otherwise, there are applications that need to do text searches can t return distinct or identical results, but the similarity s degree. The aim of this work is to show some algorithms to search for similar texts, choose some of them to implement and to analyze which is the best for the scenario of SAPI and to execute a comparison among the test s results. Keywords: String Searches, Similarity Algorithms, Text Similarity. xi

13 1 INTRODUÇÃO No passado era comum encontrar em empresas áreas de arquivamento de documentos, tanto de texto, quanto de imagens, vídeos e sons, que formavam uma base de dados. O armazenamento requeria muito espaço físico e a busca por informações era lenta e imprecisa. Com o aperfeiçoamento da tecnologia, foi criada uma forma computacional de guardar estas informações, forma esta que ficou conhecida como banco de dados. Os bancos de dados costumam ser acessados e configurados por um sistema gerenciador de banco de dados (SGBD). O SGBD normalmente utiliza um modelo relacional, onde as estruturas têm forma de tabelas, compostas por linhas e colunas. Em bancos de dados pode ocorrer o armazenamento de dados semelhantes, um exemplo disso ocorre em bibliotecas digitais. Em uma base de dados composta pela integração de sistemas de informações externos pode acontecer de existir informações relacionadas ao mesmo assunto, porém gravadas de maneiras diferentes. Borges et al. (2005) cita como exemplo o caso onde, o nome de uma cidade pode estar armazenado das seguintes formas: Rio Grande - RS, R. Grande, Rio Grande, Rio Graande. e assim por diante. Nestes casos, como não há como afirmar se duas representações são provenientes de um mesmo objeto, uma saída é criar um mecanismo que verifique a proximidade entre os valores. Entretanto as possibilidades de busca e cruzamento de informações são realizadas de diversas formas, possibilitando que uma consulta retorne dados não pertinentes. Neste cenário, para se conseguir realizar uma consulta eficaz e confiável, é necessário a indexação adequada dos registros armazenados na base que possua suporte à similaridade, o que nem sempre ocorre. A idéia da técnica de busca por similaridade é baseada em recuperar objetos semelhantes ou próximos ao elemento pesquisado, sendo definido como espaço métrico o conjunto dos objetos referenciados. Na atualidade existem programas na área da medicina que utilizam Content-based image retrieval em consultas à banco de dados de imagens.

14 Santos Filho (2001 apud Borges et al., 2005) afirma que: Esta técnica executa comparações por semelhança, permitindo uma consulta precisa o suficiente para que possa retornar resultados satisfatórios, porém não tão precisa que venha deixar de retornar resultados relevantes.. Outra possível utilização de similaridade em consultas está na validação de estruturas genéticas, onde uma seqüência de DNA (formada por agrupamento de letras que dão origem a cadeias compostas por milhares de nucleotídeos). Altschul (1990) apud Souza (2004) desenvolveu uma ferramenta capaz de definir o coeficiente de semelhança entre diferentes cadeias de seqüências. A busca em textos é um importante recurso utilizado em ferramentas para edição de texto, para recuperação de dados e manipulação de símbolos. Segundo Carvalho et al. (2005): Os problemas de busca em texto consistem em encontrar todas as ocorrências (ou a primeira ocorrência) de uma palavra no texto. Onde a palavra e o texto são strings de um mesmo alfabeto. O importante é reportar todas as ocorrências sabendo-se que a busca por uma palavra de tamanho m em um texto de tamanho n (onde n > m) tem um tempo O(n) no pior caso (para m fixo). A UNIVALI possui um sistema conhecido como Sistema de Avaliação da Produção Institucional (SAPI) que é utilizado para gerenciar as produções dos docentes, mantendo uma base de dados de todas as produções que são desenvolvidas, de forma integrada com o sistema Lattes. Uma produção é qualquer artigo, trabalho acadêmico ou orientação. Cada produção registrada no Lattes é carregada para o SAPI. Neste momento, cada produção do Lattes é comparada com aquelas que já existem no currículo do SAPI, onde aquelas que apresentam 90% de similaridade são consideradas iguais e então os dados são atualizados. As produções com menos de 90% são consideradas como novas e inseridas no SAPI. Atualmente, para realizar esta comparação todas as produções do Lattes e do SAPI são carregadas para a página PHP e então comparadas. Esta tarefa demanda um alto processamento do servidor web, onde em currículos com alto número de produções (por exemplo, 450 produções) pode levar até cinco minutos para realizar o processamento. Considerando o cenário citado acima, surgiu a idéia de desenvolver rotinas implementadas nos sistemas gerenciadores de banco de dados para resolver o problema de lentidão nas comparações e também nas ineficiências existentes no processo. 2

15 Atualmente, os sistemas gerenciadores de banco de dados (SGBD's) comerciais existentes não conseguem executar consultas de strings aproximadas para textos (GRAVANO, 2001 apud BORGES, CONY, FREITAS, 2005). Desta forma, o presente TCC visa pesquisar e avaliar algoritmos de pesquisa que consigam distinguir informações similares, mas que possam estar representadas de maneiras diferentes em base de dados textuais. 1.1 PROBLEMATIZAÇÃO Formulação do Problema Os SGBD s foram criados para permitir o armazenamento de informações, permitindo aos usuários a recuperação dos dados através de consultas. Estas consultas possuem certa restrição, pois apenas são possíveis comparações exatas com operadores do tipo: maior que, menor que, igual, diferente, entre outros. Uma deficiência deste sistema está no fato da impossibilidade da execução de consultas buscando por informações similares. Na grande maioria dos gerenciadores de banco de dados há apenas funções para alterar a formatação e comparação de strings Solução Proposta A solução proposta é pesquisar funções baseadas em algoritmos que realizam busca por similaridade. Após análise das funções encontradas foram escolhidas algumas delas para serem implementadas e disponibilizadas no SGBD. Foram realizados testes para saber qual algoritmo realiza as buscas trazendo os dados mais próximos aos desejados e com o melhor desempenho. E por último, foi documentado os resultados de cada algoritmo codificado. 1.2 OBJETIVOS Objetivo Geral Investigar, implementar e avaliar o uso de algoritmos de busca por similaridade, baseados em métricas de distância entre Strings Objetivos Específicos Pesquisar e analisar possíveis aplicações similares; Compreender o processo de pesquisa em banco de dados; 3

16 Pesquisar e definir os algoritmos que serão implementados; Implementação dos algoritmos: o KMP; o Rabin Karp; o Levenshtein; o Hamming Distance; o Jaro. Testes dos algoritmos; Comparar os algoritmos, resultados obtidos e documentar informações sobre as informações obtidas. 1.3 METODOLOGIA O projeto tem como modelo de metodologia as seguintes etapas principais: (i) estudo; (ii) especificação; (iii) implementação; (iv) testes; e (v) documentação. A etapa de estudo tem como função a análise do problema que gerou o motivo do trabalho, pesquisa de tecnologias necessárias para o desenvolvimento dos objetivos propostos, busca por produtos similares e análise quanto a viabilidade do projeto. A especificação é a segunda etapa do projeto proposto. É nesta fase que é feito o levantamento e definição do que será desenvolvido, é procurado por algoritmos que possuem características de pesquisa em textos, é feita a escolha os algoritmos que serão codificados e formulada a criação da documentação em geral. O próximo passo é a implementação dos algoritmos que foram escolhidos na etapa de especificação. Nesta fase também se encontra a tarefa da obtenção e instalação do SGBD. Nesta fase foram escolhidos alguns dos algoritmos encontrados para serem transformados em funções codificadas na linguagem PL/SQL. As duas últimas etapas são os testes e documentação, onde após a criação de um banco de dados real são processadas as rotinas com as funções criadas. Para os testes, foram selecionados registros da base de dados obtida. Após isso, cada registro foi copiado e modificado para ser 4

17 executado nas funções. Cada dupla de registros (original e modificado) teve sua similaridade calculada pelos algoritmos implementados e também por uma função do PHP chamada similar_text para haver um ponto de referência ao avaliar os resultados gerados em cada teste. 1.4 ESTRUTURA DO TRABALHO Este trabalho está dividido em quatro capítulos principais, onde no primeiro é descrita uma introdução do assunto de banco de dados, explicado qual o problema que originou a idéia deste trabalho e definida qual a solução proposta. Também são expostos os objetivos gerais e específicos do projeto. O segundo capítulo é composto pela fundamentação teórica, onde são explicados os principais assuntos que serão abordados no trabalho. Há tópicos que conceituam e definem os temas de banco de dados, linguagem SQL, principais algoritmos existentes para realização de consultas em banco de dados, funções para tratamentos de strings e os aplicativos existentes no mercado que possuem uma funcionalidade parecida ao projeto proposto. O terceiro capítulo é formado pela implementação dos algoritmos escolhidos, onde são selecionadas duas palavras para serem aplicadas às funções e para explicar como cada algoritmo se comporta para as mesmas variáveis de entrada. Este capítulo é a base de informação para documentar o capítulo quatro que é onde são comentados os resultados obtidos. 5

18 2 FUNDAMENTAÇÃO TEÓRICA Considerando que este trabalho é focado ao assunto de banco de dados, mais especificadamente ao procedimento de consultas por strings em textos, neste capítulo serão apresentados alguns conceitos sobre banco de dados, a linguagem utilizada para realizar consultas, algoritmos existentes e algumas funções utilizadas para tratamento de strings. 2.1 BANCO DE DADOS No cotidiano, a maioria das pessoas se depara com situações ou atividades que utilizam algum tipo de banco de dados. Situações como, ir ao banco imprimir um extrato da conta, fazer uma reserva de um hotel ou passagem aérea, consultar a disponibilidade de livros em uma biblioteca e consultar preços de produtos em supermercados são formas invisíveis de interação com banco de dados. Segundo Date (2007) banco de dados é basicamente um sistema computacional que executa a manutenção de registros. Pode ser feita uma comparação como sendo o equivalente eletrônico de um armário de arquivamento, onde são armazenados conjuntos de arquivos de dados computadorizados. Podem também ser considerados como um sistema de computador cuja função principal é armazenar informações, permitindo que estas possam ser consultadas ou alteradas quando necessário. Para Elmasri (2006) Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e que possuem um significado implícito. Estes sistemas podem ser encontrados desde em pequenos computadores de mão (palm), computadores pessoais, até grandes mainframes ou clusters de computadores, sendo que quanto mais mobilidade existir menor é a quantidade de recursos fornecidos pelo sistema. Em máquinas com grande poder de processamento os sistemas costumam ser multi-usuário, onde mais de que um usuário pode acessar o banco de dados ao mesmo tempo, diferentemente do que ocorre em sistemas monousuário. Date (2007) caracteriza os dados de um banco de dados como integrados e compartilhados, pois é uma unificação de vários arquivos que podem ser acessados por mais de um usuário onde,

19 normalmente, cada usuário está interessado em apenas uma pequena parte das informações armazenadas. Segundo Elmasri e Navathe (2006), um banco de dados pode ser de qualquer tamanho e ter sua complexidade variável, podendo ser mantido manualmente ou automaticamente. Quando se está lendo sobre banco de dados é comum encontrar o termo Sistema Gerenciador de Banco de Dados, conhecido como SGBD. Trata-se de um conjunto de softwares (programas) responsáveis por manter o banco de dados em funcionamento. Segundo Date (2007), o SGBD é a peça mais importante de todo o sistema. De uma forma simples, ele está localizado entre o banco de dados físico (hardware), onde os dados estão realmente gravados, e o usuário que está utilizando o sistema. Para Elmasri e Navathe (2006) O SGBD é um sistema de software de propósito geral que facilita os processos de definição, construção, manipulação e compartilhamento de banco de dados entre vários usuários e aplicações. Atualmente os SGBD s utilizam o modelo de dados relacional que foi considerado como sendo o mais flexível e adequado para tratar os vários problemas que se colocam no nível de implementação da base de dados. A estrutura fundamental do modelo relacional é a relação (tabela), que é formada por várias linhas (conhecidas como registros) que por sua vez são compostas por um ou mais atributos que guardam o tipo de dados a ser armazenado. Um SGBD possui algumas funcionalidades importantes, como por exemplo: Controlar a concorrência entre usuários ou programas: isto ocorre pois a mesma informação não pode ser alterada por mais de um recurso ao mesmo tempo. Considerando como exemplo uma reserva de passagem de avião, no momento em que a atendente estiver realizando uma alteração na reserva do passageiro, o registro que possui as informações desta reserva é bloqueado pelo SGBD contra a ação de outros recursos (outros funcionários ou rotinas que são executadas no banco de dados). Apenas a pós o fim da tarefa da atendente é que o registro é liberado para outra operação. Segundo Mattoso (2005), o bloqueio pode ser lógico (através de linguagem de programação) ou físico (travando o registro ou a tabela). 7

20 Controlar as transações: por exemplo, em uma operação de reserva de vôo, no decorrer das alterações feitas pela atendente operações de inserção, deleção e alteração são executadas, porém serão percebidas ou visualizadas por outros recursos apenas após a confirmação (comando conhecido como commit) ou rejeição (comando conhecido como roolback) das ações. Controlar o acesso feito pelos usuários: é possível atribuir permissões para cada usuário separadamente ou para grupos informando quais tabelas cada um tem acesso e quais operações (alteração, inserção, deleção, consulta) cada um pode realizar. Controle de integridade nos dados: por exemplo, em uma operação de reserva de vôo, o SGBD deve validar o que a atendente está informando como cidade destino, sendo que, a tabela de reservas pode aceitar apenas cidades que já foram cadastradas em outra tabela no banco de dados. Por exemplo, a Figura 1 apresenta a tabela CURSO, com quatro registros, sendo que cada registro é composto pelos campos NOME, NÚMERO, CRÉDITOS e DEPARTAMENTO. Figura 1. Exemplo de banco de dados relacional Um ponto interessante no modelo ER é que não há caminhos pré-definidos para se fazer acesso aos dados. Por exemplo, é possível ligar a tabela CURSO (campo Número ) com a tabela 8

21 SECAO (campo Curso ). Da mesma forma pode-se ligar a tabela CURSO (campo Número ) com a tabela PRE-REQUISITO (campo Número ) para saber qual curso precisa ser feito primeiro. Contudo, para a utilização de tal funcionalidade, precisa-se tomar cuidado de alguns fatores como, por exemplo, a repetição de informação e a incapacidade de representar parte da informação e perda de informação Linguagem SQL A SQL (Structured Query Language), conhecido também como Linguagem de Consulta Estruturada, é uma linguagem padrão de pesquisa criada para se comunicar com bancos de dados. Segundo Battisti (2006), esta linguagem foi desenvolvida para ser independente de hardware e software. Para Battisti (2006): Ao usar o SQL, não é necessário saber a respeito do software de banco de dados ou do hardware envolvido em uma operação. Tudo o que você precisa conhecer são os comandos/instruções SQL padrão para solicitar informações, que obrigatoriamente é o mesmo em todos os sistemas que utilizam o SQL. Battisti (2006) comenta que as instruções SQL são conduzidas com um único comando que contém uma descrição completa da informação exigida. Explica também que o maior benefício do método SQL é não haver a necessidade de se preocupar em como os dados são recuperados, mas somente com o conteúdo do conjunto de dados. Segundo Leme (2006), os comandos SQL são divididos conforme abaixo: Data Definition Language (DDL), Linguagem de Definição de Dados: Permite ao usuário criar/apagar tabelas, índices e visões. Os principais comandos são create, drop e alter. Data Manipulation Language (DML), Linguagem de Manipulação de Dados: Permite ao usuário inserir, alterar, apagar ou selecionar registros (dados) em uma tabela. Os principais comandos são insert, update, delete e select. Data Control Language (DCL), Linguagem de Controle de Dados: Controla as permissões de acesso dos usuários do banco de dados para ver ou manipular informações. Os principais comandos são grant e revoke. 9

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL Objetivos Revisando a sintaxe SQL SELECT, UPDATE, INSERT, DELETE Manipulando expressões Funções matemáticas, etc Condições de Pesquisa Funções de Agregação

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS LINGUAGEM SQL PARA CSULTAS EM MICROSOFT ACCESS Objetivos: Neste tutorial serão apresentados os principais elementos da linguagem SQL (Structured Query Language). Serão apresentados diversos exemplos práticos

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Formação em Banco de Dados. Subtítulo

Formação em Banco de Dados. Subtítulo Formação em Banco de Dados Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras

Leia mais

Introdução a Sistemas de Bancos de Dados

Introdução a Sistemas de Bancos de Dados Introdução a Sistemas de Bancos de Dados Prof. UFES - Universidade Federal do Espírito Santo rapchan@inf.ufes.br http://www.inf.ufes.br/~rapchan Roteiro da Apresentação Introdução Características de um

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS LINGUAGEM SQL PARA CSULTAS EM MICROSOFT ACCESS Objetivos: Neste tutorial serão apresentados os principais elementos da linguagem SQL (Structured Query Language). Serão apresentados diversos exemplos práticos

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Editora Carlos A. J. Oliviero Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto 1a Edição 2 Reimpressão São Paulo 2011 Érica Ltda. Noções Livrarse Preparação muitas muita Sumário

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados O modelo relacional Marta Mattoso Sumário Introdução Motivação Serviços de um SGBD O Modelo Relacional As aplicações não convencionais O Modelo Orientado a Objetos Considerações

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI Fundamentos de Banco de Dados Aula 01 Introdução aos Sistemas de Bancos de Dados Introdução aos Sistemas de BD Objetivo Apresentar

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico Banco de Dados II Introdução Revisão - normalização -modelagem - sql básico Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia A linguagem SQL Autor: Hélio de Almeida Fonte: Wikipédia 1 Structure Query Language O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados StructuredQuery Language- SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 A Origem Em 1970, Ted Codd (pesquisador da IBM) publicou o primeiro

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Disciplina: Tecnologias de Banco de Dados para SI s

Disciplina: Tecnologias de Banco de Dados para SI s Curso de Gestão em SI Disciplina: Tecnologias de Banco de Dados para SI s Rodrigo da Silva Gomes (Extraído do material do prof. Ronaldo Melo - UFSC) Banco de Dados (BD) BD fazem parte do nosso dia-a-dia!

Leia mais

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1. www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1. www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados Structured Query Language SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 Comandos SQL Os comandos do SQL são classificados em três grupos,

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo everson@por.com.br Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Fundamentos dos Sistemas de Informação Organização de Dados e Informações Fundamentos dos Sistemas de Informação Organização de Dados e Informações http://professor.fimes.edu.br/milena milenaresende@fimes.edu.br Sistema de Gerenciamento de Bases de Dados (DBMS) A implementação

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language) SQL BÁSICO Prof. Suelane Garcia Introdução 2 Linguagem SQL (Structured Query Language) Linguagem de Consulta Estruturada padrão para acesso a Banco de Dados. Usada em inúmeros Sistemas de Gerenciamento

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico Banco de Dados // 1 Banco de Dados // 2 Conceitos BásicosB Engenharia da Computação UNIVASF BANCO DE DADOS Aula 1 Introdução a Banco de Dados Campo representação informatizada de um dado real / menor unidade

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta Bancos de dados XML Conceitos e linguagens de consulta Sidney Roberto de Sousa MC536 - Bancos de Dados: Teoria e prática Material base: W3Schools XPath and XQuery Tutorial http://www.w3schools.com/xpath/

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Banco de Dados - Senado

Banco de Dados - Senado Banco de Dados - Senado Structured Query Language (SQL) Material preparado :Prof. Marcio Vitorino Ambiente Simplificado de um SGBD 2 Características dos SGBDs Natureza auto-contida de um sistema de banco

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Manipulando Strings no VBA (Replace, Mid e InStr)

Manipulando Strings no VBA (Replace, Mid e InStr) Manipulando Strings no VBA (Replace, Mid e InStr) por Eduardo Vieira Machado (Good Guy) Hoje gostaria de tratar de um assunto bastante atraente no Access e que é muito trabalhado nas empresas - a manipulação

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Formação em Banco de Dados

Formação em Banco de Dados Formação em Banco de Dados Sobre a KTEC A KTEC Escola de Tecnologia oferece uma série de cursos, para os que procuram uma base sólida no aprendizado, com foco nas boas práticas que fazem a diferença no

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

Banco de Dados I. Introdução Conceitos

Banco de Dados I. Introdução Conceitos Banco de Dados I Introdução Conceitos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Conceitos Fundamentais de Banco de Dados; Características

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

SQL (Linguagem de Consulta Estruturada)

SQL (Linguagem de Consulta Estruturada) SQL (Linguagem de Consulta Estruturada) M.Sc. Cristiano Mariotti mscmariotti@globo.com Introdução à SQL 1 Visão Geral Introdução Comandos de Definição de Dados Comandos de Manipulação de Dados Introdução

Leia mais