데이터 베이스
: 여러 응용 시스템을 통해 액세스가 가능한 공유된 형태의 통합된 데이터 집합
- 데이터 : 현실세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값
- 정보 : 상황에 따른 적절한 의사결정을 할 수 있게 하는 지식으로 데이터의 유효한 해석이나 데이터 상호간의 관계를 말하는 것
데이터 베이스 관리 시스템
파일 시스템 file system
- 각 파일 단위로 업무와 관련된 데이터를 연장하며 이러한 파일들을 처리하기 위한 독립적인 어플리케이션과 상호연동 되어 있어야한다.
- 단점 : 데이터 중복성과 데이터 종속성
데이터베이스 관리 시스템 DBMS
- 파일 시스템의 단점 완화. 데이터를 효율적으로 관리 하기 위하여 사용자 어플리케이션과 데이터베이스 간의 인터페이스 역할을 하는 논리적 프로그램
- 데이터 모델에 따라 계층형, 망형, 관계형, 객체 지향, 객체 관계형 DBMS로 구분할 수 있다.
- 계층형 DBMS
데이터가 상하종속적인 관계로 구성되어 있으며 데이터의 엑세스 속도가 빠르고 데이터 사용량을 쉽게 예측할 수 있다는 장점을 가지고 있지만 변화하는 프로세서에 대한 적응이 쉽지 않다는 단점이 존재한다.
- 네트웍(망형) DBMS
데이터 구조를 네트웍 상의 노드 형태로 논리적으로 표현한 데이터 모델로서 각각의 노드를 서로 대등한 관계로 구성한 시스템이다.
구성과 설계가 복잡하며 궁극적으로 데이터의 종속성을 해결하지 못 한 시스템이다.
** 노드 : 시스템을 의미하는 것이 아닌 자료를 정의한다.
- 관계형 DBMS
기본 개념으로 데이터 베이스는 최소한의 의미를 가지는 테이블들로 구성되며 그 테이블들에 있는 필드로 연결한 것이다. 관계형 데이터베이스는 수학적 논리 관계를 테이블 형태로 구성한 구조로 테이블 내의 필드 중 일부를 다른 테이블과 중복함으로 해서 각 테이블 간의 상관관계를 정의한다.
업무변화에 대한 적응능력이 좋고 유지보수가 편리하며 높은 생산성, 응용 프로그램의 개발에 있어 용이하지만 시스템 부하가 상대적으로 높다는 단점이 있다.
- 객체 지향 DBMS
멀티미디어 데이터의 원할한 처리를 위해 고안된 데이터베이스이며 객체 지향적 프로그래밍 개념을 도입해서 구현한 시스템
- 객체 관계형 DBMS
관계형 데이터베이스의 안정된 성능에 기반하면서 멀티미디어 데이터를 원할하게 처리하기 위해 현실적으로 제안된 모댈
관계형 데이터베이스 관리 시스템
관계는 두 테이블 사이에 존재하며 관계를 맺고 있는 두 테이블 중 반드시 하나는 부모 테이블이고 반드시 하나는 자식 테이블이다.
(부모테이블의 기본키 PK 는 자식 테이블의 FK 로 전이 되어진다.)
- CASCADE 옵션
UPDATE CASCADE : 부모 테이블의 데이터를 수정할 때 이를 참조하고 있는 자식테이블의 데이터도 함께 수정한다.
DELETE CASCADE : 부모 테이블의 데이터를 삭제할 때 이를 참조하고 있는 자식테이블의 데이터도 함께 삭제한다.
데이터 베이스 모델링
현실 세계의 업무적인 프로세서를 물리적으로 데이터베이스화 하기 위한 과정으로 실체와 관계를 중심으로 표현하고 문서화하는 기법
정보 시스템의 중심을 데이터의 관점에서 접근하는 데이터 중심의 분석 방법
단계
계획 | 분석 | 설계 | 구현 | 테스트 | 유지보수 |
데이터베이스 설계
설계 과정 중에 오류가 발견되어 변경해야 한다면 이전 단계로 되돌아가 설계 내용을 변경할 수 있다.
1. 요구사항 분석 | 2. 개념적 설계 | 3. 논리적 설계 | 4. 물리적 설계 | 5. 구현 |
데이터 베이스의 용도를 파악하여 요구사항 명세서를 작성한다. |
현실 세계의 것을 사람이 이해할 수 있는 개념적으로 모델링 하는 것이다. | DBMS에 적합한 논리적 구조를 설계한다. | sql문 설계 |
개념적 데이터 베이스 모델링
어떤 정보가 필요하며 어떤 데이터를 DB 에 담아야 하는지 등을 나타내기 위해 실세계의 정보 구조의 모형을 변화하여 일반화 시키는 단계
업무적인 관점에서 접근하고 분석하는 관계이다. (산출물 : ER-Diagram)
E-R model 개체-관계 모델
현실에 존재하는 데이터와 그들간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 가장 널리 사용된다.
개체 | 속성 | 관계 |
ER 다이어그램에서 사각형으로 표현하며 사각형 안에 이름을 표기한다. |
ER 다이어그램에서 타원으로 표현하며 타원 안에 이름으로 표기한다. |
ER 다이어그램에서 마름모로 표현한다. |
논리적 데이터 베이스 모델링
개념적 설계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계(스키마의 설계)로서 정확한 업무 분석을 통한 자료의 흐름을 분석하여 실체와 속성들의 관계를 구조적으로 설계한다. 논리적 데이터 베이스 단계에서 완벽한 정규화 과정을 수행한다.
정규화
데이터의 중복을 방지하고, 효율적으로 데이터를 저장하기 위함 | ||
제 1 정규화 | 제 2 정규화 | 제 3,4 정규화 |
반복되는 속성이나 그룹 속성을 제거하고 새로운 실체를 추가한뒤 기존 실체와 1:N 관계를 형성한다. | 복합키로 구성된 경우 해당 테이블의 모든 컬럼들은 복합키 전체에 의존적이어야 한다. 복합키가 아닌 경우 제 2 정규화의 대상이 되지 않는다. |
PK 와 관련 없다. |
물리적 데이터 베이스 모델링
논리적 데이터 베이스 모델링에서 정의된 정규화된 모델을 개발 DBMS 의 특성 및 효율적 DBMS 가 되기 위한 데이터 분산등을 고려해 데이터베이스 스키마를 구축하는 단계이다.
= 논리 데이터 베이스 구조로부터 효율적이고 구현 가능한 물리적 구조의 데이터 베이스 구조를 설계하는 것
인덱스
데이터베이스 내의 테이블에서 원하는 데이터를 좀 더 빨리 찾을 수 있게끔 데이터의 위치 정보를 모아놓은 데이터베이스 내의 개체이며 인덱스는 항상 정렬된 상태를 유지한다.
정규화
커서
SELECT문장의 결과 집합(RECORD SET) 으로서 한 번 커서를 정의해서 만들면 추가로 SELECT할 필요 없이 바로 커서를 이용하여 각각의 레코드에 대한 데이터 처리 작업이 가능하다.
역정규화
정규화 된 스키마는 데이터를 입력, 수정, 삭제할 때 관계를 맺고 있는 테이블을 참조해야 하며 가장 작은 단위로 테이블에 나뉘어져 있기 때문에 연관된 정보를 보기 위해서는 조인을 수행해야 한다.
컬럼 역정규화 (데이터 중복)
파생 컬럼의 생성
계산을 통해 얻어질 수 있는 결과값을 테이블의 컬럼으로 만들어서 값을 저장하게 하면 조회할때마다 연산을 통해 결과 값을 얻지 않아도 된다.
테이블 분리
1) 컬럼을 기준으로, 2) 레코드를 기준으로 아래 그림은 컬럼을 기준으로 테이블을 분리한 예시이다.
'국비 교육 > SQL(Oracle)' 카테고리의 다른 글
[자바 - 오라클] (잊지 않으려고 적어둠)JPA 연결 - 1 (0) | 2024.02.13 |
---|---|
(이론) 데이터베이스 모델링(개념적 - 논리적 - 물리적) (0) | 2024.02.09 |
[오라클] PK - FK , 도시락 배달 테이블 생성하기 (0) | 2024.02.06 |
[오라클] 조인, 서브 쿼리 연습 문제 (0) | 2024.02.05 |