: 실체(Entity)와 관계(Relation)를 중심으로 명확하고 체계적으로 표현하여 문서로 만드는 기법
[데이터베이스 설계 순서]
데이터베이스 계획-> 요구사항 분석-> 개념적 데이터 설계-> 논리적 데이터 설계-> 물리적 데이터 설계-> 구현
논리데이터모델: 개념 데이터 모델을 상세화 하여 논리적인 데이터 집합, 관리 항목, 관계를 정의한 모델을 말함
1) 개체
2) 속성: 데이터베이스를 구성하는 가장 작은 논리적 단위
3) 관계
: 대표적인 논리데이터 모델링 방식, 개체와 관계를 릴레이션이라는 테이블로 표현
릴레이션의 구성 요소
데이터 종속성, 효율적인 데이터 처리, 데이터의 일관성 유지 등의 요구를 충족시키고 이상현상을 제거하기 위해 정규화가 필요하다.
(이상의 종류: 삽입이상, 삭제이상, 수정이상)
함수적 종속: 개체를 구성하는 속성들이 어떤 기준값 속성에 의해 종속되는 현상을 의미
1) 완전 함수 종속: 속성들의 집합 X에 대해 Y가 함수적으로 종속되면서 X의 부분 집합에 대해서는 함수적으로 종속하지 않는 경우
2) 부분 함수 종속: 기본키의 일부만 알아도 속성을 알 수 있는 경우
3) 이행적 함수 종속: A->B, B->C 일때, A->C가 성립되는 경우
[정규화 과정]
비정규 릴레이션 ->
원자값이 아닌 도메인을 분해 -> 1NF ->
부분 함수 종속 제거 -> 2NF ->
이행 함수 종속 제거 -> 3NF ->
결정자가 후보키가 아닌 함수 종속 제거 -> BCNF ->
다치 종속성 제거 -> 4NF ->
조인 종속 -> 5NF
: DB의 성능 향상을 목적으로 정규화를 통해 분할된 테이블을 다시 합치는 과정을 의미, 중복성의 원리를 활용하여 데이터 조회시 성능을 향상시키는 역할
[반정규화 적용 방법]
1) 반정규화의 대상을 조사한다.
2) 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토한다.
3) 반정규화를 적용한다.
반정규화 기법
: 실제 테이블에서 유도되는 가상의 테이블, 실제 저장된 내용을 사용자에게 보여주기 위한 가상의 테이블
: 시스템 자신이 필요로 하는 스키마 및 여러 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스
: 데이터 사전(Data Dictionary)이라고도 한다.
: 시스템 카탈로그에 저장되는 내용을 메타데이터라고 한다.
: 카탈로그의 정보를 SQL의 UPDATE, DELETE, INSERT문으로 직접 갱신하는 것은 불가능하다.
: 사용자가 SQL문을 실행하면 시스템은 자동으로 관련 카탈로그 테이블을 갱신한다.
[데이터 저장소 연결 순서]
드라이버 로딩-> 연결-> 쿼리 전달-> 결과 수신
: SQL을 이용하여 조작 대상 데이터 집합에서 검색, 입력, 수정, 삭제와 같은 조작을 효고적으로 할수있도록 고안된 언어
: SQL을 이용해 생성된 데이터를 조작하는 프로그램
- 데이터 조작 프로시저
1) 구축한 데이터 저장소에 연결해 데이터 저장소 오브젝트 생성
2) 데이터의 입력 및 변경 수행
3) 저장된 데이터를 검색하는 프로시저 작성
도구: CRUD Matrix
- 데이터 검색 프로시저
도구: Dynamic SQL, Static SQL
- 절차형 데이터 조작 프로시저
1) PL/SQL을 활용하여 프로시저를 작성
2) 저장형 프로시저 객체 유형을 정의
3) 정의한 객체를 생성
4) 생성하여 저장된 프로시저 객체를 활용
도구: Stored Function, Stored Procedure, Stored Package, Trigger
+) PL/SQL: SQL을 확장한 절차적 언어
장점: 컴파일 불필요, 모듈화 가능, 절차적 언어 사용, 에러 처리
+) 트리거(Trigger): DBMS에서 묵시적으로 수행되는 프로시저
-테이블과는 별도로 데이터베이스에 저장된다.
-뷰가 아닌 테이블에 관해서만 정의될 수 있다.
-문장 트리거: 전체 트랜잭션 작업에 대해 1번 발생
-행 트리거: 각 행에 대해서 트리거 발생