-
common-fileupload : 라이브러리를 이용하여 구현
-
form 태그를 이용 : form 태그안에 enctype="multipart/form.data" 이 꼭 있어야한다
-
Ajax 이용
-
이미지의 경우 미리보기
-
이미지의 경우 썸네일 이용
데이터 정규화
관계 스키마(Relation Schema) 설계
- 현실 세계를 가장 정확하게 표현하기 위한 데이터의 논리적 구조를 결정하는 것
1) 관계 스키마 설계 원칙 : 속성, 개체, 관계성을 식별하여 릴레이션을 구성, 중복이 발생하지 않도록, 데이터의 종속성을 고려
2) 스키마 변환 : Schema Transformation은 관련된 어트리뷰트를 수집한 이들 간에 존재하는 종속성을 파악하여 릴레이션을 보다 바람직한 형태의 릴레이션들로 다시 변환하는 과정
이상(Anomaly)현상
- 데이터 중복은 릴레이션을 조작할 때 곤란한 현상을 발생. 이것을 이상 현상이라 함
1) 삭제이상 : Delete Anomaly는 임의의 튜플을 삭제했을 때 그것과 관계를 형성하고 있는 관계성까지 모두 삭제되는 현상
2) 삽입이상 : Insert Anomaly는 임의의 튜플을 삽입했을 때 삽입 의도가 없는 관계까지도 삽입되는 현상
3) 갱신이상 : Update Anomaly는 임의의 데이터를 갱신했을 때 그것과 관계를 맺고 있는 데이터에 대해 일관성을 유지할 수 없는 현상
함수 종속(FD : Functional Dependency)
1) 기본 개념 : 좋은 릴레이션 설계를 위한 정형적 기준으로 속성의 의미와 속성 상호 간의 관계에서 유도되는 일종의 제약조건이다
2) 함수 종속의 정의
정규화(Normalization) 과정
1) 정규화의 개념 : 하나의 릴레이션에 하나의 의미만 존재할 수 있도록 릴레이션을 분해해 나가는 과정 NF라고 한다
1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF 순으로 보면 되겠다
2) 정규화의 목적 : 모든 릴레이션이 중복되지 않게 효과적으로 데이터베이스 내의 표현이 가능, 효과적인 연산이 가능하도록, 이상의 문제가 발생하지 않도록, 릴레이션을 재구성할 필요성을 감소시키도록.
3) 정규화의 필요성 : 자료의 저장 공간 최소화, 자료의 불일치 최소화, 자료 구조를 안정화, 이상 현상을 방지
4) 정규화 과정
5) 기본 정규형
- 제 1정규형
- 어떤 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어 있다면 제 1정규형에 속한다
- 제 2정규형
- 어떤 릴레이션 R이 제 1정규화에 속하고 기본키에 속하지 않은 모든 속성이 기본키에 완전 함수적 종속이면 제 2정규형에 속한다
- 제 3정규형
- 어떤 릴레이션 R이 제 2정규화에 있으면서 기본키에 속하지 않는 모든 속성들이 기본키에 이행적 함수 종속이 아니면 제 3정규형에 속한다
- 보이스 코드 정규형 (Boyce-Codd Normal Form : BCNF)
- 릴레이션 R의 모든 결정자가 후보키이면 릴레이션은 R은 BC 정규형에 속한다
- 제 4정규형
- 릴레이션 R에 비당영 MVD A ->> B 가 존재할 때 R의 모든 속성들도 또한 A에 함수 종속이면 릴레이션 R은 제 4정규형에 속한다
- 제 5정규형
- 릴레이션 R에 존재하는 모든 조인 종속(JD)이 릴레이션 R의 후보키를 통해서만 성립된다면 릴레이션 R은 제 5정규형 또는 PJ/NF(Projection-Join Normal Form)에 속한다
외래키 제약사항
DELETE ACTION
1) 제한(RESTRICT) : 자식 데이터가 있으면 부모데이터 삭제 안됨(기본)
2) 연쇄(CASECADE) : 부모데이터 삭제 시 자식 데이터도 함께 삭제(*)
3) 널값으로 처리(NULLIFY) : 부모데이터 삭제 시 자식 데이터가 NULL이 됨
pom.xml
web.xml
servlet-context.xml