Gestion de base de données

January 8, 2018 | Author: Anonymous | Category: Ingénierie, Informatique, Databases
Share Embed Donate


Short Description

Download Gestion de base de données...

Description

CESI

Gestion de base de données Prosit 1 SCHMITT Mathieu

2008

EXIA

Prosit 1

CER SCHMITT Mathieu

Objectifs : - Découvrir Access et la BD.

Définitions des mots-clés : Access : Microsoft Access ou MS Access (officiellement Microsoft Office Access) est un système de gestion de base de données relationnelles éditée par Microsoft. MS Access est un logiciel utilisant des fichiers au format Access (mdb - Microsoft DataBase). Il est compatible avec les requêtes SQL (sous certaines restrictions) et dispose d'une interface graphique pour saisir les requêtes (QBE - Query By Example).

BD : Une base de données, usuellement abrégée en BD ou BDD, est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données). Une base de données se traduit physiquement par un ensemble de fichiers présent sur une mémoire de masse (bien souvent un disque). Certaines peuvent être accessibles via les réseaux, on parle alors de base de données en ligne.

SGBD

Page 2

Prosit 1

CER SCHMITT Mathieu

.MDB : Microsoft Data Base. C’est donc un format de fichier d’Access.

SGBD : La gestion et l'accès à une base de données sont assurés par un ensemble de programmes qui constituent le Système de gestion de base de données (SGBD). Un système de gestion de base de données héberge généralement plusieurs bases de données, qui sont destinées à des logiciels ou des thématiques différentes. On distingue couramment les SGBD classiques, les SGBD-R ou SGBD relationnels, les SGBD-O Orienté objet.

Table : Dans les bases de données relationnelles, une table est un ensemble de données (les valeurs) organisé selon un modèle de lignes (horizontales) et de colonnes (verticales). Chaque table est l'implémentation physique d'une relation entre les différents champs. Chaque correspondance est définie par une ligne de la table, et les valeurs d'un champ sont dans une même colonne.

Modèle relationnel : Le modèle relationnel est une manière de modéliser les informations contenues dans une base de données qui repose sur des principes mathématiques inventés par E.F. Codd. Ce qu'on appelle relation est un ensemble d'attributs qui définissent un fait - par exemple qu'un employé a un matricule donné, que son nom est untel, qu'il travaille dans tel service et a été embauché à telle date. Chaque instance est appelée un tuple. Les relations sont d'ordinaire représentées sous forme tabulaire, et l'on confond table et relation; on confond de même, ligne dans la table et tuple. Par définition, chaque tuple d'une relation est unique, et est identifié par un ou une combinaison de plusieurs attributs qui forme la clef. L'ordre des tuples est non significatif.

Cardinalité : La cardinalité ou multiplicité dans les schémas relationnels en modélisation des données, sert à compter le nombre minimum et maximum de possibilités que chaque classe contient dans la relation liant 2 ou plusieurs objets. Cette notion est utilisée par la modélisation Merise et UML. Avec UML par exemple, si une classe Client peut avoir de 0 à 2 adresses, on parle d'une cardinalité 0..2.

SGBD

Page 3

Prosit 1

CER SCHMITT Mathieu

Requête : Une requête correspond à l'interrogation d'une base pour en récupérer une certaine partie des données.

Axes de recherches

Préambule Bases de données : A quoi ça sert ? Les bases de données constituent la version informatique des fichiers (au sens originel : "tiroir de fiches") sur papier. Informatiser un fichier comporte de nombreux avantages par rapport au fichier papier : 

Gain de place : des armoires complètes peuvent être stockées sur le disque dur d'un ordinateur (c'est aussi un point de fragilité car il est beaucoup plus rapide et souvent irréversible de détruire un disque dur qu'une armoire pleine de dossiers).



La présentation des informations est séparée des informations elles-mêmes, ce qui permet, à partir du même fichier, d'imprimer des courriers personnalisés, des étiquettes, des fiches, toutes sortes de listes.



L'ordre de classement d'un fichier informatique peut être très facilement changé ; on peut ainsi, classer un fichier "livres" au choix, par titre, par auteur, par éditeur, par thème... et passer d'un classement à l'autre aussi souvent que nécessaire.



On peut très rapidement extraire du fichier informatique des fiches répondant à un ou plusieurs critères.

De plus, et c'est le pourquoi du terme " Relationnelles", les bases de données permettent de mettre en relation plusieurs fichiers ; par exemple, on pourra relier le fichier "Clients" avec le fichier "Commandes", évitant ainsi de faire figurer sur chaque fiche de commande l'ensemble des informations concernant le client auquel elle se rapporte. Ceci permet, outre le gain de place permis par la suppression des informations en double, de rendre plus fiables les informations (moins de transcriptions à effectuer) et de centraliser les informations d'un client sur une seule fiche (si le client change d'adresse, la transcription des modifications sur sa fiche opérera pour toutes ses commandes, puisque toutes sont liées à une seule fiche client).

