UNIMINAS RONALDO GUMERATO SQL INJECTION EM APLICAÇÕES WEB

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

Download "UNIMINAS RONALDO GUMERATO SQL INJECTION EM APLICAÇÕES WEB"

Transcrição

1 UNIÃO EDUCACIONAL MINAS GERAIS S/C LTDA FACULDADE DE CIÊNCIAS APLICADAS DE MINAS Autorizada pela Portaria nº 577/2000 MEC, de 03/05/2000 BACHARELADO EM SISTEMAS DE INFORMAÇÃO RONALDO GUMERATO SQL INJECTION EM APLICAÇÕES WEB Uberlândia 2009

2 1 RONALDO GUMERATO SQL INJECTION EM APLICAÇÕES WEB Monografia apresentada à Faculdade de Ciências Aplicadas de Minas da União Educacional Minas Gerais (), como parte das exigências para obtenção do Título de Bacharel em Sistemas de Informação. Orientador: Prof. Esp. Leandro de Souza Lopes Uberlândia 2009

3 2 RONALDO GUMERATO SQL INJECTION EM APLICAÇÕES WEB Banca Examinadora: Uberlândia, 09 de maio de Monografia apresentada à Faculdade de Ciências Aplicadas de Minas da União Educacional Minas Gerais (), como parte das exigências para obtenção do Título de Bacharel do Curso de Sistemas de Informação. Orientador: Prof. Esp. Leandro de Souza Lopes Professor: Esp. Leandro de Souza Lopes (Orientador) Professora: Dra. Kátia Lopes Silva Professor: Esp. Rogério de Freitas Ribeiro Uberlândia/MG 2009

4 3 DEDICATÓRIA Dedico este trabalho aos meus pais Ronaldo e Sonira, onde quer que estejam tenho a certeza de que me acompanham a cada passo. A minha esposa Adriene, por acrescentar razão e beleza aos meus dias. Ao meu irmão Rodrigo, por ter me ensinado, mesmo sem perceber, valores que levarei por toda a vida.

5 4 RESUMO Informação tornou-se um ativo valioso e estratégico. A chamada era da informação, caracterizada principalmente pela inclusão digital e disseminação da Internet, disponibilizou um grande volume de informação cuja precedência na história, até então, era desconhecida. Não tardou para que a aparição de ameaças contra a confidencialidade, integridade e disponibilidade das informações comprometessem a tendência inicial de expansão, gerando desconfianças quanto ao modo como tais informações são armazenadas, transmitidas e processadas. Os processos de melhoria das funcionalidades em aplicações não resultaram no desenvolvimento de produtos mais seguros, gerando duas vertentes desarmônicas rápida implementação de funcionalidades e facilidades e garantia da segurança da informação para atenuar os danos decorrentes das vulnerabilidades. Esse trabalho apresenta uma técnica chamada SQL Injection que é utilizada por crackers para atacar bancos de dados através de aplicações voltadas para a Internet e que não adotaram uma metodologia de desenvolvimento preocupada com a produção de software naturalmente seguro. O trabalho apresenta também as principais falhas que geralmente são exploradas e como implementar barreiras que limitam o sucesso de tais ataques.

6 5 ABSTRACT Information became a valuable and strategical asset. The call age of the information, characterized mainly for the digital inclusion and dissemination of the Internet, has produced a great volume of information whose anteriority in history, until then, was unknown. It did not delay so that the appearance of threats against the integrity and availability of the information compromised the initial trend of expansion, generating diffidence how the way such information are stored, transmitted and processed. The processes of improvement of the functionalities in applications had not resulted in the development of safer products, generating two disharmonious sources - fast implementation of functionalities and easiness s and guarantee of the security of the information to attenuate the decurrent damages of the vulnerabilities. This work presents one called technique SQL Injection that is used by crackers to attack data bases through applications directed toward the Internet and that they had not adopted a methodology of development worried about the production of safe software. This work also presents the main imperfections that generally are explored and how to implement barriers that limit the success of such attacks.

