PPE 2-1 - Page d`accueil

publicité
BTS SIO SUP 1 SISR
Ducloux-Lebon Gilles
BTS SIO - PPE 1-3
KOS INF ☼
Sommaire
Sélection d'un SGBD pour la mise en place des réservations de salle ................ 3
Construction de modèles MPD et MCD relatif à la gestion de réservations de
salles .................................................................................................................. 6
Création d'une base de données (scripts SQL) .................................................... 8
2
Sélection d'un SGBD pour la mise en place des
réservations de salle
Qu'est-ce qu'un SGBD ?
La gestion et l'accès à une base de données sont assurés par un ensemble de
programmes qui constitue le Système de gestion de base de données (SGBD).
Un système de gestion de bases 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.
Fonctions d'un SGBD
* Ajout de données
Un SGBD doit permettre l'ajout de données. Pour cela, il est tout d'abord
nécessaire de pouvoir décrire les données avec un langage de description de
données (LDD). Une fois les données décrites, on peut ajouter des valeurs qui
correspondent à la description qu'on a faite par le biais d'un langage de
manipulation de données (LMD).
* Mise à jour des données
Les données doivent être modifiables. On doit pouvoir changer la définition des
données et les valeurs des données grâce au LDD et LMD respectivement.
* Recherche des données
La recherche des données est un point crucial. Il faut que le SGBD puisse
restituer les données rapidement.
3
Comparatif SGBD
Nom
Licence
Compatible
Windows
Taille
Prix
Fiabilité
Oracle
MySQL
Postgresql
propriétaire
propriétaire
licence (une licence
Source libérale
ouverte)
oui
oui
oui
illimité
gratuit
bonne
illimité
gratuit
correcte
illimité
gratuit
correcte
Présentation du SGBD choisi par l'équipe informatique:
Nous avons choisi oracle comme logiciel de création de base de données car il
est gratuit, fiable et nous avons plus d'expérience sur ce support.
Oracle
Disponibilité : Linux, Windows, Unix, MacOSX
Licence : commerciale, gratuite dans sa version Express.
Oracle n'est pas un SGBDR optimisé pour de petites bases de données. Sur de petits volumes
de traitements (2 Go par exemple) et peu d'utilisateurs (une trentaine) vous pourriez trouver
des benchmark ou MySql offre des performances quasi comparables à Oracle... Si l'on monte
à de plus importants volumes de donnée (>200Go) et un grand nombre d'utilisateurs (>300)
les écarts de performance entre un MySql et un Oracle, Sybase, Db2 seront très visibles.
Avantages











Richesse fonctionnelle
Fonction d'audit évolué
Row level storage security (RLSS) : permet de ne faire apparaître que certaines lignes
des tables pour un utilisateur/une application donné.
Intégration LDAP, SSL, Unicode; réplication intégrée; capable de mapper un fichier
plat en table
Parallélisme, caches nommés; haute disponibilité; grande possibilité de tuning
Procédures stockés en PL-Sql (langage propriétaire Oracle, orienté ADA) ou ... en
JAVA (depuis la 8.1.7) ce qui peut s'avérer utile pour les équipes de développement.
Assistants performants via Oracle Manager Server, possibilité de gérer en interne des
tâches et des alarmes
Gestion centralisée de plusieurs instances
Concept unique de retour arrière (Flashback)
Pérennité de l'éditeur : avec plus de 40% de part de marché, ce n'est pas demain
qu'Oracle disparaîtra
Réglages fins : dans la mesure ou l'on connait suffisament le moteur, presque TOUT
est paramétrable.
4







Accès aux données système via des vues, bien plus aisément manipulable que des
procédures stockées.
Interface utilisateur remaniée et extrêmement riche, permettant - enfin ! - le tuning fin
de requêtes par modification des plans d'exécution.
Architecture Multi-Générationelle (MGA)
Services Web, support XML
Ordonnanceur intégré
Compression des données et des sauvegardes
Support technique Orion extrêmement riche et fourni
Inconvénients












Prix élevé, tant au point de vue des licences que des composants matériels (RAM,
CPU) à fournir pour de bonnes performances
Administration complexe... liée à la richesse fonctionnelle
Fort demandeur de ressources, ce qui n'arrange rien au point précité, Oracle est bien
plus gourmand en ressource mémoire que ses concurrents, ce qui implique un
investissement matériel non négligeable. La connexion utilisateur nécessite par
exemple près de 700 Ko/utilisateur, contre une petite centaine sur des serverus MSSQL ou Sybase ASE. Gourmand aussi en espace disques puisque la plupart des
modules requièrent leur propre ORACLE_HOME de par le versionning de patches
incontrôle
Porosité entre les schémas = difficile de faire cohabiter de nombreuses applications
sans devoir créer plusieurs instances. Il manque réellement la couche "base de
données" au sens Db2/Microsost/Sybase du terme.
Métamodèle propriétaire, loin de la norme.
Tables partitionnées, RAC... uniquement possible à l'aide de modules payants
complémentaires sur la version Enterprise.
Gestion des verrous mortels mal conçue (suppression d'une commande bloquante sans
rollback)
Faiblesses de l'optimiseur (ne distingue pas les pages en cache ou en disque, n'utilise
pas d'index lors de tris généraux, statistiques régénérées par saccade...)
Une quantité du bugs proportionnelle à la richesse fonctionnelle, surtout sur les
dernières versions
Gestion erratique des rôles et privilèges (pas possible de donner des droits sur des
schémas particuliers sans passer par leurs objets, désactivation des rôles lors
d'exécution de packages...)
Pas de type auto-incrément déclaratif: les séquences ne peuvent être déclarativement
dédiées à une table spécifique (risque de mélange)
Nombreuses failles de sécurités liées à l'architecture elle-même
5
Construction de modèles MPD et MCD relatif à la gestion
de réservations de salles
Qu'est-ce qu'un MCD ?
Le modèle conceptuel des données (MCD) a pour but d'écrire de façon formelle
les données qui seront utilisées par le système d'information. Il s'agit donc d'une
représentation des données, facilement compréhensible, permettant de décrire le
système d'information à l'aide d'entités.
Voici le schéma MCD de notre base de données :
6
Qu'est-ce qu'un MPD ?
Le modèle physique de données est l’implantation de la base sur un ordinateur
en utilisant un langage de définition de données(SQL)
Voici le schéma MPD de notre base de données :
7
Création d'une base de données (scripts SQL)
Voici le script de notre base de données.
#Création de la table Type réservation
CREATE TABLE Type_reservation (No_type NUMBER(5) NOT NULL,
Nom_type VARCHAR(30),
PRIMARY KEY (No_type) );
#Création de la table Reservation
CREATE TABLE Reservation (No_reservation NUMBER(5) NOT NULL,
Date_reservation DATE,
Heure_debut TIME,
Heure_fin TIME,
Confirmation TEXT,
No_type NUMBER(5),
No_utilisateur NUMBER(4),
No_facture NUMBER(10),
PRIMARY KEY (No_reservation) );
#Création de la table utilisateur
CREATE TABLE Utilisateur (No_utilisateur NUMBER(4) NOT NULL,
Nom VARCHAR(30),
Prenom VARCHAR(30),
No_rue DOUBLE(4),
Code_Postal DOUBLE(5),
Ville VARCHAR(30),
Num_tel NUMBER(15),
Num_fax NUMBER(10),
Adresse_Mail VARCHAR(30),
Nom_Organisme VARCHAR(30),
No_type_util NUMBER(3) NOT NULL,
PRIMARY KEY (No_utilisateur) );
#Création de la table Type Utilisateur
CREATE TABLE Type_Utilisateur (No_type_util NUMBER(3) NOT NULL,
Nom_type_util VARCHAR(30),
PRIMARY KEY (No_type_util) );
#Création de la table Service
CREATE TABLE Service (No_service NUMBER(20) NOT NULL,
Nom_service VARCHAR(30),
Nbr_service NUMBER(20),
Prix NUMBER(9),
PRIMARY KEY (No_service) );
8
#Création de la table Type salle
CREATE TABLE Type_salle (No_type_salle NUMBER(5) NOT NULL,
Nom_type_salle VARCHAR(30),
PRIMARY KEY (No_type_salle) );
#Création de la table Salle
CREATE TABLE Salle (No_salle NUMBER(3) NOT NULL,
Nom_salle VARCHAR(30),
Emplacement VARCHAR(20),
Capacite VARCHAR(30),
Prise_reseau NUMBER(20),
Prise_elec NUMBER(20),
Prix_salle NUMBER(6),
No_type_salle NUMBER(5) NOT NULL,
PRIMARY KEY (No_salle) );
#Création de la table Facture
CREATE TABLE Facture (No_facture NUMBER(6) NOT NULL,
Nom_facture VARCHAR(30),
Montant NUMBER(5),
No_reservation NUMBER(5),
PRIMARY KEY (No_facture) );
#Création de la table Reserver
CREATE TABLE Reserver (No_reservation NUMBER(5) NOT NULL,
No_service NUMBER(20) NOT NULL,
No_salle NUMBER(3) NOT NULL,
PRIMARY KEY (No_reservation,
No_service,
No_salle) );
#Liaison entre la table Reservation et la Table Type_Reservation
ALTER TABLE Reservation ADD CONSTRAINT FK_Reservation_No_type FOREIGN KEY (No_type)
REFERENCES Type_reservation (No_type);
#Liaison entre la table Reservation et la Table Utilisateur
ALTER TABLE Reservation ADD CONSTRAINT FK_Reservation_No_utilisateur FOREIGN KEY
(No_utilisateur) REFERENCES Utilisateur (No_utilisateur);
#Liaison entre la table Reservation et la Table Facture
ALTER TABLE Reservation ADD CONSTRAINT FK_Reservation_No_facture FOREIGN KEY (No_facture)
REFERENCES Facture (No_facture);
9
#Liaison entre la table Utilisateur et la Table Type_Utilisateur
ALTER TABLE Utilisateur ADD CONSTRAINT FK_Utilisateur_No_type_util FOREIGN KEY (No_type_util)
REFERENCES Type_Utilisateur (No_type_util);
#Liaison entre la table Salle et la Table Type_Salle
ALTER TABLE Salle ADD CONSTRAINT FK_Salle_No_type_salle FOREIGN KEY (No_type_salle)
REFERENCES Type_salle (No_type_salle);
#Liaison entre la table Facture et la Table Reservation
ALTER TABLE Facture ADD CONSTRAINT FK_Facture_No_reservation FOREIGN KEY (No_reservation)
REFERENCES Reservation (No_reservation);
#Liaison entre la table Reserver et la Table Reservation
ALTER TABLE Reserver ADD CONSTRAINT FK_Reserver_No_reservation FOREIGN KEY
(No_reservation) REFERENCES Reservation (No_reservation);
#Liaison entre la table Reserveret la Table Service
ALTER TABLE Reserver ADD CONSTRAINT FK_Reserver_No_service FOREIGN KEY (No_service)
REFERENCES Service (No_service);
#Liaison entre la table Reserver et la Table Salle
ALTER TABLE Reserver ADD CONSTRAINT FK_Reserver_No_salle FOREIGN KEY (No_salle) REFERENCES
Salle (No_salle);
#Valider la configuration
Commit;
10
Téléchargement