2012-10-21 2 views
0

친구가 웹 사이트를 개발 중이며 SQL을 사용하여 데이터베이스를 만들어야합니다. 그는 당신이 하나의 엔티티 세트의 기본 키를 가져 와서 다른 적절한 엔티티 세트 (또는 그 반대)에 배치하여 관계를 찾을 수 있기 때문에 왜 "has-a"또는 "is-a"관계가 필요한지 묻습니다.관계형 세트가 중요한 이유는 무엇입니까?

관계형 세트가 데이터베이스의 작동 방식이라는 것을 알았 기 때문에 질문에 대답 할 수 없었습니다.

편집 : 정규화에 참여하고 싶지 않았습니다. 그는 정보가 관계 집합에 복제된다는 사실을 알게되었습니다.

답변

1

귀하의 질문에는 개념 레벨과 논리 레벨이라는 두 가지 다른 수준의 추상화가 혼합되어 있습니다.

개념적 차원에서 제안 된 데이터베이스에 대한 정보 요구 사항을 설명하는 데 관심이 있습니다. 하나의 솔루션이나 다른 솔루션으로 설명을 기울이지 않고이 작업을 수행하는 것이 유용합니다. 이 목적에 유용한 하나의 모델은 Entity-Relationship (ER) 모델입니다. 이 모델에서 주제는 엔티티 (주제)와 엔티티 간의 관계로 나뉩니다. 모든 데이터는 entites 중 하나 또는 관계 중 하나의 일부 측면을 설명하는 것으로 볼 수 있습니다.

"Is-a"및 "has-a"관계는이 추상화 수준에서 관련이 있습니다. 이 수준에서는 관계가 식별되지만 구현되지는 않습니다.

데이터베이스의 개념 모델을 만든 후 데이터베이스 자체를 만들기 전에 논리적 디자인 단계를 수행하면 데이터베이스의 논리적 모델이됩니다. 데이터베이스가 관계형 인 경우 논리적 모델을 관계형으로 만드는 것이 유용합니다. 관계형 모델은 차세대 추상화 수준입니다.

여기에는 기본 키와 외래 키가 들어 있습니다.이 키는 개념 단계에서 식별 된 관계를 구현합니다. 이것은 관계형 모델이 관계를 구현하는 방법입니다. 이 단계에서 접합점 테이블, 테이블 구성 및 정규화와 같은 디자인 문제에 개입하게됩니다.

개념 수준과 논리 수준 외에도 실제 수준과 스크립트 수준이 있습니다. 그러나 이것들은 당신의 질문 범위 밖에 있습니다.

두 가지 종류의 관계는 해결해야 할 문제의 특징입니다. 기본 키에 대한 외래 키 참조는 제안 된 솔루션의 기능입니다.

관련 문제