ΣΕΦΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΚΑΒΑΛΑ ΦΟΛΗ ΣΕΦΝΟΛΟΓΙΚΩΝ ΕΥΑΡΜΟΓΩΝ ΣΜΗΜΑ ΒΙΟΜΗΦΑΝΙΚΗ ΠΛΗΡΟΥΟΡΙΚΗ

Σχετικά έγγραφα
Δίκτυα Η/Υ ςτην Επιχείρηςη

Στο λογιςμικό (software) περιλαμβϊνονται όλα τα προγράμματα του υπολογιςτό. Το Λογιςμικό χωρύζετε ςε δύο μεγϊλεσ κατηγορύεσ:

Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

ΚΕΥΑΛΑΙΟ 2 Σο εςωτερικό του υπολογιςτό

NetMasterII ςύςτημα μόνιμησ εγκατϊςταςησ επιτόρηςη και καταγραφό ςημϊτων από αιςθητόρια και μετατροπεύσ κϊθε εύδουσ ςύςτημα ειδοπούηςησ βλϊβη

Βαγγϋλησ Οικονόμου Διϊλεξη 4. Δομ. Προγραμ. - Διϊλεξη 4

ΗΛΕΚΣΡΟΝΙΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΣΟΤ ΦΟΛΕΙΟΤ ΠΡΟ ΣΟΤ ΓΟΝΕΙ. - Θέςη υπεύθυνου προςώπου για την ςυμπλήρωςη του ερωτηματολογίου: Ερωτηματολόγιο

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφϊλαιο2: Βαςικϊ ςτοιχεύα τησ γλώςςασ

Οδηγόσ πουδών

Βαςικέσ Έννοιεσ Λειτουργικών Συςτημάτων

Ειςαγωγή ςτη Διαχείριςη Δικτύων

ΔΕΔΟΜΕΝΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΕΣ

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

ΑΡΧΗ 1Η ΕΛΙΔΑ ΘΕΜΑ A Α. Μονάδεσ 10 Μονάδεσ 5 Μονάδεσ 4 4 Ε. 1 Μονάδεσ 2 Ε. 2 Μονάδεσ 5 ΣΕΛΟ 1Η ΕΛΙΔA

22/11/2009. Προηγοφμενη βδομάδα... Δεδομζνα απο Δευτερεφουςεσ πηγζσ. Αυτή την βδομάδα...

Πίνακασ τεχνικών και λειτουργικών προδιαγραφών. Πλόρεσ ελληνικό περιβϊλλον (interface) για Διαχειριςτϋσ, Εκπαιδευτϋσ, Εκπαιδευόμενουσ

Τρύτη Διϊλεξη Μοντϋλα Διαδικαςύασ Λογιςμικού Μϋροσ Α

Εντολζς του Λειτουργικοφ Συστήματος UNIX

ΠΡΑΚΣΙΚΟ ΟΔΗΓΟ ΓΙΑ ΣΟ STORYJUMPER

Ειςαγωγό ςτο Ιnternet. χολό Θετικών Επιςτημών, Σμόμα Βιολογύασ, Πανεπιςτόμιο Πατρών

ΔΙΑΣΡΟΦΗ ΚΑΣΑ ΣΗ ΔΙΑΡΚΕΙΑ ΣΟΤ ΘΗΛΑΜΟΤ ΣΖΕΛΑΛΗ ΑΝΑΣΑΙΑ ΜΑΙΑ ΙΠΠΟΚΡΑΣΕΙΟ Γ.Π.Ν.Θ.

Αρχϋσ του NCTM. Αρχϋσ του NCTM. Αρχϋσ του NCTM. Διδακτικό Μαθηματικών ΙΙ. Μϊθημα 9 ο Αξιολόγηςη

ΕΡΓΑΣΗΡΙΑΚΑ ΜΑΘΗΜΑΣΑ Γ ΓΤΜΝΑΙΟΤ

19/10/2009. Προηγοφμενη βδομάδα... Σήμερα Γεωγραφικά Συςτήματα Πληροφοριϊν Χωρικά Μοντζλα Δεδομζνων. Δομή του μαθήματοσ

Βαγγϋλησ Οικονόμου Διϊλεξη 5 ΠΙΝΑΚΕΣ. Δομ. Προγραμ. - Διϊλεξη 5 1

Εγχειρίδιο Χρήσης των Εργαλείων Αναγνώρισης Χαρισματικών Μαθητών στα Μαθηματικά

«Δυνατότητεσ και προοπτικϋσ του επαγγϋλματοσ που θϋλω να ακολουθόςω μϋςα από το Διαδύκτυο».

Τεχνικόσ Μαγειρικόσ Τϋχνησ Αρχιμϊγειρασ (Chef) Β Εξϊμηνο

Παθήςεισ του θυροειδή ςε άτομα με ςύνδρομο Down: Πληροφορίεσ για γονείσ και δαςκάλουσ. Τι είναι ο θυροειδήσ αδένασ;

Θεςμική Αναμόρφωςη τησ Προ-πτωχευτικήσ Διαδικαςίασ Εξυγίανςησ Επιχειρήςεων

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. Δωδϋκατη Διϊλεξη Έλεγχοσ Συςτόματοσ

Μθχανι Αίνιγμα θ επιρροι τθσ ςτισ ςφγχρονεσ επικοινωνίεσ ςτο Internet

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

ΜΕΣΑΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ ΕΠΕΞΕΡΓΑΙΑ ΒΙΝΣΕΟ ΜΕ ΦΡΗΗ DSP

Η Διαύρεςη 134:5. Η Διαύρεςη 134:5. Διδακτική Μαθηματικών ΙΙ

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

Μαθηματικϊ. Β' Ενιαύου Λυκεύου. (μϊθημα κοινού κορμού) Υιλοςοφύα - κοπού

Δίκτυα Η/Υ ςτην Επιχείρηςη

Ο ΟΓΙΚΟΣ ΦΑΡΤΗΣ ΤΟΥ ΣΑΚΦΑΡΩΓΗ ΓΙΑΒΗΤΗ ΣΤΗΝ ΔΛΛΑΓΑ

19/10/2009. Γεωγραφικά Συςτήματα Πληροφοριϊν Spatial Operations. Σήμερα... Τφποι ερωτήςεων (Queries)

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

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Μνήμη

Επιςκόπηςη Τεχνολογιών Διαδικτύου

Το τςάϊ ςυντροφιά ςτην δουλειά

ΣΕΦΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΚΑΒΑΛΑ

1. ΕΙΑΓΩΓΗ ~ 1 ~ τυλιανού. 1 Σο ςχϋδιο μαθόματοσ ςυζητόθηκε με το ςύμβουλο του μαθόματοσ τησ Νϋασ Ελληνικόσ Γλώςςασ κ. Μϊριο

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α Α1 Μονάδες 10 Μονάδες 4 ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

Μαθηματικοπούηςη. Μαθηματικοπούηςη. Μαθηματικϋσ δεξιότητεσ. Κατακόρυφη

Μαύροσ Γιϊννησ Μαθηματικόσ

Case Studies. χρειάζεται να προςλάβουμε εμείσ άνθρωπο να ςυντηρεί τουσ servers». Επιτεύχθηκε μια επεκτϊςιμη λύςη με γρόγορη προςαρμογό των χρηςτών.

Η κατανομή των ηπείρων και των θαλασσών Ωκεανοί και θάλασσες

Φοιτητόσ : Κουκϊρασ Παραςκευϊσ ΑΜ : 06/3059 Ίδρυμα/Τμόμα : Αλεξϊνδρειο Τεχνολογικό Εκπαιδευτικό Ιδρυμα/Πληροφορικόσ

Βαγγϋλησ Οικονόμου Διϊλεξη 6. Δομ. Προγραμ. - Συναρτόςεισ - Διϊλεξη 6

Ποιοσ εύναι υπεύθυνοσ για την ςυλλογό δεδομϋνων αυτόσ τησ ιςτοςελύδασ;

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» ΚΕΦΑΛΑΙΟ 3: ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΜΕΘΟΔΟΙ

Ένασ άνθρωποσ που δεν ςτοχάζεται για τον εαυτό του δεν ςτοχάζεται καθόλου». Oscar Wilde

ΕΠΠΑΙΚ Θεςςαλονύκησ, /02/2011

Επαγγελματικϋσ Δυνατότητεσ

ενϊριο Διδαςκαλύασ: Ανϊπτυξη Παιχνιδιού-Μϋροσ 1

EETT Δημόςια Διαβούλευςη ςχετικά με την εκχώρηςη δικαιώματων χρήςησ ραδιοςυχνοτήτων ςτη Ζώνη 27,5 29,5 GHz

Αναφϋρεται ςτουσ μηχανιςμούσ ελϋγχου δϋςμευςησ των πόρων.

Πποκλήζειρ καηά ηην ένηαξή ηοςρ

ΠΕΡΙΣΕΡΙ, 05/08/2013 ΠΡΟΚΗΡΤΞΗ ΠΡΟΛΗΨΗ ΠΡΟΩΠΙΚΟΤ

ΕΛΕΓΦΟ ΕΜΠΟΡΕΤΜΑΣΨΝ ΣΕΦΝΙΚΟ ΜΑΓΕΙΡΙΚΗ ΣΕΦΝΗ ΑΡΦΙΜΑΓΕΙΡΑ (CHEF)

Επικοινωνύα. twitter: tatsis_kostas Τηλϋφωνο: Ώρεσ ςυνεργαςύασ: κλειδύ: did2009

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ Αρ. Πρωτ η Τγειον. Περιφ. ΑΣΣΙΚΗ Γ. Ν. Α. Γ. ΓΕΝΝΗΜΑΣΑ Αθήνα 18/04/2016

ΤΕΙ ΑΜΘ-Σχολό Διούκηςησ και Οικονομύασ-Τμόμα Λογιςτικόσ και Χρηματοοικονομικόσ

ΣΧΕΔΙΟ ΝΟΜΟΥ ΑΙΤΙΟΛΟΓΙΚΗ ΕΚΘΕΣΗ

Χαϊδάρησ Δημήτρησ. Επιβλέπων καθηγητήσ: Ψαρράσ Νικόλαοσ

ενϊριο Φρόςησ τησ Εφαρμογόσ e-me content

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. Ενδϋκατη Διϊλεξη Καταςκευό Λογιςμικού

Περιεκτικότητα ςε θρεπτικϊ ςτοιχεύα Ικανότητα ανταλλαγόσ κατιόντων Οξύτητα εδϊφουσ (ph)

Πωσ αλλάζει τη Μεςόγειο το ενεργειακό παζλ

= 8 ενώ Shift + = * * 8

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

ΠΟΛΙΣΙΣΙΚΟ ΠΡΟΓΡΑΜΜΑ ΦΙΛΑΝΑΓΝΩΙΑ «Νηπίων αναγνώσματα και βιβλιοκαμώματα»

Τϋταρτη Διϊλεξη Μοντϋλα Διαδικαςύασ Λογιςμικού Μϋροσ Β

Μαθηματικϊ Γ' Ενιαύου Λυκεύου (μϊθημα κατεύθυνςησ)

Το παζάρι των λοιμώξεων ςτον 'κατεχόμενο' κόςμο των χρηςτών

ενθαρρύνοντασ τη ςυνέχιςη των προβλημάτων

Νέο Πρόγραμμα Σπουδών του Νηπιαγωγείου. Δρ Ζωή Καραμπατζάκη, Σχολική Σύμβουλος 21 ης Περιφέρειας Π.Α.

Η διδασκαλία του μαθήματος της Γλώσσας στο Γυμνάσιο

A1. Να γρϊψετε την περύληψη του κειμϋνου που ςασ δόθηκε ( λϋξεισ). Μονάδεσ 25

ςτην περύπτωςη που η μόνη αλλαγό αφορϊ ςτη Δημόςια Φρηματοδότηςη ανϊ ϋτοσ (2013, 2014).

Θέκα: Γεκηνπξγία θνηλσληθνύ δηθηύνπ κε βάζε ην ππεξεζηνζηξεθέο κνληέιν Παλεπηζηήκην Πεηξαηά, Τκήκα Ψεθηαθώλ Σπζηεκάησλ Σπληάθηεο: Καινγεξόπνπινο

Δημιουργύα ενόσ Business Plan

Σχεδιαςμόσ & Εκπόνηςη Εκπαιδευτικήσ Ζρευνασ

ΠΑΡΟΥ ΙΑ Η Franchise

ΑΝΑΛΤΕΙ / 12. Οικονομικό κρύςη και μϋθοδοι αναζότηςησ εργαςύασ

Θεωρύεσ Μϊθηςησ και ΤΠΕ Εποικοδομιςμόσ

ΜΑΘΗΜΑΤΙΚΑ Α ΤΑΞΗ ΓΥΜΝΑΣΙΟΥ. Β ΓΥΜΝΑΣΙΟΥ - ΜΑΘΗΜΑΤΙΚΑ Σελίδα 1

ΔΙΑΚΗΡΤΞΗ ΣΑΚΣΙΚΟΤ ΑΝΟΙΚΣΟΤ (ΔΙΕΘΝΗ) ΔΙΑΓΨΝΙΜΟΤ

ημειώςεισ των αςκόςεων του μαθόματοσ Κεφαλαιαγορϋσ- Επενδύςεισ Ενότητα: Χρηματοοικονομικόσ Κύνδυνοσ Διδϊςκων : Αγγελϊκησ Γιώργοσ Εργαςτηριακόσ

ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ. Ανϊπτυξη δομημϋνων λύςεων λογιςμικού με χρόςη Python

