1 / 14

Initiation aux bases de données et à la programmation événementielle

Initiation aux bases de données et à la programmation événementielle. Cours N°2 : Introduction au langage d’interrogation de données. Support de cours de Souheib BAARIR. Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr

eris
Download Presentation

Initiation aux bases de données et à la programmation événementielle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Initiation aux bases de données et à la programmation événementielle Cours N°2 : Introduction au langage d’interrogation de données. Support de cours de Souheib BAARIR. Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr Université Paris Ouest Nanterre la Défense. 2009-2010.

  2. BD relationnelle • Relations et Algèbre relationnelle : • Représentation symbolique (mathématique) de haut niveau des intentions de l’utilisateur. • Sur une machine… : • Représentation informatique des Relations ? • Les Tables. • Langage exprimant les Opérations Relationnelles ? • SQL : • SELECT att1,…, attn • FROM R1,…,Rm • WHERE Conditions Requêtes de sélection de base

  3. En-tête de colonne : le nom du champ On parle d’ « enregistrement » Chaque « ligne » est un n-uplet de la relation On parle de « champ » Les valeurs d’une « colonne » appartiennent à un même domaine Relations  tables A = {vert, jaune, rouge}, B = {allumé, éteint}, C = {(vert, allumé),(vert, éteint), (rouge, allumé)} Table B Table C

  4. Tables : rôles des champs • Information (intrinsèque) : définit une donnée particulière. • Identifiant (Clé primaire) : ensemble de champs dont les valeurs • permettent de distinguer les enregistrements les uns aux autres. Il peut • être simple (un seul champ) ou composé (plusieurs champs). • Référence (Clé étrangère, Clé externe) : champ qui est clé • primaire d’une autre relation.

  5. Structured Query Language (SQL) • Plusieurs types de requêtes : • d’interrogation. • de manipulation : insert, update, delete… • de définition : create, alter, drop… SELECT [DISTINCT] liste de champs FROM liste de tables [WHERE prédicats] • Une nouvelle Table : • mettant en relation plus tables, • exhibant de nouvelles données, • cachant des données inutiles, • … [GROUP BY ordre des groupes] [HAVING condition] [ORDER BY liste de colonnes]

  6. SQL : produit Cartésien TableR1 TableR2 PRODUIT(TableR1,TableR2) TableR1•TableR2 Deux champs portent le même nom dans TableR1 et TableR2 : Différenciés par le nom de la table associé SQL SELECT * FROM TableR1,TableR2

  7. SQL : Projection étudiant le nom et prénom de tous les étudiants ? étudiant-proj PROJECTION (nom,prénom)(étudiant) SQL SELECT nom, prénom FROM étudiant;

  8. SQL : Restriction étudiant toutes les informations sur les étudiants Nanterrois ? RESTRICTION (adresse = Nanterre)(étudiant) Étudiant-nanterrois SQL SELECT * FROM étudiant WHERE adresse = "Nanterre";

  9. SQL : Restriction et projection étudiant le nom et prénom des étudiants Nanterrois. PROJECTION (Nom,prénom)(RESTRICTION(adresse = Nanterre)(étudiant )) SQL identités étudiants nanterrois SELECT nom, prénom FROM étudiant WHERE résidence = "Nanterre";

  10. SQL : Produit Cartésien, restriction et projection étudiant adresse le nom, le prénom et la ville des étudiants qui habitent le Haut-de-Seine. PROJECTION (Nom,prénom)(RESTRICTION(référence=code adresse et département= 92) (PRODUIT(étudiant,adresse))) SQL Etudiants Hauts-de-Seine SELECT étudiant.nom, étudiant.prénom, adresse.ville FROM étudiant, adresse WHERE (adresse.[code adresse]=[référence adresse]) AND (adresse.département=92);

  11. Produit Cartésien, restriction et projection : détails des opérations (théoriquement) PROJECTION(Nom,prénom,ville) (RESTRICTION(référence=code adresse et département= 92) (PRODUIT(étudiant,adresse))) SELECT étudiant.nom, étudiant.prénom, adresse.ville FROM étudiant, adresse WHERE (adresse.[code adresse]=[référence]) AND (adresse.département=92); étudiant adresse Etudiants Hauts-de-Seine

  12. Produit Cartésien, restriction et projection : problèmes le nom, le prénom et le nom du département des étudiants, qui habitent le Haut-de-Seine. PROJECTION(Nom,prénom,ville) (RESTRICTION(référence=code adresse et département= 92) (PRODUIT(étudiant,adresse))) SELECT étudiant.nom, étudiant.prénom, adresse.ville FROM étudiant, adresse WHERE (adresse.[code adresse]=[référence]) AND (adresse.département=92) • Relation intermédiaire : • Construction d’enregistrements inutiles ! • Relation finale : • On ne peut pas rajouter d’enregistrements dans la relation finale ! Solution : la jointure.

  13. SQL : Jointure SELECT étudiant.nom, étudiant.prénom,adresse.ville FROM adresse, étudiant WHERE (adresse.[code adresse]=[référence]) AND (adresse.département=92); Ici, le nom de la table est obligatoire La première clause de restriction est presque équivalente à unejointure SELECT étudiant.nom, étudiant.prénom, adresse.ville FROM étudiant INNER JOIN adresse ON étudiant.référence = adresse.[Code adresse] WHERE adresse.département = 92;

  14. Jointure : détails des opérations SELECT étudiant.nom, étudiant.prénom, adresse.ville FROM étudiant INNER JOIN adresse ON étudiant.référence = adresse.[Code adresse] WHERE adresse.département = 92;

More Related