관리 메뉴

나구리의 개발공부기록

1장 - 데이터 입・출력 구현 | 섹션5. 데이터베이스 개요, 섹션6. 절차형SQL 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 2강 - 소프트웨어 개발

1장 - 데이터 입・출력 구현 | 섹션5. 데이터베이스 개요, 섹션6. 절차형SQL

소소한나구리 2024. 4. 23. 21:58

2024년도 시나공 필기 책 내용 정리


섹션5. 데이터베이스 개요

 

1. 데이터저장소

 

  • 소프트웨어 개발 과정에서 다루야 할 데이터들을 논리적인 구조로 조직화하거나 물리적인 공간에 구축한 것
  • 논리 데이터저장소와 물리 데이터저장소로 구분됨
  • 논리 데이터저장소는 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 데이터 구조로 조직화한 것을 의미함
  • 물리 데이터저장소는 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 하드웨어적인 저장장치에 저장한 것을 의미
  • 논리 데이터저장소를 거쳐 물리 데이터저장소를 구축하는 과정은 데이터베이스를 구축하는 과정과 동일함

2. 데이터베이스

 

  • 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임
  • 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
  • 통합된 데이터(Ingegrated Data) : 자료의 중복을 배제한 데이터의 모임
  • 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
  • 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료, 단순한 입,출력 자료나 작업 처리상 일시적으로 필요한 임시 자료는 운영자료로 취급하지 않음
  • 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

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

 

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해 주는 소프트웨어
  • 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용프로그램들이 데이터베이스를 공용할 수 있도록 관리
  • 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐
  • 필수 기능에는 정의(Definition), 조작(Manipulation),  제어(Control) 기능이 있음
    • 정의(Definition) 기능 : 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
    • 조작(Manipulation) 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
    • 제어(Control) 기능

      • 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어
      • 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안(Sequrity)을 유지하고 권한(Authority)을 검사할 수 있어야 함
      • 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리결과가 항상 정확성을 유지하도록 병행 제어(Concurrency Control)를 할 수 있어야 함

4. DBMS의 장,단점

 

장점 단점
데이터의 논리적, 물리적 독립성이 보장됨
데이터의 중복을 피할 수 있어 기억 공간이 절약됨
저장된 자료를 공동으로 이용할 수 있음
데이터의 일관성을 유지할 수 있음
데이터의 무결성을 유지할 수 있음
보안을 유지할 수 있음
데이터를 표준화할 수 있음
데이터를 통합하여 관리할 수 있음
항상 최신의 데이터를 유지
데이터의 실시간 처리가 가능
데이터베이스의 전문가가 부족
전산화 비용이증가
대용량 디스크로의 집중적인 Access로 과부하(Overhead)가 발생
파일의 예비(Backup)와 회복(Recovery)이 어려움
시스템이 복잡함 

 

데이터의 독립성

 

  • 종속성에 대비되는 말로 DBMS의 궁극적 목표이기도 함
  • 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않음
  • 물리적 독립성 : 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써, 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경

5. 스키마

 

  • 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 메타데이터(Meta-Data)의 집합
  • 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의
  • 사용자의 관점에 따라 외부스키마, 개념스키마, 내부스키마로 나뉨
외부 스키마 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
개념 스키마 데이터베이스의 전체적인 논리적구조로서 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재
개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의
내부 스키마 물리적 저장장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타냄

섹션6. 절차형SQL

 

1. 절차형 SQL의 개요

 

  • C, JAVA등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL을 의미
  • 일반적인 프로그래밍 언어에 비해 효율은 떨어지지만 단일 SQL 문장으로 처리하기 어려운 연속적인 작업들을 처리하는데 적합하고 이를 활용하여 다양한 기능을 수행하는 저장 모듈을 생성할 수 있음
  • DBMS엔진에서 직접 실행 되기 때문에 입,출력 패킷이 적은 편
  • BEGIN ~ END 형식으로 작성되는 블록(Block) 구조로 되어 있기 때문에 기능별 모듈화가 가능함
  • 절차형 SQL의 종류에는 프로시저, 트리거, 사용자 정의 함수가 있음
    • 프로시저(Procedure) : 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 실행되어 미리 저장해 놓은 SQL작업을 수행
    • 트리거(Trigger) : 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(Event)가 발생할 때마다 관련 작업이 자동으로 수행
    • 사용자 정의 함수 : 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하며 종료 시 예악어 Return을 사용하여 처리 결과를 단일값으로 반환

*트랜잭션 언어 : 데이터베이스를 조작하고 트랜잭션을 처리하는 언어, SQL과 TCL이 속함


2. 절차형 SQL의 테스트(오류를 발견)와 디버깅(오류가 발생한 소스 코드를 추적하여 수정)

 

  • 디버깅을 통해 기능의 적합성 여부를 검증하고 실행을 통해 결과를 확인하는 테스트과정을 수행
  • 테스트 전에 생성을 통해 구문 오류(Syntax Error)나 참조 오류의 존재 여부를 확인
  • 많은 코드로 구성된 절차형 SQL의 특성상 오류 및 경고 메세지가 상세히 출력되지 않으므로 SHOW 명령어를 통해 내용을 확인하고 문제를 수정
  • 정상적으로 생성된 절차형 SQL은 디버깅을 통해 로직을 검증하고 결과를 통해 최종적으로 확인
  • 디버깅은 실제로 데이터베이스에 변화를 줄 수 있는 삽입 및 변경 관련 SQL문을 주석으로 처리하고 출력문을 이용하여 화면에 출력하여 확인

3. 쿼리성능 최적화

 

  • 데이터 입,출력 애플리케이션의 성능 향상을 위해 SQL코드를 최적화 하는것
  • 성능 측정 도구인 APM을 사용하여 최적화할 쿼리를 선정
  • 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스를 재구성

*APM(Application Performance Management/Monitoring): APM은 애플리케이션의 성능 관리를 위해 접속자, 자원현황, 트랜잭션 수행 내역, 장애 진단 등 다양한 모니터링 기능을 제공하는 도구임

 

*옵티마이저: DBMS에 내장되어 작성된 SQL이 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