-
Notifications
You must be signed in to change notification settings - Fork 0
erikk03/Implementation-of-Database-Systems-Project1
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published