Το Νέο Εκπαιδευηικό Σύζηημα

Επιταχυντϋσ Σωματιδύων

ΗΛΕΚΤΡΟΝΙΚΟ ΒΙΒΛΙΑ (E-ΒΟΟΚS) Ανάπτυξη ιςτοχώρου με χρήςη ςτοιχείων e-books Website development using e-book elements

Α. ΕΛΕΤΘΕΡΕ ΜΕΣΕΓΓΡΑΥΕ

Ενημερωτικό Σημεύωμα για το Ειδικό Καθεςτώσ τησ Επιχειρηματικότητασ των Νϋων του Επενδυτικού Νόμου 3908/2011, για το ϋτοσ 2011

Θεωρύεσ Μϊθηςησ και ΤΠΕ Συμπεριφοριςμόσ

Transcript:

ΣΕΦΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΚΑΒΑΛΑ ΦΟΛΗ ΣΕΦΝΟΛΟΓΙΚΩΝ ΕΥΑΡΜΟΓΩΝ ΣΜΗΜΑ ΒΙΟΜΗΦΑΝΙΚΗ ΠΛΗΡΟΥΟΡΙΚΗ ΘΕΜΑ ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ ΑΤΣΟΜΑΣΗ ΤΝΘΕΗ ΕΛΙΔΑ HTML ΜΕ ΒΑΗ ΣΟ ΠΡΟΓΡΑΜΜΑ ΠΑΡΑΚΟΛΟΤΘΗΗ ΠΡΟΓΡΑΜΜΑΣΟ ΔΙΔΑΚΑΛΙΑ ΣΗΝ ΕΚΣΕΛΕΗ ΣΟΤ ΚΑΙ ΑΠΟΣΟΛΗ ΣΗ ΣΟΝ ΤΠΕΤΘΤΝΟ ΣΟΤ ΔΙΑΔΙΚΣΤΑΚΟΤ ΣΟΠΟΤ ΣΟΤ ΣΜΗΜΑΣΟ ΚΑΘΗΜΕΡΙΝΑ & ΣΡΟΠΟΠΟΙΗΗ ΚΩΔΙΚΑ ΜΕΝΟΤ - ΤΠΟΜΕΝΟΤ ΙΣΟΕΛΙΔΑ ΒΙΟΜΗΦΑΝΙΚΗ ΠΛΗΡΟΥΟΡΙΚΗ ΟΤΣΩ ΩΣΕ ΝΑ ΛΕΙΣΟΤΡΓΕΙ ΜΕ ΔΙΑΥΟΡΟΤ ΥΤΛΛΟΜΕΣΡΗΣΕ (BROWSERS) & ΚΑΣΑΚΕΤΗ ΠΡΟΓΡΑΜΜΑΣΟ ΑΝΑΝΕΩΗ ΜΕΝΟΤ ΤΠΟΜΕΝΟΤ ΣΩΝ ΙΣΟΕΛΙΔΩΝ ΑΝΑ ΕΞΑΜΗΝΟ ΕΠΙΒΛΕΠΩΝ ΕΚΠΑΙΔΕΤΣΙΚΟ: Θεόδωροσ Αλεβύζοσ ΠΟΤΔΑΣΕ: Παπϊσ Αρετϋοσ, Γιαννόπουλοσ Γεώργιοσ 1

ΕΤΦΑΡΙΣΙΕ Με την ολοκλόρωςη τησ εργαςύασ αυτόσ, θεωρώ καθόκον μου να ευχαριςτόςω τον καθηγητό μου και ειςηγητό τησ πτυχιακόσ μελϋτησ κ. Θεόδωρο Αλεβίζο για την ϊψογη ςυνεργαςύα που εύχαμε ςε όλη τη διϊρκεια πραγματοπούηςησ τησ πτυχιακόσ εργαςύασ. Θα όθελα επύςησ να ευχαριςτόςω όλουσ του καθηγητϋσ μου για την πολύτιμη ςυμβολό τουσ ςτισ γνώςεισ που αποκόμιςα. Σϋλοσ, θα όθελα να εκφρϊςω την ευγνωμοςύνη μου προσ την οικογϋνεια μου για την υπομονό και την ηθικό υποςτόριξη που μου ϋδειξαν όλο αυτό τον καιρό. Παπάσ Αρετέοσ Η εργαςύα αυτό ξεκύνηςε και τελεύωςε μϋςα ςτο ακαδημαώκό ϋτοσ 2008-2009. Θα όθελα να ευχαριςτόςω τον καθηγητό μου κ. Θεόδωρο Αλεβίζο για την εμπιςτοςύνη που μου ϋδειξε δύνοντασ μου τη δυνατότητα να εκπονόςω την πτυχιακό μου εργαςύα ςε αυτόν και για τη διϊθεςη του να απαντόςει και να μασ λύςει οποιαδόποτε απορύα οποιαδόποτε ςτιγμό το χρειαζόμαςταν. Επύςησ, θα επιθυμούςα να εκφρϊςω ευγνωμοςύνη ςε όλουσ τουσ καθηγητϋσ για τισ γνώςεισ που μου προςϋφεραν καθ όλη τη διϊρκεια τησ φούτηςησ μου. Σϋλοσ, θϋλω να ευχαριςτόςω θερμϊ την οικογϋνειϊ μου για την ηθικό και οικονομικό ςυμπαρϊςταςη όχι μόνο κατϊ τη διϊρκεια τησ εκπόνηςησ τησ πτυχιακόσ μου εργαςύασ αλλϊ και καθ όλη τη διϊρκεια των ςπουδών μου. Γιαννόπουλοσ Γεώργιοσ 2

ΠΕΡΙΕΦΟΜΕΝΑ Πρόλογοσ 8 Κεφϊλαιο 1 : Ειςαγωγό.... 10 1.0 Δομό πτυχιακόσ εργαςύασ... 10 ΘΕΜΑ 1ο Κεφϊλαιο 2:...... 13 2.0 Περιγραφό Προβλόματοσ... 13 2.1 Σι λύςη θϋλουμε ςτο πρόβλημα... 13 Κεφϊλαιο 3: Γλώςςεσ διαδυκτιακού προγραμματιςμού. 14 3.0 Γλώςςεσ Προγραμματιςμού ςτο Internet. 14 3.1 HTML. 16 3.1.1 Σι εύναι HTML.. 16 3.1.2 Δημιουργύα αρχεύων HTML... 16 3.1.3 Εκδόςεισ HTML.. 17 3.2 Δυναμικόσ Διαδικτυακόσ προγραμματιςμόσ. 17 3.3 PHP. 18 3.3.1 Σι εύναι PHP... 18 3.3.2 Μια ςύντομη ιςτορύα τησ PHP... 18 3.3.3 Σι μπορεύ να κϊνει η PHP.. 19 3.3.4 Σομεύσ που χρηςιμοποιεύται ϋνα PHP Sciprt. 19 3.3.5 Πλεονεκτόματα τησ PHP... 20 3.3.6 Σύποι δεδομϋνων τησ PHP 23 3.3.7 Φρόςη Includes για καλύτερη αςφϊλεια και οργϊνωςη 24 3

Κεφϊλαιο 4: Φρονοπρογραμματιςμόσ Διεργαςιών.. 26 4.0 Φρονοπρογραμματιςμόσ διεργαςιών 26 4.1 CRON... 26 4.1.1 Σι εύναι το Cron. 26 4.1.2 Ρυθμύζοντασ το πρόγραμμα Cron. 27 4.1.3 Εγκαθιςτώντασ ϋνα Crontab 30 Κεφϊλαιο 5: Βϊςη δεδομϋνων. 31 5.0 Η Θεωρύα των Βϊςεων Δεδομϋνων... 31 5.0.1 Ειςαγωγό ςτισ Βϊςεισ Δεδομϋνων 31 5.0.2 Σα Δεδομϋνα και οι Πληροφορύεσ.. 31 5.0.3 Η Οργϊνωςη Αρχεύων 32 5.0.4 Προβλόματα τησ Οργϊνωςησ Αρχεύων 34 5.0.5 Οι Βϊςεισ Δεδομϋνων και τα ΔΒΔ (DBMS).. 35 5.0.6 Η Αρχιτεκτονικό των ΔΒΔ 37 5.1 Βϊςεισ Δεδομϋνων (DataBases).... 38 5.1.1 Σι Εύναι οι Βϊςεισ Δεδομϋνων (DataBases)... 38 5.1.2 Οι τόχοι μιασ Βϊςησ Δεδομϋνων 39 5.1.3 Σα τοιχεύα μιασ Βϊςησ Δεδομϋνων.. 40 5.1.4 Σα Εργαλεύα Φειριςμού Πληροφοριών 40 5.2 SQL MySQL.. 41 5.2.1 Σι Εύναι η Sql 41 5.2.2 Σι εύναι MySql.. 41 5.2.3 Πλεονεκτόματα τησ MySql.. 42 4

5.3 Apache Web Server.. 43 Ενότητα 1: Λειτουργικϋσ Απαιτόςεισ 45 Μη λειτουργικϋσ Απαιτόςεισ 45 Ενότητα 2: Προδιαγραφϋσ του προγρϊμματοσ.. 46 Ενότητα 3: Μ.Ο. (Μοντϋλο Οντοτότων υςχετύςεων) 49 Ενότητα 4: Λύγα λόγια για τον κώδικα.. 56 Κώδικασ - Σεκμηρύωςη του κώδικα.. 57 ΘΕΜΑ 2ο Κεφϊλαιο 6:.. 70 6.0 Περιγραφό Προβλόματοσ.. 70 6.1 Σι λύςη θϋλουμε ςτο πρόβλημα. 70 Κεφϊλαιο 7: JAVASCRIPT... 71 7.0 Σι εύναι Javascript 71 7.1 Προγραμματύζοντασ με Javascript 71 7.2 Θετικϊ τησ Javascript 72 7.3 Αρνητικϊ τησ Javascript. 72 Κεφϊλαιο 8: Web browser 73 8.0 Σι εύναι Web browser 73 5

Ενότητα 5: Λειτουργικϋσ Απαιτόςεισ 74 Ενότητα 6: Προδιαγραφϋσ του προγρϊμματοσ 75 Ενότητα 7: Λύγα λόγια για το κώδικα.. 76 Σεκμηρύωςη του κώδικα.. 80 ΘΕΜΑ 3 Ο Κεφϊλαιο 9:.. 89 9.0 Περιγραφό Προβλόματοσ.. 89 9.1 Σι λύςη θϋλουμε ςτο πρόβλημα. 89 Κεφϊλαιο 10:.. 90 10.0 Λύγα λόγια για τη c++. 90 Ενότητα 8: Λειτουργικϋσ Απαιτόςεισ. 92 Μη λειτουργικϋσ Απαιτόςεισ.. 93 Ενότητα 9: Προδιαγραφϋσ του Προγρϊμματοσ 94 Ενότητα 10: Κώδικασ - Σεκμηρύωςη του κώδικα. 100 Παρϊρτημα A : υμπερϊςματα. 120 Αναφορϋσ Βιβλιογραφύεσ. 121 6

ΛΙΣΑ ΠΙΝΑΚΩΝ Θϋμα 1 ο Πύνακασ 1 - Προδιαγραφό 1 46 Πύνακασ 2 - Προδιαγραφό 2 47 Πύνακασ 3 - Προδιαγραφό 3 47 Πύνακασ 4 - Προδιαγραφό 4 48 Πύνακασ 5 - ΦΕΙΑΚΑ ΦΗΜΑΣΑ ΑΠΟ ΣΟ ΜΟΝΣΕΛΟ ΟΝΣΟΣΗΣΩΝ - ΤΦΕΣΙΕΩΝ (Μ.Ο.) 49 Θϋμα 2 ο Πύνακασ 6 - Προδιαγραφό 1 75 Θϋμα 3 ο Πύνακασ 7 Προδιαγραφό 1. 94 Πύνακασ 8 Προδιαγραφό 2. 95 Πύνακασ 9 Προδιαγραφό 3. 95 Πύνακασ 10 Προδιαγραφό 4. 96 Πύνακασ 11 Προδιαγραφό 5. 97 Πύνακασ 12 Προδιαγραφό 6. 98 Πύνακασ 13 Προδιαγραφό 7. 98 Πύνακασ 14 Προδιαγραφό 8. 99 7

ΠΡΟΛΟΓΟ Η πτυχιακό εργαςύα μασ χωρύζεται ςε τρεύσ διαφορετικϋσ θεματικϋσ ενότητεσ. αν πρώτο θϋμα, για την ποιοτικό αναβϊθμιςη του εκπαιδευτικού ϋργου ςτο τμόμα τησ Βιομηχανικόσ Πληροφορικόσ, μασ ζητόθηκε να αναπτύξουμε μια διεργαςύα η οπούα θα ενημερώνει τισ ςελύδεσ των μαθημϊτων τησ βιομηχανικόσ πληροφορικόσ καθημερινώσ επϊνω ςτα μαθόματα τα οπούα διεξϊγονται και θα διεξαχθούν από τον εκϊςτωτε διδϊςκοντα καθηγητό του κϊθε μαθόματοσ. τόχοσ του πρώτου θϋματοσ τησ πτυχιακόσ εργαςύασ εύναι η ανϊπτυξη μιασ διεργαςύασ μϋςω τησ οπούασ να μπορεύ να γύνεται διαρκόσ ενημϋρωςη των ςελύδων των μαθημϊτων. Με αυτό τον τρόπο οι φοιτητϋσ θα ϋχουν ϊμεςη και καθημερινό ενημϋρωςη ςχετικϊ με τα μαθόματα τουσ. αν δεύτερο θϋμα μασ ανατϋθηκε να τροποποιόςουμε το μενούυπομενού τησ ςελύδασ τησ Βιομηχανικόσ πληροφορικόσ ούτοσ ώςτε να ανούγει με όλουσ τουσ φυλλομετρητϋσ( Browsers). τόχοσ του δεύτερου θϋματοσ τησ πτυχιακόσ εργαςύασ εύναι η τροποπούηςη του μενού υπομενού με τϋτοιο τρόπο ούτοσ ώςτε να δύνεται η δυνατότητα ςτουσ χρόςτεσ να μπορούν να ανούγουν τα μενού-επομϋνου των μαθημϊτων τησ ςχολόσ με οποιοδόποτε φυλλομετρητό και όχι μόνο με τον internet explorer. Με αυτό τον τρόπο οι φοιτητϋσ θα ϋχουν δυνατότητα να επιλϋγουν ανϊμεςα ςε πολλούσ browsers και να χρηςιμοποιούν αυτόν που επιθυμούν. 8

