# 60-데이터베이스 설계
데이터베이스 설계 순서
1. 요구 조건 분석 - 요구 조건 명세서 작성
2. 개념적 설계 - 개념 스키마, 트랜잭션 모델링, E-R모델
3. 논리적 설계 - 종속적 논리 스키마 설계(독립 아님), 트랜잭션 인터페이스 설계
- 논리적 데베 구조로 매핑
- 스키마의 평가 및 정제
4. 물리적 설계 - 물리적 구조의 데이터로 변환
- 데베 파일의 저장 구조 및 액세스 결로 결정
- 저장 레코드의 양식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보 사용하여 데이터가 컴퓨터에 저장되는 방법 묘사
- 고려사항: 트랜잭션 처리량, 응답시간, 디스크 용량, 저장공간의 효율화
5. 구현 - 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 트랜잭션 작성
# 63-관계형 데이터베이스의 구조

릴레이션=표
릴레이션 스키마: 릴레이션의 논리적인 구조를 정의
릴레이션 인스턴스: 속성들의 값
튜플: 튜플의 수=카디널리티=기수=대응수, 각각의 행
속성(애트리뷰트): 속성의 수=디그리=차수
도메인: 하나의 애트리뷰트가 취할 수 있는 원자들의 집합
# 64-관계형 데이터베이스의 제약조건-키(key)

