데이터베이스
정의: 통합(중복x), 저장(컴퓨터에), 운영(필수 데이터), 공유
특징: 실시간 접근성, 내용
에 의한 참조, 동시 공유, 계속적인 변화(최신 데이터 삽입, 삭제, 갱신 등을 반복)
DBMS
- 장점: 독립성이 확보, 일관성 유지, 무결성
- 단점: 전문가 부족, 비용 비쌈, 서버의 부담
- 정의 기능: 구현언어(DDL) -> 구조에 대한 정의
- 조작 기능: 구현언어(DML) -> 데이터 검색, 삽입, 삭제, 갱신
- 제어 기능: 구현언어(DCL) -> 접근 권한(권한 부여, 취소), 병행 제어
스키마
-
정의: DB 구조, 제약조건 등을 기술
- 외부 스키마: 각 사용자 관점(사용자 뷰) -> 여러 개
- 개념 스키마: 논리적 구조 -> 개체간의 관계와 제약조건 명시(단일)
- 내부 스키마: 물리적 저장구조를 정의(단일)
데이터베이스 설계 - 요구조건 분석: 사용자, 조건 등을 파악 -> 요구조건 명세
- 개념적 설계: 그림 표현(ex. E-R 다이어그램)
- 논리적 설계: 모델링, 스키마 설계
- 물리적 설계: 저장 장치에 물리적 구조, 데이터를 변환
- 데이터베이스 구현
SQL(Structured Query Language) '1974년 IBM에서 개발한 DB 언어'
- DDL: 데이터 정의어(SCHEMA, DOMAIN, TABLE, VIEW, INDEX –스키마– 를
정의(Create)
하거나수정(Alter)
또는삭제(Drop)
할 때 사용하는 언어)- CREATE, ALTER, DROP
- CREATE, ALTER, DROP
- DML: 데이터 조작어(사용자가 응용 프로그램이나 질의어를 통하여 저장된
데이터를 실질적으로 처리
하는 데 사용되는 언어)- INSERT, DELETE, UPDATE
- INSERT, DELETE, UPDATE
- DCL: 데이터 제어어(데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어)
- GRANT(권한부여), REVOKE(권한부여취소), COMMIT(정상적으로 완료), ROLLBACK(이전으로 복귀)
- GRANT(권한부여), REVOKE(권한부여취소), COMMIT(정상적으로 완료), ROLLBACK(이전으로 복귀)
데이터 접속(Data Mapping)
- SQL Mapping: 프로그래밍 코드 내에 SQL을 직접 입력하여 DBMS의 데이터에 접속(ex. JDBC, ODBC, MyBatis)
- ORM: 객체와 디비를 연결(ex. JPA, Hibernate, Django)
트랜잭션(Transaction) - 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 특징:
원자성
(완벽하게 실행되어야 함),일관성
,독립성
(다른 트랙잭션이 접근 불가),영속성
(트랜잭션 실행이 완료되면 이는 영속적이다) - 트랜잭션을 제어하기 위해 TCL 명령어를 사용(COMMIT, ROLLBACK, SAVEPOINT)
—
절차형 SQL
- 특징: 플그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
- 프로시저: 특정 기능을 수행하는 일종의 트랜잭션 언어
- 트리거: 이벤트(입력, 갱신, 삭제) 발생때마다 관련 작업이 자동으로 수행된다.
- 사용자 정의 함수: 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리, 종료 시 예약어 Return을 사용하여 처리 결과를 단일값으로 반환함.
절차형 SQL의 테스트와 디버깅
- 테스트: 실행-결과 확인(Show)
- 디버깅: 기능 적합성 여부 판단
쿼리 성능 최적화
- 데이터 입출력 성능을 향상 시키기 위해 SQL 코드 최적화(APM 사용하여 최적화 할 쿼리를 선정)
- 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스를 재구성