오브의 빛나는 별

[정보처리기사] 2장 데이터 입 출력 구현 본문

정보처리기사

[정보처리기사] 2장 데이터 입 출력 구현

오브의 별 2024. 8. 7. 17:45
반응형

스키마(Schema): 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술
- 외부 스키마(External Schema, Sub Schema): 사용자가 사용하는 한 부분에서 본 논리적 구조를 말하며, 서브 스키마라고도 함. 사용자 관점
- 개념 스키마(Conceptual Schema): 데이터베이스의 전제척, 논리적 구조. 일반적인 스키마. 기관/조직체(회사) 관점
- 내부 스키마(Internal Schema, Storage Schema): 물리적 저장 장치 관점. 시스템 프로그래머/설계자 관점

데이터베이스 설계 순서
1. 요구 사항 분석
2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R모델
3. 논리적 설계 : 논리 스키마 설계, 트랜잭션 인터페이스 설계
4. 물리적 설계 : 물리적 구조의 데이터로 변환
5. 구현 : DDL로 데이터베이스 생성, 트랜잭션 작성

데이터베이스 구성요소
개체(Entity): 단독 개제. ER에서 사각형
속성(Attribute): 개체가 갖는 속성. 데이터의 가장 작은 논리. ER에서 원
관계(Relationship): Entity type 간 관계. 1:1, 1:n, n:n. ER에서 마름모

