From oracle-l-bounce@freelists.org Thu Jul 29 11:28:47 2004 Return-Path: Received: from air189.startdedicated.com (root@localhost) by orafaq.com (8.11.6/8.11.6) with ESMTP id i6TGSWQ00785 for ; Thu, 29 Jul 2004 11:28:42 -0500 X-ClientAddr: 206.53.239.180 Received: from turing.freelists.org (freelists-180.iquest.net [206.53.239.180]) by air189.startdedicated.com (8.11.6/8.11.6) with ESMTP id i6TGSL600743 for ; Thu, 29 Jul 2004 11:28:31 -0500 Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 6320072CEB2; Thu, 29 Jul 2004 11:06:21 -0500 (EST) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28094-09; Thu, 29 Jul 2004 11:06:21 -0500 (EST) Received: from turing (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id B0A1772C8AF; Thu, 29 Jul 2004 11:06:20 -0500 (EST) Received: with ECARTIS (v1.0.0; list oracle-l); Thu, 29 Jul 2004 11:04:54 -0500 (EST) X-Original-To: oracle-l@freelists.org Delivered-To: oracle-l@freelists.org Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id D4FE272D237 for ; Thu, 29 Jul 2004 11:04:53 -0500 (EST) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25575-80 for ; Thu, 29 Jul 2004 11:04:53 -0500 (EST) Received: from cardinal.mail.pas.earthlink.net (cardinal.mail.pas.earthlink.net [207.217.121.226]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 8AB6672D04B for ; Thu, 29 Jul 2004 11:04:53 -0500 (EST) Received: from misspiggy.psp.pas.earthlink.net ([207.217.78.246]) by cardinal.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 1BqDpC-0004My-00 for oracle-l@freelists.org; Thu, 29 Jul 2004 09:32:10 -0700 Message-ID: <1550338.1091118730671.JavaMail.root@misspiggy.psp.pas.earthlink.net> Date: Thu, 29 Jul 2004 09:32:10 -0700 (PDT) From: david wendelken To: oracle-l@freelists.org Subject: Re: Normalization Mime-Version: 1.0 Content-type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Earthlink Zoo Mail 1.0 X-Virus-Scanned: by amavisd-new at freelists.org X-archive-position: 6416 X-ecartis-version: Ecartis v1.0.0 Sender: oracle-l-bounce@freelists.org Errors-To: oracle-l-bounce@freelists.org X-original-sender: davewendelken@earthlink.net Precedence: normal Reply-To: oracle-l@freelists.org X-list: oracle-l X-Virus-Scanned: by amavisd-new at freelists.org "Q: What are the basic guidelines one should keep in mind while designing a database? Is denormalization always good? A: I used to teach database design in graduate school, and your question is excellent! The main purpose of high normalization was the reduction of disk space, back when it mattered in the 1970s." I'm not so sure about that. To me, the main reason for normalization is to properly think through PRECI= SELY and ACCURATELY what I need to model. The secondary reason was to prev= ent discrepancies between "duplicated" data items. Tertiary to all of that was disk space. But then I started in the '80s, wh= en disk space was becoming much cheaper. "Today, I always introduce redundancy into the model whenever it can eliminate an SQL join, but not always. I make my decision based on two criteria: 1 =96 The size of the redundant item 2 =96 The volatility of the item (e.g. how often do I need to duplicate updates)" I introduce redundancy when it can eliminate lots of joins lots of times, o= r dramatically speed up a critical process. And, yes, I balance that against the cost of making sure that the redundant= data stays synchronized and the database sizing implications. But doing it to just to avoid an occasional join? No way! ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@freelists.org put 'unsubscribe' in the subject line. -- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------