Μάθημα 2: Αποθήκευση Δεδομένων
2.1 Εισαγωγή στην Άλγεβρα Boole
Η Άλγεβρα Boole αποτελεί τη μαθηματική βάση της ψηφιακής λογικής και, κατ’ επέκταση, όλης της λειτουργίας των σύγχρονων υπολογιστών. Εισήχθη τον 19ο αιώνα από τον μαθηματικό George Boole, ο οποίος επιδίωξε να περιγράψει τη διαδικασία της λογικής σκέψης με αυστηρούς μαθηματικούς όρους. Σε αντίθεση με την κλασική άλγεβρα, που χειρίζεται συνεχείς αριθμούς, η Άλγεβρα Boole λειτουργεί με δύο μόνο τιμές:
0 (False – Ψευδές)
1 (True – Αληθές)
Οι πράξεις που εκτελούνται είναι λογικές και όχι αριθμητικές. Έτσι, η άλγεβρα αυτή δεν έχει ως σκοπό να υπολογίσει ποσότητες, αλλά να ελέγξει συνθήκες και να περιγράψει σχέσεις. Η συμβολή της στην πληροφορική είναι θεμελιώδης: κάθε εντολή που εκτελεί ένας επεξεργαστής, κάθε επιλογή «ναι ή όχι», «άνοιξε ή κλείσε», κάθε απόφαση σε ένα πρόγραμμα, βασίζεται στις αρχές της Άλγεβρας Boole.
2.2 Βασικές Λογικές Πράξεις
Οι βασικότερες πράξεις της Άλγεβρας Boole είναι οι εξής:
Σύζευξη (AND)
Το αποτέλεσμα είναι 1 μόνο αν και τα δύο δεδομένα είναι 1.
Πίνακας αληθείας:
| A | B | A AND B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Διάζευξη (OR)
Το αποτέλεσμα είναι 1 αν τουλάχιστον ένα από τα δεδομένα είναι 1.
Πίνακας αληθείας:
| A | B | A OR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Άρνηση (NOT)
Αντιστρέφει την τιμή: το 0 γίνεται 1 και το 1 γίνεται 0.
Πίνακας αληθείας:
| A | NOT A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Αποκλειστική Διάζευξη (XOR)
Το αποτέλεσμα είναι 1 αν οι είσοδοι είναι διαφορετικές.
Πίνακας αληθείας:
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
2.3 Ιδιότητες της Άλγεβρας Boole
Η Άλγεβρα Boole διέπεται από ιδιότητες αντίστοιχες με αυτές της αριθμητικής, οι οποίες χρησιμοποιούνται για την απλοποίηση εκφράσεων:
Αντιμεταθετική Ιδιότητα: A + B = B + A, A · B = B · A
Προσεταιριστική Ιδιότητα: (A + B) + C = A + (B + C)
Κατανεμητική Ιδιότητα: A · (B + C) = (A · B) + (A · C)
Νόμος της Διπλής Άρνησης: ¬(¬A) = A
Ταυτότητες: A + 0 = A, A · 1 = A
Οι ιδιότητες αυτές επιτρέπουν τον σχεδιασμό πιο απλών και αποδοτικών κυκλωμάτων.
2.4 Λογικές Πύλες
Οι λογικές πράξεις υλοποιούνται σε φυσικό επίπεδο μέσω λογικών πυλών (logic gates). Μια πύλη είναι ένα ηλεκτρονικό κύκλωμα με είσοδο/εξόδους, το οποίο εκτελεί μια βασική λογική πράξη.
AND Gate: δίνει έξοδο 1 μόνο αν και οι δύο είσοδοι είναι 1.
OR Gate: δίνει έξοδο 1 αν τουλάχιστον μία είσοδος είναι 1.
NOT Gate (Inverter): αντιστρέφει την τιμή της εισόδου.
XOR Gate: δίνει έξοδο 1 μόνο αν οι είσοδοι είναι διαφορετικές.
NAND Gate: άρνηση της AND. Πολύ σημαντική, γιατί με NAND μπορούμε να υλοποιήσουμε οποιαδήποτε λογική συνάρτηση.
NOR Gate: άρνηση της OR.
Παράδειγμα: Ένα κύκλωμα που ελέγχει αν ένα άτομο έχει δικαίωμα πρόσβασης μπορεί να χρησιμοποιεί μια AND gate: μόνο αν έχει κάρτα (1) και γνωρίζει τον κωδικό (1), τότε δίνεται πρόσβαση (1).
2.5 Συνδυαστικά Κυκλώματα
Ένα συνδυαστικό κύκλωμα (combinational circuit) είναι ένα σύστημα από λογικές πύλες, στο οποίο η έξοδος εξαρτάται μόνο από την τρέχουσα είσοδο και όχι από προηγούμενες καταστάσεις.
Παραδείγματα:
Κυκλώματα πρόσθεσης (Half Adder, Full Adder).
Αποκωδικοποιητές (Decoders).
Πολυπλέκτες (Multiplexers).
2.6 Ακολουθιακά Κυκλώματα και Flip-Flops
Σε αντίθεση με τα συνδυαστικά, τα ακολουθιακά κυκλώματα (sequential circuits) έχουν «μνήμη»: η έξοδος εξαρτάται τόσο από τις τρέχουσες εισόδους όσο και από προηγούμενες καταστάσεις.
Η βασική μονάδα μνήμης σε αυτά τα κυκλώματα είναι το flip-flop:
Έχει δύο σταθερές καταστάσεις (0 και 1).
Μπορεί να αποθηκεύσει 1 bit πληροφορίας.
Χρησιμοποιείται για την κατασκευή καταχωρητών, μετρητών και τελικά της ίδιας της κύριας μνήμης.
Τύποι flip-flops:
SR (Set-Reset) Flip-Flop.
JK Flip-Flop.
D (Data) Flip-Flop: το πιο διαδεδομένο, καθώς απλοποιεί τον έλεγχο της εισόδου.
Παράδειγμα: σε έναν ψηφιακό μετρητή, κάθε παλμός ρολογιού (clock pulse) αλλάζει την κατάσταση των flip-flops, με αποτέλεσμα την αύξηση του μετρητή κατά μία μονάδα.
2.7 Συνοψίζοντας: Άλγεβρα Boole, Λογικές Πύλες και Flip-Flops
Η Άλγεβρα Boole, οι λογικές πύλες και τα flip-flops αποτελούν τα «τούβλα» από τα οποία οικοδομούνται όλα τα ψηφιακά συστήματα. Από τους επεξεργαστές και τις μνήμες μέχρι τα κινητά τηλέφωνα και τους δορυφόρους, κάθε λειτουργία βασίζεται σε αυτή την απλή αλλά ισχυρή ιδέα: ότι το σύμπαν της πληροφορίας μπορεί να περιγραφεί με δύο μόνο καταστάσεις, το 0 και το 1.

