데이터베이스 구축 과목에서 논리 데이터베이스 설계와 물리 데이터베이스 설계에 대한 학습 진행
관계 데이터베이스 모델
데이터를 행과 열로 구성된 테이블 형태로 표현하고, 릴레이션·튜플·속성·도메인 등 관계 데이터베이스의 기본 구성 요소 이해
관계 데이터베이스 제약조건
데이터의 정확성과 일관성을 유지하기 위해 개체 무결성, 참조 무결성, 도메인 무결성 등의 제약조건 적용
관계 대수
셀렉션, 프로젝션, 조인, 합집합, 교집합, 차집합 등의 연산을 활용하여 관계형 데이터에서 필요한 정보 추출
데이터 모델링
현실 세계의 업무와 데이터를 개체, 속성, 관계로 분석하여 데이터베이스 구조로 표현
개념적 데이터 모델링
사용자의 요구사항을 바탕으로 주요 개체와 관계를 정의하고 ER 다이어그램을 통해 전체 데이터 구조 표현
논리적 데이터 모델링
개념적 데이터 모델을 관계형 데이터베이스 구조로 변환하고 테이블, 속성, 기본키 및 외래키 설계
정규화
데이터의 중복을 줄이고 삽입·삭제·갱신 이상 현상을 방지하기 위해 테이블을 적절한 구조로 분해
물리 요소 조사 및 분석
데이터의 양, 처리 빈도, 조회 조건, 저장 공간, 응답 시간 등 실제 데이터베이스 운영 환경과 성능 요구사항 분석
데이터 저장 구조 설계
테이블과 인덱스가 저장될 공간을 구성하고 데이터의 특성에 따라 적절한 저장 방식과 접근 경로 결정
DB 물리 속성 설계
컬럼의 데이터 타입과 길이, 기본값, NULL 허용 여부 등 실제 데이터베이스에 적용할 세부 속성 정의
인덱스 설계
검색과 정렬 속도를 향상하기 위해 조회 빈도와 선택도가 높은 컬럼을 기준으로 인덱스 구성
파티션 설계
대용량 테이블을 범위, 목록, 해시 등의 기준으로 분할하여 데이터 관리와 조회 성능 개선
데이터베이스 무결성
데이터가 정해진 규칙과 관계를 유지하도록 제약조건을 설정하여 잘못된 데이터의 입력과 변경 방지
후보키와 기본키
튜플을 유일하게 식별할 수 있는 후보키 중 대표 키를 기본키로 선정하고 중복값과 NULL 입력 제한
대체키와 슈퍼키
기본키로 선택되지 않은 후보키를 대체키로 구분하고, 튜플을 식별할 수 있는 속성의 집합을 슈퍼키로 이해
외래키
다른 테이블의 기본키를 참조하여 테이블 사이의 관계를 표현하고 참조 무결성 유지
DB 반정규화
조회 성능을 향상하기 위해 정규화된 테이블을 의도적으로 통합하거나 중복 데이터를 추가하는 방법 학습
테이블 반정규화
빈번한 조인으로 성능이 저하되는 경우 테이블 병합, 분할 또는 중복 테이블 추가를 통해 조회 과정 단순화
컬럼 반정규화
자주 계산하거나 조회하는 값을 중복 컬럼 또는 파생 컬럼으로 저장하여 반복 연산과 조인 횟수 감소
관계 반정규화
테이블 간 접근 경로를 단축하기 위해 중복 관계를 추가하거나 필요한 외래키를 여러 위치에 배치
반정규화 적용 시 고려사항
조회 성능은 높일 수 있지만 데이터 중복과 갱신 비용이 증가하므로 정합성 유지 방안과 적용 효과를 함께 검토
코딩테스트 문제 풀이를 진행 <완전탐색·백트래킹> 유형
완전탐색 기본 구조
가능한 모든 경우를 빠짐없이 확인하여 문제의 조건을 만족하는 정답 탐색
반복문 완전탐색
탐색 범위가 작고 선택 단계가 정해진 문제에서 중첩 반복문을 활용하여 모든 조합 확인
재귀 완전탐색
선택 과정을 재귀 함수로 표현하고 현재 단계에서 가능한 모든 선택지를 차례대로 탐색
순열 탐색
서로 다른 원소의 배치 순서를 모두 생성하여 순서에 따라 결과가 달라지는 문제 해결
조합 탐색
원소의 순서를 고려하지 않고 정해진 개수만큼 선택하는 모든 경우 확인
부분집합 탐색
각 원소를 선택하는 경우와 선택하지 않는 경우로 나누어 가능한 모든 부분집합 생성
비트마스크 완전탐색
각 원소의 선택 여부를 이진수의 비트로 표현하여 부분집합과 상태 조합을 효율적으로 순회
백트래킹 기본 구조
가능한 선택을 진행하다가 조건을 만족할 수 없는 상태가 되면 이전 단계로 돌아가 다른 선택 탐색
가지치기
현재까지의 선택만으로 정답이 될 가능성이 없거나 기존 최적값보다 불리한 경우 이후 탐색 중단
방문 배열 활용
순열, 경로, 그래프 문제에서 이미 선택하거나 방문한 원소를 표시하여 중복 선택 방지
N과 M 유형
숫자의 선택 순서와 중복 허용 여부에 따라 순열·조합·중복 순열·중복 조합 생성
N-Queen 유형
같은 행, 열, 대각선에 퀸을 배치할 수 없다는 조건을 검사하며 가능한 배치 탐색
스도쿠 유형
빈칸에 들어갈 수 있는 숫자를 행, 열, 구역 조건에 따라 확인하고 불가능한 경우 이전 선택으로 복귀
연산자 끼워 넣기
주어진 숫자 사이에 연산자를 배치하는 모든 경우를 탐색하여 결과의 최댓값과 최솟값 계산
부분 수열의 합
각 숫자의 선택 여부를 결정하며 목표값을 만드는 부분 수열의 개수나 존재 여부 확인
경로 탐색
현재 위치에서 이동 가능한 모든 방향을 확인하고 방문 처리와 복구를 반복하며 목적지까지의 경로 탐색
최적해 탐색
모든 후보를 비교하되 현재 결과와 남은 선택을 이용하여 더 나은 결과가 나올 수 없는 경우 탐색 중단