7 6 LISTA DE FIGURAS Figura 1 - Gráfico representando o crescimento de vulnerabilidades relacionadas a SQL Injection...13 Figura 2 - Representação simplificada de um modelo de banco de dados...19 Figura 3 - Representação gráfica de um banco de dados relacional...20 Figura 4 - Exemplo tabular da relação Cliente...23 Figura 5 - Exemplo de modelos de consulta SQL...27 Figura 6 - Exemplo de um portal de comércio eletrônico...28 Figura 7 - Exemplo de sala de segurança para servidores...32 Figura 8 - Representação de instrução SQL...36 Figura 9 Exemplo de URL com parâmetros...36 Figura 10 Consulta executada no banco de dados...36 Figura 11 Demonstração de ataque direto a URL...36 Figura 12 Consulta passada para interpretação do banco de dados...36 Figura 13 Exemplo de ataque direto a URL...37 Figura 14 Exemplo de ataque direto a URL...37 Figura 15 Exemplo de ataque direto a URL...37 Figura 16 Exemplo de ataque direto a URL...38 Figura 17 - Exemplo de tela de erro gerada com técnica de SQL Injection...38 Figura 18 - Exemplo de injeção de caracteres em campo de formulário...39 Figura 19 - Exemplo de mensagem de erro com informações sobre a estrutura da tabela...39 Figura 20 - Exemplo de comando para explorar mensagens de erro...39 Figura 21 - Exemplo de mensagem de erro com informações sobre a estrutura da tabela...39 Figura 22 - Exemplo de comando para explorar mensagens de erro...40 Figura 23 - Exemplo de mensagem de erro com informações sobre a estrutura da tabela...40 Figura 24 - Exemplo de comando para criar usuário na tabela...40 Figura 25 - Exemplo de comando para identificar a versão do SGBD...41 Figura 25 - Exemplo de mensagem de erro com a versão do SGBD...41 Figura 27 - Exemplo de código com tratamento de dados de entrada...44 Figura 28 - Exemplo de código com tratamento de dados de entrada...45 Figura 29 - Propriedades da aplicação...47 Figura 30 - Desabilitar mensagens de erro padrão definindo mensagens de alerta...48 Figura 31 - Código de um formulário de uma aplicação web onde o usuário digita nome e senha...51 Figura 32 - Tela de Login onde o usuário digita nome (Username) e senha (Password)...52 Figura 33 - Código de validação de usuário e senha...53 Figura 34 - Código que concatena o comando SQL a ser executado...53 Figura 35 - Parâmetro para login sem a necessiade de especificar a senha...54 Figura 36 - Login com as credenciais do primeiro usuário cadastrado na tabela "USERS"...54 Figura 37 - Parâmetros de usuário e senha especificados por um usuário mal intencionado...54 Figura 38 - Comando utilizado para a criação da tabela "USERS" e inserção de dados...55

8 7 Figura 39 - uso da cláusula "HAVING" para obtenção de um erro que retorna o nome da tabela e da sua primeira coluna...56 Figura 40 - Uso da cláusula "HAVING" para obtenção de um erro que retorna o nome da segunda coluna da tabela...56 Figura 41 - Uso da cláusula "HAVING" com todos os campos da tabela...56 Figura 42 - Comando equivalente ao processado pelo servidor ao final do processo...57 Figura 43 - Erro que permite identificar o tipo de dado de uma coluna...57 Figura 44 - Erro que permite identificar se o tipo de dado de uma coluna é numérico...58 Figura 45 - Cadastro realizado pelo usuário mal intencionado depois de obter a estrutura aproximada da tabela...58 Figura 46 - Erro que retorna a versão do SQL Server e do sistema operacional...59 Figura 47 - Erro que retorna o nome do primeiro usuário cadastrado na tabela "USERS"...59 Figura 48 - Erro que retorna o nome do segundo usuário cadastrado na tabela "USERS"...60 Figura 49 - Erro que retorna a senha do usuário "ADMIN"...60 Figura 50 - Erro que retorna a todos os usuários e as senhas da tabela USERS...61 Figura 51 - Exemplo de execução da rotina XP_CMDSHELL...63 Figura 52 - Exemplo de execução da rotina XP_CMDSHELL para listar todos os usuários do servidor...64 Figura 53 - Exemplo de execução da rotina XP_REGREAD para listar todos null-session shares do servidor...65 Figura 54 - Exemplo de execução da rotina XP_SERVICECONTROL para iniciar serviços no servidor...65 Figura 55 - Exemplo de criação, execução e exclusão de uma extended stored procedure...66 Figura 56 - Exemplo de uso do BULK INSERT...66 Figura 57 - Exemplo de uso do BCP...67 Figura 58 - Exemplo de uso das rotinas sp_oacreate e sp_oagetproperty para executar o Notepad...67

9 8 LISTA DE ABREVIATURAS E SIMBOLOS AJAX - Asynchronous JavaScript and XML ANSI - American National Standards Institute API - Application Program Interface ARPA - Advanced Research Projects Agency ASCII - American Standard Code for Information Interchange ASP - Active Server Pages CGI - Common Gateway Interface DBMS - Data Base Management System DCL - Linguagem de Controle de Dados DDL - Linguagem de Definição de Dados DER - Diagrama de Entidade-Relacionamento DML - Linguagem de Manipulação de Dados DQL - Linguagem de Consulta de Dados FTP - File Transfer Protocol HTML - Hypertext Markup Language HTTP - Hypertext Transfer Protocol IDEF - Integration Definition for Function Modelling IDS - Intrusion Detection System IEC - International Electrotechnical Commission IIS - Internet Information Services (servidor web da Microsoft) IPS - Intrusion Prevention System ISO - International Standards Organization JSP - Java Server Pages PHP - Personal Home Page: Hypertext Preprocessor RSS - Really Simple Syndication SAM - Security Accounts Manager

10 9 SGBD - Sistema de Gerenciamento de Banco de Dados SQL - Structured Query Language SSL - Secure Socket Layer WWW - World Wide Web XML - extensible Markup Language

