'db'에 해당되는 글 2건

Code/Servlet & JSP

JDBC 연결

반응형

- jdbc : 자바 어플리케이션에서 표준화된 데이터베이스 접근 제공
각 데이터베이스 접속에 대한 상세한 정보 알 필요 없음
이론적으로는 개발된 애플리케이션에서 db변경시 jdbc 드라이버만 교체하면 됨


- 드라이버 로드 : Class.forName("oracle.jdbc.driver.OracleDriver")
- 디비 연결  : Connection  conn = DriverManager.getConnection(JDBC_url,"아이디","비번");
- rul구성 : JDBC:oracle:thin:@ip주소:포트:sid

s-tatement 생성 및 쿼리
statement 객체 생성 후 sql문장을 변수 처리부와 하게 문자열 구성
Statement st = conn.createStatement();
st.executeUpdate('"insert into test values"+request.getParameter("username").......');

- PreparedStatement :sql문장 미리 생성하고 변수부는 따로 메소드로 대입 성능과 관리 면에서 모두 권장함

PreparedStatement pst = conn.preparedState("insert into test values(?,?)");
pst.setString(1,request.getParameter('username'));
pst.setString(1,request.getParameter('age'));
pst.executeUpdate();


ResultSet rs = pst.executeQuery();
next() 통해 로우 이동

while(rs.next()){
name = rs.getString(1); //1은 인덱스, 1부터 시작함 or rs.getString('username');
age = rs.getString(2);
}

rs.close();

 

 

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
 <%@ page import = "java.sql.*"%>
 <%
 	Connection conn = null;
 	String driver = "oracle.jdbc.driver.OracleDriver";
 	String url = "jdbc:oracle:thin:@localhost:1521:본인의 sid";
 	
 	boolean connect = false;
 	
 	try{
 		Class.forName(driver);
 		conn = DriverManager.getConnection(url,"아이디","비밀번호");
 		connect = true;
 		conn.close();
 		
 	}catch(Exception e){
 		connect = false;
 		e.printStackTrace();
 		
 	}
 
 
 %>
 
 
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h3>

	<% if(connect == true) {%>
		연결되었습니다.
	<% }else  {%>
		실패하였습니다.
	<%} %>
</h3>
</body>
</html>







 

반응형

'Code > Servlet & JSP' 카테고리의 다른 글

MVC 패턴  (0) 2019.07.03
beans 예제_2  (2) 2019.06.25
beans 예제  (0) 2019.06.25
REQUEST 예제_SCOPE 안쓰고 데이터 넘기기  (0) 2019.06.24
SESSION 예제_장바구니  (0) 2019.06.24
카테고리 없음

무결성 제약조건_2

반응형


1. 도메인 제약조건 

: 가장 간단한 형태의 제약 조건.
 - 각 애트리뷰트 값이 반드시 원자 값이 여야 하고, 데이터 형식을 통해 값들의 유형(정수, 실수, 문자형)을 제한하고 애트리뷰트의 디폴트 값을 지정하고, 애트리뷰트에 저장되는 값들의 범위를 제한
- 릴레이션 정의할 때 애트리뷰트 선언에 NOT NULL 구문 붙이면 모든 튜플에서 해당 애트리뷰트의 값이 존재하도록 보장
- 어느정도의 데이터 무결성 유지

 



2. 키 제약조건

 : 키 애트리뷰트에 중복된 값이 존재해서는 안된다. 
- 릴레이션 정의할 때 기본 키로 정의하거나 UNIQUE를 명시한 애트리뷰트에는 중복된 값이 허용되지 않는다.

 


3. 기본 키와 엔티티 무결성 제약조건 

 : 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널 값을 가질 수 없다는 것
- 기본키는 튜플들을 고유하게 식별하고 효율적으로 빠르게 접근하는 데 사용 / 두 개 이상의 튜플이 동일한 기본키 값을 가질 수 없다
- 이 제약조건은 대체 키에는 적용 안됨
- 어떤 엔티티에 관한 정보를 릴레이션에 저장하려면 식별 가능해야 하기 때문에 엔티티 무결성 제약조건이 필요

 