αν τρύτο θϋμα καταςκευϊςαμε ϋνα πρόγραμμα με το οπούο ο υπεύθυνοσ του τμόματοσ θα ϋχει την δυνατότητα να ανανεώνει και να προςθϋτει τον επιπλϋον κώδικα για το μενού-υπομενού του καινούργιου εξϊμηνου ςε όλεσ τισ ςελύδεσ των μαθημϊτων του τμόματοσ. τόχοσ του τρύτου θϋματοσ τησ πτυχιακόσ εργαςύασ εύναι η καταςκευό προγρϊμματοσ το οπούο θα ενημερώνει τισ όδη υπϊρχον ςελύδεσ τησ ςχολόσ και θα προςθϋτει επιπλϋον κώδικα για το μενούυπομενού του καινούργιου εξαμόνου. Με αυτό τον τρόπο θα διευκολύνουμε τον υπεύθυνο και δεν θα χρειϊζεται να αναβαθμύζει κϊθε εξϊμηνο όλεσ τισ ςελύδεσ χειροκύνητα. κοπόσ τησ πτυχιακόσ εργαςύασ εύναι να εμπλουτύςουμε τησ γνώςεισ μασ ςε διϊφορεσ γλώςςεσ προγραμματιςμού αλλϊ και να προςφϋρουμε ςτο τμόμα μια μικρό βοόθεια η οπούα θα αναβαθμύςει το εκπαιδευτικό ϋργο. Η διαχεύριςη των ςημερινών ιςτοςελύδων εύναι απολύτωσ αναγκαύα καθώσ οι απαιτόςεισ όλων των χρηςτών μϋςω του διαδικτύου (internet) για ανταλλαγό πληροφοριών, για καλύτερη-ςύντομη-εύκολη χρόςη (των ιςτοςελύδων) ςε ςύντομο χρονικό διϊςτημα ϋχουν αυξηθεύ ςημαντικϊ. 9

ΚΕΥΑΛΑΙΟ 1 ΕΙΑΓΩΓΗ 1.0 Δομή πτυχιακήσ εργαςίασ Θέμα 1 ο Σο ΚΕΥΑΛΑΙΟ 2 περιγρϊφει το πρώτο θϋμα τησ πτυχιακόσ εργαςύασ. τη πρώτη παρϊγραφο αναλύεται το θϋμα τησ πτυχιακόσ εργαςύασ και ςτη ςυνϋχεια περιγρϊφεται η λύςη που δόθηκε ςτο πρόβλημα αυτό. Σο ΚΕΥΑΛΑΙΟ 3 κϊνει μια ειςαγωγό ςτισ γλώςςεσ διαδικτυακού προγραμματιςμού. Ακόμα, αναφϋρει τισ γλώςςεσ με τισ οπούεσ υλοποιόθηκε το πρόγραμμα μασ. Επύςησ γύνεται μύα λεπτομερόσ αναφορϊ για HTML και PHP καθώσ και για τον διαδικτυακό προγραμματιςμό. Σο ΚΕΥΑΛΑΙΟ 4 κϊνει μια ειςαγωγό ςτο χρονοπρογραμματιςμό διεργαςιών. Γύνεται αναφορϊ ςτο πρόγραμμα Cron και ςτο τρόπο με τον οπούο ρυθμύζεται και χρονοπρογραμματύζεται μύα διεργαςύα. Σο ΚΕΥΑΛΑΙΟ 5 περιγρϊφει τη θεωρύα των βϊςεων δεδομϋνων για να αντιληφτούμε το ςκοπό και τον λόγο που δημιουργόθηκαν. Παρϊλληλα γύνεται μύα λεπτομερόσ αναφορϊ ςτην SQL και MySql ςτη βϊςη δεδομϋνων δηλαδό από την οπούα θα αντλόςουμε πληροφορύεσ. Η ΕΝΟΣΗΣΑ 1 περιγρϊφει τισ απαιτόςεισ του προγρϊμματοσ. Εδώ περιγρϊφονται οι λειτουργικϋσ και μη λειτουργικϋσ απαιτόςεισ και αιτιολογούνται. ΣΗΝ ΕΝΟΣΗΣΑ 2 περιγρϊφονται ςε Πύνακεσ οι προδιαγραφϋσ του προγρϊμματοσ. Η κϊθε προδιαγραφό περιγρϊφεται ξεχωριςτϊ και αιτιολογεύται. 10

Η ΕΝΟΣΗΣΑ 3 περιγρϊφει το Μ.Ο. (Μοντϋλο Οντοτότων υςχετύςεων) από την προηγούμενη πτυχιακό, καθώσ και αναφϋρονται οι πύνακεσ και τα ςτοιχεύα των πινϊκων από τουσ οπούουσ θα αντλόςουμε πληροφορύεσ. την ΕΝΟΣΗΣΑ 4 γύνεται λεπτομερόσ τεκμηρύωςη και αναφορϊ του κώδικα. Θέμα 2 ο Σο ΚΕΥΑΛΑΙΟ 6 περιγρϊφει το δεύτερο θϋμα τησ πτυχιακόσ εργαςύασ. τη πρώτη παρϊγραφο αναλύεται το θϋμα τησ πτυχιακόσ εργαςύασ και ςτη ςυνϋχεια περιγρϊφεται η λύςη που δόθηκε ςτο πρόβλημα αυτό. Σο ΚΕΥΑΛΑΙΟ 7 κϊνει μια ειςαγωγό ςτη Javascript. Επύςησ αναφϋρει και κϊποια χαρακτηριςτικϊ θετικϊ και αρνητικϊ του προγραμματιςμού με Javascript. Σο ΚΕΥΑΛΑΙΟ 8 κϊνει μια ειςαγωγό ςτουσ φυλλομετρητϋσ (Browsers). Περιγρϊφει και αναφϋρει λεπτομερώσ τι εύναι ϋνασ φυλλομετρητόσ (Browser). Η ΕΝΟΣΗΣΑ 5 περιγρϊφει τισ απαιτόςεισ του προγρϊμματοσ. Εδώ περιγρϊφονται οι λειτουργικϋσ και μη λειτουργικϋσ απαιτόςεισ και αιτιολογούνται. την ΕΝΟΣΗΣΑ 6 περιγρϊφεται ςε Πύνακα οι προδιαγραφό του προγρϊμματοσ. την ΕΝΟΣΗΣΑ 7 γύνεται λεπτομερόσ τεκμηρύωςη και αναφορϊ του κώδικα. 11

Θέμα 3 ο Σο ΚΕΥΑΛΑΙΟ 9 περιγρϊφει το τρύτο θϋμα τησ πτυχιακόσ εργαςύασ. τη πρώτη παρϊγραφο αναλύεται το θϋμα τησ πτυχιακόσ εργαςύασ και ςτη ςυνϋχεια περιγρϊφεται η λύςη που δόθηκε ςτο πρόβλημα αυτό. Σο ΚΕΥΑΛΑΙΟ 10 κϊνει μύα ειςαγωγό ςτη c++. Αναφϋρει πληροφορύεσ ςχετικϊ με τη ςυγκεκριμϋνη γλώςςα. Η ΕΝΟΣΗΣΑ 8 περιγρϊφει τισ απαιτόςεισ του προγρϊμματοσ. Εδώ περιγρϊφονται οι λειτουργικϋσ και μη λειτουργικϋσ απαιτόςεισ και αιτιολογούνται. την ΕΝΟΣΗΣΑ 9 Περιγρϊφονται ςε πύνακα οι προδιαγραφϋσ του προγρϊμματοσ. Σϋλοσ ακολουθούν οι αναφορϋσ από το διαδύκτυο και οι βιβλιογραφύεσ. 12

ΚΕΥΑΛΑΙΟ 2 ΣΟ 1 ο ΘΕΜΑ ΣΗ ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ 2.0 Περιγραφή του προβλήματοσ Επειδό οι αξιολογητϋσ επιμϋνουν ςτην ύπαρξη του προγρϊμματοσ διδαςκαλύασ κϊθε μαθόματοσ ςτισ διαδικτυακϋσ ςελύδεσ του και επειδό ϋχουμε όδη ςύςτημα παρακολούθηςησ προγρϊμματοσ διδαςκαλύασ μαθόματοσ ζητεύται η καταςκευό διεργαςύασ η οπούα θα πραγματοποιεύ αυτόματη ςύνθεςη ςελύδασ html με το πρόγραμμα και την εκτϋλεςη του και αποςτολό τησ ςτον υπεύθυνο του διαδικτυακού τόπου του Σμόματοσ κϊθε φορϊ που υπϊρχει ενημϋρωςη. 2.1 Σι λύςη θέλουμε ςτο πρόβλημα Λύςη : ε χρονικό διϊςτημα που θα ορύςουμε εμεύσ, το ςύςτημα θα ανούγει και θα υλοποιεύ αυτόματα την διεργαςύα. Η διεργαςύα θα χρονοπρογραμματιςτεύ με το πρόγραμμα «Cron». Αρχικϊ (η διεργαςύα) θα τρϋχει ϋνα αρχεύο «php», το οπούο θα ενημερώνει και θα δημιουργεύ δυναμικϋσ ιςτοςελύδεσ html με ςχετικϋσ πληροφορύεσ κϊθε μαθόματοσ τησ ςχολόσ. Η δημιουργύα των ςελύδων θα γύνει με την χρόςη php. Σα ςτοιχεύα που εμφανύζονται ςτισ ςελύδεσ βρύςκονται ςε ςυγκεκριμϋνη βϊςη δεδομϋνων MySql (Παρακϊτω ςτην πτυχιακό εργαςύα παρατύθεται και το Μ.Ο..(Μοντϋλο Οντοτότων υςχετύςεων) διϊγραμμα βϊςησ δεδομϋνων). τη ςυνϋχεια οι ςελύδεσ (που δημιουργόθηκαν) θα αποςτϋλλονται μϋςω δικτύου ςτον υπεύθυνο του διαδυκτιακού τόπου του τμόματοσ τησ βιομηχανικόσ πληροφορικόσ. Σϋλοσ και εφόςον ϋχουν αποςταλεύ όλεσ οι ςελύδεσ η διεργαςύα θα κλεύνει. 13

ΚΕΥΑΛΑΙΟ 3 Γλώςςεσ διαδυκτιακού προγραμματιςμού 3.0 Γλώςςεσ Προγραμματιςμού ςτο Internet όμερα ςτο Web, το περιεχόμενο (content) εύναι αυτό που κυριαρχεύ. Αφού ϋχουμε μϊθει πολύ καλϊ την HTML και τη Δυναμικό (Dynamic) HTML, μπορούμε να δημιουργόςουμε ϋνα Web site με εντυπωςιακό εμφϊνιςη. Οι ενδογενεύσ αδυναμύεσ όμωσ, τησ HTML, μιασ κατεξοχόν γλώςςασ μορφοπούηςησ υπερκειμϋνου, ςύντομα οδόγηςαν ςτην ανϊπτυξη καινούργιων γλωςςών προγραμματιςμού ςτο Internet. Η χρόςη των γλωςςών προγραμματιςμού κρύθηκε απαραύτητη αφού η εξϊπλωςη του Internet και η χρόςη των ςελύδων HTML για αλληλεπύδραςη με τουσ χρόςτεσ (δυναμικό αποςτολό και λόψη δεδομϋνων) δεν μπορούςε να πραγματοποιηθεύ μϋςω τησ HTML. Αρχικϊ, αναπτύχθηκε από την εταιρεύα Netscape η γλώςςα JavaScript η οπούα, όπωσ και η ΗTML μεταφρϊζεται από τον Web Browser κατϊ την εμφϊνιςη τησ ςελύδασ. H Microsoft ανϋπτυξε απ' την πλευρϊ τησ μια δικό τησ ϋκδοςη τησ γλώςςασ JavaScript την οπούα ονόμαςε JScript και μια ϋκδοςη τησ γλώςςασ Basic ειδικϊ για το Internet που ονόμαςε VBScript. Έτςι πλϋον με την χρόςη των παραπϊνω γλωςςών εύναι δυνατό να ελεγχθούν και να προγραμματιςτούν όλα ςχεδόν τα αντικεύμενα που μπορεύ να περιϋχει μύα ιςτοςελύδα και με τη χρόςη εύτε εντολών διαδικαςτικού χαρακτόρα, εύτε εντολών διακλϊδωςησ, όπωσ για παρϊδειγμα η δομό [if then else ]. Η χρόςη τϋτοιου εύδουσ "προγραμμϊτων" ό όπωσ ονομϊζονται "scripts" εύναι διαδικαςύα που ϋχει μεγϊλεσ απαιτόςεισ ςε προγραμματιςμό και απευθύνεται ςε προγραμματιςτϋσ και μόνο. Έρχεται, όμωσ, η ώρα που πρϋπει να γεμύςουμε τη ςελύδα μασ με πραγματικϋσ πληροφορύεσ (real information). Όποιο site τραβϊει το ενδιαφϋρον των επιςκεπτών επανειλημμϋνα, θα πρϋπει να περιϋχει καινούργιο και ςυνεχώσ ανανεωμϋνο περιεχόμενο πρόβλημα εύναι ότι ςυχνϊ, οι ϊνθρωποι που παρϋχουν το περιεχόμενο για ϋνα site 14

δεν εύναι οι ύδιοι μ αυτούσ που κϊνουν και τη ςχεδύαςό του (design). Αλλϊ εύναι ςύνηθεσ, ο παροχϋασ του περιεχομϋνου να μην γνωρύζει καθόλου από HTML. Πώσ, όμωσ, μπορούμε να πϊρουμε τότε το περιεχόμενο από τον παροχϋα και να το εγκαταςτόςουμε ςτο Web site; Η λύςη ς αυτό το πρόβλημα εύναι το database-driven site design. Πετυχαύνοντασ τον πλόρη διαχωριςμό ανϊμεςα ςτη ςχεδύαςη του site και το περιεχόμενο που θϋλουμε να παρουςιϊςουμε μϋςα ς αυτό, μπορούμε να δουλϋψουμε με το ϋνα χωρύσ να μασ απαςχολεύ το ϊλλο. Αντύ να δημιουργούμε ϋνα HTML αρχεύο για την κϊθε ςελύδα του site, χρειϊζεται μόνο να δημιουργόςουμε μια ςελύδα για το κϊθε εύδοσ πληροφορύασ που θϋλουμε να παρουςιϊςουμε. Αντύ να επικολλϊμε ςυνϋχεια νϋο περιεχόμενο ςτισ ςελύδεσ μασ, δημιουργούμε ϋνα απλό ςύςτημα διαχεύριςησ περιεχομϋνου (content management system) που δύνει τη δυνατότητα ςτουσ ςυγγραφεύσ να δημοςιεύουν (post) το καινούργιο περιεχόμενό τουσ οι ύδιοι χωρύσ να κϊνουν καθόλου χρόςη τησ HTML. τη περύπτωςη μασ για να δημιουργόςουμε ϋνα database-driven Web page, θα χρηςιμοποιόςουμε τη γλώςςα ςυγγραφόσ ςεναρύων ςτην πλευρϊ του διακομιςτό (server-side scripting language) PHP και τη ςχεςιακό βϊςη δεδομϋνων (relational database) MySQL. Θα πρϋπει, όμωσ, ο Web host ςτον οπούο δημοςιεύουμε τισ ςελύδεσ μασ να υποςτηρύζει τον ςυνδυαςμό PHP/MySQL. Αν ο Web host που μασ παρϋχει τον χώρο για τισ ιςτοςελύδεσ μασ (Web space) ϋχει όδη εγκαταςτόςει και ρυθμύςει την MySQL και την PHP, τότε δεν υπϊρχει και πολλό δουλειϊ που πρϋπει να κϊνουμε. Πιο ςυγκεκριμϋνα, θα χρειαςτούμε ϋνα όνομα χρόςτη (username) και ϋναν κωδικό αςφαλεύασ (password) για να μπορϋςουμε να ϋχουμε πρόςβαςη ςτον MySQL server που ϋχει ςτηθεύ για μασ. Η βϊςη δεδομϋνων ϋχει όδη ςτηθϋι απο το προηγούμενο πρόγραμμα οπότε εμεύσ θα τραβϊμε πληροφορύεσ απο εκεύνη την βϊςη. 15

3.1 HTML 3.1.1 Σι είναι HTML H HTML εύναι το ακρωνύμιο των λϋξεων HyperText Markup Language (γλώςςα μορφοπούηςη υπερκειμϋνου) και εύναι η βαςικό γλώςςα δόμηςη ςελύδων του World Wide Web (ό απλϊ ιςτού: Web). Εύναι μύα γλώςςα προγραμματιςμού. Φρηςιμοποιεύται για να ςημαύνει ϋνα τμόμα κειμϋνου και να το κϊνει να εμφανύζεται καλύτερα. Επιτρϋπει την ενςωμϊτωςη όχου και εικόνων ςτισ web ςελύδεσ. Αρχικϊ εύχε καταςκευαςθεύ με ςκοπό μόνο την μορφοπούηςη κειμϋνου, αλλϊ μεγϊλωςε και ενςωμϊτωςε ςχεδιαςτικϋσ τεχνικϋσ κ.α. Η γλώςςα χρηςιμοποιεύ ϋνα αριθμό από tags για την μορφοπούηςη κειμϋνου, για την δημιουργύα ςυνδϋςμων (links) μετϊβαςησ ανϊμεςα των ςελύδα, για την ειςαγωγό εικόνων, όχου κ.α. Όταν ϋνασ Web Browser ανούγει ϋνα αρχεύο HTML τα ςτοιχεύα (tags) μεταφρϊζονται ςε κατϊλληλα χαρακτηριςτικϊ με αποτελϋςματα ςτην εμφϊνιςη και ςτην λειτουργικότητα τησ ςυγκεκριμϋνησ ςελύδασ. 3.1.2 Δημιουργία αρχείων HTML Η δημιουργύα αρχεύων HTML εύναι πολύ απλό. Αρκεύ να τρϋξουμε ϋναν οποιοδόποτε διορθωτό κειμϋνου text, όπωσ το Notepad των Windows. Να γρϊψουμε τον κώδικα HTML που επιθυμούμε και να το αποθηκεύςουμε (ςώςουμε) ςε ϋνα αρχεύο με κατϊληξη.htm ό.html. υνόθωσ αποθηκεύουμε με επϋκταςη.html όταν θα δημοςιεύςουμε τα αρχεύα μασ ςε διακομιςτό Unix. Αντύθετα ο εξυπηρετητόσ Windows NT καταλαβαύνει τα αρχεύα και ςαν.htm και ςαν.html 16

3.1.3 Εκδόςεισ HTML Σο 1990 ο Tim Berners-Lee από το Cern, το εργαςτόριο φυςικόσ τησ Γενεύησ, δημιούργηςε ϋνα νϋο πρωτόκολλο με το οπούο θα μπορούςαν να μεταφϋρονται κϊθε εύδοσ αρχεύων και αντικειμϋνων μϋςα από το Internet. Σο πρωτόκολλο αυτό ονομϊςτηκε HTTP (HyperText Transfer Protocol) και ςηματοδότηςε την αρχό του WWW όπωσ το ξϋρουμε ςόμερα. Οι ςελύδεσ που όταν η βϊςη του WWW ότασ γραμμϋνεσ ςτην πρώτη ϋκδοςη τησ γλώςςα HTML. Σο 1994 αναπτύςςεται το πρότυπο HTML 2.0 από ϋνα διεθνό οργανιςμό (Internet Engineering Task Forse). H επόμενη ϋκδοςη η 3.0 δεν ϋγινε αποδεκτό από τισ Microsoft και Netscape οπότε γρόγορα αντικαταςτϊθηκε από την ϋκδοςη 3.2 (1996). Η τελευταύα περιελϊμβανε πολλϋσ από τισ ςημϊνςεισ (tags) που εύχαν ειςϊγει οι δύο εταιρύεσ. Η ϋκδοςη 4.0 παρουςιϊςτηκε τον Ιούνιο του 1997. 3.2 Δυναμικόσ διαδικτυακόσ προγραμματιςμόσ Ο δυναμικόσ διαδικτυακόσ προγραμματιςμόσ εύναι μια γλώςςα προγραμματιςμού η οπούα αποτελεύται από μια κοινό γλώςςα προγραμματιςμού που εμεύσ ςόμερα γνωρύζουμε όπωσ παραδεύγματοσ χϊριν η C++, ςε ςυνδυαςμό με την παραδοςιακό HTML γλώςςα προγραμματιςμού και η οπούα ερμηνεύεται από μια μηχανό. Ένα δυναμικό website δύνει τη δυνατότητα ςτουσ χρόςτεσ να αλλϊξουν το περιεχόμενο, να προςθϋςουν νϋο υλικό, να αλλϊξουν την εμφϊνιςη, να προςφϋρουν νϋεσ υπηρεςύεσ ςτουσ πελϊτεσ τουσ ενδεχομϋνωσ ό και να προςτεθούν νϋεσ λειτουργύεσ. 17

3.3 PHP 3.3.1 Σι ειναι η PHP Η PHP εύναι μια γλώςςα προγραμματιςμού που ςχεδιϊςτηκε για τη δημιουργύα δυναμικών ςελύδων ςτο διαδύκτυο και εύναι επιςόμωσ γνωςτό ωσ: HyperText preprocessor. Εύναι μια server-side (εκτελεύτε ςτον διακομιςτό) scripting γλώςςα που γρϊφεται ςυνόθωσ πλαιςιωμϋνη από HTML, για μορφοπούηςη των αποτελεςμϊτων. Αντύθετα από μια ςυνηθιςμϋνη HTML ςελύδα η ςελύδα PHP δεν ςτϋλνεται ϊμεςα ςε ϋναν πελϊτη (client), αντ' αυτού πρώτα αναλύεται και μετϊ αποςτϋλλεται το παραγόμενο αποτϋλεςμα. Σα ςτοιχεύα HTML ςτον πηγαύο κώδικα μϋνουν ωσ ϋχουν, αλλϊ ο PHP κώδικασ ερμηνεύεται και εκτελεύται. Ο κώδικασ PHP μπορεύ να θϋςει ερωτόματα ςε βϊςεισ δεδομϋνων, να δημιουργόςει εικόνεσ, να διαβϊςει και να γρϊψει αρχεύα, να ςυνδεθεύ με απομακρυςμϋνουσ υπολογιςτϋσ, κ.ο.κ. ε γενικϋσ γραμμϋσ οι δυνατότητεσ που μασ δύνει εύναι απεριόριςτεσ. 3.3.2 Μια ςύντομη ιςτορία τησ PHP Αρχικϊ η ονομαςύα τησ όταν PHP/FI από το Forms Interpreter η οπούα δημιουργόθηκε το 1995 από τον Rasmus Lerdorf ωσ μια ςυλλογό από Perl scripts που τα χρηςιμοποιούςε ςτην προςωπικό του ςελύδα. Δεν ϊργηςε να τα εμπλουτύςει με λειτουργύεσ επεξεργαςύασ δεδομϋνων με SQL, αλλϊ τα ςημαντικϊ βόματα που ϋφεραν και την μεγϊλη αποδοχό τησ PHP όταν αρχικϊ η μετατροπό τουσ ςε C και μετϋπειτα η δωρεϊν παροχό του πηγαύου κώδικα μϋςω τησ ςελύδασ του ώςτε να επωφεληθούν όλοι από αυτό που εύχε φτιϊξει, αλλϊ και να τον βοηθόςουν ςτην περαιτϋρω ανϊπτυξό τησ. 18

3.3.3 Σι μπορεί να κάνει η PHP; Οτιδόποτε. Η PHP επικεντρώνεται κυρύωσ ςτο server-side scripting, ϋτςι μπορεύτε να κϊνετε οτιδόποτε ϋνα ϊλλο CGI πρόγραμμα μπορεύ να κϊνει, όπωσ να μαζϋψει δεδομϋνα, να παρϊγει δυναμικό περιεχόμενο ςελύδων, ό να ςτεύλει και να πϊρει cookies. Αλλϊ η PHP μπορεύ να κϊνει πολύ περιςςότερα. 3.3.4 Σομείσ που χρηςιμοποιείται ένα PHP script Τπϊρχουν τρεισ κύριοι τομεύσ που χρηςιμοποιεύται ϋνα PHP script. 1) * Server-side scripting. Αυτό εύναι το πιο παραδοςιακό και το κύριο πεδύο για την PHP. Φρειϊζεςτε τρύα πρϊγματα για να δουλϋψει αυτό. Σον PHP μεταγλωττιςτό (parser) (CGI ό server module), ϋνα webserver (εξυπηρετητό ςελύδων) και ϋνα web browser ("φυλλομετρητό"). Πρϋπει να τρϋξετε τον webserver, με μια ςυνδεδεμϋνη εγκατϊςταςη τησ PHP. Μπορεύτε να προςπελϊςετε τα αποτελϋςματα του PHP προγρϊμματοσ με ϋνα web browser, βλϋποντασ την ςελύδα PHP μϋςα από τον server. Για περιςςότερεσ πληροφορύεσ, δεύτε την παρϊγραφο οδηγύεσ εγκατϊςταςησ. 2) * Command line scripting. Μπορεύτε να φτιϊξετε ϋνα PHP script για να το τρϋχετε χωρύσ server ό browser. Φρειϊζεςτε μόνο τον PHP μεταγλωττιςτό για να την χρηςιμοποιόςετε με αυτό τον τρόπο. Αυτόσ ο τύποσ εύναι ιδανικόσ για script που εκτελούνται ςυχνϊ με τη χρόςη τησ cron (ςε *nix ό Linux) ό με τον Task Scheduler (ςτα Windows). Αυτϊ τα script μπορούν επύςησ να χρηςιμοποιηθούν για απλϋσ εργαςύεσ επεξεργαςύεσ κειμϋνου. Δεύτε την ενότητα ςχετικϊ με την Command line χρόςη τησ PHP για περιςςότερεσ πληροφορύεσ. 3) * Εγγραφό client-side GUI εφαρμογών (Γραφικϊ περιβϊλλοντα χρηςτών). Η PHP ύςωσ να μην εύναι η πιο καλό γλώςςα για να γρϊψει 19

