2020 기출 ' '
2021 기출 ' '
수제비 데일리 ' '
관계 데이터베이스 모델
(1) 관계 데이터 모델(Relation Data Model)
- 실세계 데이터를 행과 열로 구성된 테이블 형태로 구성된 데이터 모델이다.
- 수학자 E.F.Codd 박사가 제안한 모델이다.
관계 데이터 모델의 구성 (튜로카 / 애열차)
구성요소 | 설명 |
릴레이션 | 행(Row)와 열(Column)로 구성된 테이블 |
튜플(Tuple) | 릴레이션의 행(Row)에 해당되는 요소 |
속성(Attribute) | 릴레이션 열(Column)에 해당되는 요소 |
카디널리티(Cardinality) | 튜플(Row)의 수 |
차수(Degree) | 애트리뷰트(Column)의 수 |
스키마(Schema) | 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스(Instance) | 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
(2) 관계 데이터 언어
관계 대수
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하고, 관계로 표현된 데이터를 취급하는 대수적인 연산 체계이자 절차적 정형 언어이다.
일반 집합 연산자
연산자 | 기호 | 표현 | 설명 |
합집합 (Union) |
∪ | R∪S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합 (Intersection) |
∩ | R∩S | 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 |
차집합 (Difference) |
− | R−S | R에 존재하고 S에 미존재하는 튜플로 결과 릴레이션 구성 |
카디션 프로덕트 (CARTESIAN Product) |
× | R×S | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 |
순수 관계 연산자
연산자 | 기호 | 표현 | 설명 |
셀렉트 (Select) |
σ | ![]() |
릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝트 (Project) |
π | ![]() |
릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인 (Join) |
⋈ | R⋈S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전 (Division) |
÷ | R÷S | 릴레이션 S의 모든 튜플과 관련 있는 R의 XBVMF QKSGHKS |
관계 해석
- 관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.
- 프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)이다.
관계 해석 논리 기호
구분 | 구성요소 | 기호 | 설명 |
연산자 | OR 연산 | ∨ | 원자식 간 "또는"이라는 관계로 연결 |
AND 연산 | ∧ | 원자식 간 "그리고"라는 관계로 연결 | |
NOT 연산 | ㄱ | 원자식에 대해 부정 | |
정량자 | 전칭 정량자 (Universal Quantifier) |
∀ | 모든 가능한 튜플("for all"로 읽음, All의 'A'를 뒤집어 놓은 형태) |
존재 정량자 (Existential Quantifier) |
ꓱ | 어떤 튜플 하나라도 존재("there exists"로 읽음, exists의 'E'를 뒤집어 놓은 형태) |
관계 대수와 관계 해석 비교
관계 대수와 관계 해석 비교
구분 | 관계 대수 | 관계 해석 |
특징 | 절차적 언어(순서 명시) | 비 절차적 언어(계산 수식의 유연적 사용), 프레디킷 해석(Predicate Calculus) 기반 |
목적 | 어떻게 유도하는가?(How) | 무엇을 얻을 것인가?(What) |
종류 | 순수관계 연산자, 일반집합 연산자 | 튜플 관계 해석, 도메인 관계 해석 |
(3) 시스템 카탈로그
- DDL 실행으로 생성되는 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
- 자료 사전이라고도 부른다.
- 시스템 카탈로그에 저장된 정보를 메타 데이터(Metadata)라고 부른다.
- 시스템 카탈로그는 DBMS가 스스로 생성하고 유지한다.
- 시스템 자신이 필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
데이터 모델링 및 설계
(1) 데이터 모델(Data Model)
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.
데이터 모델 절차
절차 | 설명 |
개념적 데이터 모델 | 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델 개체관계 다이어그램 |
논리적 데이터 모델 | 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델 정규화 |
물리적 데이터 모델 | 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 모델 반정규화 |
(2) 개체-관계(E-R) 모델
개체-관계 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델이다.
개체-관계(E-R) 모델 구성요소
개체(Entity) / 속성(Attribute) / 관계(Relationship)
개체-관계(E-R) 다이어그램 기호
구성 | 기호 |
개체 | □ (사각형) |
관계 | ◇ (마름모) |
속성 | ○ (타원) |
다중 값 속성 | ◎ (이중타원) |
관계-속성 연결 | ㅡ (선) |
(3) 논리적 데이터 모델링
논리적 데이터 모델링은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스이다.
논리적 데이터 모델링 종류
종류 | 설명 |
관계 데이터 모델 | 논리적 구조가 2차원 테이블 형태로 구현된 모델 기본 키(PK)와 이를 참조하는 외래 키(FK)로 관계 표현 1:1, 1:N, N:M 관계를 자유롭게 표현 |
계층 데이터 모델 | 논리적 구조가 트리 형태로 구성된 모델 상하관계 존재 1:N 관계만 허용 |
네트워크 데이터 모델 | 논리적 구조가 그래프 형태로 구성된 모델 CODASYL DBTG 모델이라고 불림 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조 |
(4) 데이터베이스 정규화(DB Normalization)
관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.
데이터베이스 정규화 목적
- 중복 데이터를 최소화하여 테이블 불일치 위험을 최소화한다.
- 수정, 삭제 시 이상 현상을 최소화함으로써 데이터 구조의 안정성을 최대화한다.
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현을 가능하게 만든다.
- 데이터 삽입 시 릴레이션의 재구성에 대한 필요성을 줄인다.
- 효과적인 검색 알고리즘을 생성할 수 있다.
이상 현상(Anomaly)의 종류
삽입 이상 / 삭제 이상 / 갱신 이상
데이터베이스 정규화 단계
단계 | 조건 |
1정규형(1NF) | 원자 값으로 구성 |
2정규형(2NF) | 부분 함수 종속 제거(완전 함수적 종속 관계) |
3정규형(3NF) | 이행 함수 종속 제거 *이행 함수 : X→Y이고 Y→Z이면, X→Z이다. |
보이스-코드 정규형(BCNF) | 결정자가 후보 키가 아닌 함수 종속 제거 |
4정규형(4NF) | 다치(다중 값) 종속성 제거 |
5정규형(5NF) | 조인 종속성 제거 |
(5) 논리 데이터 모델 품질 검증
데이터 모델이 업무 환경에서 요구하는 사항을 시스템적으로 구현할 수 있는가를 객관적으로 평가하는 검증이다.
데이터 모델 요건
완전성 / 중복 배제 / 비즈니스 룰 / 데이터 재사용 / 안정성 및 확장성 / 간결성 / 의사소통 / 통합성
데이터 모델 품질 검증 기준
정확성 / 완전성 / 준거성 / 최신성 / 일관성 / 활용성
'정보처리기사 필기 > 데이터베이스 구축' 카테고리의 다른 글
3-5. 데이터 전환 (0) | 2021.08.07 |
---|---|
3-4. 물리 데이터베이스 설계 (0) | 2021.08.06 |
3-2. SQL 활용 (0) | 2021.08.04 |
3-1. SQL 응용 (0) | 2021.08.01 |
댓글