정규화



이상현상(삽입,삭제,정렬시)의 제거


릴레이션 분해


함수종속의 유지


완전함수 종속, 부분함수 종속, 이행함수 종속이 있다.


부분함수 종속을 해결하는것이 2정규화.


이행함수 종속을 해결하는것이 3정규화.


릴레이션의 모든 속성을 후보키로 만드는것을 보이스코드 정규화.


릴레이션에서 다치 종속 관계가 성립하는 경우 4정규화


릴레이션에서 조인 종속이 성립하는 경우 5정규화


릴레이션에서 이상 현상이 발생할 수 있는 함수 종속관계를 제거하기 위하여, 릴레이션을 분해하는 작업.


함수 종속 관계



X -> Y : Y는 X에 완전 함수적 종속 되어있다.


X : 결정자이자 기본키라고 한다.


Y : X의 종속자


한 테이블 내에서 기본키가 A, B(복합키)일때, C는 A, B에 종속 되어있으나, D는 B에만 종속되어 있을때, D를 부분함수 종속이라고 한다.


R(A,B,C,D)는 제2 정규화가 필요하다.


정규화 후에는 R1(A,B,C,) ,R2(B,D)로 나누어진다.


B는 R1의 외래키, R2의 기본키로 작동한다.



한 테이블 내에서 A->B, B->C일때 A->C를 결정할 수 있게 되면 이행함수 종속관계라고 한다.


R(A,B,C)는 제 3정규화가 필요하다.


정규화 후에는 R1(A,B), R2(B,C) 로 나눈다. 이유는, A가 B를 결정하는데 B가 외래키 이므로 A에 의해 C도 결정된다고 논리적으로 이해할 수 


있기 때문이다. R1(A,B) R2(A.C)는 이런 논리적인 연결이 불가능하므로 안된다.



학번->(성명,학과,학년) X->Y 의 예



기본키는 릴레이션의 속성명에 밑줄이 쳐져 있다.


'프로그래밍 > ---DBMS---' 카테고리의 다른 글

관계 데이터 연산  (0) 2018.09.29
DB 용어 정리 DDL DML DCL TCL  (30) 2018.05.24


@Aspect를 이용한 AOP 구현


작업순서


의존설정

@Aspect 어노테이션을 이용한 ASpect 클래스 제작

XML 파일에 <aop:aspectj-autoproxy/> 설정



XML에 <aop:aspectj-autoproxy/>가 @Aspect 어노테이션이 붙어있는 클래스를 찾아서 proxy를 만들어준다.


클래스 내의 @Pointcut 어노테이션이 붙어있는 메소드를 선언한다. 이 어노테이션에는 proxy가 적용될 범위를 지정해준다.


@Around 등의 어노테이션이 붙어있는 메소드가 proxy로 작동할 메소드 인데 @Pointcut의 범위 안에 드는 메소드가 실행될때


해당 어노테이션의 조건에 맞춰서 공통 기능 -> 핵심 기능 -> 공통 기능 순서로 실행된다.




@Before @After 처럼 아예 실행 위치만 지정해주는 어노테이션도 있다.



AspectJ Pointcut 표현식


AspectJ 문법


Execution : 실행할 메소드의 형식 (public void get*(..)) , 범위 (com.kjworks.ex.*.*())를 정한다.


within : 실행할 메소드의 패키지 안에 있는 메소드


bean : 특정 빈에만 실행 (이름의 형식)



'프로그래밍' 카테고리의 다른 글

[AOP] 관점 지향 프로그래밍 (2)  (0) 2018.09.28
[AOP] 관점 지향 프로그래밍 (1)  (30) 2018.09.28
Postman  (0) 2018.09.10

XML 기반의 AOP 구현


1) 의존 설정 (pom.xmll)

2) 공통기능의 클래스 제작 - Advice 역할 클래스

3) XML 설정 파일에 Aspect 설정


XML 파일 설정


<aop:config> : aop 설정 부분


<aop:aspect id, ref> 참조할 aop 설정 클래스의 빈 id,와 aspect의 id


<aop:pointcut id, expression> aop 설정을 적용할 위치와 그곳을 id로 지정


<app:around pointcut-ref, method>aop 설정 메소드(프록시)명과 설정을 적용할 위치 id



공통기능을 먼저 실행하고, 핵심 기능을 부가적으로 실행하여


겹치는 기능을 분리해 관리할 수 있는 부분


<aop:before> 메소드 실행 전에 advice 실행

<aop:after-returning> 정상적으로 메소드 실행 후에 advice 실행

<aop:after-throwing> 메소드 실행중 exception 발생시 advice 실행

<aop:after> 메소드 실행중 exception이 발생하여도 advice 실행

<aop:around> 메소드 실행 전/후 및 exception 발생시 advice 실행





참조



신입SW인력을 위한 실전 자바(Java) 스프링(Spring) 동영상과정 제 09강 AOP-I


'프로그래밍' 카테고리의 다른 글

[AOP] 관점 지향 프로그래밍 (3)  (0) 2018.09.28
[AOP] 관점 지향 프로그래밍 (1)  (30) 2018.09.28
Postman  (0) 2018.09.10

+ Recent posts