SGBD

Page 4

Prosit 1

CER SCHMITT Mathieu

Créer/manipuler des données sous Access Nom d’objet : On prendra soin de définir des noms de 25 caractères maximum, sans caractères accentués ni signes de ponctuation ni espaces. Requête : Les délimiteurs utilisés en fonction des types de données sont les suivants :

Valeur "null" Quand on veut rechercher des enregistrements dont un champ ne contient pas de valeur, on formule un critère en utilisant le mot clé "Null" ; la valeur "Null" correspond à l'absence de valeur dans le champ Critères d'égalité avec une valeur Sur la grille de requête en mode création, c'est bien entendu la ligne "Critère" qui va permettre de déterminer les conditions d'extraction des données. Si l'on veut obtenir les enregistrements dont un champ correspond à une valeur déterminée, il suffit de saisir cette valeur dans la colonne du champ, sur la ligne "Critère" :

SGBD

Page 5

Prosit 1

CER SCHMITT Mathieu

Si on ne veut obtenir que les enregistrements dont le champ "Ville" contient la valeur "ANTONY", on saisit cette valeur sur la ligne "Critère" ; Access ne fait pas la différence entre les majuscules et les minuscules.

Inégalités Pour rechercher une inégalité avec une valeur, on pourra utiliser "" ou le mot clé "Pas" :

Toutes les villes, sauf "ANTONY"

SGBD

Page 6

Prosit 1

CER SCHMITT Mathieu

Tous les stagiaires qui ont une deuxième ligne d'adresse

Autres opérateurs de comparaison Voici les opérateurs qui peuvent être utilisés dans les critères :

SGBD

Page 7

Prosit 1

CER SCHMITT Mathieu

Comparer avec des expressions Il n'est pas toujours pertinent de formuler des critères avec des valeurs en dur ; en fonction des résultats à obtenir, on peut avoir besoin de faire référence à des valeurs plus complexes, voire qui changent en fonction d'autres valeurs. On peut utiliser dans ce cas des expressions de calcul dans les critères. Au moment de la comparaison, Access effectuera le calcul et utilisera le résultat en tant que critère.

SGBD

Page 8

Prosit 1

CER SCHMITT Mathieu