κανεύσ παραθυρικϋσ εφαρμογϋσ, αλλϊ αν ξϋρετε PHP πολύ καλϊ και θϋλετε να χρηςιμοποιόςετε κϊποια προχωρημϋνα χαρακτηριςτικϊ τησ PHP ςτισ client-side εφαρμογϋσ ςασ, μπορεύτε επύςησ να χρηςιμοποιόςετε το PHP-GTK για αυτού του εύδουσ τα προγρϊμματα. Έχετε επύςησ τη δυνατότητα να γρϊφετε crossplatform εφαρμογϋσ με αυτό τον τρόπο. Σο PHP-GTK εύναι μια επϋκταςη τησ PHP και δεν ςυμπεριλαμβϊνεται ςτην κύρια διανομό. Αν ενδιαφϋρεςτε για το PHP-GTK, επιςκεφτεύτε» την δικό του ιςτοςελύδα. 3.3.5 Πλεονεκτήματα τησ PHP 1) Η PHP μπορεύ να χρηςιμοποιηθεύ ςε όλα τα κύρια λειτουργικϊ ςυςτόματα, ςυμπεριλαμβανομϋνου του Linux, πολλών εκδοχών του Unix (HP-UX, Solaris και OpenBSD), Microsoft Windows, Mac OS X, RISC OS και πιθανώσ ςε ϊλλα. Η PHP υποςτηρύζει επύςησ τουσ Apache, Microsoft Internet Information Server, Personal Web Server, Netscape και iplanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, και πολλούσ ϊλλουσ webserver. Για την πλειοψηφύα των server η PHP ϋχει ϋνα module, για τουσ υπόλοιπουσ η PHP μπορεύ να λειτουργόςει ωσ ϋνασ CGI επεξεργαςτόσ. 2) Έτςι με την PHP ϋχετε την ελευθερύα επιλογόσ ενόσ λειτουργικού ςυςτόματοσ και ενόσ web server. Επιπλϋον, ϋχετε επύςησ την ελευθερύα να χρηςιμοποιόςετε ςυναρτηςιακό (procedural) ό αντικειμενοςτραφό (object oriented) προγραμματιςμό ό μια ανϊμειξη τουσ. Αν και η παρούςα ϋκδοςη δεν υποςτηρύζει όλα τα πρότυπα χαρακτηριςτικϊ, μεγϊλεσ βιβλιοθόκεσ κώδικα και μεγϊλεσ εφαρμογϋσ (ςυμπεριλαμβανομϋνησ και τησ βιβλιοθόκησ PEAR) εύναι γραμμϋνεσ μόνο με αντικειμενοςτραφό κώδικα. 20

3) Η ΡΗΡ εύναι πολύ αποτελεςματικό. Με ϋνα φθηνό διακομιςτό (server) μπορεύ κϊποιοσ να εξυπηρετόςει εκατομμύρια επιςκϋψεων καθημερινϊ. Οι δοκιμϋσ που δημοςιεύθηκαν από την Zend Technologies, δεύχνουν ότι η ΡΗΡ ξεπερνϊ τουσ ανταγωνιςτϋσ τησ. 4) Με την PHP δεν εύςτε περιοριςμϋνοι να εξϊγετε HTML. Οι δυνατότητεσ τησ PHP ςυμπεριλαμβϊνουν την εξαγωγό εικόνων, αρχεύων PDF, ακόμη και ταινύεσ Flash (χρηςιμοποιώντασ τα libswf και Ming) παρϊγονται αμϋςωσ. Μπορεύτε επύςησ να εξϊγετε εύκολα οποιοδόποτε κεύμενο όπωσ XHTML και οποιοδόποτε ϊλλο XML αρχεύο. Η PHP μπορεύ να δημιουργεύ αυτόματα αυτϊ τα αρχεύα και να τα αποθηκεύει ςτο ςύςτημα αρχεύων, αντύ να τα εκτυπώνει, αποτελώντασ ϋτςι μια server-side cache για το δυναμικό ςασ περιεχόμενο. 5) Επειδό η ΡΗΡ ςχεδιϊςτηκε για να χρηςιμοποιεύται ςτο Web, ϋχει πολλϋσ ενςωματωμϋνεσ βιβλιοθόκεσ, που εκτελούν πολλϋσ χρόςιμεσ λειτουργύεσ ςχετικϋσ με το Web. Μπορούμε να δημιουργόςουμε εικόνεσ GIF δυναμικϊ, να ςυνδεθούμε με ϊλλεσ υπηρεςύεσ δικτύων, να ςτεύλουμε ηλεκτρονικό ταχυδρομεύο, να δουλϋψουμε με cookies και να δημιουργόςουμε PDF ϋγγραφα και όλα αυτϊ με λύγεσ γραμμϋσ κώδικα. 6) Ένα από τα πιο δυνατϊ και ςημαντικϊ χαρακτηριςτικϊ τησ PHP εύναι η υποςτόριξη που ϋχει για ϋνα μεγϊλο ςύνολο βϊςεων δεδομϋνων. Η ςυγγραφό μιασ ςελύδασ που υποςτηρύζει βϊςεισ δεδομϋνων εύναι εξαιρετικϊ απλό. Οι εξόσ βϊςεισ δεδομϋνων υποςτηρύζονται μϋχρι ςτιγμόσ: 21

* Adabas D * Direct MS-SQL * dbase * MySQL * Empress * ODBC * FilePro (read-only) * Oracle (OCI7 and OCI8) * Hyperwave * Ovrimos * IBM DB2 * PostgreSQL * Informix * Solid * Ingres * Sybase * InterBase * Velocis * FrontBase * Unix dbm * msql * Direct MS-SQL 7) Έχουμε επύςησ μια αφαιρετικό επϋκταςη DBX βϊςεων δεδομϋνων (DBX database abstraction extension) που ςασ επιτρϋπει διϊφανα να χρηςιμοποιεύτε οποιαδόποτε βϊςη δεδομϋνων υποςτηρύζεται από αυτό την επϋκταςη. Επιπλϋον η PHP υποςτηρύζει το ODBC, το Open Database Connection standard (Ανοιχτό πρότυπο ύνδεςησ Βϊςεων δεδομϋνων) ϋτςι μπορεύτε να ςυνδεθεύτε ςε οποιαδόποτε βϊςη δεδομϋνων που υποςτηρύζει αυτό το παγκόςμιο πρότυπο. 8) Η PHP ϋχει επύςησ υποςτόριξη για επικοινωνύα με ϊλλεσ υπηρεςύεσ χρηςιμοποιώντασ πρωτόκολλα όπωσ LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (ςτα Windows) και αμϋτρητα ϊλλα. Μπορεύτε επύςησ να ανούξετε raw network sockets και να αλληλεπιδρϊςετε με οποιοδόποτε ϊλλο πρωτόκολλο. Η PHP ϋχει ακόμη υποςτόριξη για την περύπλοκη ανταλλαγό δεδομϋνων WDDX μεταξύ ςχεδόν όλων των Web programming γλωςςών. Μιλώντασ για δια-επικοινωνύα, η PHP υποςτηρύζει instantiation αντικειμϋνων Java και τα χρηςιμοποιεύ διϊφανα ςαν αντικεύμενα PHP. Μπορεύτε επύςησ να χρηςιμοποιόςετε την CORBA επϋκταςη μασ για να προςπελϊςετε remote (απομακρυςμϋνα) αντικεύμενα. 22

9) Όλοι ϋχουν πρόςβαςη ςτον κώδικα προϋλευςησ τησ ΡΗΡ. Αντύθετα με εμπορικϊ, κλειςτϊ προγρϊμματα, αν υπϊρχει κϊτι που κϊποιοσ θϋλει να αλλϊξει ό να προςθϋςει ςτη γλώςςα, μπορεύ να το κϊνει ελεύθερα. Δεν χρειϊζεται να περιμϋνει τον καταςκευαςτό να εμφανύςει διορθώςεισ. Δεν θα ανηςυχόςει κανεύσ αν ο καταςκευαςτόσ θα ςταματόςει να υπϊρχει ό αν θα ςταματόςει να υποςτηρύζει το προώόν. 10) Η ςύνταξη τησ ΡΗΡ βαςύζεται ςε ϊλλεσ γλώςςεσ προγραμματιςμού, βαςικϊ ςτην C και ςτην Perl. Ένα μεγϊλο πλεονϋκτημα εύναι οτι η ΡΗΡ εύναι δωρεϊν. Μπορεύ κϊποιοσ να κατεβϊςει την τελευταύα ϋκδοςη από τη ςελύδα http://www.php.net, χωρύσ χρϋωςη. 3.3.6 Σύποι δεδομένων τησ PHP Η PHP υποςτηρύζει τουσ εξόσ τύπουσ δεδομϋνων : array floating-point numbers integer object string Ο τύποσ δεδομϋνων μιασ μεταβλητόσ δεν ορύζεται ςυνόθωσ από τον προγραμματιςτό αλλϊ αποφαςύζεται την ώρα εκτϋλεςησ (runtime) από την PHP ανϊλογα με το περιβϊλλον (context) ςτο οπούο χρηςιμοποιεύται η μεταβλητό. Αν θϋλουμε να κϊνουμε μια μεταβλητό 23

να μετατραπεύ ς ϋναν ςυγκεκριμϋνο τύπο, μπορούμε εύτε να μετατρϋψουμε (cast) τη μεταβλητό ό να χρηςιμοποιόςουμε τη ςυνϊρτηςη settype() ς αυτό. Πρϋπει να ϋχουμε υπόψη μασ ότι μια μεταβλητό μπορεύ να ςυμπεριφερθεύ διαφορετικϊ ςε ςυγκεκριμϋνεσ καταςτϊςεισ, ανϊλογα με το τι τύπο δεδομϋνων ϋχει εκεύνη την ςτιγμό. 3.3.7 Φρήςη Includes για καλυτερη αςφάλεια και οργάνωςη Σα scripts τησ PHP θα περιϋχουν μερικϋσ φορϋσ ευαύςθητεσ πληροφορύεσ όπωσ usernames, passwords και ϊλλα για τα οπούα δεν θϋλουμε να υπϊρχει πρόςβαςη από τρύτουσ. Μϋχρι τώρα ϋχουμε χρηςιμοποιόςει τη ςυνϊρτηςη mysql_connect(), η οπούα ζητϊει από μασ να καταχωρόςουμε το username και password που ϋχουμε ςτην MySQL ς ϋνα script τησ PHP που χρειϊζεται πρόςβαςη ςε μια βϊςη δεδομϋνων. Ενώ μπορούμε να ρυθμύςουμε την MySQL ϋτςι ώςτε το username και το password που χρηςιμοποιούνται από την PHP να μην μπορούν να χρηςιμοποιηθούν από ενδεχόμενουσ hackers, ορύζοντασ το πεδύο Host ςτον πύνακα user, θα εύμαςτε όςυχοι γνωρύζοντασ ότι το username και το password που ϋχουμε, προςτατεύονται από ϋνα αυξημϋνο επύπεδο αςφϊλειασ. Αλλϊ εφόςον η PHP επεξεργϊζεται ςτον server, δεν υπϊρχει περύπτωςη να δει κϊποιοσ το δικό μου password; ωςτϊ, αλλϊ ασ δούμε τι θα ςυμβεύ αν η PHP ςταματόςει να εργϊζεται ςτον server. Σότε οι ςελύδεσ τησ PHP θα αντιμετωπιςθούν ςαν απλϊ αρχεύα κειμϋνου (text files) μαζύ μ όλο τον κώδικα τησ PHP, καθώσ και το password, και θα εύναι ορατϋσ ς όλουσ. 24

Για να προςτατευτούμε απ αυτόν την παρϊβαςη αςφϊλειασ, θα πρϋπει να τοποθετόςουμε όλο τον κώδικα τον ςχετικό με την αςφϊλεια ς ϋνα αρχεύο include και να τοποθετόςουμε αυτό το αρχεύο ς ϋνα directory που δεν αποτελεύ μϋροσ τησ δομόσ καταλόγων του Web server. Προςθϋτοντασ αυτό το directory ςτη ρύθμιςη include_path τησ PHP (ςτο php.ini), θα μπορούμε να αναφερόμαςτε απευθεύασ ςτα αρχεύα με τη ςυνϊρτηςη include() τησ PHP αλλϊ θα πρϋπει να τα ςτριμώξουμε κϊπου μακριϊ όπου ο Web server δεν μπορεύ να τα εμφανύςει ςαν Web pages. Για παρϊδειγμα, αν ο Web server περιμϋνει όλεσ οι Web pages να βρύςκονται ςτον κατϊλογο και ςτουσ υποκαταλόγουσ του /home/httpd/, θα μπορούμε να δημιουργόςουμε ϋναν κατϊλογο με όνομα /home/phplib/ για να τοποθετόςουμε εκεύ όλα τα αρχεύα include. Προςθϋτουμε αυτόν τον κατϊλογο ςτο include_path και εύμαςτε ϋτοιμοι. 25

