ΕΝΟΙΚΙΑΣΕΙΣ ΑΥΤΟΚΙΝΗΤΩΝ ΗΛΕΚΤΡΟΝΙΚΑ ΣΕ ΓΛΩΣΣΑ PHP & MySQL



Σχετικά έγγραφα
XAMPP Apache MySQL PHP javascript xampp

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

Οδηγός Εγκατάστασης

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 -

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

databases linux - terminal (linux / windows terminal)

Σχεδιασμός Βάσεων Δεδομένων

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

Πτυχιακή εργασία «Δανειστική βιβλιοθήκη»

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Εγχειρίδιο εγκατάστασης Megasoft 2009

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Οδηγίες Χρήσης EAP Controller Software

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

Epsilon Net PYLON Platform

Αναγγελία Εισιτηρίων - εξιτηρίων ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Αναγγελία Εισιτηρίων - Εξιτηρίων. Σελίδα 1

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Υποβολή Αναλώσιµων Υλικών ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Υποβολή Αναλώσιμων Υλικών. Σελίδα 1

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ. Αρ. Μητρώου: 06/3083

Υπηρεσία διαμοιρασμού αρχείων

Βασικές Οδηγίες Χρήσης της Εφαρμογής

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Vodafone Business Connect

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

Τμήμα Διοίκησης Επιχειρήσεων

Lexicon Software Pachutzu

Μια καλή επιλογή θα ήταν (χωρίζοντας τις λέξεις με παύλα -) ή

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

Επιμόρφωση Β Επίπεδου Κ.Σ.Ε.: 2 ο ΓΕΛ Ηρακλείου Ειδικότητα: ΠΕ04 Μάθημα: Εγκατάσταση Χρήση CMS Joomla

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

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

Ksyla.gr Σύντομη περιγραφή λειτουργίας

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Οδηγίες Χρήσης της MySQL

ΔΗΜΙΟΥΡΓΙΑ ON-LINE ΠΑΡΑΓΓΕΛΙΑΣ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ FARMAKONET

6 Εισαγωγή στο Wordpress 3.x

ΟΔΗΓΙΕΣ FTP ΣΥΝΔΕΣΗΣ

Εργαστήριο Βάσεων Δεδομένων

Οδηγός σύνδεσης στο δίκτυο του ΤΕΠΑΚ μέσα από την υπηρεσία απομακρυσμένης πρόσβασης VPN Τεχνολογικό Πανεπιστήμιο Κύπρου

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

10 η Διάλεξη Python Βάσεις δεδομένων στη python

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

ΕΓΚΑΤΑΣΤΑΣΗ ΣΥΝ ΕΣΗΣ DIAL-UP ΣΕ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINDOWS XP

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Connectoras. Οδηγίες Εγκατάστασης και χειρισμού STEEL.GR LTD. 1 Μαΐου 2014 Σύνταξη από: Admin

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

Paybybank RESTful API GUIDE

PayByBank RESTful API GUIDE

Ερωτήσεις και απαντήσεις για το e-tutoring 1

Εργαστήριο Βάσεων Δεδομένων

Αν παρ όλα αυτά αντιμετωπίζετε πρόβλημα, επικοινωνήστε με το Κέντρο Δικτύου της ΑΣΠΑΙΤΕ Τηλ , , ,

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

1 ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ - ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

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

Εγχειρίδιο εγκατάστασης και βασικής παραμετροποίησης σεναρίου εστίασης

ΟΓΗΓΙΕΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΜΗΤΡΩΟΥ ΑΠΟΒΛΗΤΩΝ. Draft version

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

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

ΕΓΧΕΙΡΙΔΙΟ ΥΠΟΒΟΛΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΠΡΟΤΑΣΗΣ ΓΙΑ ΤΗ ΔΡΑΣΗ ΠΡΑΣΙΝΗ ΕΠΙΧΕΙΡΗΣΗ 2010

Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας. Πανεπιστήμιο Αιγαίου

Εγκατάσταση. Εγκατάσταση του Wamp

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Σχεδίαση & Υλοποίηση πληροφοριακού συστήματος & εφαρμογής έξυπνου τηλεφώνου για τη διαχείριση παραγγελιών και μεταφορών.

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: Ανάπτυξη του Εκπαιδευτικού Ιστότοπου

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ. Τμήμα Στατιστικών & Οικονομετρικών Εφαρμογών DIREQT

Οδηγίες εγκατάστασης και λειτουργίας ERPeshop

Οδηγίες Πρόσβασης στο EndNote Web. Πρόσβαση στο EndNote Web

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

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

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΕΝΟΙΚΙΑΣΕΙΣ ΑΥΤΟΚΙΝΗΤΩΝ ΗΛΕΚΤΡΟΝΙΚΑ ΣΕ ΓΛΩΣΣΑ PHP & MySQL ΕΠΤΒΔΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : Θεόδωρος Αλεβίζος ΕΠΙΜΕΛΕΙΑ ΕΚΠΟΝΗΣΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Αθηνά Χάρλα Κωνσταντίνα Χαρίτου

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 - ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ...4 1.1 XAMPP...4 1.2 Λίγα λόγια για το κάθε υποσύστημα...4 1.3 Εγκατάσταση XAMPP v1.6.5...6 1.4 Δημιουργία Βάσης Δεδομένων από το XAMPP...10 1.5 Εγκατάσταση Editor UltraEdit v14a...13 ΚΕΦΑΛΑΙΟ 2 - ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ...17 2.1 Απαιτήσεις...17 2.2 Προδιαγραφές...26 2.3 Σχεδίαση Βάσης Δεδομένων...42 2.4 Δημιουργία Βάσης Δεδομένων db 1...50 2.5 Προβλήματα...77 ΚΕΦΑΛΑΙΟ 3 - ΑΝΑΛΥΣΗ ΕΦΑΡΜΟΓΗΣ...82 3.0) Είσοδος στην εφαρμογή...82 3.1) Είσοδος Super Administrator...83 3.1.1) Διαχείριση Παραγγελίας... 83 3.1.2) Διαχείριση Πελάτη... 85 3.1.3) Διαχείριση administrator... 93 3.1.4) Διαχείριση αυτοκινήτων...99 3.1.5) Ιστορικό...105 3.2) Είσοδος Semi Administrator...108 3.2.1) Διαχείριση Παραγγελίας...108 3.2.2) Διαχείριση Πελάτη...110 3.2.3) Διαχείριση αυτοκινήτων...117 3.2.4) Ιστορικό...121 3.3) Πελάτης...123 2

3.3.0) Εγγραφή πελάτη...123 3.3.1) Logout...124 3.3.2) Έναρξη Παραγγελίας...125 3.3.3) Προφίλ Πελάτη...126 3.3.4) About Us...127 ΒΙΒΛΙΟΓΡΑΦΙΑ...128 3

ΚΕΦΑΛΑΙΟ 1 - ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ 1.1 XAMPP Για την πλήρη λειτουργία μιας εφαρμογής Web, πρέπει να είναι εγκατεστημένα στο σύστημά μας τα εξής υποσυστήματα : Για Web Server -> Apache Server Για PHP Compiler -> PHP 4,5 Για MySQL Server -> MySQL >v4.01 Εάν όμως οι versions δεν είναι συγκεκριμένες και υπάρχει ασυμβατότητα μεταξύ τους, δεν θα κατορθώσουμε να δημιουργήσουμε web site. Για τον λόγο αυτό χρησιμοποιούμε το XAMPP που είναι το ιδανικό εργαλείο για το στήσιμο ενός site. Εμείς χρησιμοποιούμε το XAMPP v 1.6.5 που περιλαμβάνει τα εξής: Apache HTTPD 2.2.8 + Openssl 0.9.8g MySQL 5.0.51a PHP 5.2.5 PHP 4.4.8 phpmyadmin 2.11.4 FileZilla FTP Server 0.9.25 Mercury Mail Transport System 4.52 1.2 Λίγα λόγια για το κάθε υποσύστημα.. Apache HTTP εξυπηρετητής Ο Apache HTTP γνωστός και απλά σαν Apache είναι ένας εξυπηρετητής του παγκόσμιου ιστού (web). Όποτε επισκέπτεστε ένας ιστότοπο ο πλοηγός σας επικοινωνεί με έναν διακομιστή HTTP. O Apache είναι ένας από τους δημοφιλέστερους, εν μέρει γιατί λειτουργεί σε διάφορες πλατφόρμες σαν τα Windows, το Linux, το Unix, και το Mac OS X. Διατηρείται τώρα από μια κοινότητα ανοιχτού κώδικα με επιτήρηση από το Ίδρυμα Λογισμικού Apache (Apache Software Foundation). Η πρώτη του έκδοση, γνωστή ως NCSA HTTPd, δημιούργησε από τον Robert McCool και κυκλοφόρησε το 1993. Θεωρείται ότι έπαιξε σημαντικό ρόλο στην αρχική επέκταση του ιστού. Ήταν η πρώτη βιώσιμη εναλλακτική επιλογή που 4

