제3과목 데이터베이스 구축
▷ 논리 데이터베이스 설계 C
> 관계형 데이터 모델
- 관계형 데이터 모델(Relational Data Model)의 개요 : table형태로 데이터의 상호관계 표현, 기본키, 외래키, 일대일, 일대다, 다대다
- 관계형 데이터 모델의 구성
> 관계형 데이터베이스의 구조
- 관계형 데이터베이스의 개요 : table형태, 간결해서 보기편함, 성능↓
- 관계형 데이터베이스의 Relation 구조
튜플(행) : cardinality, 카디날리티, 기수
속성(열) : DB를 구성하는 가장작은 논리적인 단위, 항목, 필드, 개체의 특성을 나타냄, 속성을 갯수(degree, 디그리, 차수)
도메인 : 속성(attribute)이 취할 수 있는 값
- 릴레이션의 특징 : 관계형 구조 전체, 튜플은 모두 상이함(중복x), 튜플과 속성의 순서는 무의미, 속성의 값은 원자값(더이상 쪼갤수 없는)으로 구성, 속성의 명칭은 유일, 값은 중복가능, 속성의 한 부분을 키(key)로 저장
> 관계형 데이터베이스의 제약조건 - 키(key)
- 키(key)의 개념 : 튜플을 찾을 때(행)
후보키(Candidate Key) : 유일하게 식별, 유일성, 최소성
기본키(Primary Key) : 후보키중 1개 선택
대체키(Alternate Key) : 기본키를 제외한 나머지
슈퍼키(Super Key) : 튜플에서 유일하게 구분하는 키들, 유일성만 만족, 최소성 만족x
외래키(Foreign Key) : 다른 table의 기본키를 참조하는 키, 중복가능
> 관계형 데이터베이스의 제약 조건 - 무결성
- 무결성(Integrity)의 개념 : 정확성, DB값과 현실데이터가 일치하는 현상
- 개체 무결성(Entity Integrity, 실체 무결성) : 기본키는 중복x, Null값x, 테이블의 기본키를 참조하는데 문제가 없어야함
- 도메인 무결성(Domain Integrity, 영역 무결성) : 속성값에 정의된 값, 특정필드의 데이터영역에 문제가 없어야함
- 참조 무결성(Referential Integrity) : 외래키, 다른 table(릴레이션)의 기본키를 가리킴, 참조가능한 키만 가능, Null값o
- 사용자 정의 무결성 : 사용자 정의 제약조건
- 데이터 무결성 강화
애플리케이션(생성, 수정, 삭제, 무결성 검증 데이터 조건 추가), 데이터베이스 트리거(트리거 이벤트, 절차형 SQL), 제약조건(설정)
▷ 논리 데이터베이스 설계 D
> 관계대수 및 관계해석
- 셀렉트(Select, σ) : 속성(필드)은 변하지않고 튜플(레코드)만 변함, 수평연산
㉠ 릴레이션에서 조건에 만족하는 튜플 검색
㉡ σ조건식(릴레이션)
㉢ σ점수 ≥ 90(학생) -> 학생 릴레이션에서 점수가 90 이상인 튜플 검색
㉣ σ등급 = gold(고객) -> 고객 릴레이션에서 등급이 gold인 튜플 검색
- 프로젝트(Project, π) : 튜플은 변하지않고 속성만 변함, 수직연산
㉠ 릴레이션에서 주어진 속성들의 값으로만 구성된 열 선택
㉡ π(속성리스트)(릴레이션)
㉢ π(과목, 점수)(학생) -> 학생 릴레이션에서 과목, 점수 검색
㉣ π(고객이름, 등급, 적립금)(고객) -> 고객 릴레이션에서 고객이름, 등급, 적립금 검색
㉤ π(고객이름, 나이(σ등급=gold(고객) -> 고객 릴레이션에서 '등급이 gold'인 고객이름, 나이 검색
- 조인(Join, ▷◁) : 공통속성을 기준으로 두 릴래이션이 합쳐저 새로운 릴래이션 생성
㉠ 공통속성을 이용하여 2개 이상의 릴레이션 연결, 새로운 릴레이션 생성
㉡ 릴레이션1 ▷◁ n릴레이션2
㉢ 사원 ▷◁(부서=부서)인사
- 디비전(Division, ÷)
㉠ B릴레이션의 모든 조건을 만족하는 튜플을 A릴레이션에서 구하는 연산
㉡ 릴레이션1 ÷ 릴레이션2
㉢ 고객 ÷ 골드 -> 고객 릴레이션에서 등급이 gold인 행을 찾고 등급속성을 제외한 속성 나열
㉣ 주문내역 ÷ 제품
㉤ 주문내역 ÷ 제조
연산자 | 예시 | 기능 | 기수 |
합집합 | R1 ∪ R2 | 중복되는 튜플 제거 | 두 릴레이션 기수 합 이하 |
교집합 | R1 ∩ R2 | R1과 R2가 동시 존재 | 두 릴레이션 기수 중 적은 기수 이하 |
차집합 | R1 - R2 | R1에서, R2와 동시에 존재하는 튜플 제거 | R1 기수 이하 |
교차곱 | R1 x R2 | 튜플들의 순서쌍 출력 | R1과 R2의 기수를 곱한것과 같음 |
> 관계대수 및 관계해석
- 관계해석(Relation Calculus) : 어떻게가 아닌 무엇을 검색할 것인가, 술어해석 기반, 비절차적 방식
튜플 관계해석, 도메인 관계해석
관계대수(절차적언어) vs 관계해석(비절차적)
> 정규화(Normalization) : 분리
- 정규화의 개요 : 삽입이상, 삭제이상, 갱신이상 / 의도와 다른 기능
정규화의 개념 및 특성 : 논리 데이터 모델링 상세화 단계, 단계 중 가장 중요, 품질보장, 성능향상 - 저장공간 최소화, 무결성 유지 극대화, 안정성 최대화(관계의 정확, 데이터일치, 모델의 단순, 비중복)
제이상현상제거(삽입이상, 갱신이상, 삭제이상), 품질&성능(저장공간 최소화, 무결성 유지 극대화, 안정성 극대화), 안정성(관계의 정확성, 데이터 일치성, 모델의 단순성, 속성의 비중복성)
데이터 종속성
함수적 종속(대표적) : A속성이 B속성을 유일하게 식별 : B는 A에 종속됨(A->B)
다치종속(Multi-Valued Dependency) : 둘 이상의 같은 원자값이 종속 됨
결정자/종속자
결정자 : 기준이 되는값, 스스로 정해짐
종속자 : 결정자에 의해 정해지는 값
결정자 X는 반드시 Y와 연결됨(함수적 종속)
이행종속 : 직간접 종속이 한 개체에서 이루어짐(X->Y->Z : x, y는 직접 종속관계, x, z는 간접 종속관계)
- 정규화 과정 도부이결다조
완전함수종속
1차 정규화 | 2차 정규화 | 3차 정규화 | 4차 정규화 |
반복 그룹 제거 | 부분 함수적 종속성 제거 | 이행적 종속성 제거 | 다치 종속 제거 |
> 반정규화(Denormalization) <-->정규화
- 반정규화의 개념 : 정규화를 통합하는것, 성능↑, 관리 ↑, 일관성↓
- 테이블 통합 : 1:1(슈퍼타입, 상위개체), 1:N(서브타입, 하위개체) / 검색간편, 처리양증가, 입력, 수정, 삭제시 복잡, Null값x, Default , check
- 테이블 분할 : 수평분할, 수직분할
- 중복 테이블 추가 : 수행속도가 느릴때, 자주 처리하는 데이터, 특정범위 데이터, 속도계산 불가할때 추가해서 보완 / 집계테이블, 진행테이블, 특정부붐 포함 테이블
- 중복 속성 추가 : 경로단축, 빈번하거나 복잡한 경우, 기본키가 여러개의 속성으로 구성된 경우 / 일관성, 무결성, 저장공간 낭비 고려
> 시스템 카탈로그
- 시스템 카탈로그(System Catalog) : DBMS가 스스로 생성, 유지하는 DB테이블 집합체, 자료사전에 메타데이터로 저장, 사용자 검색가능, 사용자 수정불가능
논리데이터 모델 품질 검증
- 완전성(Completeness) : 업무에 필요한 모든 데이터가 정의됨, 가장 우선적
- 중복배제(Non-Redundancy)와 데이터 재사용(Data Reusability) : 동일한 사실은 한번만 기록
- 업무규칙(Business Rules)과 의사소통(Communication) : 업무규칙을 데이터 모델에 반영, 데이터 모델을 통한 업무 규칙 파악
- 통합성(Integration) : 업무별 단위 정보 시스템은 전체 관점에서 동일 데이터가 존재함(품질 하락), 데이터 아키텍처를 통해 여러 업무에서 사용될 공유 데이터 구조 제작 필요
- 간결성(Elegance) : 사용, 관리가 복잡하지 않은 데이터 모델, 간결함은 확정성에도 영향
- 안정성 및 확장성(Stability and Flexibility) : 업무변화에 따른 데이터 구조 변화에 대한 안정성 확보, 주체와 대상, 행위 자체에 대한 통합으로 확장성 확보
데이터모델 품질 검증
- 정확성 : 데이터 모델이 표기법에 따라 정확하게 표현됨, 업무 영역 또는 요구사항이 정확하게 반영되었음
- 완전성 : 누락을 최소화하고, 요구사항 및 업무 영역 반영에 있어서 누락이 없음
- 준거성 : 데이터 표준화, 규칙 준수, 법적 이행 준수
- 최신성 : 시스템의 최신상태를 반영하고 있고, 이슈 사항들이 지체없이 반영
- 일관성 : 공통 사용되는 데이터 요소가 전사 수준에서 한번만 정의
- 활용성 : 의미전달, 업무 변화시에 설계 변경이 최소화되도록 유연하게 설계
'정보처리기사 > [inflearn] 필기 (완)' 카테고리의 다른 글
정보처리기사 - 제3과목 데이터베이스 구축 / 물리 데이터베이스 설계(2) (0) | 2022.04.03 |
---|---|
정보처리기사 - 제3과목 데이터베이스 구축 / 물리 데이터베이스 설계(1) (0) | 2022.04.03 |
정보처리기사 - 제3과목 데이터베이스 구축 / 논리 데이터베이스 설계(1) (0) | 2022.03.31 |
정보처리기사 - 제2과목 소프트웨어 개발 / 인터페이스 구현 (0) | 2022.03.31 |
정보처리기사 - 제2과목 소프트웨어 개발 / 애플리케이션 테스트 관리 (2) (0) | 2022.03.31 |