La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GESTION DES BASES DE DONNÉES Prof. Ouadoudi Zytoune 2016/2017ENCG-K.

Présentations similaires


Présentation au sujet: "GESTION DES BASES DE DONNÉES Prof. Ouadoudi Zytoune 2016/2017ENCG-K."— Transcription de la présentation:

1 GESTION DES BASES DE DONNÉES Prof. Ouadoudi Zytoune 2016/2017ENCG-K

2 Bases de données omniprésentes 2

3 Gestion de Bases de données 3  Plan de la leçon: 1. Introduction; 2. Définition d’une base de données et d’un SGBD; 3. Différents types de bases de données; 4. Quelques SGBD existants; 5. Modèle relationnel.

4 Introduction: Exemple de gestion d’entreprise 4  Service clients :  Fichier client : code client ; Nom client ; Adresse  Service commercial :  N°commande ;  date de la commande ;  total de la commande ;  code client ;  Nom client ;  Adresse.

5 Introduction 5  Introduction: Deux approches: - Approche Fichiers: données en fonction du traitement  risque d’incohérence; - Approche base de données : intégration des données dans un seul fichier/indépendance des traitements.

6 Introduction: BD/Excel? 6 – Redondance : Données répétées (info client si plusieurs commandes, info produit si plusieurs fois commandé…) – Réécriture Orthographe, perte de temps, mise à jour difficile

7 Définition d’une BD et d’un SGBD 7  Une BD: - Ensemble structuré de données indépendant des traitements à effectuer. - Représente le monde réel. - Interrogée et mise à jour par des utilisateurs.  Un Système de Gestion de BD: - logiciel permettant à un utilisateur d’interagir avec une BD. - Interface entre la BD et les programmes d’applications qui communiquent avec la BD. - Permet: - la définition d'une BD (spécification des types de données à stocker), - la construction d'une BD,(stockage des données) - la manipulation des données (ajouter, supprimer, retrouver des données).

8 Objectifs et avantages 8 Les principales fonctions d’un SGBD: - Indépendance données/programme (indépendance physique); - Indépendance logique; - Intégration des données sans redondance; - Partage de données; - Intégrité des données; - Sécurité des données et confidentialité.

9 Indépendance logique 9  Chaque groupe de travail doit pouvoir se concentrer sur ce qui l’intéresse.  Peut arranger les données comme il souhaite, même si d’autres utilisateurs ont une vue différente.  L’administrateur peut faire évoluer le SI sans remettre en cause l’organisation de chaque groupe de travail.  Exemple: Une base de données contient les informations suivantes:  véhicule(num-véhicule, marque, type, couleur)  personne(num-CIN, nom, prénom)  propriétaire(num-CIN, num-véhicule, date-achat).  Un groupe de travail ne s’intéressera qu’aux individus qui possèdent une voiture : individus(num-CIN, nom, prénom, num-véhicule).  Un autre groupe ne s’intéressera qu’aux véhicules vendus à une certaine date : voiture(num-véhicule, type, marque, date-achat).

10 Non-redondance des Non-redondance des données 10  Le SGBD doit permettre d’éviter la duplication d’informations qui entraine:  la perte de place mémoire,  demande des moyens humains importants pour saisir et maintenir à jour plusieurs fois les mêmes données.

11 Cohérence des données 11  Cohérence obtenue par la vérification des contraintes d’intégrité.  Une contrainte d’intégrité est une contrainte sur les données de la base, qui doit toujours être vérifiée pour assurer la cohérence de cette base.  Les systèmes d’information sont souvent remplis de telles contraintes ; le SGBD doit permettre une gestion automatique de ces contraintes d’intégrité sur les données.  Par exemple :  le salaire doit être positif ;

12 Concurrence d’accès aux données 12  Le SGBD doit permettre à plusieurs personnes (ou applications) d’accéder simultanément aux données tout en conservant l’intégrité de la base.  Chacun doit avoir l’impression qu’il est seul à utiliser les données.

