UMA SEMÂNTICA DIFUSA PARA CONSULTAS FLEXÍVEIS EM BASES DE DADOS RELACIONAIS

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

Download "UMA SEMÂNTICA DIFUSA PARA CONSULTAS FLEXÍVEIS EM BASES DE DADOS RELACIONAIS"

Transcrição

1 UMA SEMÂNTICA DIFUSA PARA CONSULTAS FLEXÍVEIS EM BASES DE DADOS RELACIONAIS Samyr Abrahão Moises¹, Silvio do Lago Pereira² ¹Aluno do Curso de Análise e Desenvolvimento de Sistemas FATEC-SP ²Prof. Dr. do Departamento de Tecnologia da Informação FATEC-SP samyr.moises@fatec.sp.gov.br, slago@pq.cnpq.br Resumo Na maior parte das aplicações de bancos de dados, as consultas visam recuperar dados satisfazendo condições precisas, cuja semântica é definida pela lógica clássica. Porém, em muitas situações práticas, consultas flexíveis, envolvendo termos vagos, são desejadas. Nesse caso, o raciocínio para obter respostas à consulta deve levar em conta algum nível de incerteza, uma vez que a semântica para termos vagos não é universal. Assim, para definir a semântica dos termos vagos, e consequentemente das consultas flexíveis, este artigo propõe um modelo baseado em lógica difusa. Para verificar a funcionalidade desse modelo, um protótipo dele é implementado em Prolog. 1. Introdução Uma base de dados relacional [1] é uma coleção de dados precisos, organizados em uma ou mais tabelas, da qual dados específicos podem ser recuperados por meio de consultas feitas por um usuário. Por exemplo, a Figura 1 mostra uma tabela contendo dados sobre pessoas. person name sex age height Ada female Ann female Bob male Ely male Eva female Joe male Meg female Sam male Tom male Zoe female Figura 1 Dados organizados em forma de tabela. Na maior parte das aplicações envolvendo bases de dados relacionais, as consultas efetuadas visam recuperar dados satisfazendo condições precisas como, por exemplo, encontre pessoas do sexo feminino. A semântica para esse tipo de consulta é definida pela lógica clássica, na qual uma proposição deve ser exclusivamente verdadeira ou falsa [1]. Porém, em muitas situações práticas, são desejadas consultas mais flexíveis como, por exemplo, encontre pessoas jovens e altas. Nesse caso, o raciocínio para encontrar respostas à consulta deve levar em conta algum nível de incerteza, uma vez que não há limites precisos a Os termos foram mantidos em inglês para possibilitar uma leitura mais natural e uniforme das consultas consideradas ao longo do artigo. partir dos quais uma pessoa deixa de ser jovem ou passa a ser alta. Ademais, a semântica para esses termos vagos (e.g., jovem e alta ) não é universal, pelo contrário, depende muito do contexto em que eles são usados (e.g., uma pessoa alta e uma torre alta não têm a mesma altura). Assim, para definir a semântica dos termos vagos, e consequentemente de consultas flexíveis em bases de dados relacionais precisas, este artigo investiga o uso de um modelo baseado em lógica difusa [2]. Para analisar a funcionalidade desse modelo, um protótipo desenvolvido em linguagem Prolog [3] foi testado com várias consultas, de diferentes tipos. O restante desse artigo está organizado do seguinte modo: a Seção 2 discute a limitação semântica da linguagem de consulta padrão em bancos de dados relacionais; a Seção 3 introduz os fundamentos de lógica difusa e mostra como eles podem ser usados para definir a semântica de consultas flexíveis; a Seção 4 descreve um protótipo para o modelo semântico proposto e discute resultados obtidos com ele; a Seção 5 apresenta as conclusões finais. 2. Limitação da Linguagem SQL Atualmente, SQL (Structured Query Language) [1] é considerada a linguagem padrão de consulta em bases de dados relacionais precisas. Nessa linguagem, uma tabela é definida por uma relação n-ária entre atributos e uma consulta tem a seguinte forma básica: select <attributes> from <table> where <condition> Por exemplo, considerando-se a tabela apresentada na Figura 1, a consulta select name where sex = 'female' recupera todos os nomes de pessoas do sexo feminino. Para recuperar nome, idade e altura de pessoas jovens e altas, uma possível consulta em SQL seria a seguinte: select name, age, height where age<=25 and height>=1.80 Como se pode observar na Figura 2, essa consulta recupera apenas a tupla Sam, 20, Portanto, se essa tupla não estivesse na tabela, a consulta não teria resposta. Além disso, intuitivamente, é muito difícil justificar porque a tupla Sam, 20, 1.95 representa uma pessoa jovem e alta, mas as tuplas Joe, 22, 1.79 e Bob, 27, 1.92 não. Uma tentativa de solucionar esse problema poderia levar a uma reformulação da consulta, usando uma condição menos restritiva (e.g., age<=27 and height>=1.79). Porém, isso não resolveria o problema de forma definitiva [4].

2 Figura 2 Resultado de consulta rígida com SQL. De fato, essa limitação de SQL é devida à semântica das condições impostas nas consultas, que é muito rígida. 3. Semântica das Consultas Flexíveis Nessa seção, a lógica difusa é introduzida como uma alternativa para uma semântica mais flexível e também mais próxima da intuição humana Conjuntos Difusos e Lógica Difusa Seja U um universo de discurso, contendo todos os elementos relevantes em um determinado contexto de aplicação. Um conjunto clássico C, no universo U, pode ser definido por uma função de pertinência discreta, denotada por µ C (x), tal que: 0 µ C (x) = 1 Por outro lado, um conjunto difuso F, no universo U, é definido por uma função de pertinência contínua, denotada por µ F (x), que mapeia elementos de U no intervalo [0,1]. Portanto, o conceito de conjunto difuso é uma generalização do conceito de conjunto clássico. Essa generalização, originalmente proposta por Lotfi A. Zadeh [5], deu origem ao formalismo conhecido como lógica difusa (ou fuzzy logic) [2]. Na lógica clássica, a semântica de um predicado p é definida com base no conceito de conjunto clássico, i.e., p(x) é verdade se µ p (x) = 1 e p(x) é falso se µ p (x) = 0. Além disso, a semântica dos conectivos lógicos (, e ) é definida por tabelas-verdade, amplamente conhecidas, que mapeiam fórmulas compostas por predicados clássicos em valores-verdade (0 ou 1). Na lógica difusa, porém, a semântica dos predicados é definida com base em conjuntos difusos, ou seja, em funções de pertinência contínuas. Ademais, a semântica dos conectivos também é definida por funções contínuas que mapeiam fórmulas compostas por predicados difusos em valores no intervalo [0,1]. Há diversas formulações para a semântica dos conectivos difusos [2]. A mais comum, adotada nesse trabalho, define a conjunção como a t-norma mínima e a disjunção como a s-norma máxima [6], uma vez que essas funções mantêm grande parte das propriedades básicas dos conectivos lógicos clássicos. negação: µ ( p) (x) = 1 µ p (x) conjunção: µ (p q) (x) = min( µ p (x), µ q (x) ) disjunção: µ (p q) (x) = max( µ p (x), µ q (x) ) Assim, quando as funções de pertinência são discretas, o resultado da avaliação de uma fórmula composta por conectivos difusos é o mesmo dado pelos conectivos clássicos. Por exemplo: negação: 1 0 = 1 e 1 1 = 0. conjunção: min(0,0) = min(0,1) = min(1,0) = 0 e min(1,1) = 1. disjunção: max(0,1) = max(1,0) = max(1,1) = 1 e max(0,0) = Funções de Pertinência Difusas O principal elemento na definição da semântica das fórmulas numa lógica difusa é a função de pertinência. Quando o universo de discurso é o conjunto IR, as funções de pertinência (membership function) mais usadas são a sigmoidal (1), a gaussiana (2) e a trapezoidal (3). smf(x,a,c) = () (1) gmf(x,d,m) = ( ) (2) tmf(x,a,b,c,d) = max0,min1,min, (3) As formas das curvas dessas funções, bem como a influência dos parâmetros, são ilustradas na Figura 3. Figura 3 Formas de funções de pertinência difusa. Além dessas funções, outras funções de pertinência podem ser definidas, conforme a necessidade da aplicação. Nos exemplos apresentados nesse artigo, apenas funções sigmoidais são usadas.

