THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Βάσεις Δεδομένων => Topic started by: Αλντεμπαράν on November 12, 2015, 02:05:56 am



Title: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Αλντεμπαράν on November 12, 2015, 02:05:56 am
Οι Βάσεις Δεδομένων είναι καλό μάθημα για τους κομπιουτεράκηδες.
Έχει εργασία να φτιάξεις βάση και στο τέλος την παρουσιάζεις στην τάξη (πλάκα είχε) .
Βατό μάθημα κ άμα κάνεις εργασία , απίθανο να κοπείς .


Βάσεις Δεδομένων
H αγάπη μου στα μαθήματα του κύριο Μήτκα είναι γνωστή, αλλά αυτό το μάθημα είναι το πιο ενδιαφέρον. Πραγματικά μαθαίνεις (κάνοντας την εργασία) αρκετά και σε ικανοποιητικό βαθμό πράγματα. Οι βάσεις δεδομένων είναι πιθανόν να σου χρειαστούν ότι και να κάνεις στο μέλλον (με δεδομένο ότι θα δουλέψεις ως μηχανικός). Το μάθημα έχει μια μεγάααλη εργασία, η οποία αν θυμάμαι καλά πιάνει το 40% (διορθώστε με αν κάνω λάθος), και αν ασχοληθείς με κάθε κομμάτι της, η εξέταση, αν και απαιτητική, θα σου προσφέρει ευκαιρία για καλό βαθμό χωρίς ιδιαίτερο διάβασμα.
Οι εργασίες του κύριο Μήτκα καταλήγουν πάντα σε σόου, και οι παρουσιάσεις προσφέρουν εμπειρία σε ανάλογες περιστάσεις, καθώς και αναπτύσετε και ένα ωραίο πνεύμα υγειούς ανταγωνισμού. (να είστε προετοιμασμένοι λοιπόν για δημόσια παρουσίαση της εργασίας σας)
Το μάθημα έχει και εχει και 3 εργαστήρια που απλά πρέπει να παρακολουθήσεις, ενώ δίνεται η δυνατότητα να τα επαναλάβεις μόνος σου όσες φορές θέλεις μέσω διαδικτύου.
Ο αριθμός φοιτητών ανά ομάδα κρίνεται ανάλογα με τον αριθμό των φοιτητών που θα παρακολουθήσουν το μάθημα. Υπολογίστε από 3 εώς 5 άτομα.
Βαθμός: 8


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


βασεις
μεσος ορος:7,5
βαζει βατα θεματα και δινεις με ανοιχτες σημειωσεις αλλα βαζει παρα πολλα οποτε πρεπει να τα ξερεις τελεια για τα γραψεις ολα.


H sql δεν ειναι ακριβως προγραμματισμος. Περισσοτερο μια γλωσσα περιγραφης συνολων ειναι. Αν διαβασεις και καταλαβεις το υλικο του μητκα πριν κανεις τις εργασιες δεν προκειται να σε ταλαιπωρησουν αλλα θελουν ασχολια και τρεξιμο για παρουσιασεις, καθηγητες κλπ. Οι εργασιες ειναι δυο, σχεδιαση της βασης και μετα υλοποιηση. Ειναι υποχρεωτικες απο την αποψη οτι πιανουν ενα μεγαλο ποσοστο του τελικου βαθμου και αν δεν τις κανεις πρεπει να γραψεις κανα 7 για να παρεις 5.


Βάσεις: Πολύ καλό μαθηματάκι. Ακόμη και γι'αυτούς που δεν γουστάρουν προγραμματισμό η sql είναι πολύ εύκολη. Η εργασία είναι ευχάριστη (2 παραδοτέα και μία παρουσίαση). Στις εξετάσεις συνήθως μπαίνουν νορμάλ θέματα και μπορείς συνολικά να πάρεις 8+. Επίσης είναι βοηθητικό και για την ασφάλεια που έχει εξίσου sql.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: raptalex on September 22, 2017, 15:37:39 pm
Για πείτε λίγο τι παίζει από εργασίες-παρουσιάσεις-εργαστήριο-παρακολούθηση μαθήματος. Υπάρχουν υποχρεωτικές εργασίες με παρουσίαση;;

Επίσης αν πάρει κάποιος μαζί Δομές και Ασφάλεια, υπάρχει επικάλυψη των μαθημάτων ως προς την ύλη;;

Επίσης χρειάζεται προαπαιτούμενες γνώσεις;; ( Πχ να ξέρεις κάποια γλώσσα προγραμματισμού καλά κτλπ)

Κάποιος παλιός αν μπορεί ας βοηθήσει.. :)


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: australopithecus on February 10, 2019, 05:13:33 am
επαναφερω την ερωτηση: η εργασια ειναι υποχρεωτικη; κι αν οχι, γραφεις 5 στα 10 για να περασεις ή πχ 5 στα 8;; για ιουνη ρωταω


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: pesto80 on September 02, 2019, 17:48:22 pm
να επιλεξω το μαθημα;


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Giopan on September 02, 2019, 19:15:26 pm
να επιλεξω το μαθημα;

Χμμμ...
Εγώ πήρα το μάθημα κατά το προηγούμενο Χειμερινό εξάμηνο. Το δίδασκε ο Θέμης Διαμαντόπουλος.

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

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

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

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

Αα έχει και ένα προαιρετικό εργαστήρι. Μου είπαν πως άξιζε να πηγαίνεις, αν και εγώ δεν πάτησα ποτέ.

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



Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Niri on September 02, 2019, 19:38:36 pm
Γενικα δεν ξερω κατα ποσο εχει νοημα να απανταμε αν αξιζει να παρει καποιος το μαθημα μιας και απ'οτι καταλαβαινω δεν το εχει ενας μονιμος καθηγητης αλλα αλλαζει απο χρονια σε χρονια και μπορει να αλλαζουν και αλλα πραγματα οσον αφορα τον τροπο διδασκαλιας.

Παρ'ολα αυτα για να απαντησω και στην ερωτηση. Το μαθημα ειναι αυτο που λεει και ο τιτλος. Αν σου αρεσει να ασχοληθεις με βασεις δεδομενων, οπως υπαρχουν πχ σε σερβερς στο ιντερνετ ορισμενες με κωδικα mySQL, τοτε να παρεις το μαθημα γιατι αξιζει. Στην ουσια μαθαινεις πως να σχεδιασεις μια βαση δεδομενων θεωρητικα αλλα και πως να την υλοποιησης πρακτικα.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Apostolof on September 18, 2019, 13:32:18 pm
Πιστεύω και φέτος αυτός θα το πάρει, οπότε γράφω και εγώ λίγα πράγματα για το μάθημα.

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

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