ΚΕΥΑΛΑΙΟ 4 Φρονοπρογραμματιςμόσ Διεργαςιών 4.0 Φρονοπρογραμματιςμόσ διεργαςιών τα προεκτοπιςτικϊ λειτουργικϊ ςυςτόματα (preemptive) γύνεται αυτόματη εναλλαγό διεργαςιών ςτον επεξεργαςτό κϊθε λύγεσ διακοπϋσ του ρολογιού (ςτην αρχό κϊθε «χρονικού κβϊντου») ώςτε να επιτευχθεύ η ψευδοπαρϊλληλη εκτϋλεςη πολλαπλών διεργαςιών. την πραγματικότητα οι διεργαςύεσ εναλλϊςςονται ςτον επεξεργαςτό με εξαιρετικϊ μεγϊλη ςυχνότητα (ςυνόθωσ το κβϊντο διαρκεύ κϊποια millisecond). Η εναλλαγό αυτό ονομϊζεται θεματική εναλλαγή (context switch) και, προκειμϋνου να εύναι εφικτό, πρϋπει όλεσ οι πληροφορύεσ που εύναι αποθηκευμϋνεσ ςτην τοπικό μνόμη του επεξεργαςτό (ςτουσ καταχωρητϋσ) για την εκτελούμενη διεργαςύα, να αποθηκευτούν ςε ϋναν χώρο κϊπου ςτη RAM κατϊ τη θεματικό εναλλαγό. Έτςι, όταν ϋρθει ξανϊ η ςειρϊ αυτόσ τησ διεργαςύασ να εκτελεςτεύ, θα μπορούν να φορτωθούν πϊλι πύςω ςτουσ καταχωρητϋσ και η εκτϋλεςη να ςυνεχύςει από εκεύ που ςταμϊτηςε. Σα δύο τελευταύα ςτοιχεύα τησ προηγούμενησ λύςτασ παρϋχουν αυτόν ακριβώσ το χώρο. Σο ποια διεργαςύα θα εκτελεύται κϊθε ςτιγμό καθορύζεται από ϋναν μηχανιςμό του λειτουργικού ςυςτόματοσ η ςυμπεριφορϊ του οπούου ςυνόθωσ δεν μπορεύ να προβλεφθεύ ό να τροποποιηθεύ από τον χρόςτη, τον χρονοπρογραμματιςτό. 4.1 CRON 4.1.1 Tι είναι το Cron Σo Cron εύναι μια εντολό των UNIX ό οπούα χρηςιμοποιεύται για την εκτϋλεςη κϊποιων εργαςιών ςτο μϋλλον. Σο Cron ςυνόθωσ χρηςιμοποιεύται ςτο να προγραμματύζει την περιοδικό εκτϋλεςη κϊποιου προγρϊμματοσ για παρϊδειγμα να ςτϋλνει ϋνα μόνυμα κϊθε απόγευμα. Εύναι επύςησ μια (daemon) διαδικαςύα που ςημαύνει ότι τρϋχει ςυνεχώσ, περιμϋνοντασ να ςυμβεύ ϋνα ςυγκεκριμϋνο γεγονόσ. 26

4.1.2 Ρυθμίζοντασ Σο Πρόγραμμα Cron Ένα απο τα πιο χρόςιμα βοηθητικϊ προγρϊμματα ςτο linux εύναι το cron. Σο πρόγραμμα cron τρϋχει ςτο παραςκόνιο και ςυνεχώσ ελϋγχει το αρχεύο /etc/crontab. Σο cron ελϋγχει επύςησ τον κατϊλογο /var/cron/tabs, αναζητώντασ καινούργια αρχεύα crontab. Σα αρχεύα crontab ϋχουν αποθηκευμϋνεσ πληροφορύεσ για ςυγκεκριμϋνεσ διαδικαςύεσ τισ οπούεσ το cron πρϋπει να εκτελϋςει ςε ςυγκεκριμϋνο χρόνο. Σο cron χρηςιμοποιεύ δύο διαφορετικούσ τύπουσ αρχεύων ρυθμύςεων, το crontab του ςυςτόματοσ και το crontab των χρηςτών. Η μόνη διαφορϊ ανϊμεςα ςτουσ δύο αυτούσ τύπουσ εύναι το ϋκτο πεδύο. το crontab του ςυςτόματοσ, το ϋκτο πεδύο εύναι το όνομα του χρόςτη με του οπούου θα εκτελεςτεύ η εντολό. Αυτό δύνει την δυνατότητα ςτο crontab του ςυςτόματοσ να εκτελεύ εντολϋσ ςαν οποιοδόποτε χρόςτησ. το crontab των χρηςτών, το ϋκτο πεδύο εύναι η εντολό που πρϋπει να εκτελεςτεύ, και όλεσ οι εντολϋσ εκτελούνται ςτο όνομα του χρόςτη που δημιούργηςε το crontab, αυτό εύναι ϋνα ςημαντικό χαρακτηριςτικό αςφαλεύασ. ημεύωςη: Σα crontabs των χρηςτών επιτρϋπουν ςε μεμονωμϋνουσ χρόςτεσ να προγραμματύςουν εργαςύεσ χωρύσ την ανϊγκη root δικαιωμϊτων. Οι εντολϋσ μϋςα ςτο crontab ενόσ χρόςτη τρϋχουν με τα δικαιώματα του χρόςτη του οπούου ανόκει το crontab. Ο χρόςτησ root μπορεύ να ϋχει ϋνα crontab χρόςτη ακριβώσ όπωσ κϊθε χρόςτησ. Αυτό εύναι διαφορετικό απο το /etc/crontab (το crontab του ςυςτόματοσ). Λόγο του crontab του ςυςτόματοσ, δεν υπϊρχει ςυνόθωσ καμύα ανϊγκη για την δημιουργύα ενόσ ξεχωριςτού crontab για τον χρόςτη root. Ασ ρύξουμε μια ματύα ςτο αρχεύο /etc/crontab (το crontab του ςυςτόματοσ): 27

(1) Όπωσ ςτα περιςςότερα αρχεύα ρυθμύςεων ςτο linux, ο χαρακτόρασ # παριςτϊνει ϋνα ςχόλιο. Ένα ςχόλιο μπορεύ να τοποθετηθεύ μϋςα ςτο αρχεύο ςαν υπενθύμιςη για το τι πραγματοποιεύ και γιατύ μύα ενϋργεια. Σα ςχόλια δεν μπορούν να εύναι ςτην ύδια γραμμό με μύα εντολό γιατύ αλλιώσ θα ερμηνευτούν ςαν κομμϊτι τησ εντολόσ; πρϋπει να εύναι ςε μύα νϋα γραμμό. Οι κενϋσ γραμμϋσ αγνοούνται. (2) Καταρχόν, πρϋπει να καθοριςτεύ το περιβϊλλον. Ο χαρακτόρασ ύςον (=) χρηςιμοποιεύτε για να καθορύςει τισ ρυθμύςεισ του περιβϊλλοντοσ, όπωσ ςε αυτό το παρϊδειγμα που χρηςιμοποιούνται οι μεταβλητϋσ SHELL, PATH, και HOME. Αν η γραμμό του κϋλυφουσ παραμεληθεύ, το cron θα χρηςιμοποιόςει την προεπιλεγμϋνη, οι οπούα εύναι η sh. Αν η μεταβλητό PATH παραμεληθεύ, δεν θα χρηςιμοποιηθεύ προεπιλεγμϋνη και η τοποθεςύεσ των αρχεύων θα πρϋπει να καθοριςτούν με ακρύβεια. Αν η HOME παραμεληθεύ, το cron θα χρηςιμοποιόςει τον κεντρικό κατϊλογο των εκϊςτοτε χρηςτών. 28

(3) Η γραμμό αυτό καθορύζει ςυνολικϊ επτϊ πεδύα. Σα πεδύα αυτϊ εύναι τα minute, hour, mday, month, wday, who, και command. Αυτϊ εύναι απο μόνα τουσ επεξηγηματικϊ. Σο πεδύο minute εύναι ο χρόνοσ ςε λεπτϊ τον οπούον η εντολό θα εκτελεςτεύ. Σο πεδύο hour εύναι παρόμοιο με το πεδύο minute, απλϊ εύναι ςε ώρεσ. Σο πεδύο mday καθορύζει την ημϋρα του μόνα. Σο πεδύο month εύναι παρόμοιο με το πεδύο hour και το πεδύο minute, υποδεικνύοντασ τον μόνα. Σο πεδύο wday καθορύζει την ημϋρα τησ εβδομϊδασ. Όλα αυτϊ τα πεδύα πρϋπει να ϋχουν αριθμητικϋσ τιμϋσ, και να ακολουθούν το εύκοςι-τετρϊωρο ρολόι. Σο πεδύο who εύναι ιδιαύτερο, και υπϊρχει μόνο μϋςα ςτο αρχεύο /etc/crontab. Σο πεδύο αυτό καθορύζει ςαν ποιόσ χρόςτησ θα τρϋξει την εντολό. Όταν ϋνασ χρόςτησ εγκαθιςτϊ το crontab αρχεύο του, δεν θα ϋχει το πεδύο αυτό διαθϋςιμο. Σϋλοσ, θα ακολουθόςει η επιλογό command. Αυτό εύναι το τελευταύο πεδύο, ϋτςι και λογικϊ υποδεικνύει την εντολό που θα εκτελεςτεύ. (4) Η τελευταύα αυτό γραμμό θα καθορύςει τα μεγϋθη που ςυζητόθηκαν παραπϊνω. Προςϋξτε εδώ ότι ϋχουμε ϋναν οριςμό */5, ακολουθούμενο απο αρκετούσ χαρακτόρεσ *. Οι χαρακτόρεσ * ςημαύνουν «πρώτο-τελευταύο», και μπορούν να ερμηνευθούν ςαν κϊθε φορϊ. Έτςι, κρύνοντασ από αυτό την γραμμό, εύναι προφανϋσ ότι η εντολό atrun επικαλεύται από τον χρόςτη root κϊθε πϋντε λεπτϊ ανεξϊρτητα από την ημϋρα και τον μόνα. Για περιςςότερεσ πληροφορύεσ ςχετικϊ με την εντολό atrun, κοιτϊξτε την ςελύδα βοηθεύασ atrun(8). Οι εντολϋσ μπορούν να ϋχουν απεριόριςτο αριθμό παραμϋτρων, ωςτόςο, οι εντολϋσ με εκτεταμϋνο αριθμό γραμμών πρϋπει να διαςπαςτούν με τον χαρακτόρα ςυνϋχειασ αντύθετησ καθϋτου «\». 29

Αυτϋσ εύναι οι βαςικϋσ ρυθμύςεισ για κϊθε αρχεύο crontab, ωςτόςο υπϊρχει και κϊτι διαφορετικό. Σο πεδύο ϋξι, όπου και καθορύζουμε το όνομα χρόςτη, υπϊρχει μόνο ςτο αρχεύο του ςυςτόματοσ /etc/crontab. Σο πεδύο αυτό πρϋπει να παραλειφθεύ για κϊθε crontab αρχεύο χρόςτη. 4.1.3 Εγκαθιςτώντασ Ένα Crontab ημαντικό: Δεν θα πρϋπει να χρηςιμοποιόςετε την διαδικαςύα που περιγρϊφεται εδώ για την διόρθωςη/εγκατϊςταςη του crontab του ςυςτόματοσ. Απλϊ χρηςιμοποιόςτε τον αγαπημϋνο ςασ κειμενογρϊφο: το cron θα εντοπύςει ότι το αρχεύο ϋχει τροποποιηθεύ και θα αρχύςει ϊμεςα να χρηςιμοποιεύ την ανανεωμϋνη ϋκδοςη του. Δεύτε αυτό την εγγραφό του FAQ για περιςςότερεσ πληροφορύεσ. Για να εγκαταςτόςετε ϋνα νϋο crontab χρόςτη, πρώτα χρηςιμοποιόςτε τον αγαπημϋνο ςασ κειμενογρϊφο για να δημιουργόςετε ϋνα αρχεύο με το απαιτούμενο τύπο, και τότε χρηςιμοποιόςτε το crontab. Η πιο κοινό χρόςη του εύναι: % crontab crontab-file το παρϊδειγμα αυτό, το αρχεύο crontab-file εύναι το όνομα του αρχεύου crontab που εύχε δημιουργηθεύ προηγουμϋνωσ. Τπϊρχει επύςησ μύα επιλογό για να απαριθμόςετε τα εγκατεςτημϋνα αρχεύα crontab: απλϊ ειςϊγετε την επιλογό -l ςτην εντολό crontab και ελϋγξτε το αποτϋλεςμα. Για τουσ χρόςτεσ που θϋλουν να αρχύςουν το crontab αρχεύο τουσ απο την αρχό, χωρύσ την χρόςη προτύπου, μπορούν να χρηςιμοποιόςουν την εντολό crontab -e. Αυτό η εντολό θα ξεκινόςει τον κειμενογρϊφο με ϋνα κενό αρχεύο. Όταν το αρχεύο αποθηκευθεύ, θα εγκαταςταθεύ αυτόματα απο την εντολό crontab. Αν αργότερα θϋλετε να διαγρϊψετε το crontab αρχεύο χρόςτη τελεύωσ, χρηςιμοποιόςτε την εντολό crontab μαζύ με την επιλογό -r. 30

