문제
이 질문에는 이미 답변이 있습니다.
- 관계형 데이터베이스 디자인 패턴? 답변 10개
혹시 논문/책/등을 아는 사람 있나요?데이터베이스의 패턴을 문서화하는 것인가요?예를 들어, 일반적인 경험 법칙 중 하나는 모든 테이블에 기본 키가 있어야 하며 키는 다음과 같아야 한다는 것입니다. 정보 내용이 부족하다.그렇다면 관계형 데이터베이스 설계를 위한 디자인 패턴에 관해 책을 쓰거나 논문을 발표한 사람이 있는지 궁금합니다.
@가이우스,
이것이 데이터베이스 설계자가 고려해야 할 질문입니다. 즉, 데이터베이스 구조의 안정성은 어느 정도입니까?지평선이 충분히 길면 안정적인 것은 아무것도 없습니다.또는 반대로 말하면, 충분히 긴 지평선이 주어지면 모든 것이 변할 수 있습니다.대리 키(이론상)는 처음부터 의미가 없었기 때문에 그 의미를 절대로 변경해서는 안 됩니다.
특정 디자인 시나리오에서 고려해야 할 또 다른 사항은 누가 기본 키를 보게 될 것인가 하는 것입니다.기본 키가 최종 사용자가 실제로 참조해야 하는 것이라면 최종 사용자가 이해할 수 있는 것으로 만드는 것이 합리적입니다.그러나 최종 사용자가 기본 키를 확인해야 하는 경우는 많지 않습니다.일반적으로 기본 키는 DB 엔진이 특정 작업 속도를 높일 수 있도록 하기 위해 존재합니다.
질문을 던진 나의 원래 생각은 쉽게 피할 수 있는 오류를 피하기 위해 나보다 경험이 많은 데이터베이스 설계자가 코드화한 데이터베이스 설계를 위한 설계 패턴을 찾는 것이었습니다.누군가 데이터베이스 디자인 안티 패턴을 체계화한 적이 있다면 흥미로울 것입니다.
해결책
특히 키와 관련하여:나는 열쇠에는 의미가 없어야 한다는 이상한 생각에 강력히 동의하지 않습니다.일반적으로 나는 데이터베이스를 사실의 모음이라고 생각합니다.생성된 키와 같은 임의의 숫자와 기타 관련 없는 정보를 추가하기 시작하자마자 이는 경고 신호가 되어야 합니다.나는 추천한다 이 기사는 Joe Celko가 작성했습니다. 키에 대해 자세히 알아보세요.
더 일반적인 참고사항:
다양한 비즈니스를 위한 스키마 설계/데이터 모델 제안:데이비드 C.건초:데이터 모델 패턴:생각의 관습은 다소 오래되었지만 여전히 인쇄 된 이유가 있습니다.
http://www.dorsethouse.com/books/dmp.html
패턴과 매우 유사하지는 않지만 여전히 매우 좋습니다.스테판 파롤트, 피터 롭슨:SQL의 예술http://oreilly.com/catalog/9780596008949/
제가 추천할 수 있는 또 다른 것:바딤 트로파슈코:SQL 디자인 패턴 - SQL 프로그래밍 전문가 가이드http://www.rampant-books.com/book_2006_1_sql_coding_styles.htm
데이터 모델링에 관한 체계적인 교과서:Graeme Simsion 및 Graham Witt, "데이터 모델링 필수 사항"http://www.elsevierdirect.com/product.jsp?isbn=9780126445510
어쩌면 당신은 실제로 "스타일 가이드"를 찾고 있는 것일까요?나는 그 경우:조 셀코:SQL 프로그래밍 스타일http://www.elsevierdirect.com/product.jsp?isbn=9780120887972
다른 팁
E.F.의 책들코드와 C.J.날짜가 가장 확실한 답변입니다.나는 이 특정 책을 읽지 않았지만 저자에 대해 잘 알고 있으므로 꽤 좋을 것 같습니다.
데이터베이스 전문가를 위한 응용 수학 Lexx de Haan과 Toon Koppelaars의 작품입니다.
실제로 경험상 가능한 한 대용 키보다는 자연 키를 사용하는 것이 일반적이라고 생각합니다.
예를 들어 Invoice 테이블과 InvoiceDetail 테이블이 있는 경우 InvoiceNumber를 첫 번째 테이블의 기본 키로 사용할 수 있습니다.그것은 이미 우리 데이터에 존재하며 (제 생각에는?) 고유할 것입니다.두 번째 테이블의 경우 아마도 대리 키가 필요하지 않을 것입니다(인보이스 번호에 복합적으로 결합되었는지 여부).
어쨌든 원래 질문으로 돌아가서...hometoast의 링크를 통해 시작해보세요.
-- 케빈 페어차일드
정확하게 대답하려면: 예.'좋은' 데이터베이스 디자인에 관한 수많은 정보가 기록되어 있습니다.당신의 경험 법칙은 확실히 의심스럽습니다.
SQL 안티 패턴 Bill Karwin이 쓴 이 책은 매우 읽기 쉽고(건조하지 않음) 여러 가지 잠재적인 함정, 이를 사용하는 방법, 올바른 작업을 수행하는 방법/이유를 매우 명확한 용어로 설명합니다.
비즈니스 의미가 있는 기본 키("자연 키")를 사용하는 것은 확실히 장점이 있지만 데이터베이스를 리팩터링할 수 있습니다. 매우 어려운.특히 시간이 지남에 따라 데이터베이스 구조가 변경될 것이라고 믿을 만한 이유가 있는 경우 주의하십시오.