4. 외래키와 참조 무결성 제약조건

 : 두 릴레이션의 연관된 투플 사이의 일관성 유지하는 데 사용
R1 (기본키) R2 (외래 키)  -> R2는 R1을 참조
- 외래키의 값은 R1의 어떤 튜플의 기본키와 같다
- 외래키가 자신을 포함하고 있는 릴레이션의 기본키를 구성하고 있지 않으면 널값 가진다.

 


- 무결성 제약조건의 유지 : 삽입 연산, 삭제 연산, 수정 연산으로 구분함
EMPLOYEE 릴레이션은 DEPARTMENT 릴레이션의 기본키를 참조한 외래 키가 있을 시
DEPARTMENT를 참조된 릴레이션, EMPLOYEE를 참조하는 릴레이션이라고 부름

 

 


1. 삽입 

: 참조되는 릴레이션에 새로운 투플이 삽입되면 참조 무결성 제약조건은 위배되지 않는다
- 왜냐하면 참조하는 릴레이션의 기본의 튜플들은 참조되는 릴레이션에 추가되는 튜플과 아무런 연관을 갖지 않기 때문에
- DEPARTMENT에 새로 삽입되는 튜플의 기본 키 애트리뷰트의 값에 따라서 도메인 제약조건, 키 조약 조건, 엔티티 무결성 제약조건 등을 위배할 수 있다
- 도메인 제약조건, 키 제약조건, 엔티티 무결성 제약조건을 위배하는 삽입 연산은 DBMS가 거절함으로써 데이터베이스의 무결성 유지

 


2. 삭제 

: 참조하는 릴레이션에서 튜플이 삭제되면 도메인 제약조건, 키 제약조건, 엔티티 무결성 제약조건, 참조 무결성 제약조건 등 모든 제약조건을 위배하지 않는다.
그러나 참조되는 릴레이션에서 튜플 삭제되면 참조 무결성 제약조건을 위배하는 경우가 생기거나 생기지 않을 수 있다.
참조 무결성을 유지하기 위한 옵션의 선택은 응용ㅇ의 의미에 의존한다. 이중 한 가지 옵션 명시

- 제한(RESTRICTED) : 위배를 야기한 연산을 단순히 거절
DEPARTMENT 릴레이션에서 세번째 투플인 (3, 개발, 9)를 삭제하면 참조 무결성 제약조건 위배해 삭제 연산 거절
- 연쇄(CASECAED) : 참조되는 릴레이션에서 투플 삭제하고 참조하는 릴레이션에서 이 투플을 참조하는 투플들로 함께 삭제
- 널값(NULLIFY) : 참조되는 릴레이션에서 튜플 삭제하고, 참조하는 릴레이션에서 이 투플을 참조하는 투플들의 외래 키에 널 값 넣는다
 이때 애트리뷰트를 NOT NULL이라고 명시했다면 튜플 삭제 연산 거절함
- 디폴트값 : 널값을 넣는 대신에 디폴트 값을 넣는다는 것 제외하고는 위와 동일
릴레이션 정의할 때 디폴트 값 지정해 줘야 하고, 지정하지 않았다면 투플 삭제 연산 거절

 


3. 수정

 : 주어진 릴레이션에서 하나 이상의 튜플의 하나 이상의 애트리뷰트 값을 수정하는 것
DBMS는 수정 연산에 대해 무결성 제약조건을 유지하기 위해서 수정하는 애트리뷰트가 기본키인지 외래 키인지 검사한다.
수정하려는 애트리뷰트가 기본키도 아니고 외래키도 아니면 수정 연산이 참조 무결성 제약조건을 위배하지 않는다.
DBMS는 수정하려는 애트리뷰트의 새로운 값이 올바른 데이터 타입과 도메인을 만족하는지 확인하기만 하면 된다.

위이 제한, 연쇄, 널값, 디폴트 값 규칙이 수정 연산에도 적용됨
-> 정의할 때 필요한 옵션 정확하게 명시하지 않았다면(디폴트 값인지 널값인지 참조되는 릴레이션의 수정으로 참조하는 릴레이션도 모두 수정이 되는지) 수정 연선 거절

반응형

푸터바

태그

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

  • Today :
  • Yesterday :
  • Total :