ΚΕΦΑΛΑΙΟ 5 Bάση Δεδομζνων 5.0 Η Θεωρία των Βάσεων Δεδομζνων 5.0.1 Εισαγωγή στις Βάσεις Δεδομζνων Η αλματϊδθσ ανάπτυξθ τθσ επιςτιμθσ τθσ πλθροφορικισ και των επικοινωνιϊν τα τελευταία χρόνια ζχει καταςτιςει τθν πλθροφορία ωσ ζνα από τα βαςικότερα και πολυτιμότερα αγακά. Είναι κοινόσ τόποσ ςιμερα θ εκτίμθςθ ότι το αγακό τθσ πλθροφορίασ είναι επικυμθτό απ όλουσ τουσ εργαηόμενουσ αλλά και τουσ εκπαιδευόμενουσ, ϊςτε να είναι πιο αποδοτικοί, ανταγωνιςτικοί αλλά και παραγωγικοί ςτθν εργαςία τουσ. Σα ςυςτιματα βάςεων δεδομζνων τα χρθςιμοποιοφμε για να μποροφμε να αποθηκεύςουμε, να επεξεργαςτούμε αλλϊ και να εκμεταλλευτούμε αποδοτικϊ αυτόν τον τερϊςτιο όγκο των πληροφοριών που αυξϊνονται με αλματώδεισ ρυθμούσ καθημερινϊ. 5.0.2 Σα Δεδομένα και οι Πληροφορίεσ Με τον όρο πληροφορύα αναφερόμαςτε ςυνόθωσ ςε ειδόςεισ, γεγονότα και ϋννοιεσ που αποκτϊμε από την καθημερινό μασ επικοινωνύα και τα θεωρούμε ωσ αποκτηθεύςα γνώςη, ενώ τα δεδομϋνα μπορούν να εύναι μη κατϊλληλα επεξεργαςμϋνα και μη ταξινομημϋνα ςύνολα πληροφοριών. Ένασ αυςτηρόσ οριςμόσ για το τι εύναι δεδομϋνα και τι εύναι πληροφορύα, ςύμφωνα με την επιτροπό ANSI των ΗΠΑ, εύναι ο εξόσ : Δεδομϋνα (data) εύναι μια παρϊςταςη, όπωσ γρϊμματα, αριθμού, ςύμβολα κ.ϊ. ςτα οπούα μπορούμε να δώςουμε κϊποια ςημαςύα (ϋννοια). 31

Πληροφορύα (information) εύναι η ςημαςύα που δύνουμε ς ϋνα ςύνολο από δεδομϋνα, τα οπούα μπορούμε να επεξεργαςτούμε βϊςει προκαθοριςμϋνων κανόνων και να βγϊλουμε ϋτςι κϊποια χρόςιμα ςυμπερϊςματα. Με τισ πληροφορύεσ περιορύζεται η αβεβαιότητα που ϋχουμε για διϊφορα πρϊγματα και βοηθιόμαςτε ϋτςι ςτο να λϊβουμε ςωςτϋσ αποφϊςεισ. Σα δεδομϋνα μπορούν να θεωρηθούν ωσ τρόποι αναπαρϊςταςησ εννοιών και γεγονότων που μπορούν να υποςτούν διαχεύριςη και επεξεργαςύα. Η ςυλλογό και αποθόκευςη ενόσ τερϊςτιου όγκου δεδομϋνων όπωσ απαιτούν οι κοινωνικϋσ ςυνθόκεσ ςόμερα, δεν λύνει τελεύωσ το πρόβλημα τησ ςωςτόσ οργϊνωςησ και ταξινόμηςησ των δεδομϋνων. Σα δεδομϋνα θα πρϋπει να οργανωθούν με τϋτοιο τρόπο ϋτςι ώςτε να μπορούμε να τα εντοπύζουμε και να τα αξιοποιούμε εύκολα και γρόγορα και τη ςτιγμό που τα χρειαζόμαςτε. 5.0.3 Η Οργάνωςη Αρχείων Ο πιο γνωςτόσ τρόποσ οργϊνωςησ δεδομϋνων με τη χρόςη ηλεκτρονικών υπολογιςτών εύναι ςε αρχεύα εγγραφών. Ένα αρχεύο (file) θα μπορούμε να το χαρακτηρύςουμε ςαν ϋνα ςύνολο που αποτελεύται από οργανωμϋνα ομοειδό ςτοιχεύα. Σα ςτοιχεύα ενόσ αρχεύου μπορούμε να τα οργανώςουμε ςε λογικϋσ ενότητεσ και το ςύνολο των ςτοιχεύων που περιϋχει μια λογικό ενότητα καλεύται εγγραφό (record). Σο κϊθε ςτοιχεύο τησ εγγραφόσ καλεύται πεδύο (field). Σο πεδύο αποτελεύ και τη μικρότερη δυνατό υποδιαύρεςη των ςτοιχεύων ενόσ αρχεύου. Ένα πεδύο χαρακτηρύζεται από τον μϋγιςτο αριθμό των χαρακτόρων (bytes) που απαιτούνται για την καταχώρηςό του ςτη μνόμη του υπολογιςτό και που αποκαλεύται μόκοσ του πεδύου (field length). 32

Ένα πεδύο χαρακτηρύζεται ακόμη και από το εύδοσ των δεδομϋνων που μπορεύ να περιϋχει, όπωσ : Αλφαριθμητικό (alphanumeric), μπορεύ να περιϋχει γρϊμματα, ψηφύα ό και ειδικούσ χαρακτόρεσ. Αριθμητικό (numeric), μπορεύ να περιϋχει μόνο αριθμούσ. Αλφαβητικό (alphabetic), μπορεύ να περιϋχει μόνο γρϊμματα (αλφαβητικούσ χαρακτόρεσ). Ημερομηνύασ (date), μπορεύ να περιϋχει μόνο ημερομηνύεσ. Δυαδικό (binary), μπορεύ να περιϋχει ειδικού τύπου δεδομϋνα, όπωσ εικόνεσ, όχουσ κ.ϊ. Λογικό (logical), μπορεύ να περιϋχει μόνο μύα από δύο τιμϋσ, οι οπούεσ αντιςτοιχούν ςε δύο διακριτϋσ καταςτϊςεισ και μπορούν να χαρακτηριςθούν ςαν 0 και 1 ό ςαν αληθϋσ (true) και ψευδϋσ (false). Σημειώςεων (memo), μπορεύ να περιϋχει κεύμενο με μεταβλητό μόκοσ, το οπούο μπορεύ να εύναι και αρκετϊ μεγϊλο και ςυνόθωσ αποθηκεύεται ςαν ξεχωριςτό αρχεύο από το κύριο αρχεύο. Όςον αφορϊ τισ εγγραφϋσ, χρόςιμοι οριςμού εύναι οι εξόσ : Μόκοσ εγγραφόσ (record length) καλεύται το ϊθροιςμα που προκύπτει από τα μόκη των πεδύων που την αποτελούν. Δομό εγγραφόσ (record layout) ό γραμμογρϊφηςη καλεύται ο τρόποσ με τον οπούο οργανώνουμε τα πεδύα μιασ εγγραφόσ. Διϊβαςμα (read) από αρχεύο ςημαύνει τη μεταφορϊ των δεδομϋνων του αρχεύου, που γύνεται ςυνόθωσ ανϊ μύα εγγραφό, από το μϋςο αποθόκευςησ (ςκληρό δύςκο ό διςκϋτα) ςτην κεντρικό μνόμη του υπολογιςτό για επεξεργαςύα. Γρϊψιμο (write) ςε αρχεύο ςημαύνει μεταφορϊ των δεδομϋνων του αρχεύου, που γύνεται ςυνόθωσ ανϊ μύα εγγραφό, από την κεντρικό μνόμη του υπολογιςτό ςτο μϋςο αποθόκευςησ (ςκληρό δύςκο ό διςκϋτα). 33

5.0.4 Προβλήματα τησ Οργάνωςησ Αρχείων τα αρχικϊ ςτϊδια τησ οργϊνωςησ αρχεύων, όταν πολύ ςυνηθιςμϋνη πρακτικό η δημιουργύα ξεχωριςτών εφαρμογών (προγραμμϊτων) και ξεχωριςτών αρχεύων, όπωσ για παρϊδειγμα η δημιουργύα ενόσ αρχεύου πελατών και ενόσ ϊλλου ανεξϊρτητου αρχεύου για τισ παραγγελύεσ των πελατών. Σα προβλόματα που προϋκυψαν από την πρακτικό αυτό εύναι τα εξόσ : Πλεοναςμόσ των δεδομϋνων (data redundancy). Τπϊρχει η περύπτωςη να ϋχουμε επανϊληψη των ύδιων δεδομϋνων ςε αρχεύα διαφορετικών εφαρμογών. Για παρϊδειγμα, αν ϋχουμε ϋνα αρχεύο πελατών και ϋνα αρχεύο παραγγελιών αυτών των πελατών, εύναι ςχεδόν ςύγουρο ότι θα υπϊρχουν κϊποια ςτοιχεύα των πελατών που θα υπϊρχουν και ςτα δύο αρχεύα. Αςυνϋπεια των δεδομϋνων (data inconsistency). Αυτό μπορεύ να ςυμβεύ όταν υπϊρχουν τα ύδια ςτοιχεύα των πελατών (πλεοναςμόσ) και ςτο αρχεύο πελατών και ςτο αρχεύο παραγγελιών και χρειαςθεύ να γύνει κϊποια αλλαγό ςτη διεύθυνςη ό ςτα τηλϋφωνα κϊποιου πελϊτη, οπότε εύναι πολύ πιθανό να γύνει η διόρθωςη μόνο ςτο ϋνα αρχεύο και όχι και ςτο ϊλλο. Αδυναμύα μεριςμού δεδομϋνων (data sharing). Μεριςμόσ δεδομϋνων ςημαύνει δυνατότητα για κοινό χρόςη των ςτοιχεύων κϊποιων αρχεύων. Για παρϊδειγμα, ο μεριςμόσ δεδομϋνων θα όταν χρόςιμοσ αν με την παραγγελύα ενόσ πελϊτη μπορούμε να ϋχουμε πρόςβαςη την ύδια ςτιγμό ςτο αρχεύο πελατών για να δούμε το υπόλοιπο του πελϊτη και μετϊ ςτο αρχεύο τησ αποθόκησ για να δούμε αν εύναι διαθϋςιμα τα προώόντα που παρόγγειλε ο ςυγκεκριμϋνοσ πελϊτησ. Η αδυναμύα μεριςμού δεδομϋνων δημιουργεύ καθυςτϋρηςη ςτη λόψη αποφϊςεων και ςτην εξυπηρϋτηςη των χρηςτών. 34

Αδυναμύα προτυποπούηςησ. Έχει να κϊνει με την ανομοιομορφύα και με την διαφορετικό αναπαρϊςταςη και οργϊνωςη των δεδομϋνων ςτα αρχεύα των εφαρμογών. Η αδυναμύα αυτό δημιουργεύ προβλόματα προςαρμογόσ των χρηςτών καθώσ και προβλόματα ςτην ανταλλαγό δεδομϋνων μεταξύ διαφορετικών ςυςτημϊτων. 5.0.5 Οι Βάςεισ Δεδομένων και τα ΔΒΔ (DBMS) Για να δοθεύ μια λύςη ς όλα τα παραπϊνω προβλόματα, και με βϊςη το γεγονόσ ότι η χρόςη των ηλεκτρονικών υπολογιςτών και ςυνεπώσ η ηλεκτρονικό καταχώρηςη και επεξεργαςύα δεδομϋνων αυξόθηκε κατακόρυφα όδη από τη δεκαετύα του 70 ςτισ μεγϊλεσ επιχειρόςεισ και ϊρα εύχαμε πϊρα πολλϋσ εφαρμογϋσ να επεξεργϊζονται δεδομϋνα ςε πϊρα πολλϊ αρχεύα ταυτόχρονα, προτϊθηκε η ςυνϋνωςη όλων των αρχεύων μιασ εφαρμογόσ. Εκτόσ, όμωσ, από τη ςυνϋνωςη των αρχεύων, απαιτεύτο και μια ςωςτό οργϊνωςό τουσ. Δημιουργόθηκαν ϋτςι οι Σρϊπεζεσ Πληροφοριών ό Βϊςεισ Δεδομϋνων (Data Bases). Μια Βϊςη Δεδομϋνων (ΒΔ) εύναι ϋνα ςύνολο αρχεύων με υψηλό βαθμό οργϊνωςησ τα οπούα εύναι ςυνδεδεμϋνα μεταξύ τουσ με λογικϋσ ςχϋςεισ, ϋτςι ώςτε να μπορούν να χρηςιμοποιούνται από πολλϋσ εφαρμογϋσ και από πολλούσ χρόςτεσ ταυτόχρονα. Τπϊρχει ϋνα ειδικό λογιςμικό το οπούο μεςολαβεύ ανϊμεςα ςτισ αρχεύα δεδομϋνων και τισ εφαρμογϋσ που χρηςιμοποιούν οι χρόςτεσ και αποκαλεύται Σύςτημα Διαχεύριςησ Βϊςησ Δεδομϋνων (ΣΔΒΔ) ό DBMS (Data Base Management System). Σο ΔΒΔ εύναι ςτην ουςύα ϋνα ςύνολο από προγρϊμματα και υπορουτύνεσ που ϋχουν να κϊνουν με τον χειριςμό τησ βϊςησ δεδομϋνων, όςον αφορϊ τη δημιουργύα, τροποπούηςη, διαγραφό ςτοιχεύων, με ελϋγχουσ αςφαλεύασ κ.ϊ. Οι χρόςτεσ των εφαρμογών αντλούν τα ςτοιχεύα που τουσ ενδιαφϋρουν από τη βϊςη δεδομϋνων χωρύσ να εύναι ςε θϋςη να γνωρύζουν με ποιο τρόπο εύναι οργανωμϋνα τα δεδομϋνα ς αυτόν. Σο ΔΒΔ παύζει τον ρόλο του μεςϊζοντα ανϊμεςα ςτον χρόςτη και τη βϊςη δεδομϋνων και μόνο μϋςω του ΔΒΔ μπορεύ ο χρόςτησ να αντλόςει πληροφορύεσ από τη βϊςη δεδομϋνων. Ένα ΔΒΔ μπορεύ να εύναι εγκατεςτημϋνο ς ϋναν μόνο υπολογιςτό ό και ς ϋνα δύκτυο 35