3 3.3. Semântica de Termos Vagos Usando funções de pertinência difusa é possível definir uma semântica mais intuitiva para termos vagos. Por exemplo, os termos young (jovem) e tall (alto) podem ser definidos da seguinte forma: young(age) = smf(age, 0.5,30) = tall(height) = smf(height,12,1.65) =. () (.) A escolha de uma função específica para definir a semântica de um termo vago é subjetiva, mas deve levar em conta a intuição humana. A Figura 4 mostra os gráficos para as funções escolhidas para definir a semântica dos termos young e tall Consultas Flexíveis em SQL Estendido Para que consultas flexíveis possam ser feitas em SQL, além da semântica, a sintaxe básica das consultas também precisa ser alterada. Por exemplo, a seguinte sintaxe poderia ser adotada: select <attributes> from <table> where <precise_condition > order <vague_condition > thold <alpha_cut> Para recuperar as respostas para uma consulta desse tipo, basicamente, deve-se proceder da seguinte maneira: coletar todas as tuplas da tabela <table>, para as quais <precise_condition > é satisfeita; avaliar <vague_condition > para cada uma das tuplas coletadas, associando a cada uma delas um grau de pertinência (degree), e selecionando apenas aquelas com grau maior ou igual a <alpha_cut>; apresentar a projeção <attributes> das tuplas selecionadas, em ordem decrescente de grau de pertinência. Esse procedimento, conforme ilustrado na Figura 5, toma como entrada uma tabela precisa, à qual todas as tuplas pertencem com grau 1, e devolve como resposta uma tabela difusa, à qual as tuplas pertencem com um grau entre α e 1. Quanto maior o grau de uma tupla em uma tabela difusa, maior a certeza de que essa tupla realmente pertence a essa tabela [6]. Tabela Precisa Tuplas com grau de pertinência igual a 1 Consulta Flexível Tabela Difusa Tuplas com grau de pertinência entre α e 1 Figura 4 Semântica para os termos young e tall. Assim, por exemplo, para uma pessoa com 20 anos de idade e 1.95 de altura (e.g., Sam na Figura 1), tem-se: young(20) =. () = tall(1.95) = (..) = Consequentemente, pode-se dizer que tal pessoa é jovem e alta com grau de pertinência: young(20) tall(1.95) = min(0.9933,0.9734) = Note que, com essa nova semântica, todas as pessoas podem ser consideradas jovens e altas, em algum grau entre 0 a 1. Quanto maior esse grau, maior a certeza dessa condição. Por exemplo, os graus para Joe, 22, 1.79 e Bob, 27, 1.92 são, respectivamente, e ; enquanto os graus para Ann, 33, 1.60 e Meg, 63, 1.75 são, respectivamente, e 0. Para evitar que uma consulta flexível recupere respostas com grau de pertinência muito baixo (ou nulo), pode-se definir um valor de corte 0 α 1, tal que apenas respostas com grau maior ou igual a α sejam obtidas. Figura 5 Mapeamento efetuado por consulta flexível. Por exemplo, considerando-se a tabela na Figura 1, a consulta a seguir deve produzir como resposta as tuplas apresentadas na Figura 6. Conforme argumentação feita na Seção 2, o conjunto de respostas recuperadas com essa consulta flexível é mais abrangente, e intuitivo, do que aquele apresentado na Figura 2. select name, age, height where sex = 'male' order young and tall thold 0.8 degree name age height Sam Joe Bob Figura 6 Respostas para consulta em SQL estendido. Atualmente, uma implementação dessa proposta está sendo feita diretamente em MySQL [7]. Porém, antes de iniciar essa implementação, um protótipo foi desenvolvido em Prolog [3]. Esse protótipo e resultados experimentais obtidos com ele são descritos na próxima seção.

