• Aucun résultat trouvé

Travaux Pratiques

N/A
N/A
Protected

Academic year: 2022

Partager "Travaux Pratiques"

Copied!
13
0
0

Texte intégral

(1)

http://robert.cireddu.free.fr/SNIR/

Extrait du référentiel : BTS Systèmes Numériques option A (Informatique et Réseaux) Niveau(x) S4. Développement logiciel

S4.3. Structure et gestion des données Bases de données : différents types (relationnelles, objets, …),

organisation et techniques de mise à jour (tables, liens, MCD, requêtes, …)

3

http://robert.cireddu.free.fr/

Objectifs du TP :

- SGBD :

- fichier et client/serveur

- principaux SGBD

- Modèle Conceptuel des Données (MCD) - Modèle Relationnel des Données (MRD) - Création d’une base de données

Support d’activité :

- Logiciels : AnalyseSI, VirtualBox, suite bureautique

- Fichiers : bdd.pps, Interface Logiciel AnalyseSI.pdf, memoSQL.pdf, Référence MySQL.pdf - Internet

- Ce document au format PDF

Pré-requis :

- Cours sur les bases de données

Vous rédigerez un compte-rendu numérique.

Pensez aux captures d’écran pour imager votre compte-rendu.

Sauvegardez votre travail régulièrement !

Des modifications peuvent exister selon la version du logiciel utilisée.

(2)

votre cours sur les bases de données.

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 Bases de Données (SGBD) ». Un SGBD héberge

généralement plusieurs bases de données, qui sont destinées à des logiciels ou des thématiques différentes. Un SGBD doit permettre l’ajout, la modification et la recherche de données.

Quel que soit le modèle implémenté (réseau, relationnel, objet, …), les principaux objectifs d’un SGBD sont de masquer la représentation physique des données et d’assurer la protection et la cohérence de ces données dans le cadre d’un environnement multi-utilisateur impliquant des accès concurrents.

SGBD FICHIER ET SGBD CLIENT/SERVEUR

Il faut distinguer deux types de fonctionnement des SGBD : les SGBD fichier et les SGBD Client- Serveur. L’architecture Client-serveur minimise le trafic des données sur le réseau et est, d’une manière générale, plus apte à traiter de gros volumes de données, un nombre important

d’utilisateurs, de fortes contraintes d’intégrité et la tolérance aux pannes.

SGBD FICHIER

Dans ce type de fonctionnement, la base de donnée est contituée par un ensemble de fichiers (en principe un fichier par table) stockés dans un espace partagé, comme un disque ou un serveur réseau. Une application, installée sur chaque poste de travail, assure le traitement des requêtes SQL (Structured Query Language). Les requêtes sont traitées localement et nécessitent le rapatriement de l’intégrité des tables qu’elles impliquent. Ce type de fonctionnement génère un trafic réseau important. L’avantage de cette solution est sa simplicité de fonctionnement, la quasi inexistence de l’administration et l’utilisation possible de formats de fichiers ouverts.

Les principaux SGBD fichier sont dBase, FoxPro, Paradox, Access ou encore MySQL.

SGBD CLIENT-SERVEUR

Dans cette architecture, le SGBD est exécuté sur un unique ordinateur, qualifié de serveur, sur lequel sont stockée les données. L’exécution de la requête est ici effectuée sur le serveur, seules la requête et la réponse transitent sur le réseau entre client et serveur. Le SGBD assure ainsi une certaine indépendance entre les données et les clients qui effectuent les requêtes. La gestion des droits des utilisateurs peut, par exemple, être indépendante de celle du système d’exploitation.

Les principaux avantages de cette solution sont la grande capacité de stockage, la gestion de la concurrence dans un environnement comportant un grand nombre d’utilisateurs, un haut niveau de paramétrage, une bonne gestion de transactions, la mise en œuvre de la programmation événementielle apportée par la combinaison des procédures stockées et des déclencheurs ou encore la journalisation qui permet une grande robustesse et la reprise sur panne. Les

