ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

27
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι Λόγοι που συνέτειναν στη υιοθέτηση των Συστημάτων Διαχείρισης Βάσεων Δεδομένων (Database Management Systems) Περιορίζονται τα πλεονασματικά δεδομένα και οι περιπτώσεις μεταξύ τους ασυνέπειας και αυξάνεται η διαμοιρασιμότητά τους στις διάφορες εφαρμογές Βελτιώνεται η ακεραιότητα των δεδομένων Αυξάνεται η ταχύτητα υλοποίησης νέων υποσυστημάτων Διευκολύνεται η πρόσβαση στα αρχεία από τους προγραμματιστές Αυξάνεται η ανεξαρτησία δεδομένων Παρέχεται μία συγκροτημένη άποψη δεδομένων πιο κατάλληλη για τις ανάγκες του management Βελτιώνονται τα standards για τους ανθρώπους που εργάζονται στην ανάπτυξη συστημάτων

Upload: tola

Post on 08-Jan-2016

50 views

Category:

Documents


4 download

DESCRIPTION

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι. Λόγοι που συνέτειναν στη υιοθέτηση των Συστημάτων Διαχείρισης Βάσεων Δεδομένων ( Database Management Systems ) Περιορίζονται τα πλεονασματικά δεδομένα και οι περιπτώσεις μεταξύ τους ασυνέπειας και αυξάνεται η διαμοιρασιμότητά τους στις διάφορες εφαρμογές - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

Λόγοι που συνέτειναν στη υιοθέτηση των Συστημάτων Διαχείρισης Βάσεων Δεδομένων (Database Management Systems)

Περιορίζονται τα πλεονασματικά δεδομένα και οι περιπτώσεις μεταξύ τους ασυνέπειας και αυξάνεται η διαμοιρασιμότητά τους στις διάφορες εφαρμογές

Βελτιώνεται η ακεραιότητα των δεδομένων Αυξάνεται η ταχύτητα υλοποίησης νέων υποσυστημάτων Διευκολύνεται η πρόσβαση στα αρχεία από τους προγραμματιστές Αυξάνεται η ανεξαρτησία δεδομένων Παρέχεται μία συγκροτημένη άποψη δεδομένων πιο κατάλληλη

για τις ανάγκες του management Βελτιώνονται τα standards για τους ανθρώπους που εργάζονται

στην ανάπτυξη συστημάτων

Page 2: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΙΙΗ

Ο Ρ Γ Α Ν Ω Σ Η

Ε Π ΙΧ Ε ΙΡ Η Σ ΙΑ Κ ΟΜ Ο Ν Τ Ε Λ Ο

Θ Ε Μ Ε Λ ΙΩ Δ Ε ΣΜ Ο Ν Τ Ε Λ Ο

Λ Ο Γ ΙΚ ΟΜ Ο Ν Τ Ε Λ Ο

Φ Υ Σ ΙΚ ΟΜ Ο Ν Τ Ε Λ Ο

Ε Π ΙΧ Ε ΙΡ Η Σ ΙΑ Κ ΗΑ Ν Α Λ Υ Σ Η

Α Ν Α Λ Υ Σ ΗΔ Ε Δ Ο Μ Ε Ν Ω Ν

Α Ν Α Π Τ Υ Ξ ΗΜ Ο Ν Τ Ε Λ Ο Υ Β Α Σ Η Σ

Δ Ε Δ Ο Μ Ε Ν Ω Ν

Ο Ρ Γ Α Ν Ω Σ Η Α Ρ Χ Ε ΙΩ ΝΚ Α Ι Σ Τ Ρ Α Τ Η Γ ΙΚ Ε Σ

Π Ρ Ο Σ Π Ε Λ Α Σ Η Σ

Υ Λ Ο Π Ο ΙΗ Σ ΗΕ Φ Α Ρ Μ Ο Γ Ω Ν

Page 3: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΙΙΙ

Θεμελιώδες μοντέλοΑναγνωρίζουμε τις πραγματικότητες της επιχειρηματικής οργάνωσης και στη συνέχεια αναλύουμε τα δεδομένα. Οι πραγματικότητες εκφράζονται μέσω αντικειμένων που αποκαλούνται οντότητες (entities) και δεδομένων που αφορούν τις οντότητες και καλούνται ιδιότητες (attributes).ΠΑΡΑΔΕΙΓΜΑ:Σε ένα πανεπιστημιακό τμήμα ΜΑΘΗΜΑΤΑ, ΦΟΙΤΗΤΕΣ και ΚΑΘΗΓΗΤΕΣ θα μπορούσαν να εκφράζονται από οντότητες. Η οντότητα ΜΑΘΗΜΑ θα έχει ιδιότητες όπως όνομα_μαθήματος, περιγραφή, διάρκεια, έτος κ.α.Μας ενδιαφέρουν ακόμη οι σχέσεις (relationships) μεταξύ των οντοτήτων. Έτσι, οι ΦΟΙΤΗΤΕΣ διδάσκονται από πολλούς ΚΑΘΗΓΗΤΕΣ.

Page 4: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΙV Λογικό μοντέλο

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

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

M A N A G E R

A ssis ta n tm a n a g er A

C lerk 1

A ss is ta n tm a n a g er B

C lerk 2 C lerk 3

SUPPLIER NAME

SUPPLIER ADDRESS

SUPPLIER NUMBER

1234

PART NUMBER DESCRIPTIONABCD

Page 5: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - V

Φυσικό μοντέλο

Αντιστοίχιση των δομών δεδομένων του λογικού μοντέλου σε ένα αποθηκευτικό μέσο και αποθήκευση των δεδομένων.

ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ: πως είναι οργανωμένα τα δεδομένα στο δίσκο

ΠΡΟΣΠΕΛΑΣΗ ΑΡΧΕΙΩΝ: πως τα δεδομένα προσπελαύνονται στο δίσκο

Υπάρχουν διάφορες επιλογές από τα διάφορα DBMS για την οργάνωση των αρχείων (π.χ. κεντρικά ή κατανεμημένα, με ή χωρίς εφεδρικά αντίγραφα, χρήση ευρετηρίων ή όχι κ.ο.κ.).

Page 6: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - Ι

Πεδίο (field)Είναι η μικρότερη μονάδα δεδομένων που μπορεί να πάρει δικό της όνομα π.χ. η τιμή ενός προϊόντος. Το ονοματεπώνυμο ενός υπαλλήλου μπορεί να χωριστεί σε δύο πεδία ή μπορεί να θεωρηθεί και ως ένα πεδίο αν δεν ενδιαφερόμαστε να έχουμε ξεχωριστά το Επώνυμο και το Όνομα.

Λογικά χαρακτηριστικά δεδομένωνΚάθε πεδίο δεδομένων παίρνει μια συγκεκριμένη τιμή από ένα χώρο δυνατών τιμών.Η τιμή ενός πεδίου μπορεί να είναι:

1. Αριθμητική2. Αλφαβητική3. Αλφαριθμητική

Έτσι έχουμε τρεις τύπους πεδίων δεδομένων.

Page 7: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - ΙΙ Λογικά χαρακτηριστικά δεδομένων (συνέχεια)

Αν ένα πεδίο δεδομένων είναι αριθμητικό τότε η τιμή που περιέχει ανταποκρίνεται σε κάποια μονάδα μέτρησης π.χ. 100 δραχμές, 800 κιλά κ.λ.π.Η μονάδα μέτρησης γίνεται ένα πρόσθετο χαρακτηριστικό που μας ενδιαφέρει άμεσα, αν και η μονάδα μέτρησης δεν είναι αναγκαίο να αποτελεί μέρος του πεδίου.Γενικά, ο τύπος ενός πεδίου είναι φανερός από την τιμή του, ενώ η μονάδα μέτρησης δεν είναι.Η σημασία που έχει ένα πεδίο είναι ένα χαρακτηριστικό που δίνεται από το χρήστη, μπορεί να αναγνωριστεί από την τιμή του και τη μονάδα μέτρησης, αλλά όχι πάντα με ασφάλεια.π.χ. η τιμή ΕΛΛΗΝΑΣ μπορεί να αναφέρεται σε έναν έλληνα μπορεί όμως να είναι και κάποιο επώνυμοπ.χ. η τιμή 342 € τι σημασία έχει; Πρόκειται για λεφτά που κάνει να πάρουμε ή που πρόκειται να δώσουμε;

