ACC2000: Ορισμός σχέσεων μεταξύ πινάκων σε βάση δεδομένων της Microsoft Access

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 304467 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Αρχάριος: Απαιτείται γνώση του περιβάλλοντος εργασίας σε υπολογιστές ενός χρήστη.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιγράφει πώς μπορείτε να ορίσετε τις σχέσεις σε μια βάση δεδομένων της Microsoft Access. Περιλαμβάνει τα εξής θέματα:
  • Τι είναι οι σχέσεις πινάκων
  • Τύποι σχέσεων πινάκων
    • Σχέσεις ένα-προς-πολλά
    • Σχέσεις πολλά-προς-πολλά
    • One-To-One σχέσεις

  • Πώς μπορείτε να ορίσετε σχέσεις μεταξύ πινάκων
    • Με τον τρόπο για τον ορισμό μιας σχέσεων ένα-προς-πολλά ή One-To-One
    • Πώς μπορείτε να ορίσετε ένα πολλά-προς-πολλά σχέσεων

  • Αναφορική ακεραιότητα
  • Διαδοχικές ενημερώσεις και διαγραφές
  • Συμμετάσχετε σε τύπους

Περισσότερες πληροφορίες

Τι είναι οι σχέσεις πινάκων

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

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

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

Τύποι σχέσεων πινάκων

Μια σχέση λειτουργεί με το ταίριασμα των δεδομένων στις στήλες κλειδιού, συνήθως στήλες με το ίδιο όνομα και στους δύο πίνακες. Στις περισσότερες περιπτώσεις, η σχέση συμφωνεί με το πρωτεύον κλειδί από έναν πίνακα, το οποίο παρέχει ένα μοναδικό αναγνωριστικό για κάθε γραμμή, με μια καταχώρηση στο ξένο κλειδί στον άλλο πίνακα. Για παράδειγμα, οι πωλήσεις μπορούν να συσχετιστούν με το συγκεκριμένο τίτλους που πουλήθηκαν, δημιουργώντας μια σχέση μεταξύ του title_id στήλη του πίνακα Titles (πρωτεύον κλειδί) και η στήλη title_id στον πίνακα "Πωλήσεις" (το ξένο κλειδί).

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

Σχέσεις ένα-προς-πολλά

Μια σχέση ένα-προς-πολλά είναι ο πιο συνηθισμένος τύπος σχέσης. Σε αυτόν τον τύπο σχέσης, μιας γραμμής σε πίνακα A μπορεί να έχει πολλές γραμμές που ταιριάζουν στον Πίνακα B, αλλά μια γραμμή στον Πίνακα B μπορεί να έχει μόνο μία γραμμή που ταιριάζει στον πίνακα A. Για παράδειγμα, οι πίνακες εκδοτών και τίτλοι έχουν μια σχέση ένα-προς-πολλά: κάθε εκδότης παράγει πολλούς τίτλους, αλλά κάθε τίτλος προέρχεται από τον εκδότη μόνο μία.

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

In Access, the primary key side of a one-to-many relationship is denoted by a key symbol. The foreign key side of a relationship is denoted by an infinity symbol.

Many-To-Many Relationships

In a many-to-many relationship, a row in table A can have many matching rows in table B, and vice versa. You create such a relationship by defining a third table, called a junction table, whose primary key consists of the foreign keys from both table A and table B. For example, the Authors table and the Titles table have a many-to-many relationship that is defined by a one-to-many relationship from each of these tables to the TitleAuthors table. The primary key of the TitleAuthors table is the combination of the au_id column (the authors table?s primary key) and the title_id column (the Titles table?s primary key).

One-To-One Relationships

In a one-to-one relationship, a row in table A can have no more than one matching row in table B, and vice versa. A one-to-one relationship is created if both of the related columns are primary keys or have unique constraints.

