ER 모델은 1976 년 피터 첸 (Peter Chen)에 의해 처음 소개되었지만 초기 작업의 영향을 받았다. 1980 년대 초반 개념적 차원에서 데이터를 모델링하는 데 거의 독점적으로 사용되었습니다. 개념적 차원에서 구현의 주된 가치는 편향적이었습니다. ER 모델을 관계형 모델로 변환하는 것이 매우 쉽지만, ER 모델은 최종 구현이 IMS와 같은 일종의 사전 관계형 DBMS 인 경우에 유용하다고 여겨져 왔습니다. 또한 최종 구현이 어떤 종류의 비 구조적 또는 사후 관계형 DBMS 또는 객체 데이터베이스에있는 프로젝트의 예비 단계에서 사용되었습니다.
수많은 실무자가 ER 모델링과 관계형 모델링을 병합하고 두 가지 목적을 모두 수행하는 단일 모델을 제안합니다. 두 모델은 겹치는 부분이 많지만 차이점은 중요하므로 두 모델을 병합하면 둘 다 손상됩니다. 이 병합은 ER 다이어그램에서 가장 눈에.니다. 소위 말하는 ER 다이어그램의 대부분은 ER 다이어그램 규칙을 사용하더라도 실제로 관계형 모델입니다.
ER에 대한 Wikipedia 기사에서는 개념적, 논리적 및 물리적 인 고전적인 세 가지 레이어를 언급하고이를 ER 모델의 모든 변형으로 간주합니다. 그것은 그것이 1980 년대에 있었던 것이 아닙니다. ER 모델은 개념적이었다. 논리적 모델은 관계형 데이터베이스였습니다. 최종 목표는 관계형 데이터베이스였습니다. 실제 수준은 DBMS에 따라 다르며 논리적 및 개념적 수준의보다 추상적 인 목표는 물론 성능 및 볼륨 목표를 달성하려고했습니다.
이 모든 것은 영원히 젊은 IT 역사의 고대 역사 또는 사전 역사 일 수 있습니다.
가장 큰 차이점은 외래 키가 ER 모델에 존재하지 않는다는 것입니다. 관계는 ER 모델에서 볼 수 있지만 ER은 구현 방법에 대해 침묵합니다. 외래 키는 관계를 구현하는 한 가지 방법 일뿐입니다. 관계형 데이터베이스에서, 그것들은 의미있는 유일한 방법입니다. 또한 ER은 다른 엔티티를 중간에 배치하지 않고 직접 다 대다 관계를 모델링합니다. 관계형 모델은 다 대다 관계를 구현하는 두 개의 외래 키를 보유하기 위해 중간 테이블 (종종 "중계 상자"라고 함)이 필요합니다.
EER에 포함 된 향상된 기능은 주로 gen-spec (수퍼 클래스/하위 클래스) 및 공용체를 모델링 규칙에 추가하는 것입니다. 이것들은 지금까지 ER에 거의 보편적으로 포함되어 있습니다. 그래서 EER이라는 용어는 정말로 역사적인 사고입니다.
원래 개발 된 정규화는 관계형 데이터베이스 디자인의 일부입니다. 비 관계형 상황에서는 실제로 적용 할 수 없으며 일반적인 형식 (1NF에서 5NF 및 DKNF까지)을 크게 벗어나지 않습니다. ER 모델링에서는 정규화가 부적절합니다. 그러나 논리적 레벨에서 정규화 오류와 거의 항상 상관되는 ER 모델링에서 모델링 오류가 발생하기 쉽습니다. 즉, 특성을 잘못된 엔티티와 연관 시키거나 두 개의 별개 속성을 단일 속성으로 결합하는 것입니다.
나는 계속 할 수 있지만 이미 너무 길다.
감사합니다. 이로 인해 혼란이 실제로 정리되었습니다. ER 모델 = 개념적, 관계형 모델 = 논리적, 물리적 = RDBMS 특정 등의 개념을 1980 년의 방식과 동일하게 생각하는 인상을받습니다. 이 방법을 계속 보길 권하고 싶습니다. 아니면 개념적, 논리적, 물리적 스키마의 상위 집합으로서 ER 모델을 보는 위키피디아에 가야합니까? – user1534664
저의 이전 코멘트와 비슷한 질문을하게하겠습니다. "교과서에이 비즈니스 시나리오를 모델링하는 ERD 만들기"라는 교과서가 있다면 개념적 모델이나 논리적 모델을 만들겠습니까? 또한 한 번만 말하면 내가 얼마나 감사하고 있는지 강조 할 수 없습니다. 당신은 ERD에 관한 4 가지 이전 질문에 대답했습니다. 나는 마침내 위키 피 디아를 이해하려고 애쓰는 너와 시간들 덕분에 데이터베이스 모델링의 큰 그림을 이해하기 시작했다. – user1534664
나는 여전히 내가 개념적, 논리적, 그리고 물리적으로 생각한 방식을 생각한다. 그리고 더 이상 전문적으로 데이터베이스를 구축하지 않습니다. 이 점에 관해서 위키피디아의 리드를 따를 지에 대한 권고를하기 위해 그것을 다른 사람들에게 남겨 둘 것입니다. 한 가지는 분명히 권할 것입니다. 아직 배우지 않았다면 분석과 디자인의 차이점에 대해 알아보십시오. 그리고 해결책을 제시하기 전에 문제를 분석하는 데 적절한 시간을 보내십시오. 이것은 대부분의 IT 전문가가 어려운 방법을 배워야하고, 많은 사람들이 여러 번 배워야합니다. –