11 10 SUMÁRIO RESUMO INTRODUÇÃO CENÁRIO ATUAL IDENTIFICAÇÃO DO PROBLEMA OBJETIVOS OBJETIVOS GERAIS OBJETIVOS ESPECIFICOS JUSTIFICATIVA ORGANIZAÇÃO DO TRABALHO BANCOS DE DADOS E APLICAÇÕES WEB BANCOS DE DADOS UTILIZAÇÃO MODELO RELACIONAL ESTRUTURA DOS BANCOS DE DADOS RELACIONAIS MODELO DE BANCO DE DADOS LINGUAGEM DE CONSULTA ESTRUTURADA (SQL) APLICAÇÕES WEB DESENVOLVIMENTO DE APLICAÇÕES WEB DESENVOLVIMENTO SEGURO DE APLICAÇÕES WEB O ATAQUE SQL INJECTION, SUAS VARIAÇÕES E TÉCNICAS DE PREVENÇÃO SQL INJECTION CODIFICAÇÃO DE CARACTERES O ATAQUE ADVANCED SQL INJECTION O ATAQUE OBTENDO INFORMAÇÕES ATRAVÉS DE MENSAGENS DE ERRO OBTENDO CONTROLE SOBRE O SISTEMA OPERACIONAL E REDE COMO SE PREVENIR DE ATAQUES SQL INJECTION VALIDAÇÃO DE ENTRADA INSTALAÇÃO E CONFIGURAÇÃO DE SEGURANÇA NO SQL SERVER DETECÇÃO E DISSUASÃO ALTERAÇÃO DAS MENSAGENS DE ERRO UTILIZAÇÃO DE FERRAMENTAS DE ANÁLISE DE CÓDIGO-FONTE ESTUDO DE CASO PLATAFORMA UTILIZADA ATAQUES PELA TELA DE ACESSO ATAQUES ATRAVÉS DA INTERPRETAÇÃO DAS MENSAGENS DE ERRO OBTENDO MAIS ACESSOS ATAQUE A COMANDOS DO SISTEMA OPERACIONAL COM XP_CMDSHELL ATAQUE AO REGISTRO COM XP_REGREAD ATAQUES ATRAVÉS DE OUTRAS EXTENDED PROCEDURES...65

12 ATAQUE COM CRIAÇÃO DE EXTENDED STORED PROCEDURES ATAQUE PELA LEITURA DE ARQUIVOS-TEXT COM BULK INSERT ATAQUE QUE RESULTA NA CRIAÇÃO DE ARQUIVOS COM O COMANDO BCP CRIAÇÃO DE SCRIPTS ActiveX: SP_OACreate e SP_OAGetProperty CONCLUSÃO CONCLUSÃO PERSPECTIVAS FUTURAS REFERÊNCIAS...70

13 INTRODUÇÃO 1.1 CENÁRIO ATUAL Com o surgimento do protocolo HTTP no início da década de 90, as páginas web tornaram-se cada vez mais populares e um dos principais meios de comunicação entre usuários e instituições. No início, as páginas eram desenvolvidas somente utilizando a linguagem HTML, que eram estáticas e não possuíam interação com o usuário. Nessa época, os principais alvos de ataques eram os sistemas operacionais, banco de dados e serviços como Telnet e FTP. Atualmente, os principais alvos de ataques são servidores web, aplicações web e o navegador web (browser). Na corrida para impulsionar mais serviços on-line, as aplicações web frequentemente sofrem com a falta de segurança incorporada. As vulnerabilidades resultantes representam um caminho fácil para que crackers acessem ou roubem dados e informações corporativas ou pessoais. A quantidade de ataques utilizando métodos automatizados para a exploração de falhas através de SQL Injection é bem significativa. Este comportamento mostra que, na maioria das vezes, as aplicações web estão extremamente vulneráveis, como pode ser observado na figura 1 que foi retirada do web site da National Vulnerability Database que é um repositório de dados sobre vulnerabilidades do governo norte americano.

14 13 Vulnerabilidades afetando aplicações web (acumulativo, ano a ano) Figura 1 - Gráfico representando o crescimento de vulnerabilidades relacionadas a SQL Injection A primeira metade de 2008 foi marcada pelo grande aumento em descobertas de SQL Injection, mais que dobrando o número de vulnerabilidades vistas no mesmo período de A principal causa dessas vulnerabilidades é a falta de validação correta dos campos de entrada das aplicações web. Com isso, usuários podem submeter dados de entrada arbitrários e, com eles, códigos maliciosos. Os principais motivos para que essas vulnerabilidades apareçam são: imaturidade ou desconhecimento em segurança por parte dos desenvolvedores, restrições de recursos e falta de tempo, e uso incorreto das tecnologias. Muitas empresas acreditam que pelo fato de possuírem um firewall, IDS (Sistema de Detecção de Intrusos) ou IPS (Sistema de Prevenção de Intrusos), protegendo os servidores e um processo de execução de varreduras de vulnerabilidades na camada de rede, estão completamente protegidas contra ataques realizados na camada de aplicação. Muitas dessas empresas já sofreram algum tipo de ataque em suas aplicações web, e muitas delas sequer conseguiram identificá-los. Um dos motivos para que sistemas de detecção de intrusos e sistemas de prevenção de intrusos não funcione corretamente contra ataques em aplicações web é que a maioria das informações enviadas através de formulários é criptografada usando SSL.