4 4. Protótipo e Resultados Experimentais A linguagem Prolog (Programming in Logic), escolhida para implementação do modelo semântico difuso proposto, é amplamente reconhecida por sua capacidade de manipulação de bases de dados relacionais [8]. De fato, toda consulta feita em SQL também pode ser feita em Prolog [9]. Em Prolog, uma tabela é representada por um arquivo de texto contendo um conjunto de fatos (i.e., cláusulas incondicionais), especificados em uma notação muito similar àquela da lógica de predicados. Por exemplo, o conjunto de fatos na Figura 7 equivale à tabela na Figura 1. % person(name, sex, age, height) person('ada', female, 10, 1.45). person('ann', female, 33, 1.60). person('bob', male, 27, 1.92). person('ely', male, 59, 1.65). person('eva', female, 26, 1.72). person('joe', male, 22, 1.79). person('meg', female, 63, 1.75). person('sam', male, 20, 1.95). person('tom', male, 50, 1.72). person('zoe', female, 44, 1.71). Figura 7 Codificação da tabela person em Prolog. A Figura 8 mostra um exemplo de consulta a uma tabela em Prolog. Uma vez que uma tabela tenha sido carregada para a base de dados do sistema, pelo predicado predefinido consult, as tuplas que respondem a uma consulta específica podem ser listadas com o auxílio dos predicados predefinidos forall e writeln. Note que a consulta especificada em Prolog como person(name,_,_,height), Height>1.70 equivale à seguinte consulta especificada em SQL: select name, height where height > Implementação do Protótipo O protótipo foi implementado como um módulo do compilador SWI-Prolog (AMD64, Multi-threaded, 6.2.6). Para usar esse módulo, basta adicionar a seguinte diretiva de compilação na aplicação desenvolvida em Prolog: :- use_module(fqlib). O módulo fqlib (Flexible Query Library), que implementa o modelo semântico difuso para consultas flexíveis proposto nesse artigo, oferece os seguintes recursos: Funções de pertinência difusas (smf, gmf e tmf), para definir a semântica de termos vagos usados em consultas flexíveis. Conectivos lógicos (not, and e or), para especificar condições usadas nas consultas flexíveis. Modificador difuso (very), para intensificar o valor de termos difusos (operação de concentração). Comando de consulta (fselect), para efetuar consultas flexíveis em tabelas previamente declaradas com o comando schema. Por exemplo, para que consultas flexíveis envolvendo os termos vagos young e tall possam ser feitas na tabela da Figura 6, é preciso incluir a seguinte declaração: schema(person, [name, sex, age, height], [young = smf(age,-0.5,30), tall = smf(height,12,1.65)]). Essa declaração define o nome da tabela, os nomes de seus atributos e os termos vagos de seu vocabulário, que poderão ser usados nas consultas flexíveis. Cada termo do vocabulário deve ser definido pela aplicação de uma função de pertinência difusa a um atributo da tabela. Após a declaração do esquema de uma tabela, podese usar o comando fselect para efetuar consultas flexíveis nessa tabela. A sintaxe desse comando é a seguinte: fselect(<attributes>, <table>, <precise_condition>, <vague_condition>, <alpha_cut>) Por exemplo, para recuperar nome, idade e altura de pessoas do sexo feminino, que sejam jovens e não muito altas, com um grau de pertinência mínimo de 0.8, podese efetuar a seguinte consulta em Prolog:?- fselect([name, age, height], person, sex = female, young and not very tall, 0.8). Figura 8 Consulta a uma tabela em Prolog. Como se pode verificar, a linguagem Prolog é bastante apropriada para a criação do protótipo investigado nesse trabalho. Não apenas por ser capaz de representar qualquer consulta SQL, mas principalmente por sua simplicidade, flexibilidade e facilidade de uso. Como se pode notar, a linguagem de especificação de condições vagas se aproxima muito da língua natural (i.e., inglês), sendo bastante intuitiva para o usuário que faz a consulta. Para que isso seja possível, o módulo fqlib usa internamente alguns comandos que são sucintamente descritos a seguir. Esse módulo, e o exemplo de aplicação discutido na próxima seção, estão disponíveis em