Αν θες να ασχοληθείς με software το μάθημα και οι γνώσεις για τις βάσεις δεδομένων είναι απαραίτητα νομίζω.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: tkostas13 on March 07, 2020, 19:31:37 pm
Το εχει ο θεμης μαθαινεις καλη sql και λιγο no-sql βασεις(mongoDB) και μετα απο αυτο το μαθημα μπορεις πολυ απλα να χτισεις μια βαση δεδομενων .Γενικα ειναι ωραιο το μαθημα βεβαια εχει πολυ δουλεια για την εργασια που ειναι στην ουσια να κανεις μια βαση δεδομενων αλλα αμα δε θες την εργασια που ειναι η πραξη τι να το κανεις αυτο το μαθημα ?
οσο για την εξεταση ειναι ηλεκτρονικη και ευκολη


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: pesto80 on March 07, 2020, 20:06:10 pm
Οσο το έχει ο Θεμης ο Διαμαντόπουλος αυτό το μάθημα θα είναι από τα ποιοτικότερα της σχολής. Ότι τομέας και να είσαι το περνάς σίγουρα και μάλιστα μπορείς να γράψεις και βαθμό. Ωστόσο προσοχή γιατί μέσα στο εξάμηνο απαιτεί ενασχόληση (όχι υπερβολική ούτε όμως και ελάχιστη). Στο τέλος οι γνώσεις που θα έχεις πάνω στις βάσεις θα είναι πολύ βασικές και χρειάζονται σε όσους ασχολούνται με software. Είναι από τα λίγα μαθήματα της σχολής που στο τέλος όντως καταλήγεις να αποκτάς ουσιαστικές γνώσεις ωστόσο...


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Xplicit on August 26, 2020, 11:11:19 am
Το μάθημα είναι must αν πρόκειται να ασχοληθείς με software. Τα πράγματα που διδάσκει ο Θέμης είναι up to date (σπάνιο στη σχολή μας) και πολύ χρήσιμα. Οι παραδόσεις είναι όντως λίγο βαρετές αλλα χρήσιμες. Δυστυχώς δεν μπορούσα να πάω στο εργαστήριο λόγω δουλειάς αλλα ανεβαίνει αναλυτικό υλικό στο elearning. Οι διαφάνειες είναι επίσης πολύ καλές και υπεραρκετές. Κανένας λόγος να ανοίξεις το τεράστιο βιβλίο.

Το μάθημα έχει μια μεγάλη εργασία που σπάει σε 2 κομμάτια υποχρεωτικά. Έχει αρκετή δουλίτσα αλλα είναι όλη η ουσία του μαθήματος καθώς σε προετοιμάζει πλήρως και για τις εξετάσεις. Επιπλέον, υπάρχει και ενα τρίτο προεραιτικό κομμάτι που είναι ουσιαστικά η δημιουργία του interface και η σύνδεση του με τη βάση που έχετε σχεδιάσει. Ασχοληθήκαμε 3-4 μέρες και πήραμε +0.5 με μέγιστο το 1.

Στις εξετάσεις έιχε αρκετά πολλαπλής επιλόγής και ενα κομμάτι που ζητούσε αποτελέσματα. Σου έδινε τα ζητούμενα και εσύ έπρεπε να γράψεις sql και να τα υπολογίσεις χρησιμοποιώντας μια βάση που στην έδινε και αυτή. Προφανώς ήταν πολύ μεγάλη και δεν μπορούσες να τα βρείς με το μάτι  ;D Εκεί βοηθάει άπειρα η ενασχόληση με την εργασία καθώς ο χρόνος είναι κλασικά οριακός και απαιτείται μια ευχέρεια με την sql.

Αν είστε ηλεκτρονικάριοι πάρτε το. Αν δεν είστε, πάλι είναι μια πολύ καλή επιλογή.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: leukosaraphs! on August 26, 2020, 11:40:15 am
Ότι είπε ο Xplicit.

Για το εργαστήριο θα σας πω εγώ που πήγαινα :P. Αρχικά, ανεβαίνει στο elearning άρα και να μην πάτε θα το έχετε σαν σημειώσεις. Το εργαστήριο δεν είναι κάτι τρομερό, ουσιαστικά βλέπεις τις εντολές που έκανες 1-2 μέρες πριν στην θεωρία πως γράφονται στην mysql. Εμένα προσωπικά με βόλεψε, γιατί μόνος δεν νόμιζω κάθε βδομάδα να καθόμουν να κάνω το εργαστήριο στο σπίτι και έτσι δεν έπεσε πολύ δουλειά στο τέλος.

Ίσως το μοναδικό - που μπορώ να σκεφτώ είναι η λίγη ενασχόληση με NoSQL βάσεις, που απλά αναφέρονται και γίνονται 1-2 εργαστήρια χωρίς να εξετάζονται και με κώδικα στο τέλος.

Για εμένα το μάθημα είναι must για κάθε τομέα, όπου και να δουλέψετε θα ασχοληθείτε με μια βάση ή ότι project και να κάνετε. Αν κάνεις κι την εργασία το μάθημα προσφέρεται και για βαθμό (προφανώς θέλει δουλειά).


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: pesto80 on September 28, 2020, 22:13:28 pm
Αν ασχολεισαι με τη σχολη, ΝΑΙ. Αν θες να περασεις αναίμακτα με διαβασμα 3 μερες παλιων θεματων, ΟΧΙ. Γαματες γνωσεις που η σχολη πολυ πολυ κακως τις δινει στο 5ο ετος. Θα επρεπε ηδη να σερβιρεται απο το 3ο. Επισης εχει προσθετικο (μικρο) κομματι που ειναι η ολοκληρωμενη αναπτυξη εφαρμογης οποτε ειναι κατι παραπανω απο ΒΔ εν τελει.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: HarryDresden on February 18, 2021, 22:00:01 pm
Να αναφερω εδω οτι ο Θεμης ειναι απο τους ελαχιστους που δεν γαμησαν την εξεταση επειδη ηταν εξ αποστασεως


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: panos98 on February 18, 2021, 22:25:06 pm
Να αναφερω εδω οτι ο Θεμης ειναι απο τους ελαχιστους που δεν γαμησαν την εξεταση επειδη ηταν εξ αποστασεως

Σημερα ηταν η πιο ξηγημενη εξεταση που εγινε απο issel
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy)  
ας το δουν λιγο στα προτυπα


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Emperor7 on March 05, 2021, 13:41:07 pm
Επέλεξα το μάθημα χωρίς να είμαι στον τομέα της ηλεκτρονικής και μπορώ να πω ότι είναι μια πολύ καλή επιλογή ανεξαρτήτως τομέα. Το αντικείμενο που διδάσκεται είναι αρκετά ενδιαφέρον και όχι κάτι τόσο δυσνόητο σαν έννοιες. Τα τελευταία χρόνια διδάσκεται από τον Θέμη Διαμαντόπουλο, που είναι από τους πιο ξηγημένους και συνεννοήσιμους καθηγητές. Περιλαμβάνει  μια εργασία που αποτελεί το 30% του βαθμού και καλό θα ήταν να γίνει από όλους όσους επιλέξουν το μάθημα, διότι ουσιαστικά είναι η ουσία όλου του μαθήματος(σχεδιασμός βάσης) και η ενασχόληση με αυτήν θα κάνει το έργο σου ευκολότερο για τις τελικές εξετάσεις. Η τελική εξέταση του μαθήματος καλύπτει σχεδόν όλη την ύλη, χωρίς ωστόσο να ζητηθεί κάτι εξεζητημένο, ενώ γενικά το μάθημα με στοιχειώδη ενασχόληση μέσα στο εξάμηνο(σε συνδυασμό πάντα με την εκπόνηση της εργασίας) προσφέρεται και για βαθμό.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: legen___dary on March 05, 2021, 14:34:36 pm
Ωραίο αντικείμενο, ωραίες εργασίες, τίμια εξέταση, άψογος διδάσκων. Για οποιονδήποτε ασχολείται κάπως σοβαρά με τη σχολή είναι must μάθημα. Ο Θέμης το έχει οργανώσει πολύ καλά, και είναι ξηγημενος σε κάθε φάση του μαθήματος (εργασίες, εξέταση κτλ). Αν κάνεις εργασίες, το οποίο προτείνω ανεπιφύλακτα, είναι σχεδόν σίγουρο οτι θα πάρεις έναν αρκετά καλό βαθμό και θα πάρεις μια καλή ιδέα για τις MySQL βάσεις δεδομένων .
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy)  


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: προφιτερόλ on March 05, 2021, 15:23:53 pm
Συμφωνώ οτι το μαθημα είναι μια μαστ επιλογη για το 9ο εξαμηνο. Και μαλιστα για ολους τους τομεις αν σε ενδιαφερει το αντικειμενο και οχι μονο για της ηλεκτρονικης. ΟΙ εργασιες εχουν καλη καθοδηγηση και βγαινουν χωρις να πελαωσεις η να μην βγαζεις ακρη. Αξιζει ::) ::)


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Prison Mike on March 05, 2021, 18:31:13 pm
Ωραίο αντικείμενο, ωραίες εργασίες, τίμια εξέταση, άψογος διδάσκων. Για οποιονδήποτε ασχολείται κάπως σοβαρά με τη σχολή είναι must μάθημα. Ο Θέμης το έχει οργανώσει πολύ καλά, και είναι ξηγημενος σε κάθε φάση του μαθήματος (εργασίες, εξέταση κτλ). Αν κάνεις εργασίες, το οποίο προτείνω ανεπιφύλακτα, είναι σχεδόν σίγουρο οτι θα πάρεις έναν αρκετά καλό βαθμό και θα πάρεις μια καλή ιδέα για τις MySQL βάσεις δεδομένων .
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy)  

+1 σε αυτά που είπε ο legendary


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Judas Priest saved me on August 30, 2021, 21:09:17 pm
Πραγματικά το μόνο μάθημα που είναι must στον τομέα της ηλεκτρονικής. Αν είσαι ηλεκτρονική πάρτο χωρίς καν να το σκεφτείς.

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

Από ηλεκτρονική πάρτε το 100% και ίσως είναι καλή επιλογή και για ορισμένους τηλεπ.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Phalanx on August 31, 2021, 14:24:48 pm
Αξίζει για ενεργειακό το μάθημα; Να σημειώσω πως δεν εχω ιδέα από βάσεις, ή οτιδηποτε άλλο προαπαιτούμενο.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: τόνγκα on August 31, 2021, 14:31:06 pm
Να προσθέσω ότι είναι από τα λίγα μαθήματα της σχολής που αν διαβάσεις αυτά που πρέπει, και καταλάβεις 5 βασικά πράγματα που θέλει να σου περάσει ο Θέμαρος, ΘΑ ΓΡΑΨΕΙΣ ΚΑΙ ΚΑΛΑ ΣΤΙΣ ΕΞΕΤΑΣΕΙΣ.
Δεν υπάρχει περίπτωση ο κόπος σου να πάει χαμένος όπως συμβαίνει με άλλα μαθήματα, ονόματα δε λέμε, "Ε τάτι ?"  :D.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Mandalorian on August 31, 2021, 17:06:04 pm
Αξίζει για ενεργειακό το μάθημα; Να σημειώσω πως δεν εχω ιδέα από βάσεις, ή οτιδηποτε άλλο προαπαιτούμενο.

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


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Phalanx on September 02, 2021, 01:06:41 am
Δεν χρειάζεται να ξέρεις κάτι από πριν. Το μάθημα, κατά τη γνώμη μου, είναι τόσο καλά στημένο που αν παρακολουθείς, είναι σίγουρο ότι δε θα ταλαιπωρηθείς στις εξετάσεις, καθώς επίσης θα σου μείνουν και 2 πράγματα παραπάνω. Είναι από τα λίγα μαθήματα του τομέα Ηλεκτρονικής που θα συνιστούσα σε κάποιον να πάρει σαν επιλογής.

Οκ τέλεια, αξίζει ακόμα και χωρίς Θέμη (αν δεν το έχει);


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: tigriss on September 26, 2021, 16:15:09 pm
ξέρουμε ποιός θα το έχει φετος?


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: angeli on October 05, 2021, 12:44:14 pm
Η εργασία είναι δύσκολη;; είναι μόνο μια και τέλος ή είναι σε τμήματα κάθε εβδομάδα άλλη παράδοση;


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Xplicit on October 05, 2021, 13:19:11 pm
Η εργασία είναι δύσκολη;; είναι μόνο μια και τέλος ή είναι σε τμήματα κάθε εβδομάδα άλλη παράδοση;

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

