[3] 데이터베이스 구축 (1)

양현지·2024년 5월 19일
0

정보처리기사

목록 보기
1/2

1. 데이터베이스 설계

일반적인 데이터베이스의 설계 과정은 다음과 같다.

  1. 요구 조건 분석

    요구 조건 명세서 작성

  2. 개념적 설계

    개념 스키마, ERD, 트랜잭션 모델링

  3. 논리적 설계

    논리 스키마, 트랜잭션 인터페이스 설계

  4. 물리적 설계

    물리적 구조의 data로 변환

  5. 구현

    실제 DBMS의 DDL로 Database 생성, 트랜잭션 작성

2. Data Modeling

현실 세계의 data를 컴퓨터 세계의 데이터 베이스로 옮기는 과정

데이터베이스 설계의 핵심 : 추상화(Abstraction)

1) 개념적 데이터 모델링

⇒ ER 모델

현실 세계의 중요 데이터 → 개념 세계

e.g. 현실 세계의 “사람”의 정보 中 중요한 데이터(이름, 나이, 성별, 주소)만을 추출

(사람의 손가락 길이, 유전자 정보, 신발사이즈 등 모든 정보를 가져올 필요는 없음!)

2) 논리적 데이터 모델링

⇒ 관계 데이터 모델

개념 세계의 데이터 → 데이터베이스에 저장

2. ER Diagram (개념적 데이터 모델)

: 현실 세계의 data → 컴퓨터 세계의 data로 표현하기 위해 추상화하여 표현한 개념적 모형

[데이터 모델의 구성 요소]

  1. 개체 (Entity)
  2. 속성 (Property)
  3. 관계 (Realationship)

1) 개체란?

개체 타입(entity type) : 개체를 고유의 이름과 속성들로 정의한것

개체 인스턴스(entity instance) : 개체를 구성하고 있는 속성이 실제값을 가짐으로써 “실체화된” 개체

개체 집합(entity set) : 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것

# 개체 타입
# 고객 -> 개체 이름 / 이름, 주소, 연락처, 적립금 -> 개체 속성
고객 (이름, 주소, 연락처, 적립금)

# 개체 인스턴스
(양현지, 분당, 010~, 40000)  <= 개체 집합

2) 속성의 분류

개체의 속성은 기준에 따라 아래와 같이 분류됨

① 속성 값의 개수

단일값 속성(타원)/다중값 속성(이중 타원)

② 의미의 분해 가능성

단순 속성/복합 속성

③ 기존 속성 값에서 유도

유도 속성 : 기존의 다른 속성 값에서 유도되어 결정되는 속성

  • 값이 별도로 저장되지 않음

3) null 속성

널 값이 허용되는 속성

※ 속성이 null 값이라면?

  1. 속성 값이 개체에 해당되지 않는 (not applicable) 경우
  2. 속성 값을 알 수 없는 경우
  3. 값의 존재 여부 조차 알 수 없어 모르는 경우

4) 키 속성(밑줄)

개체의 인스턴스를 “식별”하는 데 사용되는 속성

3. 관계 (마름모)

: 개체와 개체가 맺고 있는 의미적 연관성. 개체 집합들 사이의 대응 관계, 즉 mapping!

e.g.) 고객 개체와 책 개체 관계 = 구매

고객은 책을 구매한다.

관계도 속성을 가질 수 있음!

1) 관계의 유형 : 매핑 카디널리티

매핑 카디널리티란?

: 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

  1. 일대일
  2. 일대다
  3. 다대다

2) 관계의 참여 특성

  1. 전체 참여 (이중선)

    모든 개체 인스턴스가 관계에 반드시 참여

  2. 부분 참여 (단일선)

    개체 인스턴스 중 일부만 관계에 참여 가능

3) 존재 종속 (Existence Dependency) 관계

  • 강한 개체 : 다른 개체의 존재 여부를 결정하는 개체
  • 약한 개체(이중 사각형) : 다른 개체의 존재 여부에 종속적인 개체 → 자기 자신의 속성으로만 키를 명세할 수 x → 부분 키 : 약한 개체 내의 구별 속성 (점선 밑줄)

※ 특징

  • 강한 개체와 약한 개체는 일대다 관계
  • 약한 개체는 강한 개체와의 관계(이중 마름모)에 필수적으로 참여
  • 약한 개체는 강한 개체의 키를 포함하여 키 구성

0개의 댓글