Je souhaite obtenir tous les stagiaires âgés de 40 ans au moins ; je ne peux pas utiliser une valeur fixe comme critère, dans la mesure où le résultat sera différent en fonction du jour où je lancerai cette requête. Il faut en fait que j'utilise la date système de l'ordinateur (on l'obtient avec la fonction "Date()" ) pour la comparer avec celle des stagiaires le jour de l'exécution de la requête. Il me faut donc calculer quelle est la date de naissance de quelqu'un dont l'anniversaire des 40 ans tomberait aujourd'hui (date()) et formuler un critère sur le champ "DateNaisSta" pour ne retenir que les stagiaires pour lesquels ce champ est inférieur ou égal à cette date calculée. Pour calculer la date de naissance des "quadragénaires du jour", il me suffit de soustraire 40 fois 365 jours (pour les "maniaques" qui veulent tenir compte des années bissextiles, on prendrait 365,25) de la date du jour ; d'ou le critère ainsi formulé dans le champ "DatNaisSta" : " 30) et non plus sur la date de naissance ; si vous avez absolument besoin de formuler un critère sur la date de naissance, il faut la placer dans une colonne de la grille de requête (quitte à ne pas l'afficher) et formuler votre critère sur cette colonne. Les calculs sur les groupes

Nous avons donc vu une première illustration de l'utilisation des regroupements dans une requête, simplement en faisant appraître la ligne "Opération". Nous allons voir maintenant quelles sont les opérations que l'on peut faire sur chaque groupe d'enregistrements de la table source. Plaçons-nous dans la cellule "Opération" du champ "VilleStag" ; on voit apparaître une petite flèche de liste, indiquant qu'on va pouvoir ici choisir une option parmi une liste limitative :

SGBD

Page 13

Prosit 1

CER SCHMITT Mathieu

Les différentes opérations possibles sont les suivantes : 

Somme : applicable seulement à des champs numériques ; pour chaque groupe d'enregistrements, fait la somme des valeurs contenues dans le champ.



Moyenne : concerne également seulement des champs numériques ; fait la moyenne de la valeur du champ pour le groupe d'enregistrements.



Min : retourne la plus petite valeur contenue dans le champ, pour le groupe d'enregistrements.



Max : idem, pour la plus grande valeur.



Compte : compte les enregistrements du groupe pour lesquels la valeur du champ n'est pas nulle ; si on veut compter les enregistrements quelque soient les valeurs contenues dans leurs champs, il faut donc choisir pour le comptage un champ dont la valeur ne peut pas être nulle.



EcartType : champs numériques seulement ; calcule l'écart type des valeurs contenues dans le champ pour le groupe d'enregistrements.



Var (variance) : champs numériques seulement ; calcule la variance des valeurs contenues dans le champ pour le groupe d'enregistrements.



Premier : retourne la valeur de ce champ dans le premier enregistrement du groupe.



Dernier : idem pour le dernier enregistrement du groupe.

Nous verrons ultérieurement le rôle des deux derniers opérateurs de la liste : "Où" et "Expression".

SGBD

Page 14

Prosit 1

CER SCHMITT Mathieu

Etudier la structure d’une base de données. Quelques notions :

Légende : - Un fichier de données est appelé "Table" - Chaque fiche portant des informations est appelé "Enregistrement" - Les cases qui contiennent les informations sont appelées "Champs" - Le modèle du formulaire, constitué par les cases, leurs légendes, leurs tailles est appelé "Structure" de la table Une Table est caractérisée par sa structure ; celle-ci définit la liste des champs, le nom de chacun d'eux, son type (un champ est destiné à recevoir un type de données comme, par exemple, du texte, ou une valeur numérique, ou une date...), sa taille... Chacun des enregistrements de la table peut ainsi contenir une valeur dans chaque champ. Voici une table sous Access :

SGBD

Page 15

Prosit 1

SGBD

CER SCHMITT Mathieu

Page 16

Prosit 1

CER SCHMITT Mathieu

Etudier le modèle relationnel Qu'est-ce que le modèle relationnel ?

Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire l'algèbre relationnelle. Elle est constituée d'un ensemble d'opérations formelles sur les relations. Les opérations relationnelles permettent de créer une nouvelle relation (table) à partir d'opérations élémentaires sur d'autres tables (par exemple l'union, l'intersection, ou encore la différence). La théorie des ensembles met en oeuvre deux notions : 

la notion de domaine



la notion de produit cartésien

La notion de domaine

Un domaine est un ensemble fini ou infini de valeurs. On le représente par une liste d'éléments ou bien une condition nécessaire et suffisante d'appartenance : 

le domaine des booléens: {0,1}



le domaine des doigts de la main: {pouce, index, majeur, annulaire, auriculaire}



...

La notion de produit cartésien

La manipulation des données (sélection de valeurs) se fait suivant la notion mathématique de produit cartésien. Le produit cartésien d'un ensemble de domaines Di, noté D1*D2*D3*...*Dn est l'ensemble des n-uplets (appelés aussi tuples) tels que Vi appartient à Di

SGBD

Page 17

Prosit 1

CER SCHMITT Mathieu

Modélisation relationnelle La modélisation relationnelle permet de représenter les relations à l'aide de tables (à deux dimensions) dont chaque colonne a un identificateur qui représente un domaine. Une ligne du tableau représente donc une entité et chacune des cases représente un de ses attributs. On appelle attributs le nom des colonnes qui représentent les constituants de l'entité. Un attribut (une colonne) est repéré par un nom et un domaine de définition, c'est-à-dire l'ensemble des valeurs qu'il peut prendre. On appelle tuple (ou n-uplet) une ligne du tableau. L'entité voiture pourra par exemple être représentée par : 

La marque



Le modèle



La série



La plaque minéralogique

La cardinalité d'une relation est le nombre de tuples qui la composent. Dans l'exemple ci-dessus la cardinalité est égale à 3. La clé principale d'une relation est l'attribut, ou l'ensemble d'attributs, permettant de désigner de façon unique un tuple. Dans l'exemple ci-dessus, le numéro de la plaque minéralogique est une clé principale dans la mesure où la seule connaissance de cet attribut permet de connaître la voiture. Une clé étrangère, par contre, est une clé (donc un attribut permettant d'identifier de façon unique un tuple) faisant référence à une clé appartenant à une autre table. La description d'une relation (d'une table) par ses attributs (nom et domaine) est appelée schéma d'une relation. On désigne par le terme schéma d'une base de données relationnelle l'ensemble des relations qui la composent.

SGBD

Page 18

Prosit 1

CER SCHMITT Mathieu

La manipulation des éléments de la table se fait à l'aide d'opérations sur les ensembles. On définit deux types d'opérations de base : 

Les opérations unaires



les opérations ensemblistes

Opérations de base Une opération de base est définie par le fait qu'elle ne peut être réalisée par combinaison d'autres opérations. Il existe 5 opérations élémentaires pouvant être classées en deux catégories : 

Les opérations unaires: elles consistent à éliminer des lignes ou des colonnes de la table



les opérations ensemblistes: elles consistent à effectuer un recoupement entre plusieurs tables

Opérations unaires Projection

L'opérateur projection consiste à créer une table à partir d'une autre en ne gardant que les colonnes spécifiées dans la projection. On note une projection : projX1,X2,...,XN(R)

Où X1,X2, ..., XN représentent les colonnes que l'on garde Restriction (ou sélection)

L'opérateur restriction consiste à créer une table à partir d'une autre en ne gardant que les lignes pour lesquelles une colonne vérifie certaines propriétés. On note une restriction : selectQ(R)

Où Q représente la qualification, c'est-à-dire la condition à réaliser

Opérations ensemblistes Union L'union de deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à l'une ou l'autre des tables (ou les deux). Les deux tables opérandes doivent être de même schéma, c'est-àdire que les attributs de la table (colonnes) doivent être les mêmes. On note l'union entre deux tables R1 et R2 : union(R1,R2) ou encore R1 U R2 SGBD

Page 19

Prosit 1

CER SCHMITT Mathieu

Différence La différence entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à une table mais pas à la seconde. Les deux tables opérandes doivent être de même schéma, c'est-àdire que les attributs de la table (colonnes) doivent être les mêmes. On note la différence entre deux tables R1 et R2 : minus(R1,R2) ou encore R1 - R2 Produit cartésien Le produit cartésien de deux tables est la table contenant la concaténation de l'ensemble des tuples d'une ligne d'une table à ceux de l'autre table, et ce pour chaque ligne. Les deux tables opérandes n'ont pas nécessairement le même schéma On note le produit cartésien de deux tables R1 et R2 : product(R1,R2) ou encore R1 * R2

Opérations dérivées A partir des opérations de base de nombreuses opérations très utiles peuvent être définies. En voici quelques unes : Intersection L'intersection entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant aux deux tables. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note l'intersection entre deux tables R1 et R2 : inter(R1,R2) ou encore R1

R2

Cet opérateur peut être décrit à l'aide d'opérateurs de base : R1

R2 = R1 - (R1 - R2)

Quotient (ou division) Le quotient de deux tables est la table contenant l'ensemble des tuples (cellules) qui concaténés à chaque tuple de l'une des tables fournissent des tuples appartenant à l'autre On note le quotient de deux tables R1 et R2 : div(R1,R2) SGBD

Page 20

Prosit 1

CER SCHMITT Mathieu

ou encore R1/R2 θ-jointure On appelle θ-jointure selon une qualification Q l'ensemble des tuples provenant du produit cartésien de deux relations et satisfaisant la qualification, c'est-à-dire la condition exprimée à l'aide des comparateurs : 









>



<



=







¬

On note la θ-jointure de deux tables R1 et R2 : joinQ(R1,R2) ou encore (R1

Q)R2

On définit des types de jointure particulière selon la qualification Q :



L'équi-jointure est une θ-jointure dont la qualification est une égalité entre deux colonnes



La jointure naturelle est une équi-jointure sur des attributs de même nom associée à une projection. Elle se note R1

R2

Opérations calculatoires

Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois nécessaires) que les autres opérateurs ne peuvent pas réaliser.

SGBD

Page 21

Prosit 1

CER SCHMITT Mathieu

Opérateur Somme

Cet opérateur permet de faire la somme cumulée des valeurs que l'attribut X prend pour une liste d'attributs appelés attributs de regroupement. Les valeurs de X doivent bien évidemment être numériques. Lorsqu'aucun attribut de regroupement n'est précisé, l'opérateur Somme renvoie la somme des valeurs de la colonne. On note cet opérateur : SommeX1,X2,...,Xn(R,X)

ou avec la notation anglaise SumX1,X2,...,Xn(R,X)

Opérateur de comptage

Cet opérateur permet de compter le nombre de lignes pour lesquelles l'attribut fait partie d'une liste d'attributs appelés attributs de regroupement. Lorsqu'aucun attribut de regroupement n'est précisé l'opérateur compte le nombre de tuples de la colonne. On note cet opérateur : CompteX1,X2,...,Xn(R,X)

ou avec la notation anglaise CountX1,X2,...,Xn(R,X)

Réponses aux hypothèses : Faux. Les données sont stockées dans une SGBD. Vrai. Access est un type SGBD. Faux. Merise est le précurseur de la BD. Vrai. .mdb est l’extension des fichiers access. Vrai. Une BD est découpé en table. Vrai. Les tables sont liées entre elles avec des cardinalités. Vrai. On utilisera des requêtes pour obtenir les données. Vrai. Access permet de créer une base données BD. Faux. Les données sont stockées sous forme de tableau.

SGBD

Page 22

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF