목록SelfStudy (67)
YJ의 새벽
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FjYUW/btrXIj1IKDw/GpPHABUIK8ActngqVCCJt1/img.png)
객체지향언어란? 객체를 만들고 객체를 사용하는 프로그래밍 방법. 즉, 프로그램을 단순히 데이터와 처리방법으로 나누는게 아니고 , 다수의 객체를 만들어 객체간의 상호작용으로 로직을 구성 ( 캡슐화 , 상속 , 다형성 , 추상화 ) JAVA 접근제어자 외부 객체의 무분별한 접근으로부터 보호 (데이터 무결성) . --public : 모든 패키지, 모든 클래스 접근 허용 --protected : 같은 패키지 , 모든 클래스 접근 허용 --default : 같은 패키지 내 클래스만 접근 허용 (기본으로 default가 깔려있음) --private : 같은 클래스 내 접근 허용 인터페이스와 추상클래스(abstract) 인터페이스 : 추상적인 개념만 존재. -- (추상메소드의 집합 ) (모든멤버가 public) --..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kyJrx/btrXlhLZXZQ/vxH8xOGoKCRi4bG5k8hfg0/img.png)
데이터 모델링 **데이터 모델링의 3요소 --Entity (어떤것) -데이터베이스에서 자료로 표현하려는것. --Attribute (속성) -데이터의 가장 작은 논리적 단위. -각 속성은 엔티티의 특성,상태 등을 기술. --Relationship (상속관계) --식별관계 : 부모테이블의 기본키가 자식테이블의 기본키, 후보키 그룹의 구성원으로 전이되는것. --비식별관계 : 부모테이블의 기본키가 자식테이블의 일반 컬럼으로 전이되는것. --부모테이블을 먼저 선택 후 자식테이블을 차례대로 선택해야한다. **카디날리티 -- 하나의 관계에 실제로 참여할수 있는 인스턴스의 수를 의미. ---------------------------------------------------------------------------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhYpKk/btrXgYSc9kr/9sJiSAIkZfztEkO7VXfz61/img.png)
외래키 ( FK . Foreign key ) --두개의 테이블을 연결해주는 다리 역할. --외래키는 새롭게 추가되는 행에서 외래키에 해당하는 값이 외래키가 참조하는 테이블이 존재하는지를 체크 . --참조하는 테이블에 무결성을 높여주는 역할. --형식 CONSTRAINT [제약조건이름] FOREIGN KEY ([컬럼이름]) REFERENCES [참조테이블이름] ([참조컬럼이름]) [ON DELETE CASCADE | ON DELETE SET NULL] ; **ON DELETE CASCADE --참조되는 부모 테이블 행에 대한 DELETE 를 허용. 즉, 참조되는 부모 테이블 값이 삭제되면 연쇄적으로 자식 테이블 값 역시 삭제. 목적 : 부모 테이블 값을 삭제할때 기본적으로 오류 발생. **ON DELETE..
JDBC Connection pool -- 클라이언트에서 데이터베이스 연결을 요청하는 시점에 연결하는것이 아니라 미리 일정수량의 연결 객체들을 만들어 놓고 불러다가 사용하는 방법. -- 미리 일정 갯수의 Connection 을 만들어 Pool (메모리영역 )에 저장 - SQL문 실행 전 ( 프로그램 실행된 후 ) -- 사용자 요청이 발생하면 Connection을 제공, 연결종료되면 Pool에 다시 반환후 보관. - 빌려줄 Connection이 없다면 Connection이 반환될때까지 클라이언트는 대기상태로 전환 **필요한 이유 ? -- 네이버와 같은 웹 어플리케이션은 CRUD와 같은 작업을 처리할 때 주로 데이터베이스를 이용, DBMS나 기타 외부와의 접속이 빈번하게 필요한 시스템에는 반드시 존재해야하는..
뷰 (VIEW) --실체가 없는 테이블 , 다른 테이블에 접근하기 위한 테이블, 중간에 있는 테이블 -- 장점 : 검색속도가 빠르다. 한개의 뷰로 여러 테이블을 검색(조인) 할 수 있다. -- 제한 설정이 가능하다. (읽기전용 : READ ONLY) -- 기본적으로 읽기와 쓰기 모두 가능 . ( SELECT , INSERT , UPDATE , DELETE 모두 가능 ) ** 뷰(VIEW) 정보 조회 : SELECT * FROM USER_VIEWS; --SELECT * FROM 뷰이름 ** 뷰(VIEW) 생성 : CREATE VIEW 뷰이름 AS SELECT문. --읽기 쓰기 모두 가능 --SELECT , INSERT , UPDATE , DELETE 모두 가능 CREATE VIEW 뷰이름 AS SELCET..
오라클 JDBC 연동하여 **execute() : DDL 실행 **executeQuery() : SELECT **executeUpdate() : INSERT , UPDATE, DELETE ** SELECT 문 . public class Example { public void select(Connection con,Statement st,ResultSet rs) { String sql = "SELECT * FROM EMP_TBL"; try { st = con.createStatement(); rs = st.executeQuery(sql); while(rs.next()==true) { String value = rs.getString("ENAME"); System.out.println("ENAME: "+va..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bA7OSX/btrXhPNy7Oj/a6fFaAK7ZTkiUYYAOn6vI1/img.png)
인덱스 (DDL) -- 읽기 용도의 테이블 -- 한 테이블에 여러개의 인덱스 지정이 가능 --인덱스 조회 SELECT * FROM USER_INDEXES WHERE TABLE_NAME = '테이블명'; --테이블 단위의 정보를 관리 SELECT * FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '테이블명'; SELECT TABLE_NAME,INDEX_NAME,COLUMN_NAME FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '테이블명'; --컬럼 단위의 정보를 관리 -- 인덱스 삭제 ( 수정이 없다, 삭제후 다시만들어야한다. ) DROP INDEX 인덱스명; -- 인덱스 생성 CREATE INDEX 인덱스명 ON 테이블명(컬럼명) ; --IND_NAME..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PoQk4/btrXaDAppIX/DFvysgU37NuSCjIlbPpKI0/img.png)
JDBC에서 시퀀스 수정 , 확인하기 **EX ) 시퀀스 수정 : ALTER SEQUENCE SQL문 public class TestJDBC { //ALTER SEQUENCE 수행하는 메소드 정의 // --ALTER SEQUENCE 시퀀스명 MAXVALUE 변경할최댓값 //외부에서 시퀀스이름값 받아오는 매개변수 선언 : String pseqName //연결객체 주소 받아오는 매개변수 선언 : Connection pcon //반환값이 없다 . public void alterSeq(String pseqName, Connection pcon) { //1. 실행할 SQL 문 문자열로 보관 String sql = "ALTER SEQUENCE "+pseqName+ " MAXVALUE 1000"; //2. State..