<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" id="declared-fk" xml:lang="el">
  <info>
    <title type="sort">1</title>
    <link type="topic" xref="schema-browser-perspective"/>
  </info>
  <title>Δηλωμένα ξένα κλειδιά</title>
  <p>Όλοι οι περιορισμοί ξένου κλειδιού (όπου τα περιεχόμενα μιας ή περισσότερων στηλών σε ένα πίνακα περιορίζονται να είναι μεταξύ των τιμών μιας ή περισσοτέρων στηλών του άλλου πίνακα) αναλύονται και αναφέρονται στην <link xref="schema-browser-perspective">προοπτική περιηγητή σχήματος</link>. Οι περιορισμοί ξένου κλειδιού βοηθούν στην κατανόηση του σχήματος της βάσης δεδομένων και χρησιμοποιούνται αυτόματα όπου χρειάζονται από την εφαρμογή.</p>
  <p>Όμως μερικές φορές ο σχεδιαστής μιας βάσης δεδομένων έχει ξεχάσει ή δεν επιθυμεί να χρησιμοποιήσει περιορισμούς ξένου κλειδιού και έτσι είναι δυνατό να "δηλώσει ξένα κλειδιά" που είναι δήλωση μόνο στο εργαλείο και δεν ορίζεται στην πραγματικότητα στη βάση δεδομένων.</p>
  <figure>
    <title>Δηλωμένα ξένα κλειδιά σε διαγράμματα</title>
    <desc>Όταν εμφανίζονται σε διαγράμματα, τα δηλωμένα ξένα κλειδιά εμφανίζονται χρησιμοποιώντας μια γραμμή με παύλα αντί για συμπαγή γραμμή για ενεργά ξένα κλειδιά</desc>
    <media type="image" mime="image/png" src="figures/declaredfk.png"/>
  </figure>
  <p>Σημειώσεις:</p>
  <list>
    <item><p>η τριάδα (όνομα ξένου κλειδιού, πίνακας, πίνακας αναφοράς) ταυτοποιεί μοναδικά ένα δηλωμένο ξένο κλειδί και έτσι η δήλωση ενός νέου ξένου κλειδιού με την ίδια τριάδα θα αφαιρέσει οποιοδήποτε προηγουμένως δηλωμένο.</p></item>
    <item><p>Εάν ο ίδιος περιορισμός παρουσιάζεται στην πραγματικότητα από ένα πραγματικό ξένο κλειδί και επίσης από ένα δηλωμένο ξένο κλειδί, τότε ο ορισμός του πραγματικού ξένου κλειδιού θα κρύψει το δηλωμένο</p></item>
    <item><p>Το δηλωμένο ξένο κλειδί δεν έχει καμιά πολιτική προσδιορισμού ποια ενέργεια θα εκτελεστεί σε καταστάσεις UPDATE ή DELETE, έτσι η αναφερόμενη πολιτική θα είναι πάντοτε "μη εξαναγκασμένη"</p></item>
  </list>

  <section id="declare-new-fk">
    <title>Δήλωση ενός νέου ξένου κλειδιού</title>
    <p>Ένα νέο ξένο κλειδί μπορεί να δηλωθεί από την <link xref="schema-browser-perspective">προοπτική περιηγητή σχήματος</link>, χρησιμοποιώντας το μενού <guiseq><gui>πίνακας</gui><gui>δήλωση ξένου κλειδιού</gui></guiseq> που παρουσιάζεται όταν οι ιδιότητες ενός πίνακα εμφανίζονται στην τρέχουσα καρτέλα.</p>
    <p>Ένας άλλος τρόπος δήλωσης ξένου κλειδιού είναι με τη χρήση μενού συμφραζομένων σε πίνακα ενός διαγράμματος και η το διάλεγμα της επιλογής <guiseq><gui>δήλωση ξένου κλειδιού για αυτόν τον πίνακα</gui></guiseq>.</p>
    <p>Σε κάθε περίπτωση, στη δήλωση ενός νέου ξένου κλειδιού, πρέπει να δοθούν οι επόμενες πληροφορίες:</p>
    <list>
      <item><p>Ένα όνομα ξένου κλειδιού</p></item>
      <item><p>Ο πίνακας αναφοράς</p></item>
      <item><p>Οι στήλες και οι στήλες αναφοράς για κάθε εμπλεκόμενη στήλη στο ξένο κλειδί</p></item>
    </list>
    <figure>
      <title>Πληροφορίες για δήλωση ενός νέου ξένου κλειδιού</title>
      <desc>Ο διάλογος UI εμφανίζει τη δήλωση ενός νέου ξένου κλειδιού. Εδώ ο πίνακας αναφοράς είναι 'warehouses' και οι εμπλεκόμενες στήλες είναι 'country' και 'city'.</desc>
      <media type="image" mime="image/png" src="figures/declaredfk-dialog.png"/>
    </figure>
  </section>
  
  <section id="remove-fk">
    <title>Αφαίρεση δηλωμένου ξένου κλειδιού</title>
    <p>Ένα δηλωμένο ξένο κλειδί μπορεί να αφαιρεθεί με κλικ στον σύνδεσμο <guiseq><gui>(αφαίρεση)</gui></guiseq> που εμφανίζεται κάτω από κάθε ιδιότητα δηλωμένου ξένου κλειδιού στις ιδιότητες του πίνακα (στην <link xref="schema-browser-perspective">προοπτική περιηγητή σχήματος</link>).</p>
    <p>Ένας άλλος τρόπος αφαίρεσης δηλωμένου ξένου κλειδιού είναι μια σελίδα <link xref="diagram">διαγράμματος</link> μέσα από το μενού συμφραζομένων που συσχετίζεται με τη γραμμή με παύλα που αντιπροσωπεύει το δηλωμένο ξένο κλειδί, διαλέγοντας την επιλογή <guiseq><gui>αφαίρεση αυτού του δηλωμένου ξένου κλειδιού</gui></guiseq>.</p>
  </section>
</page>
