1. 데이터베이스 설계 순서
(1) 요구 조건 분석 : 요구 조건 명세서 작성
(2) 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델
(3) 논리적 설계 : 논리 스키마 설계, 트랜잭션 인터페이스 설계
(4) 물리적 설계 : 물리적 구조의 데이터로 변환
(5) 구현 : DDL로 데이터베이스 생성, 트랜잭션 작성
2. 개념적 설계(정보 모델링, 개념화)
(1) 개념적 설계란 정보의 구조를 얻기 위하여 현실 세계의 무 한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정 이다.
(2) 개념적 설계 단계에서는 개념 스키마 모델링과 트랜잭 션 모델링을 병행 수행한다.
(3) 개념적 설계 단계에서는 요구 분석 단계에서 나온 결과 인 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그 램으로 작성한다.
(4) DBMS에 독립적인 개념 스키마를 설계한다.
3. 논리적 설계(데이터 모델링)
(1) 현실 세계에서 발생하는 자료를 컴퓨 터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환(mapping)시키는 과정이다.
(2) 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데 이터로 모델화한다.
(3) 개념적 설계가 개념 스키마를 설계하는 단계라면 논리 적 설계에서는 개념 스키마를 평가 및 정제하고 DBMS 에 따라 서로 다른 논리적 스키마를 설계하는 단계이다.
(4) 트랜잭션의 인터페이스를 설계한다.
(5) 관계형 데이터베이스라면 테이블을 설계하는 단계이다.
4. 물리적 설계(데이터 구조화)
(1) 논리적 설계 단계에서 논리적 구조로 표현 된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있 는 물리적 구조의 데이터로 변환하는 과정이다.
(2) 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
(3) 저장 레코드의 양식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용하여 데이터가 컴퓨터에 저 장되는 방법을 묘사한다.
(4) 물리적 설계 시 고려할 사항 : 트랜잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 등
5. 데이터 모델
(1) 데이터 모델의 구성 요소
- 개체 (Entity) : 데이터베이스에 표현하려는 것으로, 사람이 생각 하는 개념이나 정보 단위 같은 현실 세계의 대상체
- 속성 (Attribute) : 데이터의 가장 작은 논리적 단위로서 파일 구조상 의 데이터 항목 또는 데이터 필드에 해당함
- 관계(Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미함
(2) 데이터 모델에 표시할 요소
- 구조 (Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이 터 구조 및 정적 성질을 표현함
- 연산 (Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작 업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
- 제약 조건 (Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리 적인 제약 조건
1. E-R 모델의 개요
(1) 개념적 데이터 모델의 가장 대표적인 것으 로, 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적 인 구성 요소가 정립되었다.
(2) E-R 모델은 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적 으로 표현한다.
(3) E-R 모델에서는 데이터를 개체(Entity), 관계 (Relationship), 속성(Attribute)으로 묘사한다.
(4) E-R 모델은 특정 DBMS를 고려한 것은 아니다.
(5) E-R 다이어그램으로 표현하며, 1:1, 1:N, N:M 등의 관 계 유형을 제한 없이 나타낼 수 있다.
2. E-R 다이어그램
(1) 사각형 : 개체 타입
(2) 마름모 : 관계 타입
(3) 타원 : 속성
(4) 이중 타원 : 다중값 속성
(5) 밑줄 타원 : 기본키 속성
(6) 복수 타원 : 복합 속성
(7) 관계
(8) 선, 링크 : 개체 타입과 속성을 연결
3. 관계형 데이터 모델
(1) 파일 구조처럼 구성한 테이블들을 하나의 DB로 묶어서 테이블 내에 있는 속성들 간의 관계(Relationship)를 설정하거나 테이블 간의 관계를 설정하여 이용한다.
(2) 기본키(Primary Key)와 이를 참조하는 외래키 (Foreign Key)로 데이터 간의 관계를 표현한다.
(3) 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델 이다.
(4) 관계형 모델의 대표적인 언어는 SQL이다.
(5) 1:1, 1:N, N:M 관계를 자유롭게 표현할 수 있다.
4. 관계형 데이터베이스의 Relation 구조
(1) 튜플(Tuple)
- 튜플은 릴레이션을 구성하는 각각의 행을 말한다.
- 튜플은 속성의 모임으로 구성된다.
- 파일 구조에서 레코드와 같은 의미이다.
- 튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응 수라고 한다.
(2) 속성(Attribute)
- 속성은 데이터베이스를 구성하는 가장 작은 논리적 단 위이다.
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.
- 속성은 개체의 특성을 기술한다.
- 속성의 수를 디그리(Degree) 또는 차수라고 한다.
(3)도메인(Domain)
- 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입 의 원자(Atomic)값들의 집합이다.
- 도메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합 법 여부를 시스템이 검사하는데에도 이용된다.
1. 릴레이션의 특징
(1) 한 릴레이션에는 똑같은 튜플이 포함될 수 없으므로 릴 레이션에 포함된 튜플들은 모두 상이하다.
(2) 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
(3) 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
(4) 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요 하지 않다.
(5) 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하 지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
(6) 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.
(7) 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값 만을 저장한다.
2. 키(Key)
(1) 후보키 (Candidate Key)
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일 하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말함
- 후보키는 릴레이션에 있는 모든 튜플에 대해서 유 일성과 최소성을 만족시켜야 함
(2) 기본키 (Primary Key)
- 후보키 중에서 특별히 선정된 주키(Main Key)로 중 복된 값을 가질 수 없음
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
- 기본키는 NULL 값을 가질 수 없다. 즉 튜플에서 기 본키로 설정된 속성에는 NULL 값이 있어서는 안 됨
(3) 대체키 (Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후 보키를 의미함
- 보조키라고도 함
(4) 슈퍼키 (Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼 키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
- 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
(5) 외래키 (Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성 들의 집합을 의미함
- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본 키인 B가 동일한 도메인 상에서 정의되었을 때의 속 성 A를 외래키라고 함
1. 무결성(Integrity)
(1) 개체 무결성(Entity Integrity, 실체 무결성) : 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정
(2) 도메인 무결성(Domain Integrity, 영역 무결성) : 주어진 속 성 값이 정의된 도메인에 속한 값이어야 한다는 규정
(3) 참조 무결성(Referential Integrity) : 외래키 값은 Null이거 나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉 릴 레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
(4) 사용자 정의 무결성(User-Defined Integrity) : 속성 값들이 사용자가 정의한 제약조건에 만족해야 한다는 규정
2. 관계대수의 개요
(1) 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
(2) 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어로 피연산자가 릴레이션이고, 결 과도 릴레이션이다.
(3) 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순 서를 명시한다.
(4) 관계 데이터베이스에 적용하기 위해 특 별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자가 있다.
(5) 순수 관계 연산자
- Select : 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산
- Project : 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산이 다. 단 연산 결과에 중복이 발생하면 중복이 제거됨
- Join : 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 서 새로운 릴레이션을 만드는 연산
- Division: X⊃Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성 이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제 외한 속성만을 구하는 연산
(6) 일반 집합 연산자
- UNION(합집합) : 두 릴레이션에 존재하 는 튜플의 합집합을 구 하되, 결과로 생성된 릴 레이션에서 중복되는 튜플은 제거되는 연산
- INTERSECTION(교집합) : 두 릴레이션에 존재하 는 튜플의 교집합을 구 하는 연산
- DIFFERENCE(차집합) : 두 릴레이션에 존재하 는 튜플의 차집합을 구 하는 연산
- CARTESIAN PRODUCT(교차곱) : 두 릴레이션에 있는 튜 플들의 순서쌍을 구하 는 연산
1. 관계해석(Relational Calculus)
(1) 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안했다.
(2) 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다.
(3) 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.
(4) 튜플 관계해석과 도메인 관계해석이 있다.
(5) 기본적으로 관계해석과 관계대수는 관계 데이터베이스 를 처리하는 기능과 능력면에서 동등하며, 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.
(6) 질의어로 표현한다.
2. 정규화의 개요
(1) 함수적 종속성 등의 종속성 이론을 이용하여 잘 못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.
(2) 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정이라 할 수 있다.
(3) 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF 형, 제4정규형, 제5정규형이 있으며, 차수가 높아질수 록 만족시켜야 할 제약 조건이 늘어난다.
(4) 정규화는 데이터베이스의 논리적 설계 단계에서 수행 한다.
(5) 정규화는 논리적 처리 및 품질에 큰 영향을 미친다.
(6) 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중 복성, 안정성 등을 보장한다.
3. 정규화의 목적
(1) 데이터 구조의 안정성 및 무결성을 유지한다.
(2) 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가 능하게 만든다.
(3) 효과적인 검색 알고리즘을 생성할 수 있다.
(4) 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화가 가능하다.
(5) 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
(6) 데이터 모형의 단순화가 가능하다.
(7) 속성의 배열 상태 검증이 가능하다.
(8) 개체와 속성의 누락 여부 확인이 가능하다.
(9) 자료 검색과 추출의 효율성을 추구한다.
'정보처리기사 필기 > 3과목' 카테고리의 다른 글
| 3과목 -5 (필기 개념 정리) (0) | 2023.01.26 |
|---|---|
| 3과목 - 4 (필기 개념 정리) (0) | 2023.01.26 |
| 3과목 -3 (필기 개념 정리) (0) | 2023.01.25 |
| 3과목 -2 (필기 개념 정리) (5) | 2023.01.25 |