inconvénients d’une architecture Client-Serveur sont sa relative lourdeur de mise en œuvre, notamment dans le cas d’une solution monoposte, l’administration importante du SGBD et la nécessité d’une machine puissante, et généralement dédiée, pour jouer le rôle du serveur dans le cadre d’une utilisation intensive impliquant de grandes quantités de données.

Les principaux SGBD Client-Serveur sont Oracle, DB2, SQL-Server, Sybase ou PostgreSQL.

(3)

PRINCIPAUX SGBD

Les acteurs les plus importants dans les SGBD commerciaux sont Oracle Corporation (Oracle), IBM (DB2), Microsoft (SQL-Server), Sybase et Teradata.

À côté de ces produits, très chers, existent heureusement des systèmes libres et gratuits. Les plus connus sont : MySQL, qui est bien adapté à la création de sites Web dynamiques, Firebird qui atteint probablement les meilleures performances transactionnelles, PostgreSQL qui permet de disposer d’une base mixte relationnelle-Objet, Ingres qui est bien adapté aux besoins des entreprises et Cloudspace qui s’interface bien avec Java.

MCD

La conception d’une base de données doit passer par l’élaboration d’un Modèle Conceptuel des Données (MCD). Le MCD donne une vue d’ensemble des données et des liens qui les

caractérisent. L’élaboration de ce modèle est une tâche complexe et essentielle qui conditionne la pertinence, la robustesse et la durabilité de la base de données. Le MCD doit être juste pour rendre compte correctement de la sémantique du domaine modélisé.

Sa structure doit être pensée pour permettre la réponse aux requêtes potentielles des applications qui utiliseront la base de données. Le modèle doit être également complet pour supporter toutes les données nécessaires. Il doit enfin être bien formé pour ne pas être la source d’incohérences et de redondances au niveau des données.

Le formalisme le plus répandu pour la réalisation d’un MCD est le modèle entités-associations. Ce modèle permet une description naturelle du monde réel à partir de concepts d’entité et

d’association (ou entité et relation). L’utilisation du terme association plutôt que relation bien que juste permet de limiter la confusion avec les relations du modèle relationnel.

Le modèle entités-associations se veut universel et répond à l’objectif d’indépendance données- programmes. Ce modèle a été repris et développé dans le cadre d’une méthode plus générale et très répandue appelée « Merise ».

Aujourd’hui, les diagrammes de classes (UML : Unified Modeling language) constituent une alternative aux modèles entités-associations. UML a été conçu pour une modélisation orientée objet qui vise à rapprocher les données des traitements associés. Aussi, le pouvoir expressif d’un diagramme de classes est bien supérieur à celui d’un modèle entités-associations. Hélas, si cette expressivité est un avantage dans une perspective de modélisation objet, elle devient un

inconvénient pour modéliser une base de données relationnelle.

Par opposition aux diagrammes de classes du formalisme UML, le modèle entités-associations constitue un formalisme dédié, plus adapté et plus simple pour la modélisation des bases de données relationnelles.

LES NIVEAUX DE REPRÉSENTATION

Il existe trois niveaux de représentation des données :

Le niveau conceptuel : le modèle conceptuel des données (MCD) décrit les entités du monde réel, en terme d’objets, de propriétés et de relations, indépendamment de toute technique de d’organisation et d’implantation des données. Ce modèle se concrétise par un schéma entités- associations représentant la structure du système d’information, du point de vue des données.

(4)

choix organisationnels. Il s’agit d’une transcription (également appelée dérivation) du MCD dans un formalisme adapté à une implémentation ultérieure, au niveau physique, sous forme de base de données relationnelles. Les choix techniques d’implémentation (choix d’un SGBD) ne seront effectués qu’au niveau suivant.

Le niveau physique : le modèle physique des données (MPD) permet d’établir la manière concrète dont le système sera mis en place (SGBD retenu).

Question 1

Soit le Modèle Conceptuel des Données ci-dessous.

MCD

Complétez le tableau ci-dessous en plaçant une croix dans la colonne « vrai » ou « faux » selon les affirmations.

vrai faux

Un livre peut être emprunté par plusieurs abonnés Un abonné peut emprunter plusieurs livres

Un même livre peut être emprunté plusieurs fois Question 2

Soit le Modèle Conceptuel des Données ci-dessous.

MCD

Complétez le tableau ci-dessous en plaçant une croix dans la colonne « vrai » ou « faux » selon les affirmations.

vrai faux

Un livre peut être emprunté par plusieurs abonnés Un abonné peut emprunter plusieurs livres

Un même livre peut être emprunté plusieurs fois

(5)

Soit le Modèle Conceptuel des Données ci-dessous.

Complétez le tableau ci-dessous en plaçant une croix dans la colonne « vrai » ou « faux ».

vrai faux

Un même livre peut être emprunté plusieurs fois Un abonné peut emprunter plusieurs livres

MCD (avec type-association ternaire)

Question 4

À l’aide du logiciel « AnalyseSI » disponible dans le dossier « Support » de l’activité : Voir le fichier « Interface Logiciel AnalyseSI.pdf » pour une présentation de l’interface du logiciel.

Les types de données :

Représentez les MCD des situations ci-dessous.

Situation 1 :

Une émission de télévision n’est diffusée que sur une chaîne, mais une chaîne diffuse

généralement plusieurs émissions. Une émission de télévision est caractérisée par un nom et une chaîne par un nom et un numéro de canal.

(6)

Une émission de télévision peut comporter des animateurs et un animateur peut animer plusieurs émissions. Une émission de télévision est caractérisée par un nom et un animateur est caractérisé par un nom et un prénom.

Situation 3 :

Placez-vous du point de vu d’un fournisseur de chaînes de télévision par Internet. Supposez qu’une émission puisse être retransmise, mais pas le même jour. Comment mémoriser, pour chaque jour, quel abonné a regardé quelle émission ? Une émission de télévision est caractérisée par un nom et un abonné est caractérisé par une adresse IP qui joue le rôle d’identifiant, un nom et un prénom.

Type-association : un type-association (ou un type-relation) désigne un ensemble d’associations qui possèdent les mêmes caractéristiques. Le type-association décrit un lien entre plusieurs type-entités. Les associations de ce type-association lient des entités de ces types-entités.

Exemple de type-association : l’emprunt d’un livre à la bibliothèque (voir MCD page 4), « Emprunter » liant deux type-entités « ABONNE » et « LIVRE ».

MRD

Le modèle relationnel représente la base de données comme un ensemble de tables, sans

préjuger de la façon dont les informations sont stockées dans la machine. Les tables constituent la structure logique du modèle relationnel. Au niveau physique, le système est libre d’utiliser

n’importe quelle technique de stockage dès lors qu’il est possible de relier ces structures à des tables au niveau logique. Les tables représentent une abstraction de l’enregistrement physique des données en mémoire. Le modèle relationnel peut être défini de la manière suivante : - les données sont organisées sous forme de tables à deux dimensions, encore appelées relations, dont les lignes sont appelées occurrence, n-uplet ou tuple en anglais ;

- les données sont manipulées par des opérateurs de l’algèble relationnelle ; - l’état cohérent de la base est défini par un ensemble de contraintes d’intégrité.

ÉLÈMENTS CONSTITUTIFS DU MRD

Attribut : un attribut est un identifiant (un nom) décrivant une information stockée dans une base.

Exemples : l’âge d’une personne, le nom d’une personne, le numéro de sécurité sociale.

Domaine : le domaine d’un attribut est l’ensemble, fini ou infini, de ses valeurs possibles.

Exemples : l’attribut « numéro de sécurité sociale » a pour domaine l’ensemble des combinaisons de quinze chiffres et « nom » a pour domaine l’ensemble des combinaisons de lettres (une

combinaison comme cette dernière est généralement appelée chaîne de caractères ou, plus simplement, chaîne).

Relation : une relation est un sous-ensemble du produit cartésien de n domaines d’attributs (n>0).

Une relation est représentée sous la forme d’une table à deux dimensions dans laquelle les n attributs correspondent aux titres des n colonnes.

(7)

attributs avec leurs domaines.

Exemple :

PERSONNE

numSécu Nom Prénom 269065925647225 Durand Alice 168093458963255 Dupont Xavier

Schéma de relation PERSONNE(numSécu : Entier, Nom : Chaîne, Prénom : Chaîne) Degré : le degré d’une relation est son nombre d’attributs.

Occurrence ou n-uplets ou tuples : une occurrence, ou n-uplet, ou tuple, est un élément de l’ensemble figuré par une relation. Autrement dit, une occurrence est une ligne de la table qui représente la relation.

Cardinalité : la cardinalité d’une relation est son nombre d’occurrences.

Clé candidate : une clé candidate d’une relation est un ensemble minimal des attributs de la relation dont les valeurs identifient à coup sûr une occurrence.

La valeur d’une clé candidate est donc distincte pour toutes les tuples de la relation. La notion de clé candidate est essentielle dans le modèle relationnel.

Toute relation a au moins une clé candidate et peut en avoir plusieurs. Ainsi, il ne peut jamais y avoir deux tuples identiques au sein d’une relation. Les clés candidates d’une relation n’ont pas forcément le même nombre d’attributs. Une clé candidate peut être formée d’un attribut arbitraire qui n’a d’autre objectif que de servir de clé.

Clé primaire : la clé primaire d’une relation est une de ses clés candidates. Pour signaler la clé primaire, ses attributs sont généralement soulignés.

Clé étrangère : une clé étrangère dans une relation est formée d’un ou plusieurs attributs qui constituent une clé candidate dans une autre relation.

Attention, dans une relation, une clé étrangère ne constitue pas une clé candidate !

Schéma relationnel : un schéma relationnel est constitué par l’ensemble des schémas de relation avec mention des clés étrangères.

(8)

Le MCD

ETUDIANT (idEtudiant, nom, prenom) COURS (idCours, intitule)

Suivre (#idEtudiant, #idCours, note) Le MRD

Idetudiant et idCours sont des clés étrangères qui font respectivement référence aux schémas de relation ETUDIANT et COURS.

Question 5a

Soit le MCD ci-dessous.

Combien de schémas de relation doit contenir la traduction en MRD du MCD ci-dessus ? Établissez le MRD sans tenir compte de la spécificité de la cardinalité 1,1 en faisant comme si la cardinalité était 0,N.

Question 5b

Proposez un exemple (pour trois matières maximum) de base de données relationnelles (schéma de relation) correspondant au MRD précédent.

Expliquez pourquoi « COURS » et « DISPENSER » doivent être fusionnés.

Question 5c

Donnez le MRD correct. Identifiez les clés primaires et précisez les clés étrangères de chaque relation.

(9)

CRÉATION D’UNE BASE DE DONNÉES

La création de la base de données se fera sur une machine virtuelle (OS : Raspbian).

Question 6

Lancez une machine virtuelle (OS : Raspbian).

Configurez le « proxy ».

Installez le paquet « mariadb-server ».

Connectez-vous sur le serveur MySQL en local en saisissant la commande suivante : sudo mariadb --user=root

Le prompt doit être : MariaDB [(none)]>

Pour la suite de l’activité, vous avez à disposition dans le dossier « Support » de l’activité des aides sur les requêtes SQL : « memoSQL.pdf »,

« MYSQL_exemple.pdf », « Référence MySQL.pdf ».

Il vous faudra trouver les bonnes requêtes afin de répondre aux questions ci- dessous.

Question 7

Créez une base de donnée nommée « TP_BDD ».

Vous allez créer les tables d’une base de données, remplir les tables avec des données, puis vous interrogerez la base de données à l'aide de requêtes SQL.

Question 8

Soit le MRD ci-dessous.

PERSONNE(idPersonne, nom, prenom)

FILM(idFilm, #idRealisateur, titre, genre, annee) // idRealisateur est une clé étrangère qui fait référence au schéma de relation PERSONNE.

JOUER(#idActeur, #idFilm, role) // idActeur et idFilm sont des clé étrangères qui font respectivement référence aux schémas de relation PERSONNE et FILM.

CINEMA(idCinema, nom, adresse)

PROJECTION(#idCinema, #idFilm, jour) // idCinema et idFilm sont des clés

étrangères qui font respectivement référence aux schémas de relation CINEMA et FILM.

Le MRD

(10)

vous aidant de l’exemple d’instance de schéma relationnel donné page suivante.

Table Attribut Type

PERSONNE idPersonne int (PK)

nom varchar

prenom varchar

FILM

PK : Primary Key (clé primaire) FK : Foreign Key (clé étrangère) Question 9

Créez les tables dans la base de donnée « TP_BDD » selon le tableau précédent.

USE … puis CREATE TABLE … Voici quelques requêtes utiles :

SELECT DATABASE(); C’est une pseudo-requête SQL (sans FROM) qui affiche le nom de la base courante.

SELECT USER(); Idem, cette pseudo-requête affiche le nom de l’utilisateur.

courant.

SHOW DATABASES; Affiche la liste des bases de données.

SHOW TABLES; Affiche la liste des tables de la base courante.

SHOW COLUMNS FROM NomTable ; Affiche la description de la table NomTable.

Question 10

Insérez dans chaque table les quatre premières occurrences de l’exemple d’instance de schéma relationnel donné page suivante.

INSERT INTO …

Affichez la table Personne avec la requête : SELECT * FROM Personne;

(11)

PERSONNE PROJECTION

idPer. nom prenom idCinema idFilm jour

01 Kidman Nicole JOUER 02 05 02/05/2018

02 Bettany Paul idActeur idFilm role 02 05 03/05/2018

03 Watson Emily 01 05 Grace 02 05 12/10/2019

04 Skarsgard Stellan 02 05 Tom Edison 02 04 07/05/2016

05 Travolta John 03 04 Bess 01 01 02/12/2015

06 L.Jackson Samuel 04 04 Jan 02 07 05/12/2019

07 Willis Bruce 05 03 Vincent Vega 01 04 11/03/2019

08 Irons Jeremy 06 03 Jules Winnfield 04 03 14/04/2005

09 Spader James 07 03 Butch Coolidge 03 06 08/04/2007

10 Hunter Holly 08 02 Beverly Mantle 02 02 15/01/2027

11 Arquette Rosanna 09 01 James Ballard 03 03 20/02/2018

12 Wayne John 10 01 Helen Remington 04 03 11/07/2019

13 Von Trier Lars 11 01 Gabrielle 01 06 05/02/2016

14 Tarantino Quentin 04 05 Chuck 02 04 08/09/2014

15 Cronenberg David 16 07 May Day 04 06 25/01/2015

16 Mazursky Paul 19 08 John Wilson 03 06 14/11/2016

17 Jones Grace 20 09 Jim Williams 01 02 12/02/2018

18 Glen John 20 10 Lester Burnham 02 08 07/03/2019

19 Eastwood Clint 02 01 25/04/2018

20 Spacey Kevin 02 03 15/09/2019

21 Mendes Sam 02 06 30/07/2017

22 Jolie Angelina 01 03 01/08/2018

02 09 02/12/2009

02 10 03/10/2012

02 11 02/03/2013

FILM

idFilm idRealisateur titre genre annee

01 15 Crash Drame 1996

02 15 Faux-Semblants Epouvante 1988

03 14 Pulp Fiction Policier 1994

04 13 Dogville Drame 2002

05 13 Breaking the waves Drame 1996

06 12 Alamo Western 1960

07 18 Dangereusement vôtre Espionnage 1985

08 19 Chasseur blanc, cœur noir Drame 1989

10 21 American Beauty Drame 1999

CINEMA

idCine. nom adresse

01 Cap Ciné 34300 Cap d’Agde 02 Gaumont Wilson 31000 Toulouse 03 Espace Ciné 93800 Epinay-sur-Seine 04 Ciné Part Dieu 69000 Lyon

Exemple d’instance de schéma relationnel

(12)

Donnez les requêtes permettant d’apporter une réponse aux questions ci-dessous.

Donnez les résultats obtenus par les requêtes (affichages console).

Si vous souhaitez vérifier vos requêtes : il vous faudra au préalable compléter les tables selon l’exemple d’instance de schéma relationnel donné page précédente.

Vous pouvez aussi effectuer un chargement de masse en utilisant la commande : LOAD DATA INFILE … permettant d’insérer dans une table un fichier *.txt.

https://www.it-connect.fr/importer-des-donnees-en-sql-avec-load-data-infile/

Attention, sur la page ci-dessus il manque un « s » à la commande : show variables like "%local%";

Faites attention au formatage pour le fichier « *.txt ».

1-Quels sont les titres des films dont le genre est « Drame » ? 2-Quels sont les films projetés au cinéma « Gaumont Wilson » ? 3-Quels sont les noms et prénoms des réalisateurs ?

4-Quels sont les noms et prénoms des acteurs ?

5-Quels sont les noms et prénoms des acteurs qui sont également réalisateurs ? 6-Quels films (titres) ont été projetés en 2018 ?

7-Donnez le titre des films réalisés par Lars von Trier.

8-Quels sont les réalisateurs qui ont réalisé des films d’épouvante et des films dramatiques ? 9-Quels sont les acteurs qui n’ont pas joué dans des films dramatiques ?

10-Quels sont les titres des films ou Nicole Kidman a joué un rôle et qui ont été projetés au cinéma « Cap Ciné » ?

11-Quels sont les acteurs qui n’ont pas joué dans des films dramatiques ?

12-Quels sont les acteurs qui ont joués dans des films projetés au cinéma « Cap Ciné » depuis 2019 ?

13-Quels sont les cinémas qui ont projeté tous les films ?

14-Quels sont les acteurs qu’il a été possible de voir dans tous les cinémas ? LA JOINTURE

Il est préférable d’utiliser un opérateur de jointure normalisé SQL2 (mot clé JOIN) pour effectuer une jointure. Les jointures faîtes dans la clause WHERE ne permettent pas de faire la distinction, de prime abord, entre ce qui relève de la sélection et ce qui relève de la jointure puisque tout est

(13)

utilisant la syntaxe de l’opérateur JOIN qui permet d’isoler les conditions de sélections (clause WHERE) de celles des jointures (clause JOIN), et qui permet également de cloisonner les conditions de jointures entre chaque couple de tables. De plus, l’optimisation de la requête est souvent plus pointue lorsque l’opérateur JOIN est utilisé.

Question 12

L’objectif est maintenant d’utiliser des requêtes avancées permettant de répondre aux problèmes posés. Contrairement à la question 11, vous utiliserez la commande « JOIN » pour toutes les jointures des requêtes.

Donnez les requêtes permettant d’apporter une réponse aux questions ci-dessous.

Donnez les résultats obtenus par les requêtes (affichages console).

1-Dressez la liste de toutes les interprétations, en précisant le nom et le prénom de l’acteur ainsi que le rôle et le titre du film. Le résultat doit être trié par ordre alaphabétique des noms.

2-Dressez la liste des acteurs (nom et prénom) qui ont joué dans des drames en précisant le nombre de films dramatiques dans lesquelles ils ont joué.

2-Dressez la liste des acteurs (nom et prénom) qui ont joué dans des drames en précisant le nombre de films (dramatiques ou pas) dans lesquelles ils ont joué.

Références

Documents relatifs

✔ Une « relation » entre les deux tables : La colonne Dept dans Employés fait référence à une ligne de la table Départements. ✔ Par Jointure, on peut savoir dans quel

Le micromètre est donc constitué d’une petite lampe, d’une règle transparente et d’une lentille convergente, avec un mécanisme de réglage permettant d’amener la règle dans

Pour établir la correspondance entre longueur d’onde

une étape intermédiaire pour passer du modèle E/A, qui est un modèle sémantique, vers une représentation physique des données : fichiers, SGBD hiérarchique, SGBD

Dans le cas d'une table d'objets de type T-Personne et dans celui d'un attribut de type T- Personne, suivant le principe de substituabilité, l'utilisateur peut y insérer des valeurs

Alors que la chaleur latente est la chaleur nécessaire pour effectuer un changement d’état physique (vaporisation, fusion, etc.) d’une unité de masse d’un corps à

Alors que la chaleur latente est la chaleur nécessaire pour effectuer un changement d’état physique (vaporisation, fusion, etc.) d’une unité de masse d’un corps à

(2) Lorsque l’appareil est sous pression, veiller à ce que cette enceinte soit toujours remplie d’eau de manière à servir de protection au cas où une explosion de