8. 데이터베이스 모델링
요구사항 수집 > 요구사항 분석(ERD) > 코딩 > 테스트 > 납품 > 유지보수 기간.
개발 프로세스.
필요한 게 무엇인지 먼저 미팅을 통해 필요한 부분을 메모하고(요구사항 수집), 팀원과 미팅을 하면서 각자 역할 배분을 통해 방향성 체결함으로 모델링 시작.(어떠한 데이터를 저장할 것인가 / 가장 설명하기 좋은 것은 시각화. ERD)
DB가 짜여지면, 코딩 진행.
※ ERD (entity relation diagram)
1) 종류 (이론상)
- 개념적 설계 : 간략하게 큰 그림을 그림.
- 논리적 설계
- 물리적 설계 : (논리적 설계까지 하나로 포함하는 경우가 많음) 어떤 DBMS를 사용해서 만들 것인가.
2) 관계
- 1 : 1
- 1: 다
- 다 : 다
3) 가이드 / 정규화
- 제1 정규화 : 속성값은 반드시 원자값이어야 한다. / 값을 여러 개 집어넣으면 안 된다. 1 : 다로 만들어야 제 1정규화
※ 숫자 하나에 하나의 데이터 값이 들어가야 함. / 결국 테이블을 하나의 계열로 분리.
- 제2 정규화 : 기본키가 복합키일때, 복합키의 일부분이 다른 속성의 결정자인지 여부 판단.
모든 키가 아닌 컬럼은 기본키 전체에 의존적이어야 한다.
- 제3 정규화 : 키가 아닌 컬럼은 다른 키가 아닌 컬럼에 의존적이어서는 안 된다.
고과율의 경우에는 프로젝트 역할과 직접적인 연결고리가 있지만 프로젝트 번호와는 별개의 문제이기 때문에 분리를 시킴. (이유는 중복이 무수히 많은 부분이 중복이 되기 때문)
중복을 최소화 시킴.
- 제4 정규화 : 다 : 다를 1 : 다로 바꿔주는 과정 / 따로 언급하지는 않고, 1, 2, 3 정규화만 잘 알아두면 좋음.
- 제5 정규화 :
4) 설계 tool
-ER-win 4.x (CA)
-sqldeveloper
-draw.io
1 : 다의 연결고리. / 빈 동그라미는 null 값을 허용한다는 의미.
1:1 관계는 식별관계라고 생각하면 됨.
CRUD = DB의 기본 연산.
다:다 식별관계
공급업체 상품 회원 모두 상품에 대한 한가지에 대해서만 다루지 않음.
모든 다:다는 1:다 를 거쳐가야 한다.
허무해.
9. View
1) 가상 테이블
2) 실제 테이블을 가지고 여러 관점에서 다양하게 사용할 수 있게 하는 개념.
3) 목적
- 성능향상
- 사용자 편의
- 보안 관리
4) 문법
- create [or replace] view 뷰이름 [{컬럼명, ..}] as select 문;
5) 주의할 점 / insert, update, delete.
-view를 통해 입력되지 않은 컬럼에 대한 설정
-view를 통해 계산된 컬럼이나 컬럼의 수정.
-view를 통해 여러 테이블을 수정.
-범위를 벗어난 수정.
create or replace view vwemp20
as
select empno, ename, deptno, job, sal, hiredate from where deptno = 20;
select * from vwemp20;
* 관리자로 접속
GRANT CREATE VIEW to 사용자 아이디;
select * from wvemp20;
10. Stored Procedure
Stored Procedure는 SQL 구문을 미리 작성하여 저장해둔 후 필요할 때마다 호출하여 사용하는 것을 말하며. 특정 작업을 수행하는 SQL 코드를 하나의 재사용 가능한 패키지로 묶어둔 것. 이를 통해 코드의 중복을 줄이고, 유지 관리를 용이하게 하며, 성능을 향상시키는 등의 이점을 얻을 수 있음
11. Trigger
Trigger는 데이터베이스에서 특정 이벤트(INSERT, UPDATE, DELETE 등)가 발생하면 자동으로 실행되는 절차적 코드. 데이터의 무결성을 유지하거나, 특정 조건에 따른 반응을 자동화하는 등의 목적으로 사용됨.