SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Fundamentos Matemáticos da
Modelagem de Dados
Prof. Dr. Bruno R. Braga
Instituto Federal de Brasília
1ª versão (2023)
Objetivos
• Compreender os conceitos fundamentais e as
tecnologias de banco de dados;
• Construir um modelo de dados relacional;
• Elaborar o projeto lógico do banco de dados;
• Utilizar as regras de normalização;
• Manipular dados usando álgebra relacional;
• Compreender a linguagem de consulta a
dados estruturados (SQL).
Introdução
• O modelo de dados relacional introduzido
por E. F. Codd (1970) possui fundamentação
matemática na Teoria dos Conjuntos.
• As colunas de uma tabela são coleções de
registros, isto é, conjuntos de dados.
• A linguagem de consulta SQL é baseada na
álgebra relacional, que provê operações para
a manipulação de conjuntos de dados que
são baseadas nas operações sobre conjuntos.
Introdução (2)
• As restrições de integridade e normalização
são baseadas em lógica proposicional, que é
uma formalização alternativa aos conjuntos.
• Além do modelo relacional, outros modelos
de dados (NoSQL) também são baseados na
Teoria dos Conjuntos.
• Além da Teoria dos Conjuntos, a Teoria das
Categorias, que lhe é complementar, serve
como formalismo para modelos relacionais.
Teoria dos Conjuntos
Fundamentos Matemáticos da Modelagem de Dados
Prof. Bruno Braga
Teoria dos Conjuntos
• Conjunto é qualquer coleção não ordenada
de objetos, que são chamados de elementos
ou membros de um conjunto, que podem ser
outros conjuntos.
• A Teoria dos Conjuntos trata das operações e
propriedades aplicáveis aos conjuntos, e das
relações com os seus elementos.
• É considerada a fundação da matemática.
Conceito de Relação
• Uma relação descreve como os objetos (i.e.,
conjuntos e seus elementos) são relacionados
entre si. Exemplos de relações binárias:
• Pertinência (o  C) de um objeto (o), quer seja
elemento ou outro conjunto, num conjunto (C).
• Igualdade (A = B) de dois conjuntos.
• Inclusão de dois conjuntos, i.e., A é subconjunto
de B (A  B), ou B é superconjunto de A (B  A),
ou ainda, A  B  x (x  A  x  B).
Conceito de Operação
• Uma operação é a transformação de um ou
mais conjuntos na forma de novo conjunto.
Exemplos de operações binárias:
• União (A  B)
• Interseção (A  B)
• Diferença (A - B ou AB) – todos os membros de
A que não são membros de B.
• Produto (A × B) – os pares ordenados (a, b).
• Potência (A*) – todos os possíveis subconjuntos
dos elementos de A, inclusive o vazio ().
Operação de Diferença
• Complemento (Ac) é a operação unária que
retorna os elementos no conjunto universo U
que não pertencem ao conjunto dado (A).
• Diferença ou Complemento Relativo (A - B,
ou A  B) – retorna os elementos de A que
não pertencem à B, i.e., = { x  B : x  A }.
• Propriedades:
• A - B B - A (não comutativa)
• (A - B) - C = A - (B - C) (associativa)
Operação de Diferença Simétrica
• Diferença Simétrica (A Ɵ B, A  B, ou A  B) –
todos os elementos de A e B que não estão
na interseção de ambos, (A  B) – (A  B), ou
a união das diferenças, (A – B)  (B-A).
• Operador XOR: A  B = {x : (x  A)  (x  B)}.
• Propriedades:
• A  B = B  A (comutativa)
• (A  B)  C = A  (B  C) (associativa)
• A  (B  C) = (A  B)  (A  C) ( é distributiva)
Conceito de Classe
• Classe é qualquer coleção de objetos, ou de
elementos de conjunto, que compartilham
uma propriedade ou atributo comum.
• Uma classe é um conjunto quando é membro
de alguma outra classe, ou classe própria
quando não é membro de nenhuma classe.
• Classes próprias são "grandes demais" para
serem conjuntos (e.g., a classe de todos os
conjuntos, ou de todos os números ordinais).
Diferença entre Classe e Conjunto
• As classes são frequentemente usadas como
generalizações dos conjuntos. No entanto,
classes não são necessariamente conjuntos.
• Uma classe é uma coleção mais geral do que
um conjunto, pois pode incluir conjuntos e
outros objetos matemáticos.
• Os conjuntos podem ser elementos de outros
conjuntos, classes não podem ser elementos
de conjuntos nem de outras classes.
Lógica Proposicional e
Lógica de Predicados
Fundamentos Matemáticos da Modelagem de Dados
Prof. Bruno Braga
Lógica Proposicional
• A Lógica Proposicional, Lógica de Zero-Ordem
ou Lógica Sentencial, é um sistema formal de
raciocínio dedutivo por meio da manipulação
de proposições (ou afirmações) que podem
ser verdadeiras ou falsas, mas não ambas.
• Proposições são combinadas e manipuladas
usando conectivos (ou operadores lógicos),
que permitem criar proposições compostas a
partir de proposições elementares.
Operadores Lógicos
• Conjunção (^): combina duas proposições em
uma resultante que só é verdadeira quando
ambas forem verdadeiras.
• Disjunção (v): combina duas proposições em
uma resultante que é verdadeira quando pelo
menos uma das duas é verdadeira.
• Negação (¬): inverte o valor de verdade de
uma proposição (i.e., se é verdade, a negação
é falsa, e vice-versa).
Operadores Lógicos (2)
• Implicação (→): combina duas proposições
em uma resultante que é falsa só quando a
primeira proposição é verdadeira e a segunda
é falsa. Nos outros casos, é verdadeira.
• Bi-implicação, se e somente se, ou equivale a
(↔): combina duas proposições em uma
resultante que é verdadeira quando ambas
têm o mesmo valor (verdadeiras ou falsas).
Tabelas-Verdade dos
Operadores Lógicos
Consequências Lógicas
• Tautologia: toda proposição composta que é
sempre verdadeira, independentemente dos
valores de verdade de suas proposições simples.
• Contradição: toda proposição composta que é
sempre falsa, independentemente dos valores
de verdade de suas proposições simples.
• Contingência: toda proposição composta que o
seu valor de verdade depende dos valores das
proposições simples que a compõem.
Lógica de Predicados
• A Lógica de Predicados, Lógica de Primeira
Ordem, ou Lógica Quantificacional, é um
sistema lógico mais expressivo e complexo
em comparação à Lógica Proposicional.
• Os termos sujeito, predicado e objeto são
utilizados para descrever a estrutura de uma
afirmação ou proposição.
• Esses termos são emprestados da gramática e
da análise de sentenças na linguística e são
usados de maneira semelhante na lógica.
Sujeito
• O sujeito é o termo ou entidade sobre a qual
uma afirmação é feita.
• Na lógica, o sujeito é representado por uma
variável ou um objeto específico (sendo um
termo literal, como nome ou um número).
• Por exemplo, na afirmação “Sócrates é um
filósofo”, “Sócrates” é o sujeito.
Predicado
• É toda a expressão lógica que descreve uma
propriedade (ou atributo) do sujeito, ou
ainda uma relação entre objetos.
• É como a função que mapeia um conjunto de
argumentos (objetos) para um valor-verdade
(i.e., verdadeiro ou falso): f : (x1,...,xn)  {V, F}
• Por exemplo, na afirmação “Sócrates é um
filósofo”, o predicado é “é um filósofo”. Em
notação formal: é(Sócrates, um filósofo).
Objeto
• O objeto é um termo ou entidade que está
envolvido em uma relação com o sujeito,
conforme descrito pelo predicado.
• Na lógica, o objeto geralmente aparece como
um argumento adicional em um predicado de
múltiplos argumentos.
• Por exemplo, na afirmação “Sócrates ensina
Platão”, “Platão” é o objeto. Neste caso, o
predicado é “ensina”.
Elementos dos Predicados
• A Lógica de Predicados introduz variáveis e
seus quantificadores, como “para todo” (∀) e
“existe” (∃), que expressam generalizações e
restrições sobre conjuntos de objetos.
• Admite proposições que possuem relações e
funções entre objetos, o que confere maior
poder descritivo que a lógica proposicional.
• Exemplos: Existe um número natural ímpar
maior que 3 (i.e., ∃n ∈ ℕ, n > 3 ∧ n é ímpar).
Exemplos
• Existe um livro na minha estante de literatura
brasileira (i.e., ∃x, x está na minha estante ∧ x
é um livro de literatura brasileira).
• Existe um número natural ímpar maior que 3
(i.e., ∃n ∈ ℕ, n > 3 ∧ n é ímpar).
• Para todo animal, se é um mamífero, então é
um vertebrado (i.e., ∀x, se x é mamífero  x
é vertebrado).
• Para todo número inteiro n, n + 1 é maior que
n (i.e., ∀n ∈ ℤ, n + 1 > n).
Resource Description
Framework (RDF)
Fundamentos Matemáticos da Modelagem de Dados
Prof. Bruno Braga
Resource Description Framework
• RDF é um padrão e modelo de dados da
World Wide Web Consortium (W3C) para
representar informações sobre recursos na
web de forma estruturada e semântica.
• É uma tecnologia da Web Semântica, para os
dados na web ficarem inteligíveis tanto para
computadores quanto humanos, permitindo
a integração e o compartilhamento entre os
sistemas de informação e aplicativos.
A Estrutura da Informação em RDF
• Um RDF representa informações sobre um recurso
como conjuntos de declarações ou afirmações (i.e.,
triplas sujeito-predicado-objeto) na forma de grafo.
• Sujeito é o recurso sobre o qual a afirmação é feita,
identificado por Uniform Resource Identifier (URI).
• Predicado é a propriedade ou relação que descreve
o sujeito, também identificado por um URI.
• Objeto é o valor da propriedade ou outro recurso
relacionado ao sujeito, que pode ser um valor literal
(e.g., um número ou uma string) ou outro URI.
O Uso do RDF
• As triplas RDF podem ser combinadas para
formar um grafo direcionado, onde recursos
e valores são nós e as propriedades são setas.
• A linguagem de consulta e manipulação dos
grafos RDF é a SPARQL.
• RDF pode ser serializado em formatos como
RDF/XML, Turtle, N-Triples e JSON-LD.
• RDF pode ser usado com outras tecnologias
semânticas, como ontologias (RDFS e OWL).
Exemplo de modelo em RDF
Exemplo de modelo em RDF
Teoria das Categorias
Modelagem de Informações usando
Teoria dos Conjuntos e Teoria das Categorias
Prof. Bruno Braga
Teoria das Categorias
• Teoria das Categorias é um formalismo para
descrição formal e generalização de estruturas
abstratas e suas inter-relações.
• Foi criada por Samuel Eilenberg e Saunders
Mac Lane no início dos anos 1940 como uma
forma de unificar as áreas da matemática e
revelar conexões profundas entre elas.
• Tem sido usada em muitos campos, incluindo
álgebra, lógica e ciência da computação.
Definição de Categoria
• Categoria é o objeto de estudo da Teoria das
Categorias, que são constituídos de objetos e
morfismos (“setas”) que relacionam objetos.
• Os morfismos são generalizações de funções
e representam uma maneira de transformar
um objeto em outro dentro da categoria.
• A composição de morfismos é quando duas
ou mais transformações são realizadas em
sequência (e.g., f . g, ou ainda g ∘ f).
Propriedades das Categorias
• Composição: Se f: A  B e g: B  C, onde A,
B e C são objetos da categoria C, deve haver
um morfismo composto g ∘ f: A  C.
• Associatividade: Se você tiver três morfismos
consecutivos f: A  B, g: B  C e h: C  D,
então (h ∘ g) ∘ f = h ∘ (g ∘ f).
• Identidade: Para cada objeto A, deve haver
um morfismo identidade id_A: A  A, tal que
para qualquer morfismo f: A  B e g: B  A,
temos f ∘ id_A = f e id_A ∘ g = g.
Exemplos de Categoria
• SET é a categoria dos conjuntos, onde objetos
são conjuntos e morfismos são funções.
• HASK é a categoria de códigos em linguagem
de programação Haskell, onde os objetos são
tipos de dados e os morfismos são funções.
• DATA é a categoria dos esquemas de bases
de dados relacionais, onde os objetos são as
relações ou tipos de dados de seus atributos
e os morfismos são os atributos (colunas).
Categoria DATA
• Considere D é a categoria concreta de DATA
para a definição de um esquema de base de
dados:
• Um objeto T ϵ Obj(D) é uma relação (tabela) ou
um tipo de dados;
• Um morfismo f ϵ Arr(D) é um atributo da relação
(coluna da tabela);
• Se f : T1  T2 então f é Primary Key de T2 e Foreign Key de T1;
• Se f : T1  Set então f é uma coluna de T1 e o seu tipo de dados.
• Toda composição de morfismos (f2 ◦ f1), (f1 . f2),
ou ainda f2(f1) é uma restrição de integridade.
Exemplo 1
CREATE TABLE employee(id int, ename varchar, hiredate
date, deptno int, PRIMARY KEY (id), FOREIGN KEY fk1
(deptno) REFERENCES department(did));
CREATE TABLE department (did int, dname varchar,
address varchar, PRIMARY KEY (did));
A coluna "deptno" na tabela "employee" é
uma chave estrangeira que faz referência à
coluna “did" na tabela "department“, que é
sua chave primária.
A palavra-chave "fk1" é um identificador
opcional usado para dar um nome à
restrição da chave estrangeira.
Exemplo 1
CREATE TABLE employee(id int, ename varchar, hiredate
date, deptno int, PRIMARY KEY (id), FOREIGN KEY fk1
(deptno) REFERENCES department(did));
CREATE TABLE department (did int, dname varchar,
address varchar, PRIMARY KEY (did));
fk1 : employee → department é
chave estrangeira (Foreign Key)
de “employee”, mas o seu valor
numérico é “deptno”, que deve
ser igual ao valor de “did”, chave
primária de “department”. Logo,
employee . fk1 . did = deptno,
did ◦ fk1 = deptno, ou ainda
did(fk1) = deptno é a restrição
de integridade sobre o valor de
deptno ser igual ao valor de did.
fk1 deptno
did
Exemplo 2
Todas as instâncias da relação “Employee” possuem
como atributo gerente (Mgr) uma outra instância da
relação “Employee”, logo a restrição de integridade
de que ambas as instâncias devem estar lotadas na
mesma instância de “Dept” precisa ser verificada:
Employee . Mgr . Dpt = Employee . Dpt .
O mesmo tipo de restrição vale para o atributo do
secretário (Secr’y) que deve estar lotado no “Dept”:
Department . Secr’y . Dpt = Department . Dept_Id.
Conceito de Functor
• Um functor F : C → D entre duas categorias C
e D consiste de:
• Um morfismo Ob(F) : Ob(C) → Ob(D) que liga cada
objeto em C até cada objeto em D.
• Um morfismo Ar(F) : Ar(C) → Ar(D) que liga cada
morfismo em C até cada morfismo em D.
• As composições de morfismos em C estão em D.
Conceito de
Transformação Natural
• Se F e G são functores entre categorias C e D,
transformação natural  : F → G é a família
de morfismos para cada objeto X de C tal que
para cada f : X → Y em C, (Y)◦F(f) = G(f)◦(X)
se mantém (a condição de naturalidade).
Functores em DATA
• O functor Ft : D → SET é o estado da base de
dados (imagem) em determinado momento.
• A transformação natural  : Ft → Ft+1 é uma
transição de estado em t para t+1 seguinte a
uma operação de alteração ou inserção de
um ou mais registros na base de dados.
Referências
• C. A. Heuser, Projeto de Banco de Dados, 4a.
edição, Editora Sagra Luzzatto, 1998.
• E.F. Codd, “A relational model of data for large
shared data banks”, Communications of the
ACM, vol. 13, no. 6, 1970.
https://dl.acm.org/citation.cfm?doid=362384.362685
• Donald D. Chamberlain, "Early History of SQL"
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnu
mber=6359709

Mais conteúdo relacionado

Semelhante a .200.2023-01.Categorias em Bancos de Dados.PT.pdf

Semelhante a .200.2023-01.Categorias em Bancos de Dados.PT.pdf (20)

Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
 
Csharp fundamentals
Csharp fundamentalsCsharp fundamentals
Csharp fundamentals
 
Aula7 diagrama classes
Aula7 diagrama classesAula7 diagrama classes
Aula7 diagrama classes
 
Java 14
Java 14Java 14
Java 14
 
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Java 02
Java 02Java 02
Java 02
 
Java 02
Java 02Java 02
Java 02
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Aula1
Aula1Aula1
Aula1
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 

.200.2023-01.Categorias em Bancos de Dados.PT.pdf

  • 1. Fundamentos Matemáticos da Modelagem de Dados Prof. Dr. Bruno R. Braga Instituto Federal de Brasília 1ª versão (2023)
  • 2. Objetivos • Compreender os conceitos fundamentais e as tecnologias de banco de dados; • Construir um modelo de dados relacional; • Elaborar o projeto lógico do banco de dados; • Utilizar as regras de normalização; • Manipular dados usando álgebra relacional; • Compreender a linguagem de consulta a dados estruturados (SQL).
  • 3. Introdução • O modelo de dados relacional introduzido por E. F. Codd (1970) possui fundamentação matemática na Teoria dos Conjuntos. • As colunas de uma tabela são coleções de registros, isto é, conjuntos de dados. • A linguagem de consulta SQL é baseada na álgebra relacional, que provê operações para a manipulação de conjuntos de dados que são baseadas nas operações sobre conjuntos.
  • 4. Introdução (2) • As restrições de integridade e normalização são baseadas em lógica proposicional, que é uma formalização alternativa aos conjuntos. • Além do modelo relacional, outros modelos de dados (NoSQL) também são baseados na Teoria dos Conjuntos. • Além da Teoria dos Conjuntos, a Teoria das Categorias, que lhe é complementar, serve como formalismo para modelos relacionais.
  • 5. Teoria dos Conjuntos Fundamentos Matemáticos da Modelagem de Dados Prof. Bruno Braga
  • 6. Teoria dos Conjuntos • Conjunto é qualquer coleção não ordenada de objetos, que são chamados de elementos ou membros de um conjunto, que podem ser outros conjuntos. • A Teoria dos Conjuntos trata das operações e propriedades aplicáveis aos conjuntos, e das relações com os seus elementos. • É considerada a fundação da matemática.
  • 7. Conceito de Relação • Uma relação descreve como os objetos (i.e., conjuntos e seus elementos) são relacionados entre si. Exemplos de relações binárias: • Pertinência (o  C) de um objeto (o), quer seja elemento ou outro conjunto, num conjunto (C). • Igualdade (A = B) de dois conjuntos. • Inclusão de dois conjuntos, i.e., A é subconjunto de B (A  B), ou B é superconjunto de A (B  A), ou ainda, A  B  x (x  A  x  B).
  • 8. Conceito de Operação • Uma operação é a transformação de um ou mais conjuntos na forma de novo conjunto. Exemplos de operações binárias: • União (A  B) • Interseção (A  B) • Diferença (A - B ou AB) – todos os membros de A que não são membros de B. • Produto (A × B) – os pares ordenados (a, b). • Potência (A*) – todos os possíveis subconjuntos dos elementos de A, inclusive o vazio ().
  • 9. Operação de Diferença • Complemento (Ac) é a operação unária que retorna os elementos no conjunto universo U que não pertencem ao conjunto dado (A). • Diferença ou Complemento Relativo (A - B, ou A B) – retorna os elementos de A que não pertencem à B, i.e., = { x  B : x  A }. • Propriedades: • A - B B - A (não comutativa) • (A - B) - C = A - (B - C) (associativa)
  • 10. Operação de Diferença Simétrica • Diferença Simétrica (A Ɵ B, A  B, ou A  B) – todos os elementos de A e B que não estão na interseção de ambos, (A  B) – (A  B), ou a união das diferenças, (A – B)  (B-A). • Operador XOR: A  B = {x : (x  A)  (x  B)}. • Propriedades: • A  B = B  A (comutativa) • (A  B)  C = A  (B  C) (associativa) • A  (B  C) = (A  B)  (A  C) ( é distributiva)
  • 11. Conceito de Classe • Classe é qualquer coleção de objetos, ou de elementos de conjunto, que compartilham uma propriedade ou atributo comum. • Uma classe é um conjunto quando é membro de alguma outra classe, ou classe própria quando não é membro de nenhuma classe. • Classes próprias são "grandes demais" para serem conjuntos (e.g., a classe de todos os conjuntos, ou de todos os números ordinais).
  • 12. Diferença entre Classe e Conjunto • As classes são frequentemente usadas como generalizações dos conjuntos. No entanto, classes não são necessariamente conjuntos. • Uma classe é uma coleção mais geral do que um conjunto, pois pode incluir conjuntos e outros objetos matemáticos. • Os conjuntos podem ser elementos de outros conjuntos, classes não podem ser elementos de conjuntos nem de outras classes.
  • 13. Lógica Proposicional e Lógica de Predicados Fundamentos Matemáticos da Modelagem de Dados Prof. Bruno Braga
  • 14. Lógica Proposicional • A Lógica Proposicional, Lógica de Zero-Ordem ou Lógica Sentencial, é um sistema formal de raciocínio dedutivo por meio da manipulação de proposições (ou afirmações) que podem ser verdadeiras ou falsas, mas não ambas. • Proposições são combinadas e manipuladas usando conectivos (ou operadores lógicos), que permitem criar proposições compostas a partir de proposições elementares.
  • 15. Operadores Lógicos • Conjunção (^): combina duas proposições em uma resultante que só é verdadeira quando ambas forem verdadeiras. • Disjunção (v): combina duas proposições em uma resultante que é verdadeira quando pelo menos uma das duas é verdadeira. • Negação (¬): inverte o valor de verdade de uma proposição (i.e., se é verdade, a negação é falsa, e vice-versa).
  • 16. Operadores Lógicos (2) • Implicação (→): combina duas proposições em uma resultante que é falsa só quando a primeira proposição é verdadeira e a segunda é falsa. Nos outros casos, é verdadeira. • Bi-implicação, se e somente se, ou equivale a (↔): combina duas proposições em uma resultante que é verdadeira quando ambas têm o mesmo valor (verdadeiras ou falsas).
  • 18. Consequências Lógicas • Tautologia: toda proposição composta que é sempre verdadeira, independentemente dos valores de verdade de suas proposições simples. • Contradição: toda proposição composta que é sempre falsa, independentemente dos valores de verdade de suas proposições simples. • Contingência: toda proposição composta que o seu valor de verdade depende dos valores das proposições simples que a compõem.
  • 19. Lógica de Predicados • A Lógica de Predicados, Lógica de Primeira Ordem, ou Lógica Quantificacional, é um sistema lógico mais expressivo e complexo em comparação à Lógica Proposicional. • Os termos sujeito, predicado e objeto são utilizados para descrever a estrutura de uma afirmação ou proposição. • Esses termos são emprestados da gramática e da análise de sentenças na linguística e são usados de maneira semelhante na lógica.
  • 20. Sujeito • O sujeito é o termo ou entidade sobre a qual uma afirmação é feita. • Na lógica, o sujeito é representado por uma variável ou um objeto específico (sendo um termo literal, como nome ou um número). • Por exemplo, na afirmação “Sócrates é um filósofo”, “Sócrates” é o sujeito.
  • 21. Predicado • É toda a expressão lógica que descreve uma propriedade (ou atributo) do sujeito, ou ainda uma relação entre objetos. • É como a função que mapeia um conjunto de argumentos (objetos) para um valor-verdade (i.e., verdadeiro ou falso): f : (x1,...,xn)  {V, F} • Por exemplo, na afirmação “Sócrates é um filósofo”, o predicado é “é um filósofo”. Em notação formal: é(Sócrates, um filósofo).
  • 22. Objeto • O objeto é um termo ou entidade que está envolvido em uma relação com o sujeito, conforme descrito pelo predicado. • Na lógica, o objeto geralmente aparece como um argumento adicional em um predicado de múltiplos argumentos. • Por exemplo, na afirmação “Sócrates ensina Platão”, “Platão” é o objeto. Neste caso, o predicado é “ensina”.
  • 23. Elementos dos Predicados • A Lógica de Predicados introduz variáveis e seus quantificadores, como “para todo” (∀) e “existe” (∃), que expressam generalizações e restrições sobre conjuntos de objetos. • Admite proposições que possuem relações e funções entre objetos, o que confere maior poder descritivo que a lógica proposicional. • Exemplos: Existe um número natural ímpar maior que 3 (i.e., ∃n ∈ ℕ, n > 3 ∧ n é ímpar).
  • 24. Exemplos • Existe um livro na minha estante de literatura brasileira (i.e., ∃x, x está na minha estante ∧ x é um livro de literatura brasileira). • Existe um número natural ímpar maior que 3 (i.e., ∃n ∈ ℕ, n > 3 ∧ n é ímpar). • Para todo animal, se é um mamífero, então é um vertebrado (i.e., ∀x, se x é mamífero  x é vertebrado). • Para todo número inteiro n, n + 1 é maior que n (i.e., ∀n ∈ ℤ, n + 1 > n).
  • 25. Resource Description Framework (RDF) Fundamentos Matemáticos da Modelagem de Dados Prof. Bruno Braga
  • 26. Resource Description Framework • RDF é um padrão e modelo de dados da World Wide Web Consortium (W3C) para representar informações sobre recursos na web de forma estruturada e semântica. • É uma tecnologia da Web Semântica, para os dados na web ficarem inteligíveis tanto para computadores quanto humanos, permitindo a integração e o compartilhamento entre os sistemas de informação e aplicativos.
  • 27. A Estrutura da Informação em RDF • Um RDF representa informações sobre um recurso como conjuntos de declarações ou afirmações (i.e., triplas sujeito-predicado-objeto) na forma de grafo. • Sujeito é o recurso sobre o qual a afirmação é feita, identificado por Uniform Resource Identifier (URI). • Predicado é a propriedade ou relação que descreve o sujeito, também identificado por um URI. • Objeto é o valor da propriedade ou outro recurso relacionado ao sujeito, que pode ser um valor literal (e.g., um número ou uma string) ou outro URI.
  • 28. O Uso do RDF • As triplas RDF podem ser combinadas para formar um grafo direcionado, onde recursos e valores são nós e as propriedades são setas. • A linguagem de consulta e manipulação dos grafos RDF é a SPARQL. • RDF pode ser serializado em formatos como RDF/XML, Turtle, N-Triples e JSON-LD. • RDF pode ser usado com outras tecnologias semânticas, como ontologias (RDFS e OWL).
  • 31. Teoria das Categorias Modelagem de Informações usando Teoria dos Conjuntos e Teoria das Categorias Prof. Bruno Braga
  • 32. Teoria das Categorias • Teoria das Categorias é um formalismo para descrição formal e generalização de estruturas abstratas e suas inter-relações. • Foi criada por Samuel Eilenberg e Saunders Mac Lane no início dos anos 1940 como uma forma de unificar as áreas da matemática e revelar conexões profundas entre elas. • Tem sido usada em muitos campos, incluindo álgebra, lógica e ciência da computação.
  • 33. Definição de Categoria • Categoria é o objeto de estudo da Teoria das Categorias, que são constituídos de objetos e morfismos (“setas”) que relacionam objetos. • Os morfismos são generalizações de funções e representam uma maneira de transformar um objeto em outro dentro da categoria. • A composição de morfismos é quando duas ou mais transformações são realizadas em sequência (e.g., f . g, ou ainda g ∘ f).
  • 34. Propriedades das Categorias • Composição: Se f: A  B e g: B  C, onde A, B e C são objetos da categoria C, deve haver um morfismo composto g ∘ f: A  C. • Associatividade: Se você tiver três morfismos consecutivos f: A  B, g: B  C e h: C  D, então (h ∘ g) ∘ f = h ∘ (g ∘ f). • Identidade: Para cada objeto A, deve haver um morfismo identidade id_A: A  A, tal que para qualquer morfismo f: A  B e g: B  A, temos f ∘ id_A = f e id_A ∘ g = g.
  • 35. Exemplos de Categoria • SET é a categoria dos conjuntos, onde objetos são conjuntos e morfismos são funções. • HASK é a categoria de códigos em linguagem de programação Haskell, onde os objetos são tipos de dados e os morfismos são funções. • DATA é a categoria dos esquemas de bases de dados relacionais, onde os objetos são as relações ou tipos de dados de seus atributos e os morfismos são os atributos (colunas).
  • 36. Categoria DATA • Considere D é a categoria concreta de DATA para a definição de um esquema de base de dados: • Um objeto T ϵ Obj(D) é uma relação (tabela) ou um tipo de dados; • Um morfismo f ϵ Arr(D) é um atributo da relação (coluna da tabela); • Se f : T1  T2 então f é Primary Key de T2 e Foreign Key de T1; • Se f : T1  Set então f é uma coluna de T1 e o seu tipo de dados. • Toda composição de morfismos (f2 ◦ f1), (f1 . f2), ou ainda f2(f1) é uma restrição de integridade.
  • 37. Exemplo 1 CREATE TABLE employee(id int, ename varchar, hiredate date, deptno int, PRIMARY KEY (id), FOREIGN KEY fk1 (deptno) REFERENCES department(did)); CREATE TABLE department (did int, dname varchar, address varchar, PRIMARY KEY (did)); A coluna "deptno" na tabela "employee" é uma chave estrangeira que faz referência à coluna “did" na tabela "department“, que é sua chave primária. A palavra-chave "fk1" é um identificador opcional usado para dar um nome à restrição da chave estrangeira.
  • 38. Exemplo 1 CREATE TABLE employee(id int, ename varchar, hiredate date, deptno int, PRIMARY KEY (id), FOREIGN KEY fk1 (deptno) REFERENCES department(did)); CREATE TABLE department (did int, dname varchar, address varchar, PRIMARY KEY (did)); fk1 : employee → department é chave estrangeira (Foreign Key) de “employee”, mas o seu valor numérico é “deptno”, que deve ser igual ao valor de “did”, chave primária de “department”. Logo, employee . fk1 . did = deptno, did ◦ fk1 = deptno, ou ainda did(fk1) = deptno é a restrição de integridade sobre o valor de deptno ser igual ao valor de did. fk1 deptno did
  • 39. Exemplo 2 Todas as instâncias da relação “Employee” possuem como atributo gerente (Mgr) uma outra instância da relação “Employee”, logo a restrição de integridade de que ambas as instâncias devem estar lotadas na mesma instância de “Dept” precisa ser verificada: Employee . Mgr . Dpt = Employee . Dpt . O mesmo tipo de restrição vale para o atributo do secretário (Secr’y) que deve estar lotado no “Dept”: Department . Secr’y . Dpt = Department . Dept_Id.
  • 40. Conceito de Functor • Um functor F : C → D entre duas categorias C e D consiste de: • Um morfismo Ob(F) : Ob(C) → Ob(D) que liga cada objeto em C até cada objeto em D. • Um morfismo Ar(F) : Ar(C) → Ar(D) que liga cada morfismo em C até cada morfismo em D. • As composições de morfismos em C estão em D.
  • 41. Conceito de Transformação Natural • Se F e G são functores entre categorias C e D, transformação natural  : F → G é a família de morfismos para cada objeto X de C tal que para cada f : X → Y em C, (Y)◦F(f) = G(f)◦(X) se mantém (a condição de naturalidade).
  • 42. Functores em DATA • O functor Ft : D → SET é o estado da base de dados (imagem) em determinado momento. • A transformação natural  : Ft → Ft+1 é uma transição de estado em t para t+1 seguinte a uma operação de alteração ou inserção de um ou mais registros na base de dados.
  • 43. Referências • C. A. Heuser, Projeto de Banco de Dados, 4a. edição, Editora Sagra Luzzatto, 1998. • E.F. Codd, “A relational model of data for large shared data banks”, Communications of the ACM, vol. 13, no. 6, 1970. https://dl.acm.org/citation.cfm?doid=362384.362685 • Donald D. Chamberlain, "Early History of SQL" https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnu mber=6359709