Study/Certificate

[정보처리기사 필기] 정처기 모든 과목 요점정리 (4)

ChoiSenn 2023. 3. 30. 16:25

 

 

외부 스키마 : 사용자의 관점에서 보여주는 DB. 서브 스키마.

내부 스키마 : 저장장치의 입장에서의 DB 전체가 저장되는 방법을 명세한 것. 하나만 존재.

개념 스키마 : 전체 사용자 또는 응용 시스템이 필요한 DB 구조. 조직 전체의 DB. 하나만 존재.

 

데이터베이스 설계 순서

 - 요구 조건 분석 : 명세서 작성

 -> 개념적 설계 : 독립적인 개념 스키마 모델링, 트랜잭션 모델링. (E-R 다이어그램 모델)

 -> 논리적 설계(데이터 모델링) : 목표 DBMS에 맞는 논리 스키마 설계. (트랜잭션 인터페이스 설계, 테이블 설계, 논리적 DB 구조로 매핑, 스키마의 평가 및 정제)

 -> 물리적 설계(데이터 구조화) : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환. (저장 레코드, 접근 경로 설계)

 -> 구현 : DDL로 DB 생성, 트랜잭션 작성.

 

도메인 : 하나의 속성(어트리뷰트)이 가질 수 있는 같은 타입의 원자 값들의 집합.

 

릴레이션 특징

 - 한 릴레이션(테이블)에 포함된 튜플(행)들은 모두 상이. (다른 값을 가짐)

 - 한 릴레이션에 포함된 튜플 사이에는 순서가 없음.

 - 릴레이션 스키마를 구성하는 어트리뷰트(열) 간의 순서는 중요하지 않음.

 - 각 어트리뷰트는 식별을 위해 릴레이션 내에서 유일한 이름을 가짐.

 - 어트리뷰트는 논리적으로 더 이상 쪼갤 수 없는 원자 값으로 저장.

 

후보키 : 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합. 유일성과 최소성을 만족한다.

기본키 : 후보키 중에서 선정. 중복된 값과 NULL 값은 안 됨. 유일성과 최소성을 만족.

대체키 : 기본키를 제외한 나머지 후보키

슈퍼키 : 유일성은 만족하고 최소성은 불만족.

외래키 : 다른 릴레이션의 기본키를 참조. 릴레이션 간의 참조 관계.

 

개체 무결성 : 기본키를 구성하는 어떤 속성도 NULL 값이나 중복 값을 가질 수 없음. (원자값을 가짐)

도메인 무결성 : 튜플들은 각 속성의 도메인에 지정된 값 만을 가져야 함.

참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일.

사용자 정의 무결성 : 제약 조건에 만족해야 함.

 

관계 대수 : 관계형 DB에서 원하는 정보와 그것을 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어.

 - 순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVISION, 

 - 일반 집합 연산자 : UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT

 

정규화 : 논리적 설계 단계에서 수행. 안전성 및 무결성을 유지. 어떤 릴레이션이라도 DB 내에서 표현 가능하게. 효과적인 검색 알고리즘 생성 가능. 중복을 배제해 삽입 이상, 삭제 이상, 갱신 이상의 발생을 방지. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임. (도부이결다조)

 

반정규화 : 시스템의 성능 향상을 위해 정규화 된 데이터 모델을 통합, 중복, 분리하는 과정.

 

시스템 카탈로그 : DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지, 관리. 메타데이터를 저장. 일반 이용자도 SQL을 이용하여 검색이 가능하지만 카탈로그 갱신은 불가. DBMS가 스스로 생성하고 유지.

 

인덱스 : 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성된 데이터 구조. 분포도가 10~15% 이내, 수정이 빈번하지 않은, ORDER BY/GROUP BY/UNION이 빈번한 컬럼이 선정. 지나치게 많은 인덱스는 오버헤드 발생 가능.

 