데이터 모델
구조 (Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
연산 (Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
제약 조건 (Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

관계형 데이터베이스의 릴레이션 구조
튜플(Tuple) : 릴레이션을 구성하는 각각의 행. 속성의 모임. 튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응수라고 함
속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위. 개체의 특성 기술. 속성의 수를 디그리(Degree) 또는 차수라고 함
도메인(Domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합

key
후보키(Candidate Key): 유일하게 식별하기 위해 사용되는 속성들의 부분집합. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함. 유일성과 최소성을 모두 만족
기본키(Primary Key): NULLX, 유일하게 식별할 수 있는 키값. 중복X
대체키(Alternate Key): 후보키가 둘 이상일 때 기본 키를 제외한 나머지 후보키
슈퍼키(Super Key): 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성은 만족하지만, 최소성은 만족X
외래키(Foreign Key): 다른 릴레이션의 기본 키를 참조하는 속성 또는 속성들의 집합. 참조 릴레이션의 기본키에 없는 값 입력X

무결성(Integrity): 데이터의 정확성, 일관성, 유효성이 유지되는 것
개체 무결성 : 기본 테이블의 기본 키를 구성하는 어떤 속성도 Null값이나 중복값을 가질 수 없다는 규정
참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정

외래 키와 참조 무결성 
RESTRICTED: 레코드를 변경 또는 삭제하고자 할 때 해당 레코드를 참조하고 있는 개체가 있다면, 변경 또는 삭제 연산을 취소한다.
CASCADE: 레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 있는 개체도 변경 또는 삭제된다.
SET NULL: 레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 있는 개체의 값을 NULL로 설정한다.

순수 관계 연산자
Select σ: 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분 집합을 구하여 새로운 릴레이션을 만드는 연산
Project π: 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산
Join ▷◁: 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산자 Join의 결과는 Cartesian Product(교차 곱)를 수행한 다음 Select를 수행한 것과 같다.
Division ÷: 릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산

일반 집합 연산자
합집합(UNION ∪): 두 릴레이션에 존재하는 튜플의 합집합을 구하되 결과로 생성된 릴레이션에서 중복되는 튜플은 제거
교집합(INTERSECTION ∩): 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
교차곱(CARTESIAN PRODUCT ×): 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
차집합(DIFFERENCE -): 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산

이상(Anomaly): 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 곤란한 현상
삽입 이상(Insertion Anomaly): 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
삭제 이상(Deletion Anomaly): 테이블에서 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상
갱신 이상(Update Anomaly): 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)이 생기는 현상

정규화: 테이블 간에 중복된 데이터를 허용X. 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 감소
제 1 정규형(1NF): 테이블의 모든 속성 값이 원자값으로만 되어있는 정규형. 도메인이 원자값
제 2 정규형(2NF): 1NF + 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형. 부분적 함수 종속 제거
제 3 정규형(3NF): 2NF + 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형. 이행적 함수 종속 제거
BCNF(Boyce-Codd Normal Form): 테이블에서 모든 결정자가 후보키(Candidate Key)인 정규형 일반적으로 제 3 정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능. 결정자이면서 후보키가 아닌 것 제거
제 4 정규형(4NF): 테이블 R에 다중값 종속 A→→B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형. 다치 종속

반 정규화(Denormalization): 시스템의 성능을 향상하고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위. 시스템 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 성능 저하 가능
테이블 통합: 자주 처리되는 경우 1:1 1:N, 슈퍼타입/서브타입 테이블 통합 존재. 제약조건(Constraint)을 설계 어려움
테이블 분할: 수직(속성 기준) 또는 수평(레코드(Record) 기준)으로 분할
중복 테이블 추가: 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우
중복 속성 추가: 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가

트랜잭션: 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산
Atomicity(원자성): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
Consistency(일관성): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
Isolation(독립성): 둘 이상의 트랜잭션이 동시에 병행 실행 되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
Durability(영속성): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

Commit: 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을 알려주기위해 사용하는 연산
Rollback: 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소

인덱스(Index): 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
인덱스의 자료구조
- 해시 테이블(Hash table): 키(Key)와 해시 값(Hash Value) 쌍으로 이루어진 자료구조
- B-Tree: 가장 널리 사용되는 인덱스 자료구조. 정렬. 데이터와 데이터 사이의 범위를 이용
- B+Tree: 내부 노드(Internal node)와 단말 노드(Leaf node)로 구분

뷰(view): 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블. 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제
RESTRICT : 뷰를 다른곳에서 참조하고 있으면 삭제가 취소
CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제

분산 데이터베이스: 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 사이트에 분산되어 있는 데이터베이스
위치 투명성(Location Transparency): 데이터베이스의 논리적인 명칭만으로 액세스 가능
중복 투명성(Replication Transparency): 동일 데이터가 여러곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함
병행투명성(Concurrency Transparency): 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리

RTO/RPO
RTO(Recovery Time Objective)목표 복구 시간. 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요시간
RPO(Recovery Point Objective)목표 복구 시점. 비상사태 또는 업무 중단 시점으로부터 데이터를 복구 할 수 있는 기준점을 의미함

접근 통제: 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제
임의 접근 통제 (DAC. Discretionary Access Control): 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식. 데이터 소유자가 접근 통제 권한을 지정하고 제어
강제 접근 통제 (MAC. Mandatory Access Control): 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식. 사용자별로 인가 등급을 부여 가능. 시스템이 접근 통제 권한을 지정
역할 기반 접근 통제(RBAC, Role Based Access Control): 사용자에게 할당된 역할에 기반. 비임의적접근제어로 알려져 있으며 사용자의 역할할당은 중앙에서 관리

스토리지(Stroage): 컴퓨터에 데이터를 저장하는 저장소의 역할
DAS(Direct Attached Storage): 서버와 저장장치를 전용 케이블로 직접 연결하는 방식이다.
NAS(Network Attached Storage): 서버와 저장장치를 네트워크를 통해 연결하는 방식이다.
SAN(Storage Area Network): DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식으로 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식

자료구조
배열(Array): 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖는 집합
연속 리스트(Contiguous List): 연속되는 기억장소에 저장되는 자료 구조
연결 리스트(Linked List): 임의의 기억공간에 기억. 노드의 포인터 부분을 이용하여 서로 연결
스택(Stack):  한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
큐(Queue): 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구조
그래프(Graph): 정점 v와 간선 e의 집합

반응형