5 O comando fqlib:translate recebe como entrada uma expressão lógica, contendo termos vagos, e um vocabulário e devolve como saída a expressão correspondente em que os termos vagos são traduzidos em funções de pertinência, de acordo com o vocabulário. Por exemplo, a chamada:?- fqlib:translate(young and not very tall, [young = smf(age,-0.5,30), tall = smf(height,12,1.65)], Translation). produz como saída a tradução: smf(age,-0.5,30) and not very smf(height,12,1.65) O comando fqlib:interpret recebe como entrada uma expressão lógica traduzida, uma lista de nomes de atributos e uma tupla de valores e, como saída, devolve a expressão correspondente em que os atributos são substituídos por seus respectivos valores. Por exemplo, a chamada:?- fqlib:interpret(smf(age,-0.5,30) and not very smf(height,12,1.65), [name,sex,age,height], ['Ada',female,10,1.45], Interpretation). produz como saída a interpretação: smf(10,-0.5,30) and not very smf(1.45,12,1.65) Finalmente, o comando fqlib:degree recebe como entrada uma expressão lógica interpretada e devolve como saída seu valor lógico difuso. Por exemplo, a chamada:?- fqlib:degree(smf(10,-0.5,30) and not very smf(1.45,12,1.65), Value). produz como saída o valor: Assim, conclui-se que a tupla Ada, female, 10, 1.45 pertence ao conjunto difuso young and not very tall com grau Experimentos Realizados com o Protótipo Para testar a funcionalidade do protótipo desenvolvido, foram realizados diversos tipos de consultas à tabela na Figura 7 (devidamente modificada com a inclusão da diretiva use_module e da declaração schema, já descritas na subseção anterior). O primeiro tipo de consulta considera condições triviais, indicadas pela constante true. Evidentemente, esse tipo de consulta deve recuperar todas as tuplas da tabela, já que não impõe nenhuma restrição sobre os valores das tuplas a serem selecionadas. Entretanto, com esse tipo de consulta, é possível selecionar apenas alguns atributos da tabela, bem como modificar a sua ordem original declarada no esquema da tabela. Um exemplo desse tipo de consulta é apresentado na Figura 9. Note que, como a condição vaga é trivial, o grau de pertinência é 1 para todas as tuplas dadas como resposta. Figura 9 Consulta com condições triviais. O segundo tipo de consulta tem apenas condição precisa (i.e., a condição vaga é trivial) e, portanto, equivale às consultas em SQL padrão. Um exemplo desse tipo de consulta, que seleciona todas as tuplas que satisfazem à condição precisa (sex = female) and (age < 30), é apresentado na Figura 10. Figura 10 Consulta contendo apenas condição precisa. O terceiro tipo de consulta tem apenas condição vaga (i.e., a condição precisa é trivial) e, portanto, não pode ser especificado diretamente em SQL padrão. Um exemplo desse tipo de consulta, que seleciona todas as tuplas que satisfazem à condição vaga young and not tall, com grau de pertinência mínimo 0.2, é exibido na Figura 11. Figura 11 Consulta contendo apenas condição vaga.

