3.2.1

3.2.1. Εννοιολογικό, Λογικό και Φυσικό Σχήμα (Μοντέλο)
Για να είναι χρήσιμη μια βάση δεδομένων πρέπει να μπορεί να ανακαλεί τα δεδομένα της αποτελεσματικά. Οι σχεδιαστές των βάσεων για την αποτελεσματική ανάκληση δεδομένων χρησιμοποιούν πολύπλοκες δομές δεδομένων, οι οποίες χρησιμοποιούνται για την αναπαράσταση των δεδομένων της βάσης δεδομένων. Όμως, οι χρήστες μιας ΒΔ δεν είναι ανάγκη να είναι έμπειροι προγραμματιστές, για αυτό το λόγο οι σχεδιαστές κρύβουν την πολυπλοκότητα από τους χρήστες μέσω διαφόρων επιπέδων αφαιρετικότητας. Για να επιτευχθεί η απόκρυψη της πολυπλοκότητας από τους χρήστες χρησιμοποιούνται τρία σχήματα (βλέπε εικόνα 3.1) το εννοιολογικό σχήμα, το λογικό σχήμα και το φυσικό σχήμα. Στη βιβλιογραφία το εννοιολογικό και το λογικό σχήμα αναφέρονται πολλές φορές ως ένα σχήμα για αυτό το λόγο στην παρούσα ενότητα το λογικό σχήμα αναφέρεται και ως λογικό (εννοιολογικό) σχήμα.

Εικόνα 3.1 Εννοιολογικό, Λογικό και Φυσικό σχήμα

Το χαμηλότερο επίπεδο αφαιρετικότητας (**φυσικό σχήμα**) περιγράφει τον τρόπο αποθήκευσης των δεδομένων. Σε αυτό περιγράφονται με λεπτομέρεια οι πολύπλοκες δομές που χρησιμοποιούνται για την αποθήκευση και την ανάκτηση των δεδομένων.

Το **λογικό (εννοιολογικό) σχήμα** έχει υψηλότερο επίπεδο αφαιρετικότητας και περιγράφει ποια δεδομένα αποθηκεύονται και ποιες είναι οι σχέσεις μεταξύ τους. Στην ουσία, το λογικό σχήμα περιγράφει τη βάση δεδομένων με απλές δομές. Αυτό εξασφαλίζει ότι αν και μπορεί να απαιτούνται πολύπλοκες δομές στο φυσικό σχήμα ο χρήστης της ΒΔ δεν χρειάζεται να τις γνωρίζει.

Το υψηλότερο επίπεδο αφαιρετικότητας (**εννοιολογικό σχήμα**) περιγράφει μόνο ένα κομμάτι της ΒΔ. Αν και στο λογικό σχήμα τα δεδομένα περιγράφονται με απλές δομές ο χρήστης δεν χρειάζεται να τις γνωρίζει. Με αυτόν τον τρόπο η συνδιαλλαγή με το σύστημα της ΒΔ γίνεται πιο απλή. Διαφορετικοί χρήστες έχουν προσπέλαση σε διαφορετικά δεδομένα της ΒΔ, ανάλογα με τους περιορισμούς και τους κανόνες προσπέλασης που εφαρμόζονται.

Ένας από τους πιο σημαντικούς λόγους για την χρήση ΣΔΒΔ είναι η υποστήριξη της **ανεξαρτησίας** των δεδομένων. Αυτό σημαίνει ότι ο κώδικας δεν επηρεάζεται από μεταβολές στον τρόπο οργάνωσης και καταχώρισης των δεδομένων. Η ανεξαρτησία των δεδομένων γίνεται μέσα από τα τρία επίπεδα αφαιρετικότητας που έχουν περιγραφεί. Ο χρήστης προστατεύεται από αλλαγές στη λογική δομή των δεδομένων μέσω της λογικής ανεξαρτησίας των δεδομένων. Με ανάλογο τρόπο το λογικό σχήμα απομονώνει τον χρήστη από αλλαγές που συμβαίνουν στο φυσικό σχήμα (για παράδειγμα, αλλαγές που αφορούν την αποθήκευση των δεδομένων στην περιφερειακή μνήμη, επιλογές ευρετηρίων, κ.α). Όσο το εννοιολογικό σχήμα μένει ανεπηρέαστο, η υλοποίηση των παραπάνω μπορεί να αλλάζει χωρίς να χρειάζεται αλλαγή στον κώδικα. Βέβαια, αυτές οι αλλαγές μπορεί να έχουν αρνητικές επιπτώσεις στις επιδόσεις του συστήματος.