Modelo Relacional de Banco de Dados Banco de Dados Relacionais Nebulosos • Proposto por E.F.Codd em 1970 com objetivo de simplificar a estrutura das bases de dados consideradas complexas em outros modelos distintos de um SGBD. • Em 1986, Codd publicou uma relação com as 12 regras que deveriam cumprir os SGBDs relacionais. Austeclynio Pereira Representando Imprecisões em BD Imprecisões em BDs tradicionais • Existem vários modelos para representar informações imprecisas em BD, sejam estes tradicionais ou nebulosos. • Aproximação de Codd – Caso 1 – Introduziu o valor NULL para indicar que o valor do atributo era desconhecido e, portanto, era possível possuir qualquer valor de domínio. • Todos os modelos devem atender as operações da álgebra relacional (Codd,1972). Imprecisões em BDs tradicionais – Emprega uma lógica tri-valorada de forma que qualquer comparação com o valor NULL gere um valor resultante. Imprecisões em BDs tradicionais • Aproximação de Codd – Caso 1 • Aproximação de Codd – Caso 2 AND T null F OR T null F F F F F F T null F – Introduziu o valor NULL para indicar que o valor do T T null F T T T T atributo era desconhecido e, portanto, era possível null null null F null T null null possuir qualquer valor de domínio – Emprega uma lógica tri-valorada de forma que qualquer comparação com o valor NULL tenha um valor resultante. Utilizada pelo SGBD Oracle. – Criou duas marcas (A,I), gerando uma lógica tetravalorada, onde a marca A significa valor ausente ou desconhecido, porém aplicável e a marca I indica valor não aplicável (Ex: placa de um carro de alguém sem carro) 1 Imprecisões em BDs tradicionais • Aproximação de Codd – Caso 2 – Criou duas marcas (A,I), gerando uma lógica tetravalorada, onde a marca A significa valor ausente ou desconhecido, porém aplicável e a marca I indica valor não aplicável (Ex: placa de um carro de alguém sem carro) AND T A I F OR T A I F T T A I F T T T T T A A A I F A T A A A I I I I F I T A I F F F F F F F F T F F Imprecisões em BDs tradicionais • Faixa de Valores, de Grant (1980): – Estendeu o modelo relacional para permitir o armazenamento de valores em um atributo[a,b] significando uma faixa de valores. – Também aceita o valor NULL caso não haja nenhuma informação. – Em seu modelo são permitidas tuplas repetidas. – O resultado de uma consulta divide-se em três partes: • Tuplas que seguramente pertencem ao resultado • Tuplas que possivelmente pertencem ao resultado • Tuplas que seguramente não pertencem ao resultado Imprecisões em BDs tradicionais • Esquema de valores por imperfeição: – Criado por C.J.Date (1982) que contestou a utilização dos valores NULL julgando-os como sendo “Uma rica fonte de erros e confusões”*. Recomendou que fossem sempre atribuídos os valores NOT NULL ou NOT NULL WITH DEFAULT para os valores imprecisos. * Relational DataBase;Selected Writings( Addison-Wisley, 1986) Imprecisões em BDs tradicionais • Base de Dados Estatísticas e Probabilísticas: – Barbara(1992) definiu um modelo de BD em que cada atributo pode ter a ele associado uma distribuição de probabilidade. A soma de todas as probabilidades deve ser igual a 1. O cálculo das probabilidades é introduzido pelos usuários. Nas consultas pode ser estabelecida uma entrada de probabilidade mínima. – Outros modelos também foram desenvolvidos: Cavallo(1987), Shosnani(1985) e Fuhr(1990) Banco de Dados Relacionais Nebulosos • Deve reunir as seguintes características: – Proporcionar os mecanismos adequados para poder representar informação nebulosa em todas as suas vertentes. – Deve oferecer um conjunto mínimo de operadores que possam recuperar e tratar a informação, obedecendo a natureza nebulosa da mesma. – Deve satisfazer os requisitos do Modelo Relacional na maior medida possível. Banco de Dados Relacionais Nebulosos • Modelos mais importantes publicados: •Buckles-Petry (1982,1984) • Umano-Fukami (1982,1994) •Prade-Testemale(1984,1987) •Zemankova-Kandel(1984,1985) •GEFRED de Medina-Pons-Vila(1994) 2 Banco de Dados Relacionais Nebulosos • Estes modelos são aplicados nos BDs já existentes. Não existe no mercado BDs nebulosos ! • Necessidade da existência de uma linguagem de Query específica para tratamento dos BDs nebulosos. • Fuzzy SQL (J. Galindo) e SQL Nebuloso (Bosc e Pivert), permitem a consulta a bases de dados tradicionais (informações precisas) e a bases de dados nebulosas (informações imprecisas). Banco de Dados Relacionais Nebulosos FSQL – Extensões do Select • Identificação lingüística – Se um atributo é suscetível de tratamento nebuloso ele será identificado com o símbolo $, precedendo o seu nome. Será associada a cada identificação uma distribuição de possibilidade(baseadas em Zadeh) ou escalares com uma relação de similaridade. Banco de Dados Relacionais Nebulosos FSQL – Extensões do Select • Comparadores nebulosos – existem comparadores possibilidade e de Possibilidade de Necessidade Significado FEQ NFEQ Igual Nebuloso necessidade. FGT NFGT Maior Nebuloso • Os de FGEQ necessidadeNFGEQ exigem que a condição Maior ou Igual Nebuloso seja satisfeita emNFLT certo grau Menor ainda que não FLT Nebuloso completamente. FLEQ NFLEQ Menor ou Igual Nebuloso NMGT Muito Maior nebuloso • Os de MGT possibilidade medem em que grau é MLT NMLT Muito Menor nebuloso possível que a condição se cumpra. Banco de Dados Relacionais Nebulosos FSQL • Utiliza o GEFRED, que aborda o problema de representação e tratamento da informação nebulosa em Bancos de Dados Relacionais fazendo uma síntese dos modelos anteriormente propostos. • Estende a linguagem SQL. • Programado em PL/SQL para o SGBD Oracle. Banco de Dados Relacionais Nebulosos FSQL – Extensões do Select • Comparadores nebulosos – existem comparadores de possibilidade e de necessidade. • Os de necessidade exigem que a condição seja satisfeita em certo grau ainda que não completamente. • Os de possibilidade medem em que grau é possível que a condição se cumpra. Banco de Dados Relacionais Nebulosos FSQL – Extensões do Select • Grau de inclusão – em cada condição sempre pode ser estabelecido um grau de inclusão mínimo entre [0,1]. • Constantes difusas – existem contantes nebulosas para apoiar as comparações nebulosas. 3 Banco de Dados Relacionais Nebulosos FSQL – Extensões do Select • Grau de inclusão – em cada condição sempreConstantes pode ser estabelecido Nebulosas Significadoum grau de inclusão mínimo entre [0,1]. UNKNOWN Valor desconhecido, mas aplicável UNDEFINED Atributo não aplicável • Constantes difusas – existem contantes NULL Ignorância total nebulosas para apoiar as comparações $Label Identificação lingüística nebulosas. $[a,b,c,d] Trapézio possibilístico com Armazenamento dos Dados Nebulosos • a<=b<=c<=d [n,m] Intervalo entre n e m #n Valor aproximadamente n. Triângulo com n +- margem Armazenamento dos Dados Nebulosos Base de dados tradicional • Os atributos nebulosos podem ser de 3 tipos: – Tipo 1 : Estes atributos são totalmente crisp mas admitem consultas e comparações nebulosas. – Tipo 2 : Estes atributos admitem tanto dados crisp quanto nebulosos, na forma de distribuição de possibilidade sobre um domínio subjacente ordenado. Classificação dos dados armazenados 1. Base de dados tradicional – Formada pelos dados armazenados na forma relacional tradicional, mas com um formato especial para representar os atributos nebulosos. 2. Base de metaconhecimento nebuloso – Armazena as informações sobre os BDs e seus atributos nebulosos em um formato relacional. Armazenamento dos Dados Nebulosos Base de dados tradicional • Os atributos nebulosos podem ser de 3 tipos: – Tipo 1 : Estes atributos são totalmente crisp mas admitem consultas e comparações nebulosas. – Tipo 2 : Estes atributos admitem tanto dados crisp quanto nebulosos, na forma de distribuição de possibilidade sobre um domínio subjacente ordenado. . Altura(Pedro) = não muito alto Não muito alto é uma identificação nebulosa sobre o domínio do atributo Altura na forma da seguinte distribuição de possibilidade: {0.8/1.60,09/1.65,1/1.70,1/1.75,08/1.80} Armazenamento dos Dados Nebulosos Base de dados tradicional • Os atributos nebulosos podem ser de 3 tipos: – Tipo 1 : Estes atributos são totalmente crisp mas admitem consultas e comparações nebulosas. – Tipo 2 : Estes atributos admitem tanto dados crisp quanto nebulosos, na forma de distribuição de possibilidade sobre um domínio subjacente ordenado. – Tipo 3 : Estes atributos são definidos sobre um domínio subjacente não ordenado, como por exemplo, a cor da pele. A estes atributos definem-se algumas identificações que são escalares com uma relação de semelhança entre elas. Armazenamento dos Dados Nebulosos Base de dados tradicional • Branco Moreno Os atributos nebulosos podemPardo ser de 3Negro tipos: 1 atributos 0.6 são0.2 0 – TipoBranco 1 : Estes totalmente crisp mas admitem consultas e1 comparações nebulosas. Moreno 0.6 0.5 0.3 – TipoPardo 2 : Estes tanto 0.2atributos 0.5 admitem 1 0.6 dados crisp quanto nebulosos, na forma0.6 de distribuição de Negro 0 0.3 1 possibilidade sobre um domínio subjacente ordenado. – Tipo 3 : Estes atributos são definidos sobre um domínio subjacente não ordenado, como por exemplo, a cor dos cabelos. A estes atributos definem-se algumas identificações que são escalares com uma relação de semelhança entre elas. 4 Armazenamento dos Dados Nebulosos Base de Metaconhecimento Armazenamento dos Dados Nebulosos 1. Escalar simples 2. Número simples Ex: aptidão = boa Representada pela distribuição de possibilidade 1/boa Ex: idade = 28 Representada pela distribuição de possibilidade 1/28 3. Conj. de possíveis Ex. aptidão = {má, boa} atribuições para escalares Se expressa {1/má, 1/boa} 4. Conj. de possíveis Ex. idade = {20, 21} atribuições para números Se expressa {1/20, 1/21} 5. Dist. De possibilidades no Ex. aptidão = {0,6/má , 0,7/boa} domínio de escalares 6. Dist. De possibilidades no Ex. idade = {0,4/23 , 1/24 , 0,8/25} domínio de números 7. Número real ∈ [0,1] Representando grau de cumprimento 8. Valor desconhecido UNKNOWN = {1/u; u ∈ U} 9. Valor indefinido UNDEFINED = {0/u; u ∈ U} 10. Valor nulo NULL = {1/UNKNOWN, 1/UNDEFINED} • São os dados que descrevem os dados nebulosos. Podem ser de 3 tipos: – Tipo 1 : Utilizado em atributos crisp em condições nebulosas. Armazena identificações lingüísticas; valores para as margens dos valores aproximados; e o valor para a distância mínima para que dois valores sejam considerados muito separados. – Tipo 2 :Armazena os mesmos dados do Tipo 1 só que aplicados para atributos nebulosos. – Tipo 3- Armazena as identificações lingüísticas e a relação de semelhança entre elas. Armazenamento dos Dados Nebulosos Armazenamento dos Dados Nebulosos H NOME B Luis Antonio Juan Carlos Francisco Julia Inês Javier RUA Recogidas Reyes Católicos Camino Ronda P. Alarcon Puerta Real Manuel de Falla Gran Via IDADE &0.8/30,1/31 Maduro Jovem Idoso Jovem #28 *30,35 RENDIMENTO Bom Regular Mal Excelente Bom Bom Regular SALÁRIO 110000 100000 90000 150000 130000 125000 105000 Tabela de Funcionários - Empregados # & * significa “aproximadamente” indica distribuição de possibilidade intervalo Banco de Dados Relacionais Nebulosos FSQL – Exemplo de Consulta SELECT * FROM Empregados WHERE Idade FEQ AND Rendimento FGEQ ORDER BY Nome Desc; $Jovem $Bom • Os atributos NOME e RUA são de natureza precisa. • O domínio subjacente de IDADE é numérico e tem definido sobre ele uma distribuição de possibilidade. • Permite a presença de valores “desconhecidos” em IDADE. • O domínio subjacente do atributo RENDIMENTO apresenta uma relação de semelhança. Banco de Dados Relacionais Nebulosos Referências .5 .7 • J.Galindo,J.M.Medina,O.Pons,J.C.Cubero” A Server for Fuzzy SQL Queries”. • J.Galindo,”Tratamiento de la Imprecisión em Bases de Datos Relacionales”. 5