6 O quarto tipo de consulta tem ambas as condições e, portanto, também não pode ser especificado diretamente em SQL padrão. Um exemplo desse tipo de consulta, com condições (sex = male) e young and tall e grau de pertinência mínimo 0.8, é exibido na Figura 12. Figura 12 Consulta com ambos os tipos de condição. A Figura 13 mostra uma tentativa de expressar a consulta da Figura 12 usando uma condição precisa, em vez de uma condição vaga. Os resultados experimentais mostram que o modelo semântico proposto é bastante adequado: tanto do ponto de vista de generalidade, pois engloba todo tipo de consulta que pode ser feita em SQL padrão; quanto do ponto de vista de expressividade das consultas, pois permite que condições vagas sejam especificadas por sentenças em linguagem muito próxima da língua natural, muito mais intuitiva para o usuário. Os resultados experimentais também mostraram que as respostas obtidas com consultas flexíveis são muito mais próximas daquelas intuitivamente esperadas. Além disso, devido à sua escala de valores mais refinada (i.e., o intervalo [0,1], em vez do conjunto {0,1}), as consultas flexíveis permitem obter respostas que não seriam obtidas com consultas rígidas, diminuindo, assim, o risco de se obter um conjunto vazio de respostas. Como continuidade desse trabalho, uma implementação do modelo semântico difuso proposto está sendo feita diretamente em MySQL. Uma interface amigável para definição de consultas flexíveis em SQL estendido também será desenvolvida. Agradecimentos Ao CNPq pela bolsa de Iniciação Científica 1 (Processo nº /2013-8) e pela bolsa de Produtividade em Pesquisa 2 (Processo nº /2012-5). Referências Bibliográficas Figura 13 Condição precisa versus condição vaga. Comparando-se as respostas apresentadas paras as consultas nas Figuras 12 e 13, pode-se perceber que a especificação de uma condição vaga é muito mais intuitiva do que a especificação de uma condição precisa. Usando consulta flexível, o usuário não precisa se preocupar em definir faixas aceitáveis de valores para atributos nas respostas a serem obtidas. Além disso, quando uma consulta flexível é feita, o sistema apresenta as melhores respostas possíveis para ela, evitando que o usuário tenha que reformular uma condição precisa (tornando-a menos restritiva) para que um conjunto maior (ou não vazio) de respostas seja obtido. 5. Conclusões Este artigo descreve um modelo semântico difuso para consultas flexíveis (i.e., consultas cujas condições impostas envolvem o uso de termos vagos), discute detalhes da implementação de um protótipo desse modelo em linguagem Prolog e apresenta resultados de experimentos realizados com esse protótipo. [1] S. Abiteboul; R. Hull; V. Vianu. Foundation of Databases: The Logical Level, Addison-Wesley, [2] L. Wang. A Course in Fuzzy Systems and Control, Prentice-Hall, [3] I. Bratko. Prolog Programming for Artificial Intelligence, 4 th Ed., Pearson, [4] M. Hudec. An Approach to Fuzzy Database Querying, Analysis and Realisation. Computer Science and Information Systems, Vol. 6, No. 2, p , [5] L. A. Zadeh. Fuzzy Sets, Information and Control, Vol. 8, No. 3, pp , [6] J. Galindo; A. Urrutia; M. Piattini. Fuzzy Databases: Modeling, Design and Implementation, Idea Group Publishing, [7] Oracle. MySQL 5.6 Reference Manual, disp. em acessado em 13 mar [8] C. Zaniolo. Prolog: A Database Language for all Seasons. In L. Kerschberg,. editor, Expert Database Systems. Benjamin-Cummings, [9] J. Eder. Logic and Databases. Advanced Topics in Artificial Intelligence, LNCS 617, pp , 1992.

Linguagem Lógica Prolog

Linguagem Lógica Prolog Linguagem Lógica Prolog Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Conteúdo O que é diferente na Programação Lógica Cláusulas, Fatos, Regras e Predicado Objetos

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

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

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

Á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

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

Práticas de Programação em Lógica. José Romildo Malaquias

Práticas de Programação em Lógica. José Romildo Malaquias Práticas de Programação em Lógica José Romildo Malaquias 9 de março de 2010 2 Sumário 1 Execução de programas em Prolog 1-1 1.1 Objetivos........................................ 1-1 1.2 Conceitos........................................

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

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

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque. 061-2733589 fernando@cic.unb.br

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque. 061-2733589 fernando@cic.unb.br Bancos de Dados Fernando Albuquerque 061-2733589 fernando@cic.unb.br Tópicos Introdução O modelo relacional A linguagem SQL Introdução O que é um banco de dados : Coleção de informações que existe por

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

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

SQL UMA ABORDAGEM INTERESSANTE

SQL UMA ABORDAGEM INTERESSANTE SQL é uma linguagem de consulta estruturada, do inglês Structured Query Language. É uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

Tarefa Orientada 10 Obter informação a partir de uma tabela

Tarefa Orientada 10 Obter informação a partir de uma tabela Tarefa Orientada 10 Obter informação a partir de uma tabela Objectivos: Consultar dados de uma tabela Utilizar operadores aritméticos, relacionais, lógicos, de concatenação de cadeias de caracteres, LIKE

Leia mais

Consultas SQL com mais de uma 01 tabela

Consultas SQL com mais de uma 01 tabela Consultas SQL com mais de uma 01 tabela Mostrar a marca, modelo, cor e valor de todos os carros com valores entre 20.000 e 30.000 SELECT MARCAS.marca, MARCAS.modelo, CARROS.cor, CARROS.valor FROM MARCAS,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução, motivação e conjuntos fuzzy

