2010-01-31 3 views
14

데이터베이스 정규화가 여전히 "사실입니까?"데이터베이스 정규화가 여전히 필요합니까?

데이터베이스 과정에서 공부할 때 우리는 모든 수준의 정규화를 가르쳤고 항상 그렇게해야한다고했습니다.

이제 모든 움직임이 NoSQL인데 정상화가 더 이상 수행되지 않는 것 같습니다.

답변

10

데이터베이스를 사용하는 응용 프로그램의 유형에 따라 다릅니다.

OLTP 응용 프로그램 (주로 SELECT와 함께 많은 INSERT, UPDATE 및 DELETES가있는 데이터 입력)의 경우 일반적으로 정규화 된 것이 좋습니다.

OLAP 및보고 응용 프로그램의 경우 정규화가 도움이되지 않습니다. SELECT 쿼리는보기를 통해 얻을 수있는 비정규 스키마에 비해 훨씬 빠르게 실행됩니다.

Should I normalize my DB or not?

In terms of databases, is “Normalize for correctness, denormalize for performance” a right mantra?

What is the resource impact from normalizing a database?

How to convince someone to normalize a database?

Is it really better to use normalized tables?

012 :

이러한 매우 인기 비슷한 질문에서 몇 가지 유용한 정보를 찾을 수 있습니다

+0

통찰력있는 응답에 감사드립니다. OLTP는 무엇입니까? – bodacydo

+0

온라인 트랜잭션 처리. 사용자가 데이터 입력 또는 CRUD (작성, 읽기, 업데이트, 삭제)를 수행하는 앱을 나타냅니다. 이러한 응용 프로그램에는 SELECT뿐만 아니라 데이터를 INSERT, UPDATE 및 DELETE하는 호출이 있습니다. OnLine Analytical Processing 및보고와 비교하면 데이터베이스 상호 작용의 대부분이 SELECT이고 INSERT, UPDATE 또는 DELETE가 거의 없습니다. – DOK

6

NoSQL은은 총알이 아닙니다. 특정 상황에 훨씬 더 적합한 기술을 제공 할 수있는 기술입니다. 관계형 데이터의 경우 RDBMS가 곧 사라지지 않습니다.

2

그렇습니다. 트랜잭션 시스템이 항상 정상화되었거나 앞으로 나아갈 때 큰 두통을 겪을 가능성이 있습니다. 보고/OLAP 비정규 화에 사용되는 데이터베이스의 경우 스키마가 매우 유용 할 수 있습니다.

1

엄지 손가락의 규칙은 "JOIN은 처리 능력면에서 비쌉니다."입니다. 내가 사용하는 크거나 작은 프로젝트에 대한 데이터베이스를 만드는 것입니다. 사용자 이름, 주소 등의 데이터를 보유하고있는 테이블은 최근에 액세스하지 못했던 정규화되어야합니다. 최근 몇 년 동안 web2.0 데이터, 앱, 모바일 서비스 등은 사실 다른 유형의 데이터를 사용하여 메모리 코드가 풍부 해져서 처리 능력을 절약 할 수있어 동일한 "테이블"에 저장하지 못합니다 그것을 정상화.

관련 문제