Révision 504
Le Système d'information
Qu'est ce qu'un système d'information ? L'ensemble des ressources, matériels et imatériel necessaire et suffisante pour assurer le bon fonctionnement d'une structure.
Le S.I. est au service de l’entreprise
- L’objectif d’un S.I. est de restituer l’information à un utilisateur
- Les systèmes d’information préexistent à l’informatique
- Toutes les informations qui circulent dans l’organisation font partie du SI.
L'urbanisation des SI :
L'urbanisation du système d'information d'une entité ou d'une organisation, qui peut être une entreprise ou une administration, est une discipline d’ingénierie informatique consistant à faire évoluer le système d'information (SI) de celle-ci afin qu'il soutienne et accompagne efficacement les missions de ladite organisation et anticipe ses transformations. L'urbanisation du SI ne fait pas table rase du passé, mais tient compte de l'existant et permet de mieux envisager les évolutions ou contraintes internes et externes affectant le SI, en s'appuyant le cas échéant sur des opportunités technologiques. Les concepts manipulés s'apparentent à ceux de l'urbanisation de l'habitat humain (organisation des villes, du territoire), concepts qui ont été réutilisés en informatique pour formaliser ou modéliser la ré ingénierie du système d'information. (SI)
IaaS : Infrastructure as a service(AWS, Orange BZ)
C'est le système le plus demandé par les entreprises.
L'IaaS est un service de cloud computing offrant des ressources informatiques matérielles (stockage, réseau, baies de serveurs) au sein d'un environnement virtualisé, par le biais d'Internet ou d'une autre connexion.
Service Cloud
Deux types de contrat :
- public : On partage les baies avec d'autres clients.
- privée : On privatise les structures louées.
Base de données
- Qu'est ce qu'une base de données ?
Une base de donnée est est un enssemble de données organisé de manière structurés, organisé, et sécurisé.
- Les principales fonctions d'une base de données ?
-Stocker l'information de façon fiable
-Traiter de grand volumes de données
-Traiter rapidement kes données
-Sécuriser les accès aux données
-Controlle la qualité des données
-Partager les données
-Rendre accécible les données en réseau
Le Data mining est la pratique consistant à rechercher automatiquement de grandes quantités de données afin de découvrir des tendances et des modèles qui vont au-delà de la simple analyse.
- Une base de donnée relationnelle
La base de données permet d'organiser les données en tables (appellé relation) Chaque case de la table continent une information atomique Chaque ligne correspond à un objet. Chaque colonne correspond à une propriété.
- Une base de donnée orienté objet
C'est un type de base de donnée qui a explosé ces dernières année (block chaine)
- SGBD
- Exemples de SGBD
Oracle, Postgres, MySQL, MariaDB, MongoDB....
## étape clé
Analyse -> extraire -> structurer (MCD ou MEA) -> MLD -> MPD
MCD (modèle conceptuel de données)
Les entités
Une entité désigne un ensemble d'objet qui possèdent une sémantique et propriétés communes.
Les entites dans un MCD sont représenté par un rectangle, nom en majuscule
Les attribut
Est la modélisation d'une information élémentaire présente dans le discours.
C'est un élément déscriptif ou caractéristique de l'entité ou l'association.
C'est unique dans un modèle conceptuel et ne peut être rattaché qu'a un seul concetp (entité ou association).
Un attribut prend ses valeurs dans un ensemble de valeurs possibles appelé "domaine".
Un attribut est une donnée élémentaire, ce qui exclut les données
calculées ou dérivées.
Identifiant
Un identifiant d’entité permet de repérer une entité de manière unique et sans ambiguité parmi toutes les entités.
Un identifiant peut être constitué d’un ou plusieurs attributs.
Le ou les attributs identifiant une entité sont soulignés.
Association
Liaison entre plusieurs entités, avec une signification précise.
Une association peut être porteuse d’informations:
- Les cardinalités
- Les attributs
- Les contraintes (CIF)
Cardinalité
Types de cardinalité :
- 0,1 (peut-avoir zero ou une seule)
- 1 ,1 (Une seule et unique (forte))
- 0, N (peut-avoir zero ou plusieurs)
- 1,N (peut-avoir une seule ou plusieurs)
Valeur de droite c'est le minimum possible/obligatoire et à gauche la maximum possible/obligatoire
Règles :
- L’expression de la cardinalité est obligatoire.
- Il ne peut y avoir de cardinalité maximale égale à 0.
- Si une cardinalité est connue et vaut 2 ou plus, alors nous considérons qu’elle est indéterminée et vaut n. En effet, si cette valeur est définie lors de la conception, il se peut qu’elle évolue dans le futur. Il faut donc considérer n comme inconnue dès la conception.
ATTRIBUT d’une association
Des informations qui ne peuvent prendre de sens qu'avec la présence de l'ensemble des entités constituant cette relation
Un attribut peut être placé dans une association uniquement lorsqu’il dépend de toutes les entités liées par cette association.
Cardinalité sur une relation binaire: toute relation binaire avec cardinalité (1,1) ne peut être porteuse d’attribut
Association plurielle
Association plurielle: Associations différentes qui relient les mêmes entités
Association réflexive
Une association qui relie une entité à elle même: association réflexives
Associations n-aires
Possibilité d’associer plusieurs entités (n entités, n > 3)
Association ternaire
(3 entités)
Entité faible
Une entité qui ne peut être identifiée par ses seuls attributs propres est appelée entité faible.
Cas où l’identifiant d’une entité ne permet pas de l’identifier de manière unique
Son existence dépend d’une autre entité
Contraintes d’intégrité
-
Contraintes de domaine : "La fonction d’un enseignant à l’université prend sa valeur dans l’ensemble {Vacataire, Moniteur, ATER, MCF, Professeur, PRAG, PAST}“
-
Contraintes d'unicité : "Un département, identifié par son numéro, a un nom unique (il n’y a pas deux départements de même nom)“
-
Contraintes générales : "Un même examen ne peut pas avoir lieu dans deux salles différentes à la même date et à la même heure"
Les relation d'héritage (ou spécification)
La relation de généralisationspécialisation permet de modéliser :
une entité générique qui porte des propriétés communes dont un identifiant unique.
des sousensembles spécialisés, sans identifiant, qui portent des propriétés ou des caractéristiques spécifiques à chaque sous ensemble.
Ces spécificités peuvent porter sur des propriétés ou des relations.
Les 4 cas possibles et les contraintes associées :
eXclustion et couverture Totale (Partition) XT Intersection et couverture Totale (Totalité) T eXclustion et non couverture (Exclusion) X Insertion et non couverture (Pas de contrainte)
Notions-SQL-PhpMyAdmin (TD)
Les solutions pour créer une BDD :
Plusieurs possibilités s'offrent à nous. Tout d'abord à la main, en écrivant directement dans un terminal ou dans un fichier .sql à importer.
Exemple (MySQL/MariaDB) :
CREATE DATABASE 'data_base_name';
Une seconde solution est d'utiliser un outil de gestion de base de données comme phpMyadmin, Adminer, sqldeveloper.
Exemple de création de base de données avec phpMyAdmin :
On peut également utiliser un ORM (Object-Relational Mapping). Cela permet de faire le lien entre les objets de ton code et les données de ta base de donées. Je n'en connais que certaines utiliser dans le web comme par exmple sequelize pour node.js(javascript) Eloquent pour laravel (php) ou encore doctrine pour symphony (php).
En plus de pouvoir créer et gérer la structure d'une base de donnée d'un projet, ces outils permetes de générer pour la plupars d'entre eux de fausse donnée afin de remplir les base de donneés et de réasliser des test reels avec des donnée fictives.
Définir SQL, MySQL, PhpMyadmin
SQL (sigle pour Structured Query Language, « langage de requêtes structurées ») est un langage de programmation standard spécialement conçu pour stocker, extraire, gérer ou manipuler les données à l'intérieur d'un système de gestion de bases de données relationnelles (SGBDR)1234. Il permet d'effectuer des opérations telles que la création, la lecture, la mise à jour et la suppression de données.
MySQL est un système de gestion de bases de données relationnelles SQL open source développé et supporté par Oracle.MySQL n’est qu’un système populaire qui peut stocker et gérer ces données pour vous, et c’est une solution de base de données particulièrement populaire pour les sites WordPress
MariaDB est un système de gestion de base de données relationnelles. Après le rachat de MySQL par Sun Microsystems, puis de Sun par Oracle Corporation, son fondateur (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec MySQL. Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL.
phpMyAdmin (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL. Il s'agit de l'une des plus célèbres interfaces pour gérer une base de données MySQL sur un serveur PHP.
Installation de PhpMyAdmin
Sous Windows, on install une solution comme WAMPP ou XAMPP.
Voici les commandes sous linux (debian) afin d'installer un serveur web de A à Z avec Apache2, Php, phpMyAdmin et MariaDB:
Apache
sudo apt install apache2
Php
sudo apt install php php-common php-cli
php-mysql libapache2-mod-php php-mbstring php-json php-xml
MariaDB (ou MySQL)
sudo apt install mariadb-server
Création d'un utilisateur
pour gérer la base de données et éviter de tout faire avec l'utilisateur root.
pour se connecter au service : sudo mariadb
CREATE USER 'toto'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'toto'@'localhost' WITH GRANT OPTION;
PhpMyAdmin
sudo apt install phpmyadmin
Configuration de PhpMyAdmin
Une fois l'installation de PMA fini, lancer c'est 3 lignes afin de le configurer avec Apache 2:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo systemctl reload apache2.service
On peut ensuite accéder à phpMyAdmin via http://localhost/phpmyadmin
phpMyAdmin (reprise cours)
- phpMyAdmin est un outil qui nous permet de visualiser rapidement l'état de notre base de données ainsi que de la modifier, sans avoir à écrire de requêtes SQL.
- On crée généralement un champ nommé id qui sert à numéroter les en-trées d'une table. Ce champ doit avoir un index PRIMARY (on dit qu'on crée une clé primaire) et l'option AUTO_INCREMENT qui permet de laisser MySQL gérer la numérotation.
- MySQL gère différents types de données pour ses champs, à la ma-nière de PHP. On trouve des types adaptés au stockage de nombres, de textes, de dates, etc.
- phpMyAdmin possède un outil d'importation et d'exportation des tables qui nous permettra notamment d'envoyer notre base de données sur Internet lorsque nous mettrons notre site en ligne.
Initiation à SQL
Quelques notions de base :
- SELECT (noms des colonnes à afficher)
- FROM (nom de la table où se trouvent les colonnes susmentionnées)
- WHERE (condition(s) à remplir par les lignes)
- GROUP BY (condition(s) de regroupement des lignes)
- HAVING condition(s) à remplir par le groupe
- ORDER BY (ordre (Asc, Desc) d'affichage)
- LIKE ("qui ressemble à", la valeur est entouré de "%")
- ON (DANS pour faire des jointure)
- OR (Une condition OU une autre)
- AND (Une condition ET une autre)
- '*' (ALL)
- INSERT INTO (ajout d'une ligne à une table)
- UPDATE (Modification d'une ligne dans une table)
- SET (défini la valeur changé)
- DELETE (Supprime une valeur)
- DROP ou DROP TABLE (supprime une table ou un base)
Quelques exemples :
SELECT NomElv (ce qui doit être affiché)
FROM Eleves; (dans quelle table rechercher l’information)
SELECT NomMat, Coef (possibilité de selectionner plusieurs valeurs séparé par une virgule)
FROM Matieres;
SELECT NomElv
FROM Eleves
WHERE VilleElv = 'Toulon'; (OU VilleElv est égale à Toulon)
SELECT NomMat
FROM Notes
GROUP BY NomMat (Liste des matières où plus de 35 notes ont été données)
HAVING Count(Note) > 35;
SELECT NomMat
FROM Matieres
ORDER BY Coef Desc, NomMat Asc; (Coef par ordre décroissant et NomMat par ordre crassant (Alpha))
SELECT *
FROM Eleves
WHERE NomElv LIKE '%C%' OR NomElv LIKE '%c%';
INSERT INTO Eleves (NomElv, AdrElv, VilleElv) VALUES ('Tony', 'av Paul Doumer', 'Toulon');
UPDATE Eleves SET NomElv = 'Antony' (Nouvelle valeur)
WHERE NomElv = 'Tony'; (Ancienne valeur)
DELETE FROM Eleves
WHERE NomElv = 'Tony';
MLD (Modèle Logique des Données)
le MLD tient compte des choix concernant le système de gestion des données utilisé dans l’entreprise. Le plus utilisé est le modèle relationnel associé aux bases de données relationnelles (Oracle, Informix, SQLserver, ..., Access, Foxpro, Paradox, ...)
- Le domaine est l’ensemble des valeurs que peut prendre une donnée,
- une table est un sous-ensemble du produit des domaines, une table est donc un ensemble d’enregistrements (ou tuples, ou lignes),
- une table porte un nom et est composée d’attributs prenant leurs valeurs dans les domaines correspondants,
- une clé est constituée de 1 ou plusieurs attributs telle que une valeur de la clé d ́etermine exactement l’enregistrement,
- toute table posède une clé primaire et, éventuellement, des clés candidates (secondaire).
Passage MCD vers MLD :
Devien :







