작은 콩 개발자/등등

[오용철의 데이터베이스 모델링] 2. 데이터 베이스

귤치치 2023. 6. 23. 13:28

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 인 관계

• 관계 타입의 차수