CS/DataBase 21

Oracle PL/SQL

1. PL/SQL (Procedural Language extension to SQL) SQL을 확장한 절차적 언어(Procedural Language)이다. PL/SQL은 블록단위로 구성되며 논리적인 작업을 진행하는 여러 명령어들을 하나의 블록으로 만들어서 모듈식 프로그램 개발이 가능해진다. 2. 종류 Procedure, Function, Trigger 3. 트랜잭션(TCL) = 데이터베이스의 논리적 연산 단위 트랜잭션은 밀접힌 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. DDL의 경우(CRATE, ALTER, DROP, RENAME, TRUNCATE 등) 자동으로 커밋됨. 데이터 베이스를 정상적으로 접속 종료하면 DML ..

CS/DataBase 2022.12.29

ORACLE 프로시저

1. 프로시저란? 오라클에서의 프로시저는 PL/SQL을 통해 만들어진다. 자주 사용하는 SQL을 프로시저로 만든 뒤 필요 할때마다 호출,사용하여 작업 효율을 늘릴 수 있다. 오라클 함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만 프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램이다.( 따라서 프로시저는 함수처럼 SELECT절에는 사용할 수 없다.) 또한, 프로시저란 application의 특정 business logic을 캡슐화하여 재사용 가능하게한 단위이며 Oracle Database에 Schema Object로 저장된 명명 Block이며 Module 단위 Programming이다.(DB 단에서 특정 비즈니스 로직을 지정해 놓고 호출을 통해 언제든 재사용하는 비즈니스로..

CS/DataBase 2022.12.21

MySQL data Directory의 위치

SHOW VARIABLES LIKE 'datadir'; https://bizadmin.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98-%EC%9C%84%EC%B9%98 mysql 데이터 디렉터리의 위치 UNIX 환경에서는 MySQL을 소스로 부터 설치할 경우, /usr/local/mysql/var가 기본 위치이고, 바이너리 배포를 가지고 설치할 때는 /usr/local/mysql/data가 기본 위치가 되며, RPM 파일을 가지고 설치할 때는 /var/ bizadmin.tistory.com

CS/DataBase 2022.12.21

ORACLE 각종 쿼리 함수

1. LPAD, RPAD https://gent.tistory.com/190 [오라클] LPAD, RPAD 함수 사용방법 (공백, 0, 채우기) 오라클(Oracle) LPAD, RPAD 함수 사용법 숫자형 문자인 경우 문자길이를 똑같이 맞춰야하는 경우가 있다. LPAD는 왼쪽, RPAD는 오른쪽부터 총길이 만큼 지정한 문자를 채운다.ex) 1, 10, 123 -> 00001, 00010, 0012 gent.tistory.com 2. REGEXP_COUNT() REGEXP_COUNT()- 문자열에 대문자 A가 몇 개인지 찾아주는 것 SELECT REGEXP_COUNT(TEXT, 'A') FROM TEXTTABLE https://itprogramming119.tistory.com/entry/Oracle-42..

CS/DataBase 2022.01.11

ORACLE CLOB vs. BLOB

1. CLOB 2. BLOB https://kudolove.tistory.com/m/1340 [JAVA]Blob 와 Clob의 차이와 호출 [JAVA]Blob 와 Clob의 차이와 호출 JDBC를 이용하여 데이터를 가져올때 JDBC 2.0 에서는 고급 데이터 타입인 BLOB, CLOB를 지원 한다. BLOB Binary Large Object 큰 이진객체 CLOB Character Large Object 큰 문자.. kudolove.tistory.com 3. SELECT 시 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wideeyed&logNo=221417034916 [OracleDB] CLOB 조회(쿼리)하는 방법 Orac..

CS/DataBase 2021.12.25

Redis

1. 사용법, 사용이유 https://meetup.toast.com/posts/224 개발자를 위한 레디스 튜토리얼 01 : NHN Cloud Meetup 레디스는 오픈소스이고, 다양한 서비스에서 레디스를 자유롭게 사용하고 있습니다. 위의 사진에서 볼 수 있듯이 Airbnb, Uber, Instagram도 레디스를 사용하고 있네요. 핑크다이어리, 토스트파일, 두 meetup.toast.com 2. 설정 방법 및 이용방법 https://github.com/jojoldu/blog-code/tree/master/springboot-data-redis GitHub - jojoldu/blog-code: http://jojoldu.tistory.com/ 에서 제공하는 예제 code http://jojoldu.tis..

CS/DataBase 2021.08.11

MySQL 인덱스(Index) & 파티션Partition & Full-Text Search

1. 인덱스 Select시 빨리 추출 가능(수정, 변경 작업 많은 곳에 쓰면 성능 나빠질 수 있다. ) 종류 : 클러스터형 인덱스(영어사전 같은 것), 보조 인덱스(책뒤 찾아보기 기능 같은 것) 클러스터형 인덱스 : 테이블 당 한 개만 생성, 보조 인덱스는 테이블 당 여러 개 생성 가능 클러스터형 인덱스는 행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬 primary key(클러스터형 인덱스)또는 Unique(보조 인덱스)에는 인덱스가 자동으로 생성됨( unique인데 notnull 붙이면 클러스터형 인덱스 됨, pk랑 중복 시 pk가 클러스터형 인덱스가 됨) 클러스터형 인덱스는 루트 페이지와 리프 페이지로 인덱스가 구성되어 있으며 인덱스 페이지의 리프 페이지는 데이터 그 자체이다. 보조 인덱스는 데..

CS/DataBase 2021.08.09

DB관련 익셉션 변환 처리 및 트랜잭션 처리

1. DB 관련 Exception처리 1) DB 연동 과정에서 발생 가능 한 익셉션 Access denied for user 'example'@'localhost'~~~ org.springframework.jdbc.CannotGetJdbcConnectionException : Failed to obtain JDBC Connection //DB연결정보가 DataSource에 있으니 DataSource를 잘못 설정하면 연결을 구할 수 없다는 익셉션이 뜨는 것 이 에러는 MySQL서버에 연결할 권한이 없을 경우에 발생 (비밀번호 잘못 입력했을 경우) 2) DB를 실행하지 않았거나 방화벽에 막혀서 연결할 수 없는 경우 org.springframework.jdbc.CannotGetJdbcConnectionExce..

CS/DataBase 2021.08.05

정규화(Normalization)

1. 제1 정규형 : 모든 속성은 반드시 하나의 값을 가져야 한다. 1) 다중 값을 가지는 경우 하나의 속성에는 하나의 값을 가져야 하고 다중 값이 들어갈 경우에는 고객 연락처라는 엔티티를 추가하여 따로 관리하자. 2) 다른 유형의 중복 데이터를 가지는 경우 중복 데이터를 분리하여 주문 상세라는 엔티티를 만들어 다른 유형의 중복 데이터 발생하지 않게 한다. 제2 정규형 : 엔티티의 일반 속성은 주 식별자 전체에 종속적이어야 한다. 여기서는 상품명이 식별자 전체가 아닌 상품 번호에만 종속되어있는 부분 종속에 해당한다. 상품명을 변경해 주어야 할 때 주문 상세에 상품명을 모두 변경해야 하고 많이 팔린 상품을 수정하는데 부하가 크게 증가한다 따라서 나누어 줘야 한다. 상품 엔티티를 추가해서 주문 상세 엔티티의..

CS/DataBase 2021.07.28