Bases de données – Cours 3

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Bases de données : modèlisation et SGBD
SGBD – Oracle Cours BD LF2 info

Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Les contraintes d’integrité
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
Eléments d ’algèbre relationnelle
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
BASE DE DONNEES RELATIONNELLES
Initiation aux bases de données et à la programmation événementielle
LANGAGES LIES AU MODELE RELATIONNEL
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 requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
Staf 2x Cours de bases de données
Algèbre Relationnelle
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Management of Information Technology - e-business
Bases de Données Avancées - TP2: SQL
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
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.
LE LANGAGE DE REQUETES SQL2
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
Le langage de requêtes SQL
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.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Langage Relationnel Graphe de Requêtes
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
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.
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Bases de données : modèlisation et SGBD Séance 3.
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é.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

Bases de données – Cours 3 Présenté par: Rouagat Wahab

Contenu Algèbre relationnelle SQL par: Rouagat Wahab

L'algèbre relationnelle l'algèbre relationnelle a inspiré le langage SQL. Elaborée par Codd dans sa thèse, elle repose sur un petit nombre d’opérateurs que l'on applique à des relations de la base de données. Les opérateurs sont de deux types : relationnels et ensemblistes. par: Rouagat Wahab

Opérateurs relationnels Projection La projection est un opérateur d’accès par les colonnes. La projection U d’une relation R sur une liste d’attributs est la relation dont le schéma se réduit aux attributs de la liste. Ses tuples sont ceux de R, avec élimination des tuples en double. par: Rouagat Wahab

Projection Exemple: Soit la relation suivante: R A B C a 1 b d 2 f A B par: Rouagat Wahab

Projection par: Rouagat Wahab

Opérateurs relationnels Restriction (ou Sélection ) La restriction est un opérateur d’accès par les lignes. Une formule de restriction ou qualification q est une expression logique reliant des attributs de la relation opérande avec des constantes par l’intermédiaire d’opérateurs de comparaison ; par exemple : A = a AND B < 2 La restriction U de la relation R par la qualification q est une relation de même schéma que R dont les tuples sont ceux de R qui vérifient la qualification. par: Rouagat Wahab

Restriction Exemple: U = б A=a (R) A B C a 1 d A B C a 1 b d 2 f R par: Rouagat Wahab

Restriction par: Rouagat Wahab

Opérateurs ensemblistes Union L’union de deux relations R et S de même schéma est la relation de même schéma dont les tuples sont à la fois ceux de R et de S. par: Rouagat Wahab

Union S R Exemple: Soit les relations R et S A B C a 3 f A B C a 1 b d 2 f 3 K = R U S A B C a 1 b d 2 f R par: Rouagat Wahab

Union par: Rouagat Wahab

Opérateurs ensemblistes Différence La différence de deux relations de même schéma R et S est une relation de même schéma dont les tuples sont ceux de R n’appartenant pas à S. La différence n’est pas un opérateur commutatif. par: Rouagat Wahab

Différence par: Rouagat Wahab

Opérateurs ensemblistes L’intersection L’intersection de deux relations R et S de même schéma est une relation de même schéma constituée des tuples qui appartiennent à la fois R et à S. par: Rouagat Wahab

intersection par: Rouagat Wahab

Produit cartésien Le produit cartésien de deux relations R et S est une relation dont le schéma est la concaténation de ceux des relations composantes et dont les tuples sont obtenus en combinant chaque tuple de R avec tous ceux de S. par: Rouagat Wahab

jointures On distingue plusieurs opérateurs de jointures. Ils sont associés à des formules de qualification reliant entre eux certains attributs des relations composantes. l’équijointure : La clause de qualification est une égalité entre deux attributs des relations opérandes. La relation résultante est le sous-ensemble du produit cartésien réduit aux tuples vérifiant la qualification, sans répétition, dans le schéma, de l’attribut commun. par: Rouagat Wahab

Exemple: soit la relation R et T ou: B C a 1 b d 2 f R par: Rouagat Wahab

jointure par: Rouagat Wahab

Composition d’opérations La composition des divers opérateurs permet d’envisager des traitements algébriques complexes autorisant des manipulations formelles des données. Soient les relations : EMP(numemp, nomemp, salaire, emploi, departement) DEPT(numdept, nomdept, adresse, ville) La détermination des informaticiens basés à Ouargla et gagnant plus de 20000 DA se fera par : par: Rouagat Wahab

