Plan du cours. Bases de données. Plan du cours. Historique des bases de données. Limites des systèmes à fichiers. Limites des systèmes à fichiers

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

Download "Plan du cours. Bases de données. Plan du cours. Historique des bases de données. Limites des systèmes à fichiers. Limites des systèmes à fichiers"

Transcription

1 Plan du cours Faculté de Sciences Économiques et de Gestion Bases de données DESS SISE Année Jérôme Darmont I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Bases de données 1 Plan du cours I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Historique des bases de données Jusqu aux années 60 : organisation classique en fichiers Fin des années 60 : apparition des premiers SGBD (Systèmes de Gestion de Bases de Données), les systèmes réseaux et hiérarchiques À partir de 1970 : deuxième génération de SGBD, les systèmes relationnels Début des années 80 : troisième génération de SGBD, les systèmes orientés objet Bases de données 2 Bases de données 3 Limites des systèmes à fichiers Limites des systèmes à fichiers Utilisateur Utilisateur Utilisateur Saisie Traitement Fichier Saisie Traitement Organisation en fichiers Fichier État de sortie Particularisation de la saisie et des traitements en fonction des fichiers un ou plusieurs programmes par fichier Contrôle en différé des données augmentation des délais et du risque d erreur Particularisation des fichiers en fonction des traitements grande redondance des données Bases de données 4 Bases de données 5

2 Organisation base de données Organisation base de données Utilisateur Utilisateur Saisie + Contrôles Base de Données Traitements États de sortie Uniformisation de la saisie et standardisation des traitements (ex. tous les résultats de consultation sous forme de listes et de tableaux) Contrôle immédiat de la validité des données Utilisateur Organisation base de données Partage de données entre plusieurs traitements limitation de la redondance des données Bases de données 6 Bases de données 7 Définitions Base de données (BD) : Collection de données cohérentes et structurées Système de Gestion de Bases de Données (SGBD) : Logiciel(s) assurant structuration, stockage, maintenance, mise à jour et consultation des données d une BD Propriétés de l'organisation BD Usage multiple des données Accès facile, rapide, protégé, souple, puissant Coût réduit de stockage, de mise à jour et de saisie Disponibilité, exactitude, cohérence et protection des données ; non redondance Evolution aisée et protection de l investissement de programmation Indépendance des données et des programmes Conception a priori Bases de données 8 Bases de données 9 Objectifs des SGBD Indépendance physique : un remaniement de l organisation physique des données n entraîne pas de modification dans les programmes d application (traitements) Objectifs des SGBD Manipulation facile des données : un utilisateur non-informaticien doit pouvoir manipuler simplement les données (interrogation et mise à jour) Indépendance logique : un remaniement de l organisation logique des fichiers (ex. nouvelle rubrique) n entraîne pas de modification dans les programmes d application non concernés Bases de données 10 Administration facile des données : un SGBD doit fournir des outils pour décrire les données, permettre le suivi de ces structures et autoriser leur évolution (tâche de l administrateur BD) Bases de données 11

3 Objectifs des SGBD Efficacité des accès aux données : garantie d un bon débit (nombre de transactions exécutées par seconde) et d un bon temps de réponse (temps d attente moyen pour une transaction) Redondance contrôlée des données : diminution du volume de stockage, pas de mise à jour multiple ni d incohérence Bases de données 12 Objectifs des SGBD Cohérence des données : ex. L âge d une personne doit être un nombre entier positif. Le SGBD doit veiller à ce que les applications respectent cette règle (contrainte d intégrité). Partage des données : utilisation simultanée des données par différentes applications Sécurité des données : les données doivent être protégées contre les accès non-autorisés ou en cas de panne Bases de données 13 Fonctions des SGBD Description des données : Langage de Définition de Données (LDD) Recherche des données Mise à jour des données Transformation des données} Langage de Manipulation de Données (LMD) Contrôle de l intégrité des données (respect des contraintes d intégrité) Gestion de transactions (atomicité des transactions) et sécurité (mots de passe, etc.) Bases de données 14 Processus de conception d'une BD Monde Monde réel réel Analyse Spécifications Spécifications de de la la BD BD Conception Schéma Schéma conceptuel conceptuel Transformation en modèle logique Schéma Schéma logique logique Conception physique Indépendant d'un SGBD Spécifique à un SGBD Schéma Schéma interne interne Bases de données 15 Plan du cours I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Bases de données 16 Généralités UML = Unified Modeling Language Ensemble de formalismes graphiques pour la modélisation orientée objet (analyse) Auteurs : J. Rumbaugh, G. Booch, I. Jacobson Standard de l OMG (Object Management Group) depuis 1997, standard de fait soutenu par Rational Software, Microsoft, Hewlett- Packard, Oracle, IBM Mise en œuvre d une BD : transformation d un diagramme de classes UML en schéma logique Bases de données 17

4 Classes et attributs Classe : Groupe d entités du monde réel ayant les mêmes caractéristiques et le même comportement (ex. ) Attribut : Propriété de la classe (ex. Nom et Prénom du client) Nom Prénom Type d attribut : Entier Classes et attributs Réel Chaîne de caractères Date Valeur par défaut (=) Nom : Chaîne Prénom : Chaîne Nom : Chaîne = "Nouveau client" Prénom : Chaîne Bases de données 18 Bases de données 19 Classes et attributs Nom : Chaîne Prénom : Chaîne Date de naissance : Date Rue : Chaîne Code postal : Entier Ville : Chaîne Exemple de classe avec ses attributs Classe : ex. Instances (objets) de la classe : les clients Albert Dupont James West Marie Martin Gaston Durand... Instances Bases de données 20 Bases de données 21 Liste des clients Identifiants Nom Prénom Date de Naissance Etc. Dupont Albert 01/06/70... West James 03/09/63... Martin Marie 05/06/78... Durand Gaston 15/11/80... Titgoutte Justine 28/02/75... Dupont Noémie 18/09/57... Dupont Albert 23/05/33... Problème : Comment distinguer les Dupont? Identifiants Solution : Ajouter un attribut Numéro de client! Numéro Nom Prénom Date de Naissance 1 Dupont Albert 01/06/70 2 West James 03/09/63 3 Martin Marie 05/06/78 4 Durand Gaston 05/11/80 5 Titgoutte Justine 28/02/75 6 Dupont Noémie 18/09/57 7 Dupont Albert 23/05/33 Bases de données 22 Bases de données 23

5 Identifiants Le numéro de client est un identifiant. Un identifiant caractérise de façon unique les instances d une classe. NB : Dans le paradigme objet, un objet est déjà identifié par son OID (Object IDentifier). La finalité de notre utilisation d UML n étant pas OO, nous ajouterons un attribut identifiant. Convention graphique : NB : Ne pas confondre avec les attributs de classe UML Numéro : Entier dont c est la notation usuelle Bases de données 24 Associations et multiplicité Association : liaison perçue entre des classes ex. Les clients commandent des produits. COMMANDE PRODUIT Les classes et PRODUIT peuvent être qualifiées de participantes à l association COMMANDE. Degré ou arité d une association = nombre de classes participantes. En général : associations binaires (de degré 2). Bases de données 25 Associations et multiplicité Associations récursives et rôles Association récursive : une même instance de classe peut jouer plusieurs rôles dans la même association (ex. employés et supérieurs hiérarchiques). Rôle : fonction de chaque classe participante (+). EMPLOYE +est supérieur de +est subalterne de HIERARCHIE Bases de données 26 Associations et multiplicité Multiplicité (ou cardinalité) Définition : Indicateur qui montre combien d instances de la classe considérée peuvent être liées à une instance de l autre classe participant à l association 1 Un et un seul * ou * 1..* M..N Zéro ou un Zéro ou plus Un ou plus De M à N (M, N entiers) Bases de données 27 Associations et multiplicité Association «1-1» ex. Un client donné ne commande qu un seul produit. Un produit donné n est commandé que par un seul client. COMMANDE 1 1 PRODUIT Lire : Un client commande multiplicité (1) produit(s). Bases de données 28 Associations et multiplicité Association «1-N» ex. Un client donné commande plusieurs produits. Un produit donné n est commandé que par un seul client. COMMANDE 1 1..* PRODUIT La multiplicité «un à plusieurs» (1..*) peut aussi être «zéro à plusieurs» (0..* ou *). Bases de données 29

6 Associations et multiplicité Association «0 ou 1-N» ex. Un client donné commande plusieurs produits. Un produit donné est commandé au maximum par un client, mais peut ne pas être commandé. COMMANDE * PRODUIT La multiplicité «un à plusieurs» (1..*) peut aussi être «zéro à plusieurs» (0..* ou *). Bases de données 30 Associations et multiplicité Association «M-N» ex. Un client donné commande plusieurs produits. Un produit donné est commandé par plusieurs clients. COMMANDE 1..* 1..* PRODUIT Les multiplicités «un à plusieurs» (1..*) peuvent aussi être «zéro à plusieurs» (0..* ou *). Bases de données 31 Associations et multiplicité Classe-association : Dans une association M-N, il est possible de caractériser l association par des attributs (qui doivent appartenir à une classe). ex. Une commande est passée à une Date donnée et concerne une Quantité de produit fixée. 1..* 1..* COMMANDE Date Quantité PRODUIT Bases de données 32 Spécifications Exemple VPC complet Les clients sont caractérisés par un numéro de client, leur nom, prénom, date de naissance, rue, code postal et ville. Ils commandent des produits à une date donnée et dans une quantité donnée. Les produits sont caractérisés par un numéro de produit, leur désignation et leur prix unitaire. Bases de données 33 Exemple VPC complet Spécifications (suite) Chaque produit est fourni par un fournisseur unique (mais un fournisseur peut fournir plusieurs produits). Les fournisseurs sont caractérisés par un numéro de fournisseur et leur raison sociale. Exemple VPC complet Marche à suivre pour produire un diagramme de classes UML : 1) Identifier les classes. 2) Identifier les associations entre les classes. 3) Identifier les attributs de chaque classe et de chaque classe d association. 4) Evaluer la multiplicité des associations. Bases de données 34 Bases de données 35

7 NumCli Nom Prénom DateNaiss Rue CP Ville Exemple VPC complet * * COMMANDE Date Quantité PRODUIT NumProd Dési PrixUni FOURNISSEUR NumFour RaisonSoc Diagramme de classes UML de l exemple VPC Bases de données 36 * FOURNIT 1 Relation de généralisation Définition : Relation de classification entre un élément général et un élément spécifique Sous-classe : classe dont les instances constituent un sous-ensemble d une autre classe appelée superclasse Association EST-UN (IS-A) : association liant sous-classe et superclasse (généralisation ou héritage) SOUS-CLASSE SUPERCLASSE Bases de données 37 Relation de généralisation Relation de généralisation Une sous-classe possède tous les attributs de sa superclasse. On dit qu elle hérite de ces attributs. PRODUIT NumProd Dési PrixUni Superclasse Une sous-classe participe aussi à toutes les associations auxquelles participe sa superclasse. Association EST-UN Une sous-classe peut posséder en plus des attributs hérités des attributs spécifiques et intervenir dans des associations spécifiques. VÊTEMENT Taille Couleur JOUET ELECTRO-MENAGER Garantie Sous-classes de PRODUIT Une sous-classe peut elle-même être superclasse d une autre classe hiérarchie d héritage. Une sous-classe hérite de tous ses ascendants Bases de données 38 Sous-classes POUPEE VOITURE de JOUET Exemple de hiérarchie d héritage Bases de données 39 Relation de généralisation Spécialisation-généralisation Soit G une classe. Soit un ensemble Z = {S 1, S 2,, S n } de sousclasses de la classe G. G est appelée généralisation des sous-classes {S 1, S 2,, S n }. Z est la spécialisation de G. Relation de généralisation Spécialisation-généralisation Deux types de contraintes peuvent être appliquées aux relations de généralisation. {Exclusif} / {Inclusif} : un objet est au plus une instance d une des sous-classes / ou non {Complète} / {Incomplète} : il n est pas possible de rajouter des sous-classes / c est possible Les contraintes de couverture et de disjonction sont indépendantes 4 types de spécialisations Bases de données 40 Bases de données 41

8 Relation de généralisation Plan du cours EMPLOYE {Inclusif} {Exclusif} {Exclusif, Complète} SECRETAIRE TECHNICIEN INGENIEUR PERMANENT INTERIMAIRE CHEF DE PROJET Diverses spécialisations d une même classe Bases de données 42 I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Bases de données 43 Le modèle relationnel est un modèle logique associé aux SGBD relationnels (ex. Oracle, DB2, SQLServer, Access, Paradox, dbase ). Objectifs du modèle relationnel : indépendance physique traitement du problème de redondance des données LMD non procéduraux (faciles à utiliser) devenir un standard Généralités Bases de données 44 Généralités Caractéristiques des systèmes relationnels : Langages d interrogation puissants et déclaratifs Accès orienté valeur Grande simplicité, absence de considérations physiques Description du schéma très réduite LDD intégré au LMD Grande dynamique de structure Optimisation de requêtes Utilisation interactive ou à partir d un langage hôte Bases de données 45 Relations, attributs et n-uplets Une relation R est un ensemble d attributs {A 1, A 2,, A n }. ex. La relation PRODUIT est l ensemble des attributs {NumProd, Dési, PrixUni} Chaque attribut A i prend ses valeurs dans un domaine dom(a i ). ex. PrixUni ]0, ] Relations, attributs et n-uplets Un n-uplet t est un ensemble de valeurs t = <V 1, V 2,, V n > où V i dom(a i ) ou V i est la valeur nulle (NULL). ex. <112, Raquette de tennis, 300> est un n- uplet de la relation PRODUIT. Notation : R (A 1, A 2,, A n ) ex. PRODUIT (NumProd, Dési, PrixUni) Bases de données 46 Bases de données 47

9 Contraintes d'intégrité Clé primaire : Ensemble d attributs dont les valeurs permettent de distinguer les n-uplets les uns des autres (identifiant). ex. NumProd clé primaire de la relation PRODUIT Clé étrangère : Attribut qui est clé primaire d une autre relation. ex. Connaître le fournisseur de chaque produit ajout de l attribut NumFour à la relation PRODUIT Contraintes d'intégrité Notations : clés primaires soulignées, clés étrangères en italiques ex. PRODUIT (NumProd, Dési, PrixUni, NumFour) Contraintes de domaine : les attributs doivent respecter une condition logique ex. PrixUni > 0 ET PrixUni Bases de données 48 Bases de données 49 Traduction UML-relationnel 1) Chaque classe devient une relation. Les attributs de la classe deviennent attributs de la relation. L identifiant de la classe devient clé primaire de la relation. ex. (NumCli, Nom, Prénom, DateNaiss, Rue, CP, Ville) Traduction UML-relationnel 2) Chaque association 1-1 est prise en compte en incluant la clé primaire d une des relations comme clé étrangère dans l autre relation. ex. Si un client peut posséder un compte, on aura : COMPTE (NumCom, Solde) (NumCli, Nom, Prénom, DateNaiss, Rue, CP, Ville, NumCom) Bases de données 50 Bases de données ) Chaque association 1-N est prise en compte en incluant la clé primaire de la relation dont la multiplicité maximale est * comme clé étrangère dans l autre relation. ex. Traduction UML-relationnel PRODUIT (NumProd, Dési, PrixUni, NumFour) FOURNISSEUR (NumFour, RaisonSoc) Traduction UML-relationnel 4) Chaque association M-N est prise en compte en créant une nouvelle relation dont la clé primaire et la concaténation des clés primaires des relations participantes. Les attributs de la classe d association sont insérés dans cette nouvelle relation si nécessaire. ex. COMMANDE (NumCli, NumProd, Date, Quantité) Bases de données 52 Bases de données 53

10 Traduction UML-relationnel Schéma relationnel complet de l exemple VPC (NumCli, Nom, Prénom, DateNaiss, Rue, CP, Ville) PRODUIT (NumProd, Dési, PrixUni, NumFour) FOURNISSEUR (NumFour, RaisonSoc) COMMANDE (NumCli, NumProd, Date, Quantité) Bases de données 54 Traduction UML-relationnel Héritage : Les sous-classes ont même clé primaire que la superclasse. Un attribut "type" est ajouté à la superclasse. Exemple : EMPLOYE (NumEmp, A1,, Type) Type {Secrétaire, Technicien, Ingénieur} SECRETAIRE (NumEmp, A11, ) TECHNICIEN (NumEmp, A21, ) INGENIEUR (NumEmp, A31, ) Bases de données 55 Problème de la redondance [En dehors des clés étrangères] ex. Soit la relation COMMANDE_PRODUIT. NumProd Quantité NumFour Adresse Quai des brumes Quai Claude Bernard Quai des Marans Quai des brumes Cette relation présente différentes anomalies. Problème de la redondance Anomalies de modification : Si l on souhaite mettre à jour l adresse d un fournisseur, il faut le faire pour tous les n-uplets concernés. Anomalies d insertion : Pour ajouter un fournisseur nouveau, il faut obligatoirement fournir des valeurs pour NumProd et Quantité. Anomalies de suppression : ex. La suppression du produit 104 fait perdre toutes les informations concernant le fournisseur 902. Bases de données 56 Bases de données 57 Normalisation Objectifs de la normalisation : Suppression des problèmes de mise à jour Minimisation de l espace de stockage (élimination des redondances) La taille des fichiers normalisés croît de façon arithmétique alors que la taille des fichiers non normalisés croît de façon géométrique. Bases de données 58 Normalisation Les dépendances fonctionnelles (DF) Soit R (X, Y, Z) une relation où X, Y, et Z sont des ensembles d attributs. Z peut être vide. Définition : Y dépend fonctionnellement de X (X Y) si c est toujours la même valeur de Y qui est associée à X dans la relation R. ex. PRODUIT (NumProd, Dési, PrixUni) NumProd Dési, Dési PrixUni Bases de données 59

11 Normalisation Propriétés des dépendances fonctionnelles Réflexivité : Si Y X alors X Y. Augmentation : Si W Z et X Y alors X, Z Y, W. Transitivité : Si X Y et Y Z alors X Z. (Règles d inférence d Armstrong) Bases de données 60 Normalisation Propriétés des dépendances fonctionnelles Pseudo-transitivité : Si X Y et Y, Z T alors X, Z T. Union : Si X Y et X Z alors X Y, Z. Décomposition : Si Z Y et X Y alors X Z. NB : La notation X, Y signifie X Y. Bases de données 61 Normalisation Première forme normale (1FN) Une relation est en 1FN si tout attribut n est pas décomposable. ex. Les relations PERSONNE (Nom, Prénoms, Age) et DEPARTEMENT (Nom, Adresse, Tel) ne sont pas en 1FN si les attributs Prénoms et Adresse peuvent être du type [Jean, Paul] ou [Rue de Marseille, Lyon]. Normalisation Deuxième forme normale (2FN) Une relation est en 2FN si : - elle est en 1FN ; - tout attribut non clé primaire est dépendant de la clé primaire entière. ex. La relation (NumCli, Nom, Prénom, DateNaiss, Rue, CP, Ville) est en 2FN. Bases de données 62 Bases de données 63 Normalisation Deuxième forme normale (2FN) ex. La relation COMMANDE_PRODUIT (NumProd, Quantité, NumFour, Ville) n est pas en 2FN car on a NumProd, NumFour Quantité et NumFour Ville. La décomposition suivante donne deux relations en 2FN : COMMANDE (NumProd, NumFour, Quantité) ; FOURNISSEUR (NumFour, Ville). Bases de données 64 Normalisation Troisième forme normale (3FN) Une relation est en 3FN si : - elle est en 2FN ; - il n existe aucune DF entre deux attributs non clé primaire. ex. La relation CINEMA (NoFilm, NoRéal, Nom) avec les DF NoFilm NoRéal, NoRéal Nom et NoFilm Nom est en 2FN, mais pas en 3FN. Bases de données 65

