i. Ανάκτηση δεδομένων:
Αυτό περιλαμβάνει την ερώτηση της βάσης δεδομένων για τη λήψη των επιθυμητών δεδομένων. Η κύρια μέθοδος είναι η χρήση δομημένης γλώσσας ερωτήματος (SQL) για σχεσιακές βάσεις δεδομένων. Οι βάσεις δεδομένων NoSQL χρησιμοποιούν τις δικές τους γλώσσες ερωτήματος (π.χ. MongoDB χρησιμοποιεί μια γλώσσα ερωτήματος που μοιάζει με JSON).
* Παραδείγματα SQL (χρησιμοποιώντας έναν υποθετικό πίνακα "χρηστών" με στήλες `id ',` name`, `e -mail',` age '):
* Επιλέγοντας όλες τις στήλες από όλες τις σειρές:
`` sql
Επιλέξτε * από τους χρήστες.
`` `
* Επιλογή συγκεκριμένων στηλών:
`` sql
Επιλέξτε αναγνωριστικό, όνομα, email από χρήστες.
`` `
* Δεδομένα φιλτραρίσματος με το Where Clause:
`` sql
Επιλέξτε * από χρήστες όπου ηλικία> 25;
`` `
* Παραγγελία δεδομένων με παραγγελία με ρήτρα:
`` sql
Επιλέξτε * από την παραγγελία χρηστών με όνομα ASC; - ASC για ανερχόμενη, DESC για φθίνουσα
`` `
* Περιορισμός του αριθμού των σειρών με οριακή ρήτρα:
`` sql
Επιλέξτε * από το όριο των χρηστών 10;
`` `
* Παράδειγμα NOSQL (MongoDB): Η σύνταξη διαφέρει σημαντικά. Θα χρησιμοποιούσατε μεθόδους όπως `Find ()` για να ανακτήσετε έγγραφα.
`` `javascript
// Υποθέτοντας μια συλλογή που ονομάζεται «χρήστες» με έγγραφα που περιέχουν «όνομα», «email» και «ηλικία»
db.users.find ({age:{$ gt:25}}). toArray () // βρίσκει χρήστες ηλικίας άνω των 25
`` `
ii. Επικύρωση δεδομένων:
Αυτό το κρίσιμο βήμα εξασφαλίζει ότι τα δεδομένα που ανακτώνται είναι ακριβή, πλήρη και συμμορφώνεται με τις αναμενόμενες μορφές. Η επικύρωση μπορεί να συμβεί σε πολλαπλά στρώματα:
* Επικύρωση βάσης δεδομένων: Αυτό συνεπάγεται τη χρήση περιορισμών βάσης δεδομένων (π.χ., «όχι null», «μοναδικό», `check`,` ξένοι κλειδί 'περιορισμούς στο SQL) για την επιβολή της ακεραιότητας των δεδομένων απευθείας στη βάση δεδομένων. Αυτό εμποδίζει την είσοδο στα μη έγκυρα δεδομένα στη βάση δεδομένων.
* Επικύρωση επιπέδου εφαρμογής: Αυτό είναι κρίσιμο, διότι οι περιορισμοί της βάσης δεδομένων μόνο μπορεί να μην επαρκούν. Η αίτησή σας θα πρέπει να εκτελέσει ελέγχους στα ανακτημένα δεδομένα πριν τα χρησιμοποιήσετε. Αυτό συνήθως περιλαμβάνει:
* Τύπος δεδομένων επικύρωση: Βεβαιωθείτε ότι τα δεδομένα είναι του αναμενόμενου τύπου (π.χ. ακέραιος, συμβολοσειρά, ημερομηνία).
* Επικύρωση μορφής: Ελέγξτε εάν οι χορδές συμμορφώνονται με συγκεκριμένα πρότυπα (π.χ. διεύθυνση ηλεκτρονικού ταχυδρομείου, αριθμός τηλεφώνου χρησιμοποιώντας κανονικές εκφράσεις).
* Επικύρωση εύρους: Βεβαιωθείτε ότι οι αριθμητικές τιμές εμπίπτουν σε αποδεκτές περιοχές.
* Επικύρωση μήκους: Βεβαιωθείτε ότι οι χορδές δεν είναι πολύ μεγάλες ή πολύ μικρές.
* Null Checks: Χειριστείτε περιπτώσεις όπου τα πεδία ενδέχεται να λείπουν δεδομένα (τιμές `null`).
* Επικύρωση επιχειρηματικού κανόνα: Εφαρμογή κανόνων για συγκεκριμένες εφαρμογές, όπως η εξασφάλιση της ηλικίας ενός χρήστη είναι πάνω από ένα συγκεκριμένο όριο.
iii. Συνδυάζοντας την ανάκτηση και την επικύρωση (παράδειγμα με την Python και μια σχεσιακή βάση δεδομένων χρησιμοποιώντας μια βιβλιοθήκη όπως το `psycopg2` για το postgresql):
`` `Python
Εισαγωγή psycopg2
εισαγωγή
def get_and_validate_users (conn, age_threshold):
COR =CONN.Cursor ()
Cur.Execute ("Επιλέξτε ID, όνομα, email, ηλικία από χρήστες όπου ηλικία> %s", (age_threshold,)))
χρήστες =cur.fetchall ()
επικυρωμένο_USERS =[]
Για χρήστες σε χρήστες:
user_id, όνομα, email, ηλικία =χρήστης
#Νομιμοποίηση
Αν όχι το ISInstance (ηλικία, int):
εκτύπωση (F "Μη έγκυρη ηλικία για χρήστη {όνομα}:{Age}")
Συνεχίστε το #skip στον επόμενο χρήστη
αν όχι re.match (r "[^@]+@[^@]+\. [^@]+", Email):
εκτύπωση (F "Μη έγκυρη μορφή email για χρήστη {όνομα}:{Email}")
συνεχίζω
Εάν ο Len (όνομα) <2:
εκτύπωση (f "Όνομα πολύ σύντομο για το χρήστη {όνομα}")
συνεχίζω
Vaidated_users.append ({"id":user_id, "Όνομα":Όνομα, "Email":Email, "Age":Age})
cur.close ()
Επιστροφή επικυρωμένων_USERS
conn =psycopg2.connect ("dbname =myDatabase user =myuser password =myPassword")
Vaidated_users =get_and_validate_users (Conn, 25)
εκτύπωση (επικυρωμένη_users)
conn.close ()
`` `
Θυμηθείτε να χειριστείτε πιθανά σφάλματα (π.χ. σφάλματα σύνδεσης βάσης δεδομένων, σφάλματα ερωτήματος) με χαρά χρησιμοποιώντας "δοκιμάστε ... εκτός από τα μπλοκ στον κωδικό σας. Η συγκεκριμένη εφαρμογή θα εξαρτηθεί σε μεγάλο βαθμό από το επιλεγμένο σύστημα βάσης δεδομένων, τη γλώσσα προγραμματισμού και τις ανάγκες της εφαρμογής. Πάντα να απολυμαίνετε τις εισόδους των χρηστών για την πρόληψη των ευπάθειας της SQL έγχυσης κατά την κατασκευή ερωτημάτων SQL. Η χρήση παραμετροποιημένων ερωτημάτων (όπως φαίνεται στο παράδειγμα) είναι μια κρίσιμη βέλτιστη πρακτική ασφάλειας.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα