Merci pour les images.
Je vois que vous travaillez sur la mise en place d'une base de données pour la
gestion des biens immobiliers. Voici comment vous pouvez continuer les tâches demandées :
### 1. Compléter les propriétés de chaque entité
- **Ville** : ID_Ville (clé primaire), Nom_Ville.
- **Commune** : ID_Commune (clé primaire), Nom_Commune, ID_Ville (clé étrangère).
- **Quartier** : ID_Quartier (clé primaire), Nom_Quartier, ID_Commune (clé étrangère).
- **Adresse** : ID_Adresse (clé primaire), Rue, Code_Postal, ID_Quartier (clé étrangère).
- **Bien** : ID_Bien (clé primaire), Description, Prix, ID_Adresse (clé étrangère), ID_TypeBien (clé
étrangère).
- **Type de Bien** : ID_TypeBien (clé primaire), Type.
- **Contrat** : ID_Contrat (clé primaire), Date_Contrat, ID_Client (clé étrangère), ID_Bien (clé
étrangère).
- **Client** : ID_Client (clé primaire), Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client.
### 2. Transformer le MCD au MLD
Votre MLD (Modèle Logique de Données) devrait refléter les relations entre les entités décrites ci-
dessus, en ajoutant les clés étrangères et en définissant les cardinalités. Par exemple :
- Une Ville peut avoir plusieurs Communes.
- Une Commune peut avoir plusieurs Quartiers.
- Un Quartier peut avoir plusieurs Adresses.
- Une Adresse peut avoir plusieurs Biens.
### 3. Implémenter la base de données en mode console
À partir des informations précédentes, vous pouvez créer vos tables MySQL. Vous avez déjà commencé
avec la création de la base de données `gestiondesbiens`. Voici comment vous pouvez continuer :
```sql
-- Création des tables
CREATE TABLE Ville (
ID_Ville INT AUTO_INCREMENT PRIMARY KEY,
Nom_Ville VARCHAR(255) NOT NULL
);
CREATE TABLE Commune (
ID_Commune INT AUTO_INCREMENT PRIMARY KEY,
Nom_Commune VARCHAR(255) NOT NULL,
ID_Ville INT,
FOREIGN KEY (ID_Ville) REFERENCES Ville(ID_Ville)
);
CREATE TABLE Quartier (
ID_Quartier INT AUTO_INCREMENT PRIMARY KEY,
Nom_Quartier VARCHAR(255) NOT NULL,
ID_Commune INT,
FOREIGN KEY (ID_Commune) REFERENCES Commune(ID_Commune)
);
CREATE TABLE Adresse (
ID_Adresse INT AUTO_INCREMENT PRIMARY KEY,
Rue VARCHAR(255),
Code_Postal VARCHAR(10),
ID_Quartier INT,
FOREIGN KEY (ID_Quartier) REFERENCES Quartier(ID_Quartier)
);
CREATE TABLE TypeBien (
ID_TypeBien INT AUTO_INCREMENT PRIMARY KEY,
Type VARCHAR(255)
);
CREATE TABLE Bien (
ID_Bien INT AUTO_INCREMENT PRIMARY KEY,
Description TEXT,
Prix DECIMAL(10, 2),
ID_Adresse INT,
ID_TypeBien INT,
FOREIGN KEY (ID_Adresse) REFERENCES Adresse(ID_Adresse),
FOREIGN KEY (ID_TypeBien) REFERENCES TypeBien(ID_TypeBien)
);
CREATE TABLE Client (
ID_Client INT AUTO_INCREMENT PRIMARY KEY,
Nom_Client VARCHAR(255),
Prenom_Client VARCHAR(255),
Adresse_Client TEXT,
Telephone_Client VARCHAR(15)
);
CREATE TABLE Contrat (
ID_Contrat INT AUTO_INCREMENT PRIMARY KEY,
Date_Contrat DATE,
ID_Client INT,
ID_Bien INT,
FOREIGN KEY (ID_Client) REFERENCES Client(ID_Client),
FOREIGN KEY (ID_Bien) REFERENCES Bien(ID_Bien)
);
```
### 4. Faire l’ajout des contraintes sur chaque clé étrangère
Les contraintes ont déjà été ajoutées dans les requêtes SQL ci-dessus avec les commandes `FOREIGN
KEY`.
### 5. Faire l’insertion d’au moins 5 enregistrements dans chaque table
Voici un exemple d'insertion pour la table `Ville` :
```sql
INSERT INTO Ville (Nom_Ville) VALUES ('Kisangani');
INSERT INTO Ville (Nom_Ville) VALUES ('Lubumbashi');
INSERT INTO Ville (Nom_Ville) VALUES ('Kinshasa');
INSERT INTO Ville (Nom_Ville) VALUES ('Goma');
INSERT INTO Ville (Nom_Ville) VALUES ('Bukavu');
D'accord, je vais compléter l'insertion des données pour la 5e étape en utilisant le nom de la première
personne, "Elonga Mozwa". Voici un exemple d'insertion pour chaque table :
### 1. Insérer des données dans la table `Ville`
```sql
INSERT INTO Ville (Nom_Ville) VALUES ('Kisangani');
INSERT INTO Ville (Nom_Ville) VALUES ('Lubumbashi');
INSERT INTO Ville (Nom_Ville) VALUES ('Kinshasa');
INSERT INTO Ville (Nom_Ville) VALUES ('Goma');
INSERT INTO Ville (Nom_Ville) VALUES ('Bukavu');
```
### 2. Insérer des données dans la table `Commune`
```sql
INSERT INTO Commune (Nom_Commune, ID_Ville) VALUES ('Makiso', 1);
INSERT INTO Commune (Nom_Commune, ID_Ville) VALUES ('Kampemba', 2);
INSERT INTO Commune (Nom_Commune, ID_Ville) VALUES ('Gombe', 3);
INSERT INTO Commune (Nom_Commune, ID_Ville) VALUES ('Ndosho', 4);
INSERT INTO Commune (Nom_Commune, ID_Ville) VALUES ('Kadutu', 5);
```
### 3. Insérer des données dans la table `Quartier`
```sql
INSERT INTO Quartier (Nom_Quartier, ID_Commune) VALUES ('Tshopo', 1);
INSERT INTO Quartier (Nom_Quartier, ID_Commune) VALUES ('Ruashi', 2);
INSERT INTO Quartier (Nom_Quartier, ID_Commune) VALUES ('La Gombe', 3);
INSERT INTO Quartier (Nom_Quartier, ID_Commune) VALUES ('Mugunga', 4);
INSERT INTO Quartier (Nom_Quartier, ID_Commune) VALUES ('Panzi', 5);
```
### 4. Insérer des données dans la table `Adresse`
```sql
INSERT INTO Adresse (Rue, Code_Postal, ID_Quartier) VALUES ('Avenue Mobutu', '001', 1);
INSERT INTO Adresse (Rue, Code_Postal, ID_Quartier) VALUES ('Avenue Kabila', '002', 2);
INSERT INTO Adresse (Rue, Code_Postal, ID_Quartier) VALUES ('Avenue du 30 Juin', '003', 3);
INSERT INTO Adresse (Rue, Code_Postal, ID_Quartier) VALUES ('Avenue Nindja', '004', 4);
INSERT INTO Adresse (Rue, Code_Postal, ID_Quartier) VALUES ('Avenue de la Paix', '005', 5);
```
### 5. Insérer des données dans la table `TypeBien`
```sql
INSERT INTO TypeBien (Type) VALUES ('Appartement');
INSERT INTO TypeBien (Type) VALUES ('Maison');
INSERT INTO TypeBien (Type) VALUES ('Bureau');
INSERT INTO TypeBien (Type) VALUES ('Commerce');
INSERT INTO TypeBien (Type) VALUES ('Terrain');
```
### 6. Insérer des données dans la table `Bien`
```sql
INSERT INTO Bien (Description, Prix, ID_Adresse, ID_TypeBien) VALUES ('Appartement 3 chambres à
Makiso', 50000, 1, 1);
INSERT INTO Bien (Description, Prix, ID_Adresse, ID_TypeBien) VALUES ('Maison 5 chambres à
Kampemba', 120000, 2, 2);
INSERT INTO Bien (Description, Prix, ID_Adresse, ID_TypeBien) VALUES ('Bureau au centre de Kinshasa',
75000, 3, 3);
INSERT INTO Bien (Description, Prix, ID_Adresse, ID_TypeBien) VALUES ('Commerce à Goma', 60000, 4,
4);
INSERT INTO Bien (Description, Prix, ID_Adresse, ID_TypeBien) VALUES ('Terrain à vendre à Bukavu',
45000, 5, 5);
```
### 7. Insérer des données dans la table `Client`
```sql
INSERT INTO Client (Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client) VALUES ('Elonga',
'Mozwa', 'Avenue Mobutu, Kisangani', '123456789');
INSERT INTO Client (Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client) VALUES ('Kabuya',
'Michel', 'Avenue Kabila, Lubumbashi', '987654321');
INSERT INTO Client (Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client) VALUES ('Lokwa',
'Sandra', 'Avenue du 30 Juin, Kinshasa', '456123789');
INSERT INTO Client (Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client) VALUES ('Ndjeka',
'Ruth', 'Avenue Nindja, Goma', '321654987');
INSERT INTO Client (Nom_Client, Prenom_Client, Adresse_Client, Telephone_Client) VALUES ('Mambo',
'Paul', 'Avenue de la Paix, Bukavu', '789321654');
```
### 8. Insérer des données dans la table `Contrat`
```sql
INSERT INTO Contrat (Date_Contrat, ID_Client, ID_Bien) VALUES ('2024-08-01', 1, 1);
INSERT INTO Contrat (Date_Contrat, ID_Client, ID_Bien) VALUES ('2024-08-02', 2, 2);
INSERT INTO Contrat (Date_Contrat, ID_Client, ID_Bien) VALUES ('2024-08-03', 3, 3);
INSERT INTO Contrat (Date_Contrat, ID_Client, ID_Bien) VALUES ('2024-08-04', 4, 4);
INSERT INTO Contrat (Date_Contrat, ID_Client, ID_Bien) VALUES ('2024-08-05', 5, 5);
```
Ces exemples devraient compléter les enregistrements nécessaires pour chaque table. Vous pouvez
ajuster ou ajouter des détails selon vos besoins.
```
Vous pouvez continuer à insérer des données similaires pour les autres tables.
### 6. Afficher la liste des biens selon la commune
Pour afficher les biens selon une commune spécifique :
```sql
SELECT Bien.Description, Bien.Prix
FROM Bien
JOIN Adresse ON Bien.ID_Adresse = Adresse.ID_Adresse
JOIN Quartier ON Adresse.ID_Quartier = Quartier.ID_Quartier
JOIN Commune ON Quartier.ID_Commune = Commune.ID_Commune
WHERE Commune.Nom_Commune = 'Votre_Commune';
```
### 7. Afficher la liste des clients qui ont au moins signé d’un bien selon le type bien
Pour afficher les clients selon le type de bien :
```sql
SELECT Client.Nom_Client, Client.Prenom_Client
FROM Client
JOIN Contrat ON Client.ID_Client = Contrat.ID_Client
JOIN Bien ON Contrat.ID_Bien = Bien.ID_Bien
JOIN TypeBien ON Bien.ID_TypeBien = TypeBien.ID_TypeBien
WHERE TypeBien.Type = 'Votre_TypeBien';
```
### 8. Afficher la liste des clients qui ont au moins signé un contrat dont le nom de bien commence par
une lettre de votre choix
Par exemple, pour la lettre "A" :
```sql
SELECT Client.Nom_Client, Client.Prenom_Client
FROM Client
JOIN Contrat ON Client.ID_Client = Contrat.ID_Client
JOIN Bien ON Contrat.ID_Bien = Bien.ID_Bien
WHERE Bien.Description LIKE 'A%';
```
N'hésitez pas à me faire savoir si vous avez besoin d'autres détails ou si vous souhaitez vérifier vos
requêtes SQL!