12 Normalisation Troisième forme normale (3FN) Anomalies de mise à jour sur la relation CINEMA : il n est pas possible d introduire un nouveau réalisateur sans préciser le film correspondant. La décomposition suivante donne deux relations en 3FN qui permettent de retrouver (par transitivité) toutes les DF : R1 (NoFilm, NoRéal) R2 (NoRéal, Nom). Bases de données 66 Algèbre relationnelle Ensemble d opérateurs qui s appliquent aux relations Résultat : nouvelle relation qui peut à son tour être manipulée L algèbre relationnelle permet d effectuer des recherches dans les relations. Bases de données 67 Algèbre relationnelle Opérateurs ensemblistes Union : T = R S ou T = UNION (R, S) R et S doivent avoir même schéma. ex. R et S sont les relations PRODUIT de deux sociétés qui fusionnent et veulent unifier leur catalogue. Notation graphique : Bases de données 68 R T S Algèbre relationnelle Opérateurs ensemblistes Intersection : T = R S ou T = INTERSECT (R, S) R et S doivent avoir même schéma. ex. Permet de trouver les produits communs aux catalogues de deux sociétés. Notation graphique : Bases de données 69 R T S Algèbre relationnelle Opérateurs ensemblistes Différence : T = R - S ou T = MINUS (R, S) R et S doivent avoir même schéma. ex. Permet de retirer les produits de la relation S existant dans la relation R. Notation graphique : R - T S Algèbre relationnelle Opérateurs ensemblistes Produit cartésien : T = R x S ou T = PRODUCT (R, S) Associe chaque n-uplet de R à chaque n-uplet de S. Notation graphique : R S x T Bases de données 70 Bases de données 71

13 ex. NumProd Dési 0 P1 1 P2 = Algèbre relationnelle X NumFour RaisonSoc 10 F1 20 F2 30 F3 NumProd Dési NumFour RaisonSoc 0 P1 10 F1 1 P2 10 F1 0 P1 20 F2 1 P2 20 F2 0 P1 30 F3 1 P2 30 F3 Bases de données 72 Algèbre relationnelle Opérateurs ensemblistes Division : T = R S ou T = DIVISION (R, S) R (A 1, A 2,, A n ) S (A p+1,, A n ) T (A 1, A 2,, A p ) contient tous les n-uplets tels que leur concaténation à chacun des n-uplets de S donne toujours un n-uplet de R. Notation graphique : Bases de données 73 R T S ex. Algèbre relationnelle NumCli Date Quantité 1 22/09/ /09/ /10/ /10/ /09/ /10/99 2 Date Quantité 22/09/ /10/99 2 NumCli 1 3 Bases de données 74 = Algèbre relationnelle Opérateurs spécifiques Projection : T = Π <A, B, C> (R) ou T = PROJECT (R / A, B, C) T ne contient que les attributs A, B et C de R. ex. Noms et prénoms des clients. Notation graphique : Bases de données 75 T A, B, C R Algèbre relationnelle Opérateurs spécifiques Restriction : T = σ <C> (R) ou T = RESTRICT (R / C) T ne contient que les attributs de R qui satisfont la condition C. ex. Clients qui habitent Lyon (C : Ville = Lyon ) Notation graphique : Bases de données 76 C T R Algèbre relationnelle Opérateurs spécifiques Jointure naturelle : T = R >< S ou T = JOIN (R, S) Produit cartésien R x S et restriction A = B sur les attributs A R et B S. Notation graphique : T A B = R S Bases de données 77

14 Algèbre relationnelle ex. Commandes avec le nom du client et pas seulement son numéro Algèbre relationnelle Décomposition des opérations NumCli NumCli = Nom, Date, Quantite COMMANDE CL NumCli Nom 1 C1 2 C2 3 C3 X CO NumCli Date Quantité 1 22/09/ /09/ /09/99 2 NB : Requête = enchaînement d opérations Bases de données 78 Bases de données 79 Algèbre relationnelle Algèbre relationnelle = CL.NumCli Nom CO.NumCli Date Quantité 1 C1 1 22/09/ C2 1 22/09/ C3 1 22/09/ C1 3 22/09/ C2 3 22/09/ C3 3 22/09/ C1 3 22/09/ C2 3 22/09/ C3 3 22/09/99 2 CL >< CO CL.NumCli Nom CO.NumCli Date Quantité 1 C1 1 22/09/ C3 3 22/09/ C3 3 22/09/99 2 Π <Nom, Date, Quantité> (CL >< CO) Nom Date Quantité C1 22/09/99 1 C3 22/09/99 5 C3 22/09/99 2 Bases de données 80 Bases de données 81 Exemples de requêtes Ex. 1 : Désignation et prix unitaire de tous les produits Résultat Dési, PrixUni PRODUIT Exemples de requêtes Ex. 2 : Désignation des produits de prix inférieur à 100 Résultat Dési PrixUni<100 PRODUIT Bases de données 82 Bases de données 83

15 Exemples de requêtes Ex. 3 : Nom des clients qui ont commandé le produit n 1 Résultat Nom NumCli NumCli = NumProd=1 Exemples de requêtes Ex. 4 : Nom des clients qui ont commandé au moins un produit de prix supérieur à 500 NumCli Résultat Nom = NumCli NumProd COMMANDE = NumProd NumProd COMMANDE PrixUni>500 PRODUIT Bases de données 84 Bases de données 85 Exemples de requêtes Ex. 5 : Nom des clients qui n ont pas commandé le produit n 1 Résultat Nom NumCli NumCli = - NumCli NumCli NumProd=1 COMMANDE Bases de données 86 Exemples de requêtes Ex. 6 : Numéro des clients qui ont commandé tous les produits Résultat NumCli, NumProd COMMANDE NumProd PRODUIT Bases de données 87 Exemples de requêtes Ex. 7 : Numéro des clients qui ont commandé tous les produits commandés par le client n 2 NumCli, NumProd COMMANDE Résultat NumProd NumCli=2 COMMANDE Bases de données 88 Classification des SGBD relationnels Niveau 1 : Systèmes non relationnels. Supportent uniquement la structure tabulaire. Niveau 2 : Systèmes relationnellement minimaux. Permettent les opérations de sélection, projection et jointure. Niveau 3 : Systèmes relationnellement complets. Toutes les opérations de l algèbre relationnelle. Niveau 4 : Systèmes relationnellement pleins. Permettent la définition des contraintes d intégrité. Bases de données 89

16 Plan du cours I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Généralités SQL = Structured Query Language, issu de SEQUEL (Structured English as a QUery Language) SQL permet la définition, la manipulation et le contrôle d une base de données relationnelle. Il se base sur l algèbre relationnelle. SQL est un standard ANSI depuis Nous adoptons dans ce chapitre la syntaxe du SQL d'oracle (très proche de la norme). Bases de données 90 Bases de données 91 Définition des données Définitions des tables (relations) CREATE TABLE NomTable ( Attribut1 TYPE, Attribut2 TYPE,, contrainte_integrité1, contrainte_integrité2, ); Type des données principaux : NUMBER(n) : Entier à n chiffres NUMBER(n, m) : Réel à n chiffres au total (virgule comprise), m après la virgule VARCHAR(n) : Chaîne de n caractères DATE : Date au format JJ-MM-AAAA Définition des données Définitions des contraintes d intégrité Clé primaire : CONSTRAINT nom_contrainte PRIMARY KEY (attribut_clé [, attribut_clé2, ]) Clé étrangère : CONSTRAINT nom_contrainte FOREIGN KEY (attribut_clé_ét) REFERENCES table(attribut) Contrainte de domaine : CONSTRAINT nom_contrainte CHECK (condition) Bases de données 92 Bases de données 93 Définition des données ex. CREATE TABLE Client ( NumCli NUMBER(3), Nom VARCHAR(30), DateNaiss DATE, Salaire NUMBER(8,2), NumEmp NUMBER(3), CONSTRAINT cle_pri PRIMARY KEY (NumCli), CONSTRAINT cle_etr FOREIGN KEY (NumEmp) REFERENCES EMPLOYEUR(NumEmp), CONSTRAINT date_ok CHECK (DateNaiss < SYSDATE)); Création d index (accélération des accès) CREATE [UNIQUE] INDEX nom_index ON nom_table (attribut [ASC DESC], ); UNIQUE pas de double ASC/DESC ordre croissant ou décroissant ex. CREATE UNIQUE INDEX Icli ON Client (Nom); Destructions : Définition des données DROP TABLE nom_table; DROP INDEX nom_index; Bases de données 94 Bases de données 95

17 Définition des données Ajout d attributs ALTER TABLE nom_table ADD (attribut TYPE, ); ex. ALTER TABLE Client ADD (tel NUMBER(8)); Modifications d attributs ALTER TABLE nom_table MODIFY (attribut TYPE, ); ex. ALTER TABLE Client MODIFY (tel NUMBER(10)); Suppression d'attributs ALTER TABLE nom_table DROP COLUMN attribut,...; ex. ALTER TABLE Client DROP COLUMN tel; Bases de données 96 Définition des données Ajout de contrainte ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte définition_contrainte; ex. ALTER TABLE Client ADD CONSTRAINT sal_ok CHECK (salaire>0); Suppression de contrainte ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte; ex. ALTER TABLE Client DROP CONSTRAINT sal_ok; Bases de données 97 Mise à jour des données Ajout d un n-uplet INSERT INTO nom_table VALUES (val_att1, val_att2, ); ex. INSERT INTO Produit VALUES (400, Nouveau produit, 78.90); Mise à jour d un attribut UPDATE nom_table SET attribut=valeur [WHERE condition]; ex. UPDATE Client SET Nom= Dudule WHERE NumCli = 3; Bases de données 98 Mise à jour des données Suppression de n-uplets DELETE FROM nom_table [WHERE condition]; ex. DELETE FROM Produit; DELETE FROM Client WHERE Ville = Lyon ; Bases de données 99 Forme générale d'une requête SELECT [ALL DISTINCT] attribut(s) FROM table(s) [WHERE condition] [GROUP BY attribut(s) [HAVING condition]] [ORDER BY attribut(s) [ASC DESC]]; Tous les n-uplets d une table ex. SELECT * FROM Client; Tri du résultat ex. Par ordre alphabétique inverse de nom SELECT * FROM Client ORDER BY Nom DESC; Ou par l exemple Bases de données Calculs ex. Calcul de prix TTC SELECT PrixUni+PrixUni*0.206 FROM Produit; Projection ex. Noms et Prénoms des clients, uniquement SELECT Nom, Prenom FROM Client; Restriction ex. Clients qui habitent à Lyon SELECT * FROM Client WHERE Ville = Lyon ; Bases de données 101

18 ex. Commandes en quantité au moins égale à 3 SELECT * FROM Commande WHERE Quantite >= 3; ex. Produits dont le prix est compris entre 50 et 100 SELECT * FROM Produit WHERE PrixUni BETWEEN 50 AND 100; ex. Commandes en quantité indéterminée SELECT * FROM Commande WHERE Quantite IS NULL; Bases de données ex. Clients habitant une ville dont le nom se termine par sur-saône SELECT * FROM Client WHERE Ville LIKE %sur-saône ; sur-saône% commence par sur-saône %sur% contient le mot sur Bases de données ex. Prénoms des clients dont le nom est Dupont, Durand ou Martin SELECT Prenom FROM Client WHERE Nom IN ( Dupont, Durand, Martin ); NB : Possibilité d utiliser la négation pour tous ces prédicats : NOT BETWEEN, NOT NULL, NOT LIKE, NOT IN. Bases de données Fonctions d agrégat Elles opèrent sur un ensemble de valeurs. AVG(), VARIANCE(), STDDEV() : moyenne, variance, écart-type des valeurs SUM() : somme des valeurs MIN(), MAX() : valeur minimum, valeur maximum COUNT() : nombre de valeurs ex. Moyenne des prix des produits SELECT AVG(PrixUni) FROM Produit; Bases de données Opérateur DISTINCT ex. Nombre total de commandes SELECT COUNT(*) FROM Commande; SELECT COUNT(NumCli) FROM Commande; ex. Nombre de clients ayant passé commande SELECT COUNT( DISTINCT NumCli) FROM Commande; Table COMMANDE (simplifiée) NumCli Date Quantite 1 22/09/ /09/ /09/99 2 COUNT(NumCli) Résultat = 3 COUNT(DISTINCT NumCli) Résultat = 2 Bases de données Bases de données 107

