Skip to content

Υλοποίηση Συστημάτων Βάσεων Δεδομένων, Εργασία 1

Notifications You must be signed in to change notification settings

erikk03/Implementation-of-Database-Systems-Project1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ΕΡΓΑΣΙΑ_1:
ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ 2023-2024

ΜΕΛΗ ΟΜΑΔΑΣ:
ΚΑΓΙΑΤΣΚΑ ΕΡΙΚ-1115202100043
ΚΑΛΑΜΠΟΚΗΣ ΕΥΑΓΓΕΛΟΣ-1115202100045
ΚΟΝΤΟΣ ΙΑΣΩΝ-1115202100064


ΥΛΟΠΟΙΗΣΗ:
- ΣΤΟ ΑΡΧΕΙΟ "hp_file.h":
ΒΡΙΣΚΟΝΤΑΙ ΟΙ ΔΥΟ ΒΑΣΙΚΕΣ ΔΟΜΕΣ(STRUCTS) ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝΤΑΙ:
Η ΔΟΜΗ " HP_info" ΕΚΤΟΣ ΑΠΟ ΤΑ ΖΗΤΟΥΜΕΝΑ ΠΕΡΙΕΧΕΙ ΕΠΙΠΛΕΟΝ ΤΟ ΔΙΑΘΕΣΙΜΟ ΧΩΡΟ ΤΟΥ ΜΠΛΟΚ ΠΟΥ ΒΡΙΣΚΟΜΑΣΤΕ ΓΙΑ ΕΓΓΡΑΦΗ(available_space)
ΚΑΙ ΕΝΑΝ ΔΕΙΚΤΗ ΣΤΗΝ ΑΡΧΗ ΤΟΥ ΤΕΛΕΥΤΑΙΟΥ ΜΠΛΟΚ(last_block).
ΜΕΤΑΦΕΡΘΗΚΕ, ΑΠΟ ΤΟ ΑΡΧΕΙΟ "hp_main.c", ΣΕ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ Ο ΟΡΙΣΜΟΣ(define) ΤΟΥ RECORDS_NUM ΚΑΘΩΣ ΓΙΝΕΤΑΙ ΧΡΗΣΗ ΤΟΥ ΚΑΙ ΣΤΟ ΑΡΧΕΙΟ "hp_file.c"
ΓΙΑ ΤΗΝ ΑΠΟΔΕΣΜΕΥΣΗ ΤΟΥ ΤΕΛΕΥΤΑΙΟΥ ΜΠΛΟΚ.

- ΣΤΟ ΑΡΧΕΙΟ "hp_file.c":
ΥΛΟΠΟΙΟΥΝΤΑΙ ΟΛΕΣ ΟΙ ΖΗΤΟΥΜΕΝΕΣ ΣΥΝΑΡΤΗΣΕΙΣ.
ΣΥΓΚΕΚΡΙΜΕΝΑ, ΣΤΗ ΣΥΝΑΡΤΗΣΗ "HP_InsertEntry" ΟΙ ΕΓΓΡΑΦΕΣ ΞΕΚΙΝΟΥΝ ΝΑ ΑΠΟΘΗΚΕΥΟΝΤΑΙ ΑΠΟ ΤΟ ΔΕΥΤΕΡΟ ΜΠΛΟΚ ΤΟΥ ΑΡΧΕΙΟΥ ΚΑΙ ΜΕΤΑ.
Ο ΛΟΓΟΣ ΕΙΝΑΙ ΟΤΙ ΣΤΟ ΠΡΩΤΟ ΜΠΛΟΚ ΥΠΑΡΧΕΙ Η ΔΟΜΗ  "HP_info", ΠΟΥ ΚΡΑΤΑ ΤΙΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΟΛΟΚΛΗΡΟ ΤΟ ΑΡΧΕΙΟ.
ΣΤΗ ΣΥΝΕΧΕΙΑ, ΣΤΟ ΤΕΛΟΣ ΚΑΘΕ ΜΠΛΟΚ, ΑΠΟ ΤΟ ΔΕΥΤΕΡΟ ΚΑΙ ΜΕΤΑ, ΑΠΟΘΗΚΕΥΕΤΑΙ Η ΔΟΜΗ "HP_block_info", ΠΟΥ ΚΡΑΤΑ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΚΑΘΕ ΜΠΛΟΚ.
ΟΙ ΕΓΓΡΑΦΕΣ ΛΟΙΠΟΝ , ΑΠΟΘΗΚΕΥΟΝΤΑΙ ΣΤΟ ΔΙΑΘΕΣΙΜΟ ΧΩΡΟ(available_space = BF_BLOCK_SIZE - sizeof(HP_block_info)).
Η ΣΥΝΑΡΤΗΣΗ "HP_GetAllEntries" ΕΠΙΣΤΡΕΦΕΙ ΤΟΝ ΑΡΙΘΜΟ ΤΟΝ ΜΠΛΟΚ ΠΟΥ ΔΙΑΒΑΣΤΗΚΑΝ ΜΕΧΡΙ ΝΑ ΒΡΕΘΕΙ Η ΤΕΛΕΥΤΑΙΑ ΕΓΓΡΑΦΗ ΤΟΥ ΑΡΧΕΙΟΥ ΜΕ id==value.
ΣΥΜΦΩΝΑ ΜΕ ΤΗΝ ΕΚΦΩΝΗΣΗ, ΔΕΝ ΘΕΛΟΥΜΕ ΤΟΝ ΣΥΝΟΛΙΚΟ ΑΡΙΘΜΟ ΤΩΝ ΜΠΛΟΚ ΠΟΥ ΘΑ ΔΙΑΒΑΣΤΟΥΝ, ΑΛΛΑ ΜΕΧΡΙ ΕΝΑ ΣΥΓΚΕΚΡΙΜΕΝΟ.

