토픽 211 / 224·비교표
데이터베이스 기초 및 모델링
파일시스템 vs 데이터베이스
| 항목 | 파일시스템 | 데이터베이스 |
|---|
| 데이터 종속성 | 프로그램 종속 | 데이터 독립 |
| 데이터 중복 | 중복 허용 | 통합 관리, 중복 최소화 |
| 일관성 | 불일치 발생 가능 | 무결성 제약으로 일관성 보장 |
| 동시 접근 | 제한적 | DBMS가 동시성 제어 |
| 보안 | 파일 단위 OS 권한 | 세분화된 접근 제어(DCL) |
상용 DBMS vs 오픈소스 DBMS
| 항목 | 상용 DBMS | 오픈소스 DBMS |
|---|
| 대표 제품 | Oracle, SQL Server | MySQL, PostgreSQL |
| 비용 | 라이선스 비용 높음 | 무료 또는 저비용 |
| 기술지원 | 벤더 공식 지원 | 커뮤니티 기반 지원 |
| 적합 환경 | 대규모 엔터프라이즈 | 스타트업, 웹 서비스 |
스키마 vs 인스턴스
| 항목 | 스키마 | 인스턴스 |
|---|
| 정의 | 데이터 구조 정의 | 특정 시점의 실제 데이터 |
| 특성 | 정적(시간 불변) | 동적(시간에 따라 변화) |
| 저장 | 데이터 사전(DD) | 데이터베이스 내 |
| 정의 방법 | DDL로 정의 | DML로 조작 |
논리적 독립성 vs 물리적 독립성
| 항목 | 논리적 데이터 독립성 | 물리적 데이터 독립성 |
|---|
| 변경 대상 | 개념 스키마 변경 | 내부 스키마 변경 |
| 영향 차단 | 외부 스키마/응용 무영향 | 개념 스키마 무영향 |
| 매핑 | 외부/개념 매핑 | 개념/내부 매핑 |
| 구현 난이도 | 어려움 | 비교적 용이 |
관계형 vs 문서형 vs 그래프 데이터 모델
| 항목 | 관계형 | 문서형 | 그래프 |
|---|
| 구조 | 테이블(행/열) | JSON/BSON 문서 | 노드/엣지 |
| 쿼리 언어 | SQL | MQL 등 | Cypher, Gremlin |
| 스키마 | 고정 스키마 | 유연(Schema-less) | 유연 |
| 강점 | 조인, 무결성 | 중첩 데이터, 유연성 | 관계 탐색 |
관계형 vs 계층형 vs 네트워크 모델
| 항목 | 관계형 | 계층형 | 네트워크 |
|---|
| 구조 | 테이블(2차원) | 트리(부모-자식) | 그래프(CODASYL) |
| 유연성 | 높음 | 경직적 | 복잡 |
| 쿼리 | SQL | 포인터 탐색 | 포인터 탐색 |
관계형 vs 객체관계형 vs 객체지향 모델
| 항목 | 관계형 | 객체관계형 | 객체지향 |
|---|
| 데이터 단위 | 테이블/행 | 테이블+UDT | 객체 |
| 상속 | 미지원 | 타입 상속 | 클래스 상속 |
| 참조 | FK 조인 | REF 포인터 | OID 참조 |
| 쿼리 | SQL | 확장 SQL | OQL |
개념적 vs 논리적 vs 물리적 모델링
| 항목 | 개념적 모델링 | 논리적 모델링 | 물리적 모델링 |
|---|
| 관점 | 업무 관점, 추상화 | 업무 규칙, 정규화 | 성능, DBMS 종속 |
| DBMS 의존 | 독립적 | 독립적 | 종속적 |
| 주요 활동 | ERD 작성 | 정규화, 키 정의 | 인덱스, 파티셔닝 |
| 산출물 | ERD, 엔터티 정의서 | 논리 ERD, 테이블 정의서 | 물리 ERD, DDL 스크립트 |
ERD 표기법: 피터첸 vs IE vs 바커
| 항목 | 피터첸(Chen) | IE(Crow's Foot) | 바커(Barker) |
|---|
| 용도 | 학술적 | 실무 표준 | Oracle 방식 |
| 카디널리티 | 숫자 표기 | 까마귀발 표기, 명확 | 막대/원 표기 |
| 특징 | 엔터티(□), 관계(◇) | 직관적, 실무 활용 | Oracle 표준 |
기본엔터티 vs 중심엔터티 vs 행위엔터티
| 항목 | 기본 엔터티 | 중심 엔터티 | 행위 엔터티 |
|---|
| 성격 | 원천/독립 | 업무 핵심 | 이력/발생 |
| 데이터 양 | 적음 | 중간 | 다수 |
| 예시 | 고객, 부서 | 주문, 계좌 | 주문이력, 거래내역 |
기본속성 vs 설계속성 vs 파생속성
| 항목 | 기본속성 | 설계속성 | 파생속성 |
|---|
| 도출 방법 | 업무분석에서 도출 | 시스템 설계 시 부여 | 다른 속성에서 계산 |
| 예시 | 고객명, 주문일자 | 코드, 일련번호 | 합계, 평균 |
식별관계 vs 비식별관계
| 항목 | 식별관계 | 비식별관계 |
|---|
| 결합 강도 | 강한 결합 | 약한 결합 |
| 부모 PK 위치 | 자식 PK에 포함 | 자식 일반 속성(FK) |
| 표기 | 실선 | 점선 |
| 자식 독립성 | 부모 없이 존재 불가 | 부모 없이 존재 가능 |
본질식별자 vs 인조식별자
| 항목 | 본질식별자(Natural) | 인조식별자(Surrogate) |
|---|
| 생성 | 업무적 의미 있는 속성 | 시스템이 자동 생성 |
| 변경 가능성 | 변경 가능 | 불변 |
| 예시 | 주민번호, 계좌번호 | 고객번호(시퀀스) |
슈퍼/서브타입 변환: 1:1 vs Plus vs Single
| 항목 | 1:1(개별 테이블) | Plus(슈퍼+서브) | Single(통합) |
|---|
| 테이블 수 | 슈퍼 1 + 서브 N개 | 서브타입 수만큼 | 1개 |
| 정규화 | 유지 | 슈퍼 컬럼 중복 | 위반(NULL 다수) |
| 조인 | 슈퍼-서브 조인 필요 | 불필요 | 불필요 |
| 전체 조회 | UNION 또는 조인 | UNION 필요 | 단순 SELECT |
관계형 vs 객체관계형 vs 객체지향
| 구분 | 관계형 | 객체관계형 | 객체지향 |
|---|
| 데이터 단위 | 테이블/행 | 테이블+UDT | 객체 |
| 상속 | 미지원 | 타입 상속 | 클래스 상속 |
| 참조 | FK 조인 | REF 포인터 | OID 참조 |
| 쿼리 | SQL | 확장 SQL | OQL |
| 제품 | MySQL, PG | Oracle, PostgreSQL | ObjectDB |