INFORMATIQUE MME. DOMINIQUE TACHAT 1 er Cours - le 5 février Introduction Progr

INFORMATIQUE MME. DOMINIQUE TACHAT 1 er Cours - le 5 février Introduction Programme: les bases de données Les bases données relationnelles Le langage standard SQL: apprendre à programmer L’algèbre relationnelle Mysql Les dépendances et la normalisation Le SGBD Access Les bases de données: modèle entités-associations - 1 er contrôle : semaine du 12 mars (Excel et langage SQL) - 2 ème contrôle : semaine du 14 mai (algèbre relationnelle, Mysql, Access, dépendances et normalisation et modèles entités-associations) Définition de bases de données: un ensemble de données de l’entreprise mémorisé par un ordinateur, qui est utilisé par de nombreuses personnes et dont l’organisation est régie par un modèle de données. Deux types de modèles de données: a) relationnel; et b) entité-associations. Le modèle relationnel a comme concept de base une relation, représentée sous forme de tables. Qui dit relation, dit table. Les en-têtes sont les attributs: numproduit, nomproduit et stock. Numproduit Nomproduit Stock N101 Table 25 N202 Chaise 120 N251 Table 36 N541 Lit 120 Les occurrences sont les lignes de la table, sauf la ligne des attributs. Dans l’exemple, on en a quatre. Chaque relation contient un attribut particulier ou un ensemble de plusieurs attributs appelé clé, dont la valeur va permettre de distinguer une occurrence de toutes autres occurrences. On représente symboliquement une relation par un schéma de la forme: Nom_relation (clé, attribut1, attribut2,...). Dans le dernier exemple: produit(numproduit, nomproduit, stock). Un système de gestion de base de donnes (SGBD) représente un logiciel (ou un ensemble coordonné de logiciels) qui permet de décrire, mémoriser, manipuler, traiter, interroger les ensembles de données constituant la base. Il assure la sécurité et la confidentialité des données dans un environnement où de nombreux utilisateurs ayant des besoins variés peuvent interagir simultanément sur ces ensembles de données. Un SGBD permet de récupérer une base de donnée après une pane de l’ordinateur, aussi elle permet la sécurité et la confidentialité car il gère les accès multiples aux données (le RH a plus d’accès aux données des employés d’une entreprise que les salariés). Dans un SGBD relationnel, les structures de données sont représentées sous forme de table (le modèle est relationnel). Un exemple, c’est l’ACCESS. Ces SGBD proposent des langages permettant d’accéder aux donnés de manière assez naturelle, comme le SQL. Exemple: la base de données relationnelle Vols a 3 relations: 1) vol, qui comporte: vol(numvol,depart,arrivee,numav,numpil,jdep,hdep,jarr,harr) On a le numéro de vol, la ville de départ, la ville d’arrivée, le code d’avion, le code du pilote, le jour de départ (format JJ/MM/AAAA), l’heure de départ (format XX:XX), le jour d’arrivée et l’heure d’arrivée. Les deux soulignés sont la clé de la relation: numvol et jdep. 2) pilote, qui comporte: pilote(numpilote,nom,prenom) 3) avion, qui comporte: avion(numavion,type,cap) On peut voir que numpilote et numpil sont la même chose, ainsi que pour numav et numavion. Cap représente le nombre de passagers. Vol: numvol depart arrivee numav numpil jdep hdep jarr harr Pilote: numpilote nom prenom Avion: Numavion type cap Il faut mettre en évidence les liens entre les différentes tables. Avec ces liens, on peut connaitre donc le prénom du pilote, par exemple. On peut avoir des informations aussi sur les avions des vols référencés dans la table vol et sur les vols effectués par les avions. En mettant en lien les trois tables et leurs deux liens, on peut savoir le nom des pilotes de chaque avion, par exemple. Chapitre 1 - Le langage SQL I. Les requêtes Le langage SQL (Structured Query Language) est le langage le plus utilisé pour les bases de données relationnelles. Ça va permettre de déclarer les relations, créer les occurrences, modifier les occurrences et interroger des bases de données relationnelles. On va formuler des requêtes. La forme générale d’une requête SQL c’est: SELECT liste d’attributs FROM nom des relations WHERE conditions Dans le from on met le nom de la table que nous intéresse, where ce sont les conditions qui doivent respecter les résultats et select ce sont les attributs qu’on veut voir affichés dans le résultat. Le résultat d’une requête est toujours une table, on a réalisé une projection, car la requête ne prend qu’un sous-ensemble des attributs de la relation pilote. On va écrire toujours dans l’ordre select, from, where, mais on commence toujours par from. Exemple 1: recherche des noms et prénoms des pilotes. Select p.nom,p.prenom (p. représente que le nom vient de table p, on fait ça quand deux tables ont des attributs identiques, ce n’est pas le cas ici mais ça se passera aux TDs) From pilote p (le p représente l’alias) Exemple 2: recherche des attributs des pilotes de prénom Georges. Select * (l’étoile va nous donner tous les attributs) From pilote p Where p.prenom=’Georges’ La requête affiche tous les attributs de la relation pilote mais ne prend que les occurrences qui vérifient la condition p.prenom=’Georges’. La sélection porte sur le where, et la projection sur le select. Exemple 3: recherche des attributs des vols décollant le 15/05/99. Select * From vol v Where v.jdep={d’1999-05-15’} Sous Easy PHP, on peut exprimer la date comme: v.jdep=”1999-05-15”. Sous ACCESS, on note: v.jdep=#1999-05-15# On fait une sélection, car la requête affiche tous les attributs de la relation vol mais ne prend que les occurrences qui vérifient la condition v.jdep={d’1999-05-15’} Exemple 4: attributs croisés de tous les pilotes et de tous les vols Select * From vol v, pilote p; Le résultat sera une table avec les attributs de la table vol, mais pour chaque ligne de vol, un collage de 6 lignes de la table pilotes: On a fait un produit cartésien de la relation vol par la relation pilote: la requête combine toutes les occurrences de vol avec toutes les occurrences de pilote. Exemple 5: recherche sur les vols et sur les pilotes effectifs de ces vols From vol v, pilote p Where p.numpilote=v.numpil; On a fait une jointure naturelle, c’est-à-dire, la requête sélectionne sur le produit cartésien de vol par pilote les occurrences pour lesquelles les attributs p.numpilote et v.numpil sont égaux. 2 ème Cours – le 12 février 2018 Exemple 6: numéro de vols et nom des pilotes On va travailler avec la table vol et la table pilote, on doit faire la jointure des deux tables. On utilise l’alias (v et p) pour parler des tables au lieu de dire leur nom. Comme occurrences on aura les numéros de vol et le nom des pilotes. Le point virgule est toujours à la fin de la requête, soit le from, le where, ou quelque chose d’autre. On a fait une projection à partir d’une jointure naturelle. SELECT v.numvol, p.nom FROM vol v, pilote p WHERE p.numpilote=v.numpil; Exemple 7: numéro des vols sur l’avion « A0006 » et le nom des pilotes de ces vols. On a réalisé une projection, une jointure naturelle et une sélection. SELECT v.numvol, p.nom FROM vol v, pilote p WHERE p.numpilote=v.numpil AND v.numav=’A0006’; Exemple 8: numéro des vols, types d’avion, capacités et noms de pilotes de ces vols. Il faudra montrer les liens entre les trois tables. On a fait une projection du résultat de 2 jointures naturelles entre 3 relations. SELECT v.numvol, a.type, a.cap, p.nom FROM vol v, pilote p, avion a (l’ordre n’importe pas) WHERE p.numpilote=v.numpil AND v.numav=a.numavion; Exemple 9: numéro des vols, types d’avion, capacités et noms des pilotes des vols de capacité supérieure à 250 C’est toujours important de regarder la base de données pour bien comprendre les jointures avant de commencer. SELECT v.numvol, a.type, a.cap, p.nom FROM vol v, pilote p, avion a WHERE p.numpilote=v.numpil AND v.numav=a.numavion AND a.cap>250; II. Les fonctions ensemblistes II.I. Fonction max C’est une fonction qui va calculer la valeur maximale d’un attribut donné, sachant que cet attribut pourra être un nombre ou une chaine de caractère. Pour les caractères, il y a un ordre lexicographique à trouver. Exemple: capacité maximale des avions allant à Madrid On va travailler avec la table vols et la table avion, il faut donc écrire les liens entre elles. On pourrait écrire tout en minuscule si on voulait. SELECT MAX(a.cap) FROM avion a, vol v WHERE v.numav=a.numavion AND v.arrivee=’Madrid’; II.II. Fonction min Comme pour max, min peut fournir un nombre ou une chaine de caractères pour trouver la valeur minimale d’un attribut. Exemple: heure de départ du 1er vol du 15/5/99 SELECT MIN(v.hdep) FROM vol v WHERE v.jdep={d’1999-05-15’}; II.III. Fonction count Cette fonction va permettre de compter le nombre d’occurrences d’une table. On peut l’écrire de deux façons. Exemple: on souhait connaître le nombre d’avions au départ de Paris SELECT COUNT(v.depart) OU SELECT COUNT(*) FROM vol v WHERE v.depart=’Paris’; II.IV. Fonction sum Ça va permettre d’additionner les valeurs d’un même attribut. Ici l’attribut ne pourra être que numérique. Exemple: capacité totale des avions au départ de Paris SELECT SUM(a.cap) FROM avion a, vol v WHERE v.numav=a.numavion AND v.depart=’Paris’; II.V. Fonction AVG Ça va permettre de calculer la moyenne des valeurs d’un même attribut. Exemple: moyenne des capacités des avions à destination d’Amsterdam SELECT AVG(a.cap) FROM avion a, vol v WHERE v.numav=a.numavion AND v.arrivee=’Amsterdam’; II.VI. Fonction DISTINCT Ça uploads/Voyage/ informatique.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jui 07, 2022
  • Catégorie Travel / Voayage
  • Langue French
  • Taille du fichier 0.3161MB