본문 바로가기

자격증 준비/정보처리기사필기 - 3과목(데이터베이스 구축)

[정보처리기사 필기] 3과목 - 데이터베이스 설계

728x90
반응형

데이터베이스 설계 순서

 

개념적 설계(정보 모델링, 개념화)

  • 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
    • 개념 스키마 모델링과 트랜션 모델링을 병행 수행
    • 요구 분석 단계에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 ERD로 작성
    • DBMS에 독립적인 개념 스키마를 설계

 

논리적 설계(데이터 모델링)

  • 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 DBMS가 지원하는 논리적 자료구조로 mapping 시키는 과정
    • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
    • 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계
    • 트랜잭션의 인터페이스를 설계
    • ex. RDB에서 테이블을 설계하는 단계

 

물리적 설계(데이터 구조화)

  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
    • 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정
    • 저장 레코드의 양식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사
    • 고려 사항
      • 트랜잭션 처리량
      • 응답 시간
      • 디스크 용량
      • 저장 공간의 효율화 등

 

데이터 모델

현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현개념적 모형

구성요소

개체
(Entity)
- 데이터베이스에 표현하려는 것
- 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
속성
(Attribute)
- 데이터의 가장 작은 논리적 단위
- 파일 구조상의 데이터 항목 또는 데이터 필드
관계
(Relationship)
- 개체 간의 관계 또는 속성 간의 논리적인 연결
구조
(Structure)
- 논리적으로 표현된 개체 타입들 간의 관계
- 데이터 구조 및 정적 성질을 표현
연산
(Operation)
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 데이터베이스를 조작하는 기본 도구
제약 조건
(Constraint)
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

ERD(Entity Relationship Diagram)

ER 모델

  • 개념적 데이터 모델의 가장 대표적인 것
  • 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적인 구성요소 정립
  • 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현
  • 데이터개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사
  • 특정 DBMS를 고려한 것은 아님
  • 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있음

 

관계형 데이터 모델

가장 널리 사용되는 데이터 모델

2차원적인 표(Table)를 이용해 데이터 상호 관계를 정의하는 DB 구조를 말함

  • 파일 구조처럼 구성한 테이블들을 하나의 DB로 묶어서 테이블 내에 있는 속성들 간의 관계를 설정하거나 테이블 간의 관계를 설정
  • 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터 간의 관계를 표현
  • 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델
  • 대표적인 언어는 SQL
  • 1:1 , 1:N, N:M 관계를 자유롭게 표현

 

RDB의 Relation 구조

Relation은 데이터들을 의 형태로 표현한 것

구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성

  • 튜플(Tuple)
    • 릴레이션을 구성하는 각각의 행
    • 속성의 모임으로 구성
    • 파일 구조에서 레코드와 같은 의미
    • 튜플의 수 = 카니널리티(Cardinality) or 기수, 대응수
  • 속성(Attribute)
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
    • 속성은 개체의 특성을 기술
    • 속성의 수 =  디그리(Degree) or 차수
  • 도메인(Domain)
    • 도메인은 하나의 속성이 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합
    • 도메인은 실제 속성 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용
    • ex. 성별 속성의 도메인은 '남', '여' 이외의 값은 입력될 수 없음

 

릴레이션의 특징

  • 한 릴레이션에는 똑같은 튜플이 포함될 수 없음 -> 릴레이션에 포함된 튜플들은 모두 다름
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 없음
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변함
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않음
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있음
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합키(Key)로 설정
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장

 

키(Key)

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성

후보키
(Candidate Key)
- 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합

- 기본키로 사용할 수 있는 속성들

- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족해야함
기본키
(Primary Key)
- 후보키 중에서 특별히 선정된 주키(Main Key), 중복된 값을 가질 수 없음

- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

- NULL값을 가질 수 없음(기본키 속성 중에는 NULL값이 있으면 안 됨)
대체키
(Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

- 보조키라고도 함
슈퍼키
(Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

- 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타내지 않음

- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하나 최소성은 만족시키지 못함
외래키
(Foreign Key)
- 다른 릴레이션의 본키를 참조하는 속성 또는 속성들의 집합을 의미

- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키

 

무결성(Integrity)

데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값일치하는 정확성을 의미함

개체 무결성
(Entity Integrity, 실체 무결성)
기본 테이블의 기본키를 구성하는 어떤 속성Null 값이나 중복값을 가질 수 없다는 규정
도메인 무결성
(Domain Integrity, 영역 무결성)
주어진 속성 값정의된 도메인에 속한 값이여야 한다는 규정
참조 무결성
(Referential Integrity)
- 외래키 값Null이거나 참조 릴레이션의 기본키 값과 동일해야 함
- 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음
사용자 정의 무결성
(User-Defined Integrity)
속성 값들사용자가 정의한 제약조건에 만족해야한다는 규정
728x90
반응형