Introdução, motivação e conjuntos fuzzy Lógica Fuzzy Introdução, motivação e conjuntos fuzzy Professor: Mário Benevides Monitores: Bianca Munaro Diogo Borges Jonas Arêas Renan Iglesias Vanius Farias Introdução "A lógica difusa tem por objetivo

Leia mais

Preparação do Trabalho de Pesquisa

Preparação do Trabalho de Pesquisa Preparação do Trabalho de Pesquisa Ricardo de Almeida Falbo Metodologia de Pesquisa Departamento de Informática Universidade Federal do Espírito Santo Pesquisa Bibliográfica Etapas do Trabalho de Pesquisa

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

CHECK - LIST - ISO 9001:2000

CHECK - LIST - ISO 9001:2000 REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da

Leia mais

Banco de Interpretação ISO 9001:2008. Gestão de recursos seção 6

Banco de Interpretação ISO 9001:2008. Gestão de recursos seção 6 6 RSI 028 Pode ser interpretadado no item 6.0 da norma ABNT NBR ISO 9001 que o conceito de habilidade pode ser definido como Habilidades Técnicas e Comportamentais e que estas podem ser planejadas e registradas

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Complemento III Noções Introdutórias em Lógica Nebulosa

Complemento III Noções Introdutórias em Lógica Nebulosa Complemento III Noções Introdutórias em Lógica Nebulosa Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

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

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Processo de Implementação de um Sistema de Gestão da Qualidade

Processo de Implementação de um Sistema de Gestão da Qualidade 3 Processo de Implementação de um Sistema de Gestão da Qualidade Não existe um jeito único de se implementar um sistema da qualidade ISO 9001: 2000. No entanto, independentemente da maneira escolhida,

Leia mais

AS LEIS DE NEWTON PROFESSOR ANDERSON VIEIRA

AS LEIS DE NEWTON PROFESSOR ANDERSON VIEIRA CAPÍTULO 1 AS LEIS DE NEWTON PROFESSOR ANDERSON VIEIRA Talvez o conceito físico mais intuitivo que carregamos conosco, seja a noção do que é uma força. Muito embora, formalmente, seja algo bastante complicado

Leia mais

Introdução à ISO 9001:2015

Introdução à ISO 9001:2015 Trilhando o caminho das mudanças da nova versão Clique aqui para para conhecer-me. Introdução à ISO 9001:2015 Apresentar e interpretar As mudanças da norma versão da ABNT ISO 9001:2015 em relação à ABNT

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

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

MODELO DE DADOS VS ESQUEMA

MODELO DE DADOS VS ESQUEMA MODELO DE DADOS VS ESQUEMA Um modelo de dados é um conjunto de conceitos usados para se descrever dados. Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas. Álgebra Relacional Álgebra Relacional é o conjunto básico de operações para o Modelo Relacional. Essas operações permitem a um usuário especificar as solicitações básicas de recuperação. O resultado de

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

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

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

Revisão de Banco de Dados

Revisão de Banco de Dados Revisão de Banco de Dados Fabiano Baldo 1 Sistema de Processamento de Arquivos Antes da concepção dos BDs o registro das informações eram feitos através de arquivos. Desvantagens: Redundância e Inconsistência

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

CAPÍTULO 25 COERÊNCIA REGULATÓRIA

CAPÍTULO 25 COERÊNCIA REGULATÓRIA CAPÍTULO 25 COERÊNCIA REGULATÓRIA Artigo 25.1: Definições Para efeito deste Capítulo: medida regulatória coberta significa a medida regulatória determinada por cada Parte a ser objeto deste Capítulo nos

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

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

T U T O R I A I S WEB OF SCIENCE TUTORIAL. Biblioteca da Escola de Engenharia da UFRGS. WEB OF SCIENCE - Tutorial