παρουσιάστηκε απέναντι στον εξυπηρετητή http της εταιρείας Netscape και από τότε έχει εξελιχθεί στο σημείο να ανταγωνίζεται άλλους εξυπηρετητές βασισμένους στο Unix σε λειτουργικότητα και απόδοση. Από το 1996 ήταν από τους πιο δημοφιλείς όμως από τον Μάρτιο του 2006 έχει μειωθεί το ποσοστό της εγκατάστασής του κυρίως από τον Microsoft Internet Information Services και τη πλατφόρμα.net. Τον Οκτώβριο του 2007 το μερίδιο του ήταν 47.73% από όλους τους ιστοτόπους. MySQL Η MySQL είναι ένα πολύ γρήγορο και δυνατό, σύστημα διαχείρισης βάσεων δεδομένων. Μια βάση δεδομένων σας επιτρέπει να αποθηκεύετε, να αναζητάτε, να ταξινομείτε και να ανακαλείτε τα δεδομένα αποτελεσματικά. Ο MySQL διακομιστής ελέγχει την πρόσβαση στα δεδομένα σας, για να μπορούν να δουλεύουν πολλοί χρήστες ταυτόχρονα, για να παρέχει γρήγορη πρόσβαση και να διασφαλίζει ότι μόνο πιστοποιημένοι χρήστες μπορούν να έχουν πρόσβαση. Συνεπώς η MySQL είναι ένας πολυνηματικός διακομιστής πολλαπλών χρηστών. Χρησιμοποιεί την SQL ( Structured Query Language ) την τυπική γλώσσα ερωτημάτων για βάσεις δεδομένων, παγκόσμια. PHP H PHP είναι μια γλώσσα προγραμματισμού για τη δημιουργία σελίδων web με δυναμικό περιεχόμενο. Μια σελίδα PHP περνά από επεξεργασία από ένα συμβατό διακομιστή του Παγκόσμιου Ιστού (π.χ. Apache), ώστε να παραχθεί σε πραγματικό χρόνο το τελικό περιεχόμενο, που θα σταλεί στο πρόγραμμα περιήγησης των επισκεπτών σε μορφή κώδικα HTML. Ένα αρχείο με κώδικα PHP θα πρέπει να έχει την κατάλληλη επέκταση (π.χ. *.php, *.php4, *.phtml κ.ά.). Η ενσωμάτωση κώδικα σε ένα αρχείο επέκτασης.html δεν θα λειτουργήσει και θα εμφανίσει στον browser τον κώδικα χωρίς καμία επεξεργασία, εκτός αν έχει γίνει η κατάλληλη ρύθμιση στα MIME types του server. Επίσης ακόμη κι όταν ένα αρχείο έχει την επέκταση.php, θα πρέπει ο server να είναι ρυθμισμένος για να επεξεργάζεται κώδικα PHP. Ο διακομιστής Apache, που χρησιμοποιείται σήμερα ευρέως σε συστήματα με τα λειτουργικά συστήματα Linux και Microsoft Windows, υποστηρίζει εξ ορισμού επεξεργασία κώδικα PHP. 5

1.3 Εγκατάσταση XAMPP v1.6.5 Για να ξεκινήσουμε την εγκατάσταση του XAMPP application τρέχουμε τον installer xampp-win32-1.6.5-installer. exe Αρχικά επιλέγουμε τη γλώσσα που θέλουμε από το drop down menu για να ξεκινήσουμε την εγκατάσταση: Για να ξεκινήσει η εγκτάσταση κλείνουμε τις εφαρμογές που έχουμε ήδη ανοιχτές και πατάμε Next. 6

Μετά επιλέγουμε την τοποθεσία που θέλουμε να κάνουμε την εγκατάσταση του XAMPP. Συνήθως επιλέγουμε στο c:\xampp. Μετά πατάμε Next. Στο επόμενο παράθυρο εμφανίζονται μερικές επιλογές για τη διευκόλυνσή μας: - Create a XAMPP desktop icon. Αυτό είναι αν θέλουμε να έχουμε το xampp στην επιφάνεια εργασίας. - Create an Apache Friends XAMPP folder in the start menu. Αυτό είναι αν θέλουμε να έχουμε το XAMPP στο menu starts programs. - Service section. Εδώ επιλέγουμε ποια services θέλουμε να τρέχουν στον υπολογιστή. Εμείς επιλέγουμε τον Apache και την MySql. Και τέλος πατάμε Install. 7

Τέλος, αφού ολοκληρωθεί η εγκατάσταση πατάμε finish. 8

Αφού έχουμε ολοκληρώσει με επιτυχία την εγκατάσταση του XAMPP, Επιλέγουμε να ανοίξουμε το XAMPP Control Panel. Στο Control Panel βλέπουμε τα services που επιλέξαμε στη διαδικασία της εγκατάστασης. Παρατηρούμε λοιπόν τα Services Apache και MySql να είναι εγκατεστημένα και το status τους να είναι Running. Τώρα είναι εγκατεστημένο το xampp. Έχουμε ένα πλήρως λειτουργικό web server με υποστήριξη php, mysql. 9

1.4 Δημιουργία Βάσης Δεδομένων από το XAMPP Για να ανοίξουμε το Xampp πληκτρολογούμε στον explorer http://localhost/xampp/ Πατώντας στο menu το phpmyadmin εμφανίζονται οι επιλογές για τη δημιουργία της βάσης. 10

Ονομάζουμε τη βάση test και στο collation επιλέγουμε greek_general_ci. Τέλος, πατάμε create για τη δημιουργία της. Αφου δημιουργηθεί η βάση, επιλέγουμε την καρτέλα import για να εισάγουμε ένα αρχείο.sql. 11

Πρώτα κάνουμε import το creates.sql (για τη δημιουργία των πινάκων) και μετά το insert.sql (για την εισαγωγή των εγγραφών στους πίνακες) 12

1.5 Εγκατάσταση Editor UltraEdit v14a Για να ξεκινήσουμε την εγκατάσταση του UltraEdit τρέχουμε το εκτελέσιμο αρχείο του προγράμματος και πατάμε Next 13

Μετά επιλέγουμε I accept the license agreement και πατάμε Next. Στη συνέχεια πατάμε Next. 14

Έπειτα επιλέγουμε Express Install και πατάμε Next. Στη συνέχεια πατάμε Next για να ξεκινήσει η εγκατάσταση. 15

Επίσης μας δίνεται η δυνατότητα να προσθέσουμε επιπρόσθετα χαρακτηριστικά αν θέλουμε. Έπειτα πατάμε Next για συνέχεια. Τέλος πατάμε Finish οπου και ολοκληρώνεται η εγκατάσταση. 16

ΚΕΦΑΛΑΙΟ 2 - ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ 2.1 Απαιτήσεις Διαχείριση Αυτοκινήτου Εισαγωγή Αυτοκινήτου Οι super administrators του γραφείου ενοικιάσεων έχουν το δικαίωμα να εγγράψουν ένα καινούριο αυτοκίνητο σε οποιοδήποτε υποκατάστημα. Οι semi administrators έχουν το δικαίωμα να εγγράψουν ένα καινούριο αυτοκίνητο μόνο για το υποκατάστημα που ανήκουν. Σε κάθε καινούρια εγγραφή οι administrators εισάγουν επίσης και διάφορα στοιχεία που αφορούν το καινούριο αυτοκίνητο όπως είναι η πινακίδα, το μοντέλο, τα κυβικά, την τιμή ενοικίασης (ανά μέρα), την φωτογραφία και την διαθεσιμότητα του αυτοκινήτου. Επίσης για κάθε εισαγωγή αυτοκινήτου, ενημερώνεται αυτόματα το πλήθος των αυτοκινήτων του υποκαταστήματος στο οποίο και ανήκει. Μεταβολή στοιχείων / Διαγραφή Αυτοκινήτου Το σύστημα δίνει το δικαίωμα μόνο στους super administrator να αλλάξουν τα στοιχεία ενός αυτοκίνητουή να διαγράψουν κάποιο αυτοκίνητο. Οι semi administrators δεν έχουν κανένα δικαίωμα διαγραφής ή τροποποίσης αυτοκινήτων. Σε περίπτωση διαγραφής αυτοκινήτου, ενημερώνεται αυτόματα το πλήθος των αυτοκινήτων του υποκαταστήματος στο οποίο και ανήκει. Σε περίπτωση διαγραφής ή τροποποίησης στοιχείων αυτοκινήτων κρατιέται backup στη βάση για λόγους ασφαλείας Αναζήτηση Αυτοκινήτου Αναζήτηση αυτοκινήτου μπορεί να κάνουν οι administrators (semi & super). Ο super administrator μπορεί να κάνει αναζήτηση όλων των αυτοκινήτων, ανεξαρτήτου υποκαταστήματος. Ο semi administrator μπορεί να κάνει αναζήτηση αυτοκινήτων, μόνο για αυτά τα οποία και ανήκουν στο ίδιο υποκατάστημα με τον semi administrator. O πελάτης μπορεί μέσω του Διαδικτύου να κάνει αναζήτηση διαθέσιμων αυτοκινήτων, αφού πρώτα έχει επιλέξει ημερομηνίες και τόπους παραλαβής και παράδοσης αυτοκινήτου. 17

Διαχείριση Υπαλλήλων (super & semi administrators) Εισαγωγή Υπαλλήλου Μόνο ο super administrator έχει το δικαίωμα να εγγράψει έναν καινούριο υπάλληλο (super & semi administrator). Σε κάθε καινούρια εγγραφή ο super administrator εισάγει επίσης και διάφορα στοιχεία που αφορούν τον καινούριο υπάλληλο (super & semi administrators) όπως είναι το το όνομα, το επίθετο, το υποκατάστημα στο οποίο και θα ανήκει, το e-mail, το password, τα δικαιώματα (super ή semi), τηλέφωνο, διεύθυνση, πόλη, περιοχή και χώρα. Επίσης για κάθε εισαγωγή υπαλλήλου, ενημερώνεται αυτόματα το πλήθος των υπαλλήλων του υποκαταστήματος στο οποίο και ανήκει. Μεταβολή στοιχείων / Διαγραφή Υπαλλήλου Το σύστημα δίνει το δικαίωμα μόνο στον super administrator να μεταβάλλει τα στοιχεία ενός υπαλλήλου (super ή semi Administrator). Επίσης, είναι εφικτό να διαγράψει κάποιο υπάλληλο από το αρχείο administrator. Επίσης για διαγραφή υπαλλήλου, ενημερώνεται αυτόματα το πλήθος των υπαλλήλων του υποκαταστήματος στο οποίο και ανήκει. Σε περίπτωση διαγραφής ή τροποποίησης στοιχείων υπαλλήλων κρατιέται backup στη βάση για λόγους ασφαλείας Διαχείριση Πελατών Εισαγωγή Πελάτη Οι administrators (super & semi) έχουν το δικαίωμα να εγγράψουν έναν καινούριο πελάτη με σκοπό την έναρξη μιας παραγγελίας. Σε κάθε καινούρια εγγραφή ο υπάλληλος εισάγει επίσης και διάφορα στοιχεία που αφορούν τον καινούριο πελάτη όπως είναι το ΑΦΜ, το όνομα, το επίθετο, το e-mail, την διεύθυνση, το τηλέφωνο, την περιοχή, την πόλη, τη χώρα, κλπ. Επίσης, ένας νέος πελάτης μπορεί να εγγραφεί μόνος του μέσω του web. Μεταβολή στοιχείων / Διαγραφή Πελάτη Το σύστημα δίνει το δικαίωμα στους administrators (super & semi) να μεταβάλλουν τα στοιχεία του πελάτη. Επίσης, το δικαίωμα τροποποίσης στοιχείων έχει και ο πελάτης σε περίπτωση που θέλει να αλλάξει κάτι στα στοιχεία του. 18

Μόνο ο super administrator όμως έχει δικαίωμα να διαγράψει κάποιο πελάτη από το αρχείο πελατών. Σε περίπτωση διαγραφής ή τροποποίησης στοιχείων αυτοκινήτων κρατιέται backup στη βάση για λόγους ασφαλείας Διαχείριση Παραγγελιών Εισαγωγή Παραγγελίας Μία παραγγελία μπορεί να γίνει με δύο τρόπους: μπορεί ο πελάτης να κάνει μία παραγγελία μέσω του Διαδικτύου μόνος του, αλλά μπορεί να επισκεφθεί ένα από τα υποκαταστήματα που υποστηρίζουν το σύστημα και κάποιος admin να κάνει την παραγγελία για λογαριασμό του πελάτη. Και στους δύο τρόπους η παραγγελία είναι η ίδια, δηλαδή πρέπει να συμπληρωθούν τα εξής πεδία: στοιχεία πελάτη (όνομα, επίθετο, τηλέφωνο κ.α.), τόπος παραλαβής, τόπος παράδοσης, ημερομηνία παραλαβής και ημερομηνία παράδοσης. Αναζήτηση Παραγγελιών Αναζήτηση παραγγελιών μπορούν να κάνουν μόνο οι administrators (super & semi) για δική τους διευκόλυνση, όπως για παράδειγμα για να δουν πότε θα τους επιστραφεί ένα αυτοκίνητο ή για να αλλάξουν άμεσα την κατάσταση μιας παραγγελίας όταν τους επιστραφεί ένα αυτοκίνητο. O super administrator μπορεί να δει όλες τις παραγγελίες τις εφαρμογής. Ο semi administrator μπορεί να διαχειριστεί μόνο αυτές που το αυτοκίνητο ανήκει στο ίδιο υποκατάστημα με τον semi administrator. Διαχείριση Προγράμματος Διασύνδεση με τον γρήστη Ο πελάτης έχει την δυνατότητα της ανάγνωσης του αρχείου των αυτοκινήτων καθώς και την δυνατότητα εγγραφής στο αρχείο των παραγγελιών εφόσον η παραγγελία εγκριθεί από το σύστημα. Λειτουργικές: Στον πίνακα Branches τα πεδία CountEmp και CountCars ενημερώνονται στην εισαγωγή/διαγραφή υπαλλήλου και στην εισαγωγή/διαγραφή αυτοκινήτου. 19

Το πεδίο Orders.Datediff ενημερώνεται όταν γίνει η κράτηση και υπολογίζεται ως εξής: Datediff = OutDate - InDate Ισχύει: Cars.BranchCode = Orders.BranchIn Υποθέτουμε ότι μετά την ενοικίαση του αυτοκινήτου εφόσον έχουμε Orders.Inbranch<>Orders.OutBranch, το αυτοκίνητο επιστρέφει στο υποκατάστημα που ανήκει, δηλαδή στο Cars.Branchcode ή Orders.InBranch. Όταν προστείθεται ένα νέο αυτοκίνητο (New_Car.php) στον πίνακα Cars, προσθέτουμε μία ακυρωμένη εγγραφή και στον πίνακα Orders γι αυτό το αυτοκίνητο, δηλ. Insert into Cars (Plate, Brand, Model, Branchcode, year, Category, Cubes, Color, Price, Description, Photo, Available) values ('".$plate."', '".$brand."', '".$model."', '".$branchcode."', '".$year."', '".$category."', '".$cubes."', '".$color."', '".$price."', '".$description."', '".$photo."',1 )") Insert into Orders (InDate, OutDate, Plate, InBranch, OutBranch, State) values ('1999/01/01','1999/01/02','".$plate."','".$branchcode."','".$branchcode."', 'Cancelled'); Στην διαγραφή ενός Customer, Super/Semi Administrator, Car γίνεται εισαγωγή της διαγραφόμενης εγγραφής στον αντίστοιχο πίνακα Deleted_Customers, Deleted_Employees, Deleted_Cars. Στην αλλαγή των στοιχείων ενός Customer, Super/Semi Administrator, Car γίνεται εισαγωγή της εγγραφής στον αντίστοιχο πίνακα Updated_Customers, Updated_Employees, Updated _Cars. Για την αποφυγή του SQL INJECTION πήραμε τα εξής μέτρα: Ολες οι σελίδες που είναι διαθέσιμες στους πελάτες και τους επισκέπτες μεταφέρουν τα στοιχεία μεταξύ τους με μέθοδο POST και όλα τα υπόλοιπα στοιχεία με κωδικοποίηση (συγκεκριμένα την php function: base64_encode/ base64_decode) των στοιχείων που χρησιμοποιούμε στην μέθοδο GET. 20

Οταν γίνεται insert/update/delete ενός Customer φαίνεται ποιος Administrator τον έγραψε/τροποποίησε/διέγραψε. Στον πίνακα Customers, όταν Customers.Emp_Id = 0, τότε ο πελάτης εγγράφτηκε μόνος του μέσω του Web. Στον πίνακα Customers, όταν Customers.Emp_Id = $user_id, τότε ο πελάτης εγγράφτηκε διαμέσου ενός Administrator (όπου $user_id, το Users.user_Id του Administrator). Όταν Cars.Available = 1, το αυτοκίνητο είναι διαθέσιμο (βρίσκεται στο υποκατάστημα που ανήκει και δεν είναι για service) Όταν Cars.Available = 0, το αυτοκίνητο δεν είναι διαθέσιμο (δεν βρίσκεται στο υποκατάστημα που ανήκει ή είναι για service) Δεν μπορεί να γίνει διαγραφή ενός πελάτη για τον οποίο εκκρεμεί έστω κ μία παραγγελία, δηλ. το Orders.state = Pending ή Confirmed. Δεν μπορεί να γίνει διαγραφή ενός αυτοκινήτου για τον οποίο εκκρεμεί έστω κ μία παραγγελία, δηλ. το Orders.state = Pending ή Confirmed. Όταν Users.Admin = 0, πρόκειται για πελάτη (Customer). Όταν Users.Admin = 1, πρόκειται για υπάλληλο με πλήρη δικαιώματα (Super Administrator). Όταν Users.Admin = 2, πρόκειται για υπάλληλο με περιορισμένα δικαιώματα (Semi Administrator) 21

Στην εφαρμογή υπάρχουν 4 καταστάσεις/στάδια παραγγελιών: ^Pending Αυτή η κατάσταση προσδιορίζει μία παραγγελία η οποία έχει γίνει από το Internet, έχει σταλεί e-mail για επιβεβαίωση των στοιχείων από τον πελάτη, αλλά ο πελάτης δεν έχει επιβεβαιώσει ακόμα. ^Confirmed Αυτή η κατάσταση προσδιορίζει μία παραγγελία η οποία στην περίπτωση: α. που έχει γίνει από το Internet, έχει σταλεί e-mail για επιβεβαίωση και ο πελάτης έχει επιβεβαιώσει απαντώντας στο e-mail που του στάλθηκε από την εφαρμογή. β. ή αλλιώς, η παραγγελία έχει γίνει από τον Super/Semi Administrator για λογαριασμό ενός πελάτη. ^Finished Αυτή η κατάσταση προσδιορίζει το τέλος μιας παραγγελίας, όταν το αυτοκίνητο παραδίδεται απο τον πελάτη στο υποκατάστημα (Orders.OutBranch). Οταν Orders.State = 'Finished', τότε το αυτοκίνητο έχει επιστραφεί απο τον πελάτη στο υποκατάστημα (Orders.OutBranch). ^Cancelled Αυτή η κατάσταση προσδιορίζει την ακύρωση μιας παραγγελίας. Η ακύρωση μπορεί να γίνει όταν μία παραγγελία είναι Pending ή Confirmed και όχι όταν είναι Finished. Στην εφαρμογή υπάρχουν 3 group χρηστών: ->Ο πελάτης με Users.admin=0, o oποίος μπορεί να παραγγείλει ένα αυτοκίνητο και να δει το ιστορικό των παραγγελιών του και να τροποποιήσει κάποια απο τα στοιχεία του. ->O Super-Administrator με Users.admin=1, ο οποίος είναι διαχειριστής με πλήρη δικαιώματα οπου μπορεί να διαχειριστεί παραγγελίες, πελάτες, 22

