본문 바로가기
728x90
반응형

DB30

[day_06] DB / 11. ERD (Entity Relationship Diagram) - Foreign Key 외래키 ERD (Entity Relationship Diagram) : 개체 관계 모델링, 관계형 데이터 베이스 설계를 위한 다이어그램 논리 데이터 모델링 - 논리적인 데이터 관리 및 관계를 정의한 모델 - 전체 업무 범위와 업무 구성요소를 확인할 수 있다. ​ 물리 데이터 모델링 - 논리 데이터 모델을 DBMS의 특성 및 성능을 고려하여 구체화시킨 모델을 말한다. 정규화 (Normalization) : 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화하는 작업 사례 ) 사원정보를 저장하는 테이블 설계 사원번호 사원명 직종 월급 부서명 부서지역 부서대표번호 1 아이유 개발 1000 연구개발부 판교 0311231234 2 김수민 개발 2000 공공사업부 광화문 024321321 위와 같은 형태로 테이블을 .. 2020. 8. 13.
[day_06] DB / 10. IN, NOT IN 연산자 IN 연산자 : 특정값이 포함되는 데이터를 조회하고자 할 때 사용하는 연산자 SELECT [columns] FORM [table 명] WHERE 컬럼 IN ([특정값]); NOT IN 연산자 : 특정 값이 포함되지 않는 데이터를 조회하고자 할 때 사용하는 연산자 SELECT [columns] FORM [table 명] WHERE 컬럼 NOT IN ([특정값]); 사용 예제 Product TABLE 1. IN 연습 -MAKER가 '롯데', '진로', '빙그레'인 상품의 정보를 조회 방법 1) SELECT* FROMproduct WHEREmaker = '롯데' or maker = '진로' or maker = '빙그레'; 방법 2) IN 적용 SELECT* FROMproduct WHEREmaker IN ('롯.. 2020. 8. 13.
CODE [day_06] DB / 09. JDBC - SQL GROUP BY, DISTINCT 활용 예제 SQL EMPLOYEE TABLE 1. JOB 컬럼을 기준으로 그룹화하여, JOB, 사원수, 평균월급(반올림) 내림차순으로 조회해보기 * 반올림 함수 : ROUND ( [column name] , [몇번째 자리수까지 표시할것인지] ) SELECTjob, COUNT(*) AS 사원수, ROUND(AVG(salary), 2) AS 평균월급 FROMemployee GROUP BYjob ORDER BY평균월급 DESC; 2. 1번 문제에 JOB 별 평균 월급이 500을 초과하는 JOB들 조회하는 것으로 그룹 조회 조건을 추가 (HAVING절) SELECTjob, COUNT(*) AS 사원수, ROUND(AVG(salary), 2) AS 평균월급 FROMemployee GROUP BYjob HAVINGAVG(sa.. 2020. 8. 13.
[day_05] DB / 09. 기본 SQL 6 - Sub Query 서브쿼리, GROUP BY, HAVING SubQuery : 서브쿼리 : SQL 내의 SQL 실습해보자 ! -- 실습 환경 구성 -- 1. PRODUCT TABLE 생성 CREATE TABLE PRODUCT ( IDVARCHAR2(100)PRIMARY KEY, NAMEVARCHAR2(100)NOT NULL, MAKERVARCHAR2(100)NOT NULL, PRICENUMBERDEFAULT 0) 2. product sequence 만들기 CREATE SEQUENCE PRODUCT_SEQ; 3. 정보 INSERT INSERT INTO PRODUCT(ID, NAME, MAKER, PRICE) VALUES(PRODUCT_SEQ.NEXTVAL, '바나나우유', '빙그레', 1200); INSERT INTO PRODUCT(ID, NAME, MAKER, .. 2020. 8. 12.
CODE [day_05] DB / 08_2. Transaction (COMMIT, ROLLBACK) 적용한 예제 - 신용카드 발급 시에 포인트를 지급하기 트랜잭션 처리를 통해, 발생될 수 있는 문제를 해결한 예제 *SQL TABLE의 정보들은 모두 지워주고, 기존 테이블 틀만 재활용한다. JAVA JDBC TestDAO class (main class) 트랜잭션 처리를 통해 모든 작업이 정상적으로 수행되었을 때 COMMIT, 문제 발생 시 ROLLBACK 처리를 한 예제 Test 1 : 정상적인 데이터를 입력해 commit 확인 Test 2 : point 등록 시 고의로 오류를 발생시켜 rollback이 되는지 확인 /TestTransaction2.java package test; import model.CardDAO2; public class TestTransaction2 { public static void main(String[] args) { tr.. 2020. 8. 12.
CODE [day_05] DB / 08_1. Transaction (COMMIT, ROLLBACK) 필요성을 확인하는 예제 - 신용카드 발급 시에 포인트를 지급하기 트랜잭션 처리가 되지 않았을 때, 발생되는 문제를 확인하는 예제 SQL CARD TABLE 생성 CREATE TABLE card( idVARCHAR2(100)PRIMARY KEY, nameVARCHAR2(100)NOT NULL ); POINT TABLE 생성 CREATE TABLE point( idVARCHAR2(100)PRIMARY KEY, point_typeVARCHAR2(100)NOT NULL, pointNUMBERNOT NULL ); JAVA JDBC TestDAO class (main class) 카드 테이블에 카드 정보가 insert되고, 포인트 테이블에 포인트 정보가 insert될 때, 문제가 발생되었을 경우 포인트 정보는 등록되지 않고 , 카드 정보만 존재하는 경우를 만들어 본다. --> .. 2020. 8. 12.
[day_05] DB / 08. 기본 SQL 5 - DCL ( COMMIT, ROLLBACK ) [ DCL (Data Control Language) ] SQL에서 데이터를 제어하는 DCL의 KEYWORD에 대해 배워보자 ! 트랜잭션 (Transaction) : 작업 단위 or 업무 단위 : 트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위를 말한다. : COMMIT과 ROLLBACK이 이에 속한다. COMMIT : 변경된 모든 내용을 실제 데이터베이스에 반영/저장 (실제 디스크에 저장) ROLLBACK : 변경된 모든 내용을 취소하고, 이전 상태로 돌린다 (COMMIT 이전의 상태로 복구) 예제 1) 예제 링크 → https://creamilk88.tistory.com/65?category=870903 계좌이체 업무 단위 (계좌이체 transaction) 에서는 1. 송금자의 .. 2020. 8. 12.
CODE [day_05] DB / 07. 계좌 개설 및 입출금, 계좌 이체 프로그램 만들기 - JDBC, SELECT(WHERE, COUNT), INSERT, UPDATE 계좌 개설 및 입출금, 계좌 이체 프로그램 만드는 예제 ** 요구사항 ** 사용자는 계좌 개설이 가능하다. 계좌 계설 시 --> 1. 계좌번호, 계좌주명, 비밀번호, 잔액정보가 저장되어야 한다 --> 2. 최초 계좌 개설 시에는 초기 납입액 1000원 이상이 되어야 한다 --> 3. 계좌번호는 유일해야 하고, 시스템에서 자동 발급되도록 관리한다 (primary key, sequence) 잔액 확인 시 --> 계좌번호가 존재해야 하고, 비밀번호가 일치해야 한다. 입금액, 출금액, 계좌 이체액은 모두 0원을 초과해야 한다. 입금 시에는 --> 계좌번호, 비밀번호가 일치해야 한다. 출금 시에는 --> 계좌번호, 비밀번호, 잔액 확인 절차가 필요하다. 계좌 이체 시에는 --> 1. 송금자 및 수금자의 계좌가 존.. 2020. 8. 12.
[day_04] DB / 07. JDBC Interface 를 다시 한 번 복습하자! [ Review 복습 ] Interface - JDBC Interface (Connection, PreparedStatement, Resultset) 1. 약속 - one message 방식 : 사용자는 인터페이스만 알면, 구현부는 몰라도 사용할 수 있다. 2. 표준화 : 다중상속 → 다양한 계층구조 형성 → 다형성 → One interface, multiplle implements 3. 유지보수성 향상 (구현부가 변경되어도, 사용자 사용법은 변경되지 않는다>) → public interface, private implements 2020. 8. 11.
728x90
반응형