Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch9
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch8
- jpa - 객체지향 쿼리 언어
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch6
- 스프링 mvc2 - 검증
- 스프링 mvc1 - 서블릿
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch7
- 스프링 db1 - 스프링과 문제 해결
- 스프링 입문(무료)
- 게시글 목록 api
- 자바의 정석 기초편 ch5
- jpa 활용2 - api 개발 고급
- @Aspect
- 스프링 db2 - 데이터 접근 기술
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch13
- 코드로 시작하는 자바 첫걸음
- 타임리프 - 기본기능
- 2024 정보처리기사 시나공 필기
Archives
- Today
- Total
나구리의 개발공부기록
1장 - 데이터 입・출력 구현 | 섹션5. 데이터베이스 개요, 섹션6. 절차형SQL 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 2강 - 소프트웨어 개발
1장 - 데이터 입・출력 구현 | 섹션5. 데이터베이스 개요, 섹션6. 절차형SQL
소소한나구리 2024. 4. 23. 21:582024년도 시나공 필기 책 내용 정리
섹션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이 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 2강 - 소프트웨어 개발' 카테고리의 다른 글
2장 - 통합 구현 핵심 요약 (0) | 2024.04.27 |
---|---|
2장 - 통합 구현 | 섹션7. 단위 모듈 구현, 섹션8. 단위 모듈 테스트, 섹션9. 개발 지원 도구 (0) | 2024.04.25 |
1장 - 데이터 입・출력 구현 핵심 요약 (0) | 2024.04.24 |
1장 - 데이터 입・출력 구현 | 섹션3. 정렬(Sort), 섹션4. 검색 - 이분 검색 / 해싱 (0) | 2024.04.23 |
1장 - 데이터 입・출력 구현 | 섹션1. 자료구조, 섹션2. 트리(Tree) (1) | 2024.04.18 |