19 Jointure ex. Liste des commandes avec le nom des clients SELECT Nom, Date, Quantite FROM Client, Commande WHERE Client.NumCli = Commande.NumCli; ex. Idem avec le numéro de client en plus SELECT C1.NumCli, Nom, Date, Quantite FROM Client C1, Commande C2 WHERE C1.NumCli = C2.NumCli ORDER BY Nom; NB : Utilisation d alias (C1 et C2) pour alléger l écriture + tri par nom. Bases de données Bases de données Jointure exprimée avec le prédicat IN ex. Nom des clients qui ont commandé le 23/09 SELECT Nom FROM Client WHERE NumCli IN ( SELECT NumCli FROM Commande WHERE Date = ); NB : Il est possible d imbriquer des requêtes. Prédicats EXISTS / NOT EXISTS ex. Clients qui ont passé au moins une commande [n ont passé aucune commande] SELECT * FROM Client C1 WHERE [NOT] EXISTS ( SELECT * FROM Commande C2 WHERE C1.NumCli = C2.NumCli ); Bases de données Bases de données Prédicats ALL / ANY ex. Numéros des clients qui ont commandé au moins un produit en quantité supérieure à chacune [à au moins une] des quantités commandées par le client n 1. SELECT DISTINCT NumCli FROM Commande WHERE Quantite > ALL [ANY] ( SELECT Quantite FROM Commande WHERE NumCli = 1 ); Groupement ex. Quantité totale commandée par chaque client SELECT NumCli, SUM(Quantite) FROM Commande GROUP BY NumCli; ex. Nombre de produits différents commandés... SELECT NumCli, COUNT(DISTINCT NumProd) FROM Commande GROUP BY NumCli; Bases de données Bases de données 113

20 ex. Quantité moyenne commandée pour les produits faisant l objet de plus de 3 commandes Attention : SELECT NumProd, AVG(Quantite) FROM Commande GROUP BY NumProd HAVING COUNT(*)>3; La clause HAVING ne s utilise qu avec GROUP BY. Opérations ensemblistes INTERSECT, MINUS, UNION ex. Numéro des produits qui soit ont un prix inférieur à 100, soit ont été commandés par le client n 2 SELECT NumProd FROM Produit WHERE PrixUni<100 UNION SELECT NumProd FROM Commande WHERE NumCLi=2; Bases de données Bases de données Les vues Vue : table virtuelle calculée à partir d autres tables grâce à une requête Définition d une vue CREATE VIEW nom_vue AS requête; ex. CREATE VIEW Noms AS SELECT Nom, Prenom FROM Client; Bases de données Intérêt des vues Les vues Simplification de l accès aux données en masquant les opérations de jointure ex. CREATE VIEW Prod_com AS SELECT P.NumProd, Dési, PrixUni, Date, Quantite FROM Produit P, Commande C WHERE P.NumProd=C.NumProd; SELECT NumProd, Dési FROM Prod_com WHERE Quantite>10; Bases de données Les vues Intérêt des vues Sauvegarde indirecte de requêtes complexes Présentation de mêmes données sous différentes formes adaptées aux différents usagers particuliers Support de l indépendance logique ex. Si la table Produit est remaniée, la vue Prod_com doit être refaite, mais les requêtes qui utilisent cette vue n ont pas à être remaniées. Bases de données Les vues Intérêt des vues Renforcement de la sécurité des données par masquage des lignes et des colonnes sensibles aux usagers non habilités Problèmes de mise à jour, restrictions La mise à jour de données via une vue pose des problèmes et la plupart des systèmes impose d importantes restrictions. Bases de données 119

21 Les vues Problèmes de mise à jour, restrictions de màj Le mot clé DISTINCT doit être absent. La clause FROM doit faire référence à une seule table. La clause SELECT doit faire référence directement aux attributs de la table concernée (pas d attribut dérivé). Les clauses GROUP BY et HAVING sont interdites. Bases de données Catalogue du système Catalogue du système : Ensemble de vues maintenues automatiquement par le système et contenant sous forme relationnelle la définition de tous les objets créés par le système et les usagers. Ces vues sont accessibles avec SQL (en mode consultation uniquement). Bases de données Catalogue du système ALL_TABLES (OWNER, TABLE_NAME, ) ALL_VIEWS (OWNER, VIEW_NAME, ) ALL_CONSTRAINTS (OWNER, TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE, SEARCH_CONDITION,...) ALL_CONS_COLUMNS (OWNER, TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME,...) USER_CATALOG (TABLE_NAME, TABLE_TYPE) USER_TAB_COLUMNS (TABLE_NAME, COLUMN_NAME, ) USER_IND_COLUMNS (INDEX_NAME, TABLE_NAME, COLUMN_NAME, ) USER_CONSTRAINTS (TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE, SEARCH_CONDITION,...)... Bases de données Catalogue du système Tables qui contiennent un attribut Intitule SELECT TABLE_NAME FROM USER_TAB_COLUMNS WHERE COLUMN_NAME= INTITULE ; Attributs de la table Client SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME= ; Contraintes des tables de l utilisateur darmont SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER= DARMONT ; Bases de données Gestion des transactions Transaction : ensemble de mises à jour des données ( modifications structurelles) Début de transaction : début de la session de travail ou fin de la transaction précédente Connexion Validation ou annulation Validation ou annulation Déconnexion Transaction 1 Transaction 2 Transaction 3 Gestion des transactions Validation (et fin) d une transaction : COMMIT; Annulation (et fin) d une transaction : ROLLBACK; Fin de session de travail (avec la commande EXIT ou QUIT) validation automatique Bases de données Bases de données 125

22 Sécurité et autorisation Transmission de privilèges GRANT privilège ON table vue TO user PUBLIC [WITH GRANT OPTION]; Privilèges : SELECT : lecture INSERT : insertion UPDATE : mise à jour DELETE : suppression ALL : tous les privilèges ALTER : destruction INDEX : construction d index Suppression de privilèges REVOKE privilège ON table vue FROM user PUBLIC; Bases de données Plan du cours I. Introduction II. Modèle conceptuel UML III. Modèle relationnel IV. Langage de requête SQL V. Langage PL/SQL d Oracle Bases de données Généralités PL/SQL : Langage procédural de 4 ème génération (L4G) Extension de SQL Déclaration de variables et de constantes Types de données abstraits (collections, enregistrements, objets) Modularité (sous-programmes, packages) Gestion des erreurs à l'exécution (exceptions) Intéraction étroite avec Oracle (avec SQL) Bases de données Avantages : Généralités Support de SQL, y compris en dynamique Support de programmation orientée-objet Performance (traitements par lot) Productivité (uniformité dans tous les outils) Portabilité (sur tous systèmes Oracle) Intégration étroite avec Oracle (mêmes types de données que SQL, par exemple) Sécurité (procédures stockées, déclencheurs) Bases de données Structure d'un bloc PL/SQL [DECLARE -- Déclaration types, constantes et variables] BEGIN -- Instructions PL/SQL [EXCEPTION -- Traitement des erreurs] END; Bases de données Déclarations Schéma tiré de la Documentation Oracle 8 (Fig. 2-1) Bases de données 131

