ΡΑΝΕΡΙΣΤΗΜΙΟ ΡΕΙΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΓΑΣΤΗΙΟ 2 ΔΕΣΡΟΙΝΑ ΡΑΡΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr
2 SQL SERVER 2012 ΡΕΙΛΗΨΗ & ΣΥΝΕΧΕΙΑ
3 SQL SERVER MANAGEMENT STUDIO (SSMS) Ο SQL Server Management Studio (SSMS) είναι ζνα εργαλείο ςχεδιαςμοφ και διαχείριςθσ ΒΔ που Διαχειρίηεται ΒΔ (δθμιουργεί, τροποποιεί, κάνει backup / restore ΒΔ) Δθμιουργεί ι τροποποιεί E/R διαγράμματα Εκτελεί SQL queries Ειςάγει / τροποποιεί πραγματικζσ εγγραφζσ.
4 SQL SERVER ΒΔ Κάκε SQL Server ΒΔ αποτελείται από δφο αρχείο: ζνα.mdf αρχείο Ρεριλαμβάνει όλα τα δεδομζνα τθσ ΒΔ, όπωσ πχ δεδομζνα πινάκα κτλ. ζνα.ldf αρχείο log αρχείο (transaction log) που περιλαμβάνει το ιςτορικό των δοςολθψιϊν Χρειαηόμαςτε και τα δφο αρχεία για να χειριςτοφμε τθ ΒΔ Μποροφμε να κάνουμε μεταφορά μιασ ΒΔ, είτε μζςω SQL scripting, είτε μζςω backup / restore, είτε αντιγράφοντασ τα.mdf/.ldf αρχεία.
ΡΕΙΒΑΛΛΟΝ SQL SERVER MANAGEMENT STUDIO OBJECT EXPLORER 5 Ο Object Explorer είναι το βαςικό εργαλείο όταν δουλεφουμε με μια ΒΔ και τα αντικείμενα τθσ. Μασ διευκολφνει: Να δθμιουργιςουμε μια καινοφρια ΒΔ Να δθμιουργιςουμε αντικείμενα ςτθ ΒΔ (πίνακεσ, ςυςχετίςεισ κ.α.) Να αλλάξουμε τισ ιδιότθτεσ των αντικειμζνων Να ειςάγουμε εγγραφζσ ςτουσ πίνακεσ.
ΔΗΜΙΟΥΓΙΑ ΚΑΙΝΟΥΙΑΣ ΒΔ (1/2) 6 Στο Object Explorer πθγαίνουμε ςτο "Databases" και επιλζγουμε "New Database " από το αναδυόμενο μενοφ.
ΔΗΜΙΟΥΓΙΑ ΚΑΙΝΟΥΙΑΣ ΒΔ (2/2) 7 Στο παράκυρο "New Database" βάηουμε το όνομα για τθν καινοφρια ΒΔ κι επιλζγουμε OK.
ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΟΣ E/R 8 Στο μενοφ "Database Diagrams" επιλζγουμε "New Database Diagram" Από το παράκυρο που προκφπτει επιλζγουμε τουσ πίνακεσ που κζλουμε να εμφανίηονται ςτο διάγραμμα μασ (μποροφμε να τουσ επιλζξουμε όλουσ ι μζροσ αυτϊν).
9 ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΩΝ (1/7) Εάν θ ΒΔ ι οτιδιποτε ζχουμε δθμιουργιςει δεν εμφανίηεται ςτον Object Explorer κάνουμε δεξί κλίκ ςτον φάκελο που ανικει αυτό που ζχουμε δθμιουργιςει και επιλζγουμε Refresh Δθμιουργοφμε ζναν καινοφριο πίνακα κάνοντασ δεξί κλικ ςτον φάκελο Tables και επιλζγουμε New table.
10 ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΩΝ (6/7) Είναι καλι πρακτικι να κζτουμε το όνομα του πίνακα τθ ςτιγμι που τον δθμιουργοφμε Χρθςιμοποιοφμε το παράκυρο "Properties Εάν αυτό δεν είναι ορατό κάνουμε το εξισ: "View" "Properties Window" ι πατάμε F4. Πνομα Ρίνακα
ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΩΝ (2/7) 11 Ρροςδιοριςμόσ χαρακτθριςτικϊν / κλειδιϊν πίνακα (όνομα και τφποσ δεδομζνων) Πνομα Χαρακτθριςτικοφ / Κλειδιοφ Τφποσ Δεδομζνων Χαρακτθριςτικοφ Επιλογι του NULL ι όχι
ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΩΝ (3/7) 12 Ρροςδιοριςμόσ πρωτεφοντοσ κλειδιοφ Δεξί κλίκ ςτο βελάκι ςτα αριςτερά του χαρακτθριςτικοφ κι επιλογι του "Set Primary Key"
13 ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΩΝ (7/7) Πταν κλείνουμε το παράκυρο για ζναν πίνακα, When closing the window for the table, το SSMS μασ ερωτά αν επικυμοφμε να αποκθκεφςουμε ζναν πίνακα Μποροφμε να τον αποκθκεφςουμε χειροκίνθτα επιλζγοντασ Save Table από το μενοφ File ι επιλζγοντασ Ctrl + S.
14 ΔΗΜΙΟΥΓΙΑ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΡΙΝΑΚΩΝ (1/2) Για τθ δθμιουργία μιασ ςυςχζτιςθσ 1-N ςζρνουμε (drag) το ξζνο κλειδί ςτον άλλο πίνακα (το κάνουμε drag από τον child πίνακα ςτον parent). Εναλλακτικά κάνουμε δεξί κλικ ςτον child πίνακα και επιλζγουμε Relatioships και από το Foreign Key Relationships παράκυρο που κα προκφψει επιλεγοφμε το Tables And Columns Specification και τισ τελείεσ, όπωσ φαίνεται ςτθν παρακάτω εικόνα.
15 ΔΗΜΙΟΥΓΙΑ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΡΙΝΑΚΩΝ (2/2) Στο παράκυρο που προκφπτει επιλζγουμε ςτα αριςτερά τον πίνακα που δίνει το πρωτεφον του κλειδί και ποιο είναι αυτό και ςτα δεξιά τον πίνακα που το δζχεται και πάλι ποιο είναι αυτό.
ΑΥΤΟΡΑΘΕΙΣ ΣΥΣΧΕΤΙΣΕΙΣ 16 Οι αυτοπακείσ ςυςχετίςεισ μποροφν να δθμιουργθκοφν με τον προςδιοριςμό ενόσ ξζνου κλειδιοφ ςτον ίδιο πίνακα.
ΕΜΦΑΝΙΣΗ ΡΙΝΑΚΩΝ MICROSOFT SQL SERVER MANAGEMENT STUDIO (1/3) 17
ΕΜΦΑΝΙΣΗ ΡΙΝΑΚΩΝ MICROSOFT SQL SERVER MANAGEMENT STUDIO (2/3) 18
ΕΜΦΑΝΙΣΗ ΔΙΑΓΑΜΜΑΤΩΝ MICROSOFT SQL SERVER MANAGEMENT STUDIO (1/4) 19
ΕΜΦΑΝΙΣΗ ΔΙΑΓΑΜΜΑΤΩΝ MICROSOFT SQL SERVER MANAGEMENT STUDIO (2/4) 20
ΕΜΦΑΝΙΣΗ ΔΙΑΓΑΜΜΑΤΩΝ MICROSOFT SQL SERVER MANAGEMENT STUDIO (3/4) 21
22 ΔΗΜΙΟΥΓΙΑ ΟΨΕΩΝ (1/2) ΔΗΜΙΟΥΓΙΑ ΟΨΕΩΝ (VIEWS) Η όψθ είναι ζνασ εικονικόσ πίνακασ που βαςίηεται ςε ζναν SQL ερϊτθμα. Μζςα από το γραφικό περιβάλλον, επιλζγουμε τθ βάςθ και κάνουμε δεξί κλικ ςτον φάκελο Views κι επιλζγουμε New View. Επιλζγουμε πίνακεσ και τον τρόπο ςφνδεςθσ τουσ. TIP: Εφκολοσ ςχεδιαςμόσ ερωτιματοσ μζςα από τθν οκόνθ δθμιουργίασ View. Η όψθ μπορεί επίςθσ να δθμιουργθκεί με χριςθ τθσ εντολισ T-SQL CREATE VIEW.
23 ΔΗΜΙΟΥΓΙΑ ΟΨΕΩΝ (2/2) ΔΗΜΙΟΥΓΙΑ ΟΨΕΩΝ (VIEWS)
24 ΔΗΜΙΟΥΓΙΑ SQL ΕΡΕΩΤΗΜΑΤΩΝ ΔΗΜΙΟΥΓΙΑ SQL ΕΩΤΗΜΑΤΩΝ (SQL QUERIES) Κάνουμε κλικ ςτο κουμπι New Query πάνω αριςτερά. Γράφουμε τον κϊδικα που κζλουμε και πατάμε Execute.
ΕΙΣΑΓΩΓΗ & ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (1/3) ΕΙΣΑΓΩΓΗ/ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Κάνοντασ δεξί κλικ ςε μια βάςθ δεδομζνων και μζςω του μενοφ Tasks μασ δίνεται θ δυνατότθτα Ειςαγωγισ και Εξαγωγισ δεδομζνων (Import/Export) Στο wizard που ξεκινάει πρζπει να ορίςουμε πθγι προζλευςθσ Η πθγι προζλευςθσ μπορεί να είναι text αρχεία, excel αρχεία, SQL, ORACLE και άλλα DBMS. Αν για παράδειγμα κζλουμε να ειςάγουμε δεδομζνα από ζνα text αρχείο ςτον SQL Server, τότε πρζπει να ορίςουμε που βρίςκεται το αρχείο τθ βάςθ δεδομζνων ςτθν οποία κα αποκθκευκεί το αρχείο (μποροφμε να δθμιουργιςουμε μία και να ειςάγουμε τα δεδομζνα του αρχείου ςε αυτι) τθ μορφι που ζχει το αρχείο το όνομα του πίνακα ςτον οποίο κα αποκθκευκοφν τα δεδομζνα: αν δεν υπάρχει ο πίνακασ τότε κα δθμιουργθκεί, αν υπάρχει τότε μποροφμε να κάνουμε αντιςτοίχιςθ των ςτθλϊν του αρχείου με τισ ςτιλεσ του πίνακα (προςοχή ςτουσ διαφορετικοφσ τφπουσ δεδομζνων). 25
26 ΕΙΣΑΓΩΓΗ & ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (2/3) ΕΙΣΑΓΩΓΗ/ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ
27 ΕΙΣΑΓΩΓΗ & ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (3/3) ΕΙΣΑΓΩΓΗ/ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ
28 ΕΙΣΑΓΩΓΗ ΡΑΓΜΑΤΙΚΩΝ ΕΓΓΑΦΩΝ (1/3) ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (δθμιουργοφμε πραγματικζσ εγγραφζσ)
29 ΕΙΣΑΓΩΓΗ ΡΑΓΜΑΤΙΚΩΝ ΕΓΓΑΦΩΝ (2/3) ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (δθμιουργοφμε πραγματικζσ εγγραφζσ) Εναλλακτικά μποροφμε να επιλζξουμε New Query και να ειςάγουμε δεδομζνα μζςω T-SQL και ςυγκεκριμζνα τθσ εντολισ INSERT INTO customer (customer_id, customer_name, ) VALUES (,, );
30 ΕΙΣΑΓΩΓΗ ΡΑΓΜΑΤΙΚΩΝ ΕΓΓΑΦΩΝ (3/3) ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ (δθμιουργοφμε πραγματικζσ εγγραφζσ)
BACKUP & RESTORE ΒΔ (1/2) BACKUP/RESTORE Κάνοντασ δεξί κλικ ςε μια βάςθ δεδομζνων και μζςω του μενοφ Tasks μασ δίνεται οι δυνατότθτεσ Backup και Restore Τζτοιεσ διαδικαςίεσ μποροφν να προγραμματιςτοφν, ϊςτε να εκτελοφνται αυτόματα Για το backup οι παράμετροι που πρζπει να κακορίςουμε είναι: ςε ποια βάςθ κα γίνει backup τφποσ backup full (όλθ τθ ΒΔ ι ςυγκεκριμζνα filegroups και μζροσ του log) differential (βάςθ ενόσ τελευταίου full backup) transaction log (μόνο το log) αν το backup λιγει μετά από ζνα διάςτθμα τον προοριςμό του backup αρχείου τθ μορφι που ζχει το αρχείο αν το backup αρχείο κα προςτεκεί ςε ζνα υπάρχον backup set ι κα διαγράψει τα προθγοφμενα. 31
32 BACKUP & RESTORE ΒΔ (2/2) BACKUP/RESTORE Για το restore οι παράμετροι που πρζπει να κακορίςουμε είναι: ςε ποια βάςθ κα γίνει restore από ποφ κα γίνει restore (από ΒΔ, από device) το ςυγκεκριμζνο backup set που κα γίνει restore (1 αρχείο πολλά sets) αν το backup αρχείο κα προςτεκεί ςε ζνα υπάρχον backup set ι κα διαγράψει τα προθγοφμενα αν κα διαγραφοφν τα δεδομζνα που υπάρχουν εκείνθ τθ ςτιγμι ςτθ ΒΔ.
33 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (1/12) Μετατροπι μοντζλου E-R ςε ςχεςιακό Αφοφ ςχεδιάςουμε το Μοντζλο Οντοτιτων Συςχετίςεων (E-R) ςυμπλθρϊνουμε κάκε οντότθτα του με το πρωτεφον κλειδί και τα χαρακτθριςτικά τθσ. Εφόςον ολοκλθρωκεί και αυτό το ςτάδιο το μετατρζπουμε ςε ςχεςιακό μοντζλο. ΡΟΣΟΧΗ: Με τθ χριςθ του προγράμματοσ Power Designer δε χρειάηεται να κάνουμε μεταφορά των κλειδιϊν, το κάνει αυτόματα το πρόγραμμα βάςει του πλθκάρικμου των ςυςχετίςεων. Για να το μετατρζψουμε ςε ςχεςιακό μοντζλο πάμε ςτο Tools-> Generate Physical Data Model. Στο παράκυρο PDM Generation Options τον SQL Server 2008 ωσ Σφςτθμα Διαχείριςθσ ΒΔ (DBMS) ΡΟΣΟΧΗ: Εκτόσ από το ςχεςιακό μοντζλο, μποροφμε να παρακζτουμε και τουσ πίνακεσ με τθ μορφι: HEALTH_UNIT (unit_code, unit_name, unit_address), όπου το unit_code είναι κλειδί και τα unit_name και unit_address τα χαρακτθριςτικά.
34 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (2/12) Tools-> Generate Physical Data Model
35 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (3/12) Δθμιουργία ΒΔ από το Σχεςιακό Μοντζλο Αφοφ δθμιουργθκεί το ςχεςιακό μοντζλο, παράγουμε τθ βάςθ δεδομζνων με το εξισ βιμα: Database-> Generate Database. Επίςθσ, προςζχουμε να είναι επιλεγμζνο το script generation. Με τθν επιλογι αυτι κα δθμιουργθκεί το αρχείο crebas.sql που περιζχει όλεσ τισ απαραίτθτεσ πλθροφορίεσ για τθ βάςθ δεδομζνων που δθμιουργιςαμε.
36 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (4/12) Database Generation
37 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (5/12) Δημιουργία του crebas.sql ςτο ςυγκεκριμζνο φάκελο
38 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (6/12) Δθμιουργία ΒΔ από το Σχεςιακό Μοντζλο Το crebas.sql είναι το αρχείο που χρθςιμοποιοφμε για να δθμιουργιςουμε τθν ΒΔ μασ ςε ζνα ΣΔΒΔ. Ανοίγουμε το SQL Server Management Studio Α τρόποσ ειςαγωγισ (import) εγγράφου βάςθσ δεδομζνων ςτον SQL Server: δθμιουργοφμε μια καινοφρια βάςθ δεδομζνων και τουσ πίνακεσ μασ μζςα ςε αυτιν, δθμιουργϊντασ SQL queries για να δθμιουργιςουμε τουσ πίνακεσ αντιγράφουμε ςτο SQLQuery παράκυρο τον κϊδικα που αφορά τουσ πίνακεσ και περιζχεται ςτο crebas.sql πατάμε Execute και αν το ερϊτθμα δεν βγάλει ςφάλμα, τότε πάμε ςτο tree view, πατάμε δεξί κλίκ πάνω ςτθ βάςθ που φτιάξαμε και Refresh και βλζπουμε τουσ πίνακεσ μασ.
39 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (7/12) Δθμιουργία ΒΔ από το Σχεςιακό Μοντζλο Β τρόποσ ειςαγωγισ (import) εγγράφου βάςθσ δεδομζνων ςτον SQL Server: Συνδζουμε τα δφο ΣΔΒΔ που κα ανταλλάξουν τθν ΒΔ (Sybase Adaptive Server Microsoft SQL Server) Για να ςυνδεκοφμε με τον Sybase database server κατεβάηουμε τον κατάλλθλο driver: Microsoft OLE DB for ODBC ι ODBC driver for Sybase πατάμε Execute και αν το ερϊτθμα δεν βγάλει ςφάλμα, τότε πάμε ςτο tree view, πατάμε δεξί κλίκ πάνω ςτθ βάςθ που φτιάξαμε και Refresh και βλζπουμε τουσ πίνακεσ μασ Σε αυτό το ςθμείο να τονίςουμε ότι αυτόσ είναι ο ενδεδειγμζνοσ τρόποσ και για ςφνδεςθ MySQL Microsoft SQL Server Στισ επόμενεσ εικόνεσ κα κεωριςουμε ςφνδεςθ MySQL Microsoft SQL Server, αντίςτοιχα γίνεται ςφνδεςθ Sybase Adaptive Server ι Oracle Microsoft SQL Server (αρκεί να κατεβάςουμε και να εγκαταςτιςουμε τουσ κατάλλθλουσ drivers).
40 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (8/12) ODBC Σφνδεςθ με τθν MySQL / Sybase / Oracle database: Ράμε Control Panel -> Administrative Tools. Στο tab System DSN πατάμε Add. Στο παράκυρο Create New Data Source επιλζγουμε τον driver που κατεβάςαμε κι εγκαταςτιςαμε Συμπλθρϊνουμε τα ςτοιχεία του λογαριαςμοφ που ζχουμε ςτθν βάςθ (π.χ. root) και το όνομα τθσ βάςθσ (π.χ. tigerdb) Ρατάμε το κουμπί test για να ελζγξουμε τθ ςφνδεςθ και αν είναι όλα ςωςτά, πατάμε OK.
41 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (9/12) ODBC Σφνδεςθ με τθν MySQL / Sybase / Oracle database:
42 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (10/12) Δθμιουργία Microsoft SQL Link ςτθν MySQL / Sybase / Oracle database: Ανοίγουμε το Microsoft SQL Server Management Studio, ανοίγουμε ζνα νζο Query Window και τρζχουμε τθν κάτωκι SQL διλωςθ (ςτθν περίπτωςθ που ζχουμε MySQL database, αντίςτοιχα με τισ ανάλογεσ αλλαγζσ και για τισ άλλεσ βάςεισ δεδομζνων: EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL', @srvproduct=n'mysql', @provider=n'msdasql', @provstr=n'driver={mysql ODBC 5.1 Driver}; SERVER=localhost; _ DATABASE=tigerdb; USER=root; PASSWORD=hejsan; OPTION=3 Αυτι θ διλωςθ δθμιουργεί ζνα link ςτθν βάςθ δεδομζνων, μζςω τθσ ςφνδεςθσ που ζχουμε φτιάξει ςτο προθγοφμενο βιμα.
43 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (11/12) Δθμιουργία Microsoft SQL Link ςτθν MySQL / Sybase / Oracle database:
44 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΙΣΗ ΤΗΣ ΜΕ SQL SERVER 2008 (12/12) Ειςαγωγι δεδομζνων μεταξφ των βάςεων δεδομζνων: Δθμιουργοφμε μια καινοφρια βάςθ δεδομζνων ςτον Microsoft SQL Server (π.χ. testmysql). Στο query window τρζχουμε τθν ακόλουκθ SQL διλωςθ για να ειςάγουμε τον πίνακα shoutbox από τθν MySQL βάςθ δεδομζνων tigerdb ςτθν καινοφρια βάςθ ςτον Microsoft SQL Server που ονομάηεται testmysql. SELECT * INTO testmysql.dbo.shoutbox FROM openquery(mysql, 'SELECT * FROM tigerdb.shoutbox')
45 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (1/20) Μια αποκικθ ζχει ταξινομιςει τα υλικά τθσ ιεραρχικά ςε κατθγορία ομάδα τφπο υλικοφ. Κάκε τφποσ υλικοφ μπορεί να περιλαμβάνει πολλά υλικά. Για κάκε υλικό διατθρείται απόκεμα αςφαλείασ s που ςθμαίνει ότι όταν θ υπάρχουςα ποςότθτα του υλικοφ πζςει κάτω από το s παραγγζλλεται αυτόματα ποςότθτα τόςθ ϊςτε θ ςυνολικι διακζςιμθ ποςότθτα να είναι ίςθ προσ το μζγιςτο επιτρεπτό απόκεμα S. Η αποκικθ επικυμεί να παρακολουκεί επίςθσ τισ ειςροζσ (προμικειεσ) και εκροζσ (πωλιςεισ) υλικϊν με βάςθ αντίςτοιχα τιμολόγια (προμικειασ ι πϊλθςθσ). Κάκε τιμολόγιο μπορεί να εκδίδεται για πολλά υλικά και κάκε υλικό μπορεί να αναφζρεται ςε πολλά τιμολόγια. Να καταςκευαςτεί μοντζλο οντοτιτων ςυςχετίςεων, το οποίο να παρζχει τθ δυνατότθτα παρακολοφκθςθσ των κινιςεων τθσ αποκικθσ και να μετατραπεί ςε ςχεςιακό ςχιμα.
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (2/20) 46
47 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (3/20) Συςχετίςεισ Μια αποκικθ ζχει ταξινομιςει τα υλικά τθσ ιεραρχικά ςε κατθγορία ομάδα τφπο υλικοφ. Κάκε τφποσ υλικοφ μπορεί να περιλαμβάνει πολλά υλικά. Για κάκε υλικό διατθρείται απόκεμα αςφαλείασ s που ςθμαίνει ότι όταν θ υπάρχουςα ποςότθτα του υλικοφ πζςει κάτω από το s παραγγζλλεται αυτόματα ποςότθτα, τόςθ ϊςτε θ ςυνολικι διακζςιμθ ποςότθτα να είναι ίςθ προσ το μζγιςτο επιτρεπτό απόκεμα S. Η αποκικθ επικυμεί να παρακολουκεί επίςθσ τισ ειςροζσ (προμικειεσ) και εκροζσ (πωλιςεισ) υλικϊν με βάςθ αντίςτοιχα τιμολόγια (προμικειασ ι πϊλθςθσ). Κάκε τιμολόγιο μπορεί να εκδίδεται για πολλά υλικά και κάκε υλικό μπορεί να αναφζρεται ςε πολλά τιμολόγια.
48 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (4/20) Ανάλυςθ Απαιτιςεων Ραραδοχζσ Το μοντζλο αυτό περιγράφει τθν διαδικαςία παρακολοφκθςθσ τθσ κίνθςθσ των υλικϊν μιασ αποκικθσ. Τα υλικά τθσ αποκικθσ (MATERIAL) είναι ταξινομθμζνα ιεραρχικά ςε κατθγορία (CATEGOTY), ομάδα (GROUP) και τφπο (TYPE). Η αποκικθ παρακολουκεί τισ ειςροζσ (προμικειεσ) και τισ εκροζσ (πωλιςεισ) υλικϊν με βάςθ αντίςτοιχα τιμολόγια (INVOICE). Ζνα τιμολόγιο (INVOICE) αντιςτοιχεί ςε πολλά υλικά (MATERIAL) και ζνα υλικό αντιςτοιχεί ςε πολλά τιμολόγια. Αυτι θ αντιςτοιχία καταχωρείται ςτο (INV_MAT).
49 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (5/20) Μοντζλο Οντοτιτων Συςχετίςεων (ER) CATEGORY HAS GROUP HAS TYPE MATERIAL INVOICE HAS CORRESPONDS_TO INV_MAT CORRESPONDS_TO
50 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (6/20) Σχεςιακό μοντζλο CATEGORY CATEGORY_CODE CATEGORY_DESCR smallint varchar(100) <pk> FK_HAS4 GROUP GROUP_CODE CATEGORY_CODE GROUP_DESCR TYPE_CODE GROUP_CODE TYPE_DESCR TYPE smallint smallint varchar(100) FK_HAS2 smallint smallint varchar(100) <pk> <fk> <pk> <fk> FK_HAS6 MATERIAL MATERIAL_CODE TYPE_CODE MATERIAL_DESCR MATERIAL_QUANTITY MATERIAL_MIN_QUAN MATERIAL_MAX_QUANTITY smallint smallint varchar(50) varchar(20) varchar(30) varchar(30) <pk> <fk> INVOICE_CODE INVOICE_DATE INVOICE_TYPE INVOICE varchar(20) datetime varchar(15) <pk> FK_CORRESPONDS_TO3 INVOICE_CODE MATERIAL_CODE INV_MAT varchar(20) smallint <fk2> <fk1> FK_CORRESPONDS_TO5
51 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (7/20) Το ςχεςιακό μοντζλο μποροφμε να το αναπαραςτιςουμε με τουσ πίνακεσ, ωσ εξισ: CATEGORY (CATEGORY_CODE, CATEGORY_DESCR) GROUP (GROUP_CODE, CATEGORY_CODE, GROUP_DESCR) TYPE (TYPE_CODE, GROUP_CODE, TYPE_DESCR) MATERIAL (MATERIAL_CODE, TYPE_CODE, MATERIAL_DESCR, MATERIAL_QUANTITY, MATERIAL_MAX_QUANT, MATERIAL_MIN_QUANT) INVOICE (INVOICE_CODE, INVOICE_DATE, INVOICE_TYPE) INV_MAT (MATERIAL_CODE, INVOICE_CODE)
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (8/20) Τα 2 προθγοφμενα ςχιματα μασ δείχνουν πωσ είναι το μοντζλο οντοτιτων-ςυςχετίςεων και το ςχεςιακό. Ρρζπει να φτιάξουμε το ςχεςιακό μοντζλο ςτον SQL Server 2008. Ανοίγω το SQL Server Management Studio Επιλζγω να ςυνδεκϊ ςτο Database Engine Επιλζγω τον Server Name, ςτον οποίο κα ςυνδεκϊ (π.χ. DESPINA- PC\SQLEXPRESS, όπου SQLEXPRESS είναι το όνομα που δϊςαμε ςτο instance τθσ βάςθσ μασ ςτο κομμάτι Instance Configuration τθσ εγκατάςταςθσ) Επιλζγω τφπο πιςτοποίθςθσ (authentication): υπάρχουν δυο είδθ λογαριαςμϊν ςτον SQL Server Windows ι domain χριςτεσ Windows Authentication: αν επιλζξω αυτό δεν χρειάηεται να βάλω username και password SQL Server χριςτεσ SQL Server Authentication: αν επιλζξω αυτό βάηω για username και password το sa και «το password τθσ επιλογισ μου» (το επιλζξαμε νωρίτερα, κατά τθν εγκατάςταςθ, πχ sastudent) αντίςτοιχα. 52
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (9/20) 53
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (10/20) 54
55 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (11/20) ΔΗΜΙΟΥΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ A ΤΟΡΟΣ Δεξί κλικ ςτο φάκελο Database Επιλογι New Database Ολοκλιρωςθ του wizard New Database Β ΤΟΡΟΣ Με χριςθ τθσ εντολισ T-SQL CREATE DATABASE.
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (12/20) 56
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (13/20) 57
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (14/20) 58
59 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (15/20) ΔΗΜΙΟΥΓΙΑ ΡΙΝΑΚΑ A ΤΟΡΟΣ: ΜΕΣΑ ΑΡΟ ΤΟ ΓΑΦΙΚΟ ΡΕΙΒΑΛΛΟΝ Επιλζγουμε τθ βάςθ δεδομζνων (π.χ. order) και κάνουμε δεξί κλικ ςτο φάκελο Table Επιλογι New Table Ορίηουμε για κάκε ςτιλθ όνομα και τφπο δεδομζνων (για να ορίςουμε πρωτεφον κλειδί, δεξί κλικ και ϋset Primary Keyϋ Δυνατότθτα αποκικευςθσ του script. ΡΟΣΟΧΗ: ΘΥΜΟΜΑΣΤΕ ΝΑ ΒΑΛΟΥΜΕ ΤΟ ΔΕΥΤΕΕΥΟΝ ΚΛΕΙΔΙ (ΑΝ ΥΡΑΧΕΙ) -> ΔΗΛΑΔΗ ΑΥΤΟ ΡΟΥ ΡΙΘΑΝΩΣ ΝΑ ΡΟΚΥΨΕΙ ΑΡΟ ΜΕΤΑΦΟΑ ΛΟΓΩ ΕΙΔΟΥΣ ΣΥΣΧΕΤΙΣΗΣ Β ΤΟΡΟΣ Με χριςθ τθσ εντολισ T-SQL CREATE TABLE.
60 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (16/20) ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΩΝ ΚΑΙ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΟΝΤΟΤΗΤΩΝ Επιλζγουμε τον φάκελο Database Diagram κάτω από τον φάκελο τθσ ΒΔ που ζχουμε δθμιουργιςει και κάνουμε δεξί κλικ. Επιλζγουμε New Database Diagram. Στο παράκυρο Add που εμφανίηεται επιλζγουμε τουσ πίνακεσ που κζλουμε να εμφανιςτοφν ςτο διάγραμμα. Αφοφ εμφανιςτεί το διάγραμμα με τουσ πίνακεσ για να δθμιουργιςουμε μια ςυςχζτιςθ κάνουμε δεξί κλίκ ςε κάκε πίνακα κι επιλζγουμε το Relationships. Στο παράκυρο που κα εμφανιςτεί ονομάηουμε τθ ςυςχζτιςθ με βάςθ το εξωτερικό κλειδί που μεταφζρεται, ανάλογα με το είδοσ τθσ ςυςχζτιςθσ (1:1, 1:Ν). Ρθγαίνουμε ςτο Tables and Columns Specification και πατάμε τισ τελείεσ. Στο καινοφριο παράκυρο επιλζγουμε το πρωτεφον κλειδί του πίνακα που κζλουμε να γίνει εξωτερικό κλειδί ενόσ άλλου πίνακα. Επαναλαμβάνουμε τθ διαδικαςία για κάκε πίνακα τθσ ΒΔ.
61 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (17/20) ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΩΝ ΚΑΙ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΟΝΤΟΤΗΤΩΝ
62 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (18/20) ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΩΝ ΚΑΙ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΟΝΤΟΤΗΤΩΝ
63 ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (19/20) ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΩΝ ΚΑΙ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΟΝΤΟΤΗΤΩΝ
ΔΗΜΙΟΥΓΙΑ ΒΔ ΜΕ SQL SERVER 2008 ΡΑΑΚΟΛΟΥΘΗΣΗ ΚΙΝΗΣΕΩΝ ΑΡΟΘΗΚΗΣ (20/20) ΔΗΜΙΟΥΓΙΑ ΔΙΑΓΑΜΜΑΤΩΝ ΚΑΙ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕΤΑΞΥ ΟΝΤΟΤΗΤΩΝ 64
ΕΥΧΑΙΣΤΩ ΡΟΛΥ! 65