[정처기 필기] 「2」 | 데이터 입 / 출력 구현 - (1.3) 데이터베이스 개요, 절차형 SQL
「1」 소프트웨어 설계
> 「2」 소프트웨어 개발
- > 데이터 입 / 출력 구현, 통합 구현, 제품 소프트웨어 패키징, 애플리케이션 테스트 관리, 인터페이스 구현
「3」 데이터베이스 구축
「4」 프로그래밍 언어 활용
「5」 정보시스템 구축 관리
1 자료구조
2 트리(Tree)
3 정렬(Sort)
4 검색 - 이분 검색 / 해싱
> 5 데이터베이스 개요
> 6 절차형 SQL
5. 데이터베이스 개요
데이터저장소
소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적 구조로 조직화, 물리적인 공간에 구축
- 논리 데이터저장소, 물리 데이터저장소로 구분
논리 데이터저장소
: 데이터 간의 연관성, 제약조건 식별하여 논리적인 구조로 조직화
물리 데이터저장소
: 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 하드웨어적인 저장장치에 저장
- 논리 데이터저장소를 거쳐, 물리 데이터저장소를 구축하는 과정은 데이터베이스를 구축하는 과정과 동일
데이터베이스
특정 조직 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임
- 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
- 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
- 운영 데이터(Operational Data) : 조직이 고유한 업무를 수행하는 데 존재 가치가 확실, 반드시 필요한 자료
- 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유, 유지하는 자료
DBMS(DataBase Management System; 데이터베이스 관리 시스템)
사용자와 데이터베이스 사이, 사용자 요구에 따라 정보를 생성, 데이터베이스 관리해 주는 소프트웨어
- 기존의 파일 시스템이 갖는 문제(데이터의 종속성, 중복성)를 해결, 모든 응용 프로그램들이 데이터베이스 공용할 수있도록 관리
- 정의(Definition), 조작(Manipulation), 제어(Control) 기능
정의 기능
: 모든 응용프로그램들이 요구하는 데이터 구조를 지원하기 위해, 저장될 데이터의 형(Type), 구조에 대한 정의, 이용방식, 제약조건 등 명시
조작 기능
: 데이터 검색, 갱신, 삽입, 삭제 등 체계적으로 처리하기 위해 사용자와 데이터베이스 사이 인터페이스 수단 제공
제어 기능
: 데이터베이스에 접근하는 갱신, 삽입, 삭제가 정확하게 수행되어 무결성이 유지되도록 제어
: 정당한 사용자가 허가된 데이터만 접근하도록 보안 유지 / 권한 검사
: 여러 사용자가 동시에 접근하여 데이터를 처리할 때, 정확성 유지하도록 병행 제어(Concurrency Control)
DBMS 장 / 단점
장점
: 데이터의 논리적, 물리적 독립성 보장
- 데이터의 중복을 피할 수 있어 기억공간 절약
- 저장된 자료를 공동으로 이용 가능
- 데이터의 일관성, 무결성, 보안 유지
- 데이터 표준화
- 데이터를 통합하여 관리
- 항상 최신의 데이터 유지
- 데이터 실시간 처리 가능
단점
- 데이터베이스 전문가 부족
- 전산화 비용 증가
- 대용량 디스크로의 집중적인 접근으로 과부하(Overhead) 발생
- 파일의 백업, 회복이 어려움
- 시스템 복잡
>데이터의 독립성<
데이터의 독립성은 종속성과 대비, DBMS의 궁극적 목표
- 논리적 독립성 : 응용 프로그램과 데이터베이스 독립, 데이터의 논리적 구조를 변경시켜도 응용 프로그램 변경되지 않음
- 물리적 독립성 : 응용프로그램과 보조기억장치 같은 물리적 장치 독립, 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크 도입하더라도 응용프로그램에 영향 주지 않고 데이터 물리적 구조만 변경
스키마(Schema)
데이터베이스의 구조, 제약 조건에 관한 전반적인 명세를 기술한 메타데이터(Meta-Data)의 집합
- 데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건을 정의
- 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마
외부 스키마
: 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조 정의
개념 스키마
: 데이터베이스의 전체적인 논리적 구조, 필요한 데이터를 종합한 조직 전체의 데이터베이스, 하나만 존재
: 개체 간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 / 무결성 규칙에 관한 명세를 정의
내부 스키마
: 물리적 저장장치의 입장에서 본 데이터베이스 구조, 실제로 저장될 레코드의 형식을 정의, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등 나타냄
6. 절차형 SQL
절차형 SQL의 개요
프로그래밍 언어와 같이 연속적인 실행, 분기, 반복 등 제어가 가능한 SQL
- 프로그래밍 언어보다 효율은 떨어짐, 단일 SQL 문장으로 처리 어려운 연속적인 작업을 처리하는데 적합
- 다양한 기능을 수행하는 저장 모듈 생성 가능
- DBMS 엔진에서 직접 실행, 입 / 출력 패킷이 적은 편
- BEGIN ~ END 형식으로 작성되는 블록(Block) 구조, 기능별 모듈화 가능
- 프로시저, 트리거, 사용자 정의 함수
프로시저(Procedure)
: 특정 기능을 수행하는 트랜잭션 언어, 호출을 통해 실행되어 미리 저장한 SQL 작업 수행, 처리 결과가 없거나, 하나 이상의 값으로 반환
트리거(Trigger)
: 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등 이벤트가 발생할 때마다 관련 작업이 자동으로 수행
사용자 정의 함수
: 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리, 종료 시 예약어 Return 사용하여 처리 결과를 단일값으로 반환
절차형 SQL의 테스트와 디버깅
디버깅을 통해 기능의 적합성 여부 검증, 실행을 통해 결과를 확인하는 테스트 과정 수행
- 테스트 전에 생성을 통해 구문 오류, 참조 오류의 존재 여부 확인
- 많은 코드로 구성된 절차형 SQL의 특성상 오류 및 경고 메시지가 상세출력되지 않으므로, SHOW 명령어를 통해 내용확인, 문제 수정
- 디버깅을 통해 로직 검증, 결과를 통해 최종확인
- 디버깅은 실제로 데이터베이스에 변화를 줄 수 있는 삽입, 변경 관련 SQL문을 주석처리, 출력문을 이용하여 화면에 출력 확인
쿼리 성능 최적화
데이터 입 / 출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것
- 최적화하기 전 성능 측정 도구인 APM을 사용하여 최적화할 쿼리를 선정
- 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획 검토, SQL 코드 / 인데스 재구성
출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)
'💠기타 > 자격증' 카테고리의 다른 글
[정처기 필기] 「2」 | 제품 소프트웨어 패키징 - (3.1) 소프트웨어 패키징, 디지털 저작권 관리, 소프트웨어 설치, 사용자 매뉴얼 작성 (0) | 2024.01.28 |
---|---|
[정처기 필기] 「2」 | 통합 구현 - (2.1) 단위 모듈 구현, 테스트, 개발 지원 도구 (0) | 2024.01.26 |
[정처기 필기] 「2」 | 데이터 입 / 출력 구현 - (1.2) 정렬, 검색 - 이분 검색 / 해싱 (1) | 2024.01.26 |
[정처기 필기] 「2」 | 데이터 입 / 출력 구현 - (1.1) 자료구조, 트리 (1) | 2024.01.25 |
[정처기 필기] 「1」 | 인터페이스 설계 - (4.2) 인터페이스 방법 명세화, 미들웨어 설루션 명세 (1) | 2024.01.25 |