Composition d’opérations Cette expression peut être représentée graphiquement par l’arbre statique d’exécution suivant : par: Rouagat Wahab

arbre statique d’exécution par: Rouagat Wahab

Exercice On suppose qu'une bibliothèque gère une base de données dont le schéma est le suivant : Emprunt(Personne, Livre, DateEmprunt, DateRetourPrevue, DateRetourEective) Retard(Personne, Livre, DateEmprunt, PenalitéRetard) Question: Exprimer les requêtes suivantes en algèbre relationnelle: Quelles sont les personnes ayant emprunté le livre "Recueil Examens BD" ? Quelles sont les personnes n'ayant jamais rendu de livre en retard ? Quelles sont les personnes ayant emprunté tous les livres (empruntés au moins une fois) ? Quels sont les livres ayant été empruntés par tout le monde (i.e. tous les emprunteurs) ? par: Rouagat Wahab

Solution 1: 2: 3: 4: par: Rouagat Wahab

SQL (Structured Query Language) Le langage SQL peut être considéré comme le langage d’accès normalisé aux bases de données. Il est aujourd’hui supporté par la plupart des produits commerciaux que ce soit par les systèmes de gestion de bases de données micro tel que Access ou par les produits plus professionnels tels que Oracle ou Sybase. Il a fait l’objet de plusieurs normes ANSI/ISO dont la plus répandue aujourd’hui est la norme SQL2 qui a été définie en 1992. Le succès du langage SQL est du essentiellement à sa simplicité et au fait qu’il s’appuie sur le schéma conceptuel pour énoncer des requêtes en laissant le SGBD responsable de la stratégie d’exécution. par: Rouagat Wahab

SQL Le langage SQL comporte : une partie sur la définition des données : le langage de définition des données (LDD) qui permet de définir des relations, des vues externes et des contraintes d’intégrité; une partie sur les requêtes : le langage de manipulation des données (LMD) qui permet d’interroger une base de données sous forme déclarative sans se préoccuper de l’organisation physique des données; une partie sur le contrôle des données : le langage de contrôle des données (LCD) qui permet de contrôler la sécurité et les accès aux données. par: Rouagat Wahab

Le langage de définition des données (LDD) Le langage de définition des données permet de définir et de manipuler les concepts du modèle relationnel liés au schéma : relation, attribut, clé, contraintes d’intégrité, vues ainsi que certains éléments liés à l’administration de la base de données : index, droits des utilisateurs. Les types de données disponibles dépendent du SGBD mais on retrouve généralement les types entier, réel, chaînes de caractères et date. Les principaux types de données disponibles en SQL sont : SMALLINT, INTEGER, DECIMAL, FLOAT, DOUBLE, DATE, TIME, TIMESTAMP, CHAR et VARCHAR. par: Rouagat Wahab

CREATE TABLE (LDD) Crée une relation (table) Syntaxe : CREATE TABLE <nom_de_relation> ( <nom_d’attribut> <type_de_données> [NOT NULL] [, ...] [, PRIMARY KEY (<nom_d’attribut> [, ...] ) ] [, FOREIGN KEY (<nom_d’attribut>) REFERENCES <nom_de_relation> [, ...] ] ) par: Rouagat Wahab