αυτοκίνητα κ διαχειριστές (Super/Semi-Administrator) που αφορούν όλα τα υποκαταστή ματα. ->O Semi-Administrator με Users.admin=2, ο οποίος είναι διαχειριστής περιορισμένων δικαιωμάτων οπου μπορεί να διαχειριστεί παραγγελίες, πελάτες, κ αυτοκίνητα που αφορούν το υποκατάστημα στο οποίο εργάζεται. Σε κάθε υποκατάστημα υπάρχει τουλάχιστον ένας Super-Administrator. Τα υποκαταστήματα δεν μπορούν να αλλαχτούν από την εφαρμογή. Ένας πελάτης χρεώνεται το ποσό του πεδίου Orders.TotalPrice όταν η παραγγελία έχει κατάσταση Orders.State=Finished. Τα passwords είτε του υπαλλήλου είτε του πελάτη είναι PROTECTED δηλαδή δεν εμφανίζονται όταν τα κάνουμε export σε excel. Σε περίπτωση που ένα αυτοκίνητο κάποιου υποκαταστήματος δανειστεί σε ένα άλλο υποκατάστημα, τότε οι αρμόδιοι κάθε υποκαταστήματος θα πρέπει να το επιστρέψουν στο υποκατάστημα που ανήκει. Μη Λειτουργικές: Απαιτήσεις Υλοποίησης - Απαιτήσεις Υλικού : Το περιβάλλον λειτουργίας θα είναι ένας Server. Απαιτείται σύνδεση σε δίκτυο. - Απαιτήσεις Λογισμικού : 1) Το σύστημα θα λειτουργεί σε λειτουργικό σύστημα Windows XP. 2) Η εφαρμογή για τους υπαλλήλους (super & semi administrators) απαιτεί Microsoft Excel. (Προτείνεται 2003) 23

3) Για τη διαχείριση της εφαρμογής απαιτείται web browser ( προτείνεται Internet Explorer 7) 4) Για τη λειτουργία της εφαρμογής απαιτείται apache web server και MySql Server ( προτείνεται Apache v2.2.6, PHP v5.2.4 Server, MySql v1.4) Απαιτήσεις Προστασίας - Οι administrators (super & semi) για να έχουν πρόσβαση στο αρχείο πρέπει να εισάγουν ένα κωδικό ασφαλείας : Ένα Username (e-mail), το οποίο αποτελείται από 30 ψηφία (Αλφαριθμητικό) Ένα Password, το οποίο αποτελείται μέχρι 10 ψηφία (Αλφαριθμητικό) Δικαιώματα: - Ενας Semi-Administator μπορεί να κάνει insert/update/delete ένα αυτοκίνητο που ανήκει ΑΠΟΚΛΕΙΣΤΙΚΑ στο υποκατάστημα το οποίο εργάζεται ο ίδιος. Επίσης, μπορεί να αλλάξει το state των παραγγελιών μόνο για τις παραγγελίες που αφορούν το υποκατάστημα στο οποίο ανήκει. Δεν έχει το δικαίωμα να διαχειριστεί (insert/update/delete) τους Semi/Super-Administrator. - Πνας Super-Administrator μπορεί να κάνει οτιδήποτε για όλα τα υποκαταστήματα και για όλους τους χρήστες. Δηλαδή είναι χρήστης με πλήρες δικαιώματα. Απαιτήσεις Λειτουργίας - Σε κάθε υποκατάστημα θα τηρούνται εφεδρικά αρχεία με το ιστορικό ενοικίασης κάθε πελάτη. Απαιτήσεις Επίδοσης - Στην αναζήτηση που κάνουν οι χρήστες τα αποτελέσματα θα εμφανίζονται το πολύ σε 1 δευτερόλεπτο. Απαιτήσεις Αποθηκών Δεδομένων (Data Stores) - Έστω ότι ισχύει για μία εγγραφή : 24

ΑΥΤΟΚΙΝΗΤΟ Πινακίδα Μάρκα Μοντέλο Τιμή Διαθεσιμότητα CHAR(10) CHAR(10) CHAR(10) NUMBER(6,3) NUMBER(1) Μήκος Εγγραφής= 10+10+10+6+1=37 χαρακτήρες Για 200 αυτοκίνητα, που είναι το μέγιστο, θα χρειαστούμε 7.400 bytes. Μηνύματα Λαθών - Το σύστημα πρέπει να δίνει τουλάχιστον τα παρακάτω μηνύματα λαθών: Λάθος Username ή Password. Το αυτοκίνητο δεν υπάρχει. Ο πελάτης δεν υπάρχει. Δεν μπορεί να διαγραφεί το αυτοκίνητο γιατι έχει παραγγελία με κατάσταση Pending. Δεν μπορεί να διαγραφεί το αυτοκίνητο γιατι έχει παραγγελία με κατάσταση Confirmed Δεν μπορεί να διαγραφεί o πελάτης γιατι έχει παραγγελία με κατάσταση Pending Απαιτήσεις Διασύνδεσης με το Χρήστη - Πρόγραμμα φιλικό προς τον χρήστη που επιτρέπει ακόμη και στον πιο άπειρο χρήστη να αντλεί πληροφορίες για τα αυτοκίνητα. 25

2.2 Προδιαγραφές Όνομα διεργασίας 1 Περιγραφή Δεδομένα εισόδου Έλεγχος κωδικού πρόσβασης για το χρήστη (Υπάλληλο ή Πελάτη) Ο χρήστης του συστήματος θα πληκτρολογεί έναν κωδικό, με μέγεθος μέχρι και 20 ψηφία, για πρόσβαση στο σύστημα (username, password) -E-mail Χρήστη (username) -Κωδικός Χρήστη (password) Προέλευση Δεδομένα εξόδου Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Πληκτρολόγιο Μήνυμα υποδοχής ή απόρριψης Οθόνη Ο χρήστης να υπάρχει στη βάση Εισαγωγή σωστού Κωδικού πρόσβασης Εισαγωγή στο σύστημα ή κλείσιμο του προγράμματος Κανένα Όνομα διεργασίας 2 Περιγραφή Εισαγωγή Πελάτη Ο administrator (super & semi) είναι αυτός που έχει πρόσβαση στην βάση δεδομένων έτσι ώστε να εισάγει απευθείας έναν πελάτη στη βάση. Ο administrator εγγράφει έναν καινούριο πελάτη όταν αυτός νοικιάζει κάποιο αυτοκίνητο άμεσα από το κατάστημα (Branch). Υπάρχει περίπτωση κάποιος πελάτης να έχει ξανανοικιάσει από το συγκεκριμένο γραφείο και να είναι ήδη εγγεγραμμένος και σε αυτή την περίπτωση δεν γίνεται εισαγωγή. Επίσης, όταν ένας πελάτης θέλει να παραγγείλει ένα αυτοκίνητο μέσω του διαδικτύου, μπορεί να εγγραφεί μόνος του μέσω web. 26

Κάθε εισαγωγή περιλαμβάνει και τα εξής στοιχεία του πελάτη: - Όνομα - Επώνυμο - ΑΦΜ - Διεύθυνση - Περιοχή - Πόλη - Χώρα - Τηλέφωνο - E-mail - Password Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Προϋπόθεση Απαίτηση Στοιχεία Πελάτη (όλα τα παραπάνω) Πληκτρολόγιο Δημιουργία εγγραφής πελάτη και στοιχεία πελάτη Αρχείο Customers Ύπαρξη καινούριου πελάτη Ε-mail και ΑΦΜ θα πρέπει να είναι έγκυρα Πλευρικά φαινόμενα - Όνομα διεργασίας 3 Περιγραφή Δεδομένα εισόδου Αλλαγή Στοιχείων Πελάτη Οι administrators (super & semi) και ο κάθε Πελάτης έχουν δικαίωμα να κάνουν τροποποιήσεις στα στοιχεία ενός πελάτη. Οι administrators έχουν δικαίωμα να κάνουν τροποποιήσεις σε όλους τους πελάτες ενώ ο κάθε πελάτης έχει δικαίωμα να τροποποιήσει μόνο τα δικά του στοιχεία από το προφίλ του. Στοιχεία Πελάτη 27

Προέλευση Δεδομένα εξόδου Πληκτρολόγιο Νέα στοιχεία Πελάτη Προορισμός Ενημέρωση στο αρχείο Customers και Updated_Customers Προϋπόθεση Απαίτηση Πλευρικά φαινόμενα Ύπαρξη καινούριων στοιχείων Τα καινούρια δεδομένα πρέπει να είναι σωστά Λάθος τροποποίηση πελάτη Όνομα διεργασίας 4 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Διαγραφή Πελάτη Ο super administrator είναι αυτός που έχει δικαίωμα να διαγράψει έναν πελάτη. Διαγραφή Πελάτη Πληκτρολόγιο Διαγραφή πελάτη Προορισμός Ενημέρωση στο αρχείο Customers και Deleted_Customers Προϋπόθεση Ύπαρξη ανάγκης προς διαγραφή πελάτη. Ο συγκεκριμένος πελάτης να μην έχει παραγγελία με κατάσταση Pending ή Confirmed Απαίτηση Πλευρικά φαινόμενα Να διαγραφεί ο σωστός πελάτης Λάθος διαγραφή πελάτη Όνομα διεργασίας 5 Περιγραφή Αναζήτηση Πελάτη Ο administrator (super & semi) είναι αυτός που έχει δικαίωμα να κάνει μία αναζήτηση πελάτη. Αυτό γίνεται για διευκόλυνση του administrator ως προς την εύρεση ενός πελάτη με σκοπό την τροποποίηση των στοιχείων του, τη διαγραφή του, η ακόμα και για να ξεκινήσει μια 28

