La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Info Bases de données avancées

Présentations similaires


Présentation au sujet: "Info Bases de données avancées"— Transcription de la présentation:

1 Info 409 - Bases de données avancées
Université Libanaise Faculté des Sciences – Section I Master 1 Informatique Info Bases de données avancées Semestre: 2 Année Universitaire: 2016/ Crédits: 5 Dr. Antoun Yaacoub

2 Plan Partie I Partie II Partie III Partie IV Pannes système
Gestionnaire de transactions Contrôle concurrentiel Bases de données distribuées Partie II Implémentation des SGBDs: Enregistrements, blocs et adressage Structures d’index: Arbre binaire balancé et table de hachage Partie III Optimisation des requêtes Exécution des requêtes Partie IV Bases de données déductives Bases de données orientées objet

3 Bases de données déductives
Partie IV

4 Référence Foundations of Databases 1st Edition Abiteboul, Hull, Vianu Addison-Wesley

5 Farouk Anahid Shakira Fouad Samar Fadi Jamila Ammar Leo Tatiana Marzouk Abir Antoun

6 Exemple Représentons cette arbre généalogique en une base de données relationnelles : create table parent(nom_parent varchar, nom_fils varchar) nom_parent nom_fils Shakira Fadi Jamila Farouk Anahid Ammar Leo Fouad nom_parent nom_fils Samar Marzouk Tatiana Fadi Jamila Antoun Abir Ammar

7 Exemple Ecrire une requête SQL permettant de trouver les parents d’Antoun SELECT nom_parent from parent where nom_fils=‘Antoun’ Ecrire une requête SQL permettant de trouver les grand parents d’Antoun SELECT p2.nom_parent from parent p2 where p2.nom_fils = any (select p1.nom_parent from parent p where p1.nom_fils=‘Antoun’) Ecrire une requête SQL permettant de trouver les arrières grand parents d’Antoun SELECT p3.nom_parent from parent p3 where p3.nom_fils = any ( SELECT p2.nom_parent from parent p where p2.nom_fils = any (select p1.nom_parent from parent p where p1.nom_fils=‘Antoun’))

8 Exemple Ecrire une requête SQL permettant de trouver tous les ancêtres (parents, grand parents, arrières grand parents, …) d’Antoun Il est impossible d’écrire cette requête !

9 Solution Utiliser les bases de données déductives

10 Introduction Une base de données déductive est une base d'information permettant d'extraire ou de déduire des informations. On a la possibilité de définir des règles qui peuvent déduire ou inférer des informations supplémentaires à partir des informations de la base. Dans un système de bases de données déductif, le langage déclaratif (à la PROLOG) est utilisé pour spécifier des règles. Un moteur d'inférence (ou mécanisme de déduction) dans le système peut déduire de nouveaux faits à partir de la base de données en interprétant les règles : nécessite une sémantique. Une base de données déductive utilise deux types de spécification: les faits et les règles.

11 Exemple parent(shakira,fadi). parent(shakira,jamila). parent(farouk,fadi). parent(farouk,jamila). parent(anahid,ammar). parent(anahid,leo). parent(fouad,ammar). parent(fouad,leo). parent(samar,marzouk). parent(samar,tatiana). parent(fadi,marzouk). parent(fadi,tatiana). parent(jamila,antoun). parent(jamila,abir). parent(ammar,antoun). parent(ammar,abir). sex(shakira,F). sex(farouk,M). sex(anahid,F). sex(fouad,M). sex(samar,F). sex(fadi,M). sex(jamila,F). sex(ammar,M). sex(leo,M). sex(marzouk,M). sex(tatiana,F). sex(antoun,M). sex(abir,F). Prédicats extensionnels

12 Exemple Ecrire une requête SQL permettant de trouver les parents d’Antoun parent(X,antoun). Ecrire une requête SQL permettant de trouver les grand parents d’Antoun parent(X,Y), parent(Y,antoun). Ecrire une requête SQL permettant de trouver les arrières grand parents d’Antoun parent(X,Y), parent(Y,Z), parent(Z,antoun).

13 Prédicats intensionnels
Exemple Ecrire une requête permettant de trouver tous les ancêtres (parents, grand parents, arrières grand parents, …) d’Antoun ancetre(X,Y):-parent(X,Y). ancetre(X,Y):-parent(X,Z),ancetre(Z,Y). fils(X,Y):-parent(Y,X). soeur(X,Y) :-parent(Z,X), parent(Z,Y), sex(Y,f). frere(X,Y) :-parent(Z,X), parent(Z,Y), sex(Y,m). Prédicats intensionnels

14 Introduction Les faits : spécifiés de façon similaire à celle des relations en base de données, sauf qu'il n'est pas nécessaire d'inclure les noms d'attributs. Dans une base de données déductive, la signification d'une valeur d'attribut est déterminée par sa position dans le tuple. Les règles : quelque peu similaire aux vues relationnelles, elles spécifient des relations virtuelles qui ne sont pas stockées mais peuvent être construites à partir des faits en appliquant des mécanismes d'inférences sur la base des spécifications de règles. La différence principale avec les vues est que les règles peuvent comporter de la récursivité. Prolog :  Évaluation top-down (chaînage arrière). L'ordre des règles est important, ainsi que l'ordre des littéraux dans une règle. Datalog : Évaluation bottom-up (chaînage de bas-en-haut).

15 Notation Constante : commence toujours avec une minuscule.
Variable :  commence toujours avec une majuscule. Exemple :  PARENT(PARENT,ENFANT). parent(X,Y) signifie que X est le parent de Y

16 Notation Une règle se compose comme ceci : tête:-corps Où tête est appelé la conclusion, et corps les prémisses (ou hypothèses ou conditions) ex : ancetre(X,Y):-parent(X,Y). ancetre(X,Y):-parent(X,Z),ancetre(Z,Y).

17 Notation Les faits : s'écrivent comme les règles, et comportent des constantes, et non des variables dans le corps. ex :  parent(anahid,leo). parent(fouad,ammar). Les requêtes: permettent d’interroger la base de connaissances, en retournant des données ou des valeurs binaires. ex :  parent(X,antoun). ancetre(X,antoun).

18 Définition INFORMATIONS QUESTIONS Prédicat extensionnel (Extensional predicate) Prédicat dont les instances sont stockées dans la base de données sous forme de tuples. Prédicat intentionnel (Intensional predicate) Prédicat calculé par un programme constitué de règles logiques dont les instances ne sont pas stockées dans la base de données. BD intentionnelle RÈGLES MISES À JOUR Méta-Données BD extensionnelle BD Données

19 Architecture type d’un SGBD déductif intégré
SGBD permettant de dériver les tuples de prédicats intentionnels par utilisation de règles. Interrogation Mise à jour Définition de connaissances Inférence Recherche et Mise à jour Tables Règles

20 Exemple Soit le prédicat aimer(X,Y) qui signifie X aime Y.
Ecrire la règle suivante polyamoureux(X) qui signifie que X aime 2 personnes. polyamoureux(X) :- aimer(X,Y), aimer(X,Z), Y≠Z.

21 Exemple X 1 Y 2 t( , ) :- g( , ). t( , ) :- g( , ), t( , ). X 1 2 Y X
Z Z Y t___ | | | g___ 1|2 2|3 3|2 1 2 2 3 3 2 1|3 2|2 3|3

22 Datalog sûr Toute variable qui apparait dans la tête d’une clause apparait aussi dans le corps.

23 Sémantique de Datalog 3 approches équivalentes Théorie du modèle
Théorie du point fixe Théorie de preuve

24 Négation Etant donné les prédicats oiseau(X): X est un oiseau vole(X): X peut voler Ecrire les prédicats penguin(X): un oiseau qui peut ne pas voler penguin(X) :- oiseau(X), ¬vole(X). penguin(X) :- oiseau(X), not(vole(X)).

25 Négation Pour définir l’ensemble des entiers positifs: entier(0). entier(X):- Y is X-1, entier(Y). Pour définir les nombres pairs et impairs impair(1). impair(X):- Y is X-2, impair(Y). pair(X):-entier(X), ¬impair(X).

26 L’approche du point fixe
La sémantique du programme est définie comme une solution particulière d’une équation à point fixe. La requête est réitérée jusqu’à ce qu’un point fixe est atteint. Comment? Evaluation Bottom-up

27 Evaluation bottom-up Commencer par les faits qui sont dans la base de données Utiliser les règles pour inférer de nouveaux faits Répéter jusqu’à ce qu’aucun nouvel fait pourrait être inféré En d’autres termes, calculer TOUS les faits qui peuvent être prouvé


Télécharger ppt "Info Bases de données avancées"

Présentations similaires


Annonces Google