개념적 설계
- 현재 세계에 대한 인식을 추상화 개념으로 표현
- 개념 스키마 모델링, 트랜잭션 모델링을 병행 수행
논리적 설계
- 자료를 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 트랜잭션의 인터페이스를 설계, 개념 스키마를 평가 및 정제
물리적 설계
- 파일의 저장구조 및 액세스 경로 결정, 저장 레코드의 형식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보 사용
데이터 모델에 표시할 요소
- 구조: 개체 타입들 간의 관계
- 연산: 실제 데이터를 처리하는 연산 작업
- 제약 조건: 실제 데이터의 논리적인 제약 조건
E-R 다이어그램
튜플
- 릴레이션을 구성하는 각각의 행(튜플의 수 = 카디널리티)
속성
- DB를 구성하는 가장 작은 논리적 단위(디그리 = 차수)
도메인
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
릴레이션의 특징
- 릴레이션에 포함된 튜플들은 모두 상이, 순서 X, 속성의 명칭 유일해야 하고, 더 이상 쪼갤 수 없는 원자값만을 저장
후보키
- 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 유일성과 최소성 만족
기본키
- 후보키 중에서 특별히 선정된 주키, NULL (X)
대체키
- 기본키를 제외한 나머지 후보키, 보조키
슈퍼키
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 유일성은 만족, 최소성 만족 X
외래키
- 기본키를 참조하는 속성 또는 속성들의 집합
무결성
- 개체 무결성: 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정(기본키)
- 참조 무결성: 외래키 값은 Null 이거나 참조 릴레이션의 기본키 값과 동일해야 함(외래키)
관계대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 수행해야 할 연산의 순서를 명시
Select
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구함 (시그마)
Project
- 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산(파이)
Join
- 공통 속성을 중심으로 두개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산
Division
- X>Y인 릴레이션 R(X), S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구성
교차곱
- 튜플들의 순서쌍
- 디그리: 두 릴레이션의 디그리를 더한 것
- 카디널리티: 두 릴레이션의 카디널리티를 곱한 것
관계해석
- 코드가 수학의 술어 해석에 기반을 둠
정규화
- 잘못된 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마를 만들어 가는 과정
- 논리적 설계 단계
- 데이터 중복을 배제하여 이상의 발생 방지
- 자료 저장 공간의 최소화가 가능
이상
- 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치못한 곤란한 현상을 방지(삽입이상, 삭제이상, 갱신이상)
정규화 과정
함수적 종속
- 데이터들이 어떤 기준값에 의해 종속되는 것, 학번에 따라 이름이 결정될때 이름을 학번에 함수종속적 (학번 → 이름)
이행적 종속 관계
- A→B, B→C, A→C
반정규화
- 정규화된 데이터 모델을 통합, 중복, 분리하는 과정
시스템 카탈로그
- 객체에 관한 정보를 포함하는 시스템 데이터베이스, 검색 O, 갱신 X
트랜잭션
- 하나의 논리적 기능을 수행하기 위한 작업의 단위(일련의 연산)
트랜잭션의 상태
- 활동: 트랜잭션이 실행중인 상태
- 실패: 트랜잭션 실행 중 오류가 발생하여 중단된 상태
- 철회: 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
트랜잭션 특성
- 원자성, 일관성, 독립성, 영속성
인덱스
- record를 빠르게 접근하기 위해 <키값, 포인터>로 구성된 데이터 구조
- DDL를 이용해 생성, 변경, 제거 가능
뷰
- 기본테이블로 유도된 가상 테이블
- 물리적으로 구현
- 삽입, 삭제, 갱신 연산에 대한 제약을 따름, 독립적인 인덱스 X,
- 생성: CREATE, 제거: DROP
파티션
- 범위 분할: 열의 값을 기준
- 해시 분할, 조합 분할(범위 분할 후 해시 분할), 목록 분할, 라운드 로빈(레코드를 균일하게 분배)
분산 데이터베이스
- 논리적으로는 하나의 시스템에 속하지만, 물리적으로는 네트워크를 통해 연결된 여러개의 컴퓨터 사이트에 분산된 데이터베이스
분산 데이터베이스의 목표
- 위치 투명성(위치를 알 필요 없이 DB의 논리적인 명칭만으로 액세스 가능)
- 중복 투명성(동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용)
- 병행 투명성
암호화, 복호화
- 암호화: 평문 → 암호문
- 복호화: 암호문 → 평문
접근통제 기술
- 임의 접근통제: 사용자 신원에 따라 접근권한 부여
- 강제 접근통제: 주체와 객체의 등급 비교
- 역할기반 접근통제: 사용자의 역할에 따라 권한 부여
벨 라파듈라 모델
- 기밀성에 따라 상하관계가 구분된 정보를 보호하기 위한 모델
- 보안 취급자의 등급을 기준으로 읽기 권한과 쓰기 권한이 제한
DAS
- 서버의 저장장치를 전용 케이블로 직접 연결
- 컴퓨터에 외장하드를 연결
SAN
- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식
- 서버와 저장장치를 연결하는 전용 네트워크
DDL
- 스키마, 도메인, 테이블, 뷰, 인덱스를 정의, 변경, 삭제
- CREATE, ALTER, DROP
DML
- 저장된 데이터를 실질적으로 처리
- SELECT, INSERT, DELETE, UPDATE
DCL
- 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의
- COMMIT: 실제 물리적 디스크로 저장
- ROLLBACK: 원래의 상태로 복구
CREATE TABLE
- 테이블 정의
ALTER TABLE
- 테이블에 대한 정의를 변경하는 명령문
DROP TABLE
- 기본 테이블을 제거하는 명령문
- CASCADE: 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- RESTRICT: 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소함
INSERT
- 기본 테이블에 새로운 튜플 삽입
DELETE FROM
- 특정 튜플 삭제
UPDATE SET
- 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용
데이터 조작문의 네가지 유형
- SELECT ~ FROM ~ WHERE~
- INSERT INTO ~ VALUES~
- DELETE~FROM~WHERE~
- UPDATE~SET~WHERE~
Select문
- WHERE, GROUP BY, HAVING(그룹에 대한 조건), ORDER BY(default: DESC, ASC)
조건 연산자
- 지정된 속성의 값이 문자 패턴과 일치하는 튜플 검색
- %(모든 문자), _(문자 하나), #(숫자 하나)
조건 연산자 - BETWEEN
- WHERE 생일 BETWEEN #01/09/69# AND #10/22/73#
그룹 함수
- GROUP BY절에 지정된 그룹별로 속성의 값을 집계, COUNT/SUM/AVG/MAX/MIN
집합 연산자의 종류
- UNION: 두 조회 결과 통합
- UNION ALL: 중복된 행도 그래도 출력
- INTERSECT: 공통된 행만 출력
- EXCEPT: 두번째 조회 결과를 제외한 행만 출력
트리거(Trigger)
- 이벤트(CRUD)가 발생할 때마다 관련 작업이 자동으로 수행
'자격증' 카테고리의 다른 글
[정보처리기사 실기] 2020년도 기출 내용 정리 (2) | 2024.04.26 |
---|---|
[정보처리기사] 5과목 정보시스템 구축 관리 핵심정리 (1) | 2024.02.08 |
[정보처리기사] 2과목 소프트웨어 개발 핵심정리 (0) | 2024.02.08 |
[정보처리기사] 1과목 소프트웨어 설계 핵심정리 (3) | 2024.02.07 |
[sqld] sqld 합격 후기 및 공부법(노랭이, 개념 및 이론 공부, 기출분석, 마지막 최종 정리, 시험 후기) (0) | 2023.06.13 |