본문 바로가기

웹개발 풀스택 과정/Database(Oracle)

(25)
28일차(2022.02.03) _ TCL (Transaction Control Language) Transaction 1. Transaction : 데이터 처리의 한 단위 - 여러 개의 SQL문을 하나의 논리적인 작업 단위로 처리하는 것 - ALL or NOTHING 개념 2. Transaction의 특징 (ACID) 1) 원자성 (Atomicity) - 모두 성공적으로 실행하던지, 전혀 실행되지 않은 상태로 남아있던지 2) 일관성 (Consistency) - 실행하기 전 DB의 내용이 정상적이라면 실행 후에도 DB의 내용이 정상적이여야 함 3) 격리성 (Isolation) - Transaction은 실행 중 다른 Transaction의 영향을 받아서는 안됨 4) 영속성 (Durability) - Transaction이 성공하면 DB의 내용은 영구적으로 저장 3. SQL문 1) COMMIT - 저장..
28일차(2022.02.03) _ 단일함수 (Single Function) 1. 숫자 처리 함수 ** [ ] 안 값은 생략 가능(옵션) 1. ABS(컬럼명 또는 숫자) : 절대값을 리턴 2. FLOOR(컬럼명 또는 숫자) : 소숫점 아랫값을 버림 3. ROUND(컬럼명 또는 숫자, [반올림할 자릿수]) - 지정한 자리까지 반올림 ( 생략시 0, 0이면 소수점 첫째자리에서 반올림, -1이면 일의자리도 반올림 ) 4. TRUNC(컬럼명 또는 숫자, [적용할 자릿수]) - 지정한 자릿수 이하의 값은 버림(내림) - 생략시 0 ( 0이면 소수점 첫째자리부터 버림, -1이면 일의자리도 버림 ) 5. MOD(컬럼명 또는 숫자, 나눌 수) : 나머지를 리턴 2. 문자열 처리 함수 - DB에서 처리해서 Java로 넘겨주거나, Java에서 넘겨받은 다음 처리하거나 해도 됨 1. UPPER(컬럼..
27일차(2022.01.28) _ Database 모델링 간단 이론 1. 모델링 - 요구사항을 분석해서 Database를 설계 - 모델링 순서 1. 요구사항 분석 2. 개념적 모델링 - 요구사항에서 추출 1) Entity : 회원, 장바구니 등등... 사각형으로 표시 (나중에 테이블로 만들것들) 2) Attribute : 구성 요소 3) Relation : Entity와 Entity와의 관계를 설정, 마름모로 표시 - 업무 분석 - 차수 설정 (1:N의 관계 등등..) - Attribute 중 Identifier(식별자, PK용도)를 설정함 3. 논리적 모델링 - Entity -> Table - Attribute -> Column - Relation -> FK - 정규화 과정 : 하나의 데이터를 쓰기 위해 여러 개로 쪼개는 과정 4. 물리적 모델링 - 실제 DBMS 선정..
26일차(2022.01.27) _ 간단한 모델링 실습 쇼핑몰 데이터베이스를 한번 만들어본다고 해보자 1. 요구조건 - 회원가입시 ID, 전화번호, 이메일 중복 불가 - 제품명은 중복가능 - 장바구니 품목갯수는 제한 없음 - 요구조건을 보고 만드는 것 > 개념적 모델링 2. 테이블 1) 회원 - ID(PK), PW, 이름, 전화번호, 이메일 2) 상품 - 제품번호(PK-인공키)), 제품명, 가격, 설명, 수량 3) 장바구니 - 장바구니번호(PK-인공키), ID, 제품번호, 총가격 설명1. 장바구니에는 왜 제품번호만 넣었는가? 자바의 클래스와 멤버변수의 매커니즘과 비슷하다. 이전에 서브쿼리를 이용해서 다른 테이블의 값들을 가져오곤 했었는데, 지금이 그런 상황이다. 장바구니에는 제품번호는 필요가 없고 제품명과 가격이 필요하다. 근데 왜 제품번호를 넣었냐면, 제품..
26일차(2022.01.27) _ SEQUENCE 1. SEQUENCE - Sequence : 자동 번호 발생기 - 순차적인 정수 값을 자동으로 생성하는 오라클 객체 - MySQL은 Sequence 대신 INCREMENT 함수가 존재 - Sequence는 한 테이블에 종속적이지 않음 - 하나의 시퀀스는 여러 테이블에서 사용 가능 1. Sequence 생성 - 테이블 생성시 ( ) 쓰지만 시퀀스는 ( ) 사용하지 않음 - , (쉼표) 사용하지 않음 - 문법 CREATE SEQUENCE 시퀀스명 INCREMENT BY 정수 -- 시퀀스 번호 증가 간격, 생략 시 기본값 1 START WITH 정수 -- 시퀀스 시작 번호, 생략 시 기본값 1 MAXVALUE 정수 -- 시퀀스의 최대값 지정, 생략 시 없음 NOMAXVALUE -- 시퀀스의 최대값을 지정하지 ..
26일차(2022.01.27) _ DDL - 테이블 수정, 제약조건 수정 1. 테이블 수정 1. Column 추가 ALTER TABLE 테이블명 ADD (컬럼명 데이터타입) 2. Column 삭제 ALTER TABLE 테이블명 DROP COLUMN 컬럼명 3. Column 이름 변경 ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 새로운컬럼명 4. Column 데이터타입 변경 ALTER TABLE 테이블명 MODIFY (컬럼명 바꿀데이터타입) - 변경 전에는 해당 컬럼의 데이터를 NULL로 수정(UPDATE)해야 변경 가능함 - 같은 데이터타입으로 변경할 경우에는 바로 변경이 가능 - 같은 데이터 타입이라도 Size가 맞지 않다면 바로 변경은 불가능 5. Table 이름 변경 RENAME 기존테이블명 TO 새로운테이블명 - 부모테이블의 이름을 변경해도 ..
25일차(2022.01.26) _ DDL - 테이블 생성, 삭제, 제약조건 설정, KEY 1. DDL - DB의 Table, User, Sequence 등등을 Object라고 함 - DB의 Object를 생성, 수정, 삭제할 때 사용하는 언어를 DDL이라고 함 - DB의 Data를 생성, 수정, 삭제할 때 사용하는 언어를 DML이라고 함 - Create : 생성 - Alter : 수정 - Drop, Truncate : 삭제 - Rename : 이름 수정 2. 제약 조건 설정 방식 1. 제약 조건 이름 : 테이블명_컬럼명_제약조건의약칭 - 제약 조건 약칭 1) Primary Key : PK (P) 2) Foreign Key : FK (R) 3) Unique : U 4) Not NULL : NN (C) 5) Check : C - 제약 조건 이름은 중복 불가 3. DB 모델링 용어 정리 1. Ta..
24일차(2022.01.25) _ JDBC - INSERT, UPDATE, DELETE문 JAVA와 연결, 시퀀스 기초사용법 1. INSERT 지금까지 SELECT문을 JAVA에서 사용했던 것과 비슷하다. // 대륙정보 추가 public int setInsert(RegionDTO regionDTO) throws Exception { Connection con = dbConnector.getConnect(); // JAVA는 기본으로 auto commit임 // auto commit 해제 con.setAutoCommit(false); // 이건 안해도 상관 없음 String sql = "INSERT INTO REGIONS (REGION_ID, REGION_NAME) VALUES (?, ?)"; PreparedStatement st = con.prepareStatement(sql); st.setLong(1, regionDTO.ge..