exemple Soit le schéma relationnel suivant: Article (n_art, design, prix_ach, prix_v) Stock (#sn_art, quantite, seuil) La requête suivante nous permet de créer la relation ‘Article’: create table article( n_art numeric(3) not null, design varchar(30), prix_ach decimal(6,2), prix_v decimal(6,2), primary key (n_art) ) par: Rouagat Wahab

exemple Stock (# sn_art, quantite, seuil) La requête suivante nous permet de créer la relation ‘stock’: create table stock( sn_art numeric(3) not null, quantite numeric(2), seuil numeric(2), primary key (sn_art), foreign key (sn_art) references article(n_art) ) par: Rouagat Wahab

ALTER TABLE (LDD) Modifier une relation (table) Syntaxe : Exemple: ALTER TABLE <nom_de_relation> ADD ( <nom_d'attribut> <type_de_données> ) ALTER TABLE <nom_de_relation> ADD constraint <contrainte> Exemple: Si on veut augmenter la relation stock par le champ etage de type chaîne de caractères Stock (#sn_art, quantite, seuil, etage) alors, on doit appliquer la requête suivante: alter table stock add etage varchar(2) par: Rouagat Wahab

DROP TABLE (LDD) Supprimer une relation (table) Syntaxe : Remarque: DROP TABLE <nom_de_relation> [CASCADE CONSTRAINTS] Remarque: On ne peut pas supprimer une table qui est référencée par d’autres table, en effet, Si on veut supprimer la table ‘article’ on doit d'abord supprimer la table ‘stock’ Remarque : [CASCADE CONSTRAINTS]: forcer la supprission de la relation ainsi que toute relation référençante Exemple: drop table stock par: Rouagat Wahab

Le langage de manipulation des données (LMD) Insertion de données dans une relation Syntaxe INSERT INTO <nom_de_relation > [(<liste_d’attributs>)] VALUES (<liste_de_valeurs >) Exemples : insérer les données (1, ordinateur, 300, 400) dans la table ‘article’: insert into article values (1, ‘ordinateur’, 300, 400) insérer les données (2, datashow) dans ‘article’: insert into article (n_art, design) values (2, ‘datashow’) par: Rouagat Wahab

Le langage de manipulation des données (LMD) Suppression de données dans une relation Syntaxe DELETE FROM < nom_de_relation > [WHERE <expression_de_selection > ] Exemples : Supprimer tous les enregistrements de la table ‘article’: delete from article Supprimer les enregistrements de la table ‘article’ où le numéro d’article égale 2: delete from article where n_art=2 par: Rouagat Wahab

Le langage de manipulation des données (LMD) Modification des données d’une relation Syntaxe UPDATE <nom_de_relation> SET < champ > [WHERE <expression_de_selection > ] Exemples : Modifier le prix d’achat et de vente dans la table ‘article’ où le nom d’article est datashow: update article set prix_ach=30000 and prix_v=35000 where design=‘datashow’ par: Rouagat Wahab

Le langage de manipulation des données (LMD) Sélection de données Syntaxe SELECT [DISTINCT] { * | <nom_d’attribut> [, ...] } FROM <nom_de_relation> [, ...] [WHERE <condition>] Remarque: * remplace la liste des attributs de la relation Exemples : Quels sont les prix d’achat et de vente de l’article ‘datashow’? select prix_ach, prix_v from article where design=‘datashow’ par: Rouagat Wahab

Exemple de Sélection de données : Quels sont les articles dans l’étage B6 et combien d’unité disponible dans le stock? Solution: select design, quantite from article, stock where sn_art=nart and etage=‘B6’ par: Rouagat Wahab

Lien entre algèbre relationnelle et SQL Opération Expression algébrique Expression SQL équivalente Projection P A ( R1 ) SELECT A FROM R1 Sélection s < condition > ( R1 ) SELECT * FROM R1 WHERE <condition > Produit cartésien  R1 X R2 SELECT * FROM R1, R2 Jointure R1 * R3 SELECT * FROM R1, R3 WHERE R1.A = R3.A Union R1 U R2 SELECT * FROM R1 UNION SELECT * FROM R2 Intersection  R1 n R2 SELECT * FROM R1, R2 WHERE R1.A = R2.C and R1.B = R2.D Différence  R1 / R2 SELECT * FROM R1 WHERE not exists (SELECT * FROM R2 WHERE R2.C = R1.A and R2.D = R1.B ) Division R1 : R2 SELECT A FROM R1 GROUP BY A HAVING COUNT (distinct B ) = (SELECT count (distinct B ) FROM R2)  par: Rouagat Wahab

Exercice Prenons l’exemple de la bibliothèque : Emprunt(Personne, Livre, DateEmprunt, DateRetourPrevue, DateRetourEective) Retard(Personne, Livre, DateEmprunt, PenalitéRetard) Questions: En utilisant le langage SQL: Créer les relations Emprunt et Retard Exprimer les requêtes suivantes : Quelles sont les personnes ayant emprunté le livre "Recueil Examens BD" ? Quelles sont les personnes n'ayant jamais rendu de livre en retard ? Quelles sont les personnes ayant emprunté tous les livres (empruntés au moins une fois) ? Quels sont les livres ayant été empruntés par tout le monde (i.e. tous les emprunteurs) ? par: Rouagat Wahab