😄 제가 대학원 준비과정에서 정리했던 컴퓨터공학과 기본 과목을 공유합니다!
📬 댓글로 이메일 남겨주시면 한글 파일 보내드리겠습니다!
데이터베이스와 파일 시스템을 비교했을 때 가지는 장점은 무결성(Integrity)이다. 데이터의 정확성과 일관성, 유효성이 유지되기 때문에 여러 사용자가 데이터베이스의 데이터를 공유할 수 있는 장점을 가질 수 있다.
데이터베이스의 구조를 전반적으로 기술한 것
(데이터 레코드의 크기, 키의 정의, 레코드 간의 관계 등)
DBMS는 외부 스키마의 requirements를 개념 스키마 형태로 변환
이를 다시 내부 스키마 형태로 변환
1) External schema (외부 스키마)
User 입장에서 정의한 데이터베이스의 논리적 구조
사용자에게 보여줄 데이터의 형식, 구조, 화면의 명세
2) Conceptual schema (개념 스키마)
데이터베이스의 전체적인 논리적 구조
DB에 대한 모든 논리적 구조를 기술
3) Internal schema (내부 스키마)
물리적 저장 장치 입장에서 정의한 데이터베이스 구조
물리적인 저장 장치와 데이터베이스 간의 관계를 정의
두 개 이상의 Table이나 DB를 연결해 데이터를 검색하는 방법
최소 하나의 공유하는 칼럼을 이용하여 데이터 검색에 활용
1) INNER JOIN
A 테이블과 B 테이블의 중복된 값
2) LEFT OUTER JOIN
L 테이블의 값 + R 테이블과 L 테이블의 중복된 값
3) RIGHT OUTER JOIN
R 테이블의 값 + L 테이블과 R 테이블의 중복된 값
4) FULL OUTER JOIN
A 테이블의 값 + B 테이블의 값
5) CROSS JOIN
Cartesian Product
기준 테이블의 한 ROW를 목표 테이블 전체와 JOIN
결과값은 N*M
6) SELF JOIN
자기 자신과 자기 자신을 JOIN
데이터베이스 상태를 변화시키는 작업 단위
- 원자성(Atomicity)
트랜잭션이 DB에 모두 반영되거나 혹은 전혀 반영되지 않음- 일관성(Consistency)
트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다.- 독립성(Isolation)
어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.- 지속성(Durability)
완료된 트랜잭션 결과는 영구적으로 반영
한 릴레이션에 여러 엔티티의 애트리뷰트들을 혼합하면 중복된 정보로 인한 갱신 이상(Anomaly) 발생
정규화는 이를 해결하는 과정 (최종적으로 BCNF, 3NF 형태)
- Data Inconsistency
데이터 중복으로 인해 발생하는 문제
A와 B에서 같은 데이터를 참조하는데 다른 데이터가 도출
1) 갱신 이상
- 삽입 이상 (insertion anomalies)
원하지 않는 자료 삽입
자료 부족으로 인한 삽입 실패
- 삭제 이상 (deletion anomalies)
의도와 상관없는 값이 삭제되어 정보 손실
- 수정 이상 (modification anomalies)
정확하지 않거나 일부의 튜플만 갱신
2) 정규화 정의
관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화하는 작업 (하나의 종속성이 하나의 릴레이션으로 표현되도록 분리)
애트리뷰트 간에 함수적 종속성(Functional Dependency)
3) 함수적 종속성
애트리뷰트 데이터들의 의미와
애트리뷰트 간의 상호 관계로부터 유도되는 제약조건
4) 정규화 장점
이상 현상(Anomaly) 제거
데이터베이스 구조 확장 시 redesign 최소화
사용자에게 데이터 모델을 더욱 의미가 있게 제공
5) 정규화 단점
릴레이션 간의 JOIN 연산 증가
1) 제 1 정규형 (1NF)
모든 도메인이 오직 원자값으로만 구성하는 형태
2) 제 2 정규형 (2NF)
키가 아닌 모든 속성이 PK에 대해 완전 함수적 종속
3) 제 3 정규형 (3NF)
키가 아닌 모든 속성이 PK에 대해 이행적 종속 관계가 아님
4) BCNF(Boyce-Codd) 정규형
여러 후보키가 존재하는 릴레이션에 해당하는 정규화
모든 결정자가 키가 되도록 릴레이션 분해
SQL에서 많은 JOIN으로 성능저하가 나타날 때 반정규화 적용
정규화된 엔티티, 속성, 관계를 시스템의 성능 향상 및 개발과 운영의 단순화를 위해 중복 통합, 분리 등을 수행하는 데이터 모델링 기법
안녕하세요 대학원 면접 중비중입니다.
파일 보내주시면 정말 감사하겠습니다.
roosm@naver.com