[오용철의 데이터베이스 모델링] 2. 데이터 베이스
2021. 3. 6. 15:45
• 데이터 모델링
– 데이터베이스를 구축하고자 하는 대상이 되는
기관에서 사용되는 데이터를 분석하여 제약조건을
체계적으로 정의하고 개념적인 도구를 이용해서
간결하고 이해하기 쉽게 표현하는 것
• 데이터 모델링의 중요성
– 데이터베이스 사용자 간에 의사소통을 쉽게 해 준다.
– 전체적인 조화와 균형을 유지할 수 있게 해 준다
• 데이터 모델링의 종류
– 개념적 데이터 모델
– 논리적 데이터 모델
– 물리적 데이터 모델
• 개념적 데이터 모델
– 고수준의 데이터 모델
– 전체 시스템에 대한 개념적인 정보를 나타내는 데
사용
– 개체- 관계 모델(ER Model, Entity-Relationship
Model) 이 대표적인 개념적 데이터 모델이다.
• 논리적 데이터 모델
– 표현 데이터 모델 또는 구현 데이터 모델
– 구축할 시스템의 이미지
네트워크 데이터 모델
계층 데이터 모델
객체지향 데이터 모델
객체- 관계 데이터 모델
관계형 데이터 모델
• 논리적 데이터 모델(관계형 데이터 모델)
– 데이터베이스의 구조를 이차원의 표를 이용하여
표현하는 모델
– 간단하고 균등한 데이터 구조
• 논리적 데이터 모델(계층형 데이터 모델)
– 하위 데이터들이 상위 데이터 하나를 갖는 모델
– 데이터의 관계를 트리(Tree) 형태로 나타난다.
– 세그먼트 : 필드의 집합은 세그먼트
– 루트(Root) 세그먼트 : 맨 위에 있는 세그먼트
• 논리적 데이터 모델(네트워크 데이터 모델)
– 데이터 구조가 복잡해지면서 계층형 데이터 모델로
표현하기 어려운 데이터 구조를 그래프 형태로 표현한
모델
– 설계가 어렵고, 사용자가 이해하며 사용하기 어렵다.
• 논리적 데이터 모델(객체지향형 데이터 모델)
– 객체를 지향하는 개념과 데이터베이스 개념을
통합하여 되도록 실세계와 유사하게 데이터를
표현하는 데이터 모델
– 재사용이 쉬워서 유지보수가 편하다
– 시스템 자원을 많이 요구하고 확실히 정립된 개념이
아직 없다.
• 물리적 데이터 모델
– 컴퓨터 내부에서 데이터들이 실제로 어떻게
저장되는가를 표현
• ER(Entity-relationship) 데이터 모델
– 개념적 데이터 모델
– 엔티티(Entity), 애트리뷰트(Attribute), 관계
(Relationship)를 이용해서 실세계를 개념적으로
표현하는 기법
• ER 모델의 구성 요소
– 엔티티(Entity)
– 애트리뷰트(Attribute)
– 관계(Relationship)
2.2 ER(Entity-relationship) 데이터 모델
그림
• 엔티티 (Entity)
– 모델의 관리 대상
– 사람과 물건, 장소 같은 실체가 있는 것이나 개념을
엔티티로 선택
– 시스템 구축 단계까지 진행되면 파일이나
데이터베이스의 테이블로 구현
– ER 다이어그램에서는 사각형으로 표현
• 애트리뷰트 (Attribute)
– 엔티티의 구성 요소
– ER 다이어그램에서는 타원으로 표현
• 관계 (Relationship)
– 엔티티 간의 관계를 나타내는 것으로 1:1, 1:N, M:N
관계를 표현
– 관계는 관계형 데이터베이스로 매핑(Mapping, 사상)
되는데, ER 다이어그램에서는 마름모로 표현
• 엔티티
– 실제로 존재하는 대상들
– ER 모델에서 가장 기본이 되며, 고유하게 식별이
되어야만 한다.
• 엔티티 타입(Entity Type)
– 여러 엔티티가 모여서 하나의 집단을 이룬 형태
– ER 다이어그램에서 엔티티 타입은 사각형으로 표현
• 엔티티 타입(Entity Type)
– 강한 엔티티 타입
– 약한 엔티티 타입 : 자신의 키 애트리뷰트가 없는
엔티티 타입
• 애트리뷰트 (Attribute)
– 엔티티 또는 관계가 갖는 성질이나 특성
– 엔티티는 반드시 하나 이상의 키 애트리뷰를 갖고
있어서 나머지 애트리뷰트를 유일하게 정의할 수 있다
.
– ER 다이어그램에서 애트리뷰트는 타원으로 표현
• 단순 애트리뷰트(Simple Attribute)
• 키 애트리뷰트(Key Attribute)
– 엔티티들을 식별할 수 있는 유일한 제약조건을 갖는 애트리뷰트
• 복합 애트리뷰트(Composite Attribute)
– 두 개 이상의 애트리뷰트로 이루어진다.
– 각각의 애트리뷰트는 그 자체로도 독립적인 의미가
있다.

• 다치 애트리뷰트(Multivalue Attribute)
– 애트리뷰트 하나에 여러 값이 들어갈 수 있는 애트리뷰트
- 학과 사무실의 전화번호는 여러 가지 일 수 있으므로
• 유도된 애트리뷰트(Derived Attribute)
– 애트리뷰트에 실제 값이 저장되어 있는 것이 아니라 저장된 값으로부터 계산해서 얻은 값을 사용하는 애트리뷰트
- 나이는 매번 바뀌니까 오늘의 날짜에 생년월일을 빼서 하는 애트리뷰트
• 부분키(Partial Key)
– 키와 비슷하지만 완벽하게 키라고는 할 수 없고 약한 엔티티에서만 사용되는데, 키 애트리뷰트에 반해서 부분키(Partial Key)라고 한다.
– 부분키는 ER 다이어그램에서 점선으로 밑줄을 그어서 표현한다.
- 예시) 섹션 - 약한 애트리뷰트
??????
• 관계 타입
– 엔티티 타입 간의 관계를 표현할 때 사용
– 엔티티 간에 존재하는 수학적 관계를 말한다.
– ER 다이어그램에서 마름모를 사용하여 표현
- 학생이 과목을 등록( 관계 )
• 카디널리티 비율(Cardinality Ratio)
– 두 엔티티 타입 사이의 관계에서 참여자의 수를
표현하는 것
– 1:1, 1:N, M:N 등이 있다.
– ER 다이어그램에서는 실선 위에 1 또는 N을
표기해서 구분
* Cardinality
(=CARDINAL NUMBER)
2.
(ˌcardinal ˈnumber)
기수(1, 2, 3 등 양을 나타내는 수)
2.
수학 집합의 원소의 수. 집합 A와 집합 B가 일대일의 대응을 할 때, A와 B는 기수가 같다고 한다.
• 카디널리티 비율 - 일대일(1:1) 관계
– 하나의 엔티티에 대하여 하나의 엔티티만이
• 카디널리티 비율 - 일대다(1:N) 관계
• 카디널리티 비율 - 다대다(M:N)
• 전체 참여와 부분 참여
– 전체 참여는 두 줄로 표현하고 부분 참여는 한 줄로
표현한다.
• 관계 타입의 차수
– 참여하고 있는 엔티티 타입의 개수
– 순환적 관계 : 차수가 1 인 관계
• 관계 타입의 차수