Τουλάχιστον αυτά ίσχυαν όταν το δίδαξε ο Θέμης σε εμάς το 19-20.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: panos98 on October 05, 2021, 15:39:42 pm
η εργασια θεωρειται απο τις πιο ευκολες του τομεα και ειδικοτερα των μαθηματων της issel. Ειναι δυο παραδοτεα το πρωτο σχεδιαση συμφωνα με οσα θα σας πει στη θεωρια και το δευτερο ειναι να γραψετε καποια ερωτηματα σε sql. Ολα διδασκονται στο μαθημα και ολα μπορουν να εφαρμοσθουν σε οποιοδηποτε θεμα εργασιας επιλεξετε. Οι προθεσμιες ειναι πολυ ανετες. Το τριτο προεραιτικο παραδοτεο ειναι να φτιαξετε το web application της βασης front end + back end. Αλλα εδω η προθεσμια ζοριζει αν δεν ξερετε  fullstack development . Αλλα μπορειτε να μαθετε απο δωρεαν tutorial στο YouTube μεχρι το χειμωνα ανετα
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy)  


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Arcade on February 17, 2022, 04:37:31 am
Ναι. Απλά ναι σε όλα. Τελεία, παράγραφος.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: The Audacious AI on February 22, 2022, 20:24:05 pm
Το μάθημα το έκανε ο Θέμης και φέτος. Διαλέξεις λιγάκι βαρετές αλλά αρκετά διδακτικές. Για την εξέταση (που είναι με όλα ανοιχτά) είναι αρκετά σημαντικό αν τις έχεις περάσεις ΟΛΕΣ και να θυμάσαι το τι είναι που.

Οι δύο υποχρεωτικές εργασίες που είναι κομμάτι του βαθμού είναι βατές αλλά θέλουν κάποια ενασχόληση. Στην πρώτη θα έχεις να κάνει με σχεσιακά σχήματα και το θεωρητικό στήσιμο της βάσης που είναι αρκετά εύκολο. Στην δεύτερη θα έχεις να γράψεις λίγο κώδικα σε mySQL που καλύπτεσαι από τα εργαστήρια (προαιρετικά). Η τρίτη και προαιρετική (παρ' ότι δεν δίνει αρκετό bonus για τον όγκο δουλειάς) έχει αρκετό ενδιαφέρον καθώς υλοποιείς την βάση σου. Θέλει γνώσεις εκτός μαθήματος (όχι κάτι ακραίο).

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


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Katarameno on February 22, 2022, 21:16:06 pm
Για μένα η είδηση είναι οτι το μάθημα είναι επιλογής! Εμάς ήταν βασικό στο 1ο ή 2ο έτος, δε θυμάμαι ακριβώς. Είχαμε τον κ. Πάγκαλο όμως. Δε καταλαβαίναμε χριστό στις παραδόσεις του, γιατί απλά ούτε οι μισοί δεν είχαμε υπολογιστή τότε  :D, τι βάσεις δεδομένων να καταλάβουμε...  ::) Όταν μετά από χρόνια δούλεψα ως προγραμματιστής και έφτιαξα τις πρώτες μου βάσεις δεδομένων άρχισα να θυμάμαι αχνά κάποιες ατάκες από τις παραδόσεις του, αλλά όχι πολλά. Αν το παρακολουθούσα μετά βέβαια θα πάθαινα μάλλον πλάκα.
Σοβαρά τώρα? Δεν είναι βασικό μάθημα, ειδικά έστω στον τομέα Ηλεκτρονικής/Υπολογιστών? Δε νοείται να θες να γράψεις κάποια σοβαρή εφαρμογή και να μην αποθηκεύει σε βάση δεδομένων τα δεδομένα.
Που θα τα αποθηκεύει? Σε ένα αρχείο *.ini πχ? Aυτά είναι για μικρές εφαρμογές.
Δλδ πχ το φόρουμ ως εφαρμογή αν δεν είχε πίσω του μια βάση δεδομένων, που θα τα έσωζε όλα μας τα ποστ, τα προφίλ, και την ίδια τη δομή του, με τα boards και τα τόπικ και τα downloads? Σε κανένα αρχείο που θα λεγόταν forum.tmp?  :D ::)

Ως μέθοδο πάντως θα απέφευγα να γράφω τα query σε stored procedures...  ;) Kαλύτερα (νομίζω) είναι να τα γράφεις μέσα στον κώδικα, στο εργαλείο προγραμματισμού που χρησιμοποιείς.
Τις μισούσα τις "stored procedures". Απ την άλλη μου φαινόταν απείρως πιο βολικό να βάζω ένα object "Query" από το toolbox στη φόρμα και να το ελέγχω από εκεί. Προτιμήσεις βέβαια είναι αυτές.

Μια μικρή περιγραφή για το τι κάνει ο παρακάτω κώδικας σε Delphi (Obj Pascal) : η φόρμα της web εφαρμογής παρακαλώ (2003) είχε πάνω 6 listboxes από τα οποία ο χρήστης επέλεγε όσες "ιδιότητες" ήθελε από το καθένα από τα εξής: κατηγορίες στοιχήματος / παιχνίδι / διοργάνωση / είδος στοιχήματος / κανάλι στοιχηματισμού / είδος πληρωμής / διοργάνωση και ανάλογα με τις επιλογές του του επέστρεφε μια λίστα με τα αποτελέσματα αναζήτησής του με τα στοιχεία του κάθε site (τίτλο / link κτλ))
Πραγματικός κώδικας που τρέχει ακόμα στον ... ΟΠΑΠ, (αφού τα exe που "έφτυνε" το εργαλείο των εργαλείων (το Borland Delphi Architect Edition σπασμένο φυσικά και κατεβασμένο με torrent από την αφεντομουτσουνάρα μου), "έπαιζαν" (έτρεχαν) τότε σε Windows 2000 Server / 2000 Professional / Windows XP και μετά κοιμόμουν ύσηχος αφού ήμουν σίγουρος οτι θα έπαιζε και σε Windows 7, 8, 10 και μάλλον και για 11 / Windows Server 2008 / 2012 κτλ. Διότι ο καλός προγραμματιστής προγραμματίζει με το βλέμμα στο μέλλον με μοναδικό σκοπό να μην τον ξαναενοχλήσουν ποτέ για κάποιο παλιό κώδικα και του χαλάσουν τον ύπνο, ή τίποτα άλλο)  

