Bases de Données Modèle Relationnel

Dimension: px
Commencer à balayer dès la page:

Download "Bases de Données Modèle Relationnel"

Transcription

1 Bases de Données Modèle Relationnel Cécile Capponi Rémi Eyraud Université d Aix-Marseille L3 Info

2 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

3 Bref historique Travaux de Edgar F. Codd (1970) Introduction Modèle relationnel vs. modèle DIAM (entités+relations) Le langage SEQUEL de Codd (Structured English Query Language, IBM) Naissance de Oracle et de SQL (Structured Query Language) Premiers objectifs Idée initiale : utiliser un modèle ensembliste pour décrire et manipuler un ensemble d enregistrements. Indépendance entre programmes d application et représentation interne Base théorique solide pour cohérence et non-redondance des données Notion centrale de table Représentation 2D d un ensemble de données pouvant être décrites, manipulées, et interrogées par des opérateurs ensemblistes classiques.

4 Les douze règles de Codd 1. (Unicité) L information est représentée de façon unique sous forme de valeurs de colonnes de tables. 2. (Garantie d accès) Les données doivent être accessibles de façon logique par les tables, les clés primaires, et les colonnes. 3. Les valeurs vides (non renseignées NULL) doivent être traitées comme des informations manquantes, et non pas comme des chaînes vides, des blancs ou des zéros. 4. Le catalogue (ou schéma) doit être stocké dans la base au même titre que les données. 5. Un langage (unique si possible) doit permettre de définir de façon linéaire les données, les vues sur ces données, les contraintes d intégrité, les autorisations d accès, les transactions, et enfin, la manipulation de données. 6. Les vues doivent refléter les mises à jour de leurs tables de base, et vice versa.

5 Les douze règles de Codd (cont d) 7. Chaque action suivante doit pouvoir être réalisée par une et une seule action (lot d instructions) : retrouver, insérer, mettre à jour, et supprimer, une donnée. 8. (Indépendance physique) Il doit y avoir séparation logique entre les opérations (interactives ou non), et le stockage des données et leurs méthodes d accès. 9. (Indépendance logique) Les opérations (interactives ou non) peuvent modifier le schéma de la base de données sans qu elle n ait à être recréée, et sans que les applications construites au dessus d elle n aient à être réécrites. 10. (Indépendance d intégrité) Les contraintes d intégrité doivent être disponibles, et stockées, dans le catalogue, et non pas dans un quelconque programme d application. 11. (Indépendance de distribution) Le langage de manipulation des données ne doit pas se soucier d où ni comment les données sont stockées et/ou distribuées. 12. (Non-subversion) Si le système fournit une interface de bas niveau, cette interface ne doit pas permettre de contourner le système (par exemple une contrainte relationnelle de sécurité ou d intégrité).

6 Système de Gestion des BD Relationnelle SGBDR Respecte les 12 règles de Codd Oracle, Mysql, SQL server, PostgreSQL, etc. (Pas Access...) Un grand succès, qui dure Simplicité d utilisation Bases théoriques solides Normalisations SQL ISO/CEI 9075 (majeures : 1986, 1992, 1999) (Ancrage historique, coût des migrations) Nécessité de comprendre l algèbre relationnelle Pour mieux comprendre les architectures et manuels des SGBDR Pour s adapter très rapidement à tout SGBDR Pour devenir un bon concepteur / administrateur Pour ne plus confondre Modèle Relationnel et SQL Pour connaître les possibilités et les limites

7 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

8 Structures de données Le vocabulaire... Plusieurs termes peuvent désigner le même concept car : Théorie et implémentation Informatique et mathématiques Franglais Par exemple : tuple ligne enregistrement record table relation ( entité) Théorie relationnelle Fondée sur la théorie des ensembles Trois briques incontournables : 1. Domaine 2. Relation 3. Attribut

9 Vocabulaire : Domaine Définition Un domaine est un ensemble de valeurs caractérisé par un nom. (Autrement dit) Un domaine est un ensemble nommé dans lequel les données prennent leurs valeurs. Un domaine n est pas un type de données (pas forcément d opérations) Intention et extension d un domaine Déf. en intention Le domaine est défini via les propriétés que doivent respecter ses valeurs (entiers positifs, mots commençant par la lettre M, etc.) Déf. en extension Le domaine est défini via l énumération de toutes les valeurs de l ensemble ( Devise = { dollar, euro, yen } ) Syntaxe SQL3 : instruction CREATE DOMAIN

10 Vocabulaire : Relation Structure fondamentale du modèle relationnel Rappel : produit cartésien Le produit cartésien d un ensemble de domaines d 1, d 2,, d n est l ensemble des vecteurs v 1, v 2,, v n tel que i, v i d i. Exemple : Pays = { France, Italie, Japon } Devise = { dollar, euro, yen } Pays Devise = { France, dollar, France, euro, France, yen, Italie, dollar, Italie, euro, Italie, yen, Japon, dollar, Japon, euro, Japon, yen } Intérêt d un sous-ensemble Certains des vecteurs n ont pas de signification... { France, euro, Italie, euro, Japon, yen } Plus pertinent?

11 Vocabulaire : Relation (cont d) Relation : définition Une relation est un sous-ensemble du produit cartésien appliqué à une liste finie de domaines, et ce sous-ensemble est caractérisé par un nom. Exemple DeviseCourante = { France, euro, Italie, euro, Japon, yen } Pays Devise Remarques Une relation est donc un sous-ensemble de vecteurs. La définition d une relation vise à définir l espace de définition des vecteurs pertinents.

12 Vocabulaire : Relation (cont d) Visualisation d une relation : Table Autant de lignes que de vecteurs existants, autant de colonnes que de domaines dans le produit cartésien. Une ligne = un vecteur ième colonne : valeurs de la ième composante des vecteurs Valeurs d une colonne : appartiennent à un domaine. Exemple DeviseCourante Pays Devise France euro Italie euro Japon yen A noter pour la suite En SQL, on dit table à la place de relation...

13 Vocabulaire : Attribut Définition Un attribut est une colonne de relation, caractérisé par un nom unique dans cette relation. Domaine versus Colonne Attention la colonne n est pas le domaine : la colonne est un sous-ensemble du domaine de cette composante du produit cartésien. Ne pas confondre, parce qu un même domaine peut être impliqué plusieurs fois dans la même relation. VilleDepart VilleArrivee Distance Ville Ville Kilometre Domaine éventuellement infini, colonne finie à l instant t.

14 Vocabulaire : Tuple Définition Une ligne de relation (ex. Paris, Marseille, 602 ) est un n-uplet de valeurs, chacune étant accessible via le nom de l attribut qu elle value (ex. VilleDepart). Une ligne (en SQL) est appelée un tuple ou n-uplet (en théorie relationnelle). Tuple et espace de représentation des relations Une relation croisant n domaines correspond à un sous-espace E de l espace à n dimensions engendré par le produit cartésien de ces n domaines. Une relation peut donc être représentée par un diagramme à n dimensions, dans lequel chaque axe correspond à un domaine. Un tuple est un point de ce diagramme (dans le sous-espace E).

15 Graphe d une relation (rappels) Relation binaire R(a 1, a 2 ) Dom( a 1 ) a b c R Dom( a 2 ) Dom( a 2 ) R a b c Dom( a 1 ) R a 1 a 2 a 1 a 2 a 5 b 2 c 1 c 2 c 3 Une relation n-aire est une généralisation des binaires à n dimensions (axes)

16 Exemples de représentation de relations

17 Vocabulaire : Schéma de relation Structure et contenu d une relation A différencier dans la temporalité Définition de la relation (relativement) figée, mais contenu évolutif Exemple : la base cinématographique (ex. IMDB) avait une structure identique les 12 et 16 mars 2012, mais son contenu a évolué entre ces deux dates. Intention d une relation (description via attributs et domaines) versus extension de la relation (son ensemble de tuples, au temps t) Schéma de relation R = description de l intention de R, c est-à-dire description de l espace dans lequel évoluera l extension de R, via attributs, domaines, et contraintes.

18 Vocabulaire : Schéma de relation Structure et contenu d une relation A différencier dans la temporalité Définition de la relation (relativement) figée, mais contenu évolutif Exemple : la base cinématographique (ex. IMDB) avait une structure identique les 12 et 16 mars 2012, mais son contenu a évolué entre ces deux dates. Intention d une relation (description via attributs et domaines) versus extension de la relation (son ensemble de tuples, au temps t) Schéma de relation R = description de l intention de R, c est-à-dire description de l espace dans lequel évoluera l extension de R, via attributs, domaines, et contraintes. Dom( a 1 ) a b c R t 0 Dom( a 2 ) Dom( a 2 ) R a b c Dom( a 1 )

19 Vocabulaire : Schéma de relation Structure et contenu d une relation A différencier dans la temporalité Définition de la relation (relativement) figée, mais contenu évolutif Exemple : la base cinématographique (ex. IMDB) avait une structure identique les 12 et 16 mars 2012, mais son contenu a évolué entre ces deux dates. Intention d une relation (description via attributs et domaines) versus extension de la relation (son ensemble de tuples, au temps t) Schéma de relation R = description de l intention de R, c est-à-dire description de l espace dans lequel évoluera l extension de R, via attributs, domaines, et contraintes. Dom( a 1 ) a b c R t 1 Dom( a 2 ) Dom( a 2 ) R a b c Dom( a 1 )

20 Vocabulaire : Schéma de relation Structure et contenu d une relation A différencier dans la temporalité Définition de la relation (relativement) figée, mais contenu évolutif Exemple : la base cinématographique (ex. IMDB) avait une structure identique les 12 et 16 mars 2012, mais son contenu a évolué entre ces deux dates. Intention d une relation (description via attributs et domaines) versus extension de la relation (son ensemble de tuples, au temps t) Schéma de relation R = description de l intention de R, c est-à-dire description de l espace dans lequel évoluera l extension de R, via attributs, domaines, et contraintes. Dom( a 1 ) a b c R t 2 Dom( a 2 ) Dom( a 2 ) R a b c Dom( a 1 )

21 Vocabulaire : Schéma de relation Structure et contenu d une relation A différencier dans la temporalité Définition de la relation (relativement) figée, mais contenu évolutif Exemple : la base cinématographique (ex. IMDB) avait une structure identique les 12 et 16 mars 2012, mais son contenu a évolué entre ces deux dates. Intention d une relation (description via attributs et domaines) versus extension de la relation (son ensemble de tuples, au temps t) Schéma de relation R = description de l intention de R, c est-à-dire description de l espace dans lequel évoluera l extension de R, via attributs, domaines, et contraintes. Dom( a 1 ) a b c R t 3 Dom( a 2 ) Dom( a 2 ) R a b c Dom( a 1 )

22 Gestion de l intégrité des structures Pour faciliter la gestion de la cohérence Un ensemble de règles d intégrité structurelle : Règles énoncées par des assertions sur relations et attributs (notion principale : clé de relation) Contrôle de données manquantes, contrôle des valeurs d attributs Importance de ces règles : leur respect est assuré par le SGBD! Qu est-ce qu une clé de relation? Une relation étant un ensemble, les doublons sont interdits. A chaque tuple est associée une clé unique, définie avec de la relation Une clé est un ensemble minimal d attributs dont la connaissance des valeurs permet d identifier de façon unique le tuple au sein de la relation Clé primaire : celle choisie parmi toutes les clés possibles. Soulignée. Acteur(nom, prénom, naissance, mort, numéro) Acteur(nom, prénom, naissance, mort, numéro) Ford, Harrison, 1884, 1957, 214, Ford, Harrison, 1942, NULL, 8710

23 Gestion de l intégrité des structures Pour faciliter la gestion de la cohérence Un ensemble de règles d intégrité structurelle : Règles énoncées par des assertions sur relations et attributs (notion principale : clé de relation) Contrôle de données manquantes, contrôle des valeurs d attributs Importance de ces règles : leur respect est assuré par le SGBD! Qu est-ce qu une clé de relation? Une relation étant un ensemble, les doublons sont interdits. A chaque tuple est associée une clé unique, définie avec de la relation Une clé est un ensemble minimal d attributs dont la connaissance des valeurs permet d identifier de façon unique le tuple au sein de la relation Clé primaire : celle choisie parmi toutes les clés possibles. Soulignée. Acteur(nom, prénom, naissance, mort, numéro) Acteur(nom, prénom, naissance, mort, numéro) Ford, Harrison, 1884, 1957, 214, Ford, Harrison, 1942, NULL, 8710

24 Contrainte d unicité Implicite dans le cas d une clé Deux tuples ne peuvent pas donner la même liste de valeurs de clé Si la clé est (numero), deux acteurs ne peuvent pas avoir le même numéro Si la clé est (nom, prénom, naissance), deux acteurs ne peuvent pas avoir les mêmes nom, et prénom, et année de naissance... A expliciter pour d autres (groupes d ) attributs Même signification, pour des (groupes d ) attributs non clé. Acteur(nom, prénom, naissance, mort, numéro), numéro unique Film(numfilm, titre, réal, année), (titre, réal) unique 451,La vie,frund,1968 et 10784,La vie,chikyujin, ,La jetée,marker,1962 et 6510,Chats perchés,marker,2004

