Ceci est une ancienne révision du document !
Base capteurs
Pour structurer une base de données qui stocke efficacement les données issues de votre fichier, vous devez prendre en compte la nature des données et la manière dont vous prévoyez de les utiliser. Voici une approche possible :
<markdown> ### Structure de la Base de Données
1. Table des Mesures (par exemple, `mesures`) :
Cette table stockera les lectures des capteurs. Voici une structure possible :
- `id` : Un identifiant unique pour chaque mesure (clé primaire).
- `timestamp` : Le moment de la mesure.
- `capteur_id` : Un identifiant pour le capteur qui a effectué la mesure.
- `valeur` : La valeur mesurée.
2. Table des Capteurs (par exemple, `capteurs`) :
Cette table contiendra des informations sur chaque capteur. Voici une structure possible :
- `capteur_id` : Un identifiant unique pour chaque capteur (clé primaire).
- `nom` : Le nom du capteur (par exemple, `temp`, `def3`, `abc2`, `cxz4`).
- `type` : Le type de mesure effectuée par le capteur (température, pression, etc.).
- `description` : Une description optionnelle du capteur.
### Exemple de Modèle
#### Table `capteurs`
| capteur_id | nom | type | description |
| ———— | —— | ————– | ——————– |
| 1 | temp | Température | Capteur de temp. |
| 2 | def3 | Pression | Capteur de press. |
| 3 | abc2 | Humidité | Capteur d'humidité |
| 4 | cxz4 | Autre mesure | Description… |
#### Table `mesures`
| id | timestamp | capteur_id | valeur |
| —– | ——————— | ———— | ——– |
| 1 | 2023-12-01 12:07:48 | 1 | 210 |
| 2 | 2023-12-01 12:07:48 | 2 | 109 |
| 3 | 2023-12-01 12:07:48 | 3 | 12 |
| 4 | 2023-12-01 12:07:48 | 4 | -44 |
### Avantages de cette Structure
- Flexibilité : Cette structure permet d'ajouter facilement de nouveaux capteurs sans modifier la structure de la base de données. - Normalisation : Elle évite la redondance des données et facilite la maintenance. - Évolutivité : Elle peut gérer un grand nombre de mesures et de types de capteurs. - Interrogation Facile : Il est facile de faire des requêtes pour obtenir des mesures spécifiques, des tendances sur une période, des comparaisons entre capteurs, etc.
### Considérations Techniques
- Indexation : Assurez-vous d'indexer la colonne `timestamp` dans la table `mesures` pour des requêtes plus rapides. - Type de Données : Choisissez le type de données approprié pour chaque colonne (par exemple, `DATETIME` ou `TIMESTAMP` pour `timestamp`, `INT` ou `FLOAT` pour `valeur`). - Gestion des Grandes Données : Si votre base de données devient très grande, envisagez des stratégies comme le partitionnement ou l'archivage des anciennes données.
### Implémentation
L'implémentation dépendra du système de gestion de base de données que vous utilisez (comme MySQL, PostgreSQL, SQLite, etc.). Vous devrez créer ces tables et écrire des scripts ou des programmes pour extraire les données de vos fichiers et les insérer dans la base de données. </markdown>
Tables
-- Création de la table 'capteurs' CREATE TABLE capteurs ( capteur_id SERIAL PRIMARY KEY, nom VARCHAR(50) NOT NULL, TYPE VARCHAR(100), description TEXT ); -- Création de la table 'mesures' CREATE TABLE mesures ( id SERIAL PRIMARY KEY, TIMESTAMP TIMESTAMP NOT NULL, capteur_id INTEGER NOT NULL, valeur FLOAT NOT NULL, FOREIGN KEY (capteur_id) REFERENCES capteurs (capteur_id) ); -- Création de la table 'experiences' CREATE TABLE experiences ( experience_id SERIAL PRIMARY KEY, host VARCHAR(100), nom_experience VARCHAR(100), date_debut DATE ); -- Création de la table 'evenements' CREATE TABLE evenements ( evenement_id SERIAL PRIMARY KEY, experience_id INTEGER NOT NULL, TIMESTAMP TIMESTAMP NOT NULL, description TEXT, FOREIGN KEY (experience_id) REFERENCES experiences (experience_id) ); -- Modification de la table 'mesures' pour inclure 'experience_id' ALTER TABLE mesures ADD COLUMN experience_id INTEGER; ALTER TABLE mesures ADD FOREIGN KEY (experience_id) REFERENCES experiences (experience_id);