Criando um modelo de dados relacional

lhe foi atribuído à criação de um modelo de dados da empresa? Necessidade de construir um banco de dados relacional que pode armazenar terabytes de dados?

passos

1
Não se preocupe com as tabelas ainda. Obviamente, você está criando um banco de dados e bancos de dados (pelo menos relacional) são compostas principalmente de tabelas, que por sua vez são compostos de linhas e colunas (registros e atributos, para aqueles que sabem).
  • 2
    Preocupe-se com as relações entre entidades. Seu primeiro objetivo é fazer um mapa das relações que têm diferentes objetos de negócios. É parte de software de modelagem. o modelo físico É a aplicação prática. Não confunda ou combinar os dois.
  • Os requisitos são difíceis de conseguir e dolorosa. Um analista de negócios talentoso no momento seria uma dádiva de Deus.
  • 3
    Prepare-se para a guerra sozinho, só você dedicándote normalização qualidade. A maioria dos bancos de dados são um desperdício, porque seus criadores são preguiçosos e apenas eles querem obter alguma coisa. Você sempre pode corrigir mais tarde. Sim, claro.
  • 4
    Uma vez que se trata tempo para escrever tabelas, o foco em pesquisas e os tipos de tabelas (CEPs, estados, categorias de produtos, etc..) A necessidade de relações de chave estrangeira em tabelas real. Além disso, ele vai dar uma morna antes de chegar às tabelas transacionais centrais.
  • 5
    Como regra geral: não armazenam dados que podem ser inferidas a partir de outros campos. Se você sabe a data de nascimento e data de início, a idade também reunir-se a data de arranque não incluir esta idade na tabela.


  • 6
    Não NULL. Um valor NULL (zero) representa um atributo indefinido de uma identidade. Se uma entidade pode ter ou não um atributo específico, então você precisa ser manipulado por uma tabela de referência cruzada.
  • 7
    Os valores nulos contraditórias são úteis em si mesmos para identificar atributos que ainda não foram concluídos pelos usuários. Isto é particularmente útil quando um usuário precisa selecionar um valor predeterminado para determinar a aplicação das regras comerciais adequadas. No caso 2, como você criaria uma tabela de endereços em que Address1 Address2 foi concluída e não era necessário, mas se fosse concluída Endereço2 deve respeitar as regras comerciais do campo? Claro, você pode colocar como padrão um espaço em branco, mas é melhor saber que o usuário não editado o campo? Tente uma terceira forma padrão em uma direção internacional ... provavelmente isso pode ser feito, mas observa a complexidade da reestruturação dos dados de uma forma significativa.
  • 8
    NULL / Não bancos de dados NULL Verifique fóruns e ver que é um tema popular em que há defensores das vantagens e desvantagens de cada um.
  • No entanto, todos concordam que você nunca deve permitir valores nulos nas variáveis-chave. Estes são os domínios que são usados ​​para identificar um único registro, tais como o número de identificação do cliente.
  • A escola NULL diz que você deve usar livremente os valores nulos em outros campos. Por exemplo, não é obrigatório que os clientes têm um telefone celular, ou você obter o número. Usando um valor NULL e nada mais que NULL é a forma mais eficiente para registrar que há um telefone celular disponível.
  • Se é realmente importante saber porque é que há um valor, é melhor introduzir uma nova variável que indica a razão, em vez de introduzir alguns sofisticados lugar para armazenar o código número de telefone celular. Evite adicionar campos como essa, porque a) o cliente não é obrigado a dizer-lhe por que não dar-lhe seu número de telefone celular, nem é uma boa pergunta, nem vai dizer espontaneamente direita, e b) ninguém olhar precisamente por causa do aa). variáveis ​​que faltam apenas perder tempo.
  • Cuidado com as variáveis ​​sim / não (booleano), como eles geralmente não pode conter um NULL. Portanto, geralmente contêm informação inútil, enquanto ou ele era republicano, ou se recusou a responder.


  • 9
    Familiarize-se com as tabelas de referência cruzada (muitos para muitos). Você vai usá-los em todos os lugares, se você está fazendo as coisas direito. Um exemplo seria um banco de dados a partir de uma escola onde há uma mesa para os professores e outra para estudantes. Os alunos têm mais do que um professor, e os professores têm mais de um estudante, então atravessar a mesa, além daqueles de professores "e" estudantes ", ele teria duas colunas com chaves estrangeiras apontando para dois. A chave primária seria a combinação dos dois.
  • 10
    Use um bom convenção de nomenclatura. contas de lugar em uma tabela chamada projeto de lei. A gama de produtos em produto. A tabela de referência cruzada seria facturaProducto, ou productoFactura, dependendo de qual tabela é o verdadeiro centro do relacionamento.
  • 11
    Se você estiver indo para fazer repetições ou remessas de toras, conjunto de teste, enquanto você desenvolve para ver como ele funciona.


  • 12
    ligações internas são muito bons, mas provavelmente também tem muitos sindicatos EXTERNAS declarações superávit com o qual ela poderia funcionar. Acostume-se com as várias declarações dos sindicatos (exceto UNIÃO).
  • 13
    Se você tem que lidar com um aplicativo de legado, construir o seu regime, independentemente do que (nem mesmo olhar). Concentre-se em regras de comércio e as relações que tentam correr, mas poderia distrair se você olhar para a forma como alguém set mais. Consulte a etapa # 4.
  • 14
    É difícil para migrar de um sistema legado para um modelo mais adequado com uma normalização adequada, mas pode fornecer um pouco se as tabelas temporárias são utilizados para as importações. Além disso, ele mantém os chips de identificação em herança para que as pessoas possam encontrá-los.
  • dicas

    • Não espere repetições, o envio de registros ou reflexos para trabalhar quando a produção passa. Desenvolve e testa desde o início. Torná-lo parte do seu aplicativo.
    • Há alguns casos muito específicos que precisam mesas desnormalizar por motivos de desempenho. Mas isso é fácil de fazer-foco na parte difícil, que é criar uma normalização correta.
    • A flexibilidade eo poder de um modelo relacional são surpreendentes em comparação com as estruturas mais planas.
    • As`re definir relações absolutas, uma boa maneira de obter perguntas dos participantes relutantes é fazer as coisas como Portanto, é absolutamente verdade que não pode ser um cliente em uma fatura? Perguntas como que tendem a provocar uma resposta em pessoas.
    • No que diz respeito entidades de relações, por exemplo, um cliente pode ter muitos números de telefone. O cliente também pode ter muitos contatos, e cada um deles tem muitos números de telefone. Mas uma conta só pode ser associada a um cliente. Um representante que pode ser atribuído a um cliente, salvo em certos casos onde há dois, etc. Estes são os tipos de coisas que você deve definir antes de escrever qualquer linha de código SQL.
    • folhas s nomes de tabelas externas (Tabela projeto de lei) - Entende-se que à medida que é uma base de dados, provavelmente mais de uma factura para dentro.
    • Igualmente importantes são os backups em desenvolvimento. Certifique-se de fazer pelo menos a cada noite. Verificá-los a cada semana para certificar-se de não perder meses de trabalho (e provavelmente o seu trabalho) se houver uma falha de hardware maciça.

    avisos

    • Se você tentar salvar o código (valores nulos, mesas para as razões erradas denormalized), haverá conseqüências diretas e reais (órfãos, a integridade dos dados comprometidos, sindicatos que não funcionam, etc.).
    • modelagem de dados é uma habilidade crítica e há muito poucas pessoas que constroem bases de dados relacionais corretamente.
    • Não guarde o código porque você mais fácil. Se você quer algo inútil, que deveria ter contratado alguém.
    • Se você não normalizar corretamente relatórios feitos a partir do banco de dados será totalmente incorreto e seu chefe vai ficar muito zangado.
    Artigos Relacionados