DataBase이론 전체요약
1. 정보 시스템과 방법론
(1) EA와 DA
1) EA : EA는 원활한 기업 활동을 통해 발생하는 정보를 효과적으로 저장 및 관리하기 위한 정보시스템을
구축하는 행위
2) DA : EA활동 안에 데이터들을 효과적으로 처리할 수 있도록 설계 및 구축하는 것을 DA라 한다.
(2) 방법론
1) 구조적 방법론 : 기업에서 발생하는 모든 프로세스를 중심으로 정보시스템을 분석, 설계, 구축하는
방법론이며 Data Flow Diagram 라는 자료 흐름도를 통해 수행
2) 정보공학 방법론 : 구조적 방법론의 단점인 생산성과 유지보수를 보완하기 위해 나온 방법론으로
데이터베이스 관리기법을 분석해 설계하는 방법이며 ERD를 활용해 수행
3) 객체지향 방법론 : 기업의 프로세스와 데이터, 모두를 데이터베이스 관리기법으로 설계하는 방법이며
Class Diagram을 통해 수행
(2) DBMS
1) Flat-File(SAM) - 1960년대
2) Network-DBMS, Hierarchical-DBMS - 1970년대
3) 관계형 DBMS - 1980년대
- 파일 구조 시스템과의 차이점
: 무결성, 데이터공유, 데이터 정확성 및 일관성, 중복성 제거, 불일치 제거, 표준화 가능
4) 관계형 DBMS, 객체 관계형 DBMS - 1990년대
5) 관계형/객체 관계형/객체 지향형 DBMS - 2000년대
2. 요구사항과 장표분석
(1) 정보 요구사항 수집절차
1) 관련 문서 수집
- 기대 산출물 : 수집장표 목록
2) 사용자 면담
- 기대 산출물 : 사용자 요구사항 정의서
3) 장표 분석
- 기대 산출물 : 데이터 항목 일람표(*중요), 이 단계에서 얻는 산출물을 기반으로 데이터 모델링, 아키텍처가 구현
4) 프로세스 분석
- 기대 산출물 : Data Flow Diagram, 프로세스 정의서 등
5) 사용자 요구사항 검증
- 검증 방법 : CDUR 매트릭스 등
3. DB모델링
3.1. 개념적 데이터모델링
(1) 정의
- ISP단계에서 이루어지며 실세계의 현상을 알기 쉽고 체계적으로 모형화 해 놓은 것
- 시스템적인 측면(H/W,S/W,DBMS)가 아닌 실세계 그대로를 표현
- 프로세스와 독립적으로 사용자 관점에서 인식하고 분석
- 구체적인 설계 단계가 아니라 개괄적인 의미를 포함하는 단계
(2) 목적
- 연관조직의 정보요구에 대한 정확한 이해
- 사용자, 설계자, 개발자 간에 효율적인 의사소통 수단
- 고품질의 S/W와 유지보수 비용의 감소효과
(3) 특징
- 데이터 중심의 분석
- 무결성, 데이터의 공유, 융통성이 높은 데이터베이스 기반 설계가 가능
- 시스템 환경요인에 대한 논리적인 개념
(4) 용어
1) Entity : 하나의 객체를 말하며 DB설계단위에서의 Relation이라고 생각하면 된다.(EX: 사원 Relation)
2) Attribute : Entity안에 있는 속성을 의미(EX: 사원 Relation의 이름, 나이, 부서, 직급 등)
3) UID : DB설계 단위에서의 primary key임, 즉 실별자.(EX: 사원번호, 주민번호 등)
4) Relationship : Entity간의 관계를 의미. (EX: 업무적 상관관계 등)
3.2. 상세적 데이터모델링(정규화)
(1) 정의
- 개념적 데이터모델링에서 정의됐던 Entity, Attribute 등 중 불필요하거나 잘못된 것들을 제거, 재배치하는 등 실체 간의 관계를
명확히 하는 단계. 즉, 개념적 데이터모델링은 시스템적인 측면을 배체하고 DB모델링을 진행하였고 이를 시스템에 반영하기 위한
상세 단계이다. 이를 정규화라고도 한다.
(2) 목적
- 데이터의 중복성 제거
- 데이터 모형 단순화
- Attribute의 배열 상태 검증
- Entity, Attribute의 누락여부 검증
- 데이터 모형의 안정성 유지
(3) 정규화
1) 제 1정규화(1NF)
2) 제 2정규화(2NF)
3) 제 3정규화(3NF)
4) BCNF
5) 제 4정규화(4NF)
6) 제 5정규화(5NF)
(4) 장점 및 단점
1) 정규화 정도가 높은 경우
: 유연한 데이터 구축, 데이터의 정확성 높아짐, 물리적 접근이 복잡함, 길이가 짧은 데이터 생성
2) 정규화 정도가 낮은 경우
: 데이터의 결합처리가 감소, 물리적 접근이 단순, 데이터에 많은 Lock발생, 길이가 긴 데이터 생성
※ 과도한 정규화 작업을 피해야 하는 경우
- 대상의 Entity가 검색만으로 사용되는 경우
- 사용되는 빈도가 적은 경우
- 소규모의 데이터를 저장하는 Entity이거나, 드물게 변경되는 경우
- 중복 데이터의 변경이 거의 발생하지 않고 저장공간이 비교적 적은 경우
4. DB설계
4.1. 논리적 데이터베이스 설계
4.2. 물리적 데이터베이스 설계
5. 테이블의 물리적 설계
6. 인덱스의 물리적 설계
'IT > DataBase' 카테고리의 다른 글
SQL 정리 (0) | 2020.05.12 |
---|---|
[SQL] 날짜 함수 (0) | 2015.11.06 |
View (0) | 2015.09.23 |