Université Paris Ouest - Nanterre - la Défense. Master DEFI Bases de données. Marcel Cori

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

Download "Université Paris Ouest - Nanterre - la Défense. Master DEFI Bases de données. Marcel Cori"

Transcription

1 Université Paris Ouest - Nanterre - la Défense Master DEFI Bases de données Marcel Cori

2 1 Introduction 1.1 Modéliser une réalité Le problème Les bases de données constituent une application de l informatique. Il s agit de traiter toute une classe de problèmes que l on peut qualifier grossièrement de problèmes de gestion. Par exemple (1) comment stocker toutes les informations concernant une entreprise (les employés, les clients, les stocks, etc.), ou toutes les informations concernant l Université Paris Ouest Nanterre la Défense, et (2) comment accéder à ces informations de manière pratique La nécessité d une modélisation Il ne serait pas efficace d écrire des programmes spécifiques pour chaque tâche à accomplir : les utilisateurs doivent pouvoir apporter de nouvelles informations ou accéder aux informations sans être des informaticiens, et en tout cas sans entrer dans le détail de l implémentation informatique. Toutefois, une réalité, pour être représentée en machine, doit être rigoureusement exprimée selon un certain modèle. 1.2 Notions de base Bases de données Une base de données est un ensemble d informations persistantes (stockées sur des mémoires périphériques) qui représentent une portion de la réalité et sont accessibles par ordinateur à travers un logiciel unique (le système de gestion de bases de données). On distingue : (1) les bases de données physiques ; (2) les bases de données conceptuelles, (ou schémas conceptuels de bases de données). On peut modifier une base de données physique sans que le schéma conceptuel correspondant soit affecté. Pour pouvoir créer une base de données, il faut que les différentes informations soient exprimées dans des formats compatibles. Il s agit du processus d intégration. 2

3 1.2.2 Systèmes de gestion de bases de données : SGBD Un système de gestion de bases de données (SGBD) est un logiciel de définition et d utilisation des bases de données, qui doit vérifier les caractéristiques suivantes : (1) Un SGBD s appuie sur un modèle abstrait. (2) Un SGBD fournit deux langages à l utilisateur. (3) Un SGBD permet l accès à des informations distribuées sur des supports différents, il permet l accès simultané aux informations, et les informations sont protégées (contre les pannes ou les opérations indues). (4) Un SGBD réalise les stockages et l accès aux informations avec le maximum d efficacité. En particulier, il permet de manipuler de grandes quantités d informations Schémas et instances Le schéma est la structure d une base de données, qu il faut définir à sa création. Une instance de la base de données est son état à un moment donné. 1.3 Les langages Langage de définition de données : LDD Le langage de définition des données (LDD) est utilisé quand on crée la base de données, ou quand on en modifie la structure Langage de manipulation de données : LMD Le langage de manipulation de données (LMD) ou langage de requête est utilisé pour : (1) extraire des informations ; (2) mettre à jour les informations, sans modifier la structure de la base de données Langages hôtes Certaines tâches sont exprimées dans un langage de programmation classique, dit langage hôte. 3

4 1.4 Caractéristiques supplémentaires La notion de vue Une vue (ou sous-schéma conceptuel) permet de regrouper une partie des informations : la partie qui concerne un utilisateur donné Transactions et contrôle de concurrence Une transaction est une unité de traitement séquentielle qui, appliquée à une base de données cohérente, restitue une base de données cohérente : en cas de panne, il faut que la base de donnée reste cohérente. Par ailleurs, il ne faut pas que plusieurs transactions modifient simultanément les mêmes informations. À cette fin, le SGBD doit gérer ce que l on appelle le contrôle de concurrence La sécurité des données Les différents utilisateurs n ont pas les mêmes droits d accès aux bases de données. C est pourquoi il faut définir (1) des catégories d utilisateurs, et (2) séparer les informations contenues dans une base de données en des sous-ensembles. Une catégorie d utilisateurs peut avoir les droits d accès suivants sur un sous-ensemble d informations : le droit de lecture, le droit de création, le droit de modification ou le droit de destruction. Ce qui peut se schématiser selon un tableau à double entrée Les contraintes d intégrité Les contraintes d intégrité permettent d éviter certaines incohérences dans une base de données, ou d améliorer l adéquation des données vis-à-vis de la réalité qui est représentée. Ces contraintes portent sur les valeurs des données, et non sur la structure de la base. Plusieurs types de contraintes peuvent intervenir : - des contraintes sur la valeur de certaines données. Par exemple une note est comprise entre 0 et 20, un taux de TVA doit prendre une des valeurs 20,6%, 5,5% ou 2,1% ; - des contraintes sur les valeurs respectives des donées. Par exemple deux assurés sociaux ne peuvent avoir le même numéro INSEE, la date de décès d une personne ne peut précéder la date de naissance, un enseignant ne peut assurer deux cours en même temps ; - des contraintes sur l évolution de la valeur des données. Par exemple le nombre de diplômes d un individu ne peut pas diminuer, etc. 4

5 2 Le modèle relationnel 2.1 Entités Définition Une entité est un objet distinguable Ensembles Un ensemble est formé d entités similaires Attributs Un attribut A associe aux entités d un ensemble E des valeurs prises dans un domaine D. A tout ensemble E sont associés un certain nombre de domaines D 1,..., D n et d attributs A 1,..., A n Clés Etant donné un ensemble E auquel sont associés les attributs A 1,..., A n, une clé est formée d un ensemble {i 1,..., i p } {1,..., p} tel que si les valeurs prises par deux objets pour les attributs A i1,..., A ip sont égales alors les deux objets sont identiques. Une clé permet d identifier un objet Héritage IS-A Etant donnés deux ensembles d entités E et F, on dit que E est un(e) F (E IS A F ) si E possède tous les attributs de F (E hérite de ces attributs). 2.2 Relations Qu est-ce qu une relation? Etant donné un ensemble D, une relation binaire R sur cet ensemble est composée de couples d éléments de D. Ceci se généralise selon la définition suivante : 5

6 Définition : Etant donnés n ensembles (domaines) D 1,..., D n, une relation R sur ces domaines est constituée d un ensemble de n-uplets (tuple en anglais) où x 1 D 1,..., x n D n. x 1,..., x n n est l arité de la relation (on dit que la relation est n-aire). On ne s intéressera dans ce qui suit qu aux relations finies Relations et attributs Une relation R peut être vue comme un ensemble d entités. Si la relation est n-aire, on associe n attributs A 1,..., A n aux n-uplets de R. On définit le schéma de la relation R : R(A 1,..., A n ) ou R(A 1 : D 1,..., A n : D n ) Représentation des relations par des tableaux Les n-uplets constituent les lignes du tableau représentant une relation. L ordre entre les lignes est indifférent. Chaque colonne pourra recevoir un nom, qui sera celui de l attribut correspondant. En ce cas, l ordre entre les colonnes peut être changé, à condition que chaque colonne conserve son nom Clés des relations On considère une relation R de schéma R(A 1,..., A n ). L ensemble d attributs K = {A i1,..., A ip } est une clé de la relation si et seulement si : (i) pour toute instance de la relation, si deux n-uplets sont égaux pour A i1,..., A ip, alors ils sont égaux. (ii) Il n existe pas de sous-ensemble de K vérifiant la condition (i). On peut choisir une clé primaire parmi des clés candidates. 1. Si n = 0, la relation contient au maximum un élément, le n-uplet vide, que l on notera ɛ. Il ne faut pas confondre la relation {ɛ} avec une relation vide pour laquelle n est quelconque, et qui ne contient aucun n-uplet. 6

7 2.2.5 Définition d une base de données relationnelle Une base de données relationnelle : - a un schéma formé d un ensemble de schémas de relations ; - a un contenu à un moment donné qui est un ensemble de relations correspondant aux schémas. 2.3 Opérations sur les relations On définit sur les relations des opérations qui donnent pour résultats également des relations L union Etant données deux relations R et S de même arité n, l union de R et S sera la relation notée R S, telle que : R S = { x 1,..., x n ; x 1,..., x n R ou x 1,..., x n S} On remarquera que si les domaines associés à R sont D 1,..., D n et les domaines associés à S sont D 1,..., D n, alors les domaines associés à R S seront: D 1 D 1,..., D n D n Si les attributs des deux relations ne sont pas indentiques, il faudra les renommer afin qu il n en soit pas ainsi. Dans ce cas, R et S sont de schémas respectifs R(A 1,..., A n ) et S(A 1,..., A n ) et le schéma de T = R S sera T (A 1 : D 1 D 1,..., A n : D n D n) L intersection Etant données deux relations R et S de même arité n, l intersection de R et S sera la relation notée R S, telle que: R S = { x 1,..., x n ; x 1,..., x n R et x 1,..., x n S} On remarquera que si les domaines associés à R sont D 1,..., D n et les domaines associés à S sont D 1,..., D n, alors les domaines associés à R S seront : D 1 D 1,..., D n D n Si les attributs de deux relations ne sont pas identiques, on les renomme. 7

8 2.3.3 La différence ensembliste Etant données deux relations R et S de même arité n, la différence entre R et S sera la relation notée R S, telle que: R S = { x 1,..., x n R; x 1,..., x n / S} On remarquera que les domaines associés à R S seront des sous-ensembles des domaines associés à R, et que par conséquent on pourra considérer qu il s agit des mêmes domaines que ceux associés à R. Il faut encore que les ensembles d attributs associés à R et S soient identiques Le produit cartésien Etant données deux relations R et S d arités respectives n et m, le produit cartésien de R et S sera la relation notée R S, telle que: R S = { x 1,..., x n, x n+1,..., x n+m ; x 1,..., x n R et x n+1,..., x n+m S} Cette fois-ci, il faut que les ensembles d attributs associés aux deux relations soient distincts. Si ce n est pas le cas, on peut en renommer certains avant d effectuer le produit cartésien. En ce cas, si R est de schéma R(A 1,..., A n ) et S de schéma S(B 1,..., B m ), le produit T = R S est de schéma T (A 1,..., A n, B 1,..., B m ). Le produit cartésien permet de considérer toutes les combinaisons possibles des n- uplets de la première relation avec les n-uplets de la deuxième relation La sélection On considère les opérateurs de comparaison : =,, <, >,,. Etant donnée une relation R de schéma R(A 1,..., A n ), une expression conditionnelle sur R est définie comme suit: (i) A i θ x (resp. x θ A i ) est une expression conditionnelle, où x est une constante (c està-dire l élément d un domaine), A i est un attribut et θ un opérateur de comparaison. (ii) A i θ A j est une expression conditionnelle, où A i et A j sont des attributs et θ un opérateur de comparaison. (iii) Si α est une expression conditionnelle, alors α (non α) est aussi une expression conditionnelle. (iv) Si α et β sont deux expressions conditionnelles, alors α β (α et β) et α β (α ou β) sont aussi des expressions conditionnelles. Soit x 1,..., x n un n-uplet de D 1 D n. On dira que : (i) x 1,..., x n satisfait (A i θ x) si x i θx est vérifiée. (ii) x 1,..., x n satisfait (A i θ A j ) si x i θx j est vérifiée. 8

9 (iii) x 1,..., x n satisfait α si x 1,..., x n ne satisfait pas α. (iv) x 1,..., x n satisfait (α β) si x 1,..., x n satisfait α et x 1,..., x n satisfait β. x 1,..., x n satisfait (α β)) si x 1,..., x n satisfait α ou x 1,..., x n satisfait β. La sélection de R selon une expression conditionnelle α est définie par: σ α (R) = { x 1,..., x n R; x 1,..., x n satisfait α} Remarque: La sélection est l opération la plus adéquate pour extraire des informations d une relation de la base de données relationnelle. Elle est en général combinée à une projection La projection Etant donnée la relation R de schéma R(A 1,..., A n ) ainsi que les nombres i 1,..., i p tous distincts appartenant à {1,..., n}, on définit la projection selon A i1,..., A ip de R, notée Π Ai1,...,A ip (R) comme étant la relation d arité p: Π Ai1,...,A ip (R) = { x i1,..., x ip ; x 1,..., x n R} La projection S de R aura un schéma tel que S(A i1,..., A ip ) La jointure naturelle On considère deux relations R(A 1,..., A n ) et S(B 1,..., B m ) telles que les derniers attributs de R soient identiques aux premiers attributs de S : i {1,..., k} B i = A n k+i La jointure naturelle de R et S, notée R S, est la relation composée des (n+m k)- uplets x 1,..., x n, y k+1,..., y m tels que : x 1,..., x n R et x n k+1,..., x n, y k+1,..., y m S Soit T = R S. Cette relation est de schéma T (A 1,..., A n, B k+1,..., B m ) Remarque: Dans le cas limite où k = 0, la jointure naturelle se ramène au produit cartésien, et dans le cas limite où k = n = m elle se ramène à l intersection. 9

10 3 Le langage SQL 3.1 Introduction SQL (Structured Query Language) est un langage unique qui joue tout à la fois le rôle de langage de manipulation des données (LMD) et de langage de définition des données (LDD). Un modèle de données est un formalisme déclaratif (statique), alors qu un LMD, comme un LDD, est procédural. Les LMD ont pour rôle essentiel : d exprimer des requêtes, qui permettent d extraire des informations des bases de données ; de permettre la mise à jour des bases de données (ajout de n-uplets, suppression, modification). SQL offre des possibilités supplémentaires par rapport au modèle relationnel, notamment : l utilisation d expressions permettant d effectuer des calculs (calculs sur des nombres, sur des suites de caractères,... ) ; la réalisation d opérations qui portent sur des colonnes entières, ainsi les opérations dites agrégats. Le LDD permet de définir la structure de la basede donées (schéma), mais il permet également de faire évoluer le schéma de la base de données dans le temps. 3.2 La définition des données La création d une nouvelle relation CREATE TABLE <relation> (<liste d attributs typés>); avec : <liste d attributs typés> ::= <attribut typé> <liste d attributs typés> ::= <attribut typé>,<liste d attributs typés> 10

11 et: <attribut typé> ::= <attribut> <type> [NOT NULL] Parmi les différents types possibles il y a notamment : nombres INT ou INTEGER nombres entiers MEDIUMINT plus petits nombres entiers SMALLINT petits nombres entiers TINYINT très petits nombres entiers FLOAT(n) nombres à virgules d au plus n chiffres FLOAT nombres réel DOUBLE ou REAL nombres réels à double précision DECIMAL(n,p) nombres composés de n caractères avec p chiffres après la virgule texte CHAR(n) suite composée de n caractères VARCHAR(n) suite composée d au plus n caractères TEXT suite composée d au plus caractères BLOB suite composée d au plus caractères sensible à la casse temps DATE date YYYY-MM-DD TIME heure HHH:MM:SS DATETIME combinaison d une date et d une heure Le trait NOT NULL indique qu un attribut ne peut pas prendre la valeur NULL, c est-àdire qu il doit recevoir une valeur effective La suppression d une relation ou la modification d un schéma On supprime une relation par : DROP TABLE <relation>; On modifie le schéma d une relation, en ajoutant des attributs, ou en modifiant le type d un attribut par : ALTER TABLE <relation> ADD (<liste d attributs typés>); ALTER TABLE <relation> MODIFY (<attribut typé>); Les index Les index sont utilisés pour accélérer l accès à une relation. Ils sont créés par : CREATE [UNIQUE] INDEX <index> ON <relation> (<liste d attributs>); 11

12 avec: <liste d attributs> ::= <liste d attributs> ::= <attribut> <attribut>,<liste d attributs> Le trait UNIQUE force le fait qu un attribut est une clé. On peut supprimer un index sans toucher à la relation à laquelle il s applique : DROP INDEX <index>; 3.3 La manipulation des données L instruction SELECT portant sur une relation Une requête est effectuée à l aide de l instruction SELECT. Une forme simplifiée de cette instruction est la suivante : SELECT A 1,..., A k FROM R WHERE Ψ; où R est une relation, A 1,..., A k sont des attributs de cette relation et où Ψ est une formule logique dont on détaillera la forme ci-dessous. On peut dire que SELECT réalise tout à la fois une sélection (extraction d un certain nombre de n-uplets de la relation, c est-à-dire de lignes du tableau qui la représente, en fonction de critères exprimés par la formule logique) et une projection (extraction de certains attributs seulement, autrement dit de certaines colonnes du tableau qui représente la relation, celles apparaissant immédiatement après le mot-clé SELECT). Le résultat sera une nouvelle relation, donnée encore sous la forme d un tableau. Mais, si l on s en tient à l expression ci-dessus, les doublons ne seront pas éliminés. Afin d éliminer les doublons, on écrit : SELECT DISTINCT A 1,..., A k FROM R WHERE Ψ; Remarques : 1. On peut changer les attributs dans la relation construite par SELECT, autrement dit l intitulé des colonnes qui constitueront le résultat, en créant un alias de la manière suivante : SELECT A <alias> FROM R WHERE Ψ; 12

