Άσκηση 1

 

Δημιουργήστε μια βάση δεδομένων στον SQL Server με όνομα ΑΤΖΕΝΤΑ όπου ο πίνακας με όνομα FILOI θα έχει τα παρακάτω πεδία, όπου θα καταχωρούνται στοιχεία φίλων και γνωστών.

  • Δημιουργήστε τα παρακάτω ερωτήματα SQL.

1. Εμφανίστε όλα τα στοιχεία των φίλων σας που το επίθετό τους αρχίζει πχ από Κ

2. Εμφανίστε Επίθετο, Όνομα και Κινητό των φίλων σας που γεννήθηκαν μετά το  1997 και είναι από την πόλη Σέρρες.

3. Ομαδοποιήστε τους φίλους σας ανά πόλη και μετρήστε πόσοι είναι από κάθε πόλη

4. Ομαδοποιήστε τους φίλους σας ανά Σχόλιο και μετρήστε πόσοι είναι φίλοι και πόσοι γνωστοί

5. Προβάλετε τις καταχωρήσεις που κατάγονται από την ίδια πόλη που κατάγεται ο Γεωργίου (φωλιασμένο ερώτημα)

6. Προβάλετε σε ένα ερώτημα τις καταχωρήσεις που κατάγονται από Αθήνα και αυτές από Θεσσαλονίκη

 

  • Πάρτε αντίγραφα ασφαλείας.
  • Μετατρέψτε  και εξάγετε τα δεδομένα σε άλλο RDBMS.

 

Άσκηση 2

 

Πως γίνεται η σύνδεση μεταξύ μιας βάσης δεδομένων και μιας εφαρμογής γραμμένης σε C++ Builder. Καταρχήν κάντε restore την βάση ΑΤΖΕΝΤΑ που δημιουργήσατε στην άσκηση 1. Δημιουργήστε μία απλή φόρμα που θα προβάλει τα στοιχεία ενός ερωτήματος ή πίνακα με ευκολία μετακίνησης στις εγγραφές.

Η σύνδεση θα γίνει με ADO (ActiveX  Data Object)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 3

 

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

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

Για την υλοποίηση της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:

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 το βράδυ.

 

 

 

 

 

 

 

 

Άσκηση 4

 

Στην άσκηση αυτή αφού γίνει η σύνδεση μεταξύ της βάσης δεδομένων της προηγούμενης άσκησης με μια φόρμα του  C++ Builder θα δημιουργηθούν καρτέλες για κάθε πίνακα και θα χρησιμοποιηθούν επιπρόσθετα visual components από την καρτέλα Data Controls.

Η σύνδεση θα γίνει με ADO (ActiveX  Data Object). Η άσκηση αυτή να παρουσιάζει αναλυτικά τα βήματα για την ανάπτυξη μιας εφαρμογής με πολλές καρτέλες που τροφοδοτούνται από πίνακες μια βάσης. Για να βρείτε την βάση κάντε Restore αν έχετε κρατήσει BackUp.

 

Ανοίξτε τον Builder και στην φόρμα που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components).

 

ADOConnection           (1 φορά)                        (γραμμή εργαλείων ADO)

ADOQuery                    (3 φορές)                       (γραμμή εργαλείων ADO)

DataSource                  (3 φορές)                       (γραμμή εργαλείων Data Aceess)

 

DBEdit (ένα για κάθε πεδίο)                               (γραμμή εργαλείων Data Controls)

DBNavigator                (1 φορά)                        (γραμμή εργαλείων Data Controls)

Label (ένα για κάθε πεδίο)                                 (γραμμή εργαλείων Standard)

PageControl                (1 φορά)                        (γραμμή εργαλείων Win32)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 5

 

Στην άσκηση αυτή αφού γίνει η σύνδεση μεταξύ της βάσης δεδομένων (της άσκησης 3) με μια φόρμα του  C++ Builder ( φόρμα της άσκησης 4) δημιουργήστε μια νέα φόρμα σε υπάρχον project και συνδέστε τις φόρμες μεταξύ τους. Στη συνέχεια εκτελέστε  δυναμικά ερωτήματα αναζητήσεων δεδομένων από την βάση δεδομένων και τα αποτελέσματα να προβάλλονται στην νέα φόρμα που δημιουργήσατε.

Τα δυναμικά ερωτήματα που θα εκτελεστούν να προβλάλουν το ιστορικό ενοικιάσεων αυτοκινήτων του πελάτη που θα επιλέχθηκε σε ένα DBLookupComboBox.

Επίσης σε ένα Label nα παρουσιάζεται το άθροισμα των ποσών που έχει πληρώσει ο πελάτης συνολικά.

Τέλος σε νέα φόρμα να προβάλετε το ιστορικό ενοικιάσεων για κάθε αυτοκίνητο και τον συνολικό τζίρο χρημάτων που αποφέρει το κάθε αυτοκίνητο.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 6

 

Σκοπός αυτής της άσκησης είναι να εξοικειωθεί ο σπουδαστής με την σύνταξη διαδοχικών δυναμικών ερωτημάτων.

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

Το παράδειγμα που θα χρησιμοποιηθεί βασίζεται πάνω στην βάση δεδομένων της άσκησης 3 και αποτελεί συνέχεια της εφαρμογής σε C++ Builder της άσκησης 4 και 5.

Συγκεκριμένα θα γίνετε αναζήτηση αυτοκινήτων με κριτήρια την ΜΑΡΚΑ, το ΜΟΝΤΕΛΟ, το ΧΡΩΜΑ και την ΤΙΜΗ, και μόλις ο χρήστης επιλέξει όλα τα κριτήρια που θέλει θα παρουσιαστούν τα διαθέσιμα αυτοκίνητα.

Η σύνδεση με την βάση θα γίνει με ADO (ActiveX  Data Object)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 7

 

Σκοπός αυτής της άσκησης είναι να μάθει ο σπουδαστής ακόμη έναν τρόπο επικοινωνίας Βάσεων Δεδομένων με Γλώσσες Προγραμματισμού. Θα εξοικειωθεί με την πλατφόρμα επικοινωνίας 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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 8

 

Σκοπός αυτής της άσκησης είναι να μάθει ο σπουδαστής καταρχήν να δημιουργεί βάσεις δεδομένων που να αποθηκεύουν την διαδρομή (path) που βρίσκονται διάφορες εικόνες και στη συνέχεια να συνδέει και να προβάλει τις εικόνες αυτές στο περιβάλλον μιας εφαρμογής τύπου Client/Server.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 9

 

Σκοπός αυτής της άσκησης είναι η εξοικείωση με την δημιουργία, επεξεργασία, εκτέλεση αναφορών-εκθέσεων (QuickReports) . Οι εκθέσεις είναι χρήσιμα εργαλεία που βοηθούν στην καλύτερη απεικόνιση των ερωτημάτων με σκοπό την εκτύπωσή τους. Με τα QuickRepotrs δίνεται η δυνατότητα στον χρήστη να προβάλει απλά ερωτήματα καθώς και ερωτήματα ομαδοποίησης με εύκολο τρόπο.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 10

 

Σκοπός αυτής της άσκησης είναι η εξοικείωση με την δημιουργία, επεξεργασία, εκτέλεση αποθηκευμένων διαδικασιών (Stored Procedure) και σκανδάλης (trigger) στον SQL Server .

 

Γράψτε μια διαδικασία η οποία παίρνει μία τιμή εισόδου που την κρατάει στην μεταβλητή @POSOSTO και ενημερώνει την ΤΙΜΗ ΕΝΟΙΚΙΑΣΗΣ του πίνακα ΑΥΤΟΚΙΝΗΤΑ αυξάνοντας την κατά το ποσοστό εισόδου. Εκτελέσετε την παραπάνω διαδικασία.

 

ΔΗΜΙΟΥΡΓΙΑ ΣΚΑΝΔΑΛΗΣ Δημιουργήστε μια σκανδάλη  για να ενημερώνετε αυτόματα το  υπολογιζόμενο πεδίο ΤΕΛΙΚΟ ΠΟΣΟ το οποία προκύπτει από το άθροισμα του ΠΟΣΟΥ ΠΛΗΡΩΜΗΣ και της ΧΡΕΩΣΗΣ ΖΗΜΙΑΣ

Στον Πίνακα PELATES προσθέστε ένα ακόμη πεδίο με όνομα HLIKIA τύπου INT (ακέραιος) και αποθηκεύστε τον πίνακα.

 

Στον Πίνακα PELATES δημιουργήστε μια νέα σκανδάλη (trigger) η οποία θα υπολογίζει την ηλικία του κάθε πελάτη από την Ημερομηνία Γέννησης που θα καταχωρείται.  Για το υπολογισμό αυτό θα χρησιμοποιηθούν δύο νέες συναρτήσεις του SQL Server

 

DATEDIFF( YEAR, Ημερομηνία αρχής, Ημερομηνία Τέλους)

 

Η συνάρτηση αυτή υπολογίζει την διαφορά μεταξύ δύο ημερομηνιών και επιστρέφει την διαφορά αυτή σε ημέρες (DAY), χρόνια (YEAR), εβδομάδες (WEEK) κλπ.

 

GETDATE( )      Η συνάρτηση αυτή επιστέφει την τρέχουσα Ημερομηνία.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 11

 

Εισαγωγή

Σκοπός αυτής της άσκησης είναι να εξοικειωθεί ο σπουδαστής με τον Query Analyzer του SQL Server.

O Microsoft® SQL Server™ 2000 SQL Query Analyzer είναι ένα γραφικό εργαλείο που σας επιτρέπει:

·         Να δημιουργήσετε ερωτήματα SQL και να τα εκτελέσετε σε διακομιστές (servers) βάσεων δεδομένων από το Query window

  • Να δημιουργήσετε  γρήγορα αντικείμενα βάσεων δεδομένων (πίνακες κλπ)  από προκαθορισμένα χειρόγραφα αρχεία τα λεγόμενα scripts . (Templates)
  • Μπορείτε εύκολα και γρήγορα να εισάγετε γραμμές σε έναν πίνακα , να τις διορθώσετε ή να τις διαγράψετε με scripts
  • Να αντιγράψτε γρήγορα τα υπάρχοντα αντικείμενα βάσεων δεδομένων. (Object Browser)
  • Να εκτελέστε τις αποθηκευμένες διαδικασίες. (Object Browser procedure execution feature)
  • Να διορθώστε τις αποθηκευμένες διαδικασίες. (T-SQL Debugger)
  • Να διορθώστε τα προβλήματα απόδοσης ερώτησης. (Εμφανίζεται σχέδιο εκτέλεσης των ερωτημάτων, παρουσιάζεται ίχνος κεντρικών υπολογιστών)
  • Να εντοπίστε τα αντικείμενα μέσα στις βάσεις δεδομένων από ένα χαρακτηριστικό γνώρισμα αναζήτησης αντικειμένου και να δουλέψετε με αυτά.(Object Browser)
  • Να δημιουργήστε τους συντομεύσεις (shortcuts) για τις συχνά χρησιμοποιημένες ερωτήσεις και να προσθέστε τις πιο συχνά χρησιμοποιημένες εντολές στις γραμμές εργαλείων.

Μπορείτε να τρέξετε τον 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.

 

Το γραφικό περιβάλλον του Query Analyzer

Αποτελείται από τρία βασικά παράθυρα.

Τον Object Browser Αριστερά που συνδέεται με τους υπάρχοντες DataBase Servers και προβάλει όλα τα αντικείμενα που μπορεί να χρησιμοποιήσει ο χρήστης.

Την περιοχή σύνταξης ερωτημάτων δεξί πάνω παράθυρο, όπου ο χρήστης μπορεί να συντάξει τα ερωτήματα (Query window)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Άσκηση 12

Σκοπός αυτής της άσκησης είναι να επαναληφθούν όλα τα βήματα των ασκήσεων του εργαστηρίου, από την δημιουργία μιας βάσης, την δημιουργία πινάκων, δημιουργία διαγράμματος, εισαγωγή δεδομένων, δημιουργία εφαρμογής, σύνδεση με την βάση με ADO, εκτέλεση δυναμικού ερωτήματος ενημέρωσης και άλλων δυναμικών ερωτημάτων. Η βάση δεδομένων θα αφορά μια επιχείρηση με ΠΕΛΑΤΕΣ, ΠΡΟΜΗΘΕΤΕΣ, ΑΠΟΘΗΚΗ, ΠΑΡΑΓΓΕΛΙΕΣ_ΠΩΛΗΣΕΩΝ, ΠΑΡΑΓΓΕΛΙΕΣ_ΑΓΟΡΩΝ.