- 유일성: 키 값으로 하나의 튜플만 유일하게 식별할 수 있어야함
- 최소성: 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성만으로 구성되야함
슈퍼키(Super Key)
- 속성들의 집합으로 구성된 키
- 유일성
후보키(Candidate Key)
- 튜플을 유일하게 구별해 주는 속성 또는 속성들의 조합
- 기본키로 사용할 수 있는는 속성
- 유일성/최소성
기본키(Primary Key)
- 특정 튜플을 유일하게 구별할 수 있는 속성
- 후보키의 성질을 가짐(유일성/최소성)
- NULL값을 가질 수 없다
대체키(Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지
외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 릴레이션 간의 참조 관계 표현
- 참조 릴레이션의 기본키에 없는 값은 입력 불가
- null 사용 가능
- 참조 무결성과 관계(외래키가 가리키는 대상이 반드시 존재 해야함)
# 65-관계형 데이터베이스의 제약조건-무결성
## 무결성: 데이터 정확성
개체 무결성: 기본키는 null값이나 중복값을 가질 수 없음
도메인 무결성: 주어진 속성 값이 정의된 도메인에 속한 값이어야함
참조 무결성: 외래키는 null값이나 참조 릴레이션의 기본키 값과 동일해야함>>릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음
사용자 정의 무결성: 속성 값들이 사용자가 정의한 제약조건에 만족해야함
데이터 무결성 강화: 데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야함
- 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용하여 강화 가능
애플리케이션
- 장: 사용자 정의 같은 복잡한 무결성 조건의 구현 가능
- 단: 소스코드에 분산되어 있어 관리 힘듦, 개별적인 시행으로 적정성 검토 어렵
데이터베이스 트리거: 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL 추가
- 장: 통합 관리 가능, 복잡한 요구 조건의 구현 가능
- 단: 운영 중 변경 어렵, 사용상 주의 필요
제약 조건: 데이터 베이스에 제약 조건을 설정
- 장: 통합 관리 가능, 간단한 선언으로 구현 가능, 변경 용이, 오류 데이터 발생 방지
- 단: 복잡한 제약 조건의 구현과 예외적인 처리가 불가능
# 66-관계대수 및 관계해석
관계대수
- 절차적 언어
- 연산의 순서 명시

## 순수 관계 연산자
Select(σ): 조건에 맞는 부분 집합
Project(π):: 제시된 속성값만 출력
Join( ▷◁): 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션 생성
Division(÷): R 속성이 S의 속성 값을 모두 가진 튜플에서, S가진 속성을 제외한 속성만을 구하는 연산
## 일반 집합 연산자
Union(합집합, ⋃): 합집합+중복제거
- 합집합의 카디널리티는 두 릴레이션 카디널리티보의 합 보다 크지 않다
INTERSECTION(교집합 ,⋂) : 둘다 동시에 존재하는 튜플
- 교집합의 카디널리티는, 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다, 크지 않다
DIFFERENCE(차집합, -) : R엔 존재하지만 S에 없는 튜플
- 차집합의 카디널리티는 릴레이션 R의 카디널리티보다 크지 않다
CARTESIAN PRODUCT(교차곱 ,×): 튜플의 순서쌍
- 교차곱의 디그리는 두 릴레이셔의 디그리를 더한 것과 같고, 카디널리티는 두 딜레이션의 카디널리티를 곱한 것과 같다
관계해석: 관계 데이터의 연산을 표현하는 방법
-Predicate Calculus(술어 해석)에 기반
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성
- 관계대수로 표현한 식은 관계해석으로 표현 가능
- 튜플 관계해석과 도메인 관계해석이 있음
주요 논리 기호
- ∀: 모든 것에 대하여(for all)
- ∃: 존재한다(There exist)
# 67-정규화
정규화: 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
정규화 목적:
- 안정성, 무결성
이상 개념 및 종류
- 삽입 이상: 데이터 삽입할 때 원치 않는 값도 삽입
- 삭제 이상: 튜플 삭제할 때 원치 않는 값도 삭제
- 갱신 이상: 튜플에 있는 속성값을 갱신할 때 일부만 갱신
정규화 원칙
- 정보의 무손실 표현
- 분리의 원칙
- 데이터의 중복성 감소
## 정규화 과정 ㅗㅗ
1NF(제1정규형): 도메인과 원자값으로만 구성
2NF(제2정규형): 1NF+기본키가 아니 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족
- 함수적 종속: 데이터들이 어떤 기준값에 의해 종속
- 완전 함수적 종속: 어떤 속성이 기본키에 대해 완전히 종속적일 때
- 부분 함수적 종속: 기본키의 일부만이 종속되는 경우
- 완전/부분 함수적 종속의 이해
3NF(제3정규형): 2NF+기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않음(부분 함수적 종속 제거
BCNF(Boyce-Codd 정규형): 결정자가 모두 후보키인 정규형
4NF(제4정규형): 다치 종속 A->>B가 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
5NF(제5정규형): 모든 조인종속이 R의 후보키를 통해서만 성립
비정규형
↓ 도메인 원자값
1NF
↓ 부분 함수적 종속 제거
2NF
↓ 이행 함수 종속 제거
3NF
↓ 결정자이면서 후보키 아닌 것 제거
BCNF
↓ 다치 종속 제거
4NF
↓ 조인 종속 이용
5NF
암기 두부이걸다줘?(도부이결다조)
이행적 종속:a->b, b->c일때 a->c
# 70-트랜잭션 분석/CRUD 분석
트랜잭션: 데베의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 한꺼번에 모두 수행되어야 할 일련의 연산
- 무결성 보장 목표
트랜잭션 상태
- 활동(Active)
- 실패(Failed)
- 철회(Aborted)
- 부분 완료(Partially Committed)
- 완료(Committed)
트랜잭션의 특성
- Atomicity(원자성): 완료 또는 복구, 완벽히 수행되어야함 아니면 전부 취소
- Consistency(일관성):
- Isolation(독립성, 격리성, 순차성): 다른 트랜잭션이 끼어드는거 안됨, 완료할때까지 참조 안된
- Durability(영속성, 지속성): 영구적 반영
암기: ACID
CRUD 분석
- 생성(create), 읽기(read), 갱신(update), 삭제(delete)
- 데베 설계 시 구조 최적화 목적
- 트랜잭션 몰리는 곳을 찾아 분산>>연결 지연, 타이아웃 오류 방지
CRUD 매트릭스: 테이믈 변화 표시하는 업무 프로세스와 데이터 상관 분석표
- 복수 변화 줄때 C>D>U>R
트랜잭션 분석: CRUD 매트릭스를 기바능로 테이블에 발생하는 트랜잭션 분석>저장되는 데이터 양 유추>DB용량 산정, DB구조 최적화
트랜잭션 분석서: 단위 프로세스와 CRUD 매트릭스를 이용해 작성
# 72-뷰(View) 설계)
뷰: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상 테이블
- 물리적 존재x
- 임시적인 작업 용도
- 조인문의 사용 최소화>>사용상의 편의성 최대화
뷰 특징
- 기본 테이블과 같은 형태의 구조 사용
-데이터의 논리적 독립성 제공
- 필요한 데이터반 뷰로 정의 >> 관리 용이, 명령문 간단
- 데이터 접근 제어를 통해 보안 제공
- 기본키가 있어야 삽입, 삭제, 갱신 가능
- 정의 create/제거 drop
장점
- 논리적 데이터 독립성
- 동일 데이터를 여러 사용자의 상이한 응용이나 요구 지원
- 데이터 관리를 간단하게
- 접근 제어를 통한 자동 보안
단점
- 독립적 인덱스를 가질 수 없다
- 뷰의 정의 변경 불가
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약
# 74-분산 데이터베이스 설계
분산 데이터 베이스: 여러 개로 분산되어있는 데베를 하나의 데베처럼 사용하는 시스템
분산 데이터베이스의 구성 요소
- 분산 처리기: 자제적 처리능력, 지리적으로 분산되어 있는 컴퓨터 시스템
- 분산 데이터베이스: 지리적으로 분산되있는 데이터베이스, 해당 지역 특성에 맞게 구성됨
- 통신 네트워크: 분산 처리기들을 통신망으로 연결
분산 데이터베이스의 목표
- 위치 투명성(Location Transparency): 실제 위치 필요x
- 중복 투명성(Replication Transparency): 데이터가 마치 하나만 있는 것처럼 사용, 시스템은 자동으로 여러 자료에 대한 작업 수행
- 병행 투명성(Concurrency Transparency): 다수의 트랜잭션 동시 실현되도 결과 영향x
- 장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랙잭션 정확히 처리
장점
- 지역 자취성이 높다
- 자료의 공유성 향상
- 분산 제어 가능
- 시스템 성능 향상
- 중앙 컴퓨터의 장애가 전체 시스템에 영향x
- 효용성과 융통성 높음
- 신뢰성 및 가용성 높음
- 점진적 시스템 용량 확장 용이
단점
- DBMS가 수행할 기능 복잡
- 데베 설걔 어렵
- 솦웨 개발 비용 증가
- 처리 비용 증가
- 잠재적 오류 증가
분산 데이터베이스 설계 방법 종류
- 테이블 위치 분산: 데베 테이블을 각 다른 서버에 분산 배치/테이블 구조 변경x, 다른 데베 테이블과 중복안되게 배치
- 분할: 테이블의 데이터를 분할하여 분산
- 분할규칙
- 완전성:전체 데이터 대상
- 재구성: 본래 데이터로 재구성 가능
- 상호 중첩 배제: 서로 다른 분할의 항목에 속하지 않음
- 주요 분할 방법
- 수평 분할: 특정 속성값 기주능로 행 단위 분할
- 수직 분할: 데이터 컬럼(속성) 단위 분할
- 할당: 동일한 분할을 여러 개의 서버에 생성
- 비중복 할당 방식
- 단일 노드에서만 분할 존재
- 의존성 무시가 되고 비용 증가, 성능 저하 등의 문제 발생할 수 있음
- 중복 할당 방식
- 동일한 테이블 다른 서버에 복제
- 부분 복제/완전 복제
# 79-SQL의 개념
SQL
- 혼합 데이터 언어
- 질의어
-정의/조작/제어
DDL(Data Define Language, 데이터 정의어)
- 논리 또는 물리적 데이터 구조의 사상 정의
-데베 관리자/설계자 사용
- CREATE
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의
- ALTER
- TABLE에 대한 정의 변경
- DROP
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX 삭제
DML(Data Manipulation Language, 데이터 조작어)
- 데이터를 실질적으로 처리
- 데베 사용자와 관리 시스템 간의 인터페이스 제공
- SELECT: 테이블에서 조건에 맞는 튜플 검색
- INSERT: 테이블에 새로운 튜플 삽입
- DELETE: 테이블에서 조건에 맞는 튜플 삭제
- UPDATE: 테이블에서 조건에 맞는 튜플의 내용 변경
DCL(Data Control Language, 데이터 제어어)
- 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의
- 데베 관리자가 데이터 관리 목적으로 사용
- COMMIT: 수행 결과를 실제 물리적 디스크에 저장, 조작 작업이 정상적으로 완료됨을 알림
- ROLLBACK: 비정상적으로 종료되었을 때 원래 상태로 복구
- GRANT: 데베 사용자에게 사용 권한 부여
- REVOKE: 데베 사용자의 사용 권한 취소
# 80-DDL
CREATE CHEMA 스키마명 AUTHORIZATION 사용자ID;
CREATE DOMAIN 도메인명 [AS] 데이터타입 [DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK (범위값)];
데이터타입
- 정수
- 실수
- 형식화된 숫자
- 고정길이 문자:
- 가변길이 문자:
- 고정길이 비트열
- 가변길이 비트열(Bit String)
-가변길이 비트열
- 날짜
-시간
CREATE TABLE 테이블명
CREATE VIEW 뷰명[(속성명[, 속성명, ...])]
AS SELECT문;
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASC|DESC] [,속성명 [ASC|DESC]]])
[CLUSTER];
- UNIQUE
- 사용된 경우:중복값 비허용
- 생략된 경우: 중복값 허용
- 정렬 여부 지정
- ASC: 오름차순
- DESC: 내림차순
- 생략시: 오름차순
- CLUSTER: 사용시 인덱스 키 순서에 따라 데이터 정렬
ATRER TABLE 테이블명
- 테이블에 대한 정의 변경
- ADD: 새로운 속성 추가
- ALTER: 특정 속성의 Default 값을 변경할 때 사용
- DROP DOLUMN: 특정 속성을 삭제할 때 사용
DROP
스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거
....
그냥 이 챕터는 책이나 보셈 정리 빡셈;; (시나공 1권 369p^^)
# 83-DML-SELECT-1
이것도 책이나...
'정보처리기사 > 필기' 카테고리의 다른 글
| 내가 기억해야 할 정처기 - 5과목 정보시스템 구축 관리 (0) | 2026.05.29 |
|---|---|
| 내가 기억해야 할 정처기 - 2과목 소프트웨어 개발 (0) | 2026.05.21 |
| 내가 기억해야 할 정처기 - 4과목 프로그래밍 언어 활용 (0) | 2026.05.21 |
| 내가 기억해야 할 정처기 - 1과목 소프트웨어 설계 (0) | 2026.05.07 |