DB

    [DATABASE] MVC 모델 구현 _ 성적 관리 프로그램

    [DATABASE] MVC 모델 구현 _ 성적 관리 프로그램

    ■ MVC 모델이란? https://m.blog.naver.com/jhc9639/220967034588 구분 내용 모델 애플리케이션의 데이터를 담고 CRUD하는 객체 (DAO 객체) 뷰 데이타를 기반으로 사용자들이 볼 수 있는 화면 컨트롤러 데이터와 사용자인터페이스 요소들을 잇는 다리역할 [개발자 면접준비]#1. MVC패턴이란 오늘은 개발자면접에 많이 나오기도 하는 MVC패턴에 대해서 알아보고자 합니다. 과연 MVC패턴이 무엇... blog.naver.com

    [DATABASE] 자바를 통한 DB 모듈화

    [DATABASE] 자바를 통한 DB 모듈화

    ■ DB 모듈화 전체 구성 * 화살표 방향은 무시하고 전체적인 흐름만 보세요. ■ Connection(서버연결) 관리 객체 드라이버를 로딩하고, DB 서버와 연결하는 객체 - DAO가 Connection 관리 객체에게 DB 연결 곧, Connection을 요청하면, Connection 인스턴스를 DAO에게 전달한다. [코드 예시] package service; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBservice { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNo..

    [DATABASE] PreparedStatement를 사용하여 시큐어코딩하기

    ■ SQL Injection 공격자가 악의적인 의도를 갖는 SQL 구문을 삽입하여, 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 기법 ▶ 해커의 해킹 방식 //아래의 SQL문에 항상 참인 값을 넣으면 모든 정보가 노출이된다. String sql = "SELECT * FROM test_member WHERE id = 'test' AND pwd = '1234'" + "or 1 = 1"; - 위와 같은 방식으로 SQL구문을 삽입하여 DB를 조작하는 공격을 SQL 인젝션이라 한다. - 해결 방법 : PreparedStatement를 사용한다. ■ Statement와 PreparedStatment의 차이점 Statement PreparedStatement 차이점 캐시 미사용 캐시 사용 절차 쿼리 문장 분..

    [DATABASE] JAVA프로그램과 DB 연결하기

    [DATABASE] JAVA프로그램과 DB 연결하기

    ■ JDBC란? - 자바 APP과 DB를 연결하여 프로그래밍을 하기 위한 API (또는 이클립스에선 라이브러리라고도 부른다) - 물리적으로는 jdbcXX.jar 파일을 의미한다. - 우리는 jdbc.jar안의 드라이버를 통해 모든 종류의 데이터베이스를 사용할 수 있다. (EX. 오라클, mySql 등) ■ 데이터베이스를 연결하기 전에 점검할 사항 1. 현재 내가 만들고자 하는 앱은 무엇인가? - 데스크탑 앱 : 로컬에서 설치, 실행되는 앱 프로그램 - 웹 앱 : 브라우저를 통해 실행되는 앱 프로그램 2. 현재 내가 접속하고자 하는 DB 서버의 위치는 어디인가? - 로컬 서버인가? - 외부 클라우드 서버인가? * DB 서버와의 연결 시, 서버 url과 사용자명, 비밀번호가 필요하기에 미리 알아두는 것이 좋..

    [DATABASE] JOIN

    [DATABASE] JOIN

    ■ 데이터의 무결성 - 데이터가 실제 현실 세계의 자료와 차이가 없는 수준의 정확성을 보이는 것 - 여러 사용자가 동일 내용의 테이블을 중복하여 사용할 경우, 데이터에 이상현상 발생 가능성 높음 -> 제약조건으로 데이터 자체의 무결성 유지 -> 정규화를 사용하여 테이블을 분해 -> 동기화 ■ 조인 - 정규화한 테이블을 역정규화하는 키워드 - 원리 : 각 테이블의 Key를 사용하여 연결한다. - 장점 : 중복된 레코드 수를 줄인다. 이상현상을 방지하고 성능이 높아진다. 1) 오라클 조인 - WHERE를 사용한 방법 2) 공통 SQL 조인 - ANSI 방식 ■ 조인의 종류 종류 INNER JOIN 조인 조건(두 테이블의 키)에 일치하는 데이터만 가져온다. OUTER JOIN 조인 조건에 일치하는 데이터 및 ..

    [DATABASE] SEQUENCE, INDEX

    ■ 시퀀스란? 오라클에서 순서를 지정해주는 객체 **오라클에서만 사용 가능 [1] 시퀀스의 생성 CREATE SEQUENCE seq_테이블명_idx START WITH 1 INCREMENT BY 1; -- 또는 CREATE SEQUENCE seq_테이블명_idx; [2] 데이터 추가 시 시퀀스 추가 - 시퀀스명.nextVal INSERT INTO sungtb VALUES(seq_sungtb_idx.nextVal, '일길동', 90, 80, 70); [3] 시퀀스의 삭제 DROP SEQUENCE seq_sungtb_idx ■ 인덱스란? 데이터베이스에서 데이터를 빠르게 탐색하기 위해 붙인 색인(포인터) 인덱스를 사용해야 하는 경우 - 데이터 양이 많고 검색이 수정보다 빈번한 경우 - 도메인의 값이 다양한 값..

    [DATABASE] DB모델링, 정규화와 이상현상, 역정규화

    ■ DB모델링 - ERD란? Entity Relationship Diagram, 개체 관계도라 하며, 개체들 간의 관계를 나타내는 다이어그램이다. - DB 모델링에 대한 자세한 내용은 아래 포스팅 참조 https://mangkyu.tistory.com/27 [Database] 6. 데이터 모델링(Data Modeling) [ 본 사진은 쉽게 배우는 오라클로 배우는 데이터베이스 개론과 실습 ppt에서 캡처했습니다. ] 이번 장에서는 데이터 모델링(Data Modeling), ER 모델(ER Model)에 대해 알아보겠습니다. 1. 데이터 모델링 mangkyu.tistory.com - DB 모델링 툴 - 윈도우용툴 : EXERD, ERWIN (erwin.com) *erwin이 가장 자주 쓰는 툴이라고 한다...

    [DATABASE] 뷰 (VIEW), 인라인 뷰

    [DATABASE] 뷰 (VIEW), 인라인 뷰

    ■ 뷰(VIEW)의 정의 - 뷰는 가상 객체로, 하나 이상의 테이블 또는 뷰의 데이터를 볼 수 있게 한다. - 실제로 테이블은 아니지만 테이블처럼 사용 가능 - 다른 뷰를 참조해 새로운 뷰를 생성할 수 있다. ■ 뷰(VIEW)의 사용 목적 - [1] 편리성 : 복잡한 명령/수식 등을 간결하게 사용 가능 - [2] 보안성 : 중요 데이터를 외부로 제한적으로 제공 * DBO의 원천데이터를 선별적으로 가공하여 사용자에게 (조회)권한 부여 ■ 뷰(VIEW)의 실제 형태 - .bat 파일과 같이 실제로는 Select ~ from SQL문이 들어가있는 형태 ■ 뷰(VIEW)를 생성할 수 있는 권한 부여 *최고 권한자만 권한을 부여할 수 있다. grant create view to 계정 ■ 뷰(VIEW)의 생성 및 ..

    [DATABASE] DECODE, CASE~END 문

    ■ DECODE 문 형식 : DECODE(필드(연산식), 비교값1, 결과값1, 비교값2, 결과값2, 비교값3, 결과값3, 기본값) CREATE TABLE MEMBER ( IDX NUMBER(38), DEPTNO NUMBER(10), NAME CHAR(4 CHAR), GENDER CHAR(3 CHAR) ); /* INSERT 생략 */ SELECT IDX, DEPTNO, NAME, DECODE(DEPTNO, 10, '총무부', 20, '영업부', 30, '전산실', 40, '관리부', '경리부') AS DEPTNAME; ■ CASE ~ END 문 CASE ~ END -- 형식 1 : 하나의 조건에 대한 값을 비교하여 결과를 얻는다. CASE 필드(연산식) WHEN 비교값1 THEN 결과값1 WHEN 비교값..

    [DATABASE] 정렬(ORDER NY) 및 그룹 통계(GROUP BY)

    [DATABASE] 정렬(ORDER NY) 및 그룹 통계(GROUP BY)

    ■ 정렬 (ORDER BY) ORDER BY 필드 [asc | desc] 필드를 기준으로 정렬 ORDER BY 필드1 [asc | desc], 필드2 [asc | desc] 필드1을 기준으로 1차 정렬 후, 필드2를 기준으로 2차 정렬 * ASC = ASCENDING (오름차순), DESC = DESCENDING (내림차순) ■ 그룹 통계 (GROUP BY) GROUP BY 필드 필드의 분류를 기준으로 그룹핑 * SELECT ~ FROM 사이에 들어올 수 있는 항목, GROUP BY 컬럼, 통계함수(COUTN,SUM,AGV,MIN,MAX..) [예제1 _ 부서별 인원수, 급여 합계를 구하는 쿼리] SELECT DEPTNO 부서번호, AVG(SALARY) 급여평균, MAX(SALARY) 최고급여, MIN(..