Padrões De Desenho De Bases De Dados Relacionais?
os padrões de Design estão geralmente relacionados com o design orientado a objectos.
existem padrões de desenhopara criar e programar bases de dados relacionais ?
Muitos problemas devem certamente ter soluções reutilizáveis.
Os exemplos incluem padrões para a concepção da tabela, procedimentos armazenados, gatilhos, etc...
Existe um repositório online de tais padrões, semelhante a martinfowler.com?
Exemplos de problemas que padrões pode resolver:
- armazenamento de dados hierárquicos (por exemplo, tabela única com tipo vs tabelas múltiplas com chave 1:1 e diferenças...)
- armazenar dados com estrutura variável (por exemplo, colunas genéricas vs xml vs coluna delimitada...)
- Denormalizar dados (como fazê-lo com impacto mínimo, etc...)
10 answers
Eu também recomendaria muito David C. Hay'sData Model Patterns and the follow upA Metadata Map which builds on the first and is far more ambicious and intriging. Só o prefácio é esclarecedor.
Também é um óptimo lugar para procurar alguns modelos pré-enlatados de bases de dados são as séries de livros de dados de Len Silverston Volume 1 contém modelos de dados universalmente aplicáveis (Empregados, contas, transporte, compras, etc), Volume 2 contém modelos de dados específicos da indústria (Contabilidade, cuidados de saúde, etc), Volume 3 fornece modelos de dados.
Finalmente, enquanto este livro é ostensivamente sobre UML e modelagem de objetos, o modelo de Peter Coad a cores com UML fornece um "arquétipo" processo conduzido de modelagem de Entidades a partir da premissa de que existem 4 arquétipos principais de qualquer objeto/modelo de dados
Http://www.databaseanswers.org/data_models/
Talvez se você tiver que construir um db rapidamente isso lhe dará um ponto de partida em termos das tabelas e relações em um dado esquema. Tenha em mente que provavelmente terá de modificar este ponto de partida. Achei-o muito útil.
Em segundo lugar, a revista SQL Server tem uma coluna ocasional chamada "Os dados". Modeler " que é muito educacional e muitas vezes contém esquemas completos para um determinado sistema.Um padrão não é trivialmente reutilizável. Você pode implementar o seu design down seguindo o padrão no entanto.
Os patters de desenho relacional incluem coisas como:Relações de um para muitos (master-detail, parent-child) usando um estrangeiro chave.
Muitas relações com uma mesa de bridge.
Relações opcionais de um para um geridas com NULLs na coluna FK.
Star-Schema: Dimension and Fact, OLAP design.
Desenho OLTP totalmente normalizado.
Múltiplas colunas de pesquisa indexadas numa dimensão.
"tabela de pesquisa" que contém PK, descrição e valor(S) de código utilizados por uma ou mais aplicações. Porquê ter código? I não sei, mas quando têm de ser usados, esta é uma forma de gerir os códigos.
Uni-table. [Alguns chamam isso de um anti-padrão; é um padrão, às vezes é ruim, às vezes é bom.] Esta é uma tabela com muitas coisas pré-Unidas que viola a segunda e terceira forma normal.
Tabela de matriz. Esta é uma tabela que viola a primeira forma normal por ter uma matriz ou sequência de valores nas colunas.
Base de dados de Uso Misto. Esta é uma base de dados normalizada para processamento de transações, mas com muitos índices extras para relatórios e análises. É um anti-padrão ... não faças isso. As pessoas fazem-no na mesma, por isso continua a ser um padrão.
Veja este blog - O programador de bases de dados.
Ele descreve alguns padrões de base de dados .
AskTom é provavelmente o único recurso mais útil sobre as melhores práticas na Oracle DBs. (Eu normalmente apenas digito "asktom" como a primeira palavra de uma consulta do google sobre um tópico particular) {[[4]} Acho que não é apropriado falar de padrões de design com bases de dados relacionais. Bases de dados relacionais já são a aplicação de um "padrão de design" a um problema (o problema é "como representar, armazenar e trabalhar com dados, mantendo a sua integridade", e o design sendo o modelo relacional). Outras abordagens (geralmente consideradas obsoletas) são os modelos de navegação e hierárquicos (e não existem muitas outras).
Tendo dito isto, você pode considerar " Data Warehousing "como um" padrão " um pouco separado ou abordagem no projeto de banco de dados. Em particular, você pode estar interessado em ler sobre o esquema estelar.
Perguntas:
- queres usar no futuro outro DBMS? Se sim, então não usa para coisas especiais SQL do DBMS atual. Remover a lógica na sua aplicação.
Não utilize:
- espaços em branco nos nomes das tabelas e nomes das colunas
- caracteres não Ascii no quadro e na coluna nomes
- ligação a um caso inferior ou superior específico. E nunca usar 2 tabelas ou colunas que diferem apenas com minúsculas e maiúsculas.
- não utiliza palavras-chave SQL para tabelas ou colunas nomes como "FROM", "BETWEEN", "DELETE", etc
Recomendações:
- Use NVARCHAR ou equivalentes para suporte unicode, então você não tem problemas com as codificações. Dá a cada coluna um nome único. Isto torna mais fácil ao juntar-se para seleccionar a coluna. É muito difícil se cada tabela tem uma coluna "ID" ou "nome"ou " descrição". Utilizar XyzID e AbcID.
- utilize um pacote de recursos ou seja igual para expressões SQL complexas. Torna mais fácil mudar para outro DBMS.
- não produz nenhum tipo de dados. Outro DBMS não pode ter este tipo de dados. Por exemplo Oracle daes não tem um pequeno número apenas um número.
UPSERT
pode ser considerado um padrão de design. Para línguas que não implementam MERGE
, uma série de alternativas para resolver o problema (Se existirem linhas adequadas, UPDATE
; caso contrário INSERT
) Existem.
Depende do que queres dizer com um padrão. Se você está pensando em pessoa/empresa/transação / produto e tal, então sim - há um monte de esquemas genéricos de banco de dados já disponíveis.
Se estás a pensar em fábrica, Singleton... então não-você não precisa de nenhum destes como eles são de nível muito baixo para a programação DB. Se você está pensando em nomear um objeto de banco de dados, então ele está sob a categoria de Convenções, não design per se.BTW, S. Lott, um-para-muitos e muitos-para-muitos as relações não são "padrões". São os alicerces básicos do modelo relacional.
Este livro parece interessante.
Title: Data Patterns
By: Microsoft Corporation
Publisher: Microsoft Press
Pub. Date: December 21, 2004
Print ISBN-13: 978-0-7356-2200-5