13 Notez l absence de ponctuation entre l attribut et son alias. 2. Le symbole * est utilisé pour représenter la liste de tous les attributs d une relation donnée (cas d une sélection sans projection) L instruction SELECT portant sur plusieurs relations Une instruction SELECT peut porter sur deux relations, ou plus. En ce cas, les attributs seront notés R.A (attribut A de la relation R) lorsqu il sera nécessaire d éliminer une ambiguïté. La forme générale (mais simplifiée) de cette instruction devient la suivante : SELECT R i1.a 1,..., R ik.a k FROM R 1,..., R m WHERE Ψ; où R 1,..., R m sont des relations toutes distinctes, i 1,..., i k sont des nombres compris entre 1 et m et où Ψ est une formule logique. Les relations apparaissant après FROM sont les relations dont on extrait des attributs mais aussi les relations dont les attributs entrent dans la formule logique Ψ. Afin de comprendre ce qui se produit en ce cas, considérons un SELECT portant sur deux relations : SELECT R i1.a 1,..., R ik.a k FROM R 1, R 2 WHERE Ψ; Tout se passe comme si on faisait le produit des deux tableaux, autrement dit à chaque ligne de R 1 on associe autant de lignes du tableau produit qu il y a de lignes dans R 2. Les critères et extractions s appliquent à ce tableau produit. Le symbole * désigne alors toutes les colonnes du tableau produit, mais on peut écrire R.* si l on ne considère que l ensemble des attributs de la relation R. Les alias peuvent être affectés aux relations, ce qui permet par exemple de faire une double référence à une même relation dans une requête, de la manière suivante : SELECT r i1.a 1,..., r ik.a k FROM R r 1, R r 2 WHERE Ψ; On peut ainsi faire des comparaisons entre deux lignes d une même relation. 13

14 3.3.3 La clause WHERE La clause WHERE est optionnelle. Si on l omet, cela revient à obtenir une projection sans sélection Les connecteurs logiques La forme générale de la clause WHERE est : WHERE <condition> avec : <condition> ::= <test> <test> AND <condition> <test> OR <condition> NOT <condition> et : <test> ::= (<condition>) <expression> <opérateur de comparaison> <expression> Les opérateurs de comparaison sont : =,!=, >=, <=, <, > Les opérations arithmétiques On a : <expression> ::= <opérande> <opérateur> <expression> <opérande> et: <opérande> ::= <attribut> <constante> (<expression>) Les opérateurs (arithmétiques) sont : +, -, *, /. Remarque : On peut avoir des expressions à la place des attributs dans les instructions SELECT Les opérations sur des suites de caractères LENGTH(ch) détermine la longueur de la suite ch. LOWER(ch) convertit la suite ch en minuscules. UPPER(ch) convertit la suite ch en majuscules. MID(ch,m,n) extrait de ch n caractères à partir du m-ième (moins si ce n est pas possible). LOCATE(ch1,ch2) détermine la position de la sous-suite ch1 dans ch2 et renvoie 0 si ch1 n appartient pas à ch2. CONCAT(ch1, ch2) effectue la concaténation des deux suites de caractères. L opérateur LIKE permet d écrire 14

15 <test> ::= <attribut> LIKE <constante> où la constante est une suite de caractères (encadrée par des quotes) qui comprend les caractères particuliers: % qui désigne n importe quelle suite de caractères, qui désigne n importe quel caractère Les opérations sur les dates et heures NOW() détermine la date et l heure courantes. CURDATE() détermine la date courante. CURTIME() détermine l heure courante. YEAR(date) détermine le numéro de l année de date. MONTH(date) détermine le numéro du mois de date. DAYOFYEAR(date) détermine le numéro du jour de date, entre 1 et 366. DAYOFMONTH(date) détermine le numéro du jour dans le mois de date, entre 1 et 31. HOUR(heure) détermine une heure, entre 0 et 23. MINUTE(heure) détermine une minute, entre 0 et 59. SECOND(heure) détermine une seconde, entre 0 et Les opérations ensemblistes Les éléments qui forment un ensemble constant sont entre parenthèses et séparés par des virgules. Sinon, les ensembles peuvent être définis à l intérieur des clauses WHERE à l aide de l instruction SELECT, autrement dit de sous-requêtes. On peut avoir: <test> ::= <attribut> [NOT] IN <ensemble> pour un test qui vérifie si un attribut appartient (ou n appartient pas) à un ensemble, <test> ::= <attribut> <opérateur de comparaison> ANY <ensemble> pour des tests qui vérifent si un attribut est comparable à un des éléments de l ensemble, <test> ::= <attribut> <opérateur de comparaison> ALL <ensemble> pour des tests qui vérifent si un attribut est comparable à tous les éléments de l ensemble Les opérations agrégats Ces opérations s appliquent à la colonne entière d une relation. Les différents opérateurs possibles sont : SUM (somme) AVG (moyenne) COUNT (compter) MIN 15