13 Sécurité des données 13  Les données doivent être protégées des accès non autorisés ou mal intentionnés.  Existance des mécanismes permettant d’autoriser, contrôler et enlever des droits d’accès à certaines informations à n’importe quel usager.  Exemple, un chef de service pourra connaître les salaires des personnes qu’il dirige, mais pas de toute l’entreprise.  Le système doit aussi tolérer les pannes : si une panne pendant l’exécution d’une opération, le SGBD doit être capable de revenir à un état dans lequel les données sont cohérentes.  Il en va de même en cas d’échec dans un programme. Le SGBD doit pouvoir revenir à un état cohérent, ce qui est rendu possible par la gestion des transactions.

14 Exercice 14  Indiquer quel est l’utilisateur qui doit exécuter les fonctions suivantes pour un système de paie d’une grande entreprise : Un programmeur, un administrateur ou l’utilisateur final? a) Écrire un programme d’application pour générer et imprimer les chèques. b) Changer dans la base de données l’adresse d’un employé qui a déménagé. c) Créer un nouveau compte d’utilisateur pour un employé nouvellement embauché.

15 Différents types de BD 15 Il existe quatre grands types de bases de données : -Les bases hiérarchiques; -Les bases réseaux; -Les bases relationnelles; -Les bases objets.

16 Modèle relationnel 16  3ème génération 1969-…  les données sont représentées dans des tables  Manipulation suivant les règles mathématiques des ensembles Aujourd’hui, le modèle relationnel est le plus utilisé il occupe environ 75%

17 Bases relationnelles 17  L es petites BD: FileMaker Pro Access FoxPro 4e dimension MySQL Paradox  Les grosses BD Oracle Informix Sybase ProsgreSQL DB2 Ingres (SQLServer) Modèle dominant dans les offres commerciales de SGBD

18 Base de données relationnelle 18  Une BD relationnelle est composée d’un ensemble de tables (ou relations)  Une table possédant un nom et est composée de :  Lignes qu’on appelle enregistrements (ou tuples)  Colonnes représentant chacune un champ (ou un attribut)  Chaque champ a un nom et un type  Texte, numérique, date, …  Manipulation par des opérateurs de l’algèbre relationnelle

19 Exemple de tables 19 N°CommandeDateCommandeMontant 2713/2/2007120 6512/1/200834 210/06/200627 3414/12/20071500 Commande Nom de la table 3 champs 4 enregistrements N°Commande est du type numérique entier Montant est du type numérique réel DateCommande est du type date

20 Tuple & clé 20  Une clé d’une relation est un ensemble minimal d'attributs tels que les valeurs de ces attributs permettent de distinguer tout tuple des autres  La clé retenue est dite clé primaire  Le schéma de relation est constitué du nom de la relation suivi de la liste des attributs et de leurs domaines associés  PRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0)  Les attributs constituant la clé d’une relation sont écrits en premier dans le schéma de relation et sont généralement soulignés.

21 Exemple de relations 21 numeronomprenomnaissance 5MadaniHossame04-févr-80 13AzzouzMohcine15-mai-76 76DaoudAli29-nov immatriculationmarqueproprietaire 3452 A 13BMW13 9835 B 72Renault76 1234 A 2Peugeot5 9878 A 4BMW76 Propriétaires Véhiculés

22 Règles pour une relation 22  Deux tables d’une même BD ne peuvent avoir le même nom  Deux colonnes d’une même table ne peuvent avoir le même nom  Un même champ peut être présent dans plusieurs tables  L’ordre des colonnes est sans aucune importance.  Toutes les lignes ont le même format et le même nombre d’entrée.  Chaque entrée dans chaque ligne doit être une valeur unique.  L’ordre des lignes est sans importance car elles sont identifiées par leur contenu.  Il n’y a pas deux lignes identiques dans toutes leurs entrées.

