본문 바로가기

안녕하세요!

SQL

[ SQLD ] TCL(Transaction Control Language) TCL TCL(Transaction Control language)는Transaction을 제어하는 명령어로COMMIT, ROLLBACK, SAVEPOINT 등이 있다.여기서 TRANSACTION이란더 이상 쪼개질 수 없는 업무 처리의 단위이다. 특징설명원자성(Atomicity)Transaction이 묶여 있는 동작들은 모두 성공하거나 실패해야 함일관성(Consistency)Transaction이 완료된 이후에도 계산된 결괏값 등, DB의 Data에 일관성이 있어야 함고립성(Isolation)하나의 Transaction은 한 고객에게 할당된 제품은 구매 불가능한 것처럼 고립되어 수행되어야 함지속성(Durability)Transaction이 성공적으로 수행되었을경우, Transaction이 변경한 Data.. 더보기
[ SQLD ] SQL 삭제 문(DROP, TRUNCATE, DELTE) 비교 DROP TABLETRUNCATE TABLEDELETE FROMDDLDDL(+DML)DMLAuto CommitAuto CommitUser CommitROLLBACK 불가능ROLLBACK 불가능Commit 전에 ROLLBACK 가능Table의 모든 Data 삭제Table의 모든 Data 삭제Table의 모든 Data 삭제Disk 초기화(= 로그 제거)Disk 초기화(= 로그 제거) Disk 초기화(= 로그 유지) Schema 정의까지 모두 삭제Table Schema 구조 유지Table Schema 구조 유지   [ SQLD ] DML(Data Manipulation Language)DML DML(Data Manipulation Language)은SELECT, INSERT, UPDATE, DELETE 등으로.. 더보기
[ SQLD ] DML(Data Manipulation Language) DML DML(Data Manipulation Language)은SELECT, INSERT, UPDATE, DELETE 등으로DB 내의 Data를 조작하는 데에 사용돤다.DML은 Host 프로그램 속에 삽입되어 사용하기에,데이터 부속어(Data Sub Language)라고도 불리우기도 한다. INSERT INSERT INTO TESTTABLE (ID, NAME, AGE, COUNTRY) VALUES(1, 'DERRIK', 32, 'KOREA'); UPDATE UPDATE TESTTABLE SET AGE = 23 WHERE NAME = 'DERRIK'; DELETE DELETE FROM TESTTABLE WHERE NAME = 'DERRIK'; SELECT SELECT DISTINCT AGE FROM TE.. 더보기
[ SQLD ] DDL(Data Definition Language) DDL DDL(Data Definition Language)은Schema와 Domain, Table, View, Index를 정의 및 변경, 제거할 때 사용한다.DDL의 경우, Auto COMMIT 되기 때문에DDL이 수행되면 ROLLBACK이 되어도 데이터는 COMMIT 된다. CREATE TABLE AS CREATE TABLE TESTTABLE AS SELECT COLUMN1, COLUMN2, ... FROM EXAMPLETABLE WHERE ... CREATE TABLE AS 문장을 사용하는 경우,테이블의 구조를 복하기 때문에 별도로 작성할 필요가 없다.다만, NOY NULL과 일부 제약 조건만 복사가 된다.PK, FK, UNIQUE, CHECK 등의 제약 조건은 복사되지 않으므로 다시 적용해.. 더보기
[ Java ] Windows에서 Docker 사용하기 Docker-desktop은 원래 Docker가 다운되면 저장된 데이터를 날려버린다.하지만 위와 같이 로컬에서  'mysql' 파일을 생성하여여기에 데이터를 저장하면 docker가 다운되더라도 데이터가 날라가지 않게 된다. docker-compose up -d 명령어를 입력하면로컬에 있는 파일로 db를 실행하게 된다.docker-compose up -d 혹시나 permission 에러가 난다면, sudo chmod 666 /var/run/docker.sock명령어를 입력해 준다.sudo chmod 666 /var/run/docker.sock obsolute 에러가 난다면 docker-compose.yaml 파일에 있는 version 정보를 삭제해야 한다.일정 버전 이상부터는 version 정보가 불필요해.. 더보기
[ HANA ] How to Connect from HANA to PostgreSQL(1) Deploy to HANA Cloud Create entity  SAP BTP BAS 혹은 Visual Studio에서 CAP 프로젝트를 생성하여위와 같이 엔터티를 설정한다.본인이 원하는 대로 자유롭게 엔터티를 생성하면 된다.  서비스에 정의한 엔터티를 추가한다. Deploy to HANA  BTP에 생성되어 있거나 구독하고 있는 HANA Cloud에 엔터티 정보,즉 레코드로 저장되는 테이블을 배포하기 위해연결되어 있는 계정 정보로 접슨하기 위해cf login을 한다.  cds deploy --to hana로 HANA Cloud에 서비스를 배포한다.  cds watch --profile hybrid로 로컬 서버에 접속한다.  Create PostgreSQL Instance  BTP에 접속하여Postgre.. 더보기
[ SQLD ] 데이터 모델링 - Identifier 식별자 식별자(Identifier)는 여러 개의 instance 집합인 Entity를 각기 구분할 수 있는 논리적인 이름이다. 식별자 특징 구분 내용 유일성 주식별자를 사용해 엔터티에 속해 있는 인스턴스들을 유일하게 구분해야 함 최소성 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 불변성 주식별자가 특정 엔터티에 지정되면, 그 식별자의 값은 변하지 않아야 함 존재성 주식별자 지정되면, 반드시 데이터 값이 존재해야 함 식별자 분류 구분 식별자 내용 대표성 여부 주식별자 엔터티 내 각 행을 구분할 수 있는 구분자, 다른 엔터티와의 참조 관계 연결 보조 식별자 주식별자에 비해 대표성이 없어 참조관계 연결 불가 자가 생성 여부 내부 식별자 엔터티 내부에서 자체적으로 만들어지는 식별자 .. 더보기
[ SQLD ] 데이터 모델링 - Attribute Attribute 속성(Attribute)이란 업무상 필요한 인스턴스에서 관리코자 하는 의미상 더 이상 분리되지 않는 최소 단위의 데이터이다. 속성은 주된 식별자에 함수적 종속성을 가지는 정규화 과정 중 하나인 도메인 무결성이 이행되어야 하며, 하나의 속성에는 하나의 속성값(value)만 가진다. 속성의 분류 기본 속성(Basic Attribute)은 업무 분석을 통해 정의한 속성이고, 설계 속성(Designed Attribute)은 기존 업무상 존재하지 않지만 설계 도중 도출해낸 속성이며 파생 속성(Derived Attribute)은 다른 속성으로부터 적용된 속성값을 말한다. 도메인 도메인(Domain)이란 각 Attribute가 가질 수 있는 값의 범위를 정의하며, Attribute는 도메인 외의 값.. 더보기

loading