16 MAX L instruction SELECT peut alors se présenter sous la forme : SELECT [DISTINCT] <liste d agrégats> FROM <liste de relations> WHERE Ψ; avec: <liste d agrégats> ::= <agrégat> <agrégat> <liste d agrégats> et: <agrégat> ::= <opérateur agrégat>(<attribut>) Le résultat d une telle requête comportera nécessairement une seule ligne Les groupes On peut partitionner les relations en sous-relations ou groupes. Un groupe rassemble tous les n-uplets qui ont les mêmes valeurs pour certains attributs. L instruction SELECT peut être utilisée de la manière suivante : SELECT [DISTINCT] <liste d attributs> <liste d agrégats> FROM <liste de relations> [WHERE Ψ] GROUP BY <liste d attributs>; La liste d attributs qui apparaît après SELECT doit comporter des attributs qui figurent dans le groupe BY. Les agrégats ne sont plus calculés pour une colonne entière, mais pour chaque groupe. Le résultat comportera autant de lignes distinctes qu il y a de groupes. Des conditions peuvent être définies sur les groupes, en utilisant la clause HAVING, de la manière suivante : SELECT [DISTINCT] <liste d attributs> <liste d agrégats> FROM <liste de relations> [WHERE Ψ] GROUP BY <liste d attributs> HAVING Φ; On ne s intéresse qu aux groupes qui vérifient la condition Φ, condition qui met nécessairement en jeu des agrégats. 16

17 3.3.6 Le tri des résultats On peut ordonner les résultats d une requête. Cela se fait (de manière simplifiée) par : SELECT [DISTINCT] <liste d attributs> FROM <liste de relations> [WHERE Ψ] ORDER BY <attribut> [DESC]; Le trait DESC indique que le tri se fait de manière décroissante, alors que par défaut il s effectue de manière croissante. Un tri peut se faire sur plusieurs attributs au lieu d un seul. Auquel cas, s il y a égalité des valeurs pour le premier attribut de la liste, c est le deuxième qui décide, et ainsi de suite La mise à jour L insertion de nouveaux n-uplets INSERT INTO <relation> [(<liste d attributs>)] VALUES (<liste de valeurs>); avec : <liste de valeurs> ::= <liste de valeurs> ::= <valeur> <valeur>,<liste de valeurs> Les attributs qui ne figurent pas dans la liste se voient affecter la valeur NULL ; il faut que ces attributs n aient pas reçu à leur création le trait NOT NULL. Si la liste d attributs est omise, il faut que les valeurs correspondent aux attributs de la relation telle qu elle a été définie par CREATE, et dans l ordre. Il faut en particulier qu il y ait une compatibilité de types. L instruction INSERT peut également être utilisée afin d initialiser une nouvelle relation (déjà créée) ou d y ajouter de nouveaux n-uplets, à partir d une ou plusieurs autres relations, de la manière qui suit : INSERT INTO <relation> <instruction SELECT>; La suppression de n-uplets DELETE FROM <relation> 17

18 WHERE <condition>; On supprime de la relation tous les n-uplets qui vérfient la condition La modification de n-uplets UPDATE R SET A i1 = E 1,..., A ik = E k WHERE Ψ; Pour chaque n-uplet de la relation R qui vérifie Ψ et pour tout j, l attribut A ij la valeur définie par l expression E j. prend 18

19 4 La conception des bases de données 4.1 Le schéma entité/association Une façon de construire une base de données consiste à commencer par décrire la réalité à représenter sous la forme abstraite d entités et d associations entre ces entités. Ce qui se traduit ensuite sous la forme de relations Les entités On commence par déterminer quelles sont les entités (cf. ci-dessus en 2.1.1). Ces entités possèdent des attributs, dont certains (qui forment les clés) permettent de les distinguer les unes des autres (ce qui est toujours possible puisque les entités sont distinguables) Les associations On cherche quelles sont les associations qui lient les entités introduites. Il existe des associations un à plusieurs (1 : n) (un homme peut être le père de plusieurs enfants, mais un enfant ne peut avoir qu un père), et des associations plusieurs à plusieurs (n : m) (un professeur peut être l enseignant de plusieurs étudiants, et un étudiant peut avoir plusieurs enseignants). Ces associations sont schématisées de la manière suivante : A B (asssociation un à plusieurs de A à B) ; A B (asssociation plusieurs à plusieurs de A à B). Certaines associations peuvent recevoir des attributs qui leur sont propres. Par exemple l association (professeur, étudiant) peut recevoir l attribut enseignement (qui indique quel est le cours du professeur suivi par l étudiant). Cela n est intéressant que pour les associations plusieurs à plusieurs. On évite les associations liant plus de deux entités. Si on est tenté de le faire, on remplace cette association par une nouvelle entité, qui va être liée par des associations binaires (un à plusieurs) à chacune des entités considérées primitivement. Il n y a donc pas de règle absolue pour déterminer ce qui doit être représenté sous la forme d une entité et ce qui doit être représenté sous la forme d une association. Les critères à adopter sont les suivants : (1) rester le plus simple possible ; 19