15 14 Essa camada de criptografia impossibilita que a verificação feita pelo IDS e o IPS bloqueie códigos maliciosos, fazendo com que estes cheguem até a aplicação web normalmente. Com tanta exposição, percebeu-se que mesmo a última tecnologia em filtragem de pacotes poderia não ser tão efetiva contra ataques na camada de aplicação. Foi quando surgiram os firewalls de aplicação. Porém, eles trabalham fazendo comparações das requisições com uma base de assinaturas. Esse sistema possui algumas desvantagens, podendo gerar bloqueios para requisições válidas, ou até mesmo deixar passar requisições maliciosas. Embora existam diversas tecnologias que ajudam na prevenção de ataques na camada de aplicação, a prática de codificação segura é imprescindível para manutenção de um ambiente seguro. O objetivo deste trabalho é mostrar as principais maneiras conhecidas de utilização do SQL Injection como forma de ataque a aplicações Web e servidores de banco de dados. São apresentados também mecanismos de defesa recomendados pelas melhores práticas de segurança no mercado. O ataque SQL Injection foi escolhido como tema por sua capacidade "destrutiva" e para demonstrar a importância da segurança ainda no desenvolvimento das aplicações. Para apresentação dos ataques foi considerada apenas a forma inicial do SQL Injection, desconsiderando suas variações conhecidas, como o Advanced SQL Injection. 1.2 IDENTIFICAÇÃO DO PROBLEMA Embora os conceitos e técnicas apresentadas aplicam-se para outros ambientes, o objeto de estudo dessa pesquisa se constitui em uma técnica de ataque à aplicações voltadas para internet, desenvolvidas na linguagem ASP e que acessem informações armazenadas em um banco de dados Microsoft SQL Server. Para que seja possível a execução de um ataque baseado em SQL Injection é necessário apenas um navegador para internet e um pouco de esforço para encontrar

16 15 no banco de dados a estrutura de tabelas e campos contendo informações importantes. Este tipo de ataque não é uma falha tecnológica de segurança no Sistema Operacional ou em qualquer outro software, mas sim, uma falha na forma como a aplicação foi desenvolvida. Alguns desenvolvedores ou programadores desconhecem este tipo de ataque deixando assim as portas abertas para a injeção de comandos SQL na aplicação OBJETIVOS OBJETIVOS GERAIS Demonstrar a natureza dos ataques à aplicações baseadas em Injeção SQL (SQL Injection) e apresentar técnicas indicadas na prevenção deste tipo de ataque OBJETIVOS ESPECIFICOS Analisar o processo utilizado na busca de vulnerabilidades das aplicações que permitam a utilização da técnica de Injeção SQL. Avaliar os riscos ao ambiente e a continuidade dos negócios causados pela exploração das vulnerabilidades nestas aplicações. Apresentar uma simulação de ataque. Apresentar técnicas de segurança para proteção contra este tipo de ataque JUSTIFICATIVA Segurança sempre foi e será um tema de destaque, seja em casa, nas ruas ou no trabalho. Quando se fala de segurança da informação, não existe um só departamento de uma única empresa que não se preocupe com este tema. Ao

17 16 questionar sobre segurança com desenvolvedores de aplicações e administradores de bancos de dados, a preocupação será maior ainda, pois são justamente estes, os principais responsáveis pelas aplicações que as empresas disponibilizam na rede local (intranet), ou global (internet). São vários os objetos dessa preocupação, e, na maioria dos casos a implementação de um projeto de segurança bem elaborado podem reduzir os riscos de um ataque, segundo os institutos Gartner e IDC. Porém, existe um método, com potencial devastador quando explorado: o SQL Injection, que não é protegido por elementos de segurança lógica implementados na rede, nem configurações seguras no sistema operacional ou nos servidores de bancos de dados e sim no código das aplicações. Os benefícios das metodologias no processo de desenvolvimento não aparentam ser motivos de discórdia, porém os métodos instituídos é objeto freqüente de questionamento (YOURDON 1999). Por isso o desenvolvimento de uma documentação com técnicas que orientem profissionais a utilizarem as melhores práticas na construção de seus códigos tornará as aplicações seguras. 1.5 ORGANIZAÇÃO DO TRABALHO Este documento é descrito em cinco capítulos. O primeiro capítulo é uma introdução onde o conceito de SQL Injection é apresentado de maneira geral. O capítulo dois apresenta de forma detalhada uma estrutura de banco de dados e o modelo de aplicações utilizadas para o ambiente da internet. No capítulo três é apresentado o ataque de injeção SQL (SQL Injection) com suas variações e técnicas de prevenção. No capítulo quatro é apresentado um estudo de caso onde um cenário é montado em laboratório para apresentar na prática as ameaças de ataque SQL

18 17 Injection e como implementar as medidas de proteção para eliminar o sucesso deste tipo de ataque. Injection. O quinto capitulo apresenta técnicas de defesa contra ataques do tipo SQL Por fim, no capítulo seis traz a conclusão do trabalho, descrevendo e avaliando os resultados obtidos.

