Δημιουργήστε μια
βάση δεδομένων στον SQL Server με όνομα ΑΤΖΕΝΤΑ όπου ο πίνακας με όνομα FILOI θα έχει τα παρακάτω πεδία, όπου θα καταχωρούνται στοιχεία φίλων και
γνωστών.
1. Εμφανίστε
όλα τα στοιχεία των φίλων σας που το επίθετό τους αρχίζει πχ από Κ
2.
Εμφανίστε Επίθετο, Όνομα και Κινητό των φίλων σας που γεννήθηκαν μετά το 1997 και είναι από την πόλη Σέρρες.
3.
Ομαδοποιήστε τους φίλους σας ανά πόλη και μετρήστε πόσοι είναι από κάθε πόλη
4.
Ομαδοποιήστε τους φίλους σας ανά Σχόλιο και μετρήστε πόσοι είναι φίλοι και
πόσοι γνωστοί
5.
Προβάλετε τις καταχωρήσεις που κατάγονται από την ίδια πόλη που κατάγεται ο
Γεωργίου (φωλιασμένο ερώτημα)
6.
Προβάλετε σε ένα ερώτημα τις καταχωρήσεις που κατάγονται από Αθήνα και αυτές
από Θεσσαλονίκη
Πως γίνεται η
σύνδεση μεταξύ μιας βάσης δεδομένων και μιας εφαρμογής γραμμένης σε C++ Builder. Καταρχήν κάντε restore την βάση ΑΤΖΕΝΤΑ που δημιουργήσατε στην
άσκηση 1. Δημιουργήστε μία απλή φόρμα που θα προβάλει τα στοιχεία ενός
ερωτήματος ή πίνακα με ευκολία μετακίνησης στις εγγραφές.
Η σύνδεση θα γίνει
με ADO (ActiveX Data Object)
Η άσκηση αυτή,
αφορά την δημιουργία μια βάσης δεδομένων και της αντίστοιχης εφαρμογής
διαχείρισης των δεδομένων μιας εικονικής επιχείρησης, ενοικίασης αυτοκινήτων στην περίπτωση μας.
Στη βάση δεδομένων
θα αποθηκεύονται τα σταθερά στοιχεία των πελατών, των αυτοκινήτων καθώς και
πληροφορίες που αφορούν τις ενοικιάσεις
των αυτοκινήτων, τις χρεώσεις από κάποια ημερομηνία ενοικίασης του αυτοκινήτου
μέχρι την ημερομηνία επιστροφής, την καταγραφή και κοστολόγηση πιθανών ζημιών
που έκανε ο πελάτης στο αυτοκίνητο κατά τη διάρκεια της ενοικίασης.
Για την υλοποίηση
της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:
1. Δημιουργήστε μία νέα βάση δεδομένων στον SQL Server
με όνομα ENOIKIASEIS_AYTOKINHTON_EPITHETO
Χρησιμοποιείτε
κεφαλαία γράμματα για την ονομασία Βάσεων δεδομένων, πινάκων, πεδίων για την
διευκόλυνσή σας.
Επίσης εάν θέλετε
το όνομα βάσης, πίνακα ή πεδίου να
αποτελείται από δύο ή περισσότερες λέξεις καλό είναι να τις ενώνετε με την κάτω
παύλα (_) όπως βλέπετε και στο παραπάνω όνομα της βάσης
ΠΑΡΑΤΗΡΗΣΗ: Για να έχει ένα
πεδίο Αυτόματη αρίθμηση θα πρέπει να αλλάξετε τις ιδιότητες Identity=Yes (Not
for replication), Seed=1 που αναφέρετε στον γόνο από όπου θα ξεκινήσει η
αρίθμηση, Increment=1 όπου ορίζετε το βήμα με το οποίο θα αυξάνει η αρίθμηση.
Ορίστε το πεδίο ΚΕΝ
(που αναφέρεται στον Κωδικό Ενοικίασης αυτοκινήτου) να έχει αυτόματη αρίθμηση.
3. Δημιουργήστε νέο διάγραμμα (Diagram) και ορίστε τις συσχετίσεις μεταξύ των πινάκων
όπως βλέπετε στην παρακάτω εικόνα.
4. Καταχωρήστε εγγραφές για κάθε πίνακα
5. Δημιουργήστε
τα παρακάτω ερωτήματα SQL με την μορφή όψεων (Views)
i. Εμφανίστε αναλυτικά το ιστορικό
ενοικιάσεων των πελατών
ii. Εμφανίστε τα αυτοκίνητα που δεν
ενοικιάστηκαν ποτέ
iii. Προβάλετε τα στοιχεία του κάθε πελάτη με το
συνολικό ποσό που πλήρωσε.
iv. Προβάλετε τα στοιχεία του κάθε πελάτη με
το μέγιστο συνολικό ποσό.
v. Προβάλετε τα στοιχεία του αυτοκινήτου που
προτιμούν να νοικιάζουν οι πελάτες.
vi. Εμφανίστε το ποσοστό των ενοικιάσεων κατά
το οποίο συνέβη ζημία σε ενοικιαζόμενο αυτοκίνητο.
6. Πάρτε αντίγραφο ασφαλείας (Backup) από την βάση και αποθηκεύστε το με όνομα
ΕΠΙΘΕΤΟ_ΑΥΤΟΚΙΝΗΤΑ_ΑΝΤΙΓΡΑΦΟ
7.
Χρονοπρογραμματίστε τον SQL Server ώστε να παίρνει
αντίγραφο ασφαλείας της βάσης σας κάθε
Τετάρτη στις 10:00 το βράδυ.
Στην άσκηση αυτή
αφού γίνει η σύνδεση μεταξύ της βάσης δεδομένων της προηγούμενης άσκησης με μια
φόρμα του C++
Builder θα δημιουργηθούν καρτέλες για κάθε πίνακα
και θα χρησιμοποιηθούν επιπρόσθετα visual components από την καρτέλα Data Controls.
Η σύνδεση θα γίνει
με ADO (ActiveX Data Object). Η άσκηση αυτή να παρουσιάζει αναλυτικά τα βήματα για
την ανάπτυξη μιας εφαρμογής με πολλές καρτέλες που τροφοδοτούνται από πίνακες
μια βάσης. Για να βρείτε την βάση κάντε
Restore αν έχετε κρατήσει BackUp.
Ανοίξτε τον Builder και
στην φόρμα που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components).
ADOConnection (1 φορά) (γραμμή εργαλείων
ADOQuery (3
φορές) (γραμμή
εργαλείων
DataSource (3 φορές) (γραμμή εργαλείων Data Aceess)
DBEdit (ένα για κάθε πεδίο) (γραμμή εργαλείων Data Controls)
DBNavigator (1 φορά) (γραμμή εργαλείων Data Controls)
Label (ένα για κάθε
πεδίο) (γραμμή
εργαλείων Standard)
PageControl (1
φορά) (γραμμή
εργαλείων Win32)
Στην άσκηση αυτή
αφού γίνει η σύνδεση μεταξύ της βάσης δεδομένων (της άσκησης 3) με μια φόρμα
του C++
Builder ( φόρμα της άσκησης 4) δημιουργήστε μια νέα
φόρμα σε υπάρχον project και συνδέστε τις
φόρμες μεταξύ τους. Στη συνέχεια εκτελέστε
δυναμικά ερωτήματα
αναζητήσεων δεδομένων από την βάση δεδομένων και τα αποτελέσματα να
προβάλλονται στην νέα φόρμα που δημιουργήσατε.
Τα δυναμικά ερωτήματα που θα εκτελεστούν
να προβλάλουν το ιστορικό ενοικιάσεων
αυτοκινήτων του πελάτη που θα επιλέχθηκε σε ένα DBLookupComboBox.
Επίσης σε ένα Label nα παρουσιάζεται το άθροισμα των ποσών που έχει πληρώσει ο
πελάτης συνολικά.
Τέλος σε νέα φόρμα
να προβάλετε το ιστορικό ενοικιάσεων για κάθε αυτοκίνητο και τον συνολικό τζίρο
χρημάτων που αποφέρει το κάθε αυτοκίνητο.
Σκοπός αυτής της
άσκησης είναι να εξοικειωθεί ο σπουδαστής με την σύνταξη διαδοχικών δυναμικών ερωτημάτων.
Στο τέλος της
άσκησης ο χρήστης θα μπορεί να κάνει πολλαπλές επιλογές κριτηρίων και θα βλέπει
το τελικό αποτέλεσμα μετά από εκτέλεση ενός ερωτήματος που θα συνδυάζει όλες
τις επιλογές κριτηρίων που επέλεξε ο χρήστης.
Το παράδειγμα που
θα χρησιμοποιηθεί βασίζεται πάνω στην βάση δεδομένων της άσκησης 3 και αποτελεί
συνέχεια της εφαρμογής σε C++ Builder της άσκησης 4 και 5.
Συγκεκριμένα θα
γίνετε αναζήτηση αυτοκινήτων με κριτήρια την ΜΑΡΚΑ, το ΜΟΝΤΕΛΟ, το ΧΡΩΜΑ και
την ΤΙΜΗ, και μόλις ο χρήστης επιλέξει όλα τα κριτήρια που θέλει θα
παρουσιαστούν τα διαθέσιμα αυτοκίνητα.
Η σύνδεση με την
βάση θα γίνει με ADO (ActiveX Data Object)
Σκοπός αυτής της
άσκησης είναι να μάθει ο σπουδαστής ακόμη έναν τρόπο επικοινωνίας Βάσεων
Δεδομένων με Γλώσσες Προγραμματισμού. Θα εξοικειωθεί με την πλατφόρμα
επικοινωνίας ODBC (Open Data Base Connectivity). Η πλατφόρμα αυτή περιλαμβάνει συναρτήσεις
που ανοίγουν την επικοινωνία με μία βάση,
συναρτήσεις που δημιουργούν και εκτελούν ερωτήματα, «βλέπουν» πίνακες,
όψεις , διαδικασίες.
Για την πλατφόρμα
αυτή ODBC, ο κάθε
κατασκευαστής RDBMS έχει δημιουργήσει
έναν οδηγό (driver) ώστε να μπορεί ο κάθε
προγραμματιστής να συνδεθεί μέσω του ODBC με το συγκεκριμένο RDBMS. Αρχικά το ODBC προέβλεπε
συναρτήσεις επικοινωνίας μόνο με σχεσιακές βάσεις δεδομένων, γεγονός
δεσμευτικό. Στην συνέχεια το ADO (ActiveX Data Object) επέκτεινε την επικοινωνία αυτή με οποιοδήποτε ενεργό
αντικείμενο και ενσωμάτωσε και το ODBC.
Στην άσκηση αυτή θα
δείξουμε αναλυτικά τα βήματα που πρέπει να ακολουθηθούν ώστε να επιτευχθεί η
σύνδεση μιας βάσης του SQL Server με μία εφαρμογή Client/Server γραμμένη σε οπτικό
προγραμματισμό με την γλώσσα C++ της Borland C++ Builder v6.0 μέσω του ODBC.
Σκοπός αυτής της
άσκησης είναι να μάθει ο σπουδαστής καταρχήν να δημιουργεί βάσεις δεδομένων που να αποθηκεύουν την διαδρομή (path) που βρίσκονται διάφορες εικόνες και στη συνέχεια να συνδέει και να προβάλει τις εικόνες
αυτές στο περιβάλλον μιας εφαρμογής τύπου Client/Server.
Σκοπός αυτής της
άσκησης είναι η εξοικείωση με την δημιουργία, επεξεργασία, εκτέλεση αναφορών-εκθέσεων (QuickReports) . Οι εκθέσεις είναι χρήσιμα εργαλεία που βοηθούν στην
καλύτερη απεικόνιση των ερωτημάτων με σκοπό την εκτύπωσή τους. Με τα QuickRepotrs δίνεται η
δυνατότητα στον χρήστη να προβάλει απλά ερωτήματα καθώς και ερωτήματα
ομαδοποίησης με εύκολο τρόπο.
Σκοπός αυτής της
άσκησης είναι η εξοικείωση με την δημιουργία, επεξεργασία, εκτέλεση αποθηκευμένων διαδικασιών (Stored Procedure) και
σκανδάλης (trigger) στον SQL Server .
Γράψτε μια διαδικασία η οποία παίρνει μία τιμή εισόδου που
την κρατάει στην μεταβλητή @POSOSTO και ενημερώνει την
ΤΙΜΗ ΕΝΟΙΚΙΑΣΗΣ του πίνακα ΑΥΤΟΚΙΝΗΤΑ αυξάνοντας την κατά το ποσοστό εισόδου.
Εκτελέσετε την παραπάνω διαδικασία.
ΔΗΜΙΟΥΡΓΙΑ
ΣΚΑΝΔΑΛΗΣ Δημιουργήστε μια σκανδάλη για
να ενημερώνετε αυτόματα το υπολογιζόμενο
πεδίο ΤΕΛΙΚΟ ΠΟΣΟ το οποία προκύπτει από το άθροισμα του ΠΟΣΟΥ ΠΛΗΡΩΜΗΣ και της
ΧΡΕΩΣΗΣ ΖΗΜΙΑΣ
Στον Πίνακα PELATES προσθέστε ένα
ακόμη πεδίο με όνομα HLIKIA τύπου INT (ακέραιος) και αποθηκεύστε τον πίνακα.
Στον Πίνακα PELATES δημιουργήστε μια
νέα σκανδάλη (trigger) η οποία θα
υπολογίζει την ηλικία του κάθε πελάτη από την Ημερομηνία Γέννησης που θα
καταχωρείται. Για το υπολογισμό αυτό θα
χρησιμοποιηθούν δύο νέες συναρτήσεις του SQL Server
DATEDIFF( YEAR, Ημερομηνία αρχής, Ημερομηνία Τέλους)
Η συνάρτηση αυτή υπολογίζει την διαφορά μεταξύ δύο
ημερομηνιών και επιστρέφει την διαφορά αυτή σε ημέρες (DAY), χρόνια (YEAR), εβδομάδες (WEEK) κλπ.
GETDATE( ) Η συνάρτηση αυτή επιστέφει την τρέχουσα
Ημερομηνία.
Εισαγωγή
Σκοπός αυτής της
άσκησης είναι να εξοικειωθεί ο σπουδαστής με τον Query Analyzer του SQL Server.
O Microsoft® SQL
Server™ 2000 SQL Query Analyzer είναι ένα γραφικό εργαλείο που σας επιτρέπει:
·
Να δημιουργήσετε ερωτήματα SQL και να τα εκτελέσετε σε
διακομιστές (servers) βάσεων δεδομένων από το Query window
Μπορείτε να τρέξετε τον SQL Query Analyzer
άμεσα από τo μενού Sartà , ή μέσα από τον
SQL Server Enterprise Manager ή από την γραμμή εντολών με την εκτέλεση της
εντοολής isqlw.
Ένα από τα πιο
σημαντικά χαρακτηριστικά και δυνατότητες που προσφέρει ο Query Analyzer είναι η
ανάλυση ερωτημάτων όπως λέει και το όνομά του. Παρέχει εργαλεία που βοηθάνε τον
χρήστη να αναλύσει τα ερωτήματα για την βέλτιστη απόδοσή τους. Τα εργαλεία αυτά
είναι:
·
Show Query Execution Plan.
·
Show Estimated Execution Plan.
·
Show Server Trace.
·
Show Client Statistics.
·
Index Tuning Wizard.
Αποτελείται από
τρία βασικά παράθυρα.
Τον Object Browser Αριστερά που
συνδέεται με τους υπάρχοντες DataBase Servers και προβάλει όλα τα αντικείμενα που μπορεί
να χρησιμοποιήσει ο χρήστης.
Την
περιοχή σύνταξης ερωτημάτων δεξί πάνω παράθυρο, όπου ο χρήστης μπορεί να
συντάξει τα ερωτήματα (Query window)
Την
περιοχή παρουσίασης αποτελεσμάτων στο κάτω δεξί παράθυρο, όπου ο χρήστης βλέπει
τα αποτελέσματα ενός ερωτήματος αλλά και την απόδοση ενός ερωτήματος.
Σκοπός αυτής της
άσκησης είναι να επαναληφθούν όλα τα
βήματα των ασκήσεων του εργαστηρίου, από την δημιουργία μιας βάσης, την
δημιουργία πινάκων, δημιουργία διαγράμματος, εισαγωγή δεδομένων, δημιουργία
εφαρμογής, σύνδεση με την βάση με ADO, εκτέλεση
δυναμικού ερωτήματος ενημέρωσης και άλλων δυναμικών ερωτημάτων. Η βάση δεδομένων
θα αφορά μια επιχείρηση με ΠΕΛΑΤΕΣ, ΠΡΟΜΗΘΕΤΕΣ, ΑΠΟΘΗΚΗ, ΠΑΡΑΓΓΕΛΙΕΣ_ΠΩΛΗΣΕΩΝ,
ΠΑΡΑΓΓΕΛΙΕΣ_ΑΓΟΡΩΝ.