<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Βάσεις δεδομένων</title><link>https://www.dotnetzone.gr:443/cs/forums/73/ShowForum.aspx</link><description>Για όσους κάνουν τα πρώτα τους βήματα στην Microsoft Access ή τον SQL Server, ή γενικότερα στη θεωρία βάσεων δεδομένων.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57109.aspx</link><pubDate>Fri, 12 Feb 2010 22:13:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57109</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57109.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57109</wfw:commentRss><description>&lt;P&gt;Καταρχήν για μια φορά στην ζωή σου γράψε σωστά το επίθετό μου.. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; Κατα δεύτερον το ίδιο με εσάς λέω κακιασμένε. Εγώ εχθές σκεφτόμουν το φαγητό, όχι τι έλεγες εσύ στον oracla ή τον Πάρη &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; Για τιμωρία δεν θα σου φέρω τσουρέκι!&lt;/P&gt;</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57108.aspx</link><pubDate>Fri, 12 Feb 2010 21:33:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57108</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57108.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57108</wfw:commentRss><description>&lt;P&gt;Βασικά, στον Κεφαλλίδη απευθυνόμουν, που χθες ήταν εδώ και μας άκουγε αλλά φαινεται δεν εννοούσε &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; Όσο για την κανονικοποίηση, στις reporting βάσεις και κυρίως στο data warehouse πάει περίπατο, απλά γιατί οι απαιτήσεις και οι κανόνες είναι άλλοι. Η κανονικοποίηση απαιτείται σε εφαρμογές OLTP, όπου&amp;nbsp;θέλεις να γράφεις/αλλάζεις εύκολα δεδομένα με περίπλοκες σχέσεις μεταξύ τους και η πρόσβαση σε αυτά μπορεί να γίνει με οποιοδήποτε τρόπο. &lt;/P&gt;
&lt;P&gt;Στο reporting αντίθετα τα δεδομένα αλλάζουν σπάνια, αλλά διαβάζονται συχνά, οι σχέσεις μεταξύ τους είναι δεδομένες και ο τρόπος πρόσβασης προκαθορισμένος. &lt;/P&gt;</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57106.aspx</link><pubDate>Fri, 12 Feb 2010 21:01:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57106</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57106.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57106</wfw:commentRss><description>Καλά τα λες. Κι εγώ δεν γράφω πουθενά ότι δεν χρειάζεσαι foreign keys σε βάση που προορίζεται για reporting. Γενικά λέω ότι κάποιοι κανόνες χαλαρώνουν ανάλογα με τη χρήση της βάσης. Συγκεκριμένα για reporting μερικές φορές χαλαρώνει ο κανόνας της κανονικοποιίησης.</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57104.aspx</link><pubDate>Fri, 12 Feb 2010 20:26:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57104</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57104.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57104</wfw:commentRss><description>&lt;P&gt;Θα διαφωνίσω όσον αφορά τα MIS και το reporting, και εγώ που φτιάχνω τώρα ένα data warehouse και ο συνάδελφος στο διπλανό γραφείο που φτιάχνει τα reports στο Cognos. Τα Foreign Key constraints τα θες και στις reporting databases&amp;nbsp;ως reference για όποιον άλλο δουλέψει με τη βάση, αλλά και επειδή τα εργαλεία reporting τα χρησιμοποιούν στο σχεδιασμό των μοντέλων τους. &lt;BR&gt;Τέλος, τα θες και για τον πρωταρχικό τους στόχο: τον έλεγχο των δεδομένων. Μία reporting database ή ένα data warehouse πρέπει να περιέχει καθαρή πληροφορία, χωρίς τα λάθη και τις παραλείψεις του OLTP. Ένας τρόπος να το ελέγξεις αυτό είναι με τα Foreign key constraints. &lt;/P&gt;
&lt;P&gt;Ο μόνος λόγος να τα αποφύγεις είναι επειδή καθυστερούν πολύ το φόρτωμα των δεδομένων. Γι αυτό και όταν φορτώνεις τα data είτε τα ρίχνεις είτε τα απενεργοποιείς (ανάλογα με τις δυνατότητες της βάσης) και τα επανενεργοποιείς όταν τελειώσει το φόρτωμα. Ο ευκολότερος τρόπος να το κάνεις αυτό είναι με ένα stored procedure.&lt;/P&gt;
&lt;P&gt;Εκεί που συνήθως δεν θα βρεις&amp;nbsp; constraints είναι στη staging βάση που χρησιμοποιείς για να φορτώσεις τα αρχικά δεδομένα για "σουλούπωμα", όπου πρέπει να μπούν όλα τα δεδομένα από τις πηγές σου ασχέτως μορφής και κατάστασης, πριν τα συμμαζέψεις.&lt;/P&gt;</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57101.aspx</link><pubDate>Fri, 12 Feb 2010 20:15:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57101</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57101.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57101</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Dimitris Papadimitriou:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;.................&amp;nbsp;&lt;b&gt;Ναι, υπάρχουν βάσεις δεδομένων χωρίς relationships&lt;/b&gt;. Ίσως πολλές φορές τμήματα αυτών. Όπως υπάρχουν και βάσεις (ή τμήματα βάσεων) χωρίς primary keys, indexes, βάσεις μη κανονικοποιημένες κλπ. Όλα αυτά γίνονται για διάφορους ειδικούς λόγους όπως &lt;b&gt;&lt;u&gt;ευελιξία στο migration&lt;/u&gt;&lt;/b&gt; δεδομένων, ταχύτητα στην καταχώρηση, διατήρηση ιστορικών δεδομένων, ευκολότερο reporting κλπ. Επίσης τέτοιες βάσεις δεν είναι απαραίτητα transactional. Δεν είναι δηλαδή οι βάσεις που χρησιμοποιούν οι τυπικές εφαρμογές χρηστών που καταχωρούν δεδομένα. Ίσως είναι βάσεις για MIS, Reporting κλπ.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;...........Δεν είναι η εμπειρία που τα κάνει να μην χρειάζονται. Είναι η εφαρμογή.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+++10000&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57100.aspx</link><pubDate>Fri, 12 Feb 2010 19:51:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57100</guid><dc:creator>Antonios Chatzipavlis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57100.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57100</wfw:commentRss><description>&lt;P&gt;Φοβερό το άλλο thread, δυστυχώς αυτές τις μέρες είμαι χωρίς τηλέφωνο και Internet στο σπίτι γιατί κάποιος φοβέρος έκοψε γραμμή και δεν μπορώ να βλέπω αυτά που θέλω από το σπίτι. &lt;/P&gt;
&lt;P&gt;Αλλά ένα θα πω αυτό που έχει πει ένας από του 7 Σοφούς της αρχαιότητας ο &lt;STRONG&gt;Κλεόβουλος&lt;/STRONG&gt; από την Λίνδο της Ρόδου.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;Ὀψιμανθῆ εἶναι μᾶλλον ἢ ἀμαθῆ.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Αυτό και τίποτα παραπάνω.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57099.aspx</link><pubDate>Fri, 12 Feb 2010 19:35:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57099</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57099.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57099</wfw:commentRss><description>&lt;P&gt;Σωστά όλα τα παραπάνω, και πολλές φορές σε reporting είναι μονόδρομος. Και συνήθως κάποια&amp;nbsp;crucial/mandatory Keys και constraints εξακολουθούν να υπάρχουν (ώστε να μην μπορείς να τα κάνεις εντελώς κολουβάχατα) αλλά αυτό που πάει περίπατο σχεδόν σίγουρα είναι η κανονικοποίηση.&lt;/P&gt;
&lt;P&gt;Πάντως ήταν είναι ένα σενάριο που δεν το είχαμε αναφέρει και έπρεπε να ακουστεί.&lt;/P&gt;</description></item><item><title>Σχεσιακές βάσεις χωρίς... σχέσεις;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57095.aspx</link><pubDate>Fri, 12 Feb 2010 18:33:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57095</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57095.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=57095</wfw:commentRss><description>Ξεκίνησε μια ζεστή (για να μην πω καυτή και τσουρουφλιστή) συζήτηση σε άλλο thread σχετικά με την σχεδίαση σχεσιακών βάσεων (κλασικών βάσεων δηλαδή σε sql server, oracle, mysql, access κλπ) που δεν έχουν relationships. Μάλιστα αναφέρθηκε ότι υπάρχουν τέτοια συστήματα από έμπειρους προγραμματιστές. Επίσης αναφέρθηκε από άλλους διαφωνούντες ότι κάτι τέτοιο είναι επικίνδυνο. Να πω 1-2 πράγματα αν μου επιτρέπετε, έστω κι αν είναι προφανή και χωρίς να θέλω να προσθέσω κάτι στα λεγόμενα των υπολοίπων του προηγούμενου thread.&lt;div&gt;&lt;ol&gt;&lt;li&gt;(ΠΡΟΣΟΧΗ! Μην μείνετε μόνο στο 1 - διαβάστε και το 2) &lt;b&gt;Ναι, υπάρχουν βάσεις δεδομένων χωρίς relationships&lt;/b&gt;. Ίσως πολλές φορές τμήματα αυτών. Όπως υπάρχουν και βάσεις (ή τμήματα βάσεων) χωρίς primary keys, indexes, βάσεις μη κανονικοποιημένες κλπ. Όλα αυτά γίνονται για διάφορους ειδικούς λόγους όπως ευελιξία στο migration δεδομένων, ταχύτητα στην καταχώρηση, διατήρηση ιστορικών δεδομένων, ευκολότερο reporting κλπ. Επίσης τέτοιες βάσεις δεν είναι απαραίτητα transactional. Δεν είναι δηλαδή οι βάσεις που χρησιμοποιούν οι τυπικές εφαρμογές χρηστών που καταχωρούν δεδομένα. Ίσως είναι βάσεις για MIS, Reporting κλπ.&lt;/li&gt;&lt;li&gt;Κατά αντιστοιχία, &lt;b&gt;υπάρχουν και &lt;/b&gt;&lt;a href="http://motorcycleinfo.org/wp-content/uploads/2008/08/motorcycle-ice-racing-franz-zorn.jpg"&gt;&lt;b&gt;μηχανές χωρίς φρένα&lt;/b&gt;&lt;/a&gt;, αυτοκίνητα με 500hp χωρίς ESP κλπ κλπ. Μόνο που αυτά τα οχήματα τα οδηγεί ο &lt;a href="http://en.wikipedia.org/wiki/The_Stig"&gt;&lt;b&gt;Stig&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;και δεν τα αφήνει στον &lt;a href="http://en.wikipedia.org/wiki/James_May"&gt;Captain Slow&lt;/a&gt;&amp;nbsp;(&lt;a href="http://en.wikipedia.org/wiki/Bugatti_Veyron"&gt;συνήθως&lt;/a&gt;). Επίσης πολλές φορές απαγορεύεται από τον ΚΟΚ να βγουν στους δρόμους (βλ. μηχανές χωρίς φρένα), οπότε ακόμα και ο Stig τα οδηγάει σε ειδικές πίστες. Αυτό που θέλω να πω είναι ότι 95-99% των περιπτώσεων μια βάση και ένας προγραμματιστής (άσχετα με το πόσο έμπειρος είναι) χρειάζεται και τα foreign keys και τα primary keys και τα indexes και την κανονικοποίηση. Δεν είναι η εμπειρία που τα κάνει να μην χρειάζονται. Είναι η εφαρμογή.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item></channel></rss>