🎶 데이터베이스 설계에 대해 알아보자!
1. 데이터베이스 설계의 개념
데이터베이스 설계란,
사용자의 요구를 분석 -> 컴퓨터에 저장할 수 있는 DB 구조에 맞게 변형 -> 특정 DBMS로 DB를 구현
의 일련의 과정을 거쳐 일반 사용자들이 사용하게 하는 것이다.
(🎃 DB란 DataBase의 약자로써, 전자적으로 저장되는 데이터의 모음이다.)
(🎃 DBMS란 DataBase Management System의 약자로써, DB 내 데이터를 많은 사용자들이 접근할 수 있도록 해주는 미들웨어이다.)
2. 데이터베이스 설계 시 고려사항
- 무결성 : 삽입, 삭제, 갱신 등 연산 후에도 DB에 저장된 데이터가 정해진 제약 조건을 항상 만족해야 한다.
- 일관성 : DB에 저장된 데이터들이 처음부터 끝까지 변함없이 일정해야 한다.
- 회복 : 시스템 장애가 발생했을 때 장애 발생 직전 상태로 복구할 수 있어야 한다.
- 보안 : 불법적 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 한다.
- 효율성 : 응답시간의 단축, 시스템의 생산성 등이 가능해야 한다.
- 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 한다.
3. 데이터베이스 설계 순서
요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
(1) 요구 조건 분석
요구 조건 분석은 DB를 사용할 사람들의 필요한 용도를 파악하는 것이다.
DB 사용자에 따른 업무와 데이터의 종류, 용도, 형태 등을 수집 -> 수집된 정보를 바탕으로 '요구 조건 명세'를 작성
(2) 개념적 설계(개념화)
개념적 설계란 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과의 통신을 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
- 개념 스키마 모델링 + 트랜잭션 모델링을 병행 수행
- 요구 조건 명세를 DBMS에 독립적인 'E-R 다이어그램'으로 작성 (🎃 Entity-Relationship Model 을 표현한 diagram을 E-R 다이어그램이라고 부른다.)
- DBMS에 독립적인 '개념 스키마'를 설계 (🎃스키마란 DB의 구조와 제약조건에 관해 전반적인 명세를 기술한 것으로, 개념 스키마란 DB의 전체적인 논리적 구조라고 이해하면 충분하다.)
(3) 논리적 설계(데이터 모델링)
논리적 설계란 현실 세계에서 발생하는 자료를 컴퓨터가 이해할 수 있는 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 mapping 시키는 과정이다.
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 '논리적 스키마'를 설계하는 단계
- 개념 세계의 데이터를 필드로 기술된 데이터 타입 + 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델링
- '트랜잭션'의 인터페이스를 설계 (🎃 트랜잭션이란 DB 상태 변화시키기 위해 수행하는 작업의 단위를 의미한다.)
(4) 물리적 설계(데이터 구조화)
물리적 설계란 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
- 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정
- 저장 레코드 양식, 순서, 접근 경로 등과 같은 정보를 사용해 데이터가 컴퓨터에 저장되는 방법을 묘사
- 고려사항 : 트랜잭션 처리량, 응답시간, 디스크 용량 등
(5) 데이터베이스 구현
데이터베이스 구현 단계란 데이터 베이스 스키마를 파일로 생성하는 단계이다.
- 사용하려는 특정 DBMS의 DDL을 이용해 데이터베이스 스키마를 기술한 후, 컴파일하여 빈 DB 파일을 생성 (🎃DDL 이하 데이터 정의어란 Data Definition Language의 약자로써, DB를 정의하는 언어를 뜻한다.)
- 생성된 빈 DB 파일에 데이터를 입력
- 응용 프로그램을 위한 트랜잭션을 작성
- DB 접근을 위한 응용 프로그램 작성
'정보처리기사' 카테고리의 다른 글
SW 신기술 - 증발품, OGSA, SOA, SaaS, CEP, 디지털 트윈, 텐서플로, 도커, 그리고 스크래피 (2) | 2025.01.23 |
---|---|
SW 신기술 - 인공지능, 뉴럴링크, 딥 러닝, 전문가 시스템, 가상현실, 증강현실, 혼합현실, 그레이웨어, 매시업, RIA, 그리고 시맨틱 웹 (0) | 2025.01.22 |
OSI 참조 모델 - 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층 (0) | 2025.01.18 |
운영체제(OS) - Windows(GUI, PnP, OLE), UNIX, LINUX 그리고 MacOS (2) | 2025.01.17 |
정규화(Normalization) - 1NF, 2NF, 3NF, BCNF, 4NF 그리고 5NF (0) | 2025.01.08 |
자료 구조 - 선형 리스트, 스택, 큐, 데크, 그리고 그래프 (0) | 2025.01.04 |
정렬(SORT) - 퀵 정렬, 힙 정렬, 합병 정렬, 기수 정렬 (0) | 2025.01.03 |
정렬(SORT) - 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬 (0) | 2025.01.02 |