Με το που τα έβαζες πάνω στη φόρμα έγραφε το θηρίο μόνο του αυτά περίπου (έχω βγάλει ανούσιες λεπτομέρειες όπως η θέση του object πάνω στη φόρμα)

  object QCategD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from categories order by categ_name')
    object QCategDcateg_id: TIntegerField
      FieldName = 'categ_id'
      Origin = 'SPORTLINKSDB.categories.categ_id'
    end
    object QCategDcateg_name: TStringField
      FieldName = 'categ_name'
      Origin = 'SPORTLINKSDB.categories.categ_name'
      Size = 50
    end
  end
  object QGamesD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from games order by game_name')
  end
  object QLeaguesD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from leagues order by lg_name')

  end
  object QEidosD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Eidos order by eidos_name')
  end
  object QYpiresiesD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Ypiresies order by ypir_name')
  end
  object QGlossesD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Glosses order by gl_name')
  end
  object QCommentsD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Comments order by comment_date')
  end
  object QChannelsD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Channels order by Channel_name')
  end
  object QBillingsD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from Billing order by billing_name')
  end
  object QSoftwareD: TQuery
    DatabaseName = 'SportLinksDB'
    SQL.Strings = (
      'select * from SoftwareType order by softwtype_name')
  end
  object QCateg: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Categories order by Categ_Name;')
    object QCategcateg_id: TAutoIncField
      FieldName = 'categ_id'
      ReadOnly = True
    end
    object QCategcateg_name: TStringField
      FieldName = 'categ_name'
      Size = 50
    end
  end
  object QGames: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Games order by Game_Name;')
    object QGamesgame_id: TAutoIncField
      FieldName = 'game_id'
      ReadOnly = True
    end
    object QGamesgame_name: TStringField
      FieldName = 'game_name'
      Size = 50
    end
  end
  object QLeagues: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Leagues order by Lg_Name;')
    object QLeagueslg_id: TAutoIncField
      FieldName = 'lg_id'
      ReadOnly = True
    end
    object QLeagueslg_name: TStringField
      FieldName = 'lg_name'
      Size = 50
    end
  end
  object QEidos: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Eidos order by Eidos_Name;')
    object QEidoseidos_id: TAutoIncField
      FieldName = 'eidos_id'
      ReadOnly = True
    end
    object QEidoseidos_name: TStringField
      FieldName = 'eidos_name'
      Size = 50
    end
  end
  object QYpiresies: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Ypiresies order by Ypir_Name;')
    object QYpiresiesypir_id: TAutoIncField
      FieldName = 'ypir_id'
      ReadOnly = True
    end
    object QYpiresiesypir_name: TStringField
      FieldName = 'ypir_name'
      Size = 50
    end
  end
  object QGlosses: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Glosses order by Gl_Name;')
    object QGlossesgl_id: TAutoIncField
      FieldName = 'gl_id'
      ReadOnly = True
    end
    object QGlossesgl_name: TStringField
      FieldName = 'gl_name'
      Size = 50
    end
  end
  object QComments: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Comments order by Comment_Date;')
    object QCommentscomment_id: TAutoIncField
      FieldName = 'comment_id'
      ReadOnly = True
    end
    object QCommentscomment: TStringField
      FieldName = 'comment'
      Size = 1000
    end
    object QCommentscomment_date: TDateTimeField
      FieldName = 'comment_date'
    end
    object QCommentscomment_byUser: TStringField
      FieldName = 'comment_byUser'
      Size = 30
    end
    object QCommentss_id: TIntegerField
      FieldName = 's_id'
    end
  end
  object QChannels: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Channels order by Channel_Name;')
    object QChannelschannel_id: TAutoIncField
      FieldName = 'channel_id'
      ReadOnly = True
    end
    object QChannelschannel_name: TStringField
      FieldName = 'channel_name'
      Size = 100
    end
  end
  object QBillings: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from Billing order by Billing_Name;')
    object QBillingsbilling_id: TAutoIncField
      FieldName = 'billing_id'
      ReadOnly = True
    end
    object QBillingsbilling_name: TStringField
      FieldName = 'billing_name'
      Size = 100
    end
  end
  object QSoftware: TADOQuery
    Connection = SitesDataModule.SitesDb
    Parameters = <>
    SQL.Strings = (
      'Select * from SoftwareType order by Softwtype_Name;')
    object QSoftwaresoftwtype_id: TAutoIncField
      FieldName = 'softwtype_id'
      ReadOnly = True
    end
    object QSoftwaresoftwtype_name: TStringField
      FieldName = 'softwtype_name'
      Size = 100
    end
  end
  object DSSearchResults: TDataSource
    DataSet = QSearchResults
  end
  object QSearchResults: TADOQuery
    Connection = SitesDataModule.SitesDb
    BeforePost = QSearchResultsBeforePost
    Parameters = <>
    SQL.Strings = (
        'Select sid,s_name,s_address,s_country,s_company,s_importedby,s_l' +
        'astmodified from Sites;')
    object QSearchResultssid: TAutoIncField
      FieldName = 'sid'
      ReadOnly = True
    end
    object QSearchResultss_name: TStringField
      FieldName = 's_name'
      ReadOnly = True
      Size = 150
    end
    object QSearchResultss_address: TStringField
      FieldName = 's_address'
      ReadOnly = True
      Size = 150
    end
    object QSearchResultss_country: TStringField
      FieldName = 's_country'
      ReadOnly = True
      Size = 70
    end
    object QSearchResultss_company: TStringField
      FieldName = 's_company'
      ReadOnly = True
      Size = 70
    end
    object QSearchResultss_importedby: TStringField
      FieldName = 's_importedby'
      ReadOnly = True
      Size = 50
    end
    object QSearchResultss_lastmodified: TDateTimeField
      FieldName = 's_lastmodified'
      ReadOnly = True
    end
  end

έγραφες δηλαδή μισή σειρά select query, πανεύκολο πχ αυτό μόνο : "Select * from SoftwareType order by Softwtype_Name;"
του όριζες τη βάση δεδομένων που χτυπάει
και στον κώδικα στην πιο εξτρίμ περίπτωση έγραψα αυτά:

procedure TSearchSitesForm.SpBtnSearchClick(Sender: TObject);
var
  SqlString   : TStrings ;
  i, Count_Found : Integer ;
  Katigoria_id, Paixnidi_id, League_id,
  EidosStoiximatos_id, Ypiresia_id, Glossa_id,
  Kanali_id, Pleromi_id, Logismiko_id : Integer ;
  Katigoria_Name, Paixnidi_Name, League_Name,
  EidosStoiximatos_Name, Ypiresia_Name, Glossa_Name,
  Kanali_Name, Pleromi_Name, Logismiko_Name : String ;