20 (2) éviter les associations compliquées ; (3) éviter (absolument) les redondances, qui pourraient conduire à des incohérences ; (4) ne pas mélanger dans une même entité des concepts différents La traduction en base de données (1) Chaque entité donne lieu à une relation distincte, avec de préférence une clé (primaire) par relation. (2) Pour chaque association un à plusieurs de A à B, la clé de A devient un (ou plusieurs) attribut(s) de B, le nom des attributs pouvant être changé. Les attributs de A dans B forment une clé étrangère. (3) Pour chaque association plusieurs à plusieurs de A à B, on crée une relation AB, la clé étant constituée par l union des deux clés de A et B. Éventuellement on ajoute d autres attributs, les attributs de l association. 4.2 Les dépendances fonctionnelles Définitions Soit U un ensemble d attributs. On définit une dépendance fonctionnelle sur U par deux sous-ensembles non vides X et Y de U. On dit que Y dépend fonctionnellement de X, et on écrit : X Y X sera la partie gauche de la dépendance, Y en sera la partie droite. Dans les parties droites comme dans les parties gauches des dépendances fonctionnelles on notera A 1... A n pour {A 1,..., A n }, XY pour X Y et XA (ou AX) pour X {A}. Soit R une relation de schéma R(A 1,..., A n ), et soient X et Y des sous-ensembles de {A 1,..., A n }. On dira que la relation R satisfait la dépendance fonctionnelle X Y si pour toute instance de R et pour tout jeu de valeurs associé aux attributs de X, il y a au maximum un jeu de valeurs associé aux attributs de Y. On ne peut déterminer les dépendances fonctionnelles qu en référence à la réalité que l on veut décrire Clés Soit R une relation de schéma R(A 1,..., A n ) dont X est une clé. Pour tout sousensemble Y de {A 1,..., A N }, R va satisfaire la dépendance fonctionnelle X Y. 20

21 Inversement, supposons que la relation R satisfait les dépendances d un ensemble F. Par définition, une clé (candidate) de R sera un sous-ensemble X de {A 1,..., A n } vérifiant : (i) X A 1... A n est une dépendance satisfaite par R ; (ii) il n y a pas de sous-ensemble strict Y de X tel que Y A 1... A n soit une dépendance satisfaite par R. Si X vérifie uniquement la condition (i), on dira que c est une sur-clé de la relation. 4.3 Décompositions Définitions Etant donné un ensemble d attributs X = {A 1,..., A n }, une collection d ensembles ρ = X 1,..., X p est une décomposition de X si X 1 X p = X. ρ définit une décomposition R 1,... R p de toute relation R de schéma R(A 1,..., A n ) en prenant, pour tout i, R i = Π Xi (R) Décomposition sans perte d information La décomposition ρ = X 1,..., X p est sans perte d information pour R si on a : R = Π X1 (R) Π Xp (R) Soient X = {A 1,..., A n } un ensemble d attributs, ρ = X 1,..., X p une décomposition de X et F un ensemble de dépendances fonctionnelles. On dit que ρ conserve l information relativement à F si, pour toute relation R qui satisfait toutes les dépendances de F, la décomposition de R selon ρ vérifie la condition de conservation de l information Décompositions qui conservent les dépendances Les dépendances fonctionnelles expriment certaines contraintes que les relations doivent vérifier. Si ces dépendances sont perdues par une décomposition, il se peut que les contraintes ne soient plus vérifiées. La projection d un ensemble F de dépendances fonctionnelles sur un ensemble d attributs Z est l ensemble Π Z (F) réduit aux dépendances qui ne mettent en jeu que des attributs de Z. 21