υπολογιςτών και μπορεύ να χρηςιμοποιεύται από ϋναν χρόςτη ό και από πολλούσ χρόςτεσ. Ένα Σύςτημα Βϊςησ Δεδομϋνων (ΣΒΔ) ό DBS (Data Base System) αποτελεύται από το υλικό, το λογιςμικό, τη βϊςη δεδομϋνων και τουσ χρόςτεσ. Εύναι δηλαδό ϋνα ςύςτημα με το οπούο μπορούμε να αποθηκεύςουμε και να αξιοποιόςουμε δεδομϋνα με τη βοόθεια ηλεκτρονικού υπολογιςτό. Αναλυτικϊ : Σο υλικό (hardware) αποτελεύται όπωσ εύναι γνωςτό από τουσ ηλεκτρονικούσ υπολογιςτϋσ, τα περιφερειακϊ, τουσ ςκληρούσ δύςκουσ, τισ μαγνητικϋσ ταινύεσ κ.ϊ., όπου εύναι αποθηκευμϋνα τα αρχεύα τησ βϊςησ δεδομϋνων αλλϊ και τα προγρϊμματα που χρηςιμοποιούνται για την επεξεργαςύα τουσ. Σο λογιςμικό (software) εύναι τα προγρϊμματα που χρηςιμοποιούνται για την επεξεργαςύα των δεδομϋνων (ςτοιχεύων) τησ βϊςησ δεδομϋνων. Η βϊςη δεδομϋνων (data base) αποτελεύται από το ςύνολο των αρχεύων όπου εύναι αποθηκευμϋνα τα δεδομϋνα του ςυςτόματοσ. Σα ςτοιχεύα αυτϊ μπορεύ να βρύςκονται αποθηκευμϋνα ς ϋναν φυςικό υπολογιςτό αλλϊ και ςε περιςςότερουσ. Όμωσ, ςτον χρόςτη δύνεται η εντύπωςη ότι βρύςκονται ςυγκεντρωμϋνα ςτον ύδιο υπολογιςτό. Σα δεδομϋνα των αρχεύων αυτών εύναι ενοποιημϋνα (data integration), δηλ. δεν υπϊρχει πλεοναςμόσ (ϊςκοπη επανϊληψη) δεδομϋνων και μεριςμϋνα (data sharing), δηλ. υπϊρχει δυνατότητα ταυτόχρονησ προςπϋλαςησ των δεδομϋνων από πολλούσ χρόςτεσ. Ο κϊθε χρόςτησ ϋχει διαφορετικϊ δικαιώματα και βλϋπει διαφορετικό κομμϊτι τησ βϊςησ δεδομϋνων, ανϊλογα με τον ςκοπό για τον οπούο ςυνδϋεται. 36

Οι χρόςτεσ (users) μιασ βϊςησ δεδομϋνων χωρύζονται ςτισ εξόσ κατηγορύεσ : Τελικού χρόςτεσ (end users). Φρηςιμοποιούν κϊποια εφαρμογό για να παύρνουν ςτοιχεύα από μια βϊςη δεδομϋνων, ϋχουν τισ λιγότερεσ δυνατότητεσ επϋμβαςησ ςτα ςτοιχεύα τησ βϊςησ δεδομϋνων, χρηςιμοποιούν ειδικούσ κωδικούσ πρόςβαςησ και το ςύςτημα τούσ επιτρϋπει ανϊλογα πρόςβαςη ςε ςυγκεκριμϋνο κομμϊτι τησ βϊςησ δεδομϋνων. Προγραμματιςτϋσ εφαρμογών (application programmers). Αναπτύςςουν τισ εφαρμογϋσ του ΒΔ ςε κϊποια από τισ γνωςτϋσ γλώςςεσ προγραμματιςμού. Διαχειριςτόσ δεδομϋνων (data administrator DA). Έχει τη διοικητικό αρμοδιότητα και ευθύνη για την οργϊνωςη τησ βϊςησ δεδομϋνων και την απόδοςη δικαιωμϊτων πρόςβαςησ ςτουσ χρόςτεσ. Διαχειριςτόσ βϊςησ δεδομϋνων (database administrator DBA). Λαμβϊνει οδηγύεσ από τον διαχειριςτό δεδομϋνων και εύναι αυτόσ που διαθϋτει τισ τεχνικϋσ γνώςεισ και αρμοδιότητεσ για τη ςωςτό και αποδοτικό λειτουργύα του ΔΒΔ. 5.0.6 Η Αρχιτεκτονική των ΔΒΔ Όπωσ εύδαμε νωρύτερα, ϋνα ΔΒΔ (ύςτημα Διαχεύριςησ Βϊςησ Δεδομϋνων) ϋχει ςαν αποςτολό τη διαχεύριςη των δεδομϋνων των αρχεύων τησ βϊςησ, δηλ. την προςθόκη, διαγραφό, τροποπούηςη εγγραφών, την αναζότηςη μϋςα ςτισ εγγραφϋσ κ.ϊ.). Σο ΔΒΔ δϋχεται αιτόςεισ από τουσ χρόςτεσ των εφαρμογών και επικοινωνεύ με τα αρχεύα τησ βϊςησ δεδομϋνων για να τισ διεκπεραιώςει. Αυτό η κοινό διεπαφό (interface) των εφαρμογών με τα αρχεύα αποκαλεύται λογικό διεπαφό. Οι εφαρμογϋσ που δημιουργούμε δεν απαςχολούνται με τον τρόπο που εύναι αποθηκευμϋνα τα δεδομϋνα, πόςο χώρο καταλαμβϊνουν κοκ και αυτό η ιδιότητα εύναι γνωςτό ωσ ανεξαρτηςύα δεδομϋνων. 37

Αυτό ςημαύνει πρακτικϊ ότι οποιαδόποτε αλλαγό ςτον τρόπο οργϊνωςησ των αρχεύων τησ βϊςησ δεδομϋνων δεν θα ςυνεπϊγεται και αλλαγό ςτισ εφαρμογϋσ ϋνα πρόβλημα που ταλαιπωρούςε πολύ τουσ προγραμματιςτϋσ παλαιοτϋρων εποχών. Ακόμη, η προςθόκη, η κατϊργηςη ό και η τροποπούηςη κϊποιων εφαρμογών δεν θα ϋχει καμύα επύπτωςη ςτον τρόπο οργϊνωςησ των αρχεύων τησ βϊςησ δεδομϋνων. τα ΔΒΔ ϋχει επικρατόςει η λεγόμενη αρχιτεκτονικό των τριών επιπϋδων (βαθμύδων),όπου τα τρύα επύπεδα εύναι τα εξόσ : Εςωτερικό επύπεδο (internal level), ϋχει να κϊνει με την αποθόκευςη των αρχεύων ςτον ςκληρό δύςκο, δηλ. την πραγματικό ό φυςικό κατϊςταςό τουσ. Εξωτερικό επύπεδο (external level), ϋχει να κϊνει με τουσ χρόςτεσ εύτε αυτού εύναι απλού χειριςτϋσ, εύτε προγραμματιςτϋσ ό και οι διαχειριςτϋσ τησ βϊςησ δεδομϋνων. Εννοιολογικό επύπεδο (conceptual level), εύναι ϋνα ενδιϊμεςο επύπεδο που διαςυνδϋει τα δύο ϊλλα επύπεδα και ϋχει να κϊνει με τη λογικό ςχεδύαςη των αρχεύων τησ βϊςησ δεδομϋνων. 5.1 Βάςεισ Δεδομένων (DataBases) 5.1.1 Σι Είναι οι Βάςεισ Δεδομένων (DataBases) Μια Βϊςη Δεδομϋνων (DataBase) εύναι ϋνασ οργανωμϋνοσ τρόποσ αποθόκευςησ πληροφοριών και πρόςβαςόσ τουσ με πολλούσ τρόπουσ με διϊφορα προγρϊμματα. Μια βϊςη δεδομϋνων εύναι κϊτι παραπϊνω από μια απλό ςυλλογό αποθηκευμϋνων ςτοιχεύων. Ενασ ϊλλοσ οριςμόσ εύναι ότι μια βϊςη δεδομϋνων εύναι ϋνα ολοκληρωμϋνο ςύςτημα που αποτελεύται από δεδομϋνα (data) και από το κατϊλληλο λογιςμικό (software), τα οπούα χρηςιμοποιώντασ το υλικό (hardware) βοηθούν ςτην ενημϋρωςη και πληροφόρηςη των χρηςτών (users). 38

Ενα πρόγραμμα που διαχειρύζεται βϊςεισ δεδομϋνων αποκαλεύται Σύςτημα Διαχεύριςησ Βϊςεων Δεδομϋνων (DBMS, DataBase Management System) και με την βοόθειϊ του μπορούμε να αποθηκεύςουμε, προςθϋςουμε, τροποποιόςουμε, εμφανύςουμε ό και διαγρϊψουμε τα αποθηκευμϋνα δεδομϋνα. Σα δεδομϋνα που υπϊρχουν ςτισ βϊςεισ δεδομϋνων πρϋπει να εύναι : Ολοκληρωμϋνα (Integrated), δηλ. τα δεδομϋνα πρϋπει να εύναι αποθηκευμϋνα ςε ομοιόμορφα οργανωμϋνα ςύνολα αρχεύων όπου δεν πρϋπει να υπϊρχει επανϊληψη ό πλεοναςμόσ (redundancy) των ύδιων ςτοιχεύων. Καταμεριζόμενα (Shared), δηλ. να μπορούν περιςςότεροι του ενόσ χρόςτεσ να βλϋπουν και να μοιρϊζονται τα ύδια δεδομϋνα την ύδια χρονικό ςτιγμό. 5.1.2 Οι τόχοι μιασ Βάςησ Δεδομένων Οι ςτόχοι μιασ βϊςησ δεδομϋνων εύναι οι εξόσ : Ο περιοριςμόσ τησ πολλαπλόσ αποθόκευςησ των ύδιων ςτοιχεύων (redundancy). Ο καταμεριςμόσ (sharing) των ύδιων ςτοιχεύων ς' όλουσ τουσ χρόςτεσ. Η ομοιομορφύα (uniformity) ςτον χειριςμό και την αναπαρϊςταςη των δεδομϋνων. Η επιβολό κανόνων αςφαλεύασ (security). Η διατόρηςη τησ ακεραιότητασ (integrity) και τησ αξιοπιςτύασ (reliability) των δεδομϋνων. Η ανεξαρτηςύα των δεδομϋνων (data independence) και των προγραμμϊτων από τον φυςικό τρόπο αποθόκευςησ των δεδομϋνων. 39

5.1.3 Σα τοιχεία μιασ Βάςησ Δεδομένων Σα δεδομϋνα μιασ βϊςησ δεδομϋνων αποθηκεύονται (οργανώνονται) ςτισ εξόσ ςτοιχειώδεισ μορφϋσ : Πεδίο (Field), εύναι το μικρότερο κομμϊτι δεδομϋνων ςτο οπούο μπορούμε να αναφερθούμε και περιϋχει ϋνα μόνο χαρακτηριςτικό ό ιδιότητα ενόσ ςτοιχεύου τησ βϊςησ δεδομϋνων. Εγγραφή (Record), εύναι ϋνα ςύνολο από διαφορετικϊ πεδύα που περιϋχει όλεσ τισ πληροφορύεσ για ϋνα ςτοιχεύο τησ βϊςησ δεδομϋνων. Αρχείο (File), εύναι ϋνα ςύνολο από πολλϊ παρόμοια ςτοιχεύα (εγγραφϋσ) τησ βϊςησ δεδομϋνων. Πρωτεύον Κλειδί (Primary Key), εύναι ϋνα πεδύο ό ςυνδυαςμόσ πεδύων που χαρακτηρύζει μοναδικϊ μια εγγραφό. Κλειδί (Key), εύναι ϋνα πεδύο που δεν ϋχει κατ' ανϊγκη μοναδικό τιμό και που μπορούμε να το χρηςιμοποιόςουμε για να κϊνουμε αναζότηςη ς' ϋνα αρχεύο. Ξένο Κλειδί (Foreign Key), εύναι ϋνα πεδύο που ϋχει το ύδιο ςύνολο τιμών με το πρωτεύον κλειδύ ενόσ ϊλλου αρχεύου. 5.1.4 Σα Εργαλεία Φειριςμού Πληροφοριών Σα εργαλεύα χειριςμού πληροφοριών μιασ βϊςησ δεδομϋνων εύναι γνωςτϊ και ςαν "Γλώςςεσ Εντολών" και με τη βοόθειϊ τουσ μπορούμε να δώςουμε εντολϋσ χειριςμού των δεδομϋνων. Η πιο γνωςτό και ευρϋωσ διαδεδομϋνη γλώςςα εντολών για τισ ςύγχρονεσ βϊςεισ δεδομϋνων εύναι η Δομημϋνη Γλώςςα Ερωτόςεων SQL (Structured Query Language), η οπούα αποτελεύται από τα εξόσ μϋρη : DDL (Data Definition Language, Γλώςςα Οριςμού Δεδομϋνων), με την οπούα καθορύζουμε τισ δομϋσ και τα τμόματα μιασ βϊςησ δεδομϋνων. DML (Data Manipulation Language, Γλώςςα Χειριςμού Δεδομϋνων), με την οπούα επεξεργαζόμαςτε τα δεδομϋνα μιασ βϊςησ δεδομϋνων. 40