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

Base de données relationnelles

Présentations similaires


Présentation au sujet: "Base de données relationnelles"— Transcription de la présentation:

1 Base de données relationnelles

2 L’utilisateur doit écrire un programme souvent complexe !!!
Un peu d’histoire … Limites de l’utilisation des fichiers Quelles sont mes données ? L’utilisateur doit écrire un programme souvent complexe !!! Comment les structurer? ? Comment y accéder ? Comment créer un index ? ? Comment les manipuler ? L ’informatique c’est le traitement de l ’information. Donc depuis ses débuts un des objectifs est de: stocker ces données, de les stocker de manière intelligente, c’est à dire de les organiser au mieux pour pouvoir y appliquer des traitements. Exemple de données : les informations sur le personnel Exemple de traitement le calcul de la paye, la revalorisation de la paye, le calcul de congés, l’embauche, la retraite, la démission etc.. on pourrait repartir du début de l ’informatique et vous parler des cartes perforées, ruban perforées, fichiers séquentiels, séquentiels indexés etc. Il y a eu donc des évolutions dans les moyens et les outils de stockage jusqu ’à ce qu ’on arrive à une situation où il est apparu nécessaire d’organiser les données d ’une façon plus efficace. Surtout d ’éviter la redondance d ’informations, source d ’erreur et décharger le programmeur du soucis de rapprocher les fichiers…. Application : rigide, longue, coûteuse Données : redondantes, peu fiables, ponctuelles

3 BD Les utilisateurs exigent de plus en plus : SGBD Outils
des systèmes globaux des systèmes cohérents de ne pas écrire des programmes complexes (ou plutôt compliqués!) d’avoir des réponses rapides aux questions qu’ils posent avoir des données à jour, ... modifier interroger décrire SGBD Exhaustive non redondante structurée persistante BD Outils

4 Base de données relationnelle
Une table ? Plusieurs tables ? Genome Chromosome Gene CodeGene NomGene …. CodeGenome NomGénome …. CodeChromosome NumChromosome …. CodeChromosome CodeGénome La base de données relationnelle est apparu plus tard et a eu un succès lié au fait qu ’elle peut être installée sur des micro. Chaque entité est représenté par une table. Les tables sont liées entre elles par des relations. Le SGBD gère ces relations. On déclare au SGBD une relation en donnant une équivalence entre deux champs. Les tables peuvent être déplacées facilement…; SQL: Algèbre relationnelle qui repose sur la théorie des ensembles : union, intersection, From wikipédia : L'algèbre relationnelle Les bases de données relationnelles tiennent leur utilité des caractéristiques suivantes : La base théorique sur laquelle elles reposent, l'algèbre relationnelle, est à la fois relativement simple et éprouvée, ce qui garantit des résultats stables et prédictibles. Le haut niveau d'abstraction qu'offre l'algèbre relationnelle permet de se concentrer sur les propriétés des données, plutôt que la manière d'accéder à celles-ci. Ces deux caractéristiques permettent en outre aux auteurs de SGBD d'offrir des produits fiables. Select NomGene From TableGene Where CodeChromosome = HUM-10 Select Cekejeuveu From LaTableKeJeudi Where LaConditionKimeuplé SQL

5 Gestion simplifiée d’un génome
1 n génome chromosome Génome Espèce Code Genome Nb_chromosomes Arabidopsis _thaliana Yeast Drosophile Mouse Human ZebraFish ARB YST DRL MOU HUM ZBF 5 16 44 46 25 Clé primaire Clé étrangère Chromosomes Code chromosome N°Chrom Taille 1 2 3 4 5 6 ... I II III IV V 29.6 19.6 23.3 17.5 230.2 576.8 code genome ARB HUM DRL MOU attributs n-uplets

6 Clé étrangère Gènes Clé primaire Code Génome Code chromosome Séquence
ADN Clé primaire Nom Source Code Gene Clé étrangère 1 2 3 4 HUM MOU DROZ MOU_KO 1 8 IREG1 TRFr DMT1 TNFa

7 Cet opérateur ne porte que sur 1 relation.
Opérations propres à l ’algèbre relationnelle Opération PROJECTION / Exemples Génomes Formalisme : R = PROJECTION (R1, liste des attributs) Une seule relation. Pas de doublons. Espèce NB chromosomes Homo sapiens Mus musculus S.Cerevisiae DROSOPHILE.M CodeGenome Espèce Homo sapiens Mus musculus S.Cerevisiae DROSOPHILE.M Espèce NB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 Espèce Homo sapiens Mus musculus S. Cerevisiae Drosophile.M R1 = PROJECTION (Génomes, Espèce) R2 = PROJECTION (Génomes, Espèce, NB chromosomes) Espèce NB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 Cet opérateur ne porte que sur 1 relation. Il permet de ne retenir que certains attributs spécifiés d'une relation. On obtient tous les n-uplets de la relation à l'exception des doublons.

