✔ 계층형 질의와 셀프 조인 계층형 질의란 테이블에서 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용 SQL Server에서의 계층형 질의문은 CTE(Common Table Expression)를 재귀 호출함으로써 계층 구조를 전개 SQL Server에서의 계층형 질의문은 앵커 멤버를 실행하여 기본 결과 집합을 만들고 이후 재귀 멤버를 지속적으로 실행 오라클의 계층형 질의문에서 WHERE 절은 모든 전개를 진행한 후 필터 조건으로 조건을 만족하는 데이터만을 추출하는데 활용 계층형 데이터란 동일한 테이블에 계층적으로 상위와 하위 데이터가 포함된 테이블 예) 사원 테이블에서 상위 사원과 하위 사원 관계 PRIOR CONNECT BY 절에 사용되며 현재 읽은 칼럼을 지정 그 외에도 SELECT, W..
✔ 집합 연산자 집합 연산자란 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회할 때 사용 SELECT 절의 칼럼 수가 동일하고 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능할 때 사용 가능 수학적 집합 이론에서 사용하는 연산자를 그대로 적용 집합 연산자의 종류 UNION 여러 개의 SQL문의 결과에 대한 합집합 결과에서 모든 중복된 행은 하나의 행으로 만듦 UNION ALL 여러 개의 SQL문의 결과에 대한 합집합 중복된 행도 그대로 결과로 표시 INTERSECT 여러 개의 SQL문의 결과에 대한 교집합 중복된 행은 하나의 행으로 만듦 EXCEPT 앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합 중복된 행은 하나의 행으로 만듦 일부 데이터베이..
✔ 표준 조인 순수 관계 연산자 SELECT 연산 WHERE 절로 구현 PROJECT 연산 SELECT 절로 구현 (NATURAL) JOIN 연산 다양한 JOIN 기능으로 구현 DIVDE 연산 현재 사용되지 않음 JOIN이란 두 개 이상의 테이블 등을 연결 또는 결합하여 데이터를 출력하는 것 일반적인 경우 행들은 PK나 FK 값의 연관에 의해 JOIN이 성립되지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능함 최소 N - 1개만큼의 JOIN 조건이 필요하며 DBMS 옵티마이저는 From 절에 나열된 테이블들을 항상 2개씩 짝을 지어 Join을 수행 FROM 절의 JOIN 형태 INNER JOIN WHERE 절에서부터 사용하던 JOIN의 DEFAULT ..
✔ TCL TCL이란 트랜잭션이란 데이터베이스의 논리적 연산단위로서 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함됨 트랜잭션 제어어 (TCL : Transactional Control Language) 논리적인 작업 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어 트랜잭션의 특성 원자성 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 함 All or Nothing 일관성 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안 됨 고립성 트랜잭션이 실행되는 도중에 다른 트랜..
✔ DML DML이란 데이터 조작어 (DML : Data Manipulation Language) 데이터베이스에 들어 있는 데이터를 조회하거나 변형을 가하는 종류의 명령어 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들을 데이터 부속어라고 함 비절차적 데이터 조작어는 사용자가 무슨(What) 데이터를 원하는 지만을 명세하지만, 절차적 데이터 조작어는 어떻게(How) 데이터를 접근해야 하는지 명세 DML 명령어 SELECT 데이터베이스에 들어 있는 데이터를 조회하거나 검색 PREDICATE에 불러올 튜플 수를 제한하는 명령어인 ALL, DISTINCT, DISTINCROW가 존재 모든 칼럼을 보고 싶을 경우 와일드카드로 *을 사용할 수 있음 SELECT 문장 실행 순서 발췌 대상 테이블을 참조 (F..
✔ DDL DDL이란 데이터 정의어 (DDL : Data Definition Language) 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거 NULL은 공백이나 숫자 0과는 전혀 다른 값이며, 조건에 맞는 데이터가 없을 때의 공집합과도 다름 NULL은 아직 정의되지 않은 미지의 값이거나 현재 데이터를 입력하지 못하는 경우를 의미 테이블의 칼럼이 가지고 있는 대표적인 4가지 데이터 유형 CHARACTER(s) : 고정 길이 문자열 정보 VARCHAR(s) : 가변 길이 문자열 정보 NUMERIC : 정수, 실수 등 숫자 정보 DATETIME : 날짜와 시각 정보 DDL 명령어 CREATE 데이터 구조를 생성 해당 테이블에 입력될..
✔ DCL DCL이란 데이터 제어어 (DCL : Data Control Language) 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어 DCL 명령어 GRANT 데이터베이스에 접근하고 객체들을 사용하도록 권한을 줌 DBMS에 생성된 USER와 다양한 권한들 사이에서 중개 역할을 할 수 있도록 ROLE을 부여 // GRANT GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호]; GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION] REVOKE 데이터베이스에 접근하지 못하고 객체들을 사용하지 못하도록 권한을 회수 DBMS에 생성된 USER와 다양한 권한들 사이에서 중개 역할을 할 수 있도록 ROLE을 회수 // REVOKE R..
✔ 관계형 데이터베이스 개요 데이터베이스란 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것 데이터베이스 관리 시스템이란? DBMS은 효율적인 데이터의 관리뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어 시스템 관계형 데이터베이스란 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음 테이블, 행, 열(칼럼)의 정보를 구조화하는 방식 SQL을 사용해 데이터 정의, 데이터 조작, 데이터 제어 SQL 문장들의 종류 SQL 문장을 통해 데이터베이스를 사용 데이터 제어어 (DC..