데이터베이스
-
-
SQL 수행구조데이터베이스 2021. 5. 22. 13:17
SQL 은 기본적으로 구조적, 집합적, 선언적 질의 언어이다. 원하는 결과 집합을 구조적, 집합적으로 선언하지만, 그 결과 집합을 만드는 과정은 절차적일 수밖에 없다. 즉 프로시져가 필요한데, 그런 프로시져를 만들어 내는 DBMS 내부 엔젠이 바로 SQL 옵티마이저다. 옵티마이저가 프로그래밍을 대신해 주는 셈이다. 엔진 역할 Parser SQL 문장을 이루는 개별 구성요소를 분석하고 파싱해서 파싱 트리를 만든다. 이 과정에서 SQL 문법 오류(Syntax) , 의미상 오류(Sementic) 체크를 한다. Optimizer Query Transformer 파싱된 SQL 을 좀 더 일반적이고 표준적인 형태로 변환한다. Estimator 오브젝트 및 시스템 통계정보를 이용해 쿼리 수행 각 단계의 선택도,카디널..
-
데이터베이스 아키텍처데이터베이스 2021. 5. 20. 21:53
데이터베이스 구조 > ORACLE 데이터베이스 구조 > SQL Server 프로세스 데이터 저장 구조 메모리 구조 DBMS 마다 데이터베이스에 대한 정의가 조금씩 다르다. Oracle 의 구조 Oracle 에서는 디스크에 저장된 데이터 집합 (Data File, Redo Log File, Control File 등) 을 데이터베이스라고 부른다. 그리고 SGA 공유 메모리 영역과 이를 엑세스하는 프로세스집합을 합쳐서 인스턴스라고 부른다. 기본적으로 하나의 인스턴스가 하나의 데이터베이스만 엑세스하지만, RAC(Real Application Cluster)환경에서는 여러 인스턴스가 하나의 데이터베이스를 엑세스할 수 있다. 하나의 인스턴스가 여러 데이터베이스를 엑세스 할 수는 없다. SQL Server 의 구조..
-
유저와 권한데이터베이스 2021. 5. 20. 20:28
Oracle 과 SQL Server 의 유저 Oracle 과 SQL Server 의 사용자에 대한 아키텍처는 다른 면이 많다. Oracle 은 유저를 통해 데이터베이스에 접속한다. 즉 아이디와 비밀번호 방식으로 인스턴스에 접속하고 그에 해당하는 스키마에 오브젝트 생성 등 권한을 부여받는다. SQL Server 는 인스턴스에 접속하기 위해 로그인이라는 것을 생성하게 되고, 인스턴스 내 존재하는 다수의 데이터베이스에 연결해 작업을 하기 위해 유저를 생성 후 로그인과 유저를 매핑해줘야한다. 더 나아가 특정 유저는 특정 데이터베이스 내의 특정 스키마에 대한 권한을 부여받을 수 있다. 로그인 방식에는 마이크로소프트 윈도우 운영체제 인증방식으로 로그인하는 방법과 혼합 모드방식으로 윈도우 인증으로도 접속 가능하고, ..
-
트랜젝션데이터베이스 2021. 5. 20. 20:03
트랜젝션은 데이터베이스의 논리적 연산단위이다. 트랜젝션이란 밀접히 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜젝션에는 하나 이상의 SQL 문장이 포함된다. 트랜젝션은 분할할 수 없는 최소의 단위이다. 그러므로 전부 적용하거나 전부 취소한다. ALL OR NOTING 의 개념이다. 계좌이체 같은 하나의 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합을 트랜젝션이라 한다. (100번 계좌에서 5천원을 뺀다. + 200번계좌 잔액에 5천원을 더한다.) 이런 관점에서 데이터베이스 응용 프로그램은 트랜젝션의 집합으로 정의할 수도 있다. 트랜젝션을 제어하는 명령문 - TCL COMMIT, ROLLBACK, SAVEPOINT 명령어가 있다. 트랜젝션의 대상 대상이 되는 SQL..
-
MERGE데이터베이스 2021. 5. 20. 19:20
MERGE 문을 사용하면 새로운 행을 입력하더나, 기존 행을 수정하는 작업을 한 번에 할 수 있다. MERGE INTO 타켓 테이블명 USING 소스 테이블명 ON 조인 조건식 WHERE MATCHED THEN UPDATE SET 수정할 컬럼 = 수정할 값 WHEN NOT MATCHED THEN INSERT [(컬럼1,컬럼2..)] VALUES (값1,값2...); TEAM_TMP 테이블을 이용해 TEAM 테이블에 정보를 수정/입력한다. MERGE INTO TEAM T USING TEAM_TMP S ON (T.TEAM_ID = S.TEAM_ID) WHEN MATCHED THEN UPDATE SET T.TEAM_ID= S.TEAM_ID ,T.TEAM_NAME = S.TEAM_NAME ,T.REGION_NA..
-
정규 표현식 (POSIX /PERL)데이터베이스 2021. 5. 17. 01:22
정규표현식은 문자열의 규칙을 표현하는 검색 패턴으로 주로 문자열 검색과 치환에 사용된다. REGEXP_LIKE REGEXP_REPLACE REGEXP_SUBSTR 1. POSIX 연산자 연산자 영문 설명 . dot 모든 문자와 일치 | or 대체 문자를 구분 \ backslash 다음 문자를 일반 문자로 취급 select -- dot 이 있는 자리에 어떤 문자도 올 수 있다. REGEXP_SUBSTR('aab','a') as C1 -- a ,REGEXP_SUBSTR('aab','a.b') as C2 --aab ,REGEXP_SUBSTR('aab','a.') as C3 -- aa ,REGEXP_SUBSTR('aab','.b') as C4 -- ab ,REGEXP_SUBSTR('abb','a.b') as C..
-
PIVOT , UNPIVOT데이터베이스 2021. 5. 16. 22:27
PIVOT PIVOT 은 회전시킨다는 의미를 갖고 있다. PIVOT 절은 행을 열로 회전시킨다. PIVOT [ XML ] ( aggregate_function (expr) [[AS] ALIAS] // 집계할 열을 지정 [,aggregate_function (expr) [[AS] ALIAS] ] FOR { column | (column[,column..])} // PIVOT 할 열을 지정 IN ({ { {expr | (expr[,expr]..)} [[AS] alias ]} // PIVOT 할 열 값을 지정 | subquery | ANY [,ANY] }) ) aggregate function : 집계할 열을 지정 FOR : PIVOT 할 열을 지정 IN : PIVOT 할 열 값을 지정 SELECT * FRO..