Υ.Γ: ΓΙΑ ΠΕΡΙΣΣΟΤΕΡΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΚΑΘΕ ΔΟΜΗΣ ΚΑΙ ΣΥΝΑΡΤΗΣΗΣ ΥΠΑΡΧΟΥΝ ΠΛΗΡΟΦΟΡΙΕΣ ΣΤΟ ΕΚΑΣΤΟΤΕ ΑΡΧΕΙΟ ΜΕ ΤΗΝ ΜΟΡΦΗ ΣΧΟΛΙΩΝ.


ΔΟΚΙΜΑΣΤΙΚΕΣ ΕΚΤΕΛΕΣΕΙΣ ΜΕ ΑΠΟΤΕΛΕΣΜΑΤΑ:
- ΓΙΑ RECORDS_NUM == 100:
    (69, Theofilos,Berreta,Tokyo)
- ΓΙΑ RECORDS_NUM == 1000:
    (235,Maria,Koronis,Hong Kong)
- ΓΙΑ RECORDS_NUM == 10000:
    (7747,Christofos,Berreta,Amsterdam)
- ΓΙΑ RECORDS_NUM == 100000:
    (35690,Dionisis,Rezkalla,Amsterdam)
- ΓΙΑ RECORDS_NUM == 1000000:
    (775503,Maria,Koronis,Munich)
- ΓΙΑ RECORDS_NUM == 10000000:
    (5505263,Dionisis,Mailis,Los Angeles)

Υ.Γ: ΟΙ ΕΚΤΕΛΕΣΕΙΣ ΔΟΚΙΜΑΣΤΗΚΑΝ ΣΤΑ ΛΙΝΟΥΞ ΤΗΣ ΣΧΟΛΗΣ ΓΙΑ RECORDS_NUM ΕΩΣ 1000000. ΕΓΙΝΕ ΕΠΙΠΛΕΟΝ ΕΚΤΕΛΕΣΗ ΣΕ ΔΙΚΟ ΜΑΣ ΜΗΧΑΝΗΜΑ
ΓΙΑ RECORDS_NUM == 10000000 ΚΑΘΩΣ ΠΑΡΑΤΗΡΗΘΗΚΕ ΣΗΜΑΝΤΙΚΗ ΔΙΑΦΟΡΑ ΣΤΟΥΣ ΧΡΟΝΟΥΣ ΕΚΤΕΛΕΣΗΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΤΑ ΔΥΟ ΜΗΧΑΝΗΜΑΤΑ.
ΕΠΙΠΛΕΟΝ, ΜΕ ΧΡΗΣΗ VALGRIND, ΕΠΙΒΕΒΑΙΩΝΕΤΑΙ Η ΣΩΣΤΗ ΑΠΟΔΕΣΜΕΥΣΗ ΧΩΡΟΥ ΚΑΘΩΣ ΔΕΝ ΠΑΡΑΤΗΡΟΥΝΤΑΙ LEAKS.

About

Υλοποίηση Συστημάτων Βάσεων Δεδομένων, Εργασία 1

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published