23 INTÉGRITÉ DE DOMAINE 23  Contrôle des valeurs des attributs:  par exemple, 4.000 ≤ salaire ≤ 20.000  liste de couleurs possibles [bleu, rouge, vert, jaune]  Contrôle entre valeurs des attributs:  QTE_STOCK ≥ QTE_COMMANDE

24 INTÉGRITÉ DE DOMAINE

25 Intégrité de la relation 25  Unicité de la clé primaire;  Aucun des attributs de la clé primaire ne doit être NULL (du fait que la clé primaire identifie de manière unique les tuples d’une relation).

26 Clé étrangère La connaissance d’un numéro de commande nous permet de retrouver de façon unique un numéro de client. Dépendance fonctionnelle Attribut commun aux deux tables matérialisant la dépendance fonctionnelle. Il existe donc une dépendance fonctionnelle entre deux tables (commande et client). Pour matérialiser ce lien, une colonne (numcli) sera ajoutée à la table source de la dépendance fonctionnelle. Celle-ci sera appelée clé étrangère. 1n

27 Clés étrangères et Contrainte d’Intégrité Référentielle 27  Définition : une clé étrangère est un attribut appartenant à une table qui existe aussi en tant que clé primaire dans une autre table.  Les valeurs de clé étrangère qui apparaissent dans une table doivent être les mêmes que celles de clé primaire dans la table connexe.  Clé étrangère (ou clé extérieure) permet au SGBDR de maintenir la cohérence des lignes de deux relations ou des lignes de la même relation.  Exemples dans le monde réel : Une commande doit provenir d’un client.

28 Clés étrangère  Ce qui est nécessaire :  2 tables (ou requêtes ou une combinaison des deux)  1 champ en commun dans chacune des tables  même type de champ (texte avec texte, numérique avec numérique...)  même longueur (pas un champ long de 15 caractères avec un autre long de 20 caractères)  même genre d'information (Ex.: Code d'inventaire avec des codes d'inventaires, CNE avec CNE...)

29 Clés étrangères et CIR 29  Un SGBDR doit appliquer les règles suivantes afin d’assurer les CIR : Ajout : lors de l’ajout d’une ligne contenant une valeur de clé étrangère, le SGBD vérifie que cette valeur existe aussi comme valeur de clé primaire dans la table connexe. Suppression : lors de la suppression d’une ligne, le SGBD vérifie qu’aucune clé étrangère dans les tables connexes ne possède la même valeur que la clé primaire de la ligne supprimée. Mise à jour (ou modification) : lors de la mise à jour d’une valeur de clé primaire, le SGBD vérifie qu’aucune clé étrangère dans les tables connexes n’a la même valeur.

30 Exercice 30  Considérons la table Département et les lignes montrées à la suite. Expliquez si ces les lignes peuvent être ou non insérées dans cette table. N° départementNOMLIEUEffectif 20VentesRue FAR10 MarketingRue Fès5 10R&DBd Oqba15 InformatiqueAnfa13 15ComptabilitéAgdal23

31 Solution de l’exercice 31 10R&DBd Oqba15 InformatiqueAnfa13 15ComptabilitéAgdal23 Non : cette ligne ne peut pas être insérée, car elle viole le principe d’unicité de la clé primaire (la valeur 10 existe déjà dans la table). Non : cette ligne ne peut pas être insérée, car elle viole la contrainte d’intégrité de la clé primaire (la clé primaire ne peut pas être NULL). Oui : cette ligne peut être insérée sans problème, car aucune contrainte n’est violée.

32 Créer une base de données Possibilité de créer avec SQL, mais pas indispensable Base de données = ensemble de tables Donner un nom à la Base de données  extension.ACCdb

33 Objets d’une base de données 33 Tables, Requêtes Formulaires, États Tables, entités/relations Requêtes, interrogations Formulaires, visualisation de tous les attributs États, documents à publier

