initial commit

This commit is contained in:
Guillaume-Sanchez
2026-05-26 13:56:03 +02:00
parent 4c720637a1
commit ff4bb12d22
539 changed files with 12415 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

+124
View File
@@ -0,0 +1,124 @@
# UTC504-15-10-2024
Cour de tron commun, 28 heures.
But -> se familiariser avec un système d'information et principalement des bases de données.
La conception, son exploitation et la sécurisation d'une base de données.
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.***
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 dingé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 transformations1. 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 informatique2 pour formaliser ou modéliser la réingénierie du système d'information (SI)
![image_diagrame](iaas_focus-paas-saas-diagram.png)
### On-site : les infrastructures sont sur sites.(DGFIP)
### IaaS : Infrastructure as a service(AWS, Orange BZ)
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 type de contrat :
* public : On partage les baies avec d'autre clients.
* privée : On privétise les structures louée.
C'est le système le plus demandé par les entreprises.
### PaaS : Platform as a service
### Saas : Software as a Service
Saas privée est le plus sécuriser. Car ton infrasructure dépend des services proposé et donc de leur sécurité. Ils se doivent d'être le plus sécurisé et à jours possible.
## 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)
![image](MCD-livres.png)
**Une entité** représente un objet ou un concept spécifique qui peut être stocké et manipulé dans une base de données
**Un attribut** est une caractéristique d'une entité susceptible d'être enregistrée dans la base de données. Par exemple, une personne (entité), son nom et son adresse (des attributs). Les attributs sont également appelés des champs ou des colonnes. Dans un MCD un attribut sera toujours souligé
**L'Identifiant** est une propriété unique et soulignée qui est présente dans les entités d'une modélisation MCD Merise.
**Une association** ou relation est donc la représentation dune liaison logique entre plusieurs entités.
- **La cardinalité** d'une association permet de représenter le nombre minimum et maximum d'instances qui sont autorisées à participer à la relation. La cardinalité est définie pour les deux sens de la relation.
- **Les attributs** d'une association ,l'emprunt d'un livre par une personne à une certaine date par exemple.
- **le type** d'une association (1,0 ou 0,N etc)
>ORM : Un mapping objet-relationnel (en anglais object-relational mapping ou ORM) est un type de programme informatique qui se place en interface entre un programme applicatif et une base de données relationnelle pour simuler une base de données orientée objet.
## Correction Exo Mini Monde
Considérons la BD ENTREPRISE qui contient les données sur les employés, les services et les projets dune société. Suite à la collecte de lanalyse des besoins, les
concepteurs fournissent la définition suivante du « minimonde » :
* La société est organisée en services. Chaque service a un nom et un numéro
uniques et est dirigé par un employé unique.
* Un service contrôle un certain nombre de projets, chacun dentre eux ayant un nom, un numéro et une durée. Un projet ne peut être contrôlé que par un seul service.
* Le nom de chaque employé, son numéro de sécurité sociale, son adresse, son salaire, son sexe et sa date de naissance sont mémorisés. Un employé est affecté à un service, mais peut travailler sur plusieurs projets qui ne sont pas forcément contrôlés par le même service. Le volume du travail dun employé sur chaque projet est mémorisé.Le supérieur immédiat de chaque employé est lui aussi mémorisé.
Vous allez identifier les entités de la base de données Entreprise ainsi que les
attributs.
| Entités | Attributs |
| :---------------: | :---------------: |
| SERVICES | nom, numéro uniques, un employé unique |
| PROJETS | nom, numéro, durée, un seul service |
| EMPLOYE | numéro de Sécurité social, adresse, salaire, sexe, dateDeNaissance, IdentifiantSupérieurImmediat |
| SUPERIEUR_IMMEDIAT |numéro de Sécurité social, adresse, salaire, sexe, dateDeNaissance, IdentifiantSupérieurImmediat |
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.
Binary file not shown.
+48
View File
@@ -0,0 +1,48 @@
# UTC504-16-10-2024
## Les associations
C'est une liaison qui va nous permetrer de créer un sens entre les entiters.
Elle peuvent t'être porteuse d'informations
* les cadinalité
* les attributs
* les contraintes (CIF/CIM)
### Les cardinalités
Exprime la façon dont sont associées les entités.
Elle s'emprime toujours par un minimum et un maximum.
**Les combinaisons possible :**
* 0,1 -> minimum 0, maximum 1
* 0,n -> minimum 0, maximum oo
* 1,1 -> minimum 1, maximum 1
* 1,n -> minimum 1, maximum oo
* n,n -> minimum x, maximum x
* n,m -> minimum x, maximum y
Une association peut-avoir des attribut. Le principe de base d'un atribut dans une association c'est d'avoir une information qui concerne les deux tables.
### Atribut des associations
Toute relations binaires (association entre deux table), avec cardinalité 1,1 ne peuvent être porteuses d'attribut dans cette partis.
### Association plurielle
2 Associations differentes qui relie 2 entiters.
### Association reflexive
Association qui va nous ramener vers la table.
### Associations n-aires / ternaire
Association ternaire (3 entités), il faut les éviter le plus possible si elles sont superieur à 3 entiter.
Boucle fermer entre 3 entiter et 3 associations.
On peut a la place utiliser 3 entiter et seulement 1 association.
### Entité faible
Entité qui ne peut avoir un sens seulement que si elle est lié a une autre entité.
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
# UTC 504-15-10-2024
+68
View File
@@ -0,0 +1,68 @@
-- Adminer 4.7.5 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
SET NAMES utf8mb4;
DROP TABLE IF EXISTS `etablissement`;
CREATE TABLE `etablissement` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`adresse` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`telephone` int(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`fax` in(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `formation`;
CREATE TABLE `formation` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type',
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `personnel`;
CREATE TABLE `personnel` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type',
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `eleve`;
CREATE TABLE `eleve` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type',
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `entreprise`;
CREATE TABLE `entreprise` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type',
`created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type',
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 2020-04-10 22:54:29
+20
View File
@@ -0,0 +1,20 @@
# UTC 504-27-11-2024
## Héritage
Un indentifiant unique.
un sous-ensembles spécialisation, sans indentifiant.
## Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf
### Exemple 1 :
![exemple1](./exemple1.png)
### Exemple 2 :
![exemple1](./exemple2.png)
### Exemple 3 :
![exemple1](./exemple3.png)
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@@ -0,0 +1,72 @@
# UTC504-Notions-SQL-PhpMyAdmin
> Guillaume SANCHEZ, Tom BAZIRE, Anthony MVAKANGA
## 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 :
![create base](https://i.postimg.cc/y8KtrDFZ/Capture-d-cran-du-2025-01-09-15-00-26.png)
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 nest quun système populaire qui peut stocker et gérer ces données pour vous, et cest 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
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
# UTC 504 30/01/2024
```
Frontend
|
v
Backend -> Traitement -> Langage fonctionnel
|
v
BDD
```
## SQL
3 tables :
Eleves : (NomElv, AdrElv, VilleElv),
Matières : (NomMat, Coef, Intitule),
Notes : (NomElv, NomMat, Date, Note).
+15
View File
@@ -0,0 +1,15 @@
# UTC 504 19/02/25
## Le Diagrame de Classes (MPD)
MCD -> MLD -> MPD
MCD = Model conceptuel de données (voir cours sur MCD)
MLD = Modèle Logique de données
## MLD
CIF contrainte d'integrité fonctionnel = 1:1
CIM contrainte d'intégrité multipe = n
+32
View File
@@ -0,0 +1,32 @@
# Exercice 1 : passer du MCD au MLD
```
Coureur
ClePrimNuméro de coureur
NomCoureur
CleSecCodePays
CleSecCodeEquipe
Pays
ClePrimCodePays
NomsPays
Equipe
ClePrimCodeEquipe
NomEquipe
DirecteurSportif
Etape
NuméroEtape
Date
VilleDepart
VilleArrivee
NbKm
Participation
ClePrimCodeParticipation
TempsRealise
CleSecCoureur
CleSecEtape
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

+24
View File
@@ -0,0 +1,24 @@
# Exercice 2 : passer du MCD au MLD
```
Facture
ClePrimNumFacture
DateFacture
CleSecNumClient
Client
ClePrimNumClient
NomClient
AdresseClient
Produit
ClePrimRefProd
LibProd
PUHTProd
Concerne
ClePrimConcerne
Qté
CleSecFacture
CleSeProduit
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

+10
View File
@@ -0,0 +1,10 @@
# TD3 Passage d'un modèle conceptuel au modèle physique
>Antoine DECABOOTER HOLLEMAN et Guillaume Sanchez
## Que signifie le X inscrit dans le symbole d'héritage ?
le X signifie Exclusion
## Validez ou pas les assertions induites de manière explicite ou implicite par cet héritage muni d'une contrainte ?
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
# UTC 504 BDD
* [15/10/24](./UTC504-15-10-24/)
* [16/10/24](./UTC504-16-10-24/)
* [06/11/24](./UTC504-06-11-24/)
* [27/11/24](./UTC504-27-11-24/)
* [09/01/25](./UTC504-09-01-25/)
* [30/01/25](./UTC504-30-01-24/)
* [19/02/25](./UTC504-19-02-24/)
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+371
View File
@@ -0,0 +1,371 @@
# 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 lentreprise
- Lobjectif dun S.I. est de restituer linformation à un utilisateur
- Les systèmes dinformation préexistent à linformatique
- Toutes les informations qui circulent dans lorganisation 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 dingé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)
![image_diagrame](iaas_focus-paas-saas-diagram.png)
### 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)
![image](MCD-livres.png)
### 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 dentité permet de repérer une entité de manière
unique et sans ambiguité parmi toutes les entités.
Un identifiant peut être constitué dun 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 dinformations:
- 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 :
- Lexpression 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
quelle est indéterminée et vaut n. En effet, si cette valeur est définie lors
de la conception, il se peut quelle évolue dans le futur. Il faut donc
considérer n comme inconnue dès la conception.
### ATTRIBUT dune 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
lorsquil 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 dattribut
#### 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é dassocier 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ù lidentifiant dune entité ne permet pas de lidentifier de manière
unique
Son existence dépend dune autre entité
### Contraintes dintégrité
- Contraintes de domaine : "La fonction dun enseignant à luniversité
prend sa valeur dans lensemble {Vacataire, Moniteur, ATER, MCF,
Professeur, PRAG, PAST}“
- Contraintes d'unicité : "Un département, identifié par son numéro, a
un nom unique (il ny 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éralisation­spécialisation permet de modéliser :
une entité générique qui porte des propriétés communes dont un
identifiant unique.
des sous­ensembles 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 :
e**X**clustion et couverture **T**otale (Partition) ***XT***
Intersection et couverture **T**otale (Totalité) ***T***
e**X**clustion et non couverture (Exclusion) ***X***
Insertion et non couverture (Pas de contrainte)
![contraintes_associees](./contraintes_associees.png)
![relation_heritage1](./relation_heritage1.png)
![relation_heritage2](./relation_heritage2.png)
![relation_heritage3](./relation_heritage3.png)
## 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 :
![create base](https://i.postimg.cc/y8KtrDFZ/Capture-d-cran-du-2025-01-09-15-00-26.png)
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 nest quun système populaire qui peut stocker et gérer ces données pour vous, et cest 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 linformation)
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 lentreprise. Le plus utilisé est le modèle relationnel associé aux bases de données relationnelles (Oracle, Informix, SQLserver, ..., Access, Foxpro, Paradox, ...)
- Le domaine est lensemble des valeurs que peut prendre une
donnée,
- une table est un sous-ensemble du produit des domaines, une table est donc un ensemble denregistrements (ou tuples, ou lignes),
- une table porte un nom et est composée dattributs 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 lenregistrement,
- toute table posède une clé primaire et, éventuellement, des
clés candidates (secondaire).
### Passage MCD vers MLD :
![MCD](./MCD.png)
Devien :
![MLD](./MLD.png)
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB