데이터베이스 설계
데이터베이스 설계 시 고려사항
- 무결성: 데이터 삽입/삭제/갱신 후에도 데이터값은 제약조건을 만족해야하는 조건
- 제약조건: 저장된 데이터값이 만족해야 할 주어진 조건
- 권한이 있는 사용자로부터 데이터베이스 보호
- 일관성: 저장된 데이터값 또는 특정 질의에 대한 응답은 모순없이 일치하는 특성
- 회복성: 시스템 장애 발생 시, 직전 일관된 데이터 상태로 복구하는 기법
- 보안: 불법적인 데이터 변경, 손실, 노출에 대한 보호 기능
- 효율성: 시스템 응답시간 단축, 저장공간 최적화, 시스템 생산성 향상
- 확장성: 시스템 운영에 영향을 주지 않고 새로운 데이터를 계속적으로 추가할 수 있는 기법
데이터베이스 설계 단계⭐️⭐️
1. 요구사항 수집 및 분석
- 데이터베이스의 사용자, 사용 목적, 사용 범위, 제약조건 등을 정리해 명세서 작성
- 트랜잭션의 유형과 실행 빈도 같은 동적 데이터베이스 처리 요구조건 정의
2. 개념적 설계
- 현실 세계의 요구사항과 데이터를 추상적인 관점에서 표현
- DBMS에 독립적으로 데이터베이스 설계 진행
- 개념적 스키마 모델링(예: ERD)
- 트랜잭션 모델링 및 정의
3. 논리적 설계
(20.6)
- 목표 DBMS에 맞는 (종속적인) 논리 스키마 설계
- 목표 데이터모델을 기반으로 설계
- 트랜잭션의 인터페이스 설계 수행
- RDB의 경우 테이블 설계 및 정규화
- 논리적 데이터베이스 구조로 매핑
- 스키마의 평가 및 정제
- 산출물: 릴레이션 스키마
4. 정규화
5. 물리적 설계
- 목표 DBMS에 맞는 (종속적인) 물리적 구조의 데이터로 변환
- 저장 레코드, 접근 경로 설계
- 트랜잭션의 세부 설계 수행
- 산출물: 인덱스 구조
6. 구현
- 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성
7. 데이터베이스 튜닝
관계형 데이터베이스 관리 시스템
RDBMS 종류
Oracle
- 미국 Oracle 사에서 개발
- 대규모 데이터베이스 환경에 적합, 많은 정보 처리 시 우수한 성능
- 고성능 트랜잭션 처리 기능 포함으로 데이터 처리 속고 빠름
MSSQL
- 미국 Microsoft 사에서 개발
- 주로 Windows 환경과 함께 사용, IIS(Internet Information Serices) 서버와의 호환성이 좋음
MySQL
- 오픈소스 RDBMS 중 가장 널리 사용됨
- 다양한 운영체제와 프로그래밍 언어 지원하여 범용성이 높음
- 대용량 데이터 처리에도 빠르고 효과적인 성능
DB2
- IBM에서 개발
- 다중 스레드 기반 아키텍처를 통해 안정적이고 뛰어난 성능