19 18 2 BANCOS DE DADOS E APLICAÇÕES WEB 2.1 BANCOS DE DADOS Uma estrutura de bancos de dados, genericamente, é qualquer coleção de dados organizados de tal forma que seja possível localizar e extrair de maneira simples, precisa e rápida, frações destes dados, gerando informações úteis para os mais variados itens. Os bancos de dados tradicionais organizam-se em campos, registros e arquivos. De acordo com DATE (2000), um banco de dados é uma coleção de dados persistentes utilizada pelos sistemas de aplicação de uma determinada organização. Normalmente um banco de dados possui um sistema gerenciador. Esse modelo de software é conhecido como Sistema Gerenciador de Bancos de Dados (SGBD). Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses dados. O conjunto de dados comumente chamado de banco de dados, contém informações sobre uma empresa em particular. (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S., 1999, p.1). Geralmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendia. No modelo de dados mais aceito hoje em dia, o modelo relacional, a estrutura tem a forma de tabelas na qual, cada tabela é composta por linhas e colunas. Cada SGBD possui características especiais para o armazenamento, classificação e recuperação dos dados UTILIZAÇÃO Uma estrutura de bancos de dados como no modelo apresentado na figura 2, pode ser utilizada em várias aplicações, abrangendo praticamente todos os tipos de programas de computador. Este tipo de estrutura é o método preferencial para

20 19 aplicações multiusuário, nas quais é necessário haver coordenação nos processos e sessões executadas por vários usuários simultaneamente. Figura 2 - Representação simplificada de um modelo de banco de dados MODELO RELACIONAL O modelo relacional para gerenciamento de bancos de dados (DBMS Data Base Management System ou SGBD Sistema de Gerenciamento de Banco de Dados) como apresentado na figura 3 é um modelo de dados baseado em lógica de predicados e na teoria de conjuntos. Segundo SILBERSCHATZ, KORTH e SUDARSHAN (1999, pg.61) este foi o primeiro modelo de dados adotado para aplicações comerciais. Os modelos usados anteriormente: o modelo hierárquico e o modelo em rede, estão mais próximos da implementação no nível físico que o modelo relacional (SILBERSCHATZ, KORTH e SUDARSHAN 1999). Alguns sistemas utilizando estas arquiteturas antigas ainda continuam em operação, seja devido ao alto volume de dados ou porque os sistemas existentes são tão complexos que o custo de migração para o modelo relacional é proibitivo.

21 20 Existem ainda os novos modelos baseados em orientação ao objeto, apesar de que muitos destes são kits de construção de DBMS, ao invés de uma definição de um modelo de gerenciamento de dados. PEDIDO Cod_pedido Cod_cliente Cod_produto Qtde_produto Val_produto PRODUTOS Cod_produto Nome_produto CLIENTE Cod_cliente Nome_cliente Cod_estadocivil Cod_endereco ENDERECO Cod_endereco Nome_rua Num_endereco Des_complemento Cep Figura 3 - Representação gráfica de um banco de dados relacional A linguagem padrão para os bancos de dados relacionais, SQL, é apenas vagamente remanescente do modelo matemático. Atualmente ela é adotada, apesar de suas restrições, porque ela é antiga e muito mais popular que qualquer outra linguagem de banco de dados. A principal proposição do modelo relacional é que todos os dados sejam representados como relações matemáticas, isto é, um subconjunto do produto Cartesiano de n conjuntos. A análise dos dados é feita em uma lógica de predicados de dois valores, ou seja, sem o valor nulo. Isto significa que existem dois possíveis valores para uma proposição: verdadeira ou falsa. Os dados são tratados pelo cálculo relacional ou álgebra relacional. O modelo relacional permite ao projetista criar um modelo lógico consistente da informação a ser armazenada. Este modelo lógico pode ser refinado através de um processo de normalização. Um banco de dados construído puramente baseado no modelo relacional estará inteiramente normalizado. O plano de acesso, outras implementações e detalhes de operação são tratados pelo sistema DBMS, e não devem ser refletidos no modelo lógico. Isto se contrapõe à prática comum para DBMS s SQL nos quais o ajuste de desempenho frequentemente requer mudanças no modelo lógico.

22 ESTRUTURA DOS BANCOS DE DADOS RELACIONAIS Os bancos de dados relacionais são representados por uma coleção de tabelas. Uma linha e uma tabela representam um relacionamento entre um conjunto de valores. Uma vez que esta tabela é uma coleção de tais relacionamentos há uma estreita correspondência entre o conceito de tabela e o conceito matemático de relação, a partir das quais, se origina o nome desse modelo de base de dados. (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S., 1999, p.61). Os blocos básicos do modelo relacional são o domínio, ou tipo de dado. Uma tupla é um conjunto de atributos que são ordenados em pares de domínio e valor. Uma relvar (variável relacional) é um conjunto de pares ordenados de domínio e nome que serve como um cabeçalho para uma relação. Uma relação é um conjunto desordenado de tuplas. Apesar destes conceitos matemáticos, eles correspondem basicamente aos conceitos tradicionais dos bancos de dados. Uma relação é similar ao conceito de tabela e uma tupla é similar ao conceito de linha. Os modelos de tabelas em uma estrutura de dados relacional são compostos por três componentes: uma coleção de estruturas de dados ou relações, por vezes incorretamente identificadas como tabelas; uma coleção de operadores, a álgebra e o calculo relacionais; e uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alteração de estados (Connolly 1999). As restrições de integridade podem ser de quatro tipos: domínio (também conhecido como type), atributo, relvar e restrições de bases de dados. Em um modelo de dados relacional não existem quaisquer tipo de apontadores, de acordo com o principio da informação: toda informação deve ser representada como dados. Qualquer tipo de atributo representa relações entre conjuntos de dados. As bases de dados relacionais permitem aos utilizadores escreverem consultas que não foram antecipadas por quem projetou a base de dados. O modelo relacional é uma teoria matemática desenvolvida por Ted Codd 1 para descrever o comportamento das bases de dados. Embora esta teoria seja a base para 1 Edgar Frank "Ted" Codd (23 de Agosto de 1923 a 18 de Abril de 2003) foi um cientista britânico que, enquanto trabalhava pela IBM, inventou o modelo relacional para gerenciamento de bancos de dados.

23 22 os softwares gerenciadores de bases de dados relacionais, poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita e todos apresentam funcionalidades que violam a teoria, desta forma, aumentando a complexidade e diminuindo o poder. Portanto, não deveriam ser chamados de sistemas de gestão de bases de dados relacionais, mas sim de sistemas de SQL MODELO DE BANCO DE DADOS A seguir é apresentado um exemplo, bem simples da descrição de algumas relações e seus atributos em um banco de dados relacional. Cliente (ID Cliente, ID Taxa, Nome, Endereço, Cidade, Estado, CEP, Telefone) Pedido de compra (Número do pedido, ID Cliente, Factura, Data do pedido, Data prometida, Status) Item do pedido (Número do pedido, Número do item, Código do produto, Quantidade) Nota fiscal (Número da nota, ID Cliente, Número do pedido, Data, Status) Item da nota fiscal (Número da nota,número do item,código do produto, Quantidade vendida) No exemplo, são apresentadas cinco relações (relvars): Cliente, Pedido, Item do pedido, Nota fiscal e Item da nota fiscal. Os atributos em negrito e sublinhados são chaves candidatas. Os itens sublinhados sem negrito são as chaves estrangeiras. Geralmente uma chave candidata é eleita arbitrariamente e escolhida para ser chamada de chave primária sendo utilizada preferencialmente, sendo que as outras chaves candidatas são chamadas chaves alternativas. Uma chave candidata é um identificador único que garante que nenhuma tupla será duplicada; isto faz com que o relacionamento em algo denominado um multiconjunto, ou seja, entre vários elementos, seja mantido de forma ordenada. Uma chave pode ser formada por vários atributos. A figura 4, apresenta um exemplo tabular da relação exemplo Cliente.

24 23 uma relvar. Figura 4 - Exemplo tabular da relação Cliente Um relacionamento pode ser abstraído como um valor que pode ser atribuído a Se houver a tentativa de inserção de um novo cliente com o ID , isto irá violar o projeto da relação, pois ID Cliente é uma chave primária e já existe um cliente com o número O DBMS deve rejeitar uma transação como esta e deve acusar um erro de violação da integridade. Existem também as chaves estrangeiras que são condições de integridade que garantem que o valor de um atributo é obtido de uma chave candidata de outra relação, por exemplo, na relação Pedido o atributo ID Cliente é uma chave estrangeira. Uma união é uma operação que retorna a informação de várias relações de uma só vez. Através da união de relações do exemplo utilizado, é possível consultar no banco de dados quais são os clientes, pedidos e notas. Se forem necessárias apenas as linhas de um cliente específico, é possível especificar isto utilizando uma condição de restrição. Para obter todos os pedidos do cliente , é possível consultar o banco de dados de forma que este retorne todas as linhas na relação de Pedidos com ID Cliente igual a e agrupar a tabela de pedidos com a relação de itens de pedido baseado no Número do pedido. Existe um erro no projeto de banco de dados utilizado no exemplo anterior. A relação de notas contém um atributo número do pedido. Assim, cada linha na tabela de notas terá um pedido, o que implica em precisamente um pedido para cada nota. Mas na realidade uma nota pode ser criada a partir de muitos pedidos, ou mesmo para nenhum pedido em particular. Adicionalmente um pedido contém um número de nota, implicando que cada pedido tem uma nota correspondente. Mas novamente isto não é verdadeiro no mundo real. Um pedido é às vezes pago através de várias notas, e às vezes pago sem uma nota. Em outras palavras podem-se ter muitas notas por pedido e muitos pedidos por nota. Isto é um relacionamento vários-para-vários entre pedidos e notas. Para representar este relacionamento no banco de dados uma nova relação

