일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 재택치료
- 아싸의 생일
- 교육봉사
- 뽀모도로 타이머
- 2022 정보처리기사
- 얘들아 잘 지내니
- 플러터
- 스프링 MVC
- AWS
- 수제비 2022
- 다음에 또 만나자
- FLUTTER
- 자가격리
- 다행이야...ㅎ
- N-Queen
- 수제비2022 정리
- 대학생
- 레이튼 교수와 이상한 마을
- 대외활동
- pem키 분실
- 지독한 컨셉충
- 모바일 청첩장
- 생일축하해 나 자신
- 다들 안잊어서
- 개강해짐
- 정보처리기사 2022
- 정보처리기사2022
- 확진
- 교수님 과제 이제 그만..
- CRUDS
- Today
- Total
Rei’s Tech diary
Chapter 3. 논리 데이터베이스 설계 본문
[1] 관계 데이터베이스 모델
#. 관계 데이터 모델
- 실세계 데이터를 행과 열로 구성된테이블 형태로 구성된 데이터 모델.
- 수학자 E.F.Codd 박사가 제안한 모델.
#. 관계 데이터 모델의 구성요소
구성요소 | 설명 |
릴레이션 (Relation) | 행과 열로 구성된 테이블 |
튜플 (Tuple) | 릴레이션의 행에 해당하는 요소 |
속성 (Attribute) | 릴레이션의 열에 해당하는 요소 |
카디널리티 (Cardinality) | 튜플(Tuple)의 수 |
차수 (Degree) | 어트리뷰트(Attribute)의 수 |
스키마 (Schema) | 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스 (Instance) | 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
#. 일반 집합 연산자 (합교차카)
연산자 | 기호 | 표현 | 설명 |
합집합 (Union) |
∪ | R∪S | 합병 가능한 두 릴레이션 R과 S의 집합 |
교집합 (Intersection) |
∩ | R∩S | 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 |
차집합 (Difference) |
ㅡ | RㅡS | R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성 |
카티션 프로덕트 (CARTESIAN Product) |
× | R×S | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 |
#. 순수 관계 연산자 (셀프조디)
연산자 | 기호 | 표현 | 설명 |
셀렉트 (Select) |
σ | σ조건(R) | 릴레이션 R에서 조건을 만족하는 튜플로 반환 |
프로젝트 (Project) |
π | π속성리스트(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인 (Join) |
⋈ | R ⋈ S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전 (Division) |
÷ | R÷S | 릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환 |
#. 관계 해석 논리기호
구분 | 구성요소 | 기호 | 설명 |
연산자 |
OR 연산 | ∨ | 원자식 간 "또는"이라는 관계로 연결 |
AND 연산 | ∧ | 원자식 간 "그리고"라는 관계로 연결 | |
NOT 연산 | ㄱ | 원자식에 대해 부정 | |
정량자 |
전칭 정량자 | ∀ | 모든 가능한 튜플("for all"로 읽음, All의 'A' 뒤집은 형태) |
존재 정량자 | ∃ | 어떤 튜플 하나라도 존재("there exists"로 읽음. exist의 'E' 뒤집은 형태) |
#. 관계 대수와 관계 해석 비교 ★
구분 | 관계 대수 | 관계 해석 |
특징 | 절차적 언어(순서 명시) | 비 절차적 언어, 프레디킷 해석 기반 |
목적 | 어떻게 유도하는가? (HOW) | 무엇을 얻을 것인가?(What) |
종류 | 순수관계 연산자, 일반집합 연산자 | 튜플 관계 해석, 도메인 관계 해석 |
#. 시스템 카탈로그 특징
- 시스템 카탈로그들은 자료사전이라고도 부른다.
- 시스템 카탈로그에 저장된 정보를 메타 데이터라고 부른다.
- 시스템 카탈로그는 테이블로 구성되어 있어 내용 검색이 가능하다.
- INSERT, DELETE, UPDATE 문으로 시스템 카탈로그를 갱신하는 것은 허용되지 않는다.
- 사용자가 SQL 문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.
[2] 데이터 모델링 및 설계
#. 데이터 모델 절차 ★
단계 | 모델 | 설명 |
요구 조건 분석 |
- | ˙ 도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석 |
개념적 설계 |
개념적 데이터 모델 |
˙ 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계 ˙ 개념적 데이터 모델은 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델 ˙ 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려 ˙ 개념적 데이터 모델은 DB 종류와 관계가 없음 ˙ 주요 산출물은 개체관계 다이어그램이 있음 |
논리적 설계 |
논리적 데이터 모델 |
˙ 트랜잭션의 인터페이스를 설계하는 단계 ˙ DBMS에 맞는 논리적 스키마를 설계하는 단계 ˙ 논리적 데이터 모델은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델 ˙ 논리적 설계 단계에서 정규화를 수행 ˙ 논리적 데이터베이스 구조로 매핑 (Mapping) ˙ 관계형 데이터베이스에서는 테이블을 설계하는 단계 |
물리적 설계 |
물리적 데이터 모델 |
˙ 물리적 설계는 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계 ˙ 물리적 데이터 모델은 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환하는 모델 ˙ 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계 ˙ 성능 측면에서 반 정규화를 수행 ˙ 레코드 집중의 분석 및 설계 ˙ 저장 레코드 양식 설계 ˙ 접근 경로 (Access Path) 설계 |
#. 데이터베이스 정규화 목적
- 중복 데이터의 최소화
- 수정, 삭제 시 이상 현상을 최소화하여 데이터 구조의 안정성을 최대화
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현을 가능하게 만듦
- 데이터 삽입 시 릴레이션의 재구성에 대한 필요성 줄임
- 효과적인 검색 알고리즘 생성
#. 이상 현상(Anomaly)
- 이상 현상은 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
#. 이상 현상의 종류
1) 삽입 이상 (Insert Anomaly)
- 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
2) 삭제 이상 (Deletion Anomaly)
- 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나나는 현상
3) 갱신 이상 (Update Anomaly)
- 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보의 모순이 생기는 현상
#. 함수 종속
- 함수 종속은 어떤 릴레이션 R에서 X와 Y를 각각 R의 어트리뷰트 집합의 부분 집합이라고 할 경우 어트리뷰트 X의 값 각각에 대해 시간과 관계없이 항상 어트리뷰트 Y의 값이 오직 하나만 연관되어 있는 관계이다.
- 함수 종속의 표기는 X → Y로 한다.
#. 데이터베이스 정규화 단계 ★ (원부이 결다조)
단계 | 조건 |
1정규형(1NF) | 원자값으로 구성 |
2정규형(2NF) | 부분 함수 종속 제거(완전 함수적 종속 관계) |
3정규형(3NF) | 이행 함수 종속 제거 |
보이스-코드 정규형(BCNF) | 결정자가 후보 키가 아닌 함수 종속 제거 |
4정규형(4NF) | 다치(다중 값) 종속성 제거 |
5정규형(5NF) | 조인 종속성 제거 |
'정보처리기사 > [3] 데이터베이스 구축' 카테고리의 다른 글
Chapter 5. 데이터 전환 (0) | 2022.03.20 |
---|---|
Chapter 4. 물리 데이터베이스 설계 (0) | 2022.03.20 |
Chapter 2. SQL 활용 (2) | 2022.03.15 |
Chapter 1. SQL 응용 (0) | 2022.03.14 |