This type of relationship is not common because most information related in this way would be all in one table. You might use a one-to-one relationship to:
  • Divide a table with many columns.
  • Isolate part of a table for security reasons.
  • Store data that is short-lived and could be easily deleted by simply deleting the table.
  • Store information that applies only to a subset of the main table.
In Access, the primary key side of a one-to-one relationship is denoted by a key symbol. The foreign key side is also denoted by a key symbol.

How to Define Relationships Between Tables

When you create a relationship between tables, the related fields do not have to have the same names. However, related fields must have the same data type unless the primary key field is an AutoNumber field. You can match an AutoNumber field with a Number field only if theFieldSizeproperty of both of the matching fields is the same. For example, you can match an AutoNumber field and a Number field if theFieldSizeproperty of both fields is Long Integer. Even when both matching fields are Number fields, they must have the sameFieldSizeη ρύθμιση της ιδιότητας.

How to Define a One-To-Many or One-To-One Relationships

To create a one-to-many or a one-to-one relationship, follow these steps:
  1. Close any tables that you have open. You cannot create or modify relationships between open tables.
  2. Press F11 to switch to the Database window.
  3. Στο διακομιστήΕργαλείαμενού, κάντε κλικ στο κουμπίΣχέσεις.
  4. If you have not yet defined any relationships in your database, theΕμφάνιση πίνακαdialog box is automatically displayed. If you want to add the tables that you want to relate, but theΕμφάνιση πίνακαdialog box is not displayed, clickΕμφάνιση πίνακαΣτο διακομιστήΣχέσειςΜενού (Menu).
  5. Double-click the names of the tables that you want to relate, and then close theΕμφάνιση πίνακαπαράθυρο διαλόγου. To create a relationship between a table and itself, add that table twice.
  6. Drag the field that you want to relate from one table to the related field in the other table. To drag multiple fields, press CTRL, click each field, and then drag them.

    In most cases, you drag the primary key field (which is displayed in bold text) from one table to a similar field (often with the same name) called the foreign key in the other table.
  7. Για ναEdit Relationshipsεμφανίζεται το παράθυρο διαλόγου. Ensure that the field names displayed in the two columns are correct. You can change them if necessary.

    Set the relationship options if necessary. If you need information about a specific item in theEdit Relationshipsdialog box, click the question mark button, and then click the item. These options will be explained in detail later in this article.
  8. Κάντε κλικCreateto create the relationship.
  9. Repeat steps 5 through 8 for each pair of tables that you want to relate.

    When you close theEdit Relationshipsdialog box, Microsoft Access asks if you want to save the layout. Whether you save the layout or not, the relationships that you create are saved in the database.

    ΣΗΜΕΙΩΣΗ:You can create relationships in queries as well as tables. However, referential integrity is not enforced with queries.

How to Define a Many-To-Many Relationships

To create a many-to-many relationship, follow these steps:
  1. Create the two tables that will have a many-to-many relationship.
  2. Create a third table, called a junction table, and then add to the junction table new fields with the same definitions as the primary key fields from each of the other two tables. In the junction table, the primary key fields function as foreign keys. You can add other fields to the junction table, just as you can to any other table.
  3. In the junction table, set the primary key to include the primary key fields from the other two tables. For example, in an TitleAuthors junction table, the primary key would be made up of the OrderID and ProductID fields.

    ΣΗΜΕΙΩΣΗ: To create a primary key, follow these steps:
    1. Open a table in Design view.
    2. Επιλέξτε το πεδίο ή τα πεδία που θέλετε να ορίσετε ως πρωτεύον κλειδί. Για να επιλέξετε ένα πεδίο, κάντε κλικ στο δείκτη επιλογής γραμμής για το πεδίο που θέλετε.

      Για να επιλέξετε πολλά πεδία, κρατήστε πατημένο το πλήκτρο CTRL και στη συνέχεια κάντε κλικ στο δείκτη επιλογής γραμμής για κάθε πεδίο.
    3. Κάντε κλικΠρωτεύον κλειδίστη γραμμή εργαλείων.

      ΣΗΜΕΙΩΣΗ:Εάν θέλετε η σειρά των πεδίων σε ένα πρωτεύον κλειδί πολλών πεδίων να διαφέρει από τη σειρά αυτών των πεδίων στον πίνακα, κάντε κλικ στο κουμπίΤα ευρετήριαon the toolbar to display theΤα ευρετήριαdialog box, and then reorder the field names for the index namedPrimaryKey.
  4. Ορισμός μιας σχέσης ένα-προς-πολλά μεταξύ των δύο πινάκων πρωτεύοντα και τον πίνακα σύνδεσης.