παραγγελία. Η αναζήτηση γίνεται βάση κάποιων συγκεκριμένων πεδίων Δεδομένα εισόδου Αναζήτηση πελάτη με βάση τα εξής πεδία: Επώνυμο πελάτη ΑΦΜ πελάτη E-mail πελάτη Προέλευση Δεδομένα εξόδου Πληκτρολόγιο Στοιχεία πελάτη με βάση την αναζήτηση που έκανε. Τα στοιχεία που εμφανίζονται είναι τα εξής: - Κωδικός πελάτη - ΑΦΜ πελάτη - Όνομα - Επώνυμο - E-mail - Password - Τηλέφωνο - Διεύθυνση - Πόλη - Περιοχή - Χώρα Προορισμός Προϋπόθεση Απαίτηση Εμφάνιση στην Οθόνη ή σε αρχείο excel Να υπάρχει ως εγγραφή ότι αναζητεί ο administrator. Δηλαδή να υπάρχει ο συγκεκριμένος πελάτης και τα συγκεκριμένα στοιχεία με τα οποία γίνεται η αναζήτηση. Οι τιμές των πεδίων με βάση των οποίων θα γίνεται η αναζήτηση να είναι έγκυρες. Για παράδειγμα να μην εισάγει στο επώνυμο πελάτη έναν αριθμό. Πλευρικά φαινόμενα - 29

Όνομα διεργασίας 6 Περιγραφή Εισαγωγή Administrator Ο super administrator είναι αυτός που έχει δικαίωμα να εισάγει έναν νέο administrator (super & semi) στη βάση. Κάθε εγγραφή περιλαμβάνει και τα εξής στοιχεία του administrator: - Όνομα - Επώνυμο - Τύπος administrator (Semi ή Super) - Υποκατάστημα - Διεύθυνση - Περιοχή - Πόλη - Χώρα - Τηλέφωνο - E-mail - Password Δεδομένα εισόδου Προέλευση Στοιχεία Administrator (όλα τα παραπάνω) Πληκτρολόγιο Δεδομένα εξόδου Δημιουργία εγγραφής administrator και στοιχεία administrator Προορισμός Προϋπόθεση Απαίτηση Αρχείο Employees και αρχείο Users Ύπαρξη καινούριου administrator Το e-mail θα πρέπει να είναι έγκυρο Πλευρικά φαινόμενα - 30

Όνομα διεργασίας 7 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Αλλαγή Στοιχείων Administrator Μόνο ο super administrator έχει δικαίωμα να κάνει τροποποιήσεις στα στοιχεία κάποιου άλλου administrator (super & semi). Στοιχεία administrator Πληκτρολόγιο Νέα στοιχεία administrator Προορισμός Ενημέρωση στο αρχείο Employees και Updated_Employees Προϋπόθεση Απαίτηση Πλευρικά φαινόμενα Ύπαρξη καινούριων στοιχείων Τα καινούρια δεδομένα πρέπει να είναι σωστά Λάθος τροποποίηση administrator Όνομα διεργασίας 8 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Διαγραφή Administrator Ο super administrator είναι αυτός που έχει δικαίωμα να διαγράψει έναν administrator (super & semi) Διαγραφή administrator Πληκτρολόγιο Διαγραφή administrator Προορισμός Ενημέρωση στο αρχείο Employees και Deleted_Employees Προϋπόθεση Ύπαρξη ανάγκης προς διαγραφή administrator Απαίτηση ^ διαγραφεί ο σωστός administrator Πλευρικά φαινόμενα Λάθος διαγραφή administrator 31

Όνομα διεργασίας 9 Περιγραφή Δεδομένα εισόδου Αναζήτηση Administrator Ο super administrator είναι αυτός που έχει δικαίωμα να κάνει μία αναζήτηση administrator. Αυτό γίνεται για διευκόλυνση του super administrator ως προς την εύρεση ενός administrator (super & semi) με σκοπό την τροποποίηση των στοιχείων του, τη διαγραφή του, η ακόμα και για να δει το ιστορικό κάποιου administrator. Η αναζήτηση γίνεται βάση κάποιων συγκεκριμένων πεδίων Αναζήτηση administrator με βάση τα εξής πεδία: - Επώνυμο administrator - Κωδικός administrator - E-mail administrator - Τύπος administrator (super ή semi) Προέλευση Δεδομένα εξόδου Πληκτρολόγιο Στοιχεία administrator με βάση την αναζήτηση που έκανε. Τα στοιχεία που εμφανίζονται είναι τα εξής: - Κωδικός administrator - Όνομα - Επώνυμο - Υποκατάστημα - E-mail - Password - Τηλέφωνο - Διεύθυνση - Πόλη - Περιοχή - Χώρα - Τύπος administrator Προορισμός Εμφάνιση στην Οθόνη ή σε αρχείο excel 32

Προϋπόθεση Απαίτηση Να υπάρχει ως εγγραφή ότι αναζητεί ο administrator. Δηλαδή να υπάρχει ο συγκεκριμένος administrator και τα συγκεκριμένα στοιχεία με τα οποία γίνεται η αναζήτηση. Οι τιμές των πεδίων με βάση των οποίων θα γίνεται η αναζήτηση να είναι έγκυρες. Για παράδειγμα να μην εισάγει στο επώνυμο administrator έναν αριθμό. Πλευρικά φαινόμενα - Όνομα διεργασίας 10 Περιγραφή Δεδομένα εισόδου Εισαγωγή Αυτοκινήτου Ο super administrator είναι αυτός που έχει δικαίωμα να κάνει μία εισαγωγή καινούριου αυτοκινήτου σε οποιοδήποτε κατάστημα. Ο semi administrator μπορεί να εισάγει αυτοκίνητα μόνο για το κατάστημά του. Κάθε εισαγωγή περιλαμβάνει και τα εξής στοιχεία του αυτοκινήτου: - Πινακίδα Αυτοκινήτου - Μάρκα - Μοντέλο - Υποκατάστημα - Χρονολογία - Κατηγορία - Κυβικά - Χρώμα - Τιμή ενοικίασης (ανά ημέρα) - Περιγραφή Προέλευση Πληκτρολόγιο Δεδομένα εξόδου Δημιουργία εγγραφής αυτοκινήτου και στοιχεία αυτοκινήτου Προορισμός Αρχείο Cars 33

Προϋπόθεση Απαίτηση Ύπαρξη καινούριου αυτοκινήτου Τα δεδομένα εισόδου θα πρέπει να είναι έγκυρα Πλευρικά φαινόμενα - Όνομα διεργασίας 11 Τροποποίηση Αυτοκινήτου Περιγραφή Ο super administrator κάθε υποκαταστήματος έχει δικαίωμα να κάνει μία τροποποίηση ενός αυτοκινήτου. Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Προϋπόθεση Απαίτηση Στοιχεία Αυτοκινήτου προς τροποποίηση Πληκτρολόγιο Νέα στοιχεία αυτοκινήτου Ενημέρωση στο αρχείο Cars και Updated_Cars Ύπαρξη καινούριων στοιχείων Τα καινούρια δεδομένα πρέπει να είναι σωστά Πλευρικά φαινόμενα - Όνομα διεργασίας 12 Διαγραφή Αυτοκινήτου Περιγραφή Ο super administrator κάθε υποκαταστήματος έχει δικαίωμα να κάνει διαγραφή ενός αυτοκινήτου. Η διαγραφή αυτή μπορεί να γίνει από κάθε administrator και μόνο για τα αυτοκίνητα που ανήκουν στο κατάστημά του. Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Προϋπόθεση Διαγραφή αυτοκινήτου Πληκτρολόγιο Διαγραφή αυτοκινήτου Ενημέρωση στο αρχείο Cars και Deleted_Cars Ύπαρξη ανάγκης για διαγραφή αυτοκινήτου Το συγκεκριμένο αυτοκίνητο να μην έχει παραγγελία με 34

κατάσταση Pending ή Confirmed Απαίτηση Να διαγραφεί το σωστό αυτοκίνητο Πλευρικά φαινόμενα - Όνομα διεργασίας 13 Περιγραφή Αναζήτηση Αυτοκινήτου Οι administrators (super & semi) είναι αυτοί που έχουν δικαίωμα να κάνουν μία αναζήτηση αυτοκινήτου. Οι super administrators μπορούν με σκοπό την τροποποίηση των στοιχείων του, τη διαγραφή του, για να δουν το ιστορικό του ή ακόμα και τη διαθεσιμότητά του. Οι semi administrators μπορούν μόνο με σκοπό να βλέπουν το ιστορικό του κάθε αυτοκινήτου και τη διαθεσιμότητά του. Η αναζήτηση γίνεται με βάση κάποιων συγκεκριμένων πεδίων. Ο πελάτης έχει δικαίωμα αναζήτησης αυτοκινήτων μόνο με βάση τη διαθεσιμότητά τους για συγκεκριμένες ημερομηνίες που επιλέγει ο πελάτης Δεδομένα εισόδου Αναζήτηση αυτοκινήτου με βάση τα εξής πεδία: - Πινακίδα - Κατηγορία - Μάρκα - Μοντέλο - Τιμή - Διαθεσιμότητα Προέλευση Δεδομένα εξόδου Πληκτρολόγιο Στοιχεία αυτοκινήτου με βάση την αναζήτηση που έκανε. Τα στοιχεία που εμφανίζονται είναι τα εξής: - Πινακίδα Αυτοκινήτου - Υποκατάστημα 35

- Κατηγορία - Κυβικά - Μάρκα - Μοντέλο - Χρονολογία - Τιμή ενοικίασης (ανα ημέρα) - Χρώμα - Περιγραφή - Διαθεσιμότητα Προορισμός Προϋπόθεση Απαίτηση Εμφάνιση στην Οθόνη ή σε αρχείο excel Να υπάρχει ως εγγραφή ότι αναζητεί ο χρήστης Η επιλογή που θα επιλέξει ο χρήστης να είναι εντός ορίων. Πλευρικά φαινόμενα - Όνομα διεργασίας 14 Περιγραφή Δεδομένα εισόδου Εισαγωγή Παραγγελίας Οι administrators και οι εγγεγραμμένοι πελάτες είναι αυτοί που έχουν δικαίωμα να κάνουν μια παραγγελία. Η παραγγελία γίνεται όταν ένα αυτοκίνητο είναι διαθέσιμο. Επίσης μια παραγγελία μπορεί να γίνει και από έναν πελάτη μέσω web. Κάθε εισαγωγή περιλαμβάνει και τα εξής στοιχεία: - Στοιχεία Πελάτη (όνομα, επίθετο, διεύθυνση κ.α.) - Πινακίδα Αυτοκινήτου - Τόπος Παραλαβής - Τόπος Παράδοσης - Ημερομηνία Παραλαβής - Ημερομηνία Παράδοσης 36

- Τιμή ενοικίασης Προέλευση Πληκτρολόγιο Δεδομένα εξόδου Δημιουργία εγγραφής παραγγελίας και στοιχεία παραγγελίας Προορισμός Προϋπόθεση Απαίτηση Αρχείο Orders Ύπαρξη καινούριας παραγγελίας Τα δεδομένα εισόδου θα πρέπει να είναι σωστά Πλευρικά φαινόμενα - Όνομα διεργασίας 15 Περιγραφή Αναζήτηση Παραγγελίας Οι administrator (super & semi) είναι αυτοί που έχουν δικαίωμα έτσι ώστε να κάνουν μία αναζήτηση παραγγελίας. Οι super administrators μπορούν να κάνουν αναζήτηση για οποιαδήποτε παραγγελία του συστήματος. Οι semi administrators μπορούν μόνο για τις παραγγελίες που σχετίζονται με το κατάστημά τους. Η αναζήτηση μιας παραγγελίας γίνεται βάση συγκεκριμένων πεδίων Δεδομένα εισόδου Αναζήτηση παραγγελίας με βάση τα εξής πεδία: - Κωδικός Παραγγελίας - Πινακίδα Αυτοκινήτου - Τόπος Παραλαβής - Τόπος Παράδοσης - Τρόπος Πληρωμής - Συνολική τιμή παραγγελίας Προέλευση Δεδομένα εξόδου Πληκτρολόγιο Στοιχεία αυτοκινήτου με βάση την αναζήτηση που έκανε. Τα στοιχεία που εμφανίζονται είναι τα εξής: 37

- Κωδικός παραγγελίας - Πινακίδα Αυτοκινήτου - ΑΦΜ πελάτη - Κωδικός υπαλλήλου - Ημερομηνία Παραλαβής - Ημερομηνία Παράδοσης - Ημέρες ενοικίασης - Τόπος Παραλαβής - Τόπος Παράδοσης - Τιμή ενοικίασης (ανά ημέρα) - Συνολική Τιμή - Κατάσταση Προορισμός Προϋπόθεση Απαίτηση Πλευρικά φαινόμενα Εμφάνιση στην Οθόνη ή σε αρχείο excel Να υπάρχει ως εγγραφή ότι αναζητεί ο χρήστης π.χ. να υπάρχει ο κωδικός παραγγελίας με βάση τον οποίο γίνεται η αναζήτηση (αντίστοιχα να υπάρχει ο τόπος παράδοσης ή παραλαβής κ.α.) Η επιλογή που θα επιλέξει ο χρήστης να είναι εντός ορίων. Π.χ. να μην βάλει στον τόπο παραλαβής έναν αριθμό. Κανένα Όνομα διεργασίας 16 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Χρήση του συστήματός μας Θέλουμε το πρόγραμμα που φτιάξαμε να το θέσουμε σε λειτουργία και γι αυτό πρέπει να υπάρχει ένας web server με λειτουργικό σύστημα Windows ΧΡ Ο κώδικας (scripts) και η βάση δεδομένων Αρχεία Λειτουργία του συστήματος 38

Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Ο web server Ο web server να λειτουργεί σωστά Ο web server να είναι ανοικτός Να είναι εφικτή η εφαρμογή του συστήματός μας Κανένα Όνομα διεργασίας 17 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Εμφάνιση μηνύματος Ο χρήστης δεν υπάρχει (error message) Λυτό το μήνυμα θα εμφανίζεται σε περίπτωση που ο χρήστης δεν είναι εγγεγραμμένος στο αρχείο users, ή αν δεν έχει πληκτρολογήσει σωστά το e-mail ή το password e-mail password Εξαιρέσεις Μήνυμα -> Ο χρήστης δεν υπάρχει Οθόνη Καμία Να μην υπάρχει ο χρήστης Ακύρωση εισαγωγής στο σύστημα Κανένα Όνομα διεργασίας 18 Περιγραφή Δεδομένα εισόδου Εμφάνιση μηνύματος Το αυτοκίνητο που αναζητείται δεν υπάρχει (error message) Αυτό το μήνυμα θα εμφανίζεται σε περίπτωση που το αυτοκίνητο δεν υπάρχει Αρχείο Cars 39

Προέλευση Δεδομένα εξόδου Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Εξαιρέσεις Μήνυμα -> Το αυτοκίνητο που αναζητείται δεν υπάρχει Οθόνη Καμία Να μην υπάρχει το αυτοκίνητο Ακύρωση αίτησης πληροφοριών για το αυτοκίνητο, συνέχεια επόμενης αναζήτησης Κανένα Όνομα διεργασίας 19 Εμφάνιση μηνύματος Δεν μπορεί να διαγραφεί το αυτοκίνητο γιατι έχει παραγγελία με κατάσταση Pending ή Confirmed (error message) Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Αυτό το μήνυμα θα εμφανίζεται σε περίπτωση που ο super administrator θα προσπαθήσει να διαγράψει ενα αυτοκίνητο για το οποίο εκκρεμεί παραγγελία Αρχείο Orders Εξαιρέσεις Μήνυμα -> Δεν μπορεί να διαγραφεί το αυτοκίνητο γιατι έχει παραγγελία με κατάσταση Pending ή Confirmed Οθόνη Καμία Να εκκρεμεί παραγγελία στο συγκεκριμένο αυτοκίνητο. Ακύρωση διαγραφής αυτοκινήτου Κανένα 40

Όνομα διεργασίας 20 Περιγραφή Δεδομένα εισόδου Προέλευση Δεδομένα εξόδου Προορισμός Απαίτηση Προϋπόθεση Αποτέλεσμα Πλευρικά φαινόμενα Εμφάνιση μηνύματος Δεν μπορεί να διαγραφεί ο πελάτης γιατι έχει παραγγελία με κατάσταση Pending ή Confirmed (error message) Αυτό το μήνυμα θα εμφανίζεται σε περίπτωση που ο super administrator θα προσπαθήσει να διαγράψει εναν πελάτη για τον οποίο εκκρεμεί παραγγελία Αρχείο Orders Εξαιρέσεις Μήνυμα -> Δεν μπορεί να διαγραφεί ο πελάτης γιατί έχει παραγγελία με κατάσταση Pending ή Confirmed Οθόνη Καμία Να εκκρεμεί παραγγελία στο συγκεκριμένο πελάτη. Ακύρωση διαγραφής πελάτη Κανένα 41

2.3 Σχεδίαση Βάσης Δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Το μοντέλο οντοτήτων - σχέσεων (ER - Entity Relationship model) είναι μια διαγραμματική τεχνική αναπαράστασης οντοτήτων, σχέσεων και ιδιοτήτων ενός συστήματος. Τα δομικά στοιχεία του είναι τα εξής: > Ορθογώνιο παραλληλόγραμμο που συμβολίζει μια οντότητα, > Ρόμβος που συμβολίζει μία σχέση, > Έλλειψη που συμβολίζει μια ιδιότητα μιας οντότητας ή μιας σχέσης, > Έλλειψη με υπογράμμιση μιας ιδιότητας που συμβολίζει το κύριο κλειδί Τα σχήματα αυτά φέρουν το όνομα της αντίστοιχης οντότητας της σχέσης και συνδέονται μεταξύ τους με ευθύγραμμα τμήματα. 42

Οντότητες: ΥΠΟΚΑΤΑΣΤΗΜΑΤΑ (Κωδικός Υποκαταστήματος, Διεύθυνση, Πόλη, Χώρα, ΜετρητήςΑυτοκινήτων, ΜετρητήςΥπαλλήλων) ΑΥΤΟΚΙΝΗΤΑ (Πινακίδα, Υποκατάστημα, Διαθεσιμότητα, Τιμή, Κατηγορία, Κυβικά, Μάρκα, Μοντέλο, Χρονολογία, Φωτογραφία, Χρώμα, Περιγραφή) ΥΠΑΛΛΗΛΟΙ (Κωδικός Υπαλλήλου, Υποκατάστημα, E-mail, Κωδικός, Όνομα, Επώνυμο, Τηλέφωνο, Διεύθυνση, Περιοχή, Πόλη, Χώρα) ΠΕΛΑΤΕΣ (ΑΦΜ, E-mail, Κωδικός, Όνομα, Επώνυμο, Τηλέφωνο, Διεύθυνση, Περιοχή, Πόλη, Χώρα) ΧΡΗΣΤΕΣ (Κωδικός Χρήστη, E-mail, Κωδικός, Admin, ΑΦΜ_Πελάτη, Κωδικός Υπαλλήλου ) ΠΑΡΑΓΓΕΛΙΑ (Κωδικός Παραγγελίας, Πινακίδα, ΑΦΜ, Κωδικός Υπαλλήλου, Ημερομηνία_Παραλαβής, Ημερομηνία_Παράδοσης, Ημέρες_Κράτησης, Τόπος_Παραλαβής, Τόπος_Παράδοσης, Συνολική_Τιμή, Κατάσταση) Σχέσεις: ΠΕΛΑΤΗΣ - κάνει ^ ΠΑΡΑΓΓΕΛΙΑ, 1:Ν ΥΠΑΛΛΗΛΟΣ - κάνει ^ ΠΑΡΑΓΓΕΛΙΑ, 1:Ν ΠΑΡΑΓΓΕΛΙΑ - έχει ^ ΑΥΤΟΚΙΝΗΤΟ, 1:1 ΑΥΤΟΚΙΝΗΤΟ - ανήκει σε ^ ΚΑΤΗΓΟΡΙΑ, Ν:1 ΥΠΟΚΑΤΑΣΤΗΜΑ - έχει ^ ΑΥΤΟΚΙΝΗΤΟ, 1:Ν ΥΠΑΛΛΗΛΟΣ - διαχειρίζεται ^ ΑΥΤΟΚΙΝΗΤΟ, Ν:Μ 43

