본문 바로가기
  • Always Awake
정보처리기사/2과목

[정보처리기사 필기] 데이터베이스, 데이터 입출력 용어 정리

by NerdyBoy 2022. 2. 10.

데이터 베이스

1. 데이터 저장소

소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화 하거나, 물리적인 공간에 구축한 것을 의미

  • 논리 데이터저장소와 물리 데이터저장소로 구분
  • 논리 데이터 저장소는 데이터 및 데이터 간 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한것
  • 물리 데이터 자장소는 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 하드웨어적인 저장장치에 저장한 것

 

2. 데이터베이스

통합된 데이터(Integrated Data) : 자료의 중복 배제한 데이터

저장된 데이터(Stored Data) : 저장 매체에 저장된 자료

운영 데이터(Operational Data) : 존재가치가 확실하고 반드시 필요한 데이터

공용 데이터(Shared Data) : 여러 응용시스템 들이 공동으로 소유한 데이터

 

 

3. DBMS(DataBase Management System; 데이터베이스 관리 시스템)

기존 파일 시스템이 갖는 데이터의 종속성과 중복성 문제 해결위해 제안된 시스템. 모든 응용프로그램들이 데이터베이스를 관리할 수 있도록 도와준다.

DBMS 필수기능

  • 정의 기능 : 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등 명시
  • 조작 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 인터페이스 수단 제공
  • 제어 기능 : 데이터 무결성이 유지되도록 제어, 보안 유지와 권한(Authority) 검사, 병행 제어(Concurrency Control)할 수 있어야 함

 


※ 데이터 독립성

DBMS의 궁극적 목표

 

논리적 독립성 : 응용프로그램과 데이터베이스를 독립시켜 데이터의 논리적 구조를 변경시켜도 응용프로그램에 영향을 미치지 않는 것

물리적 독립성 : 응용프로그램과 보조기억장치같은 물리적 장치를 독립시켜 새로운 디스크를 도입해도 응용프로그램에 영향을 미치지 않는 것


 

3. 스키마

데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터(Meta-Data)의 집합

  • 외부 스키마 : 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조 정의한 것
  • 개념 스키마 : 데이터베이스의 전체적인 논리적 구조로, 하나만 존재. 관계와 제약 조건 나타내고, 데이터베이스의 접근권한, 보안 및 무결성 규칙에 관한 명세 작성
  • 내부 스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조. 실제로 데이터베이스에 저장될 레코드의 형식을 정리하고 저장 데이터 항목의 표현 방법, 내부 레코의 물리적 순서 나타냄

 

데이터 입 출력

1. SQL(Structured Quert Language)

1974년 IBM 연구소에서 개발한 SEQUEL에서 유래한 국제표준 데이터언어. 많은 회사에서 관계형 데이터베이스(RDB)를 지원하는 언어로 채택

관계대수관계해석을 기초로한 혼합 데이터 언어

 

  • 데이터 정의어(DDL; Data Define Language) : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 용이한 언어
  • 데이터 조작어(DML; Data Manipulation Language) : 응용프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용되는 언어.
  • 데이터 제어어(DCL; Data Control Language) : 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는데 사용되는 언어

 

2. 데이터 접속(Data Mapping)

프로그램 코드와 데이터베이스의 데이터를 연결(Mapping)하는 것을 말함

 

  • SQL Mapping : 프로그래밍 코드내에 SQL직접 입력하여 DBMS의 데이터에 접속하는 기술. 관련 프레임워크는 JDBC, ODBC, MyBatis 등
  • ORM(Object-Relational Mapping) : 객체지향 프로그래밍의 객체(Object)와 관계형 (Relational) 데이터베이스를 연결(Mapping)하는 기술. 관련 프레임워크는 JPA, Hibernate, Django 등

 

3. 트랜잭션(Transaction)

하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들

트랜잭션을 제어하기 위한 명령어를 TCL(Transaction Control Language)이라 하며, COMMIT, ROLLBACK, SAVEPOINT 와 같은 종류가 있다

 

  • COMMIT : 트랜잭션이 수행한 변경내용을 데이터베이스에 반영하는 명령어
  • ROLLBACK : 트랜잭션이 비정상 종료되어 데이터베이스 일관성이 깨졌을 때, 이전 상태로 되돌리는 연산
  • SAVEPOINT(=CHECKPOINT) : ROLLBACK할 위치인 저장점을 입력

 

절차형 SQL

  • C, JAVA 와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
  • 일반적인 프로그래밍 언어에 비해 효율이 떨어지지만  단일 SQL문장으로 처리하기 어려운 작업 처리에 적합
  • 다양한 기능 수행하는 저장 모듈 생성가능
  • DBMS 엔진에서 직접 실행되어 입 출력 패킷이 적은편
  • 블록 구조로 되어 기능별 모듈화 가능

프로시저(Procedure) : 특징 기능을 수행하는 일종의 트랜잭션 언어로, 호출을 통해 실행되어 미리 저장해놓은 SQL작업수행

트리거(Trigger) : 데이터베이스 시스템에서 이벤트 발생 시마다 관련 작업이 자동 수행

사용자 정의 함수 : 프로시저와 유사하게 SQL사용하여 일련의 작업을 연속적으로 처리, 종료 시 예약어 Return을 사용하여 결과를 단일 값으로 반환

 

 

 


 

댓글