22 Une décomposition ρ = X 1,..., X p conserve un ensemble de dépendances fonctionnelles F si l union i {1,...,p} Π Xi (F) des projections sur les ensembles X 1,..., X p revient à l ensemble F. 4.4 Formes normales Introduction La construction du schéma d une base de données relationnelle doit se plier aux exigences suivantes : - éviter les redondances, - ne pas risquer d introduire des incohérences ou des pertes d informations à la mise à jour. Il faut par ailleurs que les requêtes ne soient pas trop coûteuses en temps Première forme normale À chaque attribut est associé une valeur atomique, c est-à-dire une valeur qui n est pas composée de plusieurs éléments. Les valeurs contenues dans la base ne doivent pas être susceptibles de changer dans le temps sans que cela résulte de l intervention d un utilisateur (par exemple l âge d une personne ne peut être un attribut) Deuxième forme normale Si une relation comporte une clé primaire composée, il faut que tous les attributs nonclés dépendent fonctionnellement de la totalité de la clé primaire. S il n en est pas ainsi : - on regroupe les attributs dépendant de la totalité de la clé primaire dans une relation (qui conserve cette clé) ; - pour chaque partie de la clé primaire dont dépendent fonctionnellement d autres attributs, on crée une nouvelle relation qui regroupe la partie de la clé primaire et les attributs qui en dépendent. La clé de cette nouvelle relation est la partie de la clé de la relation d origine Troisième forme normale Une relation est dite sous la troisième forme normale (3NF : 3rd Normal Form) si tout attribut qui ne fait pas partie de la clé : - dépend fonctionnellement de la totalité de la clé ; - ne dépend d aucun attribut qui ne fait pas partie de la clé. 22

23 S il n en est pas ainsi, supposons un attribut A (qui dépend nécessairement de la clé X) qui n appartient pas à la clé, et un ensemble Y d attributs qui dépendent de A. En ce cas on décompose la relation selon les ensembles XA et AY Forme normale de Boyce-Codd Soient R une relation de schéma R(A 1,..., A n ) et F l ensemble des dépendances fonctionnelles satisfaites par la relation. La relation est sous forme normale de Boyce-Codd (BCNF : Boyce-Codd Normal Form) si toute dépendance X A vérifiée par la relation est telle que X est une clé (ou une sur-clé) de R. 23

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

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

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

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

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

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

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

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

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

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants ÉPREUVE E5 : ANALYSE DE GESTION ET ORGANISATION DU SYSTÈME D INFORMATION Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants Page de garde... p 1 Présentation de l entreprise...

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

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Les BASES de DONNEES dans WampServer

Les BASES de DONNEES dans WampServer Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui

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

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

Plus en détail

Chapitre 1 Généralités sur les bases de données

Chapitre 1 Généralités sur les bases de données Chapitre 1 Généralités sur les bases de données I. Définition d un SGBD Une base de données, généralement appelée BD est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

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

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

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

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

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

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

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

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 Outils de gestion

Bases de données Outils de gestion 11/03/2010 Bases de données Outils de gestion Mise en place d outils pour gérer, stocker et utiliser les informations d une recherche biomédicale ent réalisé par L. QUINQUIS d épidémiologie et de biostatistique

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

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

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

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

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR Système de Gestion de Bases de Données Relationnelles MySQL Youssef CHAHIR 1 PLAN Introduction Démarrer MySQL Syntaxe de MySQL Types des attributs Identificateurs Effectuer des requêtes Fonctions de MySQL

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

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

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

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentué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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

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

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles Cours SGBD 1 Concepts et langages des Bases de Données Relationnelles SUPPORT DE COURS IUT de Nice Département INFORMATIQUE IUT de Nice - Cours SGBD1 1 Plan Chapitre 1 Chapitre 2 Chapitre 3 Chapitre 4

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

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre

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

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

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

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

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

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

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

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

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

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

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

Année Universitaire 2009/2010 Session 2 de Printemps

Année Universitaire 2009/2010 Session 2 de Printemps Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure

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

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche (sebastien@nameche.fr)

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche (sebastien@nameche.fr) Support de cours Introduction à SQL et MySQL 2003, Sébastien Namèche (sebastien@nameche.fr) Licence de Libre Diffusion des Documents -- LLDD version 1 (Par Bernard Lang, http://pauillac.inria.fr/~lang/licence/lldd.html)

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

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013

BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 TS2 CGO 7 mars 2013 2 heures Aucun document autorisé Calculatrice autorisée Nota : Il vous est demandé d apporter un soin particulier à la présentation de

Plus en détail