Page 8: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - ΙΙΙ

Φυσικά χαρακτηριστικά δεδομένωνΈνα φυσικό χαρακτηριστικό πεδίου δεδομένων είναι το φυσικό μέγεθος του πεδίου το οποίο συνήθως εκφράζεται σε αριθμό χαρακτήρων (bytes). Στους πιο πολλούς υπολογιστές τέσσερα bytes κάνουν μία λέξη η οποία και χρησιμοποιείται σαν η βασική μονάδα για αριθμητικές πράξεις.Αν ένα πεδίο πρόκειται να χρησιμοποιηθεί σε αριθμητικές πράξεις καλό είναι να το βάζουμε μόνο του σε μία λέξη. Οι πράξεις θα γίνουν πολύ πιο γρήγορα.π.χ. έστω δύο πεδία δεδομένων με τιμές

ABC και 254 που τις βάζουμε σε 6 συνεχόμενα bytes και θέλουμε να

χρησιμοποιήσουμε το 254 σε πράξεις

Α Β C 2 5 4

Page 9: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - ΙV Φυσικά χαρακτηριστικά δεδομένων (συνέχεια)

Έτσι, είναι προτιμότερο α βάλουμε τα δύο πεδία σε δύο λέξεις ως εξής:

Γενικά, η εγγραφή των δεδομένων και το πόσο χώρο θα καταλάβουν εξαρτάται από τον τρόπο παράστασης των δεδομένων στον H/Y.

Μορφή πεδίου δεδομένωνΤύπος πεδίου:

Αριθμητικό, Αλφαβητικό, Αλφαριθμητικό

για τα αριθμητικά θα έχουμε επιπλέον: ακέραιο ή πραγματικόΤρόπος αναπαράστασης: δεκαδικός, δυαδικός, απλή ή διπλή

ακρίβεια κ.λ.π.Μήκος πεδίου: πλήθος χαρακτήρων

A B C 2 5 4

Page 10: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - V

Αναγνώριση πεδίου

Ο εντοπισμός ενός πεδίου γίνεται με βάση τη θέση που αυτό έχει μέσα στην εγγραφή.

Στις Βάσεις Δεδομένων ένα πεδίο μπορεί επίσης να αναγνωριστεί και με το όνομά του.

Εγγραφές και Αρχεία

Κάθε εγγραφή αποτελείται από ένα πεπερασμένο πλήθος πεδίων.

Πολλές φορές εξυπηρετεί να μιλάμε για n (n>1) συνεχόμεα πεδία μιας εγγραφής, οπότε μιλάμε για μία ομάδα πεδίων ή για ένα σύνθετο πεδίο.

Page 11: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - VΙ

ΠΑΡΑΔΕΙΓΜΑ:

εγγραφές φοιτητών

Αριθμός ειδικού μητρώου aem πεδίο αλφαριθμ(4)

Ονοματεπώνυμο name σύνθ. πεδίο

Επώνυμο name_s πεδίο αλφαβ(25)

Όνομα name_f πεδίο αλφαβ(25)

Διεύθυνση address πεδίοαλφαριθμ(30)

Βαθμοί marks σύνθ. πεδίο

Βαθμός μαθήματος 1 v1 πεδίο αριθμητ(2)

Βαθμός μαθήματος 2 v2 πεδίο αριθμητ(2)

Βαθμός μαθήματος 3 v3 πεδίο αριθμητ(2)

Page 12: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ - VΙΙ

recf

nameaem marks

name_s name_f v1 v3v2

Page 13: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΦΥΣΙΚΕΣ-ΛΟΓΙΚΕΣ ΕΓΓΡΑΦΕΣ & ΑΡΧΕΙΑ - Ι

Φυσική εγγραφή

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

Λογική εγγραφή

Είναι μια συλλογή από πεδία φυσικών εγγραφών για τα οποία ενδιαφέρεται ο χρήστης της Β.Δ. πλην όμως τα πεδία αυτά δεν είναι απαραίτητο να είναι φυσικώς συνεχόμενα. Ακόμη, μπορεί να ανήκουν σε περισσότερα του ενός αρχεία.

Στις Β.Δ. μία λογική εγγραφή μπορεί να ταυτίζεται με μία φυσική εγγραφή ή να είναι ένα γνήσιο υποσύνολό της ή να αποτελείται από πεδία τα οποία ανήκουν σε διαφορετικέ φυσικές εγγραφές της βάσης.

Page 14: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΦΥΣΙΚΕΣ-ΛΟΓΙΚΕΣ ΕΓΓΡΑΦΕΣ & ΑΡΧΕΙΑ - ΙΙ

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

Page 15: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ Β.Δ. – Ι

Κάθε χρήστης που χρησιμοποιεί δεδομένα της βάσης θα πρέπει να καθορίζει τα δεδομένα που θα χρησιμοποιήσει στην εφαρμογή του.

Τον καθορισμό αυτών των δεδομένων το λέμε σχήμα (schema).

Είναι λοιπόν ανάγκη να υπάρξει μια διαφοροποίηση ανάμεσα στις περιγραφές των δεδομένων του χρήστη και των δεδομένων της βάσης. Την περιγραφή των δεδομένων που θέλει ο χρήστης τη λέμε εξωτερικό σχήμα, ενώ για τη βάση έχουμε το περιγραφικό σχήμα και το εσωτερικό σχήμα.

Page 16: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ Β.Δ. – ΙΙ

Περιγραφικό σχήμα

Είναι ένα επίπεδο περιγραφής όλων των δεδομένων της βάσης που βρίσκεται ανάμεσα στο χρήστη και στη βάση.

Περιέχει πλήρη περιγραφή των πεδίων των records, κύριων κλειδιών, δευτερεύοντων κλειδιών, όρια τιμών κ.λ.π.

Εγγραφή νέων αρχείων, διαγραφή αρχείων, διαφοροποιήσεις στη δομή τους κ.λ.π. Σημαίνει και αντίστοιχες μεταβολές στο περιγραφικό σχήμα.

Εξωτερικό σχήμα

Περιγράφει τα δεδομένα που ο κάθε χρήστης χρειάζεται. Σε περίπτωση που δύο ή περισσότεροι χρήστες θέλουν τα ίδια δεδομένα, τότε μοιράζονται το ίδιο εξωτερικό σχήμα.

Page 17: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ Β.Δ. – ΙΙΙ

Εσωτερικό σχήμαΠεριγράφει τον τρόπο εγγραφής των δεδομένων σε επίπεδο record στο μαγνητικό μέσο (Μ. Δίσκο). Περιλαμβάνει τη μορφή των records, τους συνδέσμους, τους αλγορίθμους αναζήτησης, πίνακες ευρετηρίων, τη μονάδα αποθήκευσης κ.α. Το εσωτερικό σχήμα είναι η φυσική υλοποίηση του περιγραφικού σχήματος.

ΑντιστοιχίεςΗ επικοινωνία μεταξύ των τριών σχημάτων γίνεται από το Σύστημα Διαχείρισης Βάσεων Δεδομένων με ειδικό λογισμικό που υπάρχει μέα σ’ αυτό και η όλη διαδικασία λέγεται αντιστοίχιση.Προκειμένου ένα εξωτερικό σχήμα να λειτουργήσει θα πρέπει να έλθει σε επαφή με το περιγραφικό σχήμα και στη συνέχεια το περιγραφικό σχήμα με το εσωτερικό σχήμα.Το εν λόγω λογισμικό, αναλαμβάνει να μεταφέρει τις απαιτήσεις του χρήστη στο περιγραφικό σχήμα και βρίσκει σ΄ αυτό με ποια δεδομένα της βάσης αντιστοιχούν οι απαιτήσεις του χρήστη. Οι απαιτήσεις αυτές στη συνέχεια υλοποιούνται ενεργοποιώντας το εσωτερικό σχήμα.

Page 18: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ

Γενικά οι χρήστες μιας Β.Δ. είναι είτε προγραμματιστές εφαρμογών με υψηλές γνώσεις προγραμματισμού είτε άνθρωποι με λίγες ή και καθόλου γνώσεις προγραμματισμού.

Κάθε χρήστης επικοινωνεί με τη Β.Δ. με τη βοήθεια μιας γλώσσας. Για τους χρήστες με λίγες ή και καθόλου γνώσεις προγραμματισμού υπάρχει μια ειδική διαλογική γλώσσα (qery language).

