Oracle Types of Data Integrity
A. Nulls
- 기본적으로 Column은 Null을 허용한다.
Column에 대해서 null을 포함하는 row들의 insert나 또는 update를 허용하는 또는 허용하지 않는 하나의 column에 대해서 정 의되는 규칙.
B. Unique Column Values
-Column(또는 column들의 집합)에 대해서 unique value를 포함하는 row들의 insert나 또는 update만을 허용하는 column들(또는 column들의 집합)에 대해서 정
의되는 규칙, 즉 지정된 열또는 열들에서중복된 값을 허용안함
- Unique 제약조건을 구성하는 열중 일부분이 Null을 허용한다면 Null을 허용하지 않는 열은 동일한 값을 가질수 없다.
C. Primary Key Values
-Table에 있는 각 row는 column(또는 column들의 집합)에 있는 value들에 의해서 유일하게 식별될 수 있도록 하는 하나의 column(또는 column들의 집합)에 정의된
규칙.
- Primary Key Column은 Null을 허용하지 않는다.
- 만약 dept Table의 dept_no Column이 Primary Key라면 해당열에 대한 고유 인덱스를 암시적으로 생성하며 해당열에대해 not null제약조건을 암시적으로 생성한다.
- Primary Key Column은 16개 까지로 제한됨
D. Referential Integrity(참조 무결성)과 Foreign Key 무결성 제약조건
- 만약 Column 또는 column들의 집합에 대한 값(the dependent value)이 관련된 table의 column에 있는 값(the referenced value)과 match 된다면 하나의 row에
대한 insert 또는 update만을 허용하는 하나의 table에 존재하는 column(또는 column들의 집합)에 대해서 정의된 규칙.
-Referential integrity는 또한 어떤 data 조작의 유형이 참조되는 값들에 허용되는 지와 이러한 action들이 종속된 값들에 어떠한 영향을 주는 지를 지시하는 규칙들을 포함한다.
Restrict
참조되는 data의 update 또는 deletion을 허용하지 않는 referential
integrity.
Set to Null
참조되는 data가 update되거나 delete될 때, 관련되는 모든 종속된 data는 NUll이 설정된다.
Set to Default
참조되는 data가 update되거나 delete될 때, 관련되는 모든 종속된 data는 default value가 설정된다.
Cascade
참조되는 data가 update될 때, 관련되는 모든 종속된 data도 update된다; 참조되는 row가 delete될 때, 관련되는 모든 종속된 row들도 delete된다.
F. Check Constrints
- 각 열또는 열집합에 대한 Check Constraints는 지정된 조건이 참인지 거짓인지 알수있게 한다.
- 사용자가 확인 조건을 지정함으로서 특수하거나 복잡한 무결성 조건을 시행한다.
- 문자열 리터럴이나 인수(투캐랙터, 투넘버, 투데이트)로 NLS 매개변수를 가지는 SQL을 포함한는 제약조건을 평가하기 위해 Oracle은 기본적으로 DataBase의 NLS설정값을 사용한다.
2013년 8월 10일 토요일
2013년 8월 5일 월요일
Struts의 ActionServlet
Struts의 ActionServlet
Struts의 ActionServlet은 javax.servlet.http.HttpServlet 클래스를 상속 받았으며 HTTP 요청을 스트럿츠의 적절한 핸들러에게 보내는 역할을 수행 합니다.
스트럿츠에서 클라이언트의 요청을 처리하는 초기 진입은 ActionServlet이 담당하고 있습니다. 모델 2에서는 UserServlet이나 또 다른 서블릿을 필요할 때마다 새로 작성할 필요가 있지만 스트럿츠에서는 ActionServlet 하나만을 이용하여 모든 요청을 처리하는 하는 것이 가능 합니다.
Struts1.1 이전 버전에서는 ActionServlet이 요청을 받아 핸들러를 호출하는 유일한 클래스 였지만 1.1 버전 이후 부터는 ora.apache.struts.action.RequestProcessor 라는 클래스가 추가되어 클라이언트의 요청을 처리 할 수 있게 되었습니다.
ActionServlet은 클라이언트의 요청을 받게 되면 URI를 사용하여 어떤 Action이 주어진 요청을 처리할 것인지를 결정 하는데 이때 struts-config.xml 파일에 설정된 Action 태그에 설정된 내용을 확인 합니다. URI는 Action 설정의 path 속성과 일치해야 합니다.
아래 struts-config.xml 파일의 내용을 참고 하세요~
<action
path="/LoginSubmit"
type="login2.LoginAction"
name="loginForm"
validate="true"
input="/login.jsp"
/>
만약 login.jsp에서 HTML의 <form> tag에 action=/LoginSubmit 이라고 한 후 submit 버튼을 누르게 되면 톰캣은 struts-config.xml의 action의 path와 일치함을 알고 login2.LoginAction 클래스를 실행시킴으로써 Action을 처리하게 되는 것 입니다.
ActionServlet은 주어진 입력 값 들을 한꺼번에 자바 빈즈로 묶을 수 있는데 이 자바 빈은 스트럿츠 ActionForm 클래스의 서브클래스로 구성 됩니다. 이를 폼빈(FormBean) 이라고 하며 struts-config.xml 파일에서 <form-bean> 이라는 태그에서 설정을 하게 됩니다.
아래는 struts-config.xmml 파일에서 설정 예 입니다.
<form-beans>
<form-bean name="loginForm" type="login2.LoginForm">
<form-property name="pwd" type="java.lang.String" />
<form-property name="id" type="java.lang.String" />
</form-bean>
</form-beans>
이때 <action> 태그의 name과 <form-bean>의 name이 일치함을 잘 보시기 바랍니다.
다른 자바 서블릿과 마찬가지로 Struts의 ActionServlet 역시 웹 애플리케이션의 배치 스크립트(web.xml)에 정의를 해야 하는데 그 내용은 아래와 같습니다.
<!-- ActionServlet Congif ================================-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- ActionServlet Mapping ====================================-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
확장자가 .do 로 넘어오는 요청은 ActionServlet으로 서비스 함을 의미합니다.
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍
실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
Struts의 ActionServlet은 javax.servlet.http.HttpServlet 클래스를 상속 받았으며 HTTP 요청을 스트럿츠의 적절한 핸들러에게 보내는 역할을 수행 합니다.
스트럿츠에서 클라이언트의 요청을 처리하는 초기 진입은 ActionServlet이 담당하고 있습니다. 모델 2에서는 UserServlet이나 또 다른 서블릿을 필요할 때마다 새로 작성할 필요가 있지만 스트럿츠에서는 ActionServlet 하나만을 이용하여 모든 요청을 처리하는 하는 것이 가능 합니다.
Struts1.1 이전 버전에서는 ActionServlet이 요청을 받아 핸들러를 호출하는 유일한 클래스 였지만 1.1 버전 이후 부터는 ora.apache.struts.action.RequestProcessor 라는 클래스가 추가되어 클라이언트의 요청을 처리 할 수 있게 되었습니다.
ActionServlet은 클라이언트의 요청을 받게 되면 URI를 사용하여 어떤 Action이 주어진 요청을 처리할 것인지를 결정 하는데 이때 struts-config.xml 파일에 설정된 Action 태그에 설정된 내용을 확인 합니다. URI는 Action 설정의 path 속성과 일치해야 합니다.
아래 struts-config.xml 파일의 내용을 참고 하세요~
<action
path="/LoginSubmit"
type="login2.LoginAction"
name="loginForm"
validate="true"
input="/login.jsp"
/>
만약 login.jsp에서 HTML의 <form> tag에 action=/LoginSubmit 이라고 한 후 submit 버튼을 누르게 되면 톰캣은 struts-config.xml의 action의 path와 일치함을 알고 login2.LoginAction 클래스를 실행시킴으로써 Action을 처리하게 되는 것 입니다.
ActionServlet은 주어진 입력 값 들을 한꺼번에 자바 빈즈로 묶을 수 있는데 이 자바 빈은 스트럿츠 ActionForm 클래스의 서브클래스로 구성 됩니다. 이를 폼빈(FormBean) 이라고 하며 struts-config.xml 파일에서 <form-bean> 이라는 태그에서 설정을 하게 됩니다.
아래는 struts-config.xmml 파일에서 설정 예 입니다.
<form-beans>
<form-bean name="loginForm" type="login2.LoginForm">
<form-property name="pwd" type="java.lang.String" />
<form-property name="id" type="java.lang.String" />
</form-bean>
</form-beans>
이때 <action> 태그의 name과 <form-bean>의 name이 일치함을 잘 보시기 바랍니다.
다른 자바 서블릿과 마찬가지로 Struts의 ActionServlet 역시 웹 애플리케이션의 배치 스크립트(web.xml)에 정의를 해야 하는데 그 내용은 아래와 같습니다.
<!-- ActionServlet Congif ================================-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- ActionServlet Mapping ====================================-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
확장자가 .do 로 넘어오는 요청은 ActionServlet으로 서비스 함을 의미합니다.
2013년 7월 28일 일요일
(오라클자바개발자실무교육,오엔제이프로그래밍실무교육센터)JAVA OOP OverL oading과 Overriding
슈퍼클래스로부터 메소드를 상속받을 때, 서브클래스 내에 같은 이름의 메소드가 있는 경우에
시그네췌(Segnature)가 다르면 중복(overloading)이 되고 시그네췌 (Segnature) 가 같으면 재정의(overriding)가
된다.
오라클자바커뮤니티에서 설립한
오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝,
힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
오버라이딩
상속관계에 있는 클래스들간에 같은 이름의 메소드를 정의하는 행위
기존 클래스의 메소드 구현 부분만 약간 변화시켜 새로운 클래스를 생성할 수 있다
매개변수의 개수와 타입이 같아야 한다.
오버로딩
같은 클래스 내에 같은 이름의 생성자나 메소드를 사용하는 행위
매개변수의 개수와 타입이 달라야 한다
[오버라이딩 예제]
class A {
int i=10;
int f() { return i; }
static char g() { return 'A'; }
}
class B extends A{
int i=20; //AAC i°¡ °¡·AAo´A°IAI´U.
int f() { return -i; }//AcA¤AC
static char g() { return 'B'; }
}
public class OverrideTest {
public static void main(String[] args) {
B b = new B();
System.out.println(b.i); //20
System.out.println(b.f()); //-20
System.out.println(b.g()); //B
System.out.println(B.g()); //B
A a = b; //A a = (B) bμμ °¡´E
System.out.println(a.i); //10
System.out.println(a.f()); //-20
System.out.println(a.g()); //A
System.out.println(A.g()); //A
}
}
[오버로딩 예제]
class OverLoadingTest {
public void say() {
System.out.println("default...");
}
public void say(String msg) {
System.out.println(msg);
}
public static void main(String args[]) {
OverLoadingTest ol = new OverLoadingTest();
ol.say();
ol.say("안녕하세요~ 반갑습니다...");
}
}
피드 구독하기:
글 (Atom)