ΤΕΙ ΚΑΒΑΛΑΣ Τ Μ Η Μ Α ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ Πτυχιακή εργασία Θέμα: Σχεδιασμός και ανάπτυξη διαδραστικής,διαδικτυακής εφαρμογής για την διαχείριση των ανθρωπίνων πόρων των τελειόφοιτων και των αποφοίτων του τμήματος διαχείρισης πληροφοριών του ΤΕΙ Καβάλας, με χρήση του συστήματος διαχείρισης βάσεων δεδομένων MySQL της γλώσσας προγραμματισμού PHP. Από τον σπουδαστή: Μαυρομιχάλη Μάριο Επιβλέπων εκπαιδευτικός του τμήματος: κ. Βασίλειος Χατζής Καβάλα 10/11/2005
Περιεχόμενα Πρόλογος :Ευχαριστίες Εισαγωγή Συνοπτική περιγραφή της εφαρμογής Σκοπός και στόχος της εφαρμογής Κεφάλαιο 1: W.A.M.P 1.1.MySQL Η Τρέχουσα και οι Μελλοντικές Εκδόσεις της Πώς θα Αποκτήσετε την ΜySQL Εγκατάσταση της MySQL στα Windows Βασικές Οδηγίες Ασφάλειας Εκκίνηση της MySQL Ασφάλεια της Σύνδεσης στην MySQL Παρουσίαση του Συστήματος Δικαιωμάτων της MySQL Η Διαδικασία Πιστοποίησης Διαχείριση των Δικαιωμάτων των Χρηστών Προσθήκη Χρηστών Ανάκληση Δικαιωμάτων 1.2.Apache Εγκατάσταση του Apache στα Windows Η Δομή του Αρχείου Διαμόρφωσης του Apache Ντιρεκτίβες Αρχεία Διαμόρφωσης ανά Κατάλογο Τα Αρχεία Καταγραφής του Apache Το Αρχείο access_log Το Αρχείο error_log Επιπλέον Αρχεία Το Δυαδικό Αρχείο για τον Apache Server Οι Επιλογές του httpd 1.3.PHP Το Αρχείο php.ini Έλεγχος της Εγκατάστασης Βοήθεια για την Εγκατάσταση Κεφάλαιο 2: Η Βάση δεδομένων 2.1. Οι πίνακες 2.2. Κανονικοποίηση 3 βαθμού 2.3. Διάγραμμα οντοτήτων συσχετίσεων Κεφάλαιο 3: Η εφαρμογή 3.1 «Ανθρώπινοι πόροι» Το περιεχόμενο της έννοιας «ανθρώπινοι πόροι» Η έννοια, το περιεχόμενο και οι δραστηριότητες της διοίκησης των ανθρώπινων πόρων Προγραμματισμός για το ανθρώπινο δυναμικό που θα απαιτηθεί στο μέλλον Πρόβλεψη αναγκών Ο σχεδιασμός της φόρμας θα συμπληρώσουν οι υποψήφιοι Προσέλκυση προσωπικού μέσω του ΙΝΤΕΡΝΕΤ Εντοπισμός και προσέλκυση προσωπικού Η σημασία της σωστής επιλογής Η διαδικασία της επιλογής Πως βοηθάει εφαρμογή στην διαχείριση Δ.Π 3.2 Λειτουργικότητα εφαρμογής Περιβάλλον για εξωτερικούς χρήστες Περιβάλλον για χρήστες από την Διαχείριση πληροφοριών 3.3 Περιβάλλον εφαρμογής και ο κώδικας Συμπεράσματα Βιβλιογραφία 2
Πρόλογος-Ευχαριστίες Ευχαριστώ πολύ όλους όσους με βοήθησαν να φέρω εις πέρας με επιτυχία την εργασία που μου ανατέθηκε. Η πτυχιακή εργασία πραγματοποιήθηκε το έτος 2005 και είναι αφιερωμένη σε δύο πολύ αγαπημένα πρόσωπα που μας άφησαν νωρίς. Εισαγωγή Συνοπτική περιγραφή της εφαρμογής Παρουσίαση και στην συνέχεια χρησιμοποίηση ενός προγράμματος μέσα από το οποίο θα δίνεται η δυνατότητα στους απόφοιτους του τμήματος να εκθέτουν με ακριβή σαφήνεια τα προσόντα που διαθέτουν σε επίπεδο γνώσεων αλλά και συγκεκριμένα αντικείμενα με τα οποία ενδεχομένως να έχουν ασχοληθεί (βιογραφικό σημείωμα).η προβολή αυτών των στοιχείων θα είναι διαθέσιμη σε επισκέπτες του προγράμματος είτε αναφερόμαστε σε διδακτικό είτε σε φοιτητικό προσωπικό,είτε μιλάμε για εξωτερικούς ενδιαφερόμενους προερχόμενους από τον τομέα της αγοράς εργασίας. Τέλος μέσω της εφαρμογής προσφέρονται τρόποι επικοινωνίας μέσα στο φοιτητικό περιβάλλον. Σκοπός,στόχος της εφαρμογής Το πρόγραμμα αυτό δημιουργήθηκε για να αποτελέσει τον κυριότερο δίαυλο επικοινωνίας ανάμεσα σε φοιτητές, καθηγητές αλλά και επαγγελματίες που αναζητούν νέο προσωπικό για να στελεχώσουν τις επιχειρήσεις τους. Η επαφή είναι άμεση και με τη σωστή χρησιμοποίηση της μπορούν να επιτευχθούν οφέλη για όλους τους χρήστες. Στοχεύει στην δημιουργία ενός ακόμα δρόμου που θα μπορεί να οδηγήσει τους αποφοίτους του τμήματος στην επαγγελματική αποκατάσταση 3
1.Κεφάλαιο W.A.M.P Παρακάτω θα πραγματοποιηθεί μια συνοπτική παρουσίαση των εργαλείων που χρησιμοποιήθηκαν για την κατασκευή της εφαρμογής. Η επιλογή τους έγινε εξαιτίας της μεγάλης σπουδαιότητας τους καθώς αποτελούν τις τρεις τεχνολογίες ανοιχτού κώδικα που υπάρχουν σήμερα στην ανάπτυξη εφαρμογών WEB και αναπτύσσουν κορυφαίες δυνατότητες. 1.1 ΜySQL Η Τρέχουσα και οι Μελλοντικές Εκδόσεις της Οι οδηγίες εγκατάστασης που παρουσιάζονται αντιστοιχούν στην έκδοση 4.0.15 της MySQL!., η οποία είναι η τρέχουσα έκδοση "παραγωγής" αυτού του λογισμικού. Η MySQL ΑΒ, η εταιρεία που είναι υπεύθυνη για την ανάπτυξη και διανομή της MySQL, χρησιμοποιεί αριθμούς "δευτερεύουσας έκδοσης" (το "15" στην περίπτωση μας) για να χαρακτηρίσει τις ενημερώσεις της κύριας έκδοσης του λογισμικού (το "4.0" στην περίπτωση μας) που περιέχουν σχετιζόμενες με την ασφάλεια βελτιώσεις ή διορθώσεις σφαλμάτων. Οι δευτερεύουσες εκδόσεις δεν κυκλοφορούν βάσει καθορισμένου χρονοδιαγράμματος όταν προστίθενται βελτιώσεις ή διορθώσεις στον κώδικα - και αφού ελεγχθούν σχολαστικά - η MySQL ΑΒ κυκλοφορεί μία νέα έκδοση του λογισμικού με νέο αριθμό δευτερεύουσας έκδοσης. Επειδή όμως οι εκδόσεις αλλάζουν θα πρέπει να διαβάσετε την λίστα των αλλαγών που έχουν γίνει στην δική σας έκδοση, την οποία θα βρείτε στην διεύθυνση Http://www.mysql.com/doc/en/News-4.0.x.html, για να ενημερωθείτε για οποιεσδήποτε αλλαγές απαιτούνται στην διαδικασία εγκατάστασης ή διαμόρφωσης, αν και είναι μάλλον απίθανο να αλλάξουν οποιεσδήποτε οδηγίες εγκατάστασης μεταξύ δύο δευτερευουσών εκδόσεων, καλό θα είναι να αποκτήσετε τη συνήθεια να ελέγχετε πάντα την λίστα αλλαγών κάθε λογισμικού που εγκαθιστάτε και διατηρείτε στο σύστημα σας. Εάν έχει παρουσιαστεί όντως μία νέα δευτερεύουσα έκδοση, αλλά δεν αναφέρονται αλλαγές στην διαδικασία εγκατάστασης, κρατήστε απλώς στο μυαλό σας ότι θα πρέπει να σκέφτεστε τον αριθμό της δικής σας έκδοσης σε οδηγίες και εικόνες 4
Πώς θα Αποκτήσετε την ΜySQL Η MySQL ΑΒ, η εταιρεία που αναπτύσσει το λογισμικό server βάσεων δεδομένων MySQL, διανέμει την MySQL μέσω του Web site της, στην διεύθυνση Http:// www. mysql.com. Σ' αυτό το Web site θα βρείτε επίσης διανομές της. MySQL σε δυαδική μορφή για όλες τις πλατφόρμες, RΡΜ αρχεία και αρχεία πηγαίου κώδικα για τις πλατφόρμες Linux/Unix/windows. επιπλέον, μπορείτε να αγοράσετε το λογισμικό σε μία από τις εμπορικά διαθέσιμες εκδόσεις του - δηλαδή, σε συσκευασία και με εκτενές, έντυπο εγχειρίδιο της MySQL 4.0.x.html - από το online κατάστημα της MySQL ΑΒ, με πολύ λογική τιμή. ι οδηγίες εγκατάστασης που βασίζονται στην επίσημη έκδοση της MySQL 4.0.x. από την MySQL ΑΒ. Μπορείτε να μεταφέρετε όλα τα αρχεία από την διεύθυνση Http://www.mysql.com/downloads/mysql-4.0.x.html. Εγκατάσταση της MySQL στα Windows 1 Η διαδικασία εγκατάστασης της MySQL στα Windows είναι αρκετά απλή - τα στελέχη της MySQL ΑΒ έχουν "πακετάρει" οτιδήποτε θα χρειαστείτε, μαζί με ένα πρόγραμμα εγκατάστασης, σε ένα συμπιεσμένο 2 αρχείο. Αφού μεταφέρετε το zip αρχείο στο σύστημα σας, αποσυμπιέστε το σε έναν προσωρινό κατάλογο και τρέξτε το πρόγραμμα εγκατάστασης, setup.exe. Αφού το πρόγραμμα setup.exe εγκαταστήσει τον MySQL server και τα client προγράμματα, είστε έτοιμοι να εκκινήσετε τον MySQL server.τα ακόλουθα βήματα παρουσιάζουν αναλυτικά την εγκατάσταση της MySQL 4.0.x τα Windows, όταν η ρουτίνα εγκατάστασης 3 μεταφέρεται από το Web site της MySQL AB. Η διαδικασία εγκατάστασης είναι παρόμοια ανεξάρτητα από το εάν έχετε ένα περιβάλλον με τα Windows 98, NT, 2000 ή ΧΡ για σκοπούς δοκιμών και ανάπτυξης εφαρμογών. Πολλοί χρήστες εγκαθιστούν την MySQL σε αυτόνομους υπολογιστές με τα Windows για να πάρουν μία πρώτη αίσθηση των δυνατοτήτων της, πριν την ενσωματώσουν σε ένα περιβάλλον 1 Εάν αντιμετωπίσετε οποιαδήποτε προβλήματα κατά την διάρκεια της εγκατάστασης της MySQL θα πρέπει να ανατρέξετε για βοήθεια είναι το Κεφάλαιο "Problems and Common Errors" (προβλήματα και κοινά σφάλματα) του εγχειριδίου της MySQL, το οποίο θα βρείτε στην διεύθυνση http:// www.mysql.eom/doc/p/r/prowems. html. 2 zip 3 installer 5
παραγωγής. Για να ξεκινήσετε τη διαδικασία εγκατάστασης, υποθέτοντας ότι έχετε μεταφέρει την ρουτίνα εγκατάστασης σε περιβάλλοντα Windows από το Web site της MySQL AB, ακολουθήστε τα παρακάτω βήματα: 1.Αποσυμπιέστε το zip αρχείο σε έναν προσωρινό κατάλογο, εντοπίστε το αρχείο setup.exe και κάντε διπλό κλικ πάνω του για να εκκινήσετε την εγκατάσταση. Θα δείτε το πρώτο παράθυρο του οδηγού εγκατάστασης, το οποίο παρουσιάζεται στην. Κάντε κλικ στο Next για να συνεχίσετε. 2. To δεύτερο παράθυρο του οδηγού εγκατάστασης περιέχει χρήσιμες πληροφορίες σχετικές με την θέση εγκατάστασης. Η προεπιλεγμένη θέση εγκατάστασης είναι ο κατάλογος C:\mysql. Εάν σκοπεύετε να εγκαταστήσετε την MySQL σε μία διαφορετική θέση, το παράθυρο αυτό παρουσιάζει ορισμένες αλλαγές τις οποίες θα χρειαστεί να κάνετε. Οι πληροφορίες που παρουσιάζει αυτό το παράθυρο είναι επίσης σημαντικές για τους χρήστες των Windows NT οι οποίοι θέλουν να εκκινούν την MySQL σαν μία υπηρεσία 4 στο σύστημα τους. Διαβάστε τις πληροφορίες που εμφανίζονται και καταγράψτε οτιδήποτε σχετίζεται με την περίπτωση σας. Κατόπιν κάντε κλικ στο Next για να συνεχίσετε. 3. To τρίτο παράθυρο του οδηγού εγκατάστασης σας ζητά να επιλέξετε την θέση για την εγκατάσταση της MySQL. Εάν θέλετε να εγκαταστήσετε την MySQL στην προεπιλεγμένη (προτεινόμενη) θέση, κάντε κλικ στο Next για να συνεχίσετε. Αλλιώς κάντε κλικ στο κουμπί Browse και κινηθείτε στην δομή καταλόγων του συστήματος σας για να επιλέξετε την επιθυμητή θέση εγκατάστασης. Κάντε κλικ στο Next για να συνεχίσετε. 4. Το τέταρτο παράθυρο του οδηγού εγκατάστασης σας ζητά να επιλέξετε την μέθοδο εγκατάστασης - Typical (τυπική), Compact (συμπαγής), ή Custom (εξειδικευμένη) - όπως βλέπετε στην. Η επιλογή Custom σας επιτρέπει να επιλέξετε μόνοι σας ποια στοιχεία της MySQL θα εγκαταστήσετε, όπως για παράδειγμα τα αρχεία πληροφοριών τεκμηρίωσης και βοήθειας. Επιλέξτε την μέθοδο εγκατάστασης Typical και κάντε κλικ στο Next για να συνεχίσετε. 5. ΣΤΟ σημείο αυτό ξεκινά η καθαυτό διαδικασία της εγκατάστασης, και τοποθετεί τα αρχεία στις κατάλληλες θέσεις. Αφού ολοκληρωθεί η διαδικασία θα εμφανιστεί ένα μήνυμα το οποίο επιβεβαιώνει την ολοκλήρωση της, όπως 4 servise 6
βλέπετε στην. Κάντε κλικ στο Finish για να ολοκληρώσετε την διαδικασία εγκατάστασης. Επειδή η διαδικασία εγκατάστασης του προϊόντος της MySQL AB δεν δημιουργεί συντομεύσεις για την εκκίνηση της MySQL στο μενού Start των Windows, θα πρέπει να την εκκινήσετε μόνοι σας. Εάν μεταβείτε στον κατάλογο εφαρμογών της MySQL (συνήθως ο C:\mysql\bin\, εκτός κι αν έχετε αλλάξει την θέση εγκατάστασης) θα βρείτε πολλές εφαρμογές έτοιμες για χρήση. Η εφαρμογή winmysqladmin.exe είναι ένα πολύτιμο βοήθημα για τους χρήστες των Windows που μόλις τώρα ξεκινούν την ενασχόληση τους με την MySQL. Εάν κάνετε διπλό κλικ στο όνομα αυτού του αρχείου θα εκκινήσει ο MySQL server και θα εμφανιστεί ένα εικονίδιο φωτεινού σηματοδότη στην γραμμή εργασιών της επιφάνειας εργασίας σας. Όταν εκκινείτε το WinMySQLadmin για πρώτη φορά, σας ζητείται ένα όνομα χρήστη (username) και ένας κωδικός πρόσβασης (password). Η εφαρμογή δημιουργεί μόνη της τον αρχικό λογαριασμό χρήστη της MySQL σε ένα σύστημα Windows. Αφού ολοκληρωθεί η δημιουργία του λογαριασμού, ή οποτεδήποτε κάνετε κλικ με το δεξιό πλήκτρο του ποντικιού στο εικονίδιο του φωτεινού σηματοδότη στην γραμμή εργαλείων, εμφανίζεται το - παράθυρο του WinMySQLadmin. To παράθυρο αυτό σας παρέχει ένα εύχρηστο περιβάλλον παρακολούθησης του MySQL server. To WinMySQLadmin ανιχνεύει αυτόματα τις πληροφορίες για το περιβάλλον στο οποίο τρέχει όπως η διεύθυνση IP και το όνομα του υπολογιστή. Οι καρτέλες που εμφανίζονται στο πάνω τμήμα του παραθύρου σας δίνουν την δυνατότητα να εξετάζετε πληροφορίες για το σύστημα και να προσαρμόζετε τις επιλογές διαμόρφωσης MySQL.Για παράδειγμα, εάν επιλέξετε την καρτέλα Variables μπορείτε να εξετάσετε πληροφορίες για την διαμόρφωση του server. Οι πληροφορίες αυτές είναι παρόμοιες με το αποτέλεσμα που παράγει η εντολή SHOW VARIABLES της MySQL. Για να τερματίσετε την λειτουργία του MySQL server και/ή την λειτουργία του εργαλείου WinMySQLadmin, κάντε κλικ ξανά με το δεξιό πλήκτρο του ποντικιού στο εικονίδιο του φωτεινού σηματοδότη στην γραμμή εργασιών, και από το μενού που εμφανίζεται επιλέξτε την κατάλληλη ενέργεια. Για όσο χρόνο τρέχει ο MySQL server, μπορείτε να τρέχετε επιπλέον εφαρμογές μέσω ενός παραθύρου κονσόλας, όπως το MySQL monitor. 7
Βασικές Οδηγίες Ασφάλειας Eάν τρέχετε την MySQL σε ένα σύστημα με τα Windows, και ανεξάρτητα από το εάν διαχειρίζεστε τον δικό σας server ή χρησιμοποιείτε ένα σύστημα μιας εταιρείας παροχής υπηρεσιών Internet, θα πρέπει να κατανοείτε ορισμένες βασικές οδηγίες ασφάλειας. Εάν προσπελάζετε την MySQL μέσω μιας εταιρείας παροχής Internet, υπάρχουν αρκετές απόψεις της ασφάλειας του server τις οποίες εσείς -μη-έχοντας τα δικαιώματα του χρήστη root - δεν θα μπορείτε να τροποποιήσετε ή να παρακάμψετε. Δυστυχώς, πολλές εταιρείες παροχής Internet δεν δίνουν την απαιτούμενη προσοχή στις οδηγίες ασφάλειας, αφήνοντας έτσι εκτεθειμένους τους πελάτες τους και στις περισσότερες περιπτώσεις, ανενημέρωτους για τον κίνδυνο που διατρέχουν. Εκκίνηση της MySQL Η ασφάλεια της MySQL ξεκινά από την διαδικασία εκκίνησης του server. Εάν δεν είστε ο επόπτης (administrator) του server δεν θα μπορείτε να αλλάξετε αυτή την διαδικασία, αλλά μπορείτε σίγουρα να την ελέγξετε και να αναφέρετε οποιαδήποτε τρωτά σημεία στην εταιρεία παροχής Internet με την οποία συνεργάζεστε. Εάν διαπιστώσετε ότι η MySQL τρέχει με την ταυτότητα του root στο σύστημα σας, επικοινωνήστε αμέσως με την εταιρεία παροχής Internet και διαμαρτυρηθείτε. Εάν είστε εσείς ο επόπτης του server, θα πρέπει να επανεκκινήσετε την διεργασία της MySQL με την ταυτότητα ενός διαφορετικού χρήστη, ή να καθορίσετε το όνομα χρήστη η την εντολή εκκίνησης της MySQL: non-_root_user_name. Για παράδειγμα, εάν θέλετε να τρέξετε την MySQL με την ταυτότητα του χρήστη mysql, χρησιμοποιήστε την εντολή: raysqld user = mysql Ωστόσο, η συνιστώμενη μέθοδος για την εκκίνηση της MySQL είναι χρησιμοποιώντας το script εκκίνησης safe_mysqld από τον κατάλογο bin της 8
εγκατάστασης της MySQL: #> /usr/local/bin/ifiysql/bin/safe_mysqld Ασφάλεια της Σύνδεσης στην MySQL Μπορείτε να συνδεθείτε στην MySQL χρησιμοποιώντας το MySQL monitor ή άλλες εφαρμογές με αρκετούς διαφορετικούς τρόπους, καθένας εκ των οποίων παρουσιάζει τους δικούς του κινδύνους στο θέμα της ασφάλειας. Εάν εγκαταστήσατε την MySQL έναν δικό σας σταθμό εργασίας, θα έχετε να ανησυχείτε για πολύ λιγότερα πράγματα σε σύγκριση με αυτούς που είναι υποχρεωμένοι να χρησιμοποιούν μία σύνδεση δικτύου για να προσπελάσουν τον MySQL server. Εάν η MySQL είναι εγκατεστημένη στον δικό σας σταθμό εργασίας, ο μεγαλύτερος κίνδυνος υπό το πρίσμα της ασφάλειας είναι να αφήκετε τον σταθμό εργασίας σας χωρίς επίβλεψη κατά την διάρκεια που τρέχει το MySQL monitor ή κάποιο άλλο εργαλείο διαχείρισης της MySQL. Σε μία τέτοια περίπτωση, οποιοδήποτε κακόβουλο άτομο θα μπορούσε να χρησιμοποιήσει τον σταθμό εργασίας σας για να διαγράψει δεδομένα, να εισάγει πλασματικά δεδομένα, ή να τερματίσει την λειτουργία του server. Καλό θα είναι να χρησιμοποιείτε ένα βοήθημα προφύλαξης οθόνης (screen saver) ή γενικότερα κάποιον μηχανισμό κλειδώματος της οθόνης με κωδικό πρόσβασης, εάν είστε υποχρεωμένοι να αφήνετε τον σταθμό εργασίας σας χωρίς επίβλεψη σε έναν χώρο στον οποίο έχουν πρόσβαση πολλά άτομα. Εάν η MySQL έχει εγκατασταθεί σε έναν server έξω από το δίκτυο σας, η ασφάλεια της σύνδεσης είναι κάτι το οποίο θα πρέπει να σας απασχολήσει σοβαρά. Όπως ισχύει και με οποιαδήποτε άλλη μορφή μετάδοσης μέσω Internet τα δεδομένα σας διατρέχουν τον κίνδυνο υποκλοπής. Εάν η μετάδοση των δεδομένων γίνεται σε μη-κρυπτογραφημένη μορφή, το άτομο που τα υποκλέπτει μπορεί να τα χρησιμοποιήσει άμεσα. Υποθέστε ότι η μηκρυπτογραφημένη μετάδοση δεδομένων περιλαμβάνει τα διαπιστευτήρια που χρησιμοποιείτε για την σύνδεση σας στην MySQL όνομα χρήστη και κωδικό πρόσβασης* υποκλέπτοντάς τα, ένα κακόβουλο άτομο έχει όλα όσα χρειάζεται για να προσπελάσει την βάση δεδομένων, και μάλιστα με την δική σας ταυτότητα! 9
Ένας τρόπος για να αποτρέψετε τέτοια συμβάντα είναι η χρήση μιας ασφαλούς σύνδεσης για να προσπελάζετε τον MySQL server. Αντί να χρησιμοποιείτε το Telnet για να προσπελάσετε το απομακρυσμένο σύστημα, χρησιμοποιήστε το SSH. To 5SH δείχνει και λειτουργεί παρόμοια με το Telnet, αλλά όλη η επικοινωνία από/προς το απομακρυσμένο σύστημα διακινείται σε κρυπτογραφημένη μορφή. Παρόμοια, εάν χρησιμοποιείτε ένα βασιζόμενο στο Web εργαλείο διαχείρισης του server, όπως το phpmyadmin 5, ή ένα διαφορετικό εργαλείο παρεχόμενο από την εταιρεία παροχής Internet με την οποία συνεργάζεστε, θα πρέπει να προσπελάζετε αυτό το εργαλείο μέσω μιας ασφαλούς σύνδεσης HTTP. Παρουσίαση του Συστήματος Δικαιωμάτων της MySQL Το σύστημα δικαιωμάτων (ή "προνομίων") της MySQL είναι πάντα ενεργό. Την πρώτη φορά που επιχειρείτε να συνδεθείτε, καθώς και σε κάθε επόμενη ενέργεια, η MySQL ελέγχει τα ακόλουθα τρία πράγματα: Την θέση από την οποία την προσπελάζετε (το σύστημα σας) Την ταυτότητα σας (όνομα χρήστη και κωδικός πρόσβασης) Ποιες ενέργειες μπορείτε να κάνετε και ποιες όχι (τα δικαιώματα σας) Όλες αυτές οι πληροφορίες αποθηκεύονται σε μία βάση δεδομένων με όνομα mysqi, η οποία δημιουργείται αυτόματα κατά την εγκατάσταση της MySQL. Υπάρχουν αρκετοί πίνακες στην βάθη δεδομένων mysql: columnsj>riv - Ορίζει τα δικαιώματα των χρηστών για συγκεκριμένα πεδία ενός πίνακα. db - Ορίζει τα δικαιώματα για όλες τις βάσεις δεδομένων που υπάρχουν στον server. Κ func - Ορίζει τις καθοριζόμενες από τον χρήστη συναρτήσεις. host - Ορίζει τα αποδεκτά συστήματα - τους υπολογιστές που μπορούν να συνδέονται σε μία συγκεκριμένη βάση δεδομένων. tablespriv - Ορίζει τα δικαιώματα των χρηστών για συγκεκριμένους πίνακες μιας βάσης δεδομένων. 5 ανατρέξτε στην διεύθυνση http://phpmyadmin.sourceforge.net για περισσότερες πληροφορίες 10
user - Ορίζει τα δικαιώματα εκτέλεσης εντολών για έναν συγκεκριμένο χρήστη. Οι παραπάνω πίνακες θα γίνουν πιο σημαντικοί για εσάς αργότερα σ' αυτό το κεφάλαιο, αφού προσθέσετε μερικούς χρήστες στον MySQL server. Για την ώρα, να θυμάστε απλώς ότι οι πίνακες αυτοί υπάρχουν και πρέπει να περιέχουν τα σωστά δεδομένα για να μπορούν οι χρήστες να εκτελούν τις επιθυμητές ενέργειες. Η Διαδικασία Πιστοποίησης Όπως αναφέραμε παραπάνω, η MySQL ελέγχει τρία πράγματα κατά την διαδικασία της πιστοποίησης (authentication). Οι ενέργειες που σχετίζονται μ' αυτά τα τρία πράγματα εκτελούνται σε δύο βήματα: Η MySQL εξακριβώνει το σύστημα από το οποίο συνδέεστε και ελέγχει το όνομα χρήστη και τον κωδικό πρόσβασης που χρησιμοποιείτε. Εάν το σύστημα σας επιτρέπεται να συνδεθεί στον MySQL server, ο κωδικός πρόσβασης είναι σωστός για το όνομα χρήστη που καθορίσατε, και το όνομα χρήστη είναι έγκυρο για το σύστημα, η MySQL προχωρά στο επόμενο βήμα. Για οποιαδήποτε εντολή SQL που προσπαθείτε να εκτελέσετε, η MySQL ελέγχει ότι έχετε το δικαίωμα να εκτελέσετε αυτή την ενέργεια στην συγκεκριμένη βάση δεδομένων, πίνακα και πεδίο. Εάν δεν καταφέρετε να περάσετε επιτυχώς από το βήμα 1, θα εμφανιστεί ένα μήνυμα σφάλματος το οποίο αναφέρει αυτό το γεγονός και δεν θα έχετε την δυνατότητα να συνεχίσετε στο βήμα 2. Για παράδειγμα, υποθέστε ότι συνδέεστε στον MySQL server χρησιμοποιώντας το όνομα χρήστη joe και τον κωδικό πρόσβασης abc123, και θέλετε να προσπελάσετε την βάση δεδομένων με όνομα mydb. Θα λάβετε ένα μήνυμα σφάλματος εάν οποιαδήποτε από τις παραπάνω παραμέτρους είναι λανθασμένη, για οποιονδήποτε από τους ακόλουθους λόγους: Ο κωδικός πρόσβασης είναι λανθασμένος. Το όνομα χρήστη joe δεν υπάρχει. Ο χρήστης joe δεν μπορεί να συνδέεται από το τοπικό σύστημα (localhost). Ο χρήστης joe μπορεί να συνδέεται από το τοπικό σύστημα (localhost), αλλά δεν μπορεί να χρησιμοποιεί την βάση 11
Εάν διαχειρίζεστε τον δικό σας server, ή έχετε την δυνατότητα να προσθέσετε όσες βάσεις δεδομένων και όσους χρήστες θέλετε, καθώς επίσης και να τροποποιείτε τα δικαιώματα πρόσβασης των χρηστών στις βάσεις δεδομένων, οι επόμενες ενότητες θα σας παρουσιάσουν τις σχετικές διαδικασίες.το μήνυμα σφάλματος που θα δείτε μπορεί να μοιάζει με το ακόλουθο: #> /usr/local/mysql/bin/mysql -h localhost -u joe -pabcl23 test Error 1045: Access denied for user: 'joeglocalhost' (Using password: YES) Εάν ο χρήστης joe με τον κωδικό πρόσβασης abd 23 επιτρέπεται να συνδεθεί από το σύστημα localhost στην βάση δεδομένων mydb, η MySQL θα ελέγξει τις ενέργειες που μπορεί να εκτελέσει ο joe στο βήμα 2 της διαδικασίας πιστοποίησης. Για τους σκοπούς του παραδείγματος μας υποθέστε ότι ο joe επιτρέπεται να επιλέγει δεδομένα από την βάση δεδομένων mydb, αλλά δεν έχει το δικαίωμα να εισάγει δεδομένα σ' αυτήν. Τα βασιζόμενα σε ενέργειες συστήματα παροχής δικαιωμάτων σε χρήστες χρησιμοποιούνται ευρέως σε εφαρμογές οι οποίες έχουν πολλαπλά επίπεδα διαχείρισης. Για παράδειγμα, εάν έχετε δημιουργήσει μία εφαρμογή διαχείρισης οικονομικών δεδομένων, μπορεί να θέλετε να παραχωρήσετε μόνο το δικαίωμα επιλογής (SELECT) στους αρχάριους χρήστες και τα δικαιώματα για την εισαγωγή και διαγραφή εγγραφών (INSERT και DELETE) μόνο στα υψηλόβαθμα στελέχη που έχουν την κατάλληλη εξουσιοδότηση. Διαχείριση των Δικαιωμάτων των Χρηστών Στις περισσότερες περιπτώσεις, όταν προσπελάζετε την MySQL μέσω μιας εταιρείας παροχής Internet, θα έχετε στην διάθεση σας μόνο έναν χρήστη και μία βάση δεδομένων. Εξ ορισμού, αυτός ο ένας χρήστης θα έχει πρόσβαση σε όλους τους πίνακες της βάσης δεδομένων, καθώς και την δυνατότητα να εκτελεί όλες τις εντολές. Σ' αυτό το σενάριο η ευθύνη για την δημιουργία μιας ασφαλούς εφαρμογής βαρύνει αποκλειστικά τον δημιουργό της - δηλαδή εσάς. Προσθήκη Χρηστών Η διαχείριση του δικού σας server μέσω μιας εφαρμογής προερχόμενης από έναν τρίτο κατασκευαστή μπορεί να σας παρέχει μία απλή μέθοδο για την προσθήκη χρηστών, χρησιμοποιώντας έναν οδηγό (wizard) ή ένα γραφικό περιβάλλον με τους κατάλληλους μηχανισμούς. Ωστόσο, η προσθήκη χρηστών 12
από την γραμμή εντολής δεν είναι δύσκολη υπόθεση, κυρίως εάν κατανοείτε τα σημεία ελέγχου ασφάλειας που χρησιμοποιεί η MySQL, τα οποία αναφέραμε στην προηγουμένη ενότητα. Η απλούστερη μέθοδος για την προσθήκη νέων χρηστών είναι η εντολή GRANT. Αφού συνδεθείτε στην MySQL με την ταυτότητα του χρήστη root, μπορείτε να εισάγετε μία εντολή για να δημιουργήσετε ένα νέο χρήστη. Η άλλη μέθοδος είναι η εισαγωγή εντολών INSERT σε όλους τους σχετικούς πίνακες της βάσης δεδομένων mysql ωστόσο, η μέθοδος αυτή απαιτεί από εσάς να γνωρίζετε όλα τα πεδία που χρησιμοποιούνται για την αποθήκευση των δικαιωμάτων σ' αυτούς τους πίνακες. Αυτή η μέθοδος δουλεύει εξίσου καλά, αλλά είναι πολυπλοκότερη από την εντολή GRANT. Η σύνταξη της εντολής GRANT είναι: GRANT privileges ON databasenarae. tablename TO usernameghost IDENTI- FIED BY "password"; Τα δικαιώματα που μπορείτε να παραχωρήσετε σ' έναν χρήστη με την εντολή GRANT είναι: ALL - παραχωρεί στον χρήστη όλα τα ακόλουθα δικαιώματα ALTER - Ο χρήστης μπορεί να τροποποιεί πίνακες, στήλες και ευρετήρια CREATE - Ο χρήστης μπορεί να δημιουργεί βάσεις δεδομένων και πίνακες DELETE - Ο χρήστης μπορεί να διαγράφει εγγραφές από πίνακες DROP - Ο χρήστης μπορεί να καταργεί (δηλαδή να διαγράφει) πίνακες και βάσεις δεδομένων FILE - Ο χρήστης μπορεί να διαβάζει και να γράφει αρχεία χρησιμοποιείται για την εισαγωγή δεδομένων από άλλες πηγές INDEX - Ο χρήστης μπορεί να προσθέτει ή να διαγράφει ευρετήρια INSERT - Ο χρήστης μπορεί να προσθέτει εγγραφές σε πίνακες PROCESS - Ο χρήστης μπορεί να εμφανίζει και να τερματίζει την λειτουργία διεργασιών συστήματος το δικαίωμα αυτό θα πρέπει να παραχωρείται μόνο στους "έμπιστους" χρήστες REFERENCES - Επί του παρόντος δεν χρησιμοποιείται από την MySQL, αλλά υπάρχει μία στήλη για το δικαίωμα REFERENCES στον πίνακα user RELOAD - Ο χρήστης μπορεί να εισάγει εντολείς FLUSH το δικαίωμα αυτό 13
θα πρέπει να παραχωρείται μόνο στους "έμπιστους" χρήστες SELECT - Ο χρήστης μπορεί να επιλέγει εγγραφές από πίνακες SHUTDOWN - Ο χρήστης μπορεί να τερματίζει την λειτουργία του MySQL server το δικαίωμα αυτό θα πρέπει να παραχωρείται μόνο στους "έμπιστους" χρήστες UPDATE - Ο χρήστης μπορεί να ενημερώνει (δηλαδή να τροποποιεί") εγγραφές σε πίνακες USAGE - Ο χρήστης μπορεί να συνδεθεί στον MySQL server, αλλά χωρίς προνόμια Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να δημιουργήσετε έναν χρήστη με όνομα John και κωδικό πρόσβασης 99hjc, να του παραχωρήσετε τα δικαιώματα SELECT και INSERT για όλους τους πίνακες της βάσης δεδομένων mydb και να του δώσετε την δυνατότητα να συνδέεται από οποιονδήποτε υπολογιστή: GRANT SELECT, INSERT ON mydb. * TO john@"%" IDENTIFIED BY "99hjc"; Στην παραπάνω εντολή, παρατηρήστε την χρήση δυο χαρακτήρων μπαλαντέρ: * και %. Αυτοί οι χαρακτήρες χρησιμοποιούνται σαν μπαλαντέρ για την αντικατάσταση και αναπαράσταση άλλων τιμών. Σ' αυτό το παράδειγμα, ο χαρακτήρας * αντιπροσωπεύει όλους τους πίνακες της βάσης δεδομένων, ενώ ο χαρακτήρας % αντιπροσωπεύει όλους τους υπολογιστές που υπάρχουν στον γνωστό κόσμο - μία ομολογουμένως τεράστια λίστα. Ακολουθεί ένα ακόμη παράδειγμα προσθήκης ενός χρήστη με την εντολή GRANT αυτή την φορά προσθέτουμε έναν χρήστη με όνομα jane και κωδικό πρόσβασης 45sdg11, και του παραχωρούμε όλα (ALL) τα δικαιώματα για έναν πίνακα με όνομα employees της βάσης δεδομένων mycompany. Αυτός ο νέος χρήστης θα μπορεί να συνδέεται μόνο από ένα συγκεκριμένο σύστημα (host): Μία σημείωση σχετική με την προσθήκη χρηστών: Θα πρέπει πάντα να χρησιμοποιείτε έναν κωδικό πρόσβασης και να διασφαλίζετε ότι ο κωδικός πρόσβασης είναι αποτελεσματικός! Η MySQL σας επιτρέπει να δημιουργείτε χρήστες χωρίς κωδικό πρόσβασης, αλλά αυτή η προσέγγιση δίνει την δυνατότητα σε οποιοδήποτε άτομο με κακές προθέσεις να μαντέψει το όνομα ενός χρήστη της βάσης δεδομένων σας, και κατά συνέπεια να αποκτήσει τα 14
δικαιώματα που του έχετε παραχωρήσει! Εάν χρησιμοποιείτε την εντολή GRANT για την προσθήκη χρηστών, οι αλλαγές που κάνετε τίθενται αμέσως σε ισχύ. Για να διασφαλίσετε απόλυτα αυτό το γεγονός μπορείτε να εισάγετε την εντολή FLUSH PRIVILEGES, η οποία ξαναφορτώνει τους πίνακες δικαιωμάτων. Ανάκληση Δικαιωμάτων Η ανάκληση δικαιωμάτων είναι τόσο απλή, όσο και η παραχώρηση τους, αλλά αντί της εντολής GRANT θα χρησιμοποιείτε την εντολή REVOKE. Η σύνταξη της εντολής REVOKE είναι: REVOKE privileges ON databasename. tablename FROM username@hostname; Κατά τον ίδιο τρόπο που μπορείτε να παραχωρείτε δικαιώματα χρησιμοποιώντας εντολές INSERT, μπορείτε επίσης να ανακαλείτε δικαιώματα χρησιμοποιώντας εντολές DELETE για την διαγραφή εγγραφών από πίνακες της βάσης δεδομένων mysql. Ωστόσο, για να γίνει αυτό θα πρέπει να γνωρίζετε ποια πεδία πρέπει να διαγράψετε και από ποιους πίνακες η χρήση της εντολής REVOKE είναι ένας πολύ πιο εύκολος και πολύ πιο ασφαλής τρόπος. Για να ανακαλέσετε το δικαίωμα του χρήστη John να εισάγει (INSERT) εγγραφές στην βάση δεδομένων mycompany, θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη εντολή REVOKE: REVOKE INSERT ON mydb. * FROM john@"%"; Οι αλλαγές που κάνετε στα δεδομένα των πινάκων με τις καταχωρίσεις των δικαιωμάτων τίθενται αυτόματα σε ισχύ, αλλά για να ενημερωθεί ο server σας σχετικά με τις αλλαγές θα πρέπει να εισάγετε την εντολή FLUSH PRIVILEGES στο MySQL Monitor. Apache Εγκατάσταση του Apache στα Windows To Apache 2.0 τρέχει στις περισσότερες πλατφόρμες Windows και παρέχει αυξημένη απόδοση και σταθερότητα έναντι της έκδοσης 1.3 για Windows. Μπορείτε 15
να μεταγλωττίσετε τα δυαδικά εκτελέσιμα από τον πηγαίο κώδικα του Apache, αλλά επειδή οι περισσότεροι χρήστες των Windows δεν διαθέτουν τους κατάλληλους μεταγλωττιστές, σ' αυτή την ενότητα θα παρουσιάσουμε την διαδικασία εγκατάστασης των δυαδικών αρχείων. Πριν εγκαταστήσετε το Apache θα πρέπει να διασφαλίσετε ότι δεν τρέχετε έναν Web server στο σύστημα σας (π.χ. μία προηγούμενη έκδοση του Apache, τον Microsoft Internet Information Server, ή τον Microsoft Personal Web Server). Καλό θα είναι να καταργήσετε την εγκατάσταση των υπαρχόντων servers, ή να τους απενεργοποιήσετε με οποιονδήποτε άλλο τρόπο. Μπορείτε να τρέχετε πολλαπλούς Web servers, αλλά σε διαφορετικούς συνδυασμούς διευθύνσεων και θυρών. Πριν μεταφέρετε το πρόγραμμα εγκατάστασης στον υπολογιστή σας, και ενώ βρίσκεστε στην σχετική ιστοσελίδα (http://httpd.apache.org/download.cgi), αφιερώστε ένα λεπτό -ένα πολύ σημαντικό λεπτό - για να αναζητήσετε την δήλωση που αναφέρει ότι εάν μεταφέρετε τη διανομή για Win32, θα πρέπει να διαβάσετε αυτές τις σημαντικές σημειώσεις. Η διεύθυνση URL που θα σας μεταφέρει απευθείας σ' αυτές τις σημειώσεις είναι http://www.apache.org/distyhttpd/binaries/win32/readme.html. To Apache Software Foundation διατηρεί αυτή την ιστοσελίδα σαν βοήθημα προς όλους τους χρήστες που θέλουν να τρέχουν μία έκδοση του Apache server. Σ' αυτή την ιστοσελίδα δα υπάρχουν σημειώσεις για σχεδόν κάθε έκδοση των Windows που χρησιμοποιείται σήμερα είναι προς το συμφέρον σας να διαβάσετε τις πληροφορίες που περιέχει. Σας εγγυώμαι ότι εάν τρέχετε το Apache είτε σ' ένα περιβάλλον παραγωγής, είτε σ' ένα περιβάλλον ανάπτυξης, θα βρείτε σίγουρα χρήσιμες πληροφορίες σ' αυτή την σελίδα. Όταν είστε έτοιμοι να ξεκινήσετε την εγκατάσταση, αναζητήστε την σύνδεση που φέρει τον τίτλο Win32 Binary (MSI Installer). Αφού μεταφέρετε το αρχείο εγκατάστασης, κάντε διπλό κλικ πάνω του για να ξεκινήσετε τον οδηγό εγκατάστασης (Installation Wizard). Θα εμφανιστεί μία οθόνη καλωσορίσματος. Κάντε κλικ στο Next για να συνεχίσετε με την διαδικασία εγκατάστασης θα σας ζητηθεί να αποδεχτείτε την συμφωνία άδειας χρήσης του Apache. Ουσιαστικά, η συμφωνία άδειας χρήσης αναφέρει ότι μπορείτε να κάνετε ό,τι θέλετε με το λογισμικό - συμπεριλαμβανομένων και δικών σας προσαρμογών - αλλά δεν μπορείτε να ισχυριστείτε ότι το γράψατε εσείς. Σας προτείνω να διαβάσετε την άδεια χρήσης και να κατανοήσετε πλήρως τους όρους της. Αφού αποδεχθείτε τους όρους της συμφωνίας άδειας χρήσης, ο οδηγός σας 16
παρουσιάζει μία σύντομη εισαγωγή στο Apache. Στην συνέχεια σας ζητά να παρέχετε βασικές πληροφορίες για τον υπολογιστή σας, όπως βλέπετε στην Εικόνα 2.2. Σ' αυτές περιλαμβάνονται η πλήρης διεύθυνση δικτύου για τον server - το όνομα domain και όνομα του server (π.χ. mycomputer.mydomain.com) - καθώς και η διεύθυνση ηλεκτρονικού ταχυδρομείου του επόπτη (administrator) του server. To όνομα του server θα είναι το όνομα που θα χρησιμοποιούν οι client υπολογιστές για να προσπελάσουν τον server σας, και η διεύθυνση ηλεκτρονικού ταχυδρομείου του επόπτη θα προστίθεται στα μηνύματα σφάλματος έτσι ώστε οι επισκέπτες να ξέρουν πώς να επικοινωνήσουν μαζί σας όταν προκύπτουν προβλήματα. Στο επόμενο βήμα μπορείτε να επιλέξετε εάν θα εγκαταστήσετε το Apache σαν μία υπηρεσία (service) στο σύστημα, ή εάν θα απαιτείται η "χειροκίνητη" εκκίνηση του. Η εγκατάσταση του Apache σαν μία υπηρεσία έχει σαν αποτέλεσμα ο server να εκκινεί κάθε φορά που εκκινούν τα Windows, και μπορείτε να τον ελέγχετε με τα γνωστά εργαλεία διαχείρισης υπηρεσιών που παρέχουν τα ίδια τα Windows. Επιλέξτε αυτή την μέθοδο εάν σκοπεύετε να τρέχετε το Apache σε ένα περιβάλλον παραγωγής, ή σε οποιοδήποτε άλλο περιβάλλον το οποίο απαιτεί την συνεχή λειτουργία του server. Εάν εγκαταστήσετε το Apache για τον τρέχοντα χρήστη θα πρέπει να ακολουθείτε την "χειροκίνητη" διαδικασία εκκίνησης και να ορίζετε σαν προεπιλεγμένη θύρα (default port) την οποία ακροάζεται το Apache για αιτήσεις, την 8080. Επιλέξτε αυτή την μέθοδο εάν χρησιμοποιείτε το Apache για σκοπούς δοκιμών, ή εάν έχετε ήδη έναν Web server ο οποίος τρέχει στην θύρα 80. Η επόμενη οθόνη σας επιτρέπει να επιλέξετε τον τύπο της εγκατάστασης. Με την τυπική (Typical) εγκατάσταση εγκαθίστανται τα δυαδικά αρχεία του Apache και τα αρχεία πληροφοριών τεκμηρίωσης, αλλά δεν εγκαθίστανται τα header αρχεία και οι βιβλιοθήκες. Αυτή είναι η προτιμώμενη επιλογή, εκτός κι αν σκοπεύετε να μεταγλωττίσετε δικές σας ρουτίνες Η εξειδικευμένη (Custom) εγκατάσταση σας επιτρέπει να επιλέξετε εάν θα εγκαταστήσετε τα header αρχεία ή τα αρχεία πληροφοριών τεκμηρίωσης. Αφού επιλέξετε τον κατάλογο εγκατάστασης (ο προτεινόμενος κατάλογος είναι ο c:\program Files\Apache Group), το πρόγραμμα θα προχωρήσει στην καθαυτό διαδικασία εγκατάστασης των αρχείων Η Δομή του Αρχείου Διαμόρφωσης του Apache 17
To Apache διατηρεί όλες τις παραμέτρους διαμόρφωσης του σε αρχεία απλού κειμένου. Το κύριο αρχείο παραμέτρων διαμόρφωσης ονομάζεται httpd.conf. To αρχείο αυτό περιέχει ντιρεκτίβες (directives) και περιέκτες (containers), οι οποίοι σας δίνουν την δυνατότητα να προσαρμόσετε την εγκατάσταση του Apache ανάλογα με τις ανάγκες σας. Οι ντιρεκτίβες διαμορφώνουν συγκεκριμένες ρυθμίσεις του Apache, όπως οι παράμετροι για τον έλεγχο πρόσβασης, την απόδοση και την λειτουργία στο δίκτυο. Οι περιέκτες καθορίζουν το πλαίσιο στο οποίο αναφέρονται αυτές οι ρυθμίσεις. Για παράδειγμα, οι παράμετροι εξουσιοδότησης (authorization) μπορούν να αναφέρονται στον server σαν σύνολο, σε έναν κατάλογο, ή σε ένα μεμονωμένο αρχείο. Ντιρεκτίβες Η σύνταξη μιας ντιρεκτίβας του Apache υπόκειται στους ακόλουθους κανόνες: Τα ορίσματα της ντιρεκτίβας ακολουθούν μετά από το όνομα της. Τα ορίσματα της ντιρεκτίβας χωρίζονται μεταξύ τους με κενά διαστήματα. Ο αριθμός και ο τύπος των ορισμάτων διαφέρουν από ντιρεκτίβα σε ντιρεκτίβα ορισμένες ντιρεκτίβες δεν έχουν ορίσματα. Αρχεία Διαμόρφωσης ανά Κατάλογο To Apache χρησιμοποιεί αρχεία διαμόρφωσης ανά κατάλογο (per directory configuration files) με τα οποία δίνει στις ντιρεκτίβες την δυνατότητα να υπάρχουν έξω από το κύριο αρχείο διαμόρφωσης httpd.conf. Αυτά τα ειδικά αρχεία μπορούν να τοποθετούνται στο επίπεδο του συστήματος αρχείων. To Apache επεξεργάζεται και εκτελεί το περιεχόμενο αυτών των αρχείων, εάν ζητηθεί ένα έγγραφο από έναν κατάλογο στον οποίο περιέχεται ένα τέτοιο αρχείο ή οποιονδήποτε από τους υποκαταλόγους του. Εάν υπάρχουν αρχεία διαμόρφωσης σε περισσότερους από έναν καταλόγους της διαδρομής, το περιεχόμενο τους συγχωνεύεται και εφαρμόζεται. Για παράδειγμα, εάν το Apache λάβει μία αίτηση για το αρχείο /usr/local/apache2/htdocs/index.html, θα ψάξει για αρχεία διαμόρφωσης στους καταλόγους/, /usr, /usr/local, /usr/local/apache2 και /usr/local/apache2/htdocs, μ' αυτή την σειρά. Η ενεργοποίηση των αρχείων διαμόρφωσης ανά κατάλογο έχει 18
αρνητική επίδραση στην απόδοση. To Apache είναι υποχρεωμένο να εκτελεί "δαπανηρές" λειτουργίες αναζήτησης αυτών των αρχείων σε κάθε αίτηση που λαμβάνει, ακόμη κι αν δεν υπάρχουν. Εξ ορισμού, τα αρχεία διαμόρφωσης ανά κατάλογο φέρουν το όνομα.htaccess. Αυτό γίνεται για ιστορικούς λόγους τα αρχεία αυτά χρησιμοποιούνταν αρχικά για τον έλεγχο της πρόσβασης στους καταλόγους που περιείχαν HTML αρχεία. Η ντιρεκτίβα AccessFileName σας επιτρέπει να αλλάξετε.το όνομα των αρχείων διαμόρφωσης από.htaccess σε κάτι άλλο. Δέχεται μία λίστα ονομάτων αρχείων, τα οποία θα χρησιμοποιείτο Apache όταν αναζητά αρχεία διαμόρφωσης σε συγκεκριμένους καταλόγους. Για να εξακριβώσετε εάν μία ντιρεκτίβα μπορεί να χρησιμοποιηθεί σε αρχεία διαμόρφωσης ανά κατάλογο, ελέγξτε εάν το πεδίο Context: στον ορισμό της ντιρεκτίβας περιέχει το.htaccess. Οι ντιρεκτίβες του Apache κατηγοριοποιούνται σε διαφορετικές ομάδες, οι οποίες καθορίζονται στο πεδίο Override. Πιθανές τιμές γι' αυτό το πεδίο είναι: AuthConfig - Ντιρεκτίβες εξουσιοδότησης (authorization) Filelnfo - Ντιρεκτίβες που ελέγχουν τους τύπους εγγράφων Indexes - Ντιρεκτίβες που ελέγχουν τα ευρετήρια καταλόγων Limit - Ντιρεκτίβες που ελέγχουν την πρόσβαση σε υπολογιστές Options - Ντιρεκτίβες που ελέγχουν συγκεκριμένα χαρακτηριστικά των καταλόγων Μπορείτε να καθορίσετε ποιες από τις παραπάνω ομάδες ντιρεκτίβων μπορούν να εμφανίζονται σε αρχεία διαμόρφωσης ανά κατάλογο χρησιμοποιώντας την ντιρεκτίβα AllowOverride. Δύο επιπλέον ορίσματα της ντιρεκτίβας AllowOverride είναι τα All και None. To All σημαίνει ότι όλες οι ντιρεκτίβες, απ' όλες τις ομάδες, μπορούν να εμφανίζονται στο αρχείο διαμόρφωσης. To None ουσιαστικά απενεργοποιεί τα αρχεία διαμόρφωσης ανά κατάλογο για έναν συγκεκριμένο κατάλογο και οποιονδήποτε από τους υποκαταλόγους του. Εδώ παρουσιάζεται το τρόπος με τον οποίο μπορείτε να απενεργοποιήσετε τα αρχεία παραμέτρων διαμόρφωσης ανά κατάλογο για τον server. H κατάσταση αυτή βελτιώνει την απόδοση και είναι η προκαθορισμένη διαμόρφωση του Αpache. Απενεργοποίηση των Αρχείων Διαμόρφωσης ανά Κατάλογο 1. <directory > Allow Override none <directory /> 19
Τα Αρχεία Καταγραφής του Apache Εξ ορισμού, το Apache περιλαμβάνει δύο αρχεία καταγραφής (log files). To αρχείο accessjog χρησιμοποιείται για την παρακολούθηση των αιτήσεων που στέλνουν τα client συστήματα στον server. To αρχείο error_log χρησιμοποιείται για την καταγραφή σημαντικών συμβάντων, όπως π.χ, τα σφάλματα που συμβαίνουν ή η επανεκκίνηση του server. Τα αρχεία αυτά δεν υπάρχουν μέχρι να τρέξετε το Apache για πρώτη φορά. Σε συστήματα με τα Windows τα ονόματα αυτών των αρχείων είναι access.log και error.log. Το Αρχείο access_log Όταν ένα client σύστημα ζητά ένα αρχείο από τον server, TO Apache καταγράφει αρκετά στοιχεία σχετιζόμενα με την συγκεκριμένη αίτηση., συμπεριλαμβανομένης της διεύθυνσης IP TOD client συστήματος, του εγγράφου που ζητήθηκε, του κωδικού κατάστασης HTTP και της τρέχουσας ώρας. Το Αρχείο error_log To αρχείο αυτό περιλαμβάνει τα μηνύματα σφάλματος, τα μηνύματα που εμφανίζονται κατά την εκκίνηση του server, και οποιαδήποτε άλλα σημαντικά συμβάντα λαμβάνουν χώρα κατά την διάρκεια ζωής του server. To αρχείο αυτό είναι το πρώτο σημείο στο οποίο θα πρέπει να ανατρέχετε όταν αντιμετωπίζετε κάποιο πρόβλημα με το Apache. Παραδείγματα Καταχωρίσεων του Αρχείου error_log 1; [Sun Sep 01 09:42:59 2003] [notice] Parent: Created child process -Ξ245 2; [sun Sep 01 09: 42: 59 20031 [notice] Child -2242: Child process is running 3: [Sun Sep 01 09:42:59 2003] (notice! Child -2242: Acquired the start mutex. 4: [Sun Sep 01 09:42:59 2003J [notice] Child -2242: Starting 250 worker threads. Επιπλέον Αρχεία Το αρχείο httpd.pid περιέχει τον κωδικό διεργασίας (process ID, pid) του Apache server. Μπορείτε να χρησιμοποιείτε αυτό τον αριθμό για να στέλνετε μόνοι σας "σήματα" στο Apache, όπως θα περιγράψουμε παρακάτω. 20
Το Δυαδικό Αρχείο για τον Apache Server Το εκτελέσιμο αρχείο για τον Apache server ονομάζεται apache.exe στα Windows. Δέχεται αρκετές επιλογές στην γραμμή εντολής, or οποίες περιγράφονται στον πίνακα 1.2. Μπορείτε να εμφανίσετε μία πλήρη λίστα των υποστηριζόμενων επίλογων εισάγοντας την εντολή apache.exe -b στα Windows. Οι Επιλογές του httpd Επιλογή Σημασία -ο Σας επιτρέπει να περάσετε μία παράμετρο η οποία μπορεί να χρησιμοποιηθεί για επεξεργασία από την ενότητα <ifdefine> - l Εμφανίζει μία λίστα των μεταγλωττισμένων ρουτινών -ν Εμφανίζει τον αριθμό έκδοσης και τον χρόνο μεταγλώττισης του server - f Σας επιτρέπει να περάσετε σαν παράμετρο την θέση του αρχείου httpd.conf, εάν είναι διαφορετική από την θέση που ίσχυε κατά τον χρόνο μεταγλώττισης Πίνακας 1.2 Στα Windows, μπορείτε να στέλνετε σήματα στο Apache χρησιμοποιώντας το εκτελέσιμο apache.exe: apache.exe -k restart - Επανεκκίνηση του Apache apache.exe -k graceful - Επανεκκίνηση χωρίς αρνητικές επιπτώσεις apache.exe -k stop - Τερματισμός της λειτουργίας του Apache Μπορείτε να χρησιμοποιείτε τις συντομεύσεις που δημιούργησε γι' αυτές τις εντολές στο μενού Start ο οδηγός εγκατάστασης του Apache. Εάν εγκαταστήσατε το Apache σαν μία υπηρεσία, μπορείτε να εκκινείτε ή να τερματίζετε την λειτουργία του χρησιμοποιώντας τα εργαλεία που διαθέτουν τα ίδια τα Windows: από το Control Panel επιλέξτε Administrative Tasks και κατόπιν κάντε κλικ στο εικονίδιο Services. 21
1.3. PHP Το Αρχείο php.ini Αφού μεταγλωττίσετε ή εγκαταστήσετε την ΡΗΡ, μπορείτε να αλλάξετε την συμπεριφορά της μέσω του αρχείου php.ini. Στα Windows το αρχείο αυτό θα πρέπει να βρίσκεται στον κατάλογο των Windows. Οι ντιρεκτίβες που περιλαμβάνει το αρχείο php.ini έχουν δύο μορφές: τιμές (values) και σημάνσεις (flags). Οι ντιρεκτίβες τιμών έχουν την εξής μορφή: όνομα ντιρεκτίβας = τιμή. Οι πιθανές τιμές διαφέρουν από ντιρεκτίβα σε ντιρεκτίβα. Οι ντιρεκτίβες σημάνσεων έχουν την εξής μορφή: όνομα ντιρεκτίβας = θετικός ή αρνητικός όρος. Στους θετικούς όρους περιλαμβάνονται οι 1, On, Yes και True. Στους αρνητικούς όρους περιλαμβάνονται οι Ο, Off, No και False. Τα κενά διαστήματα αγνοούνται. Μπορείτε να αλλάξετε τις ρυθμίσεις του αρχείου php.ini ανά πάσα στιγμή, αλλά αφού το κάνετε θα πρέπει να επανεκκινήσετε τον server για να τεθούν σε ισχύ οι αλλαγές σας. Εάν έχετε λίγο χρόνο, σας προτείνω να διαβάσετε ολόκληρο το αρχείο php.ini για να δείτε ποιες ρυθμίσεις μπορείτε να διαμορφώσετε μ' αυτό το αρχείο. Έλεγχος της Εγκατάστασης Ο απλούστερος τρόπος για να ελέγξετε την εγκατάσταση της ΡΗΡ είναι η δημιουργία ενός μικρού δοκιμαστικού script το οποίο θα χρησιμοποιεί τη ν συνάρτηση phpinfof). Η συνάρτηση αυτή παράγει μία μακροσκελή λίστα πληροφοριών διαμόρφωσης. Ανοίξτε οποιονδήποτε συντάκτη κειμένου και πληκτρολογήστε την ακόλουθη γραμμή: <? php phpinfo();?> Αποθηκεύστε αυτό το αρχείο με όνομα phpinfo.php και τοποθετήστε το στον αρχικό κατάλογο εγγράφων (document root] του Web server σας - τον υποκατάλογο htdocs του καταλόγου εγκατάστασης του Apache. Βοήθεια για την Εγκατάσταση Στο Internet θα βρίσκετε πάντα βοήθεια, κυρίως για προβλήματα που σχετίζονται με το "ανοιχτό" λογισμικό (το οποίο διανέμεται σε μορφή πηγαίου κώδικα). Ωστόσο, πριν αρχίσετε να στέλνετε μηνύματα ζητώντας βοήθεια, 22
σκεφτείτε το για λίγο. Ανεξάρτητα από το πόσο δύσκολο μπορεί να φαίνεται το πρόβλημα που αντιμετωπίζετε, κατά πάσα πιθανότητα δεν είστε οι μόνοι. Είναι πολύ πιθανό κάποιος να έχει ήδη βρει την απάντηση στο πρόβλημα σας. Όταν φτάνετε σε αδιέξοδο, η πρώτη πηγή πληροφοριών στην οποία θα πρέπει να ανατρέξετε είναι το "επίσημο" site για την ΡΗΡ στην διεύθυνση http://www.php.net/ (ιδιαίτερου ενδιαφέροντος είναι το εγχειρίδιο στην διεύθυνση http://www.php.net/manual/. Εάν δεν καταφέρετε να βρείτε την απάντηση που χρειάζεστε, μην ξεχνάτε ότι το επίσημο site της ΡΗΡ σας παρέχει δυνατότητες διεξαγωγής αναζητήσεων. Η συμβουλή που αναζητάτε μπορεί να κρύβεται πίσω από ένα δελτίο τύπου, ή στις απαντήσεις ενός αρχείου FAQ (Frequently Asked Questions). Μπορείτε επίσης να ψάξετε στα αρχεία της ταχυδρομικής λίστας στην διεύθυνση http://www.php.net/search.php. Αυτά τα αρχεία αποτελούν έναν τεράστιο πόρο πληροφοριών και περιλαμβάνουν συνεισφορές από ορισμένα από τα μεγαλύτερα μυαλά που υπάρχουν στην κοινότητα της ΡΗΡ. Αφιερώστε λίγο χρόνο δοκιμάζοντας κατάλληλους συνδυασμούς λέξεων-κλειδιών. Εάν είστε πεπεισμένοι ότι δεν υπάρχει λύση στο πρόβλημα σας, μπορείτε να προσφέρετε μία καλή υπηρεσία στην κοινότητα της ΡΗΡ δημοσιοποιώντας το. Κατ' αρχήν μπορείτε να το κοινοποιήσετε στις ταχυδρομικές λίστες που ασχολούνται με την ΡΗΡ στην διεύθυνση http://www.php.net/support.php. Αν και ο όγκος των μηνυμάτων που διακινούνται σ' αυτές τις λίστες είναι πολύ μεγάλος, μπορείτε να βρείτε πολλές χρήσιμες πληροφορίες. Αν σας ενδιαφέρει να ασχοληθείτε σοβαρά με την ΡΗΡ, σας συνιστώ να γραφτείτε συνδρομητές τουλάχιστον σε μία από τις λίστες σύνοψης μηνυμάτων (digest list). Αφού γραφτείτε συνδρομητές στην λίστα που αντιστοιχεί στα ενδιαφέροντα σας, μπορείτε να δημοσιεύσετε ένα άρθρο για το πρόβλημα σας. Όταν δημοσιεύετε μία ερώτηση, καλή ιδέα είναι να περιλαμβάνετε όσο το δυνατόν περισσότερες πληροφορίες (χωρίς φυσικά να καταλήξετε σε ένα μυθιστόρημα). Τα ακόλουθα στοιχεία πληροφορίας είναι τα πλέον απαραίτητα: Το λειτουργικό σας σύοτημα Η έκδοση της ΡΗΡ που τρέχετε ή θέλετε να εγκαταστήσετε Oι επιλογές διαμόρφωσης που έχετε καθορίσει Τα αποτελέσματα των εντολών configure ή make που προηγήθηκαν μιας αποτυχημένης εγκατάσταση <j 23
Ένα πλήρες (μέσα σε λογικά όρια) παράδειγμα του κώδικα που σας προκαλεί προβλήματα Γιατί όλα αυτά τα μέτρα απλά και μόνο για την δημοσίευση μιας ερώτησης σε μια ταχυδρομική λίστα; Κατ' αρχήν, η βελτίωση των ικανοτήτων σας στον τομέα της έρευνας θα αποδειχθεί' ιδιαίτερα χρήσιμη για εσάς μακροπρόθεσμα, και σε πολλούς τομείς. Γενικά, ένας καλός ερευνητής μπορεί να λύνει ένα πρόβλημα γρήγορα και αποτελεσματικά. Εάν δημοσιεύσετε μία αφελή ερώτηση σε μία λίστα υψηλού επιπέδου, το αποτέλεσμα θα είναι συνήθως ένα-δύο μηνύματα τα οποία θα σας παραπέμπουν σε αρχεία της λίστας - στα ίδια αρχεία από τα οποία θα έπρεπε να έχετε ξεκινήσει την αναζήτηση σας για απαντήσεις. Κατά δεύτερον, να θυμάστε ότι οι ταχυδρομικές λίστες δεν είναι το online ισοδύναμο των τμημάτων τεχνικής υποστήριξης των εταιρειών. Κανείς δεν πληρώνεται για να απαντά στις ερωτήσεις σας. Παρ' όλα αυτά όμως, οι ταχυδρομικές λίστες σας παρέχουν πρόσβαση σε μία εντυπωσιακή δεξαμενή γνώσεων και ταλέντων, μη-εξαιρουμένων ορισμένων από τους δημιουργούς της ΡΗΡ. Τα καλά ερωτήματα και οι απαντήσεις που δίνονται σ' αυτά αρχειοθετούνται, έτσι ώστε να υπάρχει μία μόνιμη καταγραφή τους για την βοήθεια και άλλων προγραμματιστών. Το να απευθύνετε μία ερώτηση η οποία έχει απαντηθεί ήδη αρκετές φορές δεν κάνει τίποτα περισσότερο από το να αυξάνει τον "θόρυβο" μιας ταχυδρομικής λίστας. Παρ' όλο το κήρυγμα που μόλις διαβάσατε, μην φοβάστε να δημοσιεύσετε ένα πρόβλημα σας σε μία ταχυδρομική λίστα. Οι προγραμματιστές που ασχολούνται με την ΡΗΡ είναι πολιτισμένοι άνθρωποι, πρόθυμοι να προσφέρουν την βοήθεια τους- κοινοποιώντας ένα πρόβλημα και ζητώντας την συνδρομή της κοινότητας της ΡΗΡ για την λύση του, θα βοηθήσετε επίσης και άλλους να λύσουν το ίδιο πρόβλημα. 24
2. Κεφάλαιο Η βάση δεδομένων Πίνακες Όνομα πεδίου Τύπος πεδίου Default Extra passwords am varchar (15) passwords password varchar (15) profiles am varchar (15) profiles fname varchar (255) profiles Iname enum profiles phone varchar (255) profiles Year of birth Year(4) profiles Mail varchar (255) profiles Personal site varchar (255) profiles Coyntry varchar (255) Ελλάδα profiles City varchar (255) profiles Address varchar (255) profiles Postal_code varchar (255) profiles firm varchar (255) profiles Firm site varchar (255) profiles flag enum( ναι, όχι ) profiles Image_path varchar (255) profiles Thump_path varchar (255) profiles Cv_path varchar (255) profiles Other_lan varchar (255) profiles Other_sub_skills varchar (255) profiles Diploma project varchar (255) profiles master varchar (255) profiles dr varchar (255) semester Semester_id int(11) auto semester semester Enum( εαρινό, χειμεριν ο ) Εαρινό _increment 25
semester Year Year(4) skills Skill_id Int(2) skills description varchar (255) auto _increment Student_semester am varchar (15) Student_semester Semester_id Int(11) Student_sub_skill am varchar (15) Student_sub_skill Sub_skill_id int(4) sub_skill Sub_skill_id int(4) auto _increment sub_skill skill_id int(2) sub_skill description varchar (255) 2.2 Κανονικοποίηση 3 βαθμού Η κανονικοποίηση 6 είναι απλώς ένα σύνολο κανόνων οι οποίοι έχουν τελικά σαν στόχο να κάνουν ευκολότερη τη ζωή των διαχειριστών βάσεων δεδομένων.είναι η τέχνη της οργάνωσης μιας βάσης δεδομένων με τέτοιο τρόπο, έτσι ώστε να υπάρχουν οι κατάλληλες σχέσεις μεταξύ των πινάκων και να παρέχεται ευελιξία για τη μελλοντική ανάπτυξη της βάσης δεδομένων. Οι ομάδες ή κανόνων που χρησιμοποιεί η κανονικοποίηση αποκαλούνται κανονικές μορφές 7. Εάν ακολουθήσετε το πρώτο σύνολο κανόνων κατά τη σχεδίαση της βάσης δεδομένων, αυτή θεωρείται ότι φτάνει στην πρώτη κανονική μορφή. Εάν ακολουθήσετε τα τρία πρώτα σύνολα κανόνων της κανονικοποίησης,η βάση δεδομένων σας λέγεται ότι βρίσκεται στην τρίτη κανονική μορφή. Ο κανόνας που διέπει την τρίτη κανονική μορφή είναι: Κανένα χαρακτηριστικό δεν μπορεί να εξαρτάται από άλλα χαρακτηριστικά τα οποία δεν ανήκουν στο κλειδί. Με απλά λόγια, ο κανόνας αυτός σημαίνει ότι θα πρέπει να εξετάσετε τους πίνακες σας και να εξακριβώσετε εάν περιέχουν πεδία τα οποία δεν εξαρτώνται από το κλειδί, και τα οποία θα μπορούσαν να μεταφερθούν σε 6 normalization 7 normal forms 26
ένα ξεχωριστό πίνακα. Σκεφτόμενοι την εξάλειψη των επαναλαμβανόμενων δεδομένων θα βρείτε αμέσως την απάντηση. Ωστόσο το πεδίο Course Instructor δεν χρησιμοποιείται σαν κλειδί.διαχωρίζοντας αυτή την πληροφορία από τον πίνακα courses και τοποθετώντας τη σε ένα ξεχωριστό πίνακα για λόγους αποτελεσματικότητας και ευκολίας συντήρησης, η βάση δεδομένων σας είναι πλέον στην τρίτη κανονική μορφή. Η Τρίτη κανονική μορφή είναι συνήθως επαρκής για την εξάλειψη των επαναλαμβανόμενων δεδομένων και παρέχει στη βάση δεδομένων ευελιξία και δυνατότητα ανάπτυξης σε μεγαλύτερη κλίμακα. 27
2.3 Διάγραμμα οντοτήτων συσχετίσεων 28
3. Κεφάλαιο Η εφαρμογή 29
3.1Ανθρώπινοι πόροι Η κύρια χρήση της εφαρμογής είναι η εύρεση ανθρωπίνων πόρων για την στελέχωση των διαφόρων επιχειρήσεων μέσα από το τμήμα διαχείρισης πληροφοριών του ΤΕΙ Καβάλας. Για να κατανοήσουμε όμως καλύτερα τα αποτελέσματα αυτής θα ήταν θεμιτή μια ευρύτερη ανάλυση της έννοιας ανθρώπινοι πόροι. Το περιεχόμενο της έννοιας «ανθρώπινοι πόροι» Το δυναμικό της κάθε επιχείρησης είναι οι άνθρωποι. Χωρίς τους ανθρώπους, οι επιχειρήσεις δεν μπορούν να υπάρξουν.. Το περιεχόμενο της έννοιας «ανθρώπινοι πόροι». Πάνω απ όλα, οι άνθρωποι στις επιχειρήσεις ορίζουν συνολικές στρατηγικές και στόχους, σχεδιάζουν συστήματα εργασίας, παράγουν αγαθά και υπηρεσίες, παρακολουθούν την ποιότητα, κατανέμουν τους χρηματοοικονομικούς πόρους και πωλούν τα προϊόντα και τις υπηρεσίες. Οι άνθρωποι, λοιπόν, γίνονται «ανθρώπινοι πόροι» ή, αυτό που οι οικονομολόγοι ονομάζουν ανθρώπινο κεφάλαιο λόγω του ρόλου που παίζουν στην επιχείρηση τους. Οι ρόλοι των εργαζομένων ορίζονται και περιγράφονται κατά τέτοιο τρόπο ώστε να μεγιστοποιείται η συνεισφορά ενός εκάστου εργαζομένου στην επίτευξη των στόχων της επιχείρησης. Σύμφωνα με τους όρους του μάνατζμεντ, ο όρος «ανθρώπινο κεφάλαιο» ή «ανθρώπινοι πόροι» αναφέρεται στα χαρακτηριστικά που φέρνουν οι άνθρωποι στο χώρο εργασίας τους ευφυΐα, ικανότητες, αφοσίωση, πείρα και δεξιότητες, και την ικανότητα για μάθηση. Αλλά η συνεισφορά αυτών των ανθρωπίνων πόρων στην επιχείρηση ποικίλλει και είναι απρόβλεπτη. Αυτή η απροσδιοριστία της συνεισφοράς ενός εργαζομένου στις δραστηριότητες της επιχείρησης καθιστά τους ανθρώπινους πόρους «το πιο απαιτητικό στοιχείο των εισροών της επιχείρησης ως προς τη διοίκηση και τη διαχείριση τους». Η φύση του ανθρώπινου παράγοντα αποτελεί τον κυριότερο οδηγό της έρευνας στον τομέα της εργασιακής συμπεριφοράς. Μία άποψη, με Βάση την ψυχολογία, υποστηρίζει ότι η συμπεριφορά των ανθρώπων στο χώρο εργασίας τους αποτελεί λειτουργία τεσσάρων, τουλάχιστον, μεταβλητών, οι οποίες είναι οι εξής: ικανότητα, κίνητρα, αντίληψη του ρόλου και συνθήκες 30
κατά περίσταση. Μια άλλη άποψη, με βάση την κοινωνιολογία, τονίζει την προβληματική φύση των εργασιακών σχέσεων - τα αλληλένδετα προβλήματα του «ελέγχου» και της «αφοσίωσης». Το ανθρώπινο κεφάλαιο διαφέρει από τα άλλα κεφάλαια, τόσο επειδή το κάθε άτομο είναι προικισμένο με διαφορετικές ιδιότητες (συμπεριλαμβανομένων των ικανοτήτων, δεξιοτήτων και γνώσεων), έχει διαφορετικό χαρακτήρα, φύλο, αντίληψη του ρόλου του και εμπειρία, αλλά και ως αποτέλεσμα των διαφορών στα κίνητρα και στην αφοσίωση του. Με άλλα λόγια, οι εργαζόμενοι διαφέρουν από τους άλλους πόρους λόγω της ικανότητας τους να αξιολογούν και να αμφισβητούν τις ενέργειες της διοίκησης και π αφοσίωση και συνεργασία τους είναι στοιχεία που κανείς πρέπει πάντα να κερδίζει. Επιπλέον, οι εργαζόμενοι έχουν τη δυνατότητα να σχηματίζουν ομάδες και συνδικάτα προκειμένου να υπερασπίζονται ή να προάγουν τα δικό, τους οικονομικά συμφέροντα Η έννοια, το περιεχόμενο και οι δραστηριότητες της διοίκησης των ανθρώπινων πόρων Ο ρόλος της ΔΑΠ στον στρατηγικό σχεδιασμό της διοίκησης μιας επιχείρησης είναι εξαιρετικά σημαντικός και βοηθά τις επιχειρήσεις να βρίσκουν τρόπους αποτελεσματικού ανταγωνισμού τόσο στο πλαίσιο της χώρας τους, όσο και διεθνώς. Η στρατηγική σημασία της αποτελεσματικής ΔΑΠ ενδέχεται να αναγνωριστεί περισσότερο στο μέλλον. Η βελτίωση της ανταγωνιστικής θέσεως μιας επιχείρησης είναι εφικτή μόνον όταν η ΔΑΠ είναι αποτελεσματική και εφόσον λαμβάνεται σοβαρά υπ' όψιν τόσο στο στρατηγικό προγραμματισμό, όσο και κατά την υλοποίηση των προγραμμάτων. Προγραμματισμός για το ανθρώπινο δυναμικό που θα απαιτηθεί στο μέλλον Μετά την εκτίμηση του υπάρχοντος δυναμικού, η διοίκηση προχωρεί στον προγραμματισμό για το ανθρώπινο δυναμικό που Θα χρειαστεί μελλοντικά. Οι μελλοντικές ανάγκες σε ανθρώπινο δυναμικό θα εξαρτηθούν από τη ζήτηση που έχουν τα προϊόντα ή οι υπηρεσίες μιας επιχείρησης και, κατ' επέκταση, από τους στόχους που έχει θέσει και τη στρατηγική που έχει χαράξει. Μόλις η 31