뷰 : 물리적으로 구현되지 않은 가상 테이블. 저장장치 내에 논리적으로만 존재. 정의된 뷰로 다른 뷰 정의 가능. 뷰가 정의된 테이블이나 뷰 삭제 시, 뷰도 자동으로 삭제됨. 논리적 데이터 독립성 제공. 접근 제어를 통한 자동 보안. 데이터 관리 용이. 독립적인 인덱스를 갖지 않음. 정의를 ALTER로 변경 불가, DROP하고 다시 만들어야 함. 삽입, 삭제, 갱신, 연산 시에 제약이 따름.

 

클러스터 : 액세스 효율을 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법. 인덱스의 단점을 해결. 분포도가 넓을수록 오히려 유리. 대량의 범위, 넓은 분포도를 자주 조회하는 경우에 사용.

 

분산 데이터베이스 : 논리적으로는 하나의 시스템, 물리적으로는 네트워크를 통해 분산되어 있는 데이터베이스. 분산 처리기, 분산 데이터베이스, 통신 네트워크로 구성. 중앙 컴퓨터의 장애가 전체 시스템에 영향을 주지 않음. 확장이 용이함.

 

개인키(대칭키/비밀키) 암호화 방식 : 동일한 키로 암호화 (DES, AES, SEED, ARIA)

공개키(비대칭키) 암호화 방식 : 공개키는 공개, 복호화하는 비밀키는 관리자가 소지 (RSA, Diffie Hellman 알고리즘)

 

신분 기반 정책 (DAC) : 신분에 근거해 접근 제한 (IBP, GBP)

규칙 기반 정책 (MAC) : 권한에 근거해 접근 제한 (MLP, CBP)

역할 기반 정책 (RBAC) : 역할에 근거해 접근 제한 (DBA, 인사담당자)

 

접근 통제 목록 (ACL) : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지를 기록.

 

DAS : 서버와 저장장치를 케이블로 직접 연결.

NAS : 서버와 저장장치를 네트워크로 연결.

SAN : 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성.

 

트리거 : 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업을 자동으로 수행.

 

JDBC : JAVA 언어로 다양한 DB에 접속하고 SQL문을 실행.

ODBC : 마이크로소프트에서 출시. 개발 언어에 구애받지 않음. DBMS 종류를 몰라도 됨.

 

ORM : 객체와 관계형 데이터베이스의 데이터를 연결하는 기술.

 

데이터 지역화 : DB의 저장 데이터를 효율적으로 이용할 수 있도록 저장하는 방법 (구역성)

 - 시간적 구역성 : 최근 참조된 기억장소가 가까운 장래에 계속 참조될 가능성 (스택, 서브루틴, 루프, 카운팅, 집계...)

 - 공간적 구역성 : 가까운 기억정보가 참조. (배열, 순차적 코드)

 - 순차적 구역성 : 기억장치에 저장된 순서대로 인출.

 

로킹 : 한 번에 한 명만 사용할 수 있게 잠그는 단위. 데이터베이스, 파일, 레코드 등. 한 번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 함.

 

WAS : 정적인 콘텐츠를 처리하는 웹 서버와 반대로 동적인 컨텐츠를 처리하기 위한 미들웨어.

 

빌드 도구 : 소스의 빌드 및 배포, 라이브러리 관리를 지원 (Ant, Maven, Gradle, Jenkins 등)

구현 도구 : 개발 언어로 앱의 실제 구현을 지원 (Eclipse, IntelliJ, Visual Studio, Node.js...)

테스트 도구 : 모듈들이 요구사항에 적합하게 구현됐는지 테스트 (CppUnit, JUnit, HttpUnit, NUnit, SprintTest...)

형상 관리 도구 : 버전 별로 관리하여 품질 향상을 지원 (CVS, SVN, GIT...)

 

프레임워크의 특성

 - 모듈화 : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화.

 - 재사용성 : 재사용 가능한 모듈들을 제공. 생산성 향상.

 - 확장성 : 다형성을 통한 인터페이스 확장 가능.

 - 제어의 역흐름 : 개발자 대신 객체들의 제어를 관리.

 

API : 응용 프로그램 개발 시, 라이브러리를 이용할 수 있게 함으로써 SW 구현을 도와주는 인터페이스.