2.8 Δυαδικό Σύστημα Αριθμών
Όπως ήδη αναφέρθηκε, οι υπολογιστές χρησιμοποιούν το δυαδικό σύστημα (base-2), στο οποίο οι αριθμοί εκφράζονται με δύο ψηφία: 0 και 1. Η επιλογή αυτή προκύπτει από την ίδια τη φύση των ηλεκτρονικών κυκλωμάτων, τα οποία μπορούν εύκολα να διακρίνουν δύο καταστάσεις (ρεύμα/χωρίς ρεύμα).
Παράδειγμα: Ο δεκαδικός αριθμός 13 γράφεται ως 1101 στο δυαδικό. Αυτό σημαίνει:
1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13.
Η μετατροπή μεταξύ δεκαδικού και δυαδικού συστήματος είναι κρίσιμη δεξιότητα για κάθε επιστήμονα πληροφορικής. Στην πράξη, οι μετατροπές αυτές πραγματοποιούνται αυτόματα από το υλικό και το λογισμικό, αλλά η κατανόησή τους επιτρέπει την κατανόηση του τρόπου με τον οποίο λειτουργεί η αποθήκευση και η επεξεργασία.
2.9 Δεκαεξαδικό Σύστημα
Το δεκαεξαδικό σύστημα (base-16) χρησιμοποιεί 16 διαφορετικά σύμβολα:
Τα ψηφία 0–9 για τις τιμές 0 έως 9.
Τα γράμματα A–F για τις τιμές 10 έως 15.
Παράδειγμα: Ο δεκαδικός αριθμός 255 γράφεται ως FF στο δεκαεξαδικό.
Το δεκαεξαδικό σύστημα χρησιμοποιείται εκτενώς στην πληροφορική επειδή επιτρέπει τη συμπαγή αναπαράσταση μεγάλων δυαδικών αριθμών. Για παράδειγμα, το δυαδικό 1111 1111 (8 bits) αντιστοιχεί στο δεκαεξαδικό FF. Έτσι, διευκολύνεται η ανάγνωση και η αποθήκευση διευθύνσεων μνήμης, χρωμάτων (π.χ. #FF0000 για κόκκινο στο HTML) και εντολών μηχανής.

2.10 Κωδικοποίηση Χαρακτήρων – ASCII
Για να μπορέσουν οι υπολογιστές να αποθηκεύουν και να επεξεργάζονται κείμενο, είναι απαραίτητο να υπάρχει μια συμφωνημένη αντιστοιχία μεταξύ χαρακτήρων (γράμματα, σύμβολα, αριθμοί) και δυαδικών αριθμών.
Η πρώτη και πιο διαδεδομένη μορφή είναι ο κώδικας ASCII (American Standard Code for Information Interchange). Ο ASCII χρησιμοποιεί 7 bits για την αναπαράσταση 128 διαφορετικών χαρακτήρων, περιλαμβάνοντας:
Κεφαλαία και μικρά λατινικά γράμματα.
Αριθμούς 0–9.
Σημεία στίξης.
Ειδικούς ελέγχους (π.χ. newline, tab).
Παράδειγμα:
Το γράμμα «A» αντιστοιχεί στο 65 (01000001 σε δυαδικό).
Το γράμμα «a» αντιστοιχεί στο 97 (01100001 σε δυαδικό).
Παρότι ο ASCII ήταν επαρκής για την αγγλική γλώσσα, αποδείχθηκε ανεπαρκής για άλλες γλώσσες που διαθέτουν διαφορετικά αλφάβητα.

2.11 Unicode και Πολυγλωσσική Υποστήριξη
Η ανάγκη για παγκόσμια αναπαράσταση χαρακτήρων οδήγησε στην ανάπτυξη του Unicode, ενός κωδικοποιητικού συστήματος που μπορεί να περιγράψει όλους τους χαρακτήρες των γλωσσών του κόσμου.
Το Unicode χρησιμοποιεί διαφορετικά σχήματα κωδικοποίησης (UTF-8, UTF-16, UTF-32):
UTF-8: Μεταβλητού μήκους, χρησιμοποιεί από 1 έως 4 bytes για κάθε χαρακτήρα. Έχει το πλεονέκτημα ότι είναι συμβατό με τον ASCII.
UTF-16: Χρησιμοποιεί 2 bytes ή 4 bytes, κατάλληλο για γλώσσες με πολλά σύμβολα.
UTF-32: Χρησιμοποιεί 4 bytes για κάθε χαρακτήρα, παρέχοντας απευθείας αντιστοιχία, αλλά με μεγάλο κόστος σε μνήμη.
Παράδειγμα:
Ο ελληνικός χαρακτήρας «Α» έχει κωδικό U+0391.
Ο κινέζικος χαρακτήρας «你» έχει κωδικό U+4F60.
Χάρη στο Unicode, οι υπολογιστές μπορούν να χειρίζονται κείμενα σε οποιαδήποτε γλώσσα, επιτρέποντας την ανάπτυξη παγκόσμιων συστημάτων επικοινωνίας και λογισμικού.
2.12 Αναπαράσταση Αριθμών με Πρόσημο
Η αναπαράσταση αρνητικών αριθμών είναι απαραίτητη για υπολογισμούς. Η πιο συνηθισμένη μέθοδος είναι το συμπλήρωμα ως προς δύο (two’s complement).
Παράδειγμα:
Για 8-bit αριθμούς, το +5 γράφεται ως 00000101.
Το –5 γράφεται ως 11111011.
Αυτό επιτρέπει στον υπολογιστή να εκτελεί πρόσθεση και αφαίρεση χωρίς να χρειάζεται ξεχωριστή λογική για αρνητικούς αριθμούς.
2.13 Αναπαράσταση Πραγματικών Αριθμών – Κινητή Υποδιαστολή
Για τους πραγματικούς αριθμούς χρησιμοποιείται το σύστημα κινητής υποδιαστολής (floating point). Το διεθνές πρότυπο IEEE 754 καθορίζει πώς αποθηκεύονται αυτοί οι αριθμοί:
Πρόσημο: 1 bit.
Εκθέτης: καθορίζει τη θέση της υποδιαστολής.
Μαντίσα (significand): καθορίζει την ακρίβεια του αριθμού.
Παράδειγμα:
Ο αριθμός 6,25 σε μορφή IEEE 754 (32-bit single precision) αναπαρίσταται με συγκεκριμένη διάταξη bit, που επιτρέπει στον υπολογιστή να τον χειριστεί με ακρίβεια.
Η κινητή υποδιαστολή επιτρέπει την αποθήκευση πολύ μεγάλων ή πολύ μικρών αριθμών, αλλά εισάγει ζητήματα στρογγυλοποίησης και αριθμητικών σφαλμάτων.
2.14 Περιορισμοί και Όρια Μηχανής
Κάθε υπολογιστικό σύστημα έχει περιορισμούς:
Ένας ακέραιος 32-bit μπορεί να αποθηκεύσει μόνο τιμές από –2³¹ έως 2³¹–1.
Ένας ακέραιος 64-bit έχει πολύ μεγαλύτερο εύρος.
Οι πραγματικοί αριθμοί υπόκεινται σε σφάλματα στρογγυλοποίησης, που γίνονται εμφανή σε πολύπλοκους υπολογισμούς.
Παράδειγμα: Σε έναν υπολογιστή, η πράξη (0,1 + 0,2) μπορεί να δώσει αποτέλεσμα 0,30000000000000004 αντί για 0,3, λόγω του τρόπου με τον οποίο αναπαρίσταται το 0,1 στο δυαδικό.
2.15 Συνοψίζοντας: Αναπαράσταση Δεδομένων
Η αναπαράσταση δεδομένων είναι το θεμέλιο πάνω στο οποίο βασίζεται κάθε μορφή υπολογισμού. Από το απλό bit έως τα πολύπλοκα συστήματα κινητής υποδιαστολής και Unicode, οι μηχανισμοί αυτοί επιτρέπουν στους υπολογιστές να χειρίζονται αριθμούς, κείμενα και πολυμέσα με συνέπεια και ακρίβεια. Η κατανόηση αυτών των μηχανισμών είναι κρίσιμη όχι μόνο για την τεχνική κατάρτιση, αλλά και για την ανάπτυξη νέων συστημάτων που ανταποκρίνονται στις ανάγκες μιας παγκόσμιας κοινωνίας.
2.16 Η Έννοια της Μνήμης
Η μνήμη αποτελεί ένα από τα πιο κρίσιμα υποσυστήματα κάθε υπολογιστικού συστήματος. Είναι ο χώρος όπου αποθηκεύονται τα δεδομένα και οι εντολές που χρειάζεται ο επεξεργαστής για να εκτελέσει τις λειτουργίες του. Η απόδοση ενός συστήματος εξαρτάται σε μεγάλο βαθμό από την ταχύτητα και την οργάνωση της μνήμης.
Υπάρχουν διάφορα επίπεδα μνήμης, τα οποία σχηματίζουν μια ιεραρχία μνήμης. Στην κορυφή της ιεραρχίας βρίσκονται τα ταχύτερα αλλά μικρότερα και ακριβότερα είδη μνήμης, ενώ στη βάση βρίσκονται τα πιο αργά αλλά μεγάλης χωρητικότητας και οικονομικά μέσα.
2.17 Ιεραρχία Μνήμης
Η ιεραρχία μνήμης αποτελείται από:
Καταχωρητές (Registers)
Βρίσκονται μέσα στον ίδιο τον επεξεργαστή (CPU).
Πολύ μικρή χωρητικότητα (μερικές δεκάδες ή εκατοντάδες bytes).
Εξαιρετικά υψηλή ταχύτητα, πρόσβαση σε 1–2 κύκλους ρολογιού.
Χρησιμοποιούνται για ενδιάμεσα αποτελέσματα και κρίσιμες εντολές.
Μνήμη Cache
Ενδιάμεση μνήμη ανάμεσα στους καταχωρητές και τη RAM.
Υλοποιείται σε επίπεδα (L1, L2, L3), με διαφορετικό μέγεθος και ταχύτητα.
Σκοπός: αποφυγή της καθυστέρησης που προκαλεί η πρόσβαση στη RAM.
Κύρια Μνήμη (RAM)
Χρησιμοποιείται για την αποθήκευση προγραμμάτων και δεδομένων που βρίσκονται σε χρήση.
Πτητική: χάνει το περιεχόμενό της με την απενεργοποίηση.
Οι σύγχρονοι υπολογιστές διαθέτουν RAM από 4GB έως και εκατοντάδες GB σε servers.
Δευτερεύουσα Μνήμη
Σκληροί δίσκοι (HDD) και δίσκοι στερεάς κατάστασης (SSD).
Μη πτητική: τα δεδομένα διατηρούνται μόνιμα.
Πολύ μεγαλύτερη χωρητικότητα (TB), αλλά με χαμηλότερη ταχύτητα.
Τριτοβάθμια και Εκτός Συστήματος Μνήμη
Μαγνητικές ταινίες, CD/DVD/Blu-Ray, cloud storage.
Χρησιμοποιούνται για αρχειοθέτηση και αντίγραφα ασφαλείας.
2.18 Τύποι Κύριας Μνήμης
RAM (Random Access Memory)
Επιτρέπει τυχαία πρόσβαση σε οποιοδήποτε σημείο μνήμης με τον ίδιο χρόνο.
Χρησιμοποιείται ως χώρος εργασίας του επεξεργαστή.
ROM (Read-Only Memory)
Περιέχει δεδομένα που δεν αλλάζουν, όπως το BIOS.
Δεν είναι πτητική: διατηρεί τα δεδομένα της μόνιμα.
DRAM (Dynamic RAM)
Αποθηκεύει κάθε bit σε έναν πυκνωτή που πρέπει να ανανεώνεται συνεχώς.
Χρησιμοποιείται ευρέως λόγω χαμηλού κόστους.
SRAM (Static RAM)
Διατηρεί τα δεδομένα όσο υπάρχει τροφοδοσία χωρίς ανάγκη ανανέωσης.
Πολύ γρήγορη, αλλά ακριβή, χρησιμοποιείται κυρίως σε cache.
2.19 Δευτερεύοντα Μέσα Αποθήκευσης
Σκληροί Δίσκοι (HDD)
Χρησιμοποιούν μαγνητικά πλατό που περιστρέφονται με μεγάλη ταχύτητα.
Έχουν μηχανικά μέρη (κεφαλές ανάγνωσης/εγγραφής).
Παρέχουν μεγάλες χωρητικότητες (μέχρι και δεκάδες TB).
Μειονεκτήματα: ευαισθησία σε κραδασμούς, χαμηλότερη ταχύτητα σε σχέση με SSD.
Δίσκοι Στερεάς Κατάστασης (SSD)
Βασίζονται σε μνήμη flash NAND.
Δεν έχουν κινούμενα μέρη → ανθεκτικότεροι και ταχύτεροι.
Χρόνοι πρόσβασης μερικών μικροδευτερολέπτων.
Μειονέκτημα: υψηλότερο κόστος ανά GB σε σχέση με HDD.
Υβριδικοί Δίσκοι (SSHD)
Συνδυάζουν μικρή ποσότητα SSD με μεγάλο HDD.
Προσφέρουν καλύτερη ταχύτητα από HDD με μικρότερο κόστος από SSD.
2.20 Τριτοβάθμια Μνήμη και Αρχειοθέτηση
Μαγνητικές Ταινίες: Χρησιμοποιούνται κυρίως για backup μεγάλων οργανισμών. Πολύ μεγάλη χωρητικότητα, χαμηλό κόστος, αλλά αργή πρόσβαση.
Οπτικά Μέσα (CD/DVD/Blu-Ray): Αν και η χρήση τους μειώνεται, παραμένουν σημαντικά για αρχειοθέτηση και διανομή περιεχομένου.
Cloud Storage: Δεδομένα αποθηκεύονται σε απομακρυσμένους διακομιστές. Παρέχει:
Πρόσβαση από παντού.
Συνεργατικότητα (π.χ. Google Drive, OneDrive).
Ευελιξία και δυνατότητα αυτόματου backup.
Ζητήματα: ασφάλεια, ιδιωτικότητα, εξάρτηση από τον πάροχο.
2.21 Αποδοτικότητα και Διαχείριση
Η αποδοτική διαχείριση της μνήμης και των μέσων αποθήκευσης είναι ζωτικής σημασίας:
Συστήματα αρχείων (File Systems): NTFS, ext4, APFS.
Κατακερματισμός (Fragmentation): η διασπορά δεδομένων σε διαφορετικά τμήματα του δίσκου επιβραδύνει την πρόσβαση. Στους SSD το φαινόμενο είναι λιγότερο έντονο.
RAID (Redundant Array of Independent Disks):
RAID 0: αυξάνει την ταχύτητα.
RAID 1: δημιουργεί αντίγραφα ασφαλείας με κατοπτρισμό.
RAID 5/6: συνδυάζει ταχύτητα και ασφάλεια με πλεονάζουσα πληροφορία.
2.22 Ασφάλεια και Αντοχή Δεδομένων
Η απώλεια δεδομένων μπορεί να έχει καταστροφικές συνέπειες. Γι’ αυτό χρησιμοποιούνται μέθοδοι προστασίας όπως:
Backups: τακτικά αντίγραφα ασφαλείας.
Κρυπτογράφηση: προστασία από μη εξουσιοδοτημένη πρόσβαση.
Συστήματα UPS: αποτρέπουν απώλειες λόγω ξαφνικής διακοπής ρεύματος.
Disaster Recovery Plans: στρατηγικές ανάκαμψης από φυσικές καταστροφές ή κυβερνοεπιθέσεις.
2.23 Συνοψίζοντας: Συστήματα Αποθήκευσης και Μνήμη
Η οργάνωση της μνήμης και των συστημάτων αποθήκευσης αποτελεί κρίσιμο παράγοντα για την απόδοση, την αξιοπιστία και την ασφάλεια των υπολογιστικών συστημάτων. Από τους ταχύτατους καταχωρητές μέχρι τα τεράστια δίκτυα cloud, η κάθε βαθμίδα έχει τον ρόλο της. Η κατανόηση αυτής της ιεραρχίας είναι απαραίτητη τόσο για τον σχεδιασμό νέων τεχνολογιών όσο και για τη σωστή χρήση των υπολογιστικών πόρων σε πραγματικές εφαρμογές.
2.24 Εισαγωγή στη Συμπίεση Δεδομένων
Η αποθήκευση και η μετάδοση δεδομένων απαιτούν τεράστιους πόρους. Οι σύγχρονες εφαρμογές, όπως τα πολυμέσα, οι τηλεδιασκέψεις και οι βάσεις δεδομένων, δημιουργούν όγκους πληροφορίας που ξεπερνούν τις δυνατότητες παραδοσιακών συστημάτων. Η συμπίεση δεδομένων είναι η διαδικασία με την οποία μειώνεται το μέγεθος των δεδομένων, έτσι ώστε να απαιτούνται λιγότερος χώρος και λιγότερο εύρος ζώνης για τη μεταφορά τους.
Υπάρχουν δύο βασικές κατηγορίες:
Συμπίεση χωρίς απώλειες (lossless): τα δεδομένα ανακτώνται ακριβώς όπως ήταν. Χρήσιμη σε κείμενα, προγράμματα, βάσεις δεδομένων.
Συμπίεση με απώλειες (lossy): επιτρέπεται απώλεια μέρους της πληροφορίας, με στόχο σημαντική μείωση μεγέθους. Χρησιμοποιείται σε εικόνες, ήχο, βίντεο, όπου μικρές απώλειες δεν είναι αντιληπτές από τον άνθρωπο.
2.25 Μέθοδοι Συμπίεσης χωρίς Απώλειες
Run-Length Encoding (RLE)
Βασική ιδέα: αντικαθιστά επαναλαμβανόμενες ακολουθίες συμβόλων με ένα μόνο σύμβολο και το πλήθος των επαναλήψεων.
Παράδειγμα: Η ακολουθία AAAAABBBCC αποθηκεύεται ως 5A3B2C.
Αποτελεσματικό για εικόνες με μεγάλες περιοχές ίδιου χρώματος (π.χ. παλιές εικόνες bitmap).
Κώδικες Huffman
Βασίζονται στη θεωρία πιθανοτήτων.
Οι πιο συχνοί χαρακτήρες κωδικοποιούνται με μικρότερα bit, ενώ οι σπάνιοι με περισσότερα.
Παράδειγμα: Σε ένα αγγλικό κείμενο, το «e» εμφανίζεται πιο συχνά, άρα παίρνει μικρότερο κωδικό από το «z».
Πολύ αποτελεσματική μέθοδος, χρησιμοποιείται σε μορφές αρχείων όπως ZIP και JPEG (ως μέρος).
Αλγόριθμοι Lempel-Ziv (LZ77, LZ78, LZW)
Αξιοποιούν την επαναληπτικότητα ακολουθιών μέσα στο κείμενο.
Δημιουργούν λεξικά υπο-ακολουθιών που εμφανίζονται συχνά.
Χρησιμοποιούνται σε πρότυπα όπως GIF, PNG και αρχεία .zip.
2.26 Μέθοδοι Συμπίεσης με Απώλειες
JPEG (εικόνες)
Βασίζεται σε μετασχηματισμούς συχνοτήτων (Discrete Cosine Transform).
Περιορίζει την ακρίβεια σε περιοχές όπου το μάτι δεν διακρίνει λεπτομέρειες.
Ιδανικό για φωτογραφίες, όχι όμως για γραφήματα ή εικόνες με έντονες αντιθέσεις.
MPEG (βίντεο)
Χρησιμοποιεί τόσο χωρική όσο και χρονική συμπίεση.
Χωρική: κάθε εικόνα (frame) συμπιέζεται με μεθόδους παρόμοιες με JPEG.
Χρονική: εκμεταλλεύεται την ομοιότητα μεταξύ διαδοχικών frames.
Χρησιμοποιείται σε DVD, τηλεόραση, streaming (MPEG-2, MPEG-4, H.264, H.265).
MP3 (ήχος)
Βασίζεται σε ψυχοακουστικά μοντέλα: αφαιρεί συχνότητες που δεν γίνονται αντιληπτές από το ανθρώπινο αυτί.
Μειώνει δραστικά το μέγεθος αρχείων μουσικής χωρίς εμφανή απώλεια ποιότητας.
2.27 Σφάλματα στη Μετάδοση Δεδομένων
Κατά τη μετάδοση δεδομένων μέσω δικτύων ή την αποθήκευση σε μέσα, συχνά προκύπτουν σφάλματα. Αυτά μπορεί να οφείλονται σε θόρυβο, φθορά του μέσου ή παρεμβολές. Για την ανίχνευση και διόρθωση σφαλμάτων αναπτύχθηκαν διάφορες τεχνικές.
2.28 Μέθοδοι Ανίχνευσης Σφαλμάτων
Έλεγχος Ισοτιμίας (Parity Check)
Προστίθεται ένα επιπλέον bit (bit ισοτιμίας) σε κάθε ομάδα δεδομένων.
Εξασφαλίζει ότι ο αριθμός των 1 είναι πάντα άρτιος (even parity) ή περιττός (odd parity).
Απλό αλλά ανιχνεύει μόνο μονά σφάλματα.
Κυκλικός Έλεγχος Πλεονασμού (CRC – Cyclic Redundancy Check)
Τα δεδομένα θεωρούνται πολυώνυμα και διαιρούνται με ένα καθορισμένο πολυώνυμο.
Το υπόλοιπο της διαίρεσης αποθηκεύεται ως CRC.
Ο παραλήπτης επαναλαμβάνει τη διαδικασία και συγκρίνει τα CRC.
Εξαιρετικά αξιόπιστο, χρησιμοποιείται σε δίκτυα και συστήματα αποθήκευσης.
2.29 Μέθοδοι Διόρθωσης Σφαλμάτων
Κώδικες Hamming
Εισάγουν πλεονάζοντα bits σε συγκεκριμένες θέσεις.
Δίνουν τη δυνατότητα όχι μόνο ανίχνευσης αλλά και διόρθωσης ενός σφάλματος.
Χρησιμοποιούνται σε μνήμες RAM και δορυφορικές επικοινωνίες.
Κώδικες Reed-Solomon
Ειδικά σχεδιασμένοι για να διορθώνουν ομάδες σφαλμάτων.
Χρησιμοποιούνται σε CD, DVD, Blu-Ray και στις τηλεπικοινωνίες.
2.30 Παραδείγματα Εφαρμογών
Σε ένα CD, εάν γρατζουνιστεί ένα μικρό τμήμα, οι κώδικες Reed-Solomon μπορούν να ανακατασκευάσουν το αρχικό τραγούδι χωρίς να ακούγεται σφάλμα.
Στις δορυφορικές μεταδόσεις, οι κώδικες Hamming εξασφαλίζουν ότι τα δεδομένα φτάνουν στον δέκτη με αξιοπιστία, ακόμα κι αν υπάρχουν παρεμβολές.
Στις κινητές επικοινωνίες, η συμπίεση και η διόρθωση σφαλμάτων συνεργάζονται ώστε να είναι δυνατή η μετάδοση βίντεο σε πραγματικό χρόνο.
2.31 Συνοψίζοντας: Συμπίεση Δεδομένων και Έλεγχος Σφαλμάτων
Η συμπίεση δεδομένων και η διόρθωση σφαλμάτων αποτελούν δύο συμπληρωματικούς άξονες της διαχείρισης πληροφορίας:
Η συμπίεση μειώνει τις απαιτήσεις σε χώρο και εύρος ζώνης.
Η διόρθωση σφαλμάτων διασφαλίζει την αξιοπιστία της μετάδοσης και της αποθήκευσης.
Χωρίς αυτές τις τεχνικές, το σύγχρονο ψηφιακό οικοσύστημα – από το YouTube και το Spotify μέχρι τα δίκτυα 5G και το cloud – δεν θα μπορούσε να λειτουργήσει.