Η Γλώσσα Ορισμού ή Περιγραφής Δεδομένων (Data Definition Language) είναι ένα υποσύνολο της διαλογικής γλώσσας στο οποίο περιγράφονται τα διαθέσιμα δεδομένα της βάσης. Η DDL χρησιμοποιείται για τον ορισμό του εξωτικού σχήματος της βάσης.

Η Γλώσσα Χειρισμού Δεδομένων (Data Manipulation Language) περιλαμβάνει εντολές μέσω των οποίων επιτυγχάνεται η μεταφορά δεδομένων από και προς τη Β.Δ. Η DML χειρίζεται λογικά records.

Page 19: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Ι

ΠΙΝΑΚΕΣ (ή σχέσεις) Κάθε πίνακας έχει ένα όνομα. Κάθε στήλη έχει ένα όνομα. Όλα τα ονόματα των στηλών πρέπει να είναι

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

μπορεί να χρησιμοποιήσει οποιαδήποτε στήλη ή στήλες, αναφερόμενος στο όνομά της ή τα ονόματά τους και όχι αναφερόμενος στη θέση της στήλης ή των στηλών).

Κάθε διασταύρωση γραμμής και στήλης πρέπει να περιέχει μια μόνο τιμή. Περισσότερες από μία τιμές δεν επιτρέπονται.

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

Page 20: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΙΙ Οι τιμές του πίνακα θα πρέπει να είναι σε αρμονία με ότι έχουμε ορίσει στα

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

Μια τιμή μέσα σε έναν πίνακα μπορεί να είναι συγκεκριμένη ή όχι. Στη δεύτερη περίπτωση λέμε ότι η τιμή είναι άγνωστη ή απροσδιόριστη τιμή (NULL). Όταν εγγράφουμε τιμές σε έναν πίνακα και μία τιμή μας είναι π.χ. άγνωστη, τότε στη θέση της δεν εγγράφουμε τίποτε. Οι άγνωστες τιμές δεν πρέπει να συγχέονται με το μηδέν ή τα κενά, καθώς τα κενά είναι μία συγκεκριμένη τιμή.

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

Στην περίπτωση που καμία στήλη δεν μπορεί να ληφθεί σαν κύριο κλειδί, τότε μπορούμε να φτιάξουμε το κύριο κλειδί συνδυάζοντας και τιμές άλλων στηλών.

Page 21: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ Ι

Προκειμένου να δημιουργήσουμε ένα νέο πίνακα στη βάση θα πρέπει να του δώσουμε ένα όνομα και στη συνέχεια να καθορίσουμε τη δομή του. Η εντολή της γλώσσας SQL που χρησιμοποιούν όλα τα συστήματα Βάσεων Δεδομένων για το σκοπό αυτό είναι η εντολή CREATE TABLE.

CREATE TABLE όνομα-πίνακα

(καθορισμός πεδίου-1

. . . . . . . . . . . . . .

καθορισμός πεδίου-n)

όπου για κάθε πεδίο έχουμε:

<όνομα πεδίου, τύπος πεδίου, [NOT NULL]>

Page 22: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ ΙI

ΠΑΡΑΔΕΙΓΜΑ ΔΗΜΙΟΥΡΓΙΑΣ ΠΙΝΑΚΑ

CREATE TABLE S

(P# (CHAR(6), NONULL, PRIMARY)

EPONYMO CHAR (30)

ONOMA CHAR (15)

POLI CHAR (20)

TEL CHAR (12))

P# EPONYMO ONOMA POLI TELΠ1 ΓΕΩΡΓΙΟΥ ΓΙΑΝΝΗΣ ΑΘΗΝΑ 2105246314Π2 ΑΞΙΩΤΗΣ ΚΩΣΤΑΣ ΘΕΣ/ΝΙΚΗ 2310456324Π3 ΒΑΣΙΛΕΙΟΥ ΔΗΜΗΤΡΗΣΛΑΜΙΑ 2421024567Π4 ΝΙΚΑΣ ΒΑΣΙΛΗΣ ΑΘΗΝΑ 2103456789Π5 ΧΑΛΚΙΑΣ ΓΙΩΡΓΟΣ ΔΡΑΜΑ 2521028654

Page 23: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ ΙII

ΠΑΡΑΔΕΙΓΜΑ ΔΗΜΙΟΥΡΓΙΑΣ ΠΙΝΑΚΑ

CREATE TABLE P

(E# (CHAR(6), NONULL, PRIMARY)

ONOMA-E CHAR (15)

XAR-PR CHAR (15)

POLI CHAR (20)

TIMH NUMERIC (5))

αν θα θέλαμε να ορίσουμε πραγματικές τιμές, τότε το πεδίο TIMH θα έπρεπε να δηλωθεί ως NUMERIC (8.3)

E# ONOMA-E XAR-PR POLI TIMHΕ1 ΖΑΧΑΡΗ ΑΣΠΡΗ ΑΘΗΝΑ 40Ε2 ΦΑΣΟΛΙΑ ΓΙΓΑΝΤΕΣ ΘΕΣ/ΝΙΚΗ 80Ε3 ΚΑΦΕΣ ΦΙΛΤΡΟΥ ΣΕΡΡΕΣ 500Ε4 ΖΑΧΑΡΗ ΣΚΟΥΡΗ ΑΘΗΝΑ 60Ε5 ΑΛΑΤΙ ΧΟΝΤΡΟ ΒΟΛΟΣ 30Ε6 ΦΑΚΕΣ ΧΟΝΤΡΕΣ ΑΘΗΝΑ 70

Page 24: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ ΙV

ΠΑΡΑΔΕΙΓΜΑ ΔΗΜΙΟΥΡΓΙΑΣ ΠΙΝΑΚΑ

πίνακας που προκύπτει από τους δύο προηγούμενους

CREATE TABLE SP

(P# (CHAR(6), NONULL, PRIMARY)

E# (CHAR(6), NONULL, PRIMARY)

POSOTHTA NUMERIC(5))P# E# ΠΟΣΟΤΗΤΑP1 E1 200P1 E2 200P1 E3 150P1 E4 80P1 E5 40P1 E6 100P2 E3 50P2 E6 60P3 E1 70P4 E1 80P4 E2 80P5 E3 10

Page 25: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΜΙΑ Β.Δ.

ΠΑΡΑΔΕΙΓΜΑ ΕΙΣΑΓΩΓΗΣ ΤΙΜΩΝ ΣΕ ΠΙΝΑΚΑ

INSERT INTO S

VALUES (‘Π1’,’ΓΕΩΡΓΙΟΥ’,’ΓΙΑΝΝΗΣ’,’ΑΘΗΝΑ’,

‘2105246314’);

μπορούμε και να βάλουμε πολλές γραμμές με μία INSERT

Page 26: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΕΠΙΛΟΓΗ RECORDS I

Για να τυπώσουμε records χρειαζόμαστε μία εντολή με την οποία είτε θα τυπώνουμε όλα τα records είτε θα κάνουμε επιλογή αυτών που θέλουμε.

SELECT <ον. στήλης-1, ον. στήλης-2, . . ., ον. στήλης-ν ή *>FROM <όνομα πίνακα> WHERE <συνθήκη>

εκτύπωση όλου του πίνακαSELECT * FROM S

ήSELECT P#, EPONYMO, ONOM, POLI, TEL FROM S

εκτύπωση στηλώνSELECT P#, POLI FROM S

Page 27: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι

ΕΠΙΛΟΓΗ RECORDS IΙ

εκτύπωση γραμμών

SELECT Ε#, POLI FROM S WHERE POLI=“ΑΘΗΝΑ”

ή

SELECT * FROM S WHERE Π#=“Π3”

Π3 ΒΑΣΙΛΕΙΟΥ ΔΗΜΗΤΡΗΣ ΛΑΜΙΑ 2421024567

Τελεστές =, >, <, >=, <=, <>, .AND., .OR., .NOT.

SELECT * FROM P WHERE POLI=“ΑΘΗΝΑ” .AND. TIMH>50

Π# ΟΝΟΜΑ-Ε XAR-PR POLI TIMHΕ4 ΖΑΧΑΡΗ ΣΚΟΥΡΗ ΑΘΗΝΑ 60E6 ΦΑΚΕΣ ΧΟΝΤΡΕΣ ΑΘΗΝΑ 70