Introduction aux Bases de Donn©es Relationnelles - .donn©es en utilisant la norme SQL et le syst¨me

  • View
    219

  • Download
    1

Embed Size (px)

Text of Introduction aux Bases de Donn©es Relationnelles - .donn©es en utilisant la norme SQL et...

  • Dfinition 16/03/2017 23:40:00 Anne 2015-2016

    Thierry MILLAN 1/46 Bases de Donnes

    Introduction aux Bases de Donnes

    Relationnelles

    Ce cours a pour objectif de montrer le processus qui couvre les phases de conception

    et de mise en uvre de la base de donnes. Lors de chaque cours, les 90 premires minutes

    seront consacres la conception de la base de donnes partir de schmas entits

    associations. Les 90 minutes restantes nous permettrons d'aborder l'implantation de la base de

    donnes en utilisant la norme SQL et le systme de gestion de bases de donnes Oracle.

    1- Quest-ce quune application bases de donnes

    Ce sont des applications o laspect donnes est primordial :

    - Volume de donnes important ; - Trs grande varit des donnes ; - Persistance des donnes ; - Echange de donnes entre applications ; - Aspect multi-utilisateur ; - Application de trs nombreux domaines dactivit ; - Trs grande varit dutilisateurs autour dune application BD ; -

    Les rseaux informatiques (WEB), les interfaces graphiques font des bases de donnes

    un sujet dactualit trs important car il faut assurer la gestion de trs gros volumes de

    donnes, laccs aux bases de donnes 24 h / 24, la gestion dun trs grand nombre

    dutilisateurs demandant des accs en mme temps. Les applications bases de donnes ne sont

    donc plus limites des applications de gestion : on trouve des bases de donnes dans

    pratiquement tous les secteurs dactivits (transport, aronautique, espace, mdecine,

    pharmacie, ).

    2- Le modle relationnel

    2.1- Dfinition

    Le modle relationnel est invent par CODD l'Universit de San-Jos en 1970. C'est

    un modle issu des Mathmatiques. Malgr leurs bases mathmatiques, les bases de donnes

    relationnelles n'apparaissent commercialement qu'au dbut des annes 80.

    Le modle relationnel est bas sur la notion de relation. Une relation est un sous-

    ensemble du produit cartsien de diffrents domaines. Chaque lment de ce sous-ensemble

    est appel un n-uples. Pour identifier les diffrents domaines, il est possible de les nommer.

    Ce nom est appel l'attribut.

    Exemple : Soit les deux domaines suivants :

    nom = {Dupont, Durant, Dulong}

    ge = {18, 19}

    nom et ge sont les attributs.

    On dsire reprsenter les informations suivantes :

    Dupont, 18 ans

    Dulong, 19 ans

    Durant, 18 ans

  • Le langage SQL (Structured Query Language) Anne 2015-2016

    Thierry MILLAN 2/46 Bases de Donnes

    Soit le produit cartsien entre nom et ge :

    Nom ge

    Dupont 18

    Durant 18

    Dulong 18

    Dupont 19

    Durant 19

    Dulong 19

    En gris, on a la relation. Chaque ligne grise est un n-uplet.

    2.2- Lalgbre relationnelle

    Afin de manipuler ces relations, il a t dfini un ensemble doprateurs constituant

    une algbre. Lapplication dun oprateur produit une nouvelle relation. Cette proprit a

    permis de construire des langages de manipulation de donnes. On distingue les oprateurs

    suivants :

    ensemblistes : union, intersection, diffrence, produit cartsien ;

    spcifiques : projection, slection, jointure, division ;

    agrgation.

    Une partie du langage SQL est une mise en uvre de ces oprateurs. Nous verrons

    dans la suite lors de la prsentation des oprateurs SQL leur reprsentation en algbre

    relationnelle.

    2.3- Le langage SQL (Structured Query Language)

    C'est un langage cr dans les annes 80 par IBM. Il est de type ensembliste mais il

    inclut des oprations permettant de rduire le nombre de donnes manipules verticalement

    et/ou horizontalement. La projection permet la rduction verticale par diminution du nombre

    dattributs manipuls. La slection permet la rduction horizontale par diminution du nombre

    de n-uplets manipuls. La projection et la slection sont deux lments essentiels pour

    loptimisation de lexcution des requtes.

    Le langage SQL se dcline sous la forme de deux sous-ensembles : le langage de

    dfinition de donnes ou LDD et le langage de manipulation de donnes ou LMD.

    Le langage de dfinition de donnes permet de dfinir et de manipuler les relations au

    sein de la base de donnes.

    Le langage de manipulation permet d'accder, d'insrer, modifier et de supprimer des

    donnes dans la base.

  • Le Langage de Dfinition de Donnes : manipulation des relations Anne 2015-2016

    Thierry MILLAN 3/46 Bases de Donnes

    Relation

    Donnes

    Optimisation physique

    au niveau de la structure

    Optimisation au niveau des

    requtes et des traitements

    Langage de Dfinition de

    Donnes (LDD)

    Langage de Manipulation

    de Donnes (LMD)

    2.4- Le Langage de Dfinition de Donnes : manipulation des relations

    2.4.1- Les attributs

    Chaque domaine identifi par un attribut possde un type. Quatre types sont

    principalement utiliss :

    char(n) : chane de caractres de longueur fixe n. Par exemple : le code postal est cod sur 5 caractres, un numro de tlphone

    est compos de 10 chiffres. Attention, il ne faut pas confondre le chiffre 09000

    et la chane de caractres 09000. Pour un code postal, il est impensable de

    pouvoir faire des calculs comme on le ferait sur un nombre ;

    varchar2(n) : chane de caractres de longueur variable dau maximum n ; number(n, m) : numrique n chiffres dont m dcimales ; date : comme son nom l'indique, ce type reprsente les dates et les heures.

    Le systme Oracle offre d'autres types dont nous ne parlerons pas dans ce cours. En

    particulier, il offre des types permettant de stocker des donnes binaires (images, textes

    utilisant des caractres nationaux, ...).

    2.4.2- Cration d'une relation

    Pour crer une relation, il existe une seule instruction :

    create table Nom_Relation (

    nom_attribut_1 type1 [default valeur1],

    nom_attribut_2 type2 [default valeur2],

    ...) ;

    Exemple : crer une relation Personne . Une personne est caractrise par son nom, son

    prnom, son adresse, sa date de naissance et son code postal.

    create table Personne (

    nom varchar2(20),

    prenom varchar2(20),

    adresse varchar2(100),

    code_postal char(5),

    date_naissance date);

    Exemple : crer une relation Voiture . Une voiture est caractrise par sa marque, sa

    couleur, son numro d'immatriculation et son prix.

    create table Voiture (

    marque varchar2(10),

  • Le Langage de Manipulation de Donnes : manipulation des donnes Anne 2015-2016

    Thierry MILLAN 4/46 Bases de Donnes

    couleur varchar2(10),

    immatriculation char(8),

    prix number(9,2));

    2.4.3- Modification d'une relation

    Il est possible de modifier la structure d'une relation. En particulier, il est possible

    dajouter ou modifier ou supprimer :

    des attributs ; la valeur par dfaut d'un attribut ; des contraintes sur des attributs ; des contraintes sur la relation.

    Pour le moment, nous ne prendrons pas en compte les contraintes.

    Attention : toute modification dune relation est irrmdiable et ne peut pas tre annule.

    Ajout d'attributs :

    alter table nom_relation

    add (nom_attribut_1 type1 [default valeur1],

    nom_attribut_2 type2 [default valeur2], ...) ;

    Modification d'attributs :

    alter table nom_relation

    modify (nom_attribut_1 type1 [default valeur1],

    nom_attribut_2 type2 [default valeur2], ...) ;

    Exemple : ajouter la relation Voiture l'attribut prop contenant le nom du propritaire

    de la voiture

    alter table Voiture

    add ( prop varchar2(20)) ;

    Exemple : modifier l'attribut code_postal de la relation Personne pour que par dfaut

    la valeur du code postal soit 31000.

    alter table Personne

    modify (code_postal char(5) default '3100');

    2.4.4- Destruction d'une relation

    La commande permettant de dtruire une relation est :

    drop table nom_relation ;

    Attention : la destruction dune relation implique de facto la destruction des donnes quelle

    contient. Cette opration est irrversible.

    2.5- Le Langage de Manipulation de Donnes : manipulation des donnes

    Attention : toute modification du contenu dune relation est rversible et peut tre annule

    dans le cadre des transactions

    2.5.1- Insertion de donnes

    L'insertion de donnes se fait par l'instruction :

    insert into nom_relation (nom_att1, nom_att2, ... , nom_attn) values

    (val_att1, val_att2, ..., val_attn) ;

  • Le Langage de Manipulation de Donnes : manipulation des donnes Anne 2015-2016

    Thierry MILLAN 5/46 Bases de Donnes

    Le nom des attributs est optionnel si on fournit une valeur chaque attribut de la

    relation nom_relation .

    La valeur null

    La valeur null est une valeur spcifique en SQL qui est commune tous les types.

    Elle reprsente un attribut sans valeur connue et est manipule avec des oprateurs

    spcifiques.

    Exemple : insrer dans la relation Personne les n-uples suivants :

    Dupont Jean 12, rue des Lilas 31000 12/12/1941

    Dulong Louis 11/11/1960

    insert into Personne

    values ('Dupont', 'Jean', '12, rue des Lilas', '31000', '12/12/1941') ;

    insert into Personne values ('Dulong', 'Louis', null, null, '11/11/1960) ;

    insert into Personne (date_naissance, nom, prenom)

    values ('11/11/1960, 'Dulong', 'Louis') ;

    2.5.2- Consultation et accs aux donnes

    C'est la partie la plus