begin
  try
    // {*************************************************************************}
    SqlString := TStringList.Create;  // <-- String List που θα Έχει το Παραγόμενο SQL
    // SqlString := 'Select * from Sites Order By s_name'  // Διόρθωση : 21/1/2003
    SqlString.Clear ;
    SqlString.Add('Select sid,s_name,s_address,s_country,s_company,s_importedby,s_lastmodified from Sites  where ');
    // Η 1η Γραμμή του SQL Query

    // {*************************************************************************}
    // Categories ********* Κατηγορίες
    if ListCateg.SelCount > 0 then
    begin  // Αρχή του if
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListCateg.Items.Count - 1 do
      if ListCateg.Selected then
      begin
        Katigoria_id := ListCateg.ItemIndex ;
        // {************************
        Katigoria_Name := ListCateg.Items ;
        with QCateg do
        begin
          First ;
          while not Eof do
          begin
            if (Katigoria_Name = QCateg.FieldByName('categ_name').AsString) then
              Katigoria_id := QCateg.FieldByName('categ_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QCateg do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesCategories where categ_id=' + IntToStr(Katigoria_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesCategories where categ_id=' + IntToStr(Katigoria_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Κατηγοριών *****************
    // {*************************************************************************}

    // {*************************************************************************}
    // Games ********* Παιχνίδια-Αθλήματα
    if ListGames.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListGames.Items.Count - 1 do
      if ListGames.Selected then
      begin
        Paixnidi_id := ListGames.ItemIndex ;
        // {************************
        Paixnidi_Name := ListGames.Items ;
        with QGames do
        begin
          First ;
          while not Eof do
          begin
            if (Paixnidi_Name = QGames.FieldByName('game_name').AsString) then
              Paixnidi_id := QGames.FieldByName('game_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesGames where game_id=' + IntToStr(Paixnidi_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesGames where game_id=' + IntToStr(Paixnidi_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Παιχνιδιών
    // {*************************************************************************}

    // {*************************************************************************}
    // Leagues ********* Διοργανώσεις
    if ListLeagues.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;

      for i := 0 to ListLeagues.Items.Count - 1 do
      if ListLeagues.Selected then
      begin
        League_id := ListLeagues.ItemIndex ;
        // {************************
        League_Name := ListLeagues.Items ;
        with QLeagues do
        begin
          First ;
          while not Eof do
          begin
            if (League_Name = QLeagues.FieldByName('lg_name').AsString) then
              League_id := QLeagues.FieldByName('lg_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesLeagues where lg_id=' + IntToStr(League_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesLeagues where lg_id=' + IntToStr(League_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Διοργανώσεων
    // {*************************************************************************}

    // {*************************************************************************}
    // EidosStoiximatos ********* Είδος Στοιχήματος
    if ListEidos.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListEidos.Items.Count - 1 do
      if ListEidos.Selected then
      begin
        EidosStoiximatos_id := ListEidos.ItemIndex ;
        // {************************
        EidosStoiximatos_Name := ListEidos.Items ;
        with QEidos do
        begin
          First ;
          while not Eof do
          begin
            if (EidosStoiximatos_Name = QEidos.FieldByName('eidos_name').AsString) then
              EidosStoiximatos_id := QEidos.FieldByName('eidos_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesEidi where eidos_id=' + IntToStr(EidosStoiximatos_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesEidi where eidos_id=' + IntToStr(EidosStoiximatos_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Ειδών Στοιχήματος
    // {*************************************************************************}

    // {*************************************************************************}
    // Ypiresies ********** Υπηρεσίες
    if ListYpiresies.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListYpiresies.Items.Count - 1 do
      if ListYpiresies.Selected then
      begin
        Ypiresia_id := ListYpiresies.ItemIndex ;
        // {************************
        Ypiresia_Name := ListYpiresies.Items ;
        with QYpiresies do
        begin
          First ;
          while not Eof do
          begin
            if (Ypiresia_Name = QYpiresies.FieldByName('ypir_name').AsString) then
              Ypiresia_id := QYpiresies.FieldByName('ypir_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesYpiresies where ypir_id=' + IntToStr(Ypiresia_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesYpiresies where ypir_id=' + IntToStr(Ypiresia_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Υπηρεσιών
    // {*************************************************************************}

    // {*************************************************************************}
    // Glosses ********** Γλώσσες
    if ListGlosses.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListGlosses.Items.Count - 1 do
      if ListGlosses.Selected then
      begin
        Glossa_id := ListGlosses.ItemIndex ;
        // {************************
        Glossa_Name := ListGlosses.Items ;
        with QGlosses do
        begin
          First ;
          while not Eof do
          begin
            if (Glossa_Name = QGlosses.FieldByName('gl_name').AsString) then
              Glossa_id := QGlosses.FieldByName('gl_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesGlosses where gl_id=' + IntToStr(Glossa_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesGlosses where gl_id=' + IntToStr(Glossa_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Γλωσσών
    // {*************************************************************************}

    // {*************************************************************************}
    // Channels ********** Κανάλια
    if ListChannels.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListChannels.Items.Count - 1 do
      if ListChannels.Selected then
      begin
        Kanali_id := ListChannels.ItemIndex ;
        // {************************
        Glossa_Name := ListChannels.Items ;
        with QGlosses do
        begin
          First ;
          while not Eof do
          begin
            if (Kanali_Name = QChannels.FieldByName('channel_name').AsString) then
              Kanali_id := QChannels.FieldByName('channel_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesChannels where channel_id=' + IntToStr(Kanali_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesChannels where channel_id=' + IntToStr(Kanali_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Καναλιών
    // {*************************************************************************}

    // {*************************************************************************}
    // Billings ********** Τρόποι Πληρωμής
    if ListBillings.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListBillings.Items.Count - 1 do
      if ListBillings.Selected then
      begin
        Pleromi_id := ListBillings.ItemIndex ;
        // {************************
        Pleromi_Name := ListBillings.Items ;
        with QBillings do
        begin
          First ;
          while not Eof do
          begin
            if (Pleromi_Name = QBillings.FieldByName('billing_name').AsString) then
              Pleromi_id := QBillings.FieldByName('billing_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesBilling where billing_id=' + IntToStr(Pleromi_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesBilling where billing_id=' + IntToStr(Pleromi_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Τρόπων Πληρωμής
    // {*************************************************************************}

    // {*************************************************************************}
    // Software Type ********** Είδη Λογισμικού
    if ListSoftware.SelCount > 0 then
    begin  // Αρχή του if
      if SqlString.Count > 1 then SqlString.Add(' AND ');   // Προσθέτουμε το AND εάν το SQLString έχει πάνω από 1 Σειρές
      SqlString.Add('(') ;  // Ανοίγουμε Παρένθεση γιατί μπορεί να έχει OR
      Count_Found := 0 ;
      for i := 0 to ListSoftware.Items.Count - 1 do
      if ListSoftware.Selected then
      begin
        Logismiko_id := ListSoftware.ItemIndex ;
        // {************************
        Logismiko_Name := ListSoftware.Items ;
        with QSoftware do
        begin
          First ;
          while not Eof do
          begin
            if (Logismiko_Name = QSoftware.FieldByName('softwtype_name').AsString) then
              Logismiko_id := QSoftware.FieldByName('softwtype_id').AsInteger ;
            Next ;
          end; // Τέλος του while not Eof do
        end; // Τέλος του with QGames do
        // {************************
        Inc(Count_Found) ;
        if Count_Found = 1 then  // Στο Πρώτο Επιλεγμένο Δέν Βάζουμε OR
          SqlString.Add('    sid in (select s_id from SitesSoftwareType where softwtype_id=' + IntToStr(Logismiko_id)+' ) ')
        else
          SqlString.Add(' OR sid in (select s_id from SitesSoftwareType where softwtype_id=' + IntToStr(Logismiko_id)+' ) ');
      end;
      SqlString.Add(')');  // Κλείνουμε Παρένθεση
    end; // Τέλος των Ειδών Λογισμικού
    // {*************************************************************************}

    // Finalisation
    // {*************************************************************************}
    MemoSQLDebug.Lines.Assign(SqlString); // Για να βλέπουμε το SQL Query που παράγεται ανάλογα με τις επιλογές του χρήστη στο memo - Είναι για debug μόνο - θα φύγει μετά (απλά hidden)
    if SqlString.Count = 1 then         // Αν δεν έχει επιλέξει τίποτα - αν θέλουμε τα δείχνουμε
    begin                               // όλα τα Sites αλλά πρέπει να βγάλουμε το where από το αρχικό SQL Query
      SqlString.Clear ;
      SqlString.Add('Select sid,s_name,s_address,s_country,s_company,s_importedby,s_lastmodified from Sites order by s_name');
      // Για να Δείχνει Όλες τις Ιστοσελίδες
    end;

    MemoSQLDebug.Lines.Add('// {*************************************************************************');
    for i := 0 to SqlString.Count - 1 do
    begin
      MemoSQLDebug.Lines.Add(SqlString.Strings) ;
    end;  // Τέλος του for i := 0 to SqlString.Count - 1 do  
    MemoSQLDebug.Lines.Add('// {*************************************************************************');

    // {*************************************************************************}
    if CheckBoxDebugMode.Checked then
      DxPageControlSearchBy.ActivePage := DxTabSheetMemoSQLDebug
      // Αν είναι Τσεκαρισμένη η Επιλογή DebugMode μεταφερόμαστε στο Tab DxTabSheetMemoSQLDebug
    else
      DxPageControlSearchBy.ActivePage := DxTabSheetSearchResults ;
      // Αν δέν είναι Τσεκαρισμένη η Επιλογή DebugMode μεταφερόμαστε στο Tab DxTabSheetSearchResults
    // {*************************************************************************}
    if SqlString.Count > 1 then
    begin
      i := 0 ;
      QSearchResults.SQL.Clear ;
      for i := 0 to SqlString.Count - 1 do
      begin
        QSearchResults.SQL.Add(SqlString.Strings) ;
      end; // Τέλος του for i := 0 to SqlString.Count - 1 do
    end; // Τέλος του if SqlString.Count > 1 then
    if CheckBoxDebugMode.Checked then
      ShowMessage(QSearchResults.SQL.Text);
      // Αν είναι Τσεκαρισμένη η Επιλογή DebugMode μεταφερόμαστε στο Tab DxTabSheetMemoSQLDebug

    QSearchResults.Active := True ;    // Ανοίγουμε το Query QSearchResults
    // {*************************************************************************}
    SqlString.Free ;
    // {*************************************************************************}

  except on e: Exception do
    begin
      ShowMessage('Παρουσιάστηκε Σφάλμα στην Διαδικασία Δημιουργίας του Query της Φόρμας Αναζήτησης Ιστοσελίδων Αθλητικού '
                  + 'Περιεχομένου Ανά Όνομα / Ιδιότητα (SearchSitesForm.SpBtnSearchClick) με μύνημα: ' + e.Message ) ;
      WriteLog('Παρουσιάστηκε Σφάλμα στην Διαδικασία Δημιουργίας του Query της Φόρμας Αναζήτησης Ιστοσελίδων Αθλητικού '
               + 'Περιεχομένου Ανά Όνομα / Ιδιότητα (SearchSitesForm.SpBtnSearchClick) με μύνημα: ' + e.Message ) ;
    end;  // Τέλος του on e: Exception do
  end;  // Τέλος του try/except
end;  // Τέλος της Διαδικασίας
// {*************************************************************************}

Ούτε το Google δεν είχε να ψάχνεις επιλέγοντας με κλικ από λίστες ιδιοτήτων. Eat my dust google search.

 :P


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: nicksterghs on May 27, 2022, 13:25:46 pm
παιδια αν δεν εχεις κανει εργασιες μπορεις να δωσεις η εχει και υποχρεωτικο εργαστηριο?


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: tasosl on May 27, 2022, 13:35:05 pm
μπορείς να δώσεις αλλά πας με άριστα το 7
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy) 


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: tasosl on May 27, 2022, 13:35:24 pm
τα εργαστήρια δεν είναι υποχρεωτικά. οι εργασίες ήταν.
sent from mTHMMY (https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy) 


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Dsavvaog on September 18, 2022, 22:45:27 pm
Εγώ το τρέχον εξάμηνο θα κάνω πρακτική και δουλεύω ακόμα διπλωματική. Σκέφτομαι λοιπόν να πάρω το συγκεκριμένο μάθημα καθώς μου μένει ένα μάθημα για πτυχίο και οτιδήποτε διάβασα ή άκουσα σε σχέση με το μάθημα ήταν θετικό. Θα έχω πρόβλημα διαχείρισης χρόνου ή περνιέται και έτσι το μάθημα;


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: The Audacious AI on September 19, 2022, 00:02:40 am
Εγώ το τρέχον εξάμηνο θα κάνω πρακτική και δουλεύω ακόμα διπλωματική. Σκέφτομαι λοιπόν να πάρω το συγκεκριμένο μάθημα καθώς μου μένει ένα μάθημα για πτυχίο και οτιδήποτε διάβασα ή άκουσα σε σχέση με το μάθημα ήταν θετικό. Θα έχω πρόβλημα διαχείρισης χρόνου ή περνιέται και έτσι το μάθημα;
Δεν θα έχεις πρόβλημα. Απλώς θέλει ομάδα. Αν έχεις βγαίνει χωρίς πολλή δουλειά και αρκετά εύκολα. Η εξέταση είναι βατή με σχετικά λίγο διάβασμα. Το προτείνω.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Dsavvaog on September 19, 2022, 01:02:54 am
Δεν θα έχεις πρόβλημα. Απλώς θέλει ομάδα. Αν έχεις βγαίνει χωρίς πολλή δουλειά και αρκετά εύκολα. Η εξέταση είναι βατή με σχετικά λίγο διάβασμα. Το προτείνω.

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


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Caterpillar on September 19, 2022, 07:29:31 am
Είδα νωρίτερα το πρόγραμμα σπουδών για το τρέχον ακαδημαϊκό έτος και γράφει ότι θα οριστεί διδάσκων για το συγκεκριμένο μάθημα. Αυτό σημαίνει ότι ίσως αλλάξει εντελώς η οργάνωση του μαθήματος (σύμφωνα με το νέο καθηγητή);

Κάθε χρόνο θα οριστεί γράφει η 1η εκδοχη του προγ. σπουδων και το παίρνει ο Θέμης τα τελευταια χρονια. Ελπιζω να το παρει και φετος. Απλά γράφει θα οριστεί γιατί ο Θέμης είναι μεταδιδακτορικος και όχι μόνιμος καθηγητης.


Title: Re: [Βάσεις Δεδομένων] Να επιλέξω το μάθημα;
Post by: Caterpillar on March 07, 2023, 00:22:57 am
Και φέτος ήμασταν τυχεροί και το είχε ο Θέμαρος.

Κάποιες διαλέξεις ήταν λίγο βαρετές αλλά σε γενικές γραμμές ήταν χρήσιμες (όπως έχει ήδη ειπωθεί  :P) Έκανα ένα μόνο εργαστήριο στην βεργίνα τα υπόλοιπα τα έκανα μόνος μου από το σπίτι αρκετά απλά μου φάνηκαν, βασικά μου φάνηκαν απλά γιατί ο Θέμης μας παρέχει ότι ακριβώς χρειαζόμαστε. Στα 5 πρώτα εργαστήρια γίνονται MySQL βάσεις, ενώ στα 2 τελευταια NoSQL  βάσεις.

Έχει μια ομαδική εργασία σε ομάδες 3 ατομών (2 παραδοτέα  30% του βαθμού + 1 προαιρετικό παραδοτέο όπου δίνει 1 μονάδα μπόνους), όπου θα πρέπει νά κάνετε μια σχεσιακή βάση δεδομένων. Το θέμα το επιλέγετε η κάθε ομάδα, οπότε βρείτε κάτι πρωτότυπο γιατί το εκτιμά σίγουρα, (σε αρκετά προτότυπο θέμα που δεν έχει ξαναγίνει καμία άλλη χρονιά δίνει κάποιο μπόνους  ;)). Η πιο εύκολη εργασία που είχα στην σχόλη θα πω ότι ήταν. Η βαθμόληγηση της εργασίας μου φάνηκε αρκετά κομπλέ. (αν και αν βαριέστε μπορεί να σας κόψει για διάφορα χαζά, ακόμα και για χαμηλή ποιότητα μιας εικόνας στην αναφορά  :P ). Το πρώτο παραδοτέο δεν έχει καθόλου κώδικα, αλλά έχει να κάνετε μια αναφορά με διάφορα διαγραμμάτα, πίνακες, παραδείγματα κλπ. Στο δεύτερο παραδοτέο έχει να γράψεις ελάχιστο κώδικα, όλη βάση στην ουσία παράγεται αυτόματα, εσείς θα γράψετε ελάχιστο κώδικα απλά κάποια ερωτήματα στην βάση σας. Ίσως το ποιο εκνευριστικό στάδιο τις εργασίας είναι στο 2ο παραδοτέο όπου πρέπει να γεμίσεις την βάση σου με δεδομένα (τα νεύρα μου :P).  Στην αρχή του εξαμήνου κάνει η κάθε ομάδα μια 3λεπτη παρουσίαση με το θέμα της βάσης που θέλει να κάνει, και στο τέλος του εξαμήνου πάλι κάθε ομάδα κάνει μια παρουσίαση για την βάση που έκανε. Οι καλύτερες παρουσιάσεις (που γινονται στο τελος του εξαμηνου και βαθμολογούντε από τις υπόλοιπες ομάδες) παίρνουν μια μονάδα μπονους.

Στις εξετάσεις (κουιζ στο elearning) εξετάζεστε εφ ολων των διαφάνειων (τις οποίες τις έχεις ανοιχτες την ώρα τις εξέτασης) και των εργαστηρίων (και αυτά ανοιχτά τα έχετε).  Πέφτουν ερωτήσεις θεωρίας αρκετά απλές, κάποιες φορές ενδεχομένως θα χρειαστεί με ctrl +f να ψάξεις στις διαφάνειες, για αυτό καλό θα ήταν να ξερεις τι έχει κάθε διάλεξη και να μην χάνεις χρόνο εκείνη την ώρα ψάχνοντας σε όλες τις διαλέξεις, αλλα να πας κατευθειαν στην σωστή.
Μετά πέφτουν ερωτήσεις MySQL, στην ουσία πέφτουν ότι έχεις μάθει στα πρώτα εργαστήρια και στο 2ο παραδοτέο της εργασίας, αν έχεις κάνει στην ουσία την εργασία είσαι πανέτοιμ@. Σε αυτά τα ερωτήματα θα χρειαστεί να γράψετε λίγο κώδικα (όπως και στο 2ο παραδοτεό της εργασίας).
Τέλος πέφτουν και 2 ερωτήσεις για MongoDB, εδώ δεν θα χρειαστεί να γράψεις κώδικα, απλά να κατανοεισεις κώδικα MongoDB. αν έχεις δει αυτά που κανατε στα τελευταια εργαστήρια είσαι κομπλέ.

Οι βαθμοί των εξετάσεων ? Πολύ κομπλέ. Από τα 140 άτομα που το έδωσαν, πέρασαν τα 133 και ο μ.ο. ήταν στο 8.6. Το μοναδικό μάθημα 9ου εξαμήνου που να έχει τόσα άτομα! Όσο το έχει ο Θέμης το προτείνω σε άτομα όλων των τομέων. (οι ενεργειακοι αν ανυσηχειτε,  ο κώδικας που θα γράψεται είναι ελάχιστος).