Oracle Unique Index

Oracle Unique Index



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

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

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







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



Oracle Unique Index

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



Στην Oracle, μπορούμε να δημιουργήσουμε ένα μοναδικό ευρετήριο χρησιμοποιώντας τη δήλωση CREATE UNIQUE INDEX όπως φαίνεται παρακάτω:





ΔΗΜΙΟΥΡΓΗΣΤΕ ΜΟΝΑΔΙΚΟ ΕΥΡΕΤΗΡΙΟ index_name ON table_name ( στήλες ) ;

Οι στήλες που περιλαμβάνονται στο ευρετήριο δεν θα δέχονται διπλότυπες σειρές.

Παράδειγμα μοναδικής απεικόνισης πίνακα

Για να δείξετε πώς μπορείτε να δημιουργήσετε και να χρησιμοποιήσετε ένα μοναδικό ευρετήριο, ακολουθήστε τον παρακάτω πίνακα:



ΕΠΙΛΕΓΩ * FROM sample_data;

Παραγωγή :

Δημιουργήστε ένα μοναδικό ευρετήριο στη στήλη First_Name

Το ακόλουθο παράδειγμα δήλωσης δείχνει πώς να δημιουργήσετε ένα μοναδικό ευρετήριο χρησιμοποιώντας τη στήλη first_name:

δημιουργήστε μοναδικό ευρετήριο first_name_unique στο sample_data ( όνομα ) ;

Με την ενεργοποίηση αυτού του ευρετηρίου, δεν μπορούμε να εισαγάγουμε περισσότερες από μία σειρές με το ίδιο όνομα.

Πάρτε για παράδειγμα την ακόλουθη δήλωση εισαγωγής:

εισαγωγή στο sample_data ( ταυτότητα , first_name, ip_address, btc_address, credit_card, identifier )
αξίες ( έντεκα , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Εάν εκτελέσουμε τη δεδομένη εντολή εισαγωγής, θα πρέπει να λάβουμε ένα σφάλμα όπως φαίνεται στο παρακάτω:

[ 23000 ] [ 1 ] ORA-00001: μοναδικός περιορισμός ( HR.FIRST_NAME_UNIQUE ) παραβιάστηκε

Όπως μπορούμε να δούμε, η εισαγωγή της δεδομένης τιμής παραβιάζει τον μοναδικό περιορισμό για τη στήλη first_name.

Δημιουργήστε ένα μοναδικό ευρετήριο με δύο στήλες

Μπορούμε επίσης να έχουμε ένα μοναδικό ευρετήριο που αποτελείται από περισσότερες από μία στήλες. Στο παρακάτω παράδειγμα, δημιουργούμε ένα μοναδικό ευρετήριο χρησιμοποιώντας τις στήλες first_name και io_address:

δημιουργήστε μοναδικά index verify_columns στο sample_data ( first_name, ip_address ) ;

Ομοίως, η προσθήκη διπλότυπων τιμών είτε για τη στήλη first_name είτε για τη στήλη ip_address θα οδηγήσει σε μοναδικά σφάλματα παραβίασης ευρετηρίου.

Αυτόματοι μοναδικοί δείκτες

Έχετε αναρωτηθεί ποτέ τι συμβαίνει όταν δηλώνετε μια στήλη πίνακα με πρωτεύον κλειδί ή μοναδικό περιορισμό;

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

Αυτό διασφαλίζει ότι δεν εισάγεται διπλή τιμή σε αυτήν τη στήλη.

Πάρτε για παράδειγμα την ακόλουθη δήλωση:

δημιουργία πίνακα δείγματος_δεδομένων
(
ταυτότητα αριθμός,
first_name  varchar2 ( πενήντα ) ,
ip_address  varchar2 ( είκοσι ) ,
btc_address varchar2 ( πενήντα ) ,
πιστωτική_κάρτα varchar2 ( πενήντα ) ,
αναγνωριστικό  varchar2 ( 40 ) ,
περιορισμός sample_pk πρωτεύον κλειδί ( ταυτότητα )
) ;

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

επιλέγω index_name, index_type, visibility, status, TABLE_NAME
από all_indexes όπου TABLE_NAME = 'ΔΕΙΓΜΑ ΔΕΔΟΜΕΝΩΝ' ;

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

συμπέρασμα

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