23 Déclarations Partie déclarative d un bloc PL/SQL Variables ex. date_naissance DATE; compteur INTEGER := 0; -- Initialisation compteur INTEGER DEFAULT 0; -- Idem id CHAR(5) NOT NULL := AP001 ; Constantes ex.euro CONSTANT REAL:= ; Déclarations Type d une autre variable ex.credit REAL; debit credit%type; Type d'un attribut d'une table ex. num_emp EMP.EMPNO%TYPE; Type d un n-uplet d une table ex.un_client client%rowtype; Bases de données Bases de données Affectation simple Affectation ex.numero := 0; numero := numero + 1; Valeurs issues d'une base de données ex.select numcli INTO numero FROM client WHERE numcli=10; SELECT empno, ename INTO num, nom FROM emp WHERE ename='king'; Expressions et comparaisons Opérateurs arithmétiques : + - / * ** Opérateur de concaténation : Opérateurs de comparaison : = < > <= >= <> IS NULL, LIKE, BETWEEN, IN Opérateurs logiques : AND, OR, NOT Bases de données Bases de données Sélection Structures de contrôle IF-THEN, IF-THEN-ELSE ou IF-THEN-ELSIF IF condition1 THEN -- Instructions [ELSEIF condition2 THEN -- Instructions] [ELSE -- Instructions] END IF; Bases de données Structures de contrôle Boucle pour FOR compteur IN [REVERSE] min..max LOOP -- Instructions END LOOP; Boucle tant que WHILE condition LOOP -- Instructions END LOOP; Boucle "infinie" LOOP -- Instructions END LOOP; Bases de données 137

24 Structures de contrôle Branchement inconditionnel GOTO étiquette; Formellement interdit Branchement de sortie de boucle EXIT WHEN condition; Uniquement autorisé pour sortir d'une boucle infinie Affichage DBMS_OUTPUT.PUT_LINE('chaîne'); DBMS_OUTPUT.PUT_LINE('Bonjour'); DBMS_OUTPUT.PUT_LINE('nom=' nom); DBMS_OUTPUT.PUT_LINE('num=' TO_CHAR(num)); NB : Pour que l'affichage fonctionne, la variable d'environnement SERVEROUTPUT de SQL*Plus doit être à ON. SET SERVEROUTPUT ON Bases de données Bases de données Affichage en francs d'un salaire stocké en euros DECLARE euro CONSTANT REAL := ; salaire emp.sal%type; BEGIN END; Exemple 1 -- Affectation SELECT sal INTO salaire FROM emp WHERE ename='darmont'; -- Conversion salaire := salaire * euro; -- Affichage DBMS_OUTPUT.PUT_LINE(TO_CHAR(salaire) ' FF'); Bases de données Collections Collection : Ensemble ordonné d'éléments du même type. Chaque élément possède un indice qui détermine sa position dans la collection. Deux types de collections : Tableau (VARRAY) : taille maximum, dense Table (TABLE) : extensible, non-dense Schéma tiré de la Documentation Oracle 8 (Fig. 4-1) Bases de données Collections 1. Déclaration d'un type collection ex. TYPE TableChar IS TABLE OF VARCHAR(20); TYPE TableauInt IS VARRAY(10) OF INTEGER; 2. Déclaration d'une variable collection ex. ma_table TableChar := TableChar('Aa', 'Bb', 'Cc'); mon_tableau TableauInt := TableauInt(); NB : Une collection peut être initialisée à vide. Il n'est pas nécessaire d'initialiser tous les éléments d'un tableau. Bases de données Collections Affectation de collections entières ex.declare TYPE T1 IS TABLE OF INTEGER; TYPE T2 IS TABLE OF INTEGER; et11 T1 := T1(1, 2, 3, 4); et12 T1 := T1(5, 6); et2 T2 := T2(); BEGIN et12 := et11; -- Légal et2 := et11; -- Illégal Affectation d'éléments de collection ex.et11(1) := 10; Bases de données 143

25 Collections Méthodes ( procédures) prédéfinies Utilisation : nom_col.nom_méth[(param)] EXISTS(i) retourne TRUE si le i ème élement de la collection existe. COUNT retourne le nombre d'éléments dans la collection. LIMIT retourne la taille maximum de la collection (ou NULL pour les tables). EXTEND(n) augmente la taille de la collection de n éléments. EXTEND est équivalent àextend(1). Bases de données Collections TRIM(n) supprime n éléments en fin de collection (la taille de la collection est diminuée).trim est équivalent à TRIM(1). DELETE(i), DELETE(i, j), DELETE effacent le i ème élement, les éléments d'indice i à j et tous les éléments de la collection, respectivement (tables uniquement). FIRST et LAST retournent l'indice du premier et du dernier élément de la collection, resp. NB : FIRST=1 et LAST=COUNT pour un tableau. PRIOR(n) etnext(n) retournent l'indice de l'élément précédent et suivant de l'élément d'indice n, resp. Bases de données Collections DECLARE -- Exemple TYPE Liste_Entiers IS TABLE OF INTEGER; pile Liste_Entiers := Liste_Entiers(); element INTEGER; BEGIN -- Ajouts au sommet de la pile (empiler) pile.extend; pile(pile.count+1) := 1; pile.extend; pile(pile.count+1) := 11; -- Suppression du sommet (dépiler) element := pile(pile.count); -- element=11 pile.trim; Bases de données Enregistrements Enregistrement : Ensemble de données logiquement liées stockées dans des champs. 1. Déclaration d'un type enregistrement ex. TYPE Etudiant IS RECORD( num_etu INTEGER, nom VARCHAR(50), age INTEGER); 2. Déclaration d'une variable enregistrement ex. un_etudiant Etudiant; Bases de données Enregistrements Référencement direct ex. un_etudiant.num_etu := ; un_etudiant.nom := 'Toto'; un_etudiant.age := 6; Résultat de requête ex. SELECT num_etu, nom, age INTO un_etudiant FROM ETUDIANT WHERE num_etu = ; Bases de données Curseur : Structure de données permettant de stocker le résultat d une requête qui retourne plusieurs n-uplets (lignes). Déclaration : CURSOR nom_curs IS requêtesql; ex. CURSOR calcul IS SELECT numprod, prixuni*1.206 prixttc FROM produit; NB : Curseurs Un n-uplet du curseur sera de type calcul%rowtype. Bases de données 149