25 24 deve ser criada com o propósito de especificar a correspondência entre pedidos e notas: PedidoNota (Número do pedido,número da nota) Agora, um pedido tem um relacionamento um-para-vários para a relação PedidoNota, assim como o Cliente tem para a relação de Pedidos. Para retornar todas as notas de um pedido específico, basta consultar no banco de dados todos os pedidos cujo Número do pedido é igual ao Número do pedido na relação PedidoNota, e onde o Número da nota na relação PedidoNota é igual à Número da nota na relação Notas. A normalização de banco de dados é realizada quando se projeta um banco de dados relacional, para melhorar a consistência lógica do projeto do banco de dados e o desempenho transacional. Existem dois sistemas mais comuns de diagramação que ajudam na representação visual do modelo relacional: o DER (diagrama de entidaderelacionamento) (SILBERSCHATZ, KORTH e SUDARSHAN 1999), e o diagrama correlato IDEF (Integrated DEFinition Methods desenvolvido e mantido pela Knowledge Based Systems, Inc.) utilizado no método IDEF1X 2 criado pela Força Aérea Americana baseado no DER LINGUAGEM DE CONSULTA ESTRUTURADA (SQL) O SQL (Structured Query Language) ou Linguagem de Consulta Estruturada, é uma linguagem de pesquisa declarativa para bancos de dados relacional. Muitas das características do SQL foram inspiradas na álgebra relacional de Ted Codd e conforme (DATE, 2000) é a linguagem padrão para se lidar com banco de dados relacional. O SQL foi criado pela IBM Research na década de 70, mas rapidamente foram criados vários dialetos por outros fornecedores ou desenvolvedores. Essa expansão levou a necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pelo American National Standards Insitute (ANSI) em 1986 e International Organization for Standardization (ISO) em Em Dezembro de 1993 o Laboratório de Sistemas Computacionais do Instituto Nacional de Padrões e Tecnologia (NIST) definiu o IDEF1X como padrão para modelagem de dados na edição 184 da FIPS.

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

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

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

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

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

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

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

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. 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

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

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

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

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

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s

DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s Dio Rafael Jacobs 1, Juliano Varella de Carvalho 1 1 Centro Universitário Feevale Instituto de Ciência Exatas e Tecnológicas Novo

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

Banco de Dados I. Introdução. Fabricio Breve

Banco de Dados I. Introdução. Fabricio Breve Banco de Dados I Introdução Fabricio Breve Introdução SGBD (Sistema Gerenciador de Banco de Dados): coleção de dados interrelacionados e um conjunto de programas para acessar esses dados Coleção de dados

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Segurança da Informação

Segurança da Informação Segurança da Informação Segurança e Vulnerabilidades em Aplicações Web jobona@terra.com.br Definição: Segurança Segundo o dicionário da Wikipédia, o termo segurança significa: 1. Condição ou estado de

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. 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

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

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

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

Tolerância a Falhas em sistemas distribuídos (programação)

Tolerância a Falhas em sistemas distribuídos (programação) Tolerância a Falhas em sistemas distribuídos (programação) Arthur Zavattieri Cano Lopes Curso de Redes e Segurança de Sistemas Pontifícia Universidade Católica do Paraná Curitiba, Maio de 2009. Resumo

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

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

Leia mais

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

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

Injeção de SQL - Detecção de evasão

Injeção de SQL - Detecção de evasão Injeção de SQL - Detecção de evasão Resumo A detecção dos ataques de injeção de SQL era feita inicialmente com o uso de técnicas de reconhecimento de padrões, verificados contra assinaturas e palavraschave

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

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

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

ANEXO 9 DO PROJETO BÁSICO DA FERRAMENTA DE MONITORAMENTO, SEGURANÇA E AUDITORIA DE BANCO DE DADOS

ANEXO 9 DO PROJETO BÁSICO DA FERRAMENTA DE MONITORAMENTO, SEGURANÇA E AUDITORIA DE BANCO DE DADOS ANEXO 9 DO PROJETO BÁSICO DA FERRAMENTA DE MONITORAMENTO, SEGURANÇA E AUDITORIA DE BANCO DE DADOS Sumário 1. Finalidade... 2 2. Justificativa para contratação... 2 3. Premissas para fornecimento e operação

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

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

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. Unidade 1. Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira

Introdução. Unidade 1. Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Unidade 1 Introduçã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é Pereira Contexto

Leia mais

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1 Segurança na Web Capítulo 9: Segurança em Aplicações Web Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW Page 1 Introdução Quando se fala em segurança na WEB é preciso pensar inicialmente em duas frentes:

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Engenharia de Software Aplicações de Internet

Engenharia de Software Aplicações de Internet Engenharia de Software Aplicações de Internet Eduardo Santos eduardo.edusantos@gmail.com eduardo.santos@planejamento.gov.br www.softwarepublico.gov.br Histórico Por que existe a Internet? Por que existe

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

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

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento QUESTÕES DE TI QUESTÃO 16 Considerando-se o número de pontos de função para a estimativa do tamanho de um software, é INCORRETO afirmar que, na contagem de pontos, leva-se em consideração A) as compilações

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

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

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Top Ten OWASP. Fausto Levandoski 1. Curso Tecnólogo em Segurança da Informação Av. Unisinos, 950 93.022-000 São Leopoldo RS Brasil. farole@gmail.