25 Contrainte de référence Tout tuple est référencé via sa valeur de clé (unicité) Mise en relation effective des tuples Un groupe d attributs A 1 de la relation R 1 référence le groupe d attributs A 2 de la relation R 2. A 1 et A 2 doivent être compatibles (nombre d attributs, domaines des attributs) Tout tuple t 1 de R 1 pourra faire référence à un tuple t 2 de R 2 : t 1 donne à A 1 les valeurs de A 2 dans t 2. Devise(numéro, nb pièces, nb billets, denomination Pays(nom, devise, capitale, superficie) Devise 7, 8, 8, euro Pays France, 7, Paris,

26 Cas particuliers : clé étrangère Quand la référence est vers une clé primaire Spécification explicite au niveau de la relation source Une clé étrangère est une contrainte qui spécifie qu un groupe d attributs A 1 d une relation R 1 fait référence au groupe d attributs A 2, clé primaire de R 2. On souligne en pointillés (ou on écrit en italiques) les attributs de A 1. Une clé (i.e. une contrainte de clé) = un groupe d attributs. Remarques à ancrer Une relation possède toujours une et une seule clé primaire Une relation peut spécifier plusieurs clés étrangères Un même attribut peut à la fois apparaître dans une clé primaire et dans une clé étrangère! Ville(nom, pays, nb habitants) Aeroport(numéro, [ville, pays], acronyme) Vol(numéro, num from, num to, h dep, jours, duree, avion)

27 Exemple, clés étrangères Ville(nom, pays, nb hab) Aéroport(acronyme, [ville, pays], nom) Vol(numéro, a from, a to, h dep, jours, duree, avion) Ville nom pays nb hab Bruxelles Belgique Londres Royaume Uni Florence USA SC Florence Italie Aéroport acronyme ville pays nom BRU Bruxelles Belgique Zaventem LHR Londres Royaume Uni Heathrow LGW Londres Royaume Uni Gatwick FLO Florence USA SC Florence Regional FLR Florence Italie Vespucci Vol numéro a from a to h dep jours duree avion 4587AZ BRU FLO 14:15 MF 9:05 B HH LGW BRU 06:40 MtWTFsS 00:55 B PO FLR LGW 10:05 MWFS 2:10 A568

28 Auto-référence Une relation peut s auto-référencer Personne(num, nom, prénom, année, père, mère) 1. une clé primaire (attribut numéro), 2. une première clé étrangère père qui référence le tuple de Personne qui est le père de la ligne courante, 3. une autre clé étrangère mère qui référence le tuple de Personne qui est la mère du tuple courant Exercice Retrouver l arbre généalogique Personne num nom prénom année père mère 12 Martin Pierre 1914 NULL NULL 56 Castard Joséphine 1918 NULL NULL 77 Frandier Ernest 1924 NULL NULL 74 Bisteur Annie 1924 NULL NULL 89 Martin Eric Frandier Alain Bisteur Virginie 1956 NULL Frandier Mélanie Frandier Pierre

29 Contraintes référentielles et SGBDR Importance de spécifier les contraintes relationnelles Le SGBDR effectue des contrôles d intégrité sur les contraintes déclarées Insertion d un tuple t dans une relation R : S il existe une clé étrangère A de R vers une autre relation R, le SGBDR vérifie que la valeur A(t) correspond à la clé primaire d un tuple dans R. Suppression d un tuple t référencé par un ensemble T d autres tuples (comportement du SGBD à spécifier) : Le SGBD supprime en cascade tous les tuples de T, ou bien le SGBR donne la valeur NULL aux clés étrangères vers t dans les tuples de T (set null), ou encore le SGBR refuse la suppression de t (restrict). Personne num nom prénom année père mère 12 Martin Pierre 1914 NULL NULL 74 Bisteur Annie 1924 NULL NULL 89 Martin Eric Martin Hélène NULL Modification d un tuple qui en référence un autre : cf. insertion.

30 Notion de valeur manquante Notée NULL Contrainte de valeur d attribut On ne connaît pas toujours les valeurs de tous les attributs lors de l insertion d un tuple (ex. mère d une Personne). Parfois, un attribut n est pas applicable à un tuple particulier (ex. date décès d un Acteur) Valeur manquante parfois interdite Toujours interdite pour un attribut de clé primaire Possibilité de spécifier (au niveau de la relation) qu un attribut doit toujours avoir une valeur Contrainte de Domaine Restreindre un domaine de valeurs pour un attribut, en plus du type de données associé Contrainte en extension : saison IN {hiver, printemps, été, automne} Contrainte en intention (restriction) : durée NOT NULL AND durée > 0 (type CHECK).

31 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

32 Algèbre relationnelle Préambule Tout est RELATION : les opérateurs permettent de manipuler ces relations pour en créer de nouvelles. Une relation est un ensemble de tuples Tout résultat d un opérateur relationnel est une relation, même si cette dernière est réduite à une ligne et une colonne Maîtrise de l algèbre relationnelle INDISPENSABLE pour tout bon informaticien Catégories d opérateurs Une relation est un ensemble de tuples Opérateurs ensemblistes classiques (union, différence, produit cartésien) Opérateurs spécifiques, indispensable à l algèbre relationnelle Représentation graphique de chaque opérateur Utile pour plus de lisibilité Arbres de représentation (cf. écriture arborescente d une expression arithmétique).

33 Opérations ensemblistes : introduction La relation comme un ensemble de tuples Arguments et résultat de ces opérations : des relations Opérations directement adaptées de la théorie des ensembles Ne prennent pas en compte les clés (primaires ou étrangères) N ont pas à traiter les attributs

34 Définition Opérations ensemblistes : Union Soient R 1 et R 2 de même schéma, L union de R 1 et R 2 est la relation R 3 = R 1 R 2, R 3 a le même schéma que R 1 et R 2, Les tuples de R 3 sont ceux de R 1 et de R 2 réunis, Pas de doublons dans R 3 (si un tuple est à la fois dans R 1 et dans R 2, alors il n apparaîtra qu une fois dans R 3 ), L union est une opération commutative : R 1 R 2 = R 2 R 1. Notations R 3 = R 1 R 2 R 3 = UNION(R 1, R 2 ) Représentation arborescente

35 Opérations ensemblistes : Union (cont d)

36 Opérations ensemblistes : Différence Définition Soient R 1 et R 2 de même schéma, La différence entre R 1 et R 2 est la relation R 3 = R 1 R 2, R 3 a le même schéma que R 1 et R 2, Les tuples de R 3 sont ceux de R 1 qui n appartiennent pas à R 2, (Les tuples de R 3 sont les tuples de R 1 sauf ceux qui sont dans R 2 ), La différence n est PAS une opération commutative : R 1 R 2 R 2 R 1. On peut montrer que (R 1 R 2 ) (R 2 R 1 ) = Notations R 3 = R 1 R 2 R 3 = MINUS(R 1, R 2 ) Représentation arborescente

37 Opérations ensemblistes : Différence (cont d) Souvent utilisée dans des questions du style : quels sont les X qui n ont PAS c(x). On liste tous les X, et on enlève de cet ensemble ceux qui vérifient c(x).

38 Définition Opérations ensemblistes : Produit cartésien Soient R 1 et R 2 deux schémas quelconques, Le produit cartésien de R 1 et R 2 est la relation R 3 = R 1 R 2, R 3 a pour schéma la concaténation de celui de R 1 et de celui de R 2, Les tuples de R 3 sont ceux issus de toutes les combinaisons possibles (par concaténation des colonnes) des tuples R 1 avec ceux de R 2, Le produit cartésien est une opération commutative : R 1 R 2 = R 2 R 1 (si pas d ordre explicite sur les colonnes). Notations R 1 (A 1 ), R 2 (A 2 ), R 3 = R 1 R 2 : R 3 (A 1, A 2 ). R 3 = R 1 R 2 R 3 = TIMES(R 1, R 2 ) R 3 = PRODUCT(R 1, R 2 ) Représentation arborescente

39 Opérations ensemblistes : Produit cartésien (cont d)

40 Opérations propres à l algèbre relationnelle : introduction La relation comme un ensemble de tuples Résultat de ces opérations : des relations. Opérations impliquant relations et colonnes (attributs) Ne prennent pas (forcément) en compte les clés (primaires ou étrangères) Utilisation de conditions sur colonnes Projection, restriction, jointure

41 Définition Opérations spécifiques : Projection Soit R 1 une relation de schéma quelconque, R 1 (a 1, a 2,, a n), La projection de R 1 sur les attributs (a i,, a j ), avec 1 i j n, est la relation R 2 = Π (ai,,a j )(R 1 ) R 2 a le schéma R 2 (a i,, a j ) : constitué des attributs sur lesquels R 1 est projetée, Les tuples de R 2 sont les mêmes que ceux de R 1 avec des attributs en moins. Notations R 2 = Π (ai,,a j )(R 1 ) R 2 = (R 1 )[a i,, a j ] R 2 = PROJECT(R 1, a i,, a j ) Représentation arborescente (diminution horizontale)

42 Opérations spécifiques : Projection (cont d)

43 Définition Opérations spécifiques : Restriction Soit R 1 une relation de schéma quelconque, La restriction de R 1 à la condition σ, est la relation R 2 = σ critère (R 1 ), R 2 a le même schéma que R 1, Les tuples de R 2 sont ceux de R 1 qui satisfont le critère de restriction, Le critère peut porter sur un ou plusieurs attributs de R 1, Critère de restriction : attribut comp [ valeur ], avec comp dans {=, <, >,,,, LIKE, IN, NOT NULL,...} Les critères se combinent avec des opérateurs logiques (AND,...), Des fonctions peuvent s appliquer sur les opérandes (To Date(), etc.) Notations R 2 = σ critère(r 1 ) R 2 = (R 1 )[critère] R 2 = RESTRICT(R 1, critère) Représentation arborescente (diminution verticale)

44 Opérations spécifiques : Restriction (cont d)

45 Opérations spécifiques : Jointure Une opération majeure de l algèbre relationnelle Théoriquement, la jointure de deux relations est un produit cartésien entre ces deux relations, suivi de l élimination de certains tuples ne satisfaisant un critère de comparaison entre deux colonnes du schéma résultant Le seul opérateur exploitant les attributs référentiels inter-relations (clé primaire, clé étrangère) Peut être défini via le produit cartésien et la restriction La jointure est si importante qu on en fait une opération centrale. Définition Soient deux relations R 1 (a 1,, a n) et R 2 (b 1,, b m), La jointure de R 1 et R 2 sous condition θ, est la relation R 3 = R 1 θ R 2, Le schéma de R 3 est le même que celui de R 1 R 2, Les tuples de R 3 sont les tuples de R 1 R 2 qui vérifient la condition de jointure θ, La condition de jointure doit impliquer au moins un attribut de chaque relation : a i θb j, avec 0 i n et 0 j m.

46 Opérations spécifiques : Jointure (cont d)

47 Notations Opérations spécifiques : Jointure (cont d) R 3 = R 1 θ R 2 R 2 = JOIN(R 1, R 2, θ) Représentation arborescente Propriétés Combinatoire si R 1 possède n 1 attributs et t 1 tuples ; si R 2 possède n 2 attributs et t 2 tuples ; alors R 1 θ R 2 est constituée de n 1 + n 2 attributs, et d au plus t 1 + t 2 tuples. Alternative JOIN(R 1, R 2, θ) = RESTRICT(TIMES(R 1, R 2 ), θ) Jointure naturelle R 1 R 2 Jointure entre deux relations avec critère d égalité (équi-jointure) entre attributs de mêmes noms, et fusion des colonnes de mêmes noms.

48 Opérations spécifiques : Jointure (cont d) Jointure naturelle : mise en œuvre naturellement sur les duos (clé primaire clé étrangère). Exemple de jointure naturelle Film num film titre annee num real 1139 Un frisson dans la nuit Top gun Le Monstre La vie est belle Jugé coupable Le tigre et la neige Domino Gran Torino Réal num real nom prénom naiss mort 104 Eastwood Clint 1930 NULL 593 Scott Tony Audiard Michel Roberto Benigni 1952 NULL

49 Opérations spécifiques : Jointure (cont d) Jointure naturelle : mise en œuvre naturellement sur les duos (clé primaire clé étrangère). Exemple de jointure naturelle Par de manque de place, les attributs naiss et mort ne sont pas affichés, mais devraient l être. On remarque la disparition de Michel Audiard, car aucun film ne lui correspond dans la base. Film num film titre annee num real nom prenom Réal 1139 Un frisson Eastwood Clint 369 Top gun Scott Tony 230 Le Monstre Benigni Roberto 4517 La vie est belle Benigni Roberto 788 Jugé coupable Eastwood Clint 1422 Le tigre et la neige Benigni Roberto 4100 Domino Scott Tony 3988 Gran Torino Eastwood Clint

50 Opérations spécifiques : Jointure (cont d) Jointure naturelle : mise en œuvre naturellement sur les duos (clé primaire clé étrangère). Exemple de jointure naturelle pas naturelle... Ville nom pays nb hab Bruxelles Belgique Londres Royaume Uni Florence USA SC Florence Italie Aéro acronyme ville pays nom BRU Bruxelles Belgique Zaventem LHR Londres Royaume Uni Heathrow LGW Londres Royaume Uni Gatwick FLO Florence USA SC Florence Regional FLR Florence Italie Vespucci Ville Aéro acronyme ville pays nom nb hab Vide...

51 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

52 Langage algébrique et expressions dérivées Langage algébrique Langage engendré par une grammaire algébrique (hors-contexte). Il peut être reconnu par un automate à pile. Algèbre relationnelle définit une grammaire algébrique : les opérations peuvent être combinées pour former des requêtes. Une requête se représente par un arbre d opérations. Traduction de cet arbre en SQL, donc vers un langage opérationnel. Expressions algébriques Le langage algébrique dérivé des opérateurs de base de l algèbre relationnelle constitue un langage complet ( lg du premier ordre) La notion de relation reste centrale (arguments, résultats). 1. Relations nommées, et stockées dans le SGBD, 2. Relations nommées mais non stockées, 3. Relations ni nommées, ni stockées (relations intermédiaires, qui accueillent des résultats intermédiaires).

53 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 1. Quels sont les films (titre et réalisateur) qui durent plus de deux heures? R1 = RESTRICT(Film, duree >= 120) RES = PROJECT(R1, titre, realisateur) Expression algébrique : une restriction suivie d une projection.

54 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 2. Quels sont les acteurs (nom et prénom) nés en 1952? R1 = RESTRICT(Acteur, YEAR(naiss) = TO DATE( 1952, YYYY )) RES = PROJECT(R1, nom, prenom) Expression algébrique : une restriction suivie d une projection, avec utilisation de deux fonctions SQL. En algèbre relationnelle, on pourrait se contenter de : R1 = RESTRICT(Acteur, naiss=1952)

55 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 3. Quels sont les acteurs (nom et prénom) ayant joué le rôle d Astérix? R1 = JOIN(Acteur, Casting) R2 = RESTRICT(R1, personnage= Astérix ) RES = PROJECT(R2, nom, prénom) Expression algébrique : une restriction suivie d une jointure, et finalement une projection. Généralement, on cherche à privilégier les restrictions avant les jointures, pour éviter un trop gros produit cartésien pour la jointure. R1 = RESTRICT(Casting, personnage= Astérix ) R2 = JOIN(Acteur, R1) RES = PROJECT(R2, nom, prénom)

56 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 3 (cont d). Ecritures condensée et arborescente Quels sont les acteurs (nom et prénom) ayant joué le rôle d Astérix? RES=PROJECT(RESTRICT(JOIN(Acteur,Casting),personnage= Astérix ),nom,prénom) RES=PROJECT(JOIN(Acteur,RESTRICT(Casting,personnage= Astérix )),nom,prénom)

57 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 4. Quels sont les acteurs (nom, prénom, et mois de naissance) nés la même année? R1 = JOIN(Acteur A1, Acteur A2, YEAR(A1.naiss) = YEAR(A2.naiss) R2 = RESTRICT( R1, A1.numacteur <> A2.numacteur ) RES = PROJECT(R2, A1.nom, A1.prenom, MONTH(A1.naiss), A2.nom, A2.prenom, MONTH(A2.naiss))

58 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 5. Quels sont les acteurs (nom, prénom) qui ont joué dans un film réalisé par Besson, et qui n ont jamais joué dans un film réalisé par Benigni? R1 = JOIN(Acteur, Casting) R2 = RESTRICT(Film, réalisateur = Besson ) R3 = RESTRICT(Film, réalisateur = Benigni ) R4 = JOIN(R1, R2) -- acteurs ayant joué avec Besson R5 = JOIN(R1, R3) -- acteurs ayant joué avec Benigni R6 = PROJECT(R4, numacteur, nom, prénom) -- Besson R7 = PROJECT(R5, numacteur, nom, prénom) -- Benigni R8 = MINUS( R6, R7 ) -- ceux de Besson sans ceux de Benigni RES = PROJECT(R8, nom, prenom)

59 Exemples d expressions algébriques Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Question 5. En oubliant numacteur avant la différence

60 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

61 Opérations dérivées des opérations de base Il en existe des dizaines... Connaître les plus classiques : savoir utiliser, savoir définir Etre capable d en définir des originales Opérations dérivées souvent utiles A l aide de UNION, MINUS, Produit, Projection, Restriction, Jointure Division algébrique Intersection Jointures alternatives

62 La division par l exemple Opérateur qui permet de sélectionner les tuples d une relation (dividende, Certification) qui satisfont un critère de couverture énoncé via le contenu d une autre relation (diviseur, Avion). Le résultat est une troisième relation, appelée le quotient.

63 La division : plus formellement Définition Définie comme une opération de base par Codd (et dans la norme SQL92), mais absente de la plupart des SGBDR. Soit A et B, deux ensembles disjoints d attributs (A B = ). Soit R 1 (AB), et R 2 (B), deux relations : on remarque que tous les attributs de R 2 sont aussi des attributs de R 1. Soit le quotient R 3 = R 1 R 2 le quotient de la division de R 1 (dividende) par R 2 (diviseur). Le schéma de R 3 est constitué des attributs de A. Chaque tuple t 3 (A) de R 3 est tel que : t 2 (B) de R 2, t 1 (AB) = t 3 (A)t 2 (B), Autrement écrit, t 3 (A) = t 1(AB) t 2 (B) Notations R 3 = R 1 R 2 R 3 = DIVISION(R 1, R 2 ) Définition usuelle R 1 (AB) R 2 (B) = Π A (R 1 ) Π A (Π A (R 1 ) R 2 R 1 )

64 Opérations ensemblistes : Intersection Définition Soient R 1 et R 2 de même schéma, L intersection de R 1 et R 2 est la relation R 3 = R 1 R 2, R 3 a le même schéma que R 1 et R 2, Les tuples de R 3 sont ceux qui sont à la fois des tuples de R 1 et des tuples de R 2, Pas de doublons dans R 3, L intersection est une opération commutative : R 1 R 2 = R 2 R 1. Notations R 3 = R 1 R 2 R 3 = INTERSECT(R 1, R 2 ) R 3 = AND(R 1, R 2 )

65 Exemple d intersection

66 Autres jointures semi-jointure Définition Semi-jointure = jointure suivie d une projection Soient R 1 et R 2 de schémas quelconques Le résultat de la semi-jointure de R 1 et R 2 est une relation R 3 qui a le même schéma que R 1. La semi-jointure permet de ne garder que les attributs d une des deux relations. Par défaut : on ne garde que les attributs de la relation de gauche. Notations et propriété R 3 = SEMI-JOIN(R 1, R 2, θ) R 3 = R 1 R 2 θ Si R 1 (A), alors R 3 = R 1 R 2 = PROJECT(R 1 R 2, A). θ θ

67 Autres jointures semi-jointure (cont d)

68 Autres jointures jointure externe La jointure classique est appelée jointure interne (INNER JOIN) Comment faire pour que Michel Audiard reste dans le résultat d une jointure, même s il n a pas de film réalisé dans la base de données? Définition Ajouter, au résultat d une jointure interne, les tuples qui n ont pas trouvé de correspondant dans la jointure interne. Soit R 1 et R 2 de schémas quelconques, Le résultat de la jointure externe de R 1 et R 2 est une relation R 3 qui a le même schéma que R 1 θ R 2. Tous les tuples de R 1 sont dans R 3, et les tuples de R 1 (resp. R 2 ) qui θ n ont pas de correspondant dans R 2 (resp. R 1 ) via θ, sont ajoutés à l extension de R 3, avec la valeur NULL pour les attributs de R 2 (resp. R 1 ). Jointure externe gauche, droite, ou complète. Notations R 3 = EXT-JOIN(R 1, R 2 ) (jointure externe complète) R 3 = R 1 θ R 2 (gauche), R 3 = R 1 θ R 2 (droite), R 3 = R 1 θ R 2 (complète)

69 Exemple de jointure externe (complète ou droite) Film num film titre annee num real 1139 Un frisson dans la nuit Top gun Le Monstre La vie est belle Jugé coupable Le tigre et la neige Domino Gran Torino Réal num real nom prénom naiss mort 104 Eastwood Clint 1930 NULL 593 Scott Tony Audiard Michel Roberto Benigni 1952 NULL

70 Exemple de jointure externe (complète ou droite) Film num film titre annee num real nom prenom Réal 1139 Un frisson Eastwood Clint 369 Top gun Scott Tony 230 Le Monstre Benigni Roberto 4517 La vie est belle Benigni Roberto 788 Jugé coupable Eastwood Clint 1422 Le tigre et la neige Benigni Roberto 4100 Domino Scott Tony 3988 Gran Torino Eastwood Clint NULL NULL NULL 779 Audiard Michel Remarque R 1 R 2 = R 2 R 1

71 Autre exemple de jointure externe

72 Petit aparté : utilisation de fonctions sur attributs Attributs de types de base Utilisation de fonctions : pratique à tous les niveaux d une expression algébrique (projection, comparaison dans les conditions) Extension de l algèbre relationnelle par (Zaniolo, 1985) Expressions valuables d attributs Comparer des valeurs, créer de nouvelles valeurs Types concernés : Types arithmétiques Chaînes, caractères, textes Dates... Tout type de données fourni par le SGBD : opérations de ce type! Type couleur, atténuation d une couleur... Exemples Si une durée est représentée en minutes : la convertir en heures : duree / 60 Compter les 20 minutes de pubs en début de séance : duree + 20 Visualiser la durée réelle d une séance : PROJECT(Film, titre, duree+20)

73 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

74 Agréger les tuples pour calculer des valeurs Agrégat = notion essentielle, pas toujours facile d accès Travaillons sur une colonne de relation Exemple : comment calculer la durée moyenne des films de la base de données : travail sur la colonne duree de la relation Film. Fonctions calculables sur une colonne entière a d une relation R : SUM(a) : somme des valeurs de a de tous les tuples de R AVG(a) : moyenne des valeurs de a de tous les tuples de R MAX(a) : valeur maximum parmi toutes les valeurs de a des tuples de R MIN(a) : valeur minimum parmi toutes les valeurs de a des tuples de R COUNT(a) : nombre de valeurs non NULL pour à a dans les tuples de R R 1 a b c NULL NULL R 2 = AGREGAT(R 1 ; [a, b]; MIN(c)) R 2 a b c NULL

75 Les fonctions agrégats : plus formellement Définition Soit R 1 une relation de schéma R 1 (a 1, a 2,, a n), avec 1 j k n, Soit un groupe d attributs de R 1 : A = [a j, a k ], avec 1 j k n. A est éventuellement vide, Soit une fonction d agrégat F compatible avec l attribut a f, 1 f n, f A : F renvoit un nombre (réel ou entier), R 2 = AGREGAT(R 1 ; A; F (a f )) est une relation de schéma R 2 (A, a f ) Chaque tuple de R 2 regroupe tous les tuples T de R 1 qui donnent les mêmes valeurs au groupe d attributs A, et stocke la valeur de F calculée sur l ensemble des valeurs de a f dans T. (Soient t i = A i, a f,i, t j = A j, a f,j tuples de T, on a A i = A j et a f,i, a f,j NULL) F est une fonction d agrégat, c est-à-dire qui s applique à un ensemble de valeurs (valeur min ou max ou moyenne de cet ensemble, nombre d éléments dans cet ensemble, etc.). La fonction d agrégat F peut s appliquer sur une transformation de a f

76 Les fonctions agrégats : exemple

77 Les fonctions agrégats : exemple

78 Les fonctions agrégats : exemple

79 Les fonctions agrégats : exemple

80 Les fonctions agrégats : exemples Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Durée moyenne des films du réalisateur Besson? R1 = RESTRICT( Film, realisateur= Besson ) RES = AGREGAT( R1 ; - ; AVG(duree) ) RES AVG(duree) Pour chaque nom d acteur : nombre d acteurs portant ce nom RES = AGREGAT( Acteur ; nom ; COUNT(numacteur) ) RES nom COUNT(numacteur) Ford 12 Brando 5 Cassel 3 Douglas Poelvoorde 1

81 Les fonctions agrégats : exemples (cont d) Film(numfilm, titre, realisateur, annee, duree) Acteur(numacteur, nom, prenom, naiss, mort) Casting(numfilm, numacteur, personnage) Nombre de films joués, pour chaque acteur R1 = JOIN (Acteur, Casting) R2 = AGREGAT( R1 ; [numacteur, nom, prenom] ; nf = COUNT( numfilm ) ) RES = PROJECT ( R2, nom, prenom, nf ) RES nom prenom nf Ford Harrisson 59 Ford Harrisson 16 Cassel Vincent 22 Douglas Michael Poelvoorde Benoit 19

82 Plan Introduction Structures de données du modèle relationnel Opérateurs de base de l algèbre relationnelle Langage algébrique du modèle relationnel Autres opérations algébriques Les agrégats Des expressions algébriques aux requêtes SQL

83 Complétude relationnelle de SQL Clauses de base du LMD SELECT : projection FROM : tables (=relations) sur lesquelles porte la requête WHERE : conditions (restriction, jointure) Projection Toute requête SQL commence par un SELECT R = PROJECT(Film, titre, real) R = PROJECT(Film, titre, duree/60) Restriction SELECT titre, duree FROM Film WHERE duree > 120 ; SELECT titre, real FROM Film ; SELECT titre, duree/60 FROM Film ; SELECT titre, duree FROM Film WHERE real == Besson ;

84 La jointure en SQL R1 = RESTRICT (Casting, personnage= Asterix ) R2 = JOIN ( Acteur, R1, Acteur.numacteur = R1.numacteur ) RES = PROJECT (R2, nom, prenom ) Jointure par produit cartésien et clause de restriction SELECT nom, prenom FROM Acteur, Casting WHERE personnage = Asterix AND Acteur.numacteur = Casting.numacteur ; Jointure par la clause JOIN (1) Expliciter la condition de jointure (clause ON) SELECT nom, prenom FROM Acteur JOIN Casting ON (Acteur.numacteur=Casting.numacteur) WHERE personnage = Asterix ;

85 La jointure en SQL (cont d) R1 = RESTRICT (Casting, personnage= Asterix ) R2 = JOIN ( Acteur, R1, Acteur.numacteur = R1.numacteur ) RES = PROJECT (R2, nom, prenom ) Jointure par la clause JOIN (2) Egalité entre attributs (équijointure, clause USING) SELECT nom, prenom FROM Acteur JOIN Casting USING ( numacteur ) WHERE personnage = Asterix ; Jointure par la clause NATURAL JOIN Jointure naturelle SELECT nom, prenom FROM Acteur NATURAL JOIN Casting WHERE personnage = Asterix ;

86 La jointure en SQL (cont d) Jointures multiples Obtenir les acteurs (nom et prénom de chacun) ayant joué dans le film intitulé La vie est belle et, pour chacun, le personnage joué. Expression relationnelle R1 = RESTRICT( Film, titre= La vie est belle ) R2 = JOIN ( Film, Casting ) R3 = JOIN ( R2, Acteur ) RES = PROJECT ( R3, nom, prenom, personnage ) Avec la clause JOIN SELECT nom, prenom, personnage FROM Acteur JOIN Casting USING (numacteur) JOIN Film USING (numfilm) WHERE personnage = Asterix Portée des noms de tables... Possible aussi sans JOIN (conditions de jointure dans la clause WHERE)

87 Les fonctions agrégats sous SQL Quelles fonctions? MIN MAX AVG COUNT SUM Spécification des attributs pour le regroupement des tuples Clause GROUP BY Conditions supplémentaires sur le groupe de tuples : clause HAVING Limitation de SQL : soit la table T (a 1,, a n). Si la fonction d agrégat porte sur l attribut a 1, alors le regroupement dans le GROUP BY doit porter sur tous les attributs de T sauf a 1 apparaissant dans le SELECT (voire d autres).

88 Les fonctions agrégats sous SQL (cont d) Durée moyenne des films de Besson Expression algébrique RES = AGREGAT ( RESTRICT(Film, real= Besson ) ; - ; AVG(duree) ) Expression SQL SELECT AVG(duree) AS dmbesson FROM Film WHERE real = Besson ; Nombre de films joués pour chaque acteur Expression algébrique R1 = JOIN (Acteur, Casting) R2 = AGREGAT( R1 ; [numacteur, nom, prenom] ; nf = COUNT( numfilm ) ) RES = PROJECT ( R2, nom, prenom, nf ) Expression SQL SELECT nom, prenom, COUNT(numfilm) AS nbf FROM Acteur JOIN Casting ON ( numacteur ) GROUP BY numacteur, nom, prenom ;

89 Les fonctions agrégats sous SQL (cont d) Nombre de films joués par chaque acteur prolixe Un acteur prolixe est un acteur qui a tourné au moins 15 films SELECT nom, prenom, COUNT(numfilm) AS nbf FROM Acteur JOIN Casting ON ( numacteur ) GROUP BY numacteur, nom, prenom HAVING COUNT (numfilm) >= 15 ; Pour chaque personnage terminant en ie, première année de réalisation du film avec ce personnage Expression algébrique R1 = RESTRICT (Casting, personnage = *ie ) R2 = JOIN(R1, Film ) RES = AGREGAT (R2 ; personnage ; MIN(annee)) Expression SQL SELECT personnage, MIN(annee) FROM Film JOIN Casting ON ( numfilm ) WHERE personnage LIKE %ie GROUP BY personnage ;

90 Fonctions de types de données en SQL Possibilité évidente en SQL... Fonctions dépendantes du type de données Selon le SGBD, fonctions différentes (sauf tout ce qui est arithmétique) Dcf. documentation du SGBD! Exemples Sur les dates : SYSDATE (CURRENT DATE), TO DATE, YEAR, ADD MONTHS, etc. Sur les chaînes : CONCAT, LTRIM, SUBSTR, UPPER, LENGTH, etc. Sur les nombres : COS, ROUND, SIGN, etc. Sur des ensembles : GREATEST, LEAST Fonctions de conversions : ASCIISTR, TO CHAR, TO NUMBER, etc. SELECT nom, prenom, TO_CHAR(naiss,, MONTH ) AS mois FROM Acteur WHERE DATE_TRUNC ( year, naiss ) = TO_DATE( 1952, YYYY )

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Bases de données élémentaires Maude Manouvrier

Bases de données élémentaires Maude Manouvrier Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

1 Modélisation d une base de données pour une société de bourse

1 Modélisation d une base de données pour une société de bourse IN306 : Corrigé SID Christophe Garion 18 octobre 2010 Ce document est un corrigé succinct de l examen du module IN306. 1 Modélisation d une base de données pour une société de bourse Une

Plus en détail

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du

Plus en détail

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

Plus en détail

Systèmes de Gestion de Bases de Données

Systèmes de Gestion de Bases de Données Systèmes de Gestion de Bases de Données Luiz Angelo STEFFENEL DUT Informatique 2ème année IUT Nancy Charlemagne Vues Vue : une table virtuelle de la base de données dont le contenu est défini par une requête

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Modélisation de bases de données : Le modèle relationnel

Modélisation de bases de données : Le modèle relationnel Modélisation de bases de données : Le modèle relationnel Rappel chapitre 1 C est quoi un modèle? Type de modèle : Modèle hiérarchique Modèle réseau Modèle objet Modèle relationnel Cours BD Dr REZEG K 1

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

COURS de BASES de DONNEES

COURS de BASES de DONNEES COURS de BASES de DONNEES Céline Robardet INSA-Lyon Point de départ Une base de données est une collection de données ayant une origine commune Un Système de Gestion de Base de Données (SGBD) est un logiciel

Plus en détail

Systèmes d information et bases de données (niveau 1)

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel 31071 Toulouse Cedex 7

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel 31071 Toulouse Cedex 7 Bases de données Yamine AIT AMEUR INPT-ENSEEIHT DIMA 2 Rue Charles Camichel 31071 Toulouse Cedex 7 Première partie Introduction 1 Généralités et notions de base Première partie Introduction 1 Généralités

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

Bases de données - Modèle relationnel

Bases de données - Modèle relationnel Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,

Plus en détail

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager TP base de données SQLite 1 Différents choix possibles et choix de SQLite : La plupart des logiciels de gestion de base de données fonctionnent à l aide d un serveur. Ils demandent donc une installation

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

Plus en détail

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

Groupe 11 TABLE DES MATIERES

Groupe 11 TABLE DES MATIERES Groupe 11 TABLE DES MATIERES I. CHAMP D APPLICATION a) Domaine b) Objectif c) Constituants II. II. II. II. II. II. II. IX. IX. REMARQUES CONCERNANT LES IDENTIFICATEURS DOMAINE «SQL» DES CONSTITUANTS PREDICAT

