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

 

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

Βοηθεια , Λειτουργικες-Συναρτησιακες Εξαρτησεις + BCNF

Îåêßíçóå áðü ôï ìÝëïò patrox. Τελευταία δημοσίευση από το μέλος patrox στις 28-06-2007, 18:14. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-06-2007, 20:33 33129

    Βοηθεια , Λειτουργικες-Συναρτησιακες Εξαρτησεις + BCNF

    Λοιπον... την τριτη εχω να δωσω μια εργασια και εχω αποροια-ες.

    (εχει δωσει το κλασικο script world.sql)
    σχεσιακό μονελο: (δικό μου)

    λεει να βρουμε γιατι παραβιαζει τη BCNF.

    εχω γραψει τις εξαρτησεις:
    Πίνακας country
    R1=(Code , Name ,Continent , Region , SurfaceArea , IndepYear , Population , LifeExpectancy ,GNP ,GNPOld , LocalName , GovernmentForm , HeadofState , Capital , ID2)

    F1 = (
    Code -> Name , Code -> Continent , Code ->Region , Code-> SurfaceArea ,
    Code -> Population , Code ->LifeExpectancy , Code -> GNP , Code ->GNPOld , Code ->LocalName , Code ->GovernmentForm , Code ->HeadofState ,
    Code ->Capital , Code -> ID2,

    Name -> Code (άρα ορίζει όλα όσα ορίζει και το Code),

    Region -> Continent,

    LocalName -> Name (άρα ορίζει όλα όσα ορίζει και το Name),

    ID2 -> Code (άρα ορίζει όλα όσα ορίζει και το Code)
    )

    Πίνακας city
    R2=(ID , Name , CountryCode , District , Population )

    F2=(
    ID -> Name , ID -> CountryCode , ID -> District , ID->Population,

    Υποθέτουμε ότι μπορεί να υπάρχουν πολλές πόλεις με το ίδιο όνομα , άρα το Name δεν ορίζει κανένα πεδίο.

    District -> CountryCode
    )

    Πίνακας countrylanguage
    R3=(CountryCode , Language , IsOfficial , Percentage)

    F3=(
    CountryCode Language -> IsOfficial , CountryCode Language -> Percentage
    )

    πως γινεται η παραβιαση του BCNF με τις λειουργικές εξαρτήσεις???????????????
    δε καταλαβαινω ποιο ειναι το προβλημα αφου τα κλειδια οριζουν ολα τα υπολοιπα πεδία.
    κατι πρεπει να διαβασω παραπανω αλλα δε το βρίσκω.

    Ευχαριστώ.
  •  26-06-2007, 09:10 33170 σε απάντηση της 33129

    Απ: Βοηθεια , Λειτουργικες-Συναρτησιακες Εξαρτησεις + BCNF

    Καλημέρα, θα σου πρότεινα να εξαλείψεις τον κύκλο μεταξύ country και city. Στο πίνακα city μπορείς να βάλεις άλλο ένα πεδίο με όνομα IsCapital και να κάνεις τη δουλειά σου. Δε ξέρω αν σε πρόλαβα και αν σε βοηθάει αυτό που προτείνω.

    System crashed: Coffee_Cup.Content is null
    Please assign coffee to Content and press any key to continue and any other key to cancel

    Καλέας Κων/νος
  •  26-06-2007, 20:05 33195 σε απάντηση της 33170

    Απ: Βοηθεια , Λειτουργικες-Συναρτησιακες Εξαρτησεις + BCNF

    ευχαριστω φιλε! σωστο αυτο που λες το θεμα δεν ειναι εκει ομως!

    εγω μιλαω για λειτουργικες-functional dependencies και Boyce / Codd normal form.

    τελοσπαντων τη βρηκα τη λυση και την εδωσα την εργασια , θα τη γραψω και εδω (ελπιζω να ειναι σωστη) για να υπαρχει μολις βρω λιγο χρονο.
  •  28-06-2007, 18:14 33260 σε απάντηση της 33129

    Απ: Βοηθεια , Λειτουργικες-Συναρτησιακες Εξαρτησεις + BCNF

    τελικα το θεμα ειναι απλο και χρησιμο.

    Αντιγραφω:
    ...ο κανονικος τυπος BCNF παραβιαζεται οταν υπαρχει ενα τουλαχιστον χαρακτηριστικό που εξαρταται λειτουργικα απο καποιο αλλο που δεν αποτελει συνιστωσα του προσδιοριστη-κλειδιου...

    στη περιπτωση μου αυτο συμμβαινει :Region -> Continent( δηλαδη η νοτιοανατολικη ευρωπη οριζει την ευρωπη) και District -> CountryCode ( ο νομος οριζει τη χωρα).

    και τελικα εβγαλα αυτο:


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