Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

συνθήκη σύνδεσης ορισμού μιας όψης

Îåêßíçóå áðü ôï ìÝëïò Anastasia_M. Τελευταία δημοσίευση από το μέλος PanPan στις 15-03-2007, 15:38. Υπάρχουν 10 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-02-2007, 18:27 25006

    συνθήκη σύνδεσης ορισμού μιας όψης

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

    ΚΑΤΑΣΤΑΣΗ ΛΑΘΟΥΣ : Η νέα πλειάδα στην όψη παραβιάζει τη συνθήκη σύνδεσης του ορισμού της όψης.

     

    Μήπως μπορείτε να μου εξηγήσετε τι εννοεί εδώ, δηλαδή τι παραβιάζεται?Τι εννοεί όταν λέει συνθήκη σύνδεσης του ορισμού της όψης?Το μόνο που μπορώ να σκεφτώ είναι ότι γίνεται εισαγωγή πλειαδάς στην όψη η οποία έχει παραβιάσει τη συνθήκη σύνδεσης δύο υποκείμενων πινάκων δηλαδή το where

     

    δηλαδή αν έχω τους πίνακες p1(a,b) και p2(a,d) και δημιουργώ την όψη create view v as select b,d from p1,p2 where p1.a=p2.a τότε ίσως εισαχθεί πλειάδα στην v η οποία δν ακολουθεί την συνθήκη where??ευχαριστώ πολύ..

     

  •  14-02-2007, 19:26 25007 σε απάντηση της 25006

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    δεν πολυκαταλαβαίνω τι εννοείς (με ενοχλεί αφάνταστα και η μεταφρασμένη ορολογία) αλλά νομίζω ότι εννοεί το εξής:

    έχουμε τον πίνακα:
    create table userTable(
    userId int identity(1,1) constraint userPrimaryKey primary key,
    userName nvarchar(16),
    userEmail nvarchar(64))



    και το view(όψη)
    create view first100users as
    select userName,userEmail
    from userTable
    where userId > 101


    έστω λοιπόν ότι ο πίνακας έχει μέσα 200 γραμμές με UserId από 1 μέχρι 200
    και κάνεις insert στο view. Τι userId θα πάρει η νέα εγγραφή;
    α) 101 ??? τότε το κλειδί δεν είναι μοναδικό
    β) 201 ??? τότε δεν ανήκει στο view στο οποίο έκανες την εισαγωγή

    τώρα αν το view έχει στοιχεία από 2 πίνακες τα πράγματα γίνονται χειρότερα. (για αυτό και ο SQL server δεν σε αφήνει να κάνεις Insert σε τέτοια view εκτός αν ορίσεις instead trigger)


  •  14-02-2007, 20:07 25009 σε απάντηση της 25006

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Ασχολούμαι επαγγελματικά με software και βάσεις δεδομένων τα τελευταία 7 χρόνια. Έκανα και ένα master έτσι για κάποια θεωρητικά πράγματα!

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

    όψη; πηγαία σχέση; αρχή μοναδικότητας; πλειάδα;


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  14-02-2007, 20:15 25011 σε απάντηση της 25009

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Dimitris Papadimitriou:

    Ασχολούμαι επαγγελματικά με software και βάσεις δεδομένων τα τελευταία 7 χρόνια. Έκανα και ένα master έτσι για κάποια θεωρητικά πράγματα!

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

    όψη; πηγαία σχέση; αρχή μοναδικότητας; πλειάδα;



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

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  14-02-2007, 20:28 25012 σε απάντηση της 25011

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Να διευκρινίσω, μια και διαβάζω τα γραφόμενα, το εξής:

    Θα πρέπει να τονιστεί οτι ΣΕ ΚΑΜΜΙΑ ΠΕΡΙΠΤΩΣΗ δεν επιρρίπτουμε την ευθύνη στην Αναστασία για τη χρήση των εν λόγω όρων (αν τους θεωρούμε φυσικά λανθασμένους, γιατί ορισμένοι πιθανόν να τους θεωρούν και σωστούς). Η ευθύνη ανήκει αποκλειστικά στα εκπαιδευτικά ιδρύματα και το διδακτικύ υλικό τους. Οταν κάποιος φοιτητής ξεκινά με την πρώτη του γνώση να πηγάζει από αυτά, αναγκαστικά χρησιμοποιεί αυτή την ορολογία μέχρι να αποκτήσει επαφή με την αγορά.

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

    Σχετικά με την ορολογία:

    πλειάδα = tuple (ορος που χρησιμοποιείται κυρίως ακαδημαϊκά, στην "πιάτσα" ισχύει το record).
    όψη = θέα (!) = θέαση = view (χρησιμοποιείται και στα Ελληνικά, όσο και αν μας φαίνεται περίεργο)
    σύνδεση = join, από όσο μπορώ να υποθέσω
    πρωτεύον κλειδί = primary key (επίσης χρησιμοποιείται)

    Η προσωπική μου άποψη:

    Ο Εξελληνισμός των όρων είναι καλός μέχρι ενός σημείου. Κατ'εμέ, ναι, είναι καλύτερο να χρησιμοποιούμε τον όρο "πρωτεύον κλειδί" ή ακόμα καλύτερα "πρωτεύων προσδιοριστής" παρά τον όρο primary key. Η συνταγή αρχίζει και "χαλάει" όταν οι όροι μεταφράζονται κατά την άποψη του κάθε μεταφραστή / καθηγητή και δημιουργούνται πολλαπλές ονομασίες στα Ελληνικά για έναν μόνο Αγγλικό όρο (βλ. όψη). Ορισμένοι όροι όπως το tuple, είτε χρησιμοποιηθούν στα Ελληνικα είτε στα Αγγλικά, παραμένουν περισσότερο ακαδημαϊκοί παρά "της πιάτσας". Ειναι θέμα συνήθειας για την ορολογία. Θυμηθείτε, πότε απεξαρτηθήκαμε από το να λέμε "κάντε move τον cursor με το mouse" και αρχίσαμε να λέμε "μετακινήστε το δρομέα με το ποντίκι"; Δεν πάνε πολλά χρόνια. Ομως, επειδή έτυχε πριν απο μέρικά χρόνια να κάνω μεταφράσεις, ξέρετε οτι η φράση "μετακινήστε το δρομέα με το ποντίκι" φαινόταν δυσνόητη και δεν γινόταν αποδεκτή στο κείμενο από τους διορθωτές; Ειναι, πραγματικά, θέμα συνήθειας.


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  14-02-2007, 20:42 25013 σε απάντηση της 25012

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    cap:

    Να διευκρινίσω, μια και διαβάζω τα γραφόμενα, το εξής:

    Θα πρέπει να τονιστεί οτι ΣΕ ΚΑΜΜΙΑ ΠΕΡΙΠΤΩΣΗ δεν επιρρίπτουμε την ευθύνη στην Αναστασία για τη χρήση των εν λόγω όρων (αν τους θεωρούμε φυσικά λανθασμένους, γιατί ορισμένοι πιθανόν να τους θεωρούν και σωστούς). Η ευθύνη ανήκει αποκλειστικά στα εκπαιδευτικά ιδρύματα και το διδακτικύ υλικό τους. Οταν κάποιος φοιτητής ξεκινά με την πρώτη του γνώση να πηγάζει από αυτά, αναγκαστικά χρησιμοποιεί αυτή την ορολογία μέχρι να αποκτήσει επαφή με την αγορά.

    Σαφέστατα! Αλλά ας μην δώσουμε έκταση. Το ερώτημα παραμένει και περιμένει να απαντηθεί! 


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  14-02-2007, 20:43 25015 σε απάντηση της 25012

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Σωτήρη, έτσι κι αλλοιώς κανείς δεν κατηγόρησε την Αναστασία. Εκείνη έτσι τα έμαθε και έτσι μας τα λέει. Αλλά ορισμένοι όροι είναι παρατραβηγμένοι, ασε που θεωρώ ότι το παράδειγμα με το ποντίκι δεν αντιπροσωπεύει την συγκεκριμένη περίπτωση. Η φράση "μετακινήστε το δρομέα με το ποντίκι" μπορεί να χρησιμοποιείτε και στο 100% των μεταφράσεων. Η λέξη "όψη (view)" χρησιμοποιείτε στο 10% των βιβλίων, που είναι πέρι βάσεων δεδομένων (ΑΝ χρησιμοποιείτε εν τέλει). Δεν είναι τόσο εύκολο να υιοθετήσεις τέτοιους όρους όταν δεν τους χρησιμοποιείς συχνά και δεν τους βλέπεις συχνά. Όλοι ξέρουμε ότι τα αξιόλογα βιβλία κατα βάση είναι στα αγγλικά. Φαντάζεσε πόσο θα δυσκολευτούν αυτά τα παιδιά να διαβάσουν ένα τέτοιο βιβλίο προσπαθώντας να αντιστοιχήσουν όρους;

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  14-02-2007, 21:34 25018 σε απάντηση της 25015

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Σε ορισμένα σημεία από αυτά που λες, Παναγιώτη, διαφωνώ, αλλά θα πρότεινα να το συζητήσουμε αυτό σε ξεχωριστό θέμα γιατι θα βγούμε τελείως εκτός του θέματος της ερώτησης αν συνεχίσουμε να το συζητάμε εδώ. Θα ήθελα να απαντήσουμε το ερώτημα της Αναστασίας στο παρόν thread, και αν θέλεις, ανοιξε ένα νέο thread για να εκθέσουμε εκεί τις απόψεις μας, προτιμότερο στο "Αλλα θέματα development" ή στο "Cafe". Προσωπικά θα ήθελα να συζητήσουμε εκτενέστερα το θέμα των αποδόσεων της ορολογίας, οπότε ας το κάνουμε στον κατάλληλο χώρο.

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  14-02-2007, 21:41 25019 σε απάντηση της 25006

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

    Anastasia_M:

    ΚΑΤΑΣΤΑΣΗ ΛΑΘΟΥΣ : Η νέα πλειάδα στην όψη παραβιάζει τη συνθήκη σύνδεσης του ορισμού της όψης.

     

    δηλαδή αν έχω τους πίνακες p1(a,b) και p2(a,d) και δημιουργώ την όψη create view v as select b,d from p1,p2 where p1.a=p2.a τότε ίσως εισαχθεί πλειάδα στην v η οποία δν ακολουθεί την συνθήκη where??ευχαριστώ πολύ..

     

    Για να επιστρέψουμε στο αρχικό θέμα μας: Αυτό που αναφέρεις (create view v as select b,d from p1,p2 where p1.a=p2a) μπορεί ουσιαστικά να γραφτεί και ως εξής:

     

    CREATE VIEW v

    AS SELECT b,d FROM p1 JOIN p2

    ON p1.a = p2.a

     

    Αυτό είναι η "σύνδεση" ή join που αναρωτιέσαι. Οταν στο FROM έχεις δύο πίνακες, τότε μεταξύ τους δημιουργείται μια "συνδεση" (join).

    Αν λοιπον στο παράδειγμα που φέρνεις η view σου περιλαμβάνει ΟΛΑ τα πεδία (p1.a, p1.b p2.a, p2.d) και εσύ επιχειρήσεις να την ενημερώσεις με διαφορετικές τιμές για τα p1.a, p2.a τότε έχεις την κατάσταση λάθους που προαναφέρεις, μια και τα p1.a, p2.a πρέπει να έχουν την ίδια τιμή.

     

    (Ας με διορθώσει κάποιος αν δεν το έχω αποδώσει σωστά).

     

     

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  21-02-2007, 09:43 25245 σε απάντηση της 25006

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

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

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

  •  15-03-2007, 15:38 26482 σε απάντηση της 25245

    Απ: συνθήκη σύνδεσης ορισμού μιας όψης

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

    Το πιο γελοίο που μπορεί να ακούσει κάποιος είναι "το dato"......... τελοσπάντων.... Θεωρώ πως ο cap σου απάντησε ήδη σε αυτό που ρωτάς....


    "Μη σταματάς να αναζητάς αυτό που αγαπάς, ειδάλλως θα καταλήξεις να αγαπάς ό,τι βρίσκεις." (Αγνώστου)
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems