Git Product home page Git Product logo

airportdb's Introduction

ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ΑΕΡΟΔΡΟΜΙΟΥ

ΧΕΙΜΩΝΑΣ 2023 - ΕΚΘΕΣΗ ΕΡΓΑΣΙΑΣ

                             |
                             |
                           .-'-.
                          ' ___ '
                  -------'  .-.  '-------
_________________________'  '-'  '_________________________
 ''''''-|---|--/    \==][^',_m_,'^][==/    \--|---|-''''''
               \    /  ||/   H   \||  \    /
                '--'   OO   O|O   OO   '--'

Abstract

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

ΣΗΜΑΝΤΙΚΟ: Όλες οι ώρες άφιξης ή αναχώρησης που γράφονται στη Βάση, είναι μετρημένες στη ζώνη ώρας του Greenwich. Έτσι αποφεύγεται η σύγχυση σε πτήσεις που αλλάζει η ζώνη ώρας, ή μεταξύ χωρών που η μία χρησιμοποιεί θερινή ώρα και η άλλη όχι.

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

Tables

Ο πίνακας Airline περιλαμβάνει το όνομα της αεροπορικής εταιρείας και το designator της που αποτελείται από δύο alphanumeric χαρακτήρες.

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

Ο πίνακας Airport περιλαμβάνει τον κωδικό τριών χαρακτήρων που έχει δώσει η IATA στο αεροδρόμιο, τη χώρα στην οποία βρίσκεται, τη ζώνη ώρας, το πλήρες όνομά του και τις γεωγραφικές του συντεταγμένες σε δεκαδική μορφή.

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

Βασικός λόγος για τον οποίο δεν χρησιμοποιήθηκε τελικά ο Country, είναι ότι δεν περιλαμβάνει τις ζώνες ώρας, οι οποίες έτσι και αλλιώς μπορεί να μην είναι ίδιες σε όλες τις περιοχές μιας χώρας. Γι’ αυτό, θα ήταν λάθος η ζώνη ώρας του αεροδρομίου να είναι η ζώνη ώρας της χώρας στην οποία ανήκει, καθώς αυτό δεν ισχύει πάντα.

Ο πίνακας Department περιλαμβάνει το όνομα του κάθε παραρτήματος του αεροδρομίου και μια στήλη για να αποθηκεύεται ο κωδικός του υπεύθυνου εργαζομένου (manager).

Ο πίνακας Employee αποθηκεύει τα στοιχεία των εργαζομένων, ΑΦΜ, κύριο και μεσαίο όνομα, επώνυμο, τηλέφωνο επικοινωνίας, διεύθυνση email, διεύθυνση που αποτελείται από οδό, αριθμό, πόλη κατοικίας και ταχυδρομικό κώδικα, ημερομηνία γέννησης, κωδικό παραρτήματος στο οποίο εργάζεται και φύλο.

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

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

Ο πίνακας Schedule περιέχει πληροφορίες για τις πτήσεις που είναι προγραμματισμένες να γίνονται κάθε εβδομάδα, τις ίδιες μέρες και την ίδια ώρα, κωδικό πτήσης, αεροδρόμιο αφετηρίας και προορισμού, ώρα αναχώρησης, ώρα άφιξης, τις μέρες που θα γίνεται η πτήση, ημερομηνία και ώρα τελευταίας τροποποίησης και ένδειξη αν η εγγραφή είναι ενεργή. Στο πεδίο occurrences καταμετράται τακτικά και καταγράφεται ο αριθμός των εγγεγραμμένων πτήσεων στον πίνακα Flight με τον κωδικό της προγραμματισμένης. Για παράδειγμα, μια προγραμματισμένη πτήση από την Αθήνα στη Θεσσαλονίκη που γίνεται όλο τον χρόνο στις 9 το πρωί σε ώρα Greenwich, δηλαδή στις 7 το πρωί σε τοπική ώρα τους χειμερινούς μήνες, από Δευτέρα έως Παρασκευή. Κάθε οντότητα Schedule έχει έναν κωδικό πτήσης.

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

Ο πίνακας State περιλαμβάνει όνομα και περιγραφή για την κάθε κατάσταση που μπορεί να βρίσκεται κάποια εγγραφή του πίνακα Flight.

Views

Στην βάση υλοποιήθηκαν μερικά Views, για queries που χρειάστηκε να γίνονται συχνά. Το AirplaneAirline με join των δύο πινάκων τυπώνει όλα τα αεροπλάνα μαζί με το όνομα της αεροπορικής εταιρείας στην οποία ανήκουν. Το Arrival φιλτράρει των πίνακα Flight και τυπώνει μόνο όσες πτήσεις αποτελούν άφιξη. Το Departure λειτουργεί ομοίως. Το EmployeeView τυπώνει όλες τις εγγραφές του Employee, αντικαθιστώντας τα sex και τα dept_id με τα κανονικά ονόματά τους. Το ManagerView τυπώνει τα Departments μαζί με το όνομα των managers. Οι managers θεωρήθηκε πως ανήκουν στο department του Administration. Τέλος, το ScheduleView τυπώνει τις ενεργές εγγραφές του Schedule, αντικαθιστώντας τα ids με όνομα αεροπορικής και κωδικούς IATA αεροδρομίων.

DEPENDENCIES

PySimpleGUI

Package website: https://www.pysimplegui.org/en/latest/

Download here: https://pypi.org/project/PySimpleGUI/4.18.0/

PIP instruction: pip install PySimpleGUI

Flet (Flutter for Python)

Package website: https://flet.dev/docs/

Download here: https://pypi.org/project/flet/

PIP instruction: pip install flet

simplekml

Package website: https://simplekml.readthedocs.io/en/latest/index.html

Download here: https://pypi.org/project/simplekml/

Pip instruction: pip install simplekml

airportdb's People

Contributors

alextsakir avatar themispan02 avatar

Stargazers

 avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.