Μετάβαση στο περιεχόμενο

Microsoft SQL Server

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Αυτή είναι μια παλιά έκδοση της σελίδας, όπως διαμορφώθηκε από τον Pstavroulis (συζήτηση | συνεισφορές) στις 23:31, 27 Ιουλίου 2009 (Νέα σελίδα: O SQL Server είναι ένα RDBMS το οποίο ανaπτύσεται από την Microsoft. Οι κύριες γλώσσες που χρησιμποποιoύντ...). Η τρέχουσα διεύθυνση (URL) είναι μόνιμος σύνδεσμος προς αυτή την έκδοση, που μπορεί να διαφέρει σημαντικά από την τρέχουσα έκδοση.
(διαφ.) ← Παλαιότερη έκδοση | Βλέπε τελευταία έκδοση (διαφ.) | Νεότερη έκδοση → (διαφ.)

O SQL Server είναι ένα RDBMS το οποίο ανaπτύσεται από την Microsoft. Οι κύριες γλώσσες που χρησιμποποιoύνται είνα η T-SQL & ANSI SQL.

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


Αποθήκευση

H κεντρική βάση δεδομένων του SQL υποστηρίζει διαφορετικούς τύπους, συμπεριλαμβανομένων τον ακέραιο αριθμό, float, decimal, char, Varchar (σειρές χαρακτήρων μεταβλητού μήκους), δυαδικός (για τις μη δομημένα δεδομένα), text (για κείμενα).

Επιτρέπει επίσης στους καθορισμένους από το χρήστη σύνθετους τύπους (UDTs), δηλαδή τύπους που βασίζονται στους βασικους τύπους αλλά μπορούν να τροποποιηθούν. Τα στοιχεία στη βάση δεδομένων αποθηκεύονται σε ένα (ή περισσότερα) αρχεία με επέκταση .mdf.

Τα δευτεροβάθμια στοιχείων αποθηκεύονται στο αρχείο με επέκταση .ndf. To log το οποίο περιέχει όλες τις προσφατες αλλαγές στην βάση δεδομένων αποθηκεύται στο αρχείο με επέκταση .ldf

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


Ενδιάμεση μνήμη

Σελίδες πηγαίνουν στο buffer RAM για να ελαχιστοποιηθεί η μεταφορά δεδομένων προς και από τον σκληρό το δίσκο . Οποιαδήποτε σελίδα 8 KB μπορεί να είναι αποθηκευμένη στη μνήμη, και το σύνολο όλων των σελίδων που αποθηκεύονται σε μία περίοδο καλείται cache.

Το ποσό μνήμης διαθέσιμο στον κεντρικό διακομιστή SQL αποφασίζει πόσες σελίδες θα εναποθηκευθούν στο cache. O SQL Server έχει διαφορετικούς και έξυπνους αλγόριθμους για την καλύτερη απόδοση της cache.

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

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

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


παραλλησμός

Ο κεντρικός διακομιστή SQL παρέχει δύο τρόπους ελέγχου του παραλλησμού: απαισιόδοξος παραλλησμός και αισιόδοξος παραλλησμός.

Όταν ο απαισιόδοξος έλεγχος παραλλησμού χρησιμοποιείται, ο κεντρικός διακομιστής SQL ελέγχει την ταυτόχρονη πρόσβαση με τη χρησιμοποίηση λουκέτων (locks). Τα λουκέτα μπορούν είτε να μοιράζονται είτε να είναι αποκλειστικά. Το αποκλειστικό λουκέτο χορηγεί στο χρήστη την αποκλειστική πρόσβαση στα στοιχεία (συνήθως κατα την αλλαγή στοιχείων) - κανένας άλλος χρήστης δεν μπορεί να έχει πρόσβαση στα στοιχεία εφ' όσον υπάρχει λουκέτο. Το κοινό λουκέτο χρησιμοποιείται όταν διαβάζεται κάποιο στοιχείο - οι πολλαπλάσιοι χρήστες μπορούν να διαβάσουν από τα στοιχεία που κλειδώνονται με ένα κοινό λουκέτο, αλλά να μην αποκτούν αποκλειστικό λουκέτο. \

Το λουκέτο μποροεί να εφαρμοστεί σε διαφορετικά επίπεδα - σε ολόκληρους πίνακες, σελίδες, ή ακόμα και σε διαφορετικές γραμμές στοιχείων. Το επίπεδο που χρησιμοποιείται καθορίζεται σε μια βάση δεδομένων από περίπλοκους αλγόριθμους του SQL Server, οι οποίοι έχουν σκοπό την γρηγορότερη και καλύτερη λειτουργεία απο χιλιάδες χρήστες η ακόμη και εκατοντάδες χιλίαδες την ίδια στιγμή. Ενας SQL Server είναι δυνατόν να πραγματοποιήσει μέχρι και 1.000.000 transactions το δευτερόλεπτο με το ανάλογο hardware. O SQL Server λειτουργει σε 32 η 64 bit και υποστηρίζει μέχρι και 256 πυρήνες (CPU).