Top Ten OWASP. Fausto Levandoski 1. Curso Tecnólogo em Segurança da Informação Av. Unisinos, 950 93.022-000 São Leopoldo RS Brasil. farole@gmail. Top Ten OWASP Fausto Levandoski 1 1 Universidade do Vale do Rios dos Sinos (UNISINOS) Curso Tecnólogo em Segurança da Informação Av. Unisinos, 950 93.022-000 São Leopoldo RS Brasil farole@gmail.com Abstract.

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

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

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

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

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL 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 Language para suas

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

milenaresende@fimes.edu.br

milenaresende@fimes.edu.br Fundação Integrada Municipal de Ensino Superior Sistemas de Informação A Internet, Intranets e Extranets milenaresende@fimes.edu.br Uso e funcionamento da Internet Os dados da pesquisa de TIC reforçam

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

MODELO RELACIONAL - UFMA

MODELO RELACIONAL - UFMA MODELO RELACIONAL Universidade Federal do Maranhão - UFMA Departamento de Informática Projeto de Banco de Dados Profª.MSc Simara Rocha simararocha@gmail.com/simara@deinf.ufma.br www.deinf.ufma.br/~simara

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

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

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

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

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

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

Conceitos básicos de Banco de Dados

Conceitos básicos de Banco de Dados Modelagem de Banco de Dados Conceitos básicos de Banco de Dados Professor: Anderson D. Moura Março, 2009 Banco de Dados Bancos de dados, (ou bases de dados), são conjuntos de dados com uma estrutura regular

Leia mais

TEORIA GERAL DE SISTEMAS

TEORIA GERAL DE SISTEMAS TEORIA GERAL DE SISTEMAS Vulnerabilidade dos sistemas e uso indevido Vulnerabilidade do software Softwares comerciais contém falhas que criam vulnerabilidades na segurança Bugs escondidos (defeitos no

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

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento. Roteiro Modelo de Dados Relacional Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Introduçã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

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

Fundamentos da inteligência de negócios: gestão da informação e de bancos de dados

Fundamentos da inteligência de negócios: gestão da informação e de bancos de dados Fundamentos da inteligência de negócios: gestão da informação e de bancos de dados slide 1 1 Copyright 2011 Pearson Education, Inc. publishing as Prentice Hall Objetivos de estudo Como um banco de dados

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

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS REVISTA DE CIÊNCIAS EXATAS E TECNOLOGIA AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS Eder Pazinatto Faculdade Anhanguera de Passo Fundo RESUMO: A busca por mecanismos que implementam segurança

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

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

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

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

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS Unidade 1 - Introdução Dados; Banco de Dados; Base de Dados; Projeto de Banco de Dados.

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

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

Integrated User Verification Guia de Implementação do Cliente 2015-05-04 Confidencial Versão 2.9

Integrated User Verification Guia de Implementação do Cliente 2015-05-04 Confidencial Versão 2.9 Integrated User Verification Guia de Implementação do Cliente 2015-05-04 Confidencial Versão 2.9 SUMÁRIO Introdução... 2 Finalidade e público-alvo... 2 Sobre este documento... 2 Termos mais utilizados...

Leia mais

Utilizaremos a última versão estável do Joomla (Versão 2.5.4), lançada em

Utilizaremos a última versão estável do Joomla (Versão 2.5.4), lançada em 5 O Joomla: O Joomla (pronuncia-se djumla ) é um Sistema de gestão de conteúdos (Content Management System - CMS) desenvolvido a partir do CMS Mambo. É desenvolvido em PHP e pode ser executado no servidor

Leia mais

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

As doze maiores ameaças do mercado intermediário: evitando ataques maliciosos comuns em nível de aplicativo.

As doze maiores ameaças do mercado intermediário: evitando ataques maliciosos comuns em nível de aplicativo. Gerenciamento de segurança on-line White paper Dezembro de 2007 As doze maiores ameaças do mercado intermediário: evitando ataques maliciosos comuns Página 2 Conteúdo 2 Introdução 3 Compreendendo ataques

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Segurança na WEB Ambiente WEB estático

Segurança na WEB Ambiente WEB estático Segurança de Redes Segurança na WEB Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Servidor IIS Apache Cliente Browser IE FireFox Ambiente WEB estático 1 Ambiente Web Dinâmico Servidor Web Cliente Navegadores

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

Ameaças, riscos e vulnerabilidades Cont. Objetivos

Ameaças, riscos e vulnerabilidades Cont. Objetivos Ameaças, riscos e vulnerabilidades Cont. Prof. Esp. Anderson Maia E-mail: tecnologo.maia@gmail.com Objetivos entender a definição dos termos hacker, cracker e engenharia social; compreender a anatomia

Leia mais

Padrões de Contagem de Pontos de Função

Padrões de Contagem de Pontos de Função Padrões de Contagem de Pontos de Função Contexto Versão: 1.0.0 Objetivo O propósito deste documento é apresentar os padrões estabelecidos para utilização da técnica de Análise de Pontos de Função no ambiente

Leia mais