T U T O R I A I S WEB OF SCIENCE TUTORIAL. Biblioteca da Escola de Engenharia da UFRGS. WEB OF SCIENCE - Tutorial T U T O R I A I S WEB OF SCIENCE TUTORIAL Biblioteca da Escola de Engenharia da UFRGS WEB OF SCIENCE - Tutorial O que é? O Web of Science é uma base de dados que disponibiliza acesso a mais de 9.200 títulos

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

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

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES FUNÇÕES O conceito de função é um dos mais importantes em toda a matemática. O conceito básico de função é o seguinte: toda vez que temos dois conjuntos e algum tipo de associação entre eles, que faça

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

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

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

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE Mariane Alves Gomes da Silva Eliana Zandonade 1. INTRODUÇÃO Um aspecto fundamental de um levantamento

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias

Leia mais

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL PROF. MS C. RICARDO ANTONELLO WWW.ANTONELLO.COM.B R PORQUE SER RELACIONAL? Hoje, há um claro predomínio dos SGBD relacionais, principalmente

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Análise de Ponto de Função

Análise de Ponto de Função Complemento para o Curso Análise de Ponto de Função FUNÇÕES DO TIPO DADO O termo Arquivo não significa um arquivo do sistema operacional, como é comum na área de processamento de dados. Se refere a um

Leia mais

DIRETÓRIOS. Diretórios ZIM. Estabelecer um diretório de aplicativo. Campos do objeto Diretórios. Diretórios estrangeiros. Zim 8.

DIRETÓRIOS. Diretórios ZIM. Estabelecer um diretório de aplicativo. Campos do objeto Diretórios. Diretórios estrangeiros. Zim 8. DIRETÓRIOS Um diretório é um objeto do aplicativo. Diretórios de aplicativos são usados para organizar os objetos definidos no Dicionário de Objetos para a aplicação. Diretórios ZIM ZIM 8 proporciona uma

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

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

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução 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

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

O Gerenciamento de Documentos Analógico/Digital

O Gerenciamento de Documentos Analógico/Digital Tipos de GED: Document imaging Document management Document Imaging / Document Management O Gerenciamento de Documentos Analógico/Digital Mundo analógico Criação Revisão Processamento Arquivo Mundo digital

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Implantação. Prof. Eduardo H. S. Oliveira

Implantação. Prof. Eduardo H. S. Oliveira Visão Geral A implantação de um sistema integrado de gestão envolve uma grande quantidade de tarefas que são realizadas em períodos que variam de alguns meses a alguns anos, e dependem de diversos fatores,

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 1

Bases de Dados. DML Data Manipulation Language Parte 1 Bases de Dados DML Data Manipulation Language Parte 1 DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos)

Leia mais

Estratégia de execução de consultas em um Sistema de Gerenciamento de Banco de Dados Geográfico

Estratégia de execução de consultas em um Sistema de Gerenciamento de Banco de Dados Geográfico Universidade Federal de Minas Gerais Instituto de Ciências Exatas Programa de Pós-Graduação em Ciência da Computação Estratégia de execução de consultas em um Sistema de Gerenciamento de Banco de Dados

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

Manual Do Usuário Processo Aditivo de Prazo

Manual Do Usuário Processo Aditivo de Prazo Manual Do Usuário Processo Aditivo de Prazo Versão 1.0 Agosto 2015 2 SUMÁRIO 1 OBJETIVO... 3 2 INTRODUÇÃO... 3 3 ACESSANDO O SISTEMA DE GESTÃO DE PROCESSOS... 4 4 CONFIGURANDO O IDIOMA DO SISTEMA... 5

Leia mais

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em Material retirado do site Office online. Introdução aos critérios de consulta Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em referências de campo, operadores e

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

Universidade de Brasília Faculdade de Ciência da Informação Profa. Lillian Alvares

Universidade de Brasília Faculdade de Ciência da Informação Profa. Lillian Alvares Universidade de Brasília Faculdade de Ciência da Informação Profa. Lillian Alvares Existem três níveis distintos de planejamento: Planejamento Estratégico Planejamento Tático Planejamento Operacional Alcance

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Algumas vantagens da Teoria das Descrições Definidas (Russel 1905)

Algumas vantagens da Teoria das Descrições Definidas (Russel 1905) Textos / Seminário de Orientação - 12 de Março de 2005 - Fernando Janeiro Algumas vantagens da Teoria das Descrições Definidas (Russel 1905) Assume-se que o objecto de uma teoria semântica é constituído

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

Leia mais