Αναφορική ακεραιότητα

Η ακεραιότητα αναφορών είναι ένα σύστημα κανόνων που χρησιμοποιεί η Microsoft Access για να εξασφαλίσει ότι οι σχέσεις μεταξύ εγγραφών σε σχετιζόμενους πίνακες είναι έγκυρες και ότι δεν κατά λάθος διαγράψετε ή αλλάξετε σχετιζόμενα δεδομένα. Μπορείτε να ορίσετε την ακεραιότητα αναφορών όταν ικανοποιούνται όλες οι παρακάτω συνθήκες:
  • Το πεδίο που ταιριάζει από τον πρωτεύοντα πίνακα είναι ένα πρωτεύον κλειδί ή έχει ένα μοναδικό ευρετήριο.
  • Τα σχετιζόμενα πεδία έχουν τον ίδιο τύπο δεδομένων. Υπάρχουν δύο εξαιρέσεις. Ένα πεδίο αυτόματης αρίθμησης μπορεί να συσχετιστεί με ένα πεδίο "Αριθμός" με έναFieldSizeρύθμιση της ιδιότητας Ακέραιος μεγάλου μήκους και ένα πεδίο "Αυτόματη αρίθμηση" με έναFieldSizeρύθμιση της ιδιότητας Αναγνωριστικό αναπαραγωγής μπορεί να συσχετιστεί με ένα πεδίο "Αριθμός" με έναFieldSizeρύθμιση της ιδιότητας του αναγνωριστικού αναπαραγωγής.
  • Και οι δύο πίνακες ανήκουν στην ίδια βάση δεδομένων της Microsoft Access. Εάν οι πίνακες συνδεδεμένους πίνακες, πρέπει να είναι πίνακες σε μορφή Microsoft Access, και πρέπει να ανοίξετε τη βάση δεδομένων στην οποία είναι αποθηκευμένοι, για να ενεργοποιήσετε την ακεραιότητα αναφορών. Δεν είναι δυνατό να τεθεί σε ισχύ την ακεραιότητα αναφορών για συνδεδεμένους πίνακες από βάσεις δεδομένων σε άλλες μορφές.
Οι ακόλουθοι κανόνες ισχύουν όταν χρησιμοποιείτε την ακεραιότητα αναφορών:

  • Δεν μπορείτε να εισαγάγετε μια τιμή στο πεδίο ξένου κλειδιού του σχετιζόμενου πίνακα η οποία δεν υπάρχει στο πρωτεύον κλειδί του πρωτεύοντα πίνακα. Ωστόσο, μπορείτε να εισαγάγετε μια τιμή Null στο ξένο κλειδί, καθορίζοντας ότι οι εγγραφές είναι άσχετες μεταξύ τους. Για παράδειγμα, δεν μπορείτε να έχετε μια παραγγελία που έχει αντιστοιχιστεί σε έναν πελάτη που δεν υπάρχει, αλλά μπορείτε να έχετε μια παραγγελία που έχει εκχωρηθεί σε κανένα, καταχωρώντας μια τιμή Null στο πεδίο "ΚωδΠελάτη".
  • Δεν μπορείτε να διαγράψετε μια εγγραφή από έναν πρωτεύοντα πίνακα αν υπάρχουν εγγραφές που ταιριάζουν σε ένα σχετιζόμενο πίνακα. Για παράδειγμα, δεν είναι δυνατή η διαγραφή μιας εγγραφής υπαλλήλου από τον πίνακα "Υπάλληλοι", αν υπάρχουν παραγγελίες που έχουν αντιστοιχιστεί στον εργαζόμενο στον πίνακα "Παραγγελίες".
  • Δεν μπορείτε να αλλάξετε την τιμή πρωτεύοντος κλειδιού στον πρωτεύοντα πίνακα, αν αυτή η εγγραφή έχει σχετιζόμενες εγγραφές. Για παράδειγμα, δεν μπορείτε να αλλάξετε το Αναγνωριστικό ενός υπαλλήλου στον πίνακα "Υπάλληλοι", αν υπάρχουν παραγγελίες που έχουν αντιστοιχιστεί σε αυτόν τον υπάλληλο στον πίνακα "Παραγγελίες".