34 Créer une table – création 34 Contrainte de clé primaire : Une fois que la clé primaire sera désignée et le champ déclaré sans doublons, les saisies de valeurs identiques seront impossibles. Choix du type : Il s’agit de préciser quel type de valeurs sera stocké dans le champ. Il existe trois grands types (numérique, date, texte). Pour les champs de type texte, il est possible d’intervenir sur la taille du champ, de manière à optimiser la place occupée sur le support de stockage. Contrôle de la saisie : Pour faciliter la saisie, un masque, une valeur par défaut, peuvent être mis en place. Contrainte de domaine : Il est possible, pour un champ donné, de limiter les valeurs autorisées à la saisie. Celles-ci sont indiquées dans la case « Valide si », un message d’erreur peut y être associé. Lors de la création d’une table, la clé primaire et l’appartenance des données à un type doivent être obligatoirement définies. D’autres éléments peuvent être posés pour assurer le confort et la sécurité de la saisie.

35 Les types d’attributs 35

36 Les types d’attributs 36 1. Texte max : 255 caractères 2. Mémo max : 65 535 caractères 3. Numérique entier, simple précision, nombre décimale, etc. 4. Date/Heure année 100  9999, 12 ou 24 h 5. Monétaire nombres réels de 1 à 4 décimales 6. NuméroAuto incrémentation automatique 7. Oui/Non Vrai/Faux, Actif/inactif 8. Objet OLE (Object Linking and Embedding) feuilles de calcul, sons, vidéos, graphiques… 9. Lien Hypertexte chemin complet (local ou internet)

37 Les masques de saisie 37

38 Les masques de saisie 38

39 Les masques de saisie 39 SymboleSignification 0Chiffre de 0 à 9 obligatoire 9Chiffre ou espace facultatif #Chiffre ou espace ou + ou - LLettre de A à Z obligatoire ?Lettre de A à Z non obligatoire ALettre ou chiffre obligatoire aLettre ou chiffre non obligatoire &Caractère quelconque obligatoire CCaractère quelconque non obligatoire <Passe tout en minuscules (bas de casse) >Passe tout en majuscules (haut de casse) !Saisie à partir de la droite

40 Les masques de saisie masquesensexemples 00 00 00 00 00 Numéro de téléphone 06 12 34 56 78 00 999 Deux chiffres obligatoires 75 123 ou 59 >CCCCCCCCCCCCCCC CCCCC Nom de maximum 20 caractères, converti en capitales ALI SAID ou BORD >C<CCCCCCCCCCCCC CCCCCC Prénom de maximum 20 caractères, 1 re lettre capitale, lettres suivantes bas de casse Ali ou Said 0 00 00 00 0000 Code sur précisément 11 chiffres 1 53 06 07 0557 (000) 000-0000 Téléphone avec indice régional obligatoire (207)555-0199 ou (165)345-2025 00/00/0099 Date avec année possible sur 2 ou 4 chiffres 07/06/1953 ou 22/02/53

41 Les listes déroulantes 41 Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle, …

42 Les listes déroulantes 42 GVdK = CUY Dans la table, créer le champ Titre Cliquer sur ‘Assistant Liste de choix’ Sélectionner "Je taperai les valeurs souhaitées" Dresser la liste dans Contenu

43 Relation entre tables 43

44 Les filtres 44 Les filtres permettent de limiter simplement, de façon temporaire, les enregistrements affichés dans une table. On peut filtrer selon deux méthodes : - le filtre sur un seul critère : ex : les étudiants qui habitent Kénitra; - le filtre sur plusieurs critères : ex : les étudiants qui habitent Kénitra ou ceux qui s’appellent « Mohamed ». Interrogations complexes  Requêtes

45 Algèbre relationnelle 45  Définition:  Collection d’opérations formelles qui agissent sur des relations et produisent une relation en résultat.  Dans la plupart des systèmes relationnels, la réponse à une requête s’obtient par l’utilisation d’un ou plusieurs opérateurs relationnels.  Deux types d’opérateurs:  Opérateurs unaires :  Sélection, Projection, Complément  Opérateurs binaires :  Union, Intersection, Différence, Produits, Jointures, …

