본문 바로가기
-/정보처리기사

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

by olli2 2021. 7. 11.

데이터베이스 설계 시 고려사항

더보기

무결성 (제약조건 항상 만족)

일관성 (특정 질의에 대한 응답 변함없이 일정)

회복 (장애 발생 시 발생 이전 상태로 복구 가능)

보안

효율성 (응답 시간 단축, 생산성, 저장 공간 최적화 등)

데이터베이스 확장 (데이터베이스 운영에 영향 주지 않으면서 지속적 확장 가능)


데이터베이스 설계 순서

더보기

요구조건 분석

요구조건 명세서 작성

 

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

DBMS에 독립적인 개념 스키마 모델링

트랜잭션 모델링

DBMS에 독립적인 E-R 다이어그램 작성

 

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

: 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환

목표 DBMS에 맞는(종속적인) 논리 스키마 설계

논리적 자료 구조로 변환(mapping)

트랜잭션 인터페이스 설계

개념 스키마 평가 및 정제

관계형 데이터베이스라면 테이블 설계

 

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

: 논리적 구조로 표현된 데이터를 물리적 저장 장치에 저장 가능한 물리적 구조의 데이터로 변환

목표 DBMS에 맞는(종속적인) 물리적 구조의 데이터로 변환

데이터베이스 파일의 저장 구조 및 액세스 경로 설정

저장 레코드 형식 설계

레코드 집중의 분석 및 설계
접근 경로 설계

 

구현

: 논리적 설계 단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정

DDL로 스키마를 작성하여 데이터베이스에 등록

응용 프로그램을 위한 트랜잭션 작성

데이터베이스 접근을 위한 응용 프로그램 작성 


데이터 모델

더보기

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

: 데이터, 데이터의 관계, 데이터의 의미 미치 일관성, 제약 조건 등을 기술하기 위한 개념적 도구들의 모임

: 데이터의 구조를 논리적으로 표현하기 위해 사용되는 지능적 도구

 

구성 요소 : 개체, 속성, 관계

표시할 요소 : 구조, 연산, 제약 조건

 

[구성 요소] #개속관

개체 데이터베이스에 표현하려는 것
사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
실세계에 독립적으로 존재하는 무형/유형의 정보
서로 연관된 몇 개의 속성으로 구성됨
파일 시스템의 레코드에 대응
정보 제공하는 역할 수행
독립적으로 존재하나 그 자체로서도 구별 가능
유일한 식별자에 의해 식별 가능
다른 개체와 하나 이상의 관계가 있음
개체의 구성요소 : 속성, 개체 타입, 개체 인스턴스(개체 어커런스), 개체 세트
속성 데이터베이스를 구성하는 가장 작은 논리적 단위
파일 구조상의 데이터 항목 또는 데이터 필드에 해당
개체의 특성을 기술
개체를 구성하는 항목
속성의 수 = Degree = 차수
속성으로 지정할 후보는 최대한 많이 선택하는 것이 좋으며, 원시속성으로 판단되는 속성 후보는 버리지 않음
(원시속성 : 다른 속성을 통해 다시 재현할 수 없는 속성)
<특성에 따른 분류>
* 기본 속성 : 업무 분석을 통해 정의한 속성으로 속성 중 가장 많고 일반적
* 설계 속성 : 원래 업무상 존재하지 않고 설계 과정에서 도출해낸 속성
* 파생 속성 : 다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성으로 되도록 적은 수 정의 권장
<개체 구성 방식에 따른 분류>
* 기본키 속성 : 개체를 식별할 수 있는 속성
* 외래키 속성 : 다른 개체와의 관계에서 포함된 속성
* 일반 속성 : 개체에 포함되어 있고 기본키, 외래키에 포함되지 않은 속성
관계 개체 간의 관계 또는 속성 간의 논리적인 연결
관계의 형태 : 1:1, 1:N, N:M
관계의 종류 : 종속관계, 중복관계, 재귀관계, 배타관계

 

[표시할 요소] #구연제

구조 논리적으로 표현된 개체 타입들 간의 관계
데이터 구조 및 정적 성질 표현
연산 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
데이터베이스를 조작하는 기본 도구
제약 조건 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건

 

개념적 데이터 모델

- 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

 

[E-R모델]

- 현실 세계의 무질서한 데이터를 개체 타입과 관계 타입을 이용해 개념적으로 표현

- 데이터를 개체, 관계, 속성으로 묘사

- 특정 DBMS를 고려한 것은 아님

- E-R 다이어그램으로 표현하며 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타냄

 

논리적 데이터 모델

- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정

- 일반적으로 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미함

- 관계 표현 방식에 따른 분류 : 관계 모델, 계층 모델, 네트워크 모델

 

 


식별자

더보기

- 하나의 개체 내에서 각각의 인스턴스를 유일하게 구별할 수 있는 구분자

- 모든 개체는 한 개 이상의 식별자를 반드시 가져야 함

 

<분류>

대표성 여부 주 식별자 개체를 대표하는 유일한 식별자
하나의 개체에 하나만 존재
보조 식별자 주 식별자를 대신하여 개체를 식별할 수 있는 속성
하나의 개체에 한 개 이상이 존재
스스로 생성 여부 내부 식별자 개체 내에서 스스로 만들어지는 식별자
외부 식별자 다른 개체와의 관계에 의해 외부 개체의 식별자를 가져와 사용하는 식별자
자신의 개체에서 다른 개체를 찾아가는 연결자 역할
단일 속성 여부 단일 식별자 주 식별자가 한 가지 속성으로만 구성된 식별자
복합 식별자 주 식별자가 두 개 이상의 속성으로 구성된 식별자
대체 여부 원조 식별자 가공되지 않은 원래의 식별자 (=본질 식별자)
대리 식별자 주 식별자의 속성이 두 개 이 이상인 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자 (=인조 식별자)

(+) 복합 식별자 vs 대리 식별자

복합 식별자 : 속성을 단순히 모아서 구성

대리 식별자 : 속성을 모아서 새로운 식별자를 붙임

 

(+) 후보 식별자 = 주 식별자 + 보조 식별자

마땅한 후보 식별자가 없거나 속성의 조합이 너무 복잡하다면 인조 식별자 따로 생성하여 사용 가능


관계형 데이터 모델

더보기

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

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

- 기본키와 외래키로 데이터 간의 관계 표현

- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델

- 관계형 모델의 대표적인 언어 = SQL

- 1:1, 1:N, N:M의 관계 자유롭게 표현 가능


관계형 데이터베이스

더보기

: 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현

: 릴레이션은 개체 릴레이션과 관계 릴레이션으로 구분됨

장점 : 간결, 보기에 편리함, 다른 데이터베이스로의 변환 용이

단점 : 성능이 다소 떨어짐

 

[릴레이션]

: 데이터들을 표(Table)의 형태로 표현한 것

릴레이션 스키마 구조를 나타냄 (속성들의 집합)
릴레이션 인스턴스 실제 값들을 나타냄 (튜플들의 집합)
속성 데이터베이스를 구성하는 가장 작은 논리적 단위
파일 구조상의 데이터 항목 또는 데이터 필드
개체의 특성을 기술
속성의 수 = Degree = 차수
튜플 릴레이션을 구성하는 각각의 행들
속성의 모임으로 구성
파일 구조에서 레코드와 같은 의미
튜플의 수 = 카디널리티 = 기수 = 대응수
도메인 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합

 

- 한 릴레이션에 포함된 튜플들은 모두 상이하다

- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다

- 튜플들의 삽입/삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다

- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다

- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 없다

- 릴레이션을 구성하는 튜플을 유일하게 식별하기 이해 속성들의 부분집합을 키로 설정한다

- 속성의 값은 논리적이로 더 이상 쪼갤 수 없는 원자값만을 사용한다


더보기

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

 

[후보키]

[기본키]

[대체키]

[슈퍼키]

[외래키]


관계형 데이터베이스의 무결성 제약조건

더보기

제약 조건 : 데이터의 정확성을 보장하기 위한 키를 이용하여 입력되는 데이터에 제한을 주는 것

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

무결성 제약조건 : 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건

 

[개체 무결성] (실체 무결성)

[도메인 무결성] (영역 무결성)

[참조 무결성]

[사용자 정의 무결성]

 

데이터 무결성 강화

: 데이터 무결성은 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용하여 강화 가능

: 데이터 구축 과정에서 정의