Λεξικό Οντοτήτων Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α C A R S Α Υ Τ Ο Κ ΙΝ Η Τ Α Τ ύ π ο ς Ο ν τ ο τ ή τ ω ν C A R S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : Plate Πινακίδα varchar(10) BranchCode Κωδικός υποκαταστήματος int( 11) Available διαθεσιμότητα tinyint(1) Price Τιμή ανά ημέρα double Brand Μάρκα varchar(10) Model Μοντέλο varchar(10) Category Κατηγορία varchar(1) Cubes Κυβικά int( 11) Year Χρονολογία int( 11) Photo Φωτογραφία tinyint(1) Color Χρώμα varchar(10) Description Περιγραφή varchar(40) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α B R A N C H E S Υ Π Ο Κ Α Τ Α Σ Τ Η Μ Α Τ Α Τ ύ π ο ς Ο ντο τ ή τω ν B R A N C H E S χ α ρ α κ τ η ρ ισ τ ικ ά : BranchCode Κωδικός υποκαταστήματος int( 11) BAddress Διεύθυνση Υποκαταστήματος varchar(30) BCity Πόλη υποκαταστήματος varchar(20) BCountry Χώρα Υποκαταστήματος varchar(20) CountCars Πλήθος Αυτοκινήτων int( 11) CountEmp Πλήθος Υπαλλήλων int( 11) μ ε Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α E M P L O Y E E S Υ Π Α Λ Λ Η Λ Ο Ι Τ ύ π ο ς Ο ντο τ ή τω ν E M P L O Y E E S χ α ρ α κ τ η ρ ισ τ ικ ά : Emp Id Κωδικός υπαλλήλου int( 11) BranchCode Κωδικός υποκαταστήματος int( 11) E-mail E-mail varchar(20) Password Κωδικός varchar(20) FName Όνομα varchar(20) LName Επώνυμο varchar(20) Tel Τηλέφωνο int( 11) EAddress Διεύθυνση υπαλλήλου varchar(30) ECity Πόλη υπαλλήλου varchar(20) State Περιοχή υπαλλήλου varchar(10) Country Χώρα υπαλλήλου varchar(20) μ ε Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α C U S T O M E R S Π Ε Λ Α Τ Ε Σ Τ ύ π ο ς Ο ντο τ ή τω ν C U S T O M E R S χ α ρ α κ τ η ρ ισ τ ικ ά : AFM ΑΦΜ πελάτη int( 11) μ ε 44

FName Όνομα varchar(20) LName Επώνυμο varchar(20) E-mail E-mail varchar(20) Password Κωδικός varchar(20) Tel Τηλέφωνο int( 11) CAddress Διεύθυνση πελάτη varchar(30) CCity Πόλη πελάτη varchar(20) State Περιοχή πελάτη varchar(10) Country Χώρα πελάτη varchar(20) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α U S E R S Χ Ρ Η Σ Τ Ε Σ Τ ύ π ο ς Ο ντο τ ή τ ω ν U S E R S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : ID ID χρήστη int( 11) E-mail E-mail varchar(20) Password Κωδικός varchar(20) Admin Δικαιώματα χρήστη int(1) AFM ΑΦΜ πελάτη int( 11) Emp Id Κωδικός υπαλλήλου int( 11) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α O R D E R S Π Α Ρ Α Γ Γ Ε Λ ΙΕ Σ Τ ύ π ο ς Ο ντο τ ή τ ω ν O R D E R S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : OrderCode Κωδικός παραγγελίας int( 11) Plate Πινακίδα varchar(10) AFM ΑΦΜ πελάτη int( 11) Emp Id Κωδικός υπαλλήλου int( 11) InDate Ημερομηνία παραλαβής date Outdate Ημερομηνία παραλαβής date DateDiff Σύνολο ημερών int (11) Price Τιμή ανά ημέρα double TotalPrice Συνολική Τιμή double InBranch Κατάστημα Παραλαβής int(10) OutBranch Κατάστημα παράδοσης Int(10) State Κατάσταση παραγγελίας varchar(40) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α C A T E G O R Y Κ Α Τ Η Γ Ο Ρ ΙΑ Τ ύ π ο ς Ο ντο τ ή τω ν C A T E G O R Y χ α ρ α κ τ η ρ ισ τ ικ ά : Category Κατηγορία Αυτοκινήτων varchar(1) Description Περιγραφή κατηγορίας varchar(40) μ ε Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α D E L E T E D _ C A R S Who Δ ΙΕ Γ Ρ Α Μ Μ Ε Ν Α Α Υ Τ Ο Κ ΙΝ Η Τ Α Ποιος administrator διέγραψε το συγκεκριμένο αυτοκίνητο Τ ύ π ο ς D E L E T E D _ C A R S χ α ρ α κ τ η ρ ισ τ ικ ά : Int( 11) Ο ντο τ ή τω ν μ ε 45

datetime Ημερομηνία διαγραφής Date Plate Πινακίδα varchar(10) BranchCode Κωδικός υποκαταστήματος int( 11) Available διαθεσιμότητα tinyint(1) Price Τιμή ανά ημέρα double Brand Μάρκα varchar(10) Model Μοντέλο varchar(10) Category Κατηγορία varchar(1) Cubes Κυβικά int( 11) Year Χρονολογία int( 11) Photo Φωτογραφία tinyint(1) Color Χρώμα varchar(10) Description Περιγραφή varchar(40) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α D E L E T E D _ C U S T O M E R S Δ ΙΕ Γ Ρ Α Μ Μ Ε Ν Ο Ι Π Ε Λ Α Τ Ε Σ Τ ύ π ο ς Ο ντο τ ή τω ν D E L E T E D _ C U S T O M E R S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : Who Ποιος administrator Int( 11) διέγραψε τον συγκεκριμένο πελάτη datetime Ημερομηνία διαγραφής Date AFM ΑΦΜ πελάτη int( 11) FName Όνομα varchar(20) LName Επώνυμο varchar(20) E-mail E-mail varchar(20) Password Κωδικός varchar(20) Tel Τηλέφωνο int( 11) CAddress Διεύθυνση πελάτη varchar(30) CCity Πόλη πελάτη varchar(20) State Περιοχή πελάτη varchar(10) Country Χώρα πελάτη varchar(20) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α D E L E T E D _ E M P L O Y E E S Δ ΙΕ Γ Ρ Α Μ Μ Ε Ν Ο Ι Υ Π Α Λ Λ Η Λ Ο Ι Τ ύ π ο ς Ο ντο τ ή τω ν D E L E T E D _ E M P L O Y E E S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : Who Ποιος administrator Int( 11) διέγραψε τον συγκεκριμένο υπάλληλο datetime Ημερομηνία διαγραφής Date Emp Id Κωδικός υπαλλήλου int( 11) BranchCode Κωδικός υποκαταστήματος int( 11) E-mail E-mail varchar(20) Password Κωδικός varchar(20) FName Όνομα varchar(20) LName Επώνυμο varchar(20) Tel Τηλέφωνο int( 11) EAddress Διεύθυνση υπαλλήλου varchar(30) ECity Πόλη υπαλλήλου varchar(20) State Περιοχή υπαλλήλου varchar(10) 46

Country Χώρα υπαλλήλου varchar(20) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α U P D A T E D _ C A R S Α Υ Τ Ο Κ ΙΝ Η Τ Α Π Ο Υ Ε Χ Ο Υ Ν Λ Α Β Ε Ι Α Λ Λ Α Γ Ε Σ Τ ύ π ο ς U P D A T E D _ C A R S χ α ρ α κ τ η ρ ισ τ ικ ά : Who Ποιος administrator έκανε Int( 11) αλλαγή στο συγκεκριμένο αυτοκίνητο datetime Ημερομηνία αλλαγής Date Plate Πινακίδα varchar(10) BranchCode Κωδικός υποκαταστήματος int( 11) Available Διαθεσιμότητα tinyint(1) Price Τιμή ανά ημέρα double Brand Μάρκα varchar(10) Model Μοντέλο varchar(10) Category Κατηγορία varchar(1) Cubes Κυβικά int( 11) Year Χρονολογία int( 11) Photo Φωτογραφία tinyint(1) Color Χρώμα varchar(10) Description Περιγραφή varchar(40) Ο ντο τ ή τω ν μ ε Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α U P D A T E D _ C U S T O M E R S Π Ε Λ Α Τ Ε Σ Π Ο Υ Ε Χ Ο Υ Ν Α Λ Λ Α Γ Ε Σ Λ Α Β Ε Ι Τ ύ π ο ς Ο ντο τ ή τω ν U P D A T E D _ C U S T O M E R S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : Who Ποιος administrator Int( 11) διέγραψε τον συγκεκριμένο πελάτη datetime Ημερομηνία αλλαγής Date AFM ΑΦΜ πελάτη int( 11) FName Όνομα varchar(20) LName Επώνυμο varchar(20) E-mail E-mail varchar(20) Password Κωδικός varchar(20) Tel Τηλέφωνο int( 11) CAddress Διεύθυνση πελάτη varchar(30) CCity Πόλη πελάτη varchar(20) State Περιοχή πελάτη varchar(10) Country Χώρα πελάτη varchar(20) Ό ν ο μ α Σ τ ο Μ Ο Σ Σ η μ α σ ιο λ ο γ ία Ν ό η μ α U P D A T E D _ E M P L O Y E E S Υ Π Α Λ Λ Η Λ Ο Ι Π Ο Υ Ε Χ Ο Υ Ν Α Λ Λ Α Γ Ε Σ Λ Α Β Ε Ι Τ ύ π ο ς Who Ποιος administrator Int( 11) διέγραψε τον συγκεκριμένο υπάλληλο datetime Ημερομηνία αλλαγής Date Ο ντο τ ή τω ν U P D A T E D _ E M P L O Y E E S μ ε χ α ρ α κ τ η ρ ισ τ ικ ά : 47

Emp Id Κωδικός υπαλλήλου int(11) BranchCode Κωδικός υποκαταστήματος int(11) E-mail E-mail varchar(20) Password Κωδικός varchar(20) FName Όνομα varchar(20) LName Επώνυμο varchar(20) Tel Τηλέφωνο int( 11) EAddress Διεύθυνση υπαλλήλου varchar(30) ECity Πόλη υπαλλήλου varchar(20) State Περιοχή υπαλλήλου varchar(10) Country Χώρα υπαλλήλου varchar(20) Σχήμα Σχέσεων CARS (Plate, BranchCode, Available, Price, Brand, Model, Category, Cubes, Year, Photo, Color, Description) BRANCHES (Branchcode, BAddress, BCity, BCountry, CountCars, CountEmp) EMPLOYEES (Emp Id, BranchCode, E-mail, Password, FName, LName, Tel, EAddress, ECity, State, Country) CUSTOMERS (AFM, FName, LName, Email, Password, Tel, CAddress, CCity, State, Country) USERS (ID, Email, Password, Admin, AFM, Emp_Id) ORDERS (OrderCode, Plate, AFM, Emp_Id, InDate, InBranch, OutDate, OutBranch, DateDiff, Price, TotalPrice, State) CATEGORY (Category, Description) DELETED_CARS (Who, datetime, Plate, BranchCode, Available, Price, Brand, Model, Category, Cubes, Year, Photo, Color, Description) DELETED_EMPLOYEES (Who, datetime, Emp Id, BranchCode, E-mail, Password, FName, LName, Tel, EAddress, ECity, State, Country) DELETED_CUSTOMERS (Who, datetime, AFM, FName, LName, Email, Password, Tel, CAddress, CCity, State, Country) UPDATED_CARS (Who, datetime, Plate, BranchCode, Available, Price, Brand, Model, Category, Cubes, Year, Photo, Color, Description) UPDATED _EMPLOYEES (Who, datetime, Emp Id, BranchCode, E-mail, Password, FName, LName, Tel, EAddress, ECity, State, Country) 48

UPDATED _CUSTOMERS (Who, datetime, AFM, FName, LName, Email, Password, Tel, CAddress, CCity, State, Country) Σημείωση: Για τους πίνακες Updated_Customers, Updated_Employees, Updated_Cars, Deleted_Customers, Deleted_Employees και Deleted_Cars ισχύει: Who=AFM (=) Updated From Customer/Web Για τον πίνακα Orders ισχύει Emp_Id=0 (=) Ordered From Customer/Web InBranch, OutBranch = BranchCode Employee.Emp_Id = Deleted_Customers.who Employee.Emp_Id = Updated_Customers.who Employee.Emp_Id = Deleted_Administrator.who Employee.Emp_Id = Updated_Administrator.who Employee.Emp_Id = Deleted_Cars.who Employee.Emp_Id = Updated_Cars.who Orders.Emp_Id = Users.User_Id = Customers.Emp_Id = Updated_Employees.Emp_id = Deleted_Employees.Emp_Id Users.Emp_Id = Employees.Emp_Id Customers.Afm = Users.Afm = Orders.Afm = Updated_customers.Afm = Deleted_customers.Afm Branches.BranchCode = Cars.BranchCode = Employees.BranchCode = Orders.InBranch = Orders.OutBranch Cars.Plate = Orders.Plate 49

2.4 Δημιουργία Βάσης Δεδομένων db1 Για να ανοίξουμε το Xampp πληκτρολογούμε στον explorer http://localhost/xampp/ Πατώντας στο menu το phpmyadmin εμφανίζονται οι επιλογές για τη δημιουργία της βάσης. 50

Εμείς την ονομάζουμε db 1 και στο collation επιλέγουμε greek_general_ci. Τέλος, πατάμε create για τη δημιουργία της. Αφου δημιουργηθεί η βάση, επιλέγουμε την καρτέλα import για να εισάγουμε τα creates.sql και τα insert.sql. 51

Πρώτα κάνουμε import το creates.sql (για τη δημιουργία των πινάκων) και μετά το insert.sql (για την εισαγωγή των εγγραφών στους πίνακες) Creates.sql create table Branches( BranchCode int NOT NULL auto_increment, BAddress varchar(30) COLLATE greek_general_ci, BCity varchar(15) COLLATE greek_general_ci, BCountry varchar(15) COLLATE greek_general_ci, CountCars int NOT NULL, CountEmp int NOT NULL, primary key (BranchCode) ); create table Cars( Plate varchar(10) COLLATE greek_general_ci NOT NULL, BranchCode int NOT NULL, Available bool NOT NULL, Price double NOT NULL, Category varchar(1) COLLATE greek_general_ci NOT NULL, Brand varchar(10) COLLATE greek_general_ci NOT NULL, Model varchar(10) COLLATE greek_general_ci NOT NULL, Cubes int NOT NULL, Year int NOT NULL, Photo bool, Color varchar(10) COLLATE greek_general_ci, Description varchar(40) COLLATE greek_general_ci, primary key (Plate) ); create table Employees( Emp_Id int NOT NULL auto_increment, BranchCode int NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, Tel int, EAddress varchar(30) COLLATE greek_general_ci NOT NULL, ECity varchar(20) COLLATE greek_general_ci NOT NULL, State varchar(10) COLLATE greek_general_ci NOT NULL, Country varchar(20) COLLATE greek_general_ci NOT NULL, primary key (Emp_Id) ); 52

create table Customers( Afm int NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, Tel int, CAddress varchar(30) COLLATE greek_general_ci NOT NULL, CCity varchar(20) COLLATE greek_general_ci NOT NULL, State varchar(10) COLLATE greek_general_ci NOT NULL, Country varchar(20) COLLATE greek_general_ci NOT NULL, primary key (Afm) ); create table Users( ID int NOT NULL auto_increment, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, Admin int(1) not null, Afm int NOT NULL, Emp_Id int NOT NULL, primary key (ID) ); create table Orders( OrderCode int NOT NULL auto_increment, Plate varchar(10) COLLATE greek_general_ci NOT NULL, Afm int NOT NULL, Emp_Id int NOT NULL, InDate date NOT NULL, OutDate date NOT NULL, DateDiff int NOT NULL, Price double NOT NULL, TotalPrice double NOT NULL, InBranch int NOT NULL, OutBranch int NOT NULL, State varchar(10) NOT NULL DEFAULT 'Pending', primary key (OrderCode) ); create table Updated_Cars( Who int NOT NULL, datetime date NOT NULL, Plate varchar(10) COLLATE greek_general_ci NOT NULL, BranchCode int NOT NULL, 53

Available bool NOT NULL, Price double NOT NULL, Category varchar(l) COLLATE greek_general_ci NOT NULL, Brand varchar(10) COLLATE greek_general_ci NOT NULL, Model varchar(10) COLLATE greek_general_ci NOT NULL, Cubes int NOT NULL, Year int NOT NULL, Photo bool, Color varchar(10) COLLATE greek_general_ci, Description varchar(40) COLLATE greek_general_ci, primary key (Plate) ); create table Deleted_Cars( Who int NOT NULL, datetime date NOT NULL, Plate varchar(10) COLLATE greek_general_ci NOT NULL, BranchCode int NOT NULL, Available bool NOT NULL, Price double NOT NULL, Category varchar(1) COLLATE greek_general_ci NOT NULL, Brand varchar(10) COLLATE greek_general_ci NOT NULL, Model varchar(10) COLLATE greek_general_ci NOT NULL, Cubes int NOT NULL, Year int NOT NULL, Photo bool, Color varchar(10) COLLATE greek_general_ci, Description varchar(40) COLLATE greek_general_ci, primary key (Plate) ); create table Updated_Employees( Who int NOT NULL, datetime date NOT NULL, Emp_Id int NOT NULL, BranchCode int NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, EAddress varchar(30) COLLATE greek_general_ci NOT NULL, ECity varchar(20) COLLATE greek_general_ci NOT NULL, State varchar(10) COLLATE greek_general_ci NOT NULL, Country varchar(20) COLLATE greek_general_ci NOT NULL, 54

Tel int, primary key (Emp_Id) ); create table Deleted_Employees( Who int NOT NULL, datetime date NOT NULL, Emp_Id int NOT NULL, BranchCode int NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, EAddress varchar(30) COLLATE greek_general_ci NOT NULL, ECity varchar(20) COLLATE greek_general_ci NOT NULL, State varchar(10) COLLATE greek_general_ci NOT NULL, Country varchar(20) COLLATE greek_general_ci NOT NULL, Tel int, primary key (Emp_Id) ); create table Updated_Customers( Who int NOT NULL, Afm int NOT NULL, datetime date NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, Tel int, CAddress varchar(30) COLLATE greek_general_ci NOT NULL, CCity varchar(20) COLLATE greek_general_ci NOT NULL, State varchar(10) COLLATE greek_general_ci NOT NULL, Country varchar(20) COLLATE greek_general_ci NOT NULL, primary key (Afm) ); create table Deleted_Customers( Who int NOT NULL, Afm int NOT NULL, datetime date NOT NULL, FName varchar(20) COLLATE greek_general_ci NOT NULL, LName varchar(20) COLLATE greek_general_ci NOT NULL, Email varchar(20) NOT NULL, Password varchar(20) COLLATE greek_general_ci NOT NULL, 55