전체 글
-
-
-
-
-
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..