Plus en détail

Cours 4 : Agrégats et GROUP BY

Cours 4 : Agrégats et GROUP BY Cours 4 : Agrégats et GROUP BY Agrégat Fonction qui effectue un calcul sur l ensemble des valeurs d un attribut pour un groupe de lignes Utilisation dans une clause SELECT ou dans une clause HAVING 3 types

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

Bases de données Cours 4 : Le langage SQL pour ORACLE

Bases de données Cours 4 : Le langage SQL pour ORACLE Cours 4 : Le langage SQL pour ORACLE POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 Introduction 2 Identificateurs

Plus en détail

Bases de Données Relationnelles. Le Modèle Relationnel

Bases de Données Relationnelles. Le Modèle Relationnel Bases de Données Relationnelles Le Modèle Relationnel Le modèle relationnel modèle de niveau logique modèle simple : deux concepts relation (table) attribut (colonne) défini par Ted Codd en 1970 ; prix

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

TD n 10 : Ma première Base de Données

TD n 10 : Ma première Base de Données TD n 10 : Ma première Base de Données 4 heures Rédigé par Pascal Delahaye 11 mars 2015 Le but de ce TD est de découvrirles principales fonctions d OpenOffice Base, le systèmede gestion de bases de données

Plus en détail

Master I Génie Logiciel

Master I Génie Logiciel 1. Introduction Master I Génie Logiciel Dr. Imed Bouchrika Dept de Mathematique & Informatique Université de Souk-Ahras imed@imed.ws Amira Hakim, Mariem Sari, Sara Khelifi & Imed Bouchrika University of

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR

Plus en détail

Mejdi BLAGHGI & Anis ASSÈS

Mejdi BLAGHGI & Anis ASSÈS Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba Support de Cours

Plus en détail

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima Bases de données cours 4 Construction de requêtes en SQL Catalin Dima Requêtes SQL et langage naturel Énoncés en langage naturel. Traduction en SQL? Correspondance entre syntagmes/phrases et opérations

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Bases de données réparties: Fragmentation et allocation

Bases de données réparties: Fragmentation et allocation Pourquoi une base de données distribuée? Bibliographie Patrick Valduriez, S. Ceri, Guiseppe Delagatti Bases de données réparties: Fragmentation et allocation 1 - Introduction inventés à la fin des années

Plus en détail

Objectifs du TP : Initiation à Access

Objectifs du TP : Initiation à Access Objectifs du TP : Initiation à Access I. Introduction Microsoft Access fait partie de l ensemble Microsoft Office. C est un SGBDR (système de gestion de bases de données relationnelles) présentant une

Plus en détail

Bases de données relationnelles & SQL

Bases de données relationnelles & SQL Bases de données relationnelles & SQL Objectifs Appréhender les concepts du modèle relationnel. Etre capable de concevoir un schéma relationnel. Etre capable de créer une base de données relationnelle

Plus en détail

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données ESIL Université de la méditerranée Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/bdmat.html Plan du cours 1 1 Qu est ce qu

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

INTRODUCTION : Données structurées et accès simplifié

INTRODUCTION : Données structurées et accès simplifié INTRODUCTION : Données structurées et accès simplifié À l'origine de l'informatique, le stockage d'information se faisait sur cartes perforées. Ces supports pauvres ne permettaient pas de définir la structuration

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

Base de Données et Langage SQL

Base de Données et Langage SQL Base de Données et Langage SQL (IUT, département informatique, 1 re année) Laurent AUDIBERT Institut Universitaire de Technologie de Villetaneuse Département Informatique Avenue Jean-Baptiste Clément 93430

Plus en détail

Évaluation et optimisation de requêtes

Évaluation et optimisation de requêtes Évaluation et optimisation de requêtes Serge Abiteboul à partir de tranparents de Philippe Rigaux, Dauphine INRIA Saclay April 3, 2008 Serge (INRIA Saclay) Évaluation et optimisation de requêtes April

Plus en détail

Séance 1 Introduction aux bases de données

Séance 1 Introduction aux bases de données Introduction aux bases de données Séance 1 Introduction aux bases de données Sébastien Combéfis mardi 24 février 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons

Plus en détail

Introduction aux bases de données: application en biologie

Introduction aux bases de données: application en biologie Introduction aux bases de données: application en biologie D. Puthier 1 1 ERM206/Technologies Avancées pour le Génome et la Clinique, http://tagc.univ-mrs.fr/staff/puthier, puthier@tagc.univ-mrs.fr ESIL,

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

CESI Bases de données

CESI Bases de données CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre

Plus en détail

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL Cette création est mise à disposition selon le Contrat Paternité-Pas d'utilisation Commerciale-Partage des Conditions Initiales à l'identique 2.0

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant

Plus en détail

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Bases de données. PTSI Lycée Eiffel. 28 février 2014 Bases de données PTSI Lycée Eiffel 28 février 2014 Introduction Pour ce troisième chapître, nous allons mettre de côté notre apprentissage de Pyhton pour nous intéresser à un sujet fondamental dans l informatique

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail