Bonjour à tous,
Pensez vous que le programme suivant puisse constituer un SGBD ?

D’abord c’est quoi un SGBDR ?
C’est un programme qui permet de créer, de manipuler et d’interroger des bases de données relationnelles (les fichiers de base de données).

Pour simplifier les choses on travail en mono poste et pas en réseau (de toute façon quand on trouve les principes on peut après les servir à plusieurs ordinateurs, en gérant la concurrence, la sécurité…).

On délimite le projet aux opérations suivantes :
-Création des tables (modification et suppression, prochainement)
-Saisie d’informations (modification et suppression prochainement)
-Gestion des clés primaires (vérification de l’existence de la clé avant la saisie) prochainement
-Recherche d’éléments à travers un attribut ou plus, prochainement.
-Contrôle des types, prochainement
-Interrogation plus élaborée, prochainement
-Indexation et interrogation par script (comme SQL, il faut juste faire un compilateur) lointainement.

Le langage choisi est Pascal (parce que tout le monde le parle).


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Program SGBDR ;
Const chemin='C:\Users\toshiba\BD' ;
Type Attribut=Record
	SonNom, SonType,Cle : String;
	End;
Var Att : Attribut;
FAtt: File of Attribut;
FVal: File of String;
NomTable ,ReponseCaractere,ValeurAttribut :String;
Operation,ReponseEntiere: Integer;
Begin
Writeln('Que voulez vous faire : 1 Gestion des Tables, 2 Saisie, 3 Sortie') ;
Readln(Operation) ;
Case Operation of
{***********************************Création de table******************************}
1 :	Begin
	Writeln('donner un nom pour votre table');
	Readln(NomTable) ;
	Assign(FAtt,chemin+NomTable+'.Structure') ;
	Assign(FVal,chemin+NomTable+'.Valeurs') ;
Reset(FAtt); //on cr‚e les fichiers physiquement
Reset(FVal) ; close(FVal) ;
ReponseCaractere:='1';
While (ReponseCaractere='1') do
	Begin
	Writeln('Donner un nom d’attribut');
	Readln(Att.SonNom) ;
	Writeln('De quel type est il ?');
	Readln(Att.SonType) ;
	Writeln('Participe t''il à la clé: 1 oui, 2 non') ;
	Readln(ReponseEntiere) ;
    if ReponseEntiere=1 then Att.Cle:='oui' else Att.Cle:='non' ;
	Write(FAtt,Att) ;
	Writeln('Voulez vous continuer? 1 oui, 2 nom');
	Readln(ReponseCaractere);
	End;
  Close(FAtt);
   End;
{***********************************Saisie**********************************}
2:Begin
	Writeln('Donner le nom de la table');
	Read(NomTable) ;
	Assign(FAtt,chemin+NomTable+'.Structure') ;
	Assign(FVal,chemin+NomTable+'.Valeurs') ;
	Repeat
	Seek(FAtt,0);
	While (not eof (FAtt)) do
	        Begin
		Read(FAtt,Att);
		Writeln('Donner une valeur pour :',Att.SonNom) ;
		Readln(ValeurAttribut) ;
		Write(FVal, Valeurattribut) ;
                End;
	Writeln('Voulez vous : 1 Continuer, 2 Arreter') ;
	Read(ReponseCaractere) ;
	Until reponseCaractere='2' ;
 
  End;
End;
End.