26 Curseurs -- Exemple de parcours complet DECLARE CURSOR calcul IS SELECT numprod, prixuni*1.206 prixttc FROM produit; nuplet calcul%rowtype; BEGIN FOR n-uplet IN calcul LOOP DBMS_OUTPUT.PUT_LINE( TO_CHAR(nuplet.numprod) ' : ' TO_CHAR(nuplet.prixttc)); END LOOP; Bases de données Curseurs -- Exemple de parcours personnalisé DECLARE... BEGIN OPEN calcul; LOOP FETCH calcul INTO nuplet; EXIT WHEN calcul%notfound;... END LOOP; CLOSE calcul; END; Bases de données Attributs des curseurs : Curseurs %NOTFOUND est égal à FALSE si FETCH retourne un résultat %FOUND est l'opposé logique de %NOTFOUND %ROWCOUNT retourne le nombre de lignes lues %ISOPEN est égal à TRUE si le curseur est ouvert Bases de données Exceptions À chaque erreur à l exécution, une exception est levée. Ces exceptions sont gérées par des routines séparées. Avantages Traitement systématique des erreurs Traitement groupé d'erreurs similaires Lisibilité du code (traitement des erreurs séparé) Fonctions PL/SQL pour la gestion d erreurs SQLCODE : Code de la dernière exception levée SQLERRM : Message d erreur associé Bases de données Exceptions Déclaration (section DECLARE) nom_exception EXCEPTION; Lever l'exception (section BEGIN) IF condition THEN RAISE nom_exception; END IF; Traitement de l'exception (section EXCEPTION) WHEN nom_exception THEN...; -- Calcul du prix TTC des produits -- et recopie dans la table PRODTTC DECLARE Exemple 2 nbp NUMBER(3); aucun_produit EXCEPTION; CURSOR calcul IS SELECT numprod, prixuni*1.206 prixttc FROM produit; nuplet calcul%rowtype; Bases de données Bases de données 155

27 Exemple 2 Exemple 2 BEGIN -- Recopie des valeurs dans la table prodttc -- Comptage des produits SELECT COUNT(*) INTO nbp FROM produit; -- Test «il existe des produits» ou pas? IF nbp = 0 THEN RAISE aucun_produit; END IF; EXCEPTION FOR nuplet IN calcul LOOP INSERT INTO prodttc VALUES (nuplet.numprod, nuplet.prixttc); END LOOP; -- Validation de la transaction COMMIT; WHEN aucun_produit THEN RAISE_APPLICATION_ERROR(-20501, Erreur : table client vide ); Bases de données END; Bases de données Sous-programmes -- Définition de procédure PROCEDURE nomp (param1, param2 ) IS -- Déclarations locales BEGIN -- Instructions [EXCEPTION -- Traitement des exceptions] END; Sous-programmes -- Définition de fonction FUNCTION nomf (param1, param2 ) RETURN type_valeur_de_retour IS -- Déclarations locales BEGIN -- Instructions RETURN valeur_de_retour; [EXCEPTION -- Traitement des exceptions] END; Bases de données Bases de données Sous-programmes Déclaration : Tout sous-programme doit être défini avant d'être appelé définition dans la section déclaration d'un bloc PL/SQL Définition des paramètres, modes de passage nom_param [IN OUT IN OUT] TYPE ex. resultat OUT REAL IN : Paramètre en entrée OUT : Paramètre en sortie IN OUT : Paramètre en entrée-sortie Bases de données Exemple de procédure Sous-programmes PROCEDURE Conversion_FF_euro (prixf IN REAL, prixe OUT REAL) IS euro CONSTANT REAL := ; prixnull EXCEPTION; BEGIN IF prixf IS NOT NULL THEN prixe := prixf/euro; ELSE RAISE prixnull; END IF; EXCEPTION WHEN prixnull THEN DBMS_OUTPUT.PUT_LINE('Calcul impossible'); END; Bases de données 161

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

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

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

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

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

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

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

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

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

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

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

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

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

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

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

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. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES BASES DE DONNÉES CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98 J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES III. LES SYSTÈMES RÉSEAU IV. LES SYSTÈMES RELATIONNELS V. LE LANGAGE

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

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

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

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

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

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

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

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

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

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

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

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

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

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

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

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

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

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

Corrigés détaillés des exercices

Corrigés détaillés des exercices Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

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 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

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

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

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

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

Bases de Données Avancées PL/SQL

Bases de Données Avancées PL/SQL 1/170 Bases de Données Avancées 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 Léonard de Vinci 74, rue Marcel Cachin, F-93017

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

Quelques aspects du Relationnel-Objet du SGBD Oracle

Quelques aspects du Relationnel-Objet du SGBD Oracle Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD

Plus en détail

Introduction au PL/SQL Oracle. Alexandre Meslé

Introduction au PL/SQL Oracle. Alexandre Meslé Introduction au PLSQL Oracle Alexandre Meslé 17 octobre 2011 Table des matières 1 Notes de cours 3 1.1 Introduction au PLSQL............................................ 3 1.1.1 PLSQL.................................................

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

LE LANGAGE SQL2 1. INTRODUCTION

LE LANGAGE SQL2 1. INTRODUCTION LE LANGAGE SQL2 1. INTRODUCTION Les serveurs de données relationnels présentent aujourd hui une interface externe sous forme d un langage de recherche et mise à jour, permettant de spécifier les ensembles

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

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

Intégrité sémantique dans les bases de données relationnelles

Intégrité sémantique dans les bases de données relationnelles Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Patrice BOURSIER. Professeur, Univ. de La Rochelle. patrice.boursier@univ-lr.fr. Bases de Données. Notes de cours

Patrice BOURSIER. Professeur, Univ. de La Rochelle. patrice.boursier@univ-lr.fr. Bases de Données. Notes de cours Patrice BOURSIER Professeur, Univ. de La Rochelle patrice.boursier@univ-lr.fr Bases de Données Notes de cours SOMMAIRE Chapitre 1 : Introduction Chapitre 2 : Modèle conceptuel Chapitre 3 : Modèle relationnel

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

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

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

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

Cours SQL. Base du langage SQL et des bases de données

Cours SQL. Base du langage SQL et des bases de données Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

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

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. 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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

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

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

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

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

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

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

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

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

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

Partie II Cours 3 (suite) : Sécurité de bases de données

Partie II Cours 3 (suite) : Sécurité de bases de données Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction

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

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

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

Pour les débutants. langage de définition des données

Pour les débutants. langage de définition des données Pour les débutants SQL : langage de définition des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

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

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

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

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

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

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

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