8 La clause DISTINCT permet d'éliminer les doublons.
Opération PROJECTION SELECT liste d'attributs FROM table ; SELECT DISTINCT table liste d'attributs FROM Exemples : SELECT DISTINCT Espèce FROM Génome SELECT DISTINCT Espèce, NB chromosomes FROM Génome La clause DISTINCT permet d'éliminer les doublons.

9 Cet opérateur ne porte que sur 1 relation.
Opération SELECTION / Exemple : Génome Formalisme : R = SELECTION (R1, condition) Cet opérateur ne porte que sur 1 relation. Espèce NB chromosomes Homo sapiens Mus musculus S.Cerevisiae DROSOPHILE.M CodeGenome R3 = SELECTION(Génome, Nb chromosomes pair) Il permet de ne retenir que les n- uplets répondant à une condition. Espèce NB chromosomes Mus musculus DROSOPHILE.M CodeGenome

10 Quels sont les gènes qui participent au codage de la même protéine PROD (albumine par exemple) ?
Séquence ADN Produit gène ? Code Gene Nom Source Code chromosome taille 1 2 3 4 IREG1 TRFr DMT1 TNFa 1 8 Prod Prod

11 Opération SELECTION en SQL
SELECT * FROM table WHERE condition ; Exemple : SELECT * FROM Génome WHERE NBChromosomes % 2 = 0 La condition de sélection exprimée derrière la clause WHERE peut être spécifiée à l'aide : des opérateurs de comparaison : =, >, <, <=, >=, <> des opérateurs logiques : AND, OR, NOT des opérateurs : IN, BETWEEN, LIKE Autres exemples : Soit la table Gène ( CodeGene, nom, source, sequence, taille, CodeChromosome, produit) SELECT * FROM Gène WHERE taille IN (2000, 2500, 2575, 2600, 3000) SELECT * FROM Gène WHERE taille BETWEEN 2000 AND 3000 SELECT * FROM Gène WHERE produit LIKE '%albumine%' sous Access : LIKE     "*albumine*"

12 Projection sur Espèce sans doublons
Quels sont les espèces pour lesquels il existe des chromosomes à plus de bases Opération JOINTURE Formalisme : R = JOINTURE (R1, R2, condition d'égalité entre attributs) Chromosomes Génomes 1 4 2 Code chromosome N°Chrom Taille > 3 5 II III IV I V 310000 350000 400000 350405 CodeGenome Espèce NB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 CodeGenome 1 2 3 4 Cet opérateur porte sur 2 relations ayant au moins un attribut défini dans le même domaine R = JOINTURE (Genome,Chromosome, Genome.CodeGenome=Chromosome.CodeGenome) Les n-uplets sont formés par la concaténation des n-uplets des relations d'origine qui vérifient la condition de jointure. 1 4 2 Code chromosome N°Chrom Taille 3 5 II III IV I V 310000 350000 400000 350405 576800 CodeGenome Espèce NB chromosomes Homo sapiens 25 DROSOPHILE.M 8 Mus Musculus 22 Homo sapiens DROSOPHILE.M Mus Musculus Espèce Projection sur Espèce sans doublons

13 Opération JOINTURE en SQL
En SQL, il est possible d'enchaîner plusieurs jointures dans la même instruction SELECT : SELECT * FROM table1, table2, table3, ... WHERE table1.attribut1=table2.attribut1 AND table2.attribut2=table3.attribut2 AND ...; Exemple : Ou en utilisant des alias pour les noms des tables : SELECT Espece FROM Genome A, Chromosome B WHERE A.CodeGenome =B.CodeGenome and B.taille >= ;

14 Select * from Genome,Chromosome where Genome.nom like ‘ Drosophile.M’
Quels sont les chromosomes : (numéro, taille, …) du génome de la Drosophile ? Question 2 Code Genome Code Chromosome 3 5 1 2 N° Chromosome II V VI . . . Chromosomes Génomes Code Génome 3 5 Souris Fluo! Drosophile.M Nom génome . . . Jointure Sélection ‘ Drosophile.M ’ Génomes Code Génome 5 Drosophile.M Nom génome . . . Code Genome Code Chromosome 5 2 3 N° Chromosome V VI . . . Nom génome Drosophile.M Select * from Genome,Chromosome where Genome.nom like ‘ Drosophile.M’ and Chromosomes.CodeGenome = Genomes.CodeGenome Requête SQL

15 Quels sont les génomes pour lesquels le gène X1 est présent ?
Question 3 jointure1 jointure2 Gènes Code Chromosome X1 . 10 18 Nom du gène Code Genome Code Chromosome 5 3 10 18 N° Chromosome II V . . . Chromosomes Génomes Code Génome 3 5 Souris Fluo! Drosophile.M Nom génome . . . Select genome.nom from Genome, Chromosome, Gene where Gene.nom like ‘ X1 ’ and Genes.CodeChromosome = Chromosomes.CodeChromosome and Chromosomes.CodeGenome = Genomes.CodeGenome Première jointure Deuxième jointure

16 Exercice d'application n°1
Soit le modèle relationnel suivant relatif à une base de données sur des représentations musicales : REPRESENTATION (n°représentation, titre_représentation, lieu) MUSICIEN (nom, n°représentation*) PROGRAMMER (date, n°représentation*, tarif) Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par * Questions : 1 - Donner la liste des titres des représentations. 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille. 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent. 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.

17 Correction de l'exercice d'application n°1
(faire un graphique) 1 - Donner la liste des titres des représentations. R = PROJECTION(REPRESENTATION, titre_représentation) 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille. R1 = SELECTION(REPRESENTATION, lieu="Opéra Bastille") R2 = PROJECTION(R1, titre_représentation) 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent. R1 = JOINTURE(MUSICIEN, REPRESENTATION, Musicien.n°représentation=Représentation.n°représentation) R2 = PROJECTION(R1, nom, titre_représentation) 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96. R1 = SELECTION(PROGRAMMER, date=14/09/96) R2 = JOINTURE(R1, REPRESENTATION, R1.n°représentation=Représentation.n°représentation) R3 = PROJECTION(R2, titre_représentation, lieu, tarif)

18 Correction de l'exercice d'application n°1
En SQL 1 - Donner la liste des titres des représentations. SELECT titre_représentation FROM REPRESENTATION; 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille. SELECT titre_représentation FROM REPRESENTATION WHERE lieu="Opéra Bastille" ; 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent. SELECT nom, titre_représentation FROM MUSICIEN, REPRESENTATION WHERE MUSICIEN.n°représentation = REPRESENTATION.n°représentation ; 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/ SELECT titre_représentation, lieu, tarif FROM REPRESENTATION, PROGRAMMER WHERE PROGRAMMER.n°représentation=REPRESENTATION.n°représentation AND date='14/06/96' ;

19 R1=CALCULER(Gènes, Somme(taille))
Opération CALCULER R = CALCULER (R0, fonction1, fonction2, ...) ou N = CALCULER (R0, fonction) On désire obtenir la taille totale des zones codantes Gènes Code chromosome IREG1 TRFr DMT1 TNFa 1 8 Nom Source Séquence ADN Code Gene 2 3 4 Produit gène ? Prod1 Prod2 taille 20000 30000 45000 3000 En SQL SELECT fonction1(attribut1), fonction2(attribut2), FROM table; R1=CALCULER(Gènes, Somme(taille)) Somme(taille) 98000 SELECT SUM(taille) FROM Gènes;

20 On désire obtenir le total de la zone codante par chromosome
Opération REGROUPER_ET_CALCULER R=REGROUPER_ET_CALCULER(R0, att1, att2, ..., fonction1, fonction2, ...) On désire obtenir le total de la zone codante par chromosome Le regroupement s'effectue sur un sous ensemble des attributs de la relation R0. Gènes Code chromosome IREG1 TRFr DMT1 TNFa 1 8 Nom Source Séquence ADN Code Gene 2 3 4 Produit gène ? Prod1 Prod2 taille 20000 30000 45000 3000 Sum (taille) R2=REGROUPER_ET_CALCULER (Gènes,CodeChromosome, codante : Somme(taille)) Code chromosome codante La relation résultat comportera autant de lignes que de groupes de n-uplets, les fonctions s'appliquant à chacun des groupes séparément.

21 EN SQL Select codeChromosome, SUM(taille) as codante from Genes Group by CodeChromosome


Télécharger ppt "Base de données relationnelles"

Présentations similaires


Annonces Google