Formation ISN II Les bases de données 1/3 Mercredi 10 juillet 2013

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Chap. 4 Recherche en Table
Informatique appliquée à la gestion Bases de données www. labri
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Algèbre relationnelle
Formation au référentiel 1 STG (Sciences et technologie de la gestion)
Les requêtes Manière de dialoguer avec une base de donnée pour :
Les Requêtes S.Q.L « Structured Query Language)
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Initiation au système d’information et aux bases de données
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Initiation au système d’information et aux bases de données
LMD: Langage de Manipulation de Données
Développement d’applications web
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
BASE DE DONNEES RELATIONNELLES
Database B2 2 MIP Paris.
Initiation aux bases de données et à la programmation événementielle
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Bases de données et SGBD relationnels
Les instructions PHP pour l'accès à une base de données MySql
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Gestion des bases de données
SQL Partie 3 : (LID : Langage d'interrogation de données)
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
1. Représentation des informations
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Introduction.
Chapitre 5 : Le langage SQL
SQL Partie 1.
Création et présentation d’un tableau avec Word 2007
Comment stocke-t-on des données sur un site web ?
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
ETAPE04 « Des besoins d’information… » « Des besoins d’information » En définissant son schéma relationnel, le Moulin des Costières définit une organisation.
Rédigez le modèle relationnel à la source des tables de biblio.mdb.
Initiation aux bases de données
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
DOSSIER G10 – La base de données Relationnelle
Sélection de colonnes (la projection)
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Les bases de données Séance 8 Jointures.
Séance /10/2004 SGBD - Approches & Principes.
Introduction aux Bases de Données et au langage SQL
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Initiation aux bases de données et à la programmation événementielle
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Introduction Module 1.
Analyse, élaboration et exploitation d’une Base de Données
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
SQL LID – INTERROGATIN DES DONNEES
Transcription de la présentation:

Formation ISN II Les bases de données 1/3 Mercredi 10 juillet 2013 Corinne RAINGUEZ – Lycée du Grand Nouméa corinne.rainguez@ac-noumea.nc

Contenus des interventions Mercredi 10 juillet Initiation aux bases de données et SQL Application pratique avec ACCESS 2003 Mercredi 24 juillet Bases de données, suite Eléments de HTML et PHP pour MySQL Application pratique avec wamp Mercredi 7 aout Eléments théoriques complémentaires Application pratique récapitulative, évaluation 2

Déroulement de la séance du jour Alternance de contenus théoriques et d’applications pratiques à partir d’une BDD exemple. 13H30 – 16H30 3

Les bases de données en quelques mots Les bases de données (BDD) ont été créées pour faciliter la gestion qualitative et quantitative des données. Les SGBD (Access, MySql, Oracle) sont des applications informatiques permettant de créer et de gérer des BDD. Les BDD relationnelles sont les plus répandues, et on utilise des SGBDR pour les implémenter. Le langage SQL est le langage commun à tous les SGBDR, ce qui permet de concevoir des BDD relativement indépendamment des systèmes utilisés. 4

Quelques définitions essentielles Une BDD est un ensemble volumineux, structuré et minimalement redondant de données reliées entre elles, stockées sur supports numériques centralisés ou distribués, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables par un ou plusieurs utilisateurs travaillant potentiellement en parallèle. Exemple d'application : gestion d'une compagnie aérienne.

Un SGBD est un logiciel qui prend en charge la structuration, le stockage, la mise à jour et la maintenance d'une base de données. Il est l'unique interface entre les informaticiens et les données (définition des données, programmation des applications), ainsi qu'entre les utilisateurs et les données (consultation et mise à jour). Exemples : Access est une SGBD relationnel Microsoft qui offre une interface conviviale permettant de concevoir rapidement des applications de petite envergure ou de réaliser des prototypes à moindre frais. MySQL est un SGDB relationnel libre très utilisé pour la réalisation de sites web dynamiques.

Présentation de la base de données Astérix Le schéma relationnel de la base astérix.xls 7

Modèle logique 8

Règles de lecture du schéma relationnel, exemples Tables VILLAGE, HABITANT Table FABRIQUER Table TROPHEE 9

Mots clés associés Clé primaire Clé étrangère, secondaire Règle de gestion Dépendance fonctionnelle 10

Pas de dépendance entre attribut non clé (3FN) Formes normales Clé + atomicité(1FN) Clé composée (2FN) Pas de dépendance entre attribut non clé (3FN) => Pas de redondance, pas de perte d’information, pas de perte de dépendance. 11

Intégrité référentielle Enregistrement, tuple, occurrence Attribut, champ

SQL : STRUCTURED QUERY LANGUAGE Présentation de SQL SQL : STRUCTURED QUERY LANGUAGE SQL comprend : un langage d’interrogation des données (LID) un langage de définition des données (LDD) 13

un langage de manipulation des données (LMD) un langage de contrôle des accès à la base (LCD) Il peut être utilisé directement grâce un SGBDR (Access, SQLite, SQL Server, Oracle…) ou alors intégré dans un langage hôte (C#, PHP, VBScript...). 14

I- Le Langage d’interrogation de données (LID) Pour sélectionner certaines colonnes d’une table (projection) sélectionner certaines lignes d’une table - à partir de leur contenu (sélection) combiner des informations venant de plusieurs tables (jointure) 15

Utilisation d’Access 2003 Ouvrir la BDD « Astérix et Obélix isn » à partir de l’application Access.

Pour créer une requête (mode création)

Sélectionner la(es) table(s) à utiliser Double-cliquer sur les champs à afficher

Deux options, complémentaires, avec ACCESS, pour créer une requête Le mode QBE (tableau) Le mode SQL

I-1 la projection R1 : Liste de tous les habitants ?

2 2 1 1 22 3

Résultat de la requête : 23

…trié par ordre alphabétique… Par défaut : ASC Sinon, préciser <nom-du-champ> DESC

R2 : Liste des provinces et de leur gouverneur ?

26

Résultat de la requête : 27

R3 : Liste des constituants principaux des potions ?

29

Résultat de la requête :

R4 : Liste des différents constituants principaux des potions

Résultat de la requête :

R5 : Toutes les informations sur les potions ?

Le signe * équivaut ici à afficher toutes les informations contenues dans la table

Exercice - Rédiger les requêtes suivantes 1 - Quelles sont les qualités rencontrées dans le village d’Astérix ? 2 - Nom des resserres et leur superficie ? 3 – Renseignements concernant les provinces ? 4 – Libellés des potions ? 5 – Liste des villages par ordre alphabétique

I-2 la sélection R6 : Liste des trophées rapportant 4 points ?

Résultat de la requête :

R7 : Les noms des habitants de plus de quarante ans

Résultat de la requête :

R8 : Les noms des habitants ayant entre quarante et cinquante ans

Résultat de la requête :

SELECT Habitant.Nom, Habitant.Age FROM Habitant Avec BETWEEN SELECT Habitant.Nom, Habitant.Age FROM Habitant WHERE (((Habitant.Age) Between 40 And 50)); Résultat de la requête :

Les opérateurs utilisés dans les clauses SELECT et WHERE

R10 : Liste des habitants dont le nom contient un u

R11 : Liste des villages des provinces 1 et 2

R12 : Liste des potions dont on ne connait pas la formule

Exercice 2 - Rédiger les requêtes suivantes : 1- Donner les noms des trophées de type « Bouclier » 2 - Combien y a-t-il de huttes dans les villages d’Aquilona et de Gergovie ? 3 - Quelles sont les quantités, rangées par ordre décroissant, des potions absorbées par l’habitant n°3 ? 4 - Quel est le constituant principal de la potion zen ? 5 - Quelles sont les catégories de trophées rangées dans les resserres 1, 2 et 3 ?

I-3 la jointure R13 : Liste des habitants : nom, age et qualité

Tables à joindre Champs de jointure

R14 : Liste des villages, avec leur province et le nom du gouverneur

R15 : Nom du village où vit Astérix

Exercice - Rédiger les requêtes suivantes : 1 - Nom et qualité des habitants ayant stocké leur trophée dans la resserre n°3, par ordre croissant des catégories de trophées ? 2 – Noms et âge des habitants ayant déjà fabriqué une potion anti-douleur ? 3 – Qualités des habitants dont le nom commence par B ? 4 – Noms des habitants gouvernés par « Yenapus » et « Garovirus » ? 5 – Liste des trophées gagnés par Astérix ?

Les fonctions d’agrégat SQL dispose d'une famille de fonctions appelées les fonctions d'agrégats qui s'appliquent à un ensemble de valeurs d'une colonne. Ces fonctions permettent d'obtenir des informations relatives à un ensemble de données. Count (attribut) dénombre les occurrences d'un attribut Avg (attribut) calcule la moyenne des valeurs d'un attribut Sum (attribut) calcule la somme des valeurs d'un attribut Min (attribut) détermine la plus petite valeur d'un attribut Max (attribut) détermine la plus grande valeur d'un attribut Toutes ces fonctions d'agrégats ignorent les valeurs nulles mais peuvent avoir des valeurs qui se répètent; pour préciser qu'il faut tenir compte de toutes les valeurs ou seulement de celles qui sont distinctes, il faut préciser ALL ou DISTINCT (par défaut, c'est ALL).

R16 : Compter le nombre de resserres

R17 : Afficher la moyenne d’age des habitants

R18 : Calculer la superficie totale occupée par les resserres

R19 : Quel est l'âge le moins élevé parmi ceux des habitants ?

Les sous-requêtes R20 : Liste des habitants qui ont bu de la potion magique

Autres exemples : Liste des noms des habitants ayant absorbé une potion magique SELECT Nom FROM HABITANT WHERE NumHab IN (SELECT NumHab FROM ABSORBER WHERE NumPotion IN (SELECT NumPotion FROM Potion WHERE LibPotion LIKE 'Potion magique%')) ;

Liste des noms des habitants ayant absorbé la potion anti douleur SELECT Nom FROM HABITANT WHERE NumHab IN (SELECT NumHab FROM ABSORBER WHERE NumPotion = (SELECT NumPotion FROM Potion WHERE LibPotion = 'Potion anti douleur')) Nom de l'habitant le plus vieux WHERE Age = (SELECT MAX(Age) FROM HABITANT)

Exercice - Rédiger les requêtes suivantes : 1 – Quel est le nombre de fois où une potion a été absorbée ? 2 – Quel est le nom des habitants qui habitent dans le même village qu’Astérix ? 3 – Afficher le nom et la qualité de la personne la plus jeune de tous les villages. 4 – Quelle est jusqu’ici la quantité totale de potion absorbée ? 5 – Quel est le nombre de trophées de type Bouclier remportés jusqu’ici ?

La clause GROUP BY Elle permet de constituer des sous-ensembles d’occurrences dans une relation. Noter que tous les attributs cités dans le SELECT (sauf les fonctions d’agrégat) doivent se retrouver dans le GROUP BY. Exemple : Combien y a-t-il d’habitants pour chacune des qualités ? SELECT Qualité.NumQualité, Count(Habitant.NumHab) AS CompteDeNumHab FROM Qualité INNER JOIN Habitant ON Qualité.NumQualité = Habitant.NumQualité GROUP BY Qualité.NumQualité;

La clause HAVING C’est l’équivalent de la clause WHERE pour un GROUP BY. Cela sert de critère de sélection pour les groupes. La condition de HAVING s’applique à chacun des sous-ensembles et élimine ceux qui ne le satisfont pas. Exemple (d’abord sans HAVING) : afficher le nombre de villages par province SELECT Province.NumProvince, Count(Village.NumVillage) AS Nombredevillages FROM Province INNER JOIN Village ON Province.NumProvince=Village.NumProvince GROUP BY Province.NumProvince;

Même question que la précédente en ne retenant que les provinces qui contiennent plus de 2 villages. SELECT Province.NumProvince, Count(Village.NumVillage) AS Nombredevillages FROM Province INNER JOIN Village ON Province.NumProvince=Village.NumProvince GROUP BY Province.NumProvince HAVING Count(Village.NumVillage)>2; Remarque : la clause HAVING doit suivre la clause GROUP BY et doit s’appliquer à un ensemble de données sur lequel on a pratiqué une opération.

Exercice - Rédiger les requêtes suivantes : 1 – Nombre de fois où chaque potion a été absorbée. 2 – Nom des potions qui ont été absorbées plus de deux fois. 3 – Nom des habitants qui ont fabriqué plus d’une fois de la potion. 4 – Nom et qualité des habitants qui ont gagné plus de deux trophées, classés par âge décroissant. 5 – Noms des resserres qui contiennent moins de 2 trophées.

Les opérateurs ensemblistes Ils combinent le résultat de deux requêtes pour en faire un seul (les deux SELECT doivent avoir le même nombre d’attributs projetés er ceux-ci doivent être de même type). L’union Exemple : donner le nom des habitants de plus de 65 ans ou ayant absorbé au moins une fois la potion numéro 4.

SELECT Nom FROM HABITANT WHERE Age > 65 UNION FROM HABITANT H, ABSORBER A WHERE NumPotion = 4 AND H.NumHab = A.NumHab ; Remarque : l’opérateur UNION élimine les doublons. Si l’on veut les garder, il faut ajouter ALL.

L’intersection On ne garde que les lignes communes aux deux requêtes. Exemple : donner le numéro des habitants ayant bu de la potion numéro 1 et de la potion numéro 5.

SELECT NumHab FROM ABSORBER WHERE NumPotion = 1 INTERSECT WHERE NumPotion = 5 ;

Autre solution : SELECT DISTINCT NumHab FROM Absorber WHERE numPotion = 1 AND NumHab IN (SELECT NumHab FROM Absorber WHERE NumPotion = 5);

La différence On soustrait le résultat de la deuxième requête au résultat de la première. Exemple : donner les noms des habitants ayant bu de la potion numéro 1 mais pas de la potion numéro 5.

SELECT NumHab FROM Absorber WHERE NumPotion = 1 EXCEPT WHERE NumPotion = 5 ; Ou AND NumHab NOT IN (SELECT NumHab FROM Absorber WHERE NumPotion = 5);

Documents présentés Logiciels utilisés Voir sur le site du pôle science Logiciels utilisés Access 2003 (SGBD) PowerPoint (présentation) 86

Sources Pour aller plus loin Base de données proposée par Valérie Descours, professeur d’informatique au Lycée Mermoz, dans l’académie de Montpellier. Pour aller plus loin Vidéo conférences en ligne sur les bases de données sur le site de l’université de Stanford (Jennifer Widom). http://online.stanford.edu/db-win13 87

Position dans le programme BO du 13/10/2011 http://www.education.gouv.fr/pid25535/bulletin_officiel.html?cid_bo=57572 Persistance de l'information Les données, notamment personnelles, sont susceptibles d'être mémorisées pour de longues périodes sans maîtrise par les personnes concernées. Prendre conscience de la persistance de l'information sur les espaces numériques interconnectés. Comprendre les principes généraux permettant de se comporter de façon responsable par rapport au droit des personnes dans les espaces numériques. La persistance de l'information se manifeste tout particulièrement au sein des disques durs mais aussi des mémoires caches. Elle interagit avec le droit à la vie privée et fait naître une revendication du « droit à l'oubli ».

Structuration et organisation de l'information On manipule de grandes quantités d'informations. Il est nécessaire de les organiser. …Classer des informations, notamment sous forme d'une arborescence.  On peut ici étudier le système d'organisation de fichiers en dossiers. Un ensemble de documents unis par des liens hypertextes fournit un exemple de classement de type graphe.