Διαδοχικές ενημερώσεις και διαγραφές

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

Εάν κάνετε κλικ για να επιλέξετε τοΔιαδοχική ενημέρωση συσχετισμένων πεδίωντο πλαίσιο ελέγχου όταν ορίζετε μια σχέση, κάθε φορά που αλλάζετε το πρωτεύον κλειδί μιας εγγραφής στον πρωτεύοντα πίνακα, η Microsoft Access ενημερώνει αυτόματα το πρωτεύον κλειδί με τη νέα τιμή σε όλες τις σχετιζόμενες εγγραφές. For example, if you change a customer's ID in the Customers table, the CustomerID field in the Orders table is automatically updated for every one of that customer's orders so that the relationship is not broken. Microsoft Access cascades updates without displaying any message.

ΣΗΜΕΙΩΣΗ:If the primary key in the primary table is an AutoNumber field, selecting theCascade Update Related Fieldscheck box will have no effect, because you cannot change the value in an AutoNumber field.

Εάν επιλέξετε τοCascade Delete Related Recordscheck box when you define a relationship, any time that you delete records in the primary table, Microsoft Access automatically deletes related records in the related table. For example, if you delete a customer record from the Customers table, all the customer's orders are automatically deleted from the Orders table (this includes records in the Order Details table related to the Orders records). When you delete records from a form or datasheet with theCascade Delete Related Recordscheck box selected, Microsoft Access warns you that related records may also be deleted. However, when you delete records using a delete query, Microsoft Access automatically deletes the records in related tables without displaying a warning.

Συμμετάσχετε σε τύπους

There are three join types, as follows:

Επιλογή 1defines an inner join. An inner join is a join where records from two tables are combined in a query's results only if values in the joined fields meet a specified condition. In a query, the default join is an inner join that selects records only if values in the joined fields match.

Επιλογή 2defines a left outer join. A left outer join is a join in which all the records from the left side of the LEFT JOIN operation in the query's SQL statement are added to the query's results, even if there are no matching values in the joined field from the table on the right.

Option 3defines a right outer join. A right outer join is a join in which all the records from the right side of the RIGHT JOIN operation in the query's SQL statement are added to the query's results, even if there are no matching values in the joined field from the table on the left.

Αναφορές

For additional information about relationships in Microsoft Access, click the "Creating and Designing Tables" topic on the Microsoft Access 2000 Help page at the following Microsoft Web site:
Microsoft Access 2000 Help
For more information about relationships in Microsoft Access, clickΒοήθεια της Microsoft AccessΣτο διακομιστήΒοήθεια (Help)μενού, πληκτρολογήστεCreate or Modify Relationshipsο Βοηθός του Office ή της "Οδηγός απαντήσεων" και στη συνέχεια κάντε κλικΑναζήτησηΓια να προβάλετε τα θέματα που επιστρέφονται.

Ιδιότητες

Αναγν. άρθρου: 304467 - Τελευταία αναθεώρηση: Δευτέρα, 20 Δεκεμβρίου 2010 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbmt KB304467 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:304467

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com