46 Projection 46 La projection d’une relation R sur un ensemble d’attributs (A 1,…, A k ) se note :

47 Requêtes de sélection(Projection) 47

48 Sélection 48 La sélection sur une relation R selon une condition C se note:

49 Sélection 49  Opérateurs de comparaison :  =, ,, , ≤, BETWEEN (entre), IN (dans), LIKE(comme)  Combinaison de plusieurs conditions reliées par des opérateurs logiques :  and, or, not

50 Requêtes de sélection 50

51 Union 51 L’union de deux relations R et R’ se note :

52 Différence 52 La différence de deux relations R et R’ se note :

53 Produit cartésien 53 Le produit cartésien de deux relations R et R’ se note :

54 Jointures  Jointure interne: Ne sont incluses dans le résultat final que les lignes qui se correspondent dans les deux tables.  la jointure externe gauche. Toutes les lignes de la première table sont incluses dans le résultat de la requête, même s'il n'existe pas de ligne correspondante dans la seconde table ;  la jointure externe droite. Toutes les lignes de la seconde table sont incluses dans le résultat de la requête, même s'il n'existe pas de ligne correspondante dans la première table. 54

55 Jointure naturelle 55 La jointure naturelle de deux relations R et R’ selon une condition C se note :

56 Les requêtes de sélection: Calcul 56

57 Les requêtes de sélection : Jointure et condition 57

58 Notions sur SQL  SQL signifie "Structured Query Language", soit "Langage de requêtes structuré".  A été développé par IBM au cours des années 70 et son nom était SEQUEL, abréviation de Structured English QUEry Language  SQL a été normalisé par l'ANSI (American National Standards Institute) et par l'ISO (International Organization for Standardization).  SQL : langage proche de l’utilisateur et de sa façon de poser les requêtes (formulation proche du langage naturel)  SQL : langage assertionnel (non procédural), facile à apprendre pour rédiger les requêtes, les lire et les comprendre. 58

59 Notions sur SQL  On distingue 3 types de requêtes: Actions (Création et m.à.j), Sélections (Interrogation) et Contrôle (définir des permissions pour les utilisateurs).  Utilisation de SQL :  En mode interactif : l’utilisateur écrit textuellement une commande SQL et récupère le résultat immédiatement.  En mode intégré : une commande SQL est mélangée avec les instructions d’un programme en langage de haut niveau tel que C, C++, Visual basic, Pascal... 59

60 Requête de sélection  Une requête de type SELECTION permet d'interroger une base de données en composant les projections, les restrictions, les jointures….  Le résultat d’une telle requête est renvoyé sous forme d’une table formée d’un ou plusieurs attributs.  Sa syntaxe est : SELECT [table.attribut1 As alias1], [table.attribut2 As alias2], … FROM Liste de table [WHERE Critère de sélection] [GROUP BY Liste d’attributs] [HAVING Critère de sélection] [ORDER BY Critère d’ordre] 60

61 Requête de sélection  Soit la table ACTEURS :  ACTEURS (N_act, Nom, Prénom, Nationalité, Salaire, Age, Films)  SELECT * FROM ACTEURS;  Sélectionne tous les enregistrements de la table Acteurs  SELECT Nom, Prénom, Salaire FROM ACTEURS;  Afficher le Nom, Prénom et le salaire de chaque Acteur  SELECT Nom FROM ACTEURS WHERE (Nationalité="américaine") AND (Age > 25);  Afficher tous les noms d’acteurs dont la nationalité est américaine et l’âge est supérieur à 25 61

62 Requête de sélection  SELECT AVG(Salaire) As [Moyenne des salaires] FROM ACTEURS;  Affiche la moyenne des salaires de la table ACTEURS et nomme le champ retourné Moyenne des salaires  SELECT SUM(Salaire) As [Total des salaires] FROM ACTEURS;  Afficher le total des salaires de la table ACTEURS et nommer le champ retourné Total des salaires. 62 SUM ()renvoie la somme d’un champ AVG ()renvoie la moyenne d’un champ MAX ()renvoie la valeur maximale d’un champ MIN ()renvoie la valeur minimale d’un champ COUNT (*)renvoie le nombre d’enregistrements de la table Fonctions de calcul utilisables avec la sélection

63 Les jointures  Soit les tables PRODUITS, COMMANDES, DETAILS et EMPLOYES créées sous ACCESS:  PRODUITS (Réf, Nompr, Nfournisseur, Pu)  COMMANDES (Ncommande, Codecli, Nemployé, Date commande)  DETAILS (Ncommande, Réf, Quantité, Remise)  EMPLOYES (Nemployé, Nom, Prénom, Fonction, Adresse, Ville) 63

64 Les jointures  Jointure interne: utilise INNER JOIN.  SELECT PRODUITS.Réf, Nompr FROM PRODUITS INNER JOIN DETAILS ON PRODUITS.Réf = DETAILS.Réf ;  Affiche tous les produits (Réf, Nompr) qui ont été vendus  Jointure externe gauche, dans laquelle INNER JOIN est remplacé par LEFT JOIN.  SELECT PRODUITS.Réf, Nompr FROM PRODUITS LEFT JOIN DETAILS ON PRODUITS.Réf = DETAILS.Réf WHERE DETAILS.Réf IS NULL ;  Affiche tous les produits (Réf, Nompr) qui n’ont pas été vendus  Jointure externe droite, dans laquelle INNER JOIN est remplacé par RIGHT JOIN. 64

65 Création de menu  Normalement, l’ouverture d’une base de données doit donner sur un menu;  On réalise un menu à partir d’un formulaire avec des boutons pour lancer des requêtes ou ouvrir des formulaires.  Limiter le menu pour la base de données. 65

66 Création de menu  Le formulaire menu se lance en premier:  Créer une macro avec le nom autoexec qui lance le menu  Ou, Option Access, Base de Données Active. 66 Remarque: On peut ouvrir la base normalement, en maintenant appuyé la touche Alt

67 Sécuriser la base  Plusieurs manières pour sécuriser sa base.  On s’intéresse à l’utilisation d’un mot de passe.  Ouvrez la base de données (en mode Exclusif). Cliquez sur le bouton Microsoft Office, puis cliquez sur Ouvrir. Dans la boîte de dialogue Ouvrir, localisez le fichier que vous voulez ouvrir, puis sélectionnez-le. Cliquez sur la flèche à côté du bouton Ouvrir, puis cliquez sur Ouvrir en exclusif.  Sous l’onglet Outils de base de données, dans le groupe Outils de base de données, cliquez sur chiffrer avec mot de passe.  La boîte de dialogue Définir le mot de passe de la base de données s’affiche.  Tapez votre mot de passe dans la zone mot de passe, puis tapez-le à nouveau dans la zone Vérifier. 67

68 Sécuriser la base  Il est très important de ne pas oublier le mot de passe : Access ne pourra pas le récupérer.  Remarque: Pour déprotéger et ouvrir une base de données  Ouvrez la base de données chiffrée comme n'importe quelle base de données.  La boîte de dialogue Mot de passe requis s’affiche.  Tapez votre mot de passe dans la zone Entrez le mot de passe de la base de données, puis cliquez sur OK. 68

69 Supprimer un mot de passe  Ouvrez la base de données en mode Exclusif.  Sous l’onglet Outils de base de données, dans le groupe Outils de base de données, cliquez sur Déchiffrer la base de données.  La boîte de dialogue Annuler le mot de passe de la base de données s’affiche.  Tapez votre mot de passe dans la zone Mot de passe, puis cliquez sur OK. 69

70 Importer/Exporter des tables 70

71 Publipostage sous Word 71


Télécharger ppt "GESTION DES BASES DE DONNÉES Prof. Ouadoudi Zytoune 2016/2017ENCG-K."

Présentations similaires


Annonces Google