728x90

카테고리 206

[ 데이터베이스 ] Optimizer, Execution Plan 2

[ 데이터베이스 ] Optimizer, Execution Plan 2 실행계획 : SQL 요구사항 처리를 위한 절차와 방법, SQL을 어떤 순서로 실행할지 결정하는 작업이다 옵티마이저는 다양한 처리 방법들 중에서 최적의 실행계획을 예측해서 생성해 준다. 최적화 정보 : SQL 실행 결과가 아니라 통계 정보를 바탕으로 옵티마이저가 계산한 예상치이다. 연산 : 여러가지 조작을 통해 원하는 결과를 얻어내는 작업, 조인 기법, 액세스 기법, 필터, 정렬, 집계, 뷰 등 조인기법 : FROM 절에 존재하는 테이블 수를 n이라고 할때, 논리적으로 가능한 조인 순서는 n!만큼 존재한다. 액세스 기법 : 하나의 테이블을 액세스할때 사용할 수 있는 방법. - 인덱스 스캔 : 인덱스를 이용하여 테이블 액세스 - 테이블 스..

[ 데이터베이스 ] Optimizer, Execution Plan

[ 데이터베이스 ] Optimizer, Execution Plan 옵티마이저 실행계획 : 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정 옵티마이저의 역할 : 사용자 요구사항 최적의 실행방법 결정, 적절성 여부는 질의의 수행 속도에 영향 실제 SQL문 실행하지 않은 상태에서 최적의 실행 방법 결정하기 규칙기반 옵티마이저 규칙기반 옵티마이저 (RBO) : 보편 타당성에 근거함 규칙 1. Single row by Rowid ROWID를 통해 다른 정보를 참조하지 않고도 원하는 행 액세스 가능, 가장 빠른 방법이다. 규칙 4. Single row by unique or primary key 유일 인덱스를 먼저 액세스 하고 인덱스에 존재하는 ROWID 추출하기 규칙 8. Composite index 복..

[ 데이터베이스 ] FUNCTION - 1

[ 데이터베이스]FUNCTION - 1 FUNCTION 입력 값이 많아도 출력은 오직 하나, M:1 관계 각각의 행에 대한 조작 결과리턴, SELECT, WHERE, ORDER BY 절에 단일 함수 사용 가능 특별한 제약이 없다면 함수의 인자로 함수 사용하는 중첩가능 함수의 종류 벤더(판매자)에서 제공하는 내장함수 (BUILT-IN FUNCTION) 사용자가 정의할 수 있는 함수 (USER DEFINED FUNCTION) 단일행 함수 다중행 함수 - 집계함수, 그룹함수, 윈도 함수 종류 내용 함수 예시 문자형 함수 문자를 입력하면 문자나 숫자 값을 반환 LOWER, UPPER, CONCAT, SUBSTR/SUBSTRING, LENGTH/LEN, LTRIM, RTRIM, TRIM, ASCII 숫자형 함수 ..

[ 데이터베이스 ] WHERE, IN, LIKE, IS NULL, ROWNUM, TOP

[ 데이터베이스 ] WHERE, IN, LIKE, IS NULL, ROWNUM, TOP WHERE WHERE : SQL 문장에 WHERE 절을 사용해 특정 자료만 검색 가능, 테이블 두 개 이상 INNER JOIN 지원 기능 조건식 구성 : 칼럼명(좌측) + 비교 연산자 + 문자/숫자/표현식(우측) OR 비교 칼럼명 (JOIN 사용) SELECT [ALL/DISTINCT] 칼럼명 [ALIAS 명] FROM 테이블명 WHERE 조건식; 연산자 종류 연산자 우선순위 : (), NOT, 비교 연산자, AND, OR SQL 연산자 BETWEEN A AND B A, B 값 사이에 있다 (A, B 값이 포함됨) IN (LIST) LIST 값중 하나라도 일치하면 된다 LIKE '비교문자열' 비교문자열과 형태가 일치(..

[ 데이터베이스 ] TCL , 트랜잭션, COMMIT, ROLLBACK, SAVEPOINT

[ 데이터베이스 ] TCL , 트랜잭션, COMMIT, ROLLBACK, SAVEPOINT 트랜잭션 트랜잭션 - 데이터베이스 조작, 논리적 연산단위, - 하나의 SQL 문장 포함, - 의미적으로 분할할 수 없는 최소 단위, - ALL OR NOTHING 트랜잭션 특성 (ACID) 특성 설명 원자성 (Atomicity) 트랜잭션에서 정의된 연산들은 모두 실행 or 전혀 실행되지 않음 (ALL OR NOTHING) lOCK 기능을 이용해 다른 트랜잭션 동시 접근 제어 일관성 (Consistency) 트랜잭션이 실행 되도 데이터 베이스 내용은 잘못되지 않아야함 고립성 (Isolation) 트랜잭션 실행 도중 다른 트랜잭션 영향 받으면 안돼 지속성 (Durability) 트랜잭션 수행되면 갱신된 데이터베이스 내..

카테고리 없음 2023.09.30

[ 데이터베이스 ] DML (INSERT, DELETE, SELECT, ALIAS, DUAL)

[ 데이터베이스 ] DML (INSERT, DELETE, SELECT, ALIAS, DUAL) DML은 주로 WHERE 절을 이용해 대상 행을 선별하여 사용한다. INSERT INSERT : 한 번에 테이블 하나에 한 데이터만 입력 가능하다, 두 가지 경우 있음 INSERT INTO 테이블명 (COLUMN_LIST) - type A : 칼럼 정의와 동시에 데이터 INSERT, 정의하지 않은 칼럼은 DEFAULT NULL 값 들어간다 INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO) VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7) - type B : 칼럼의 ..

[ 데이터베이스 ] ALTER TABLE, TRUNCATE, DROP, DELETE 차이

[ 데이터베이스 ] ALTER TABLE, TRUNCATE, DROP, DELETE 차이 ALTER TABLE - ADD COLUMN : 추가된 칼럼은 위치를 지정할 수 없고, 테이블의 마지막 칼럼이 된다. ALTER TABLE 테이블명 ADD (추가할 칼럼명); ALTER TABLE PLAYER (ADD ADDRESS VARCHAR2(80)); - DROP COLUMN : 한 번에 하나의 칼럼 삭제 가능, 칼럼 삭제 후 최소 하나의 칼럼 존재해야 함, 복구 불가 ALTER TABLE 테이블명 DROP COLUMN 삭제할 칼럼명; ALTER TABLE PLAYER DROP COLUMN ADDRESS; - MODIFY COLUMN : 칼럼의 데이터 유형, 디폴트값, NOT NULL 제약조건 값 변경가능 [..

[ 데이터베이스 ] 제약조건, NULL, CTAS

[ 데이터베이스 ] 제약조건, NULL, CTAS 제약 조건 종류 PRIMARY KEY(기본키) 하나의 테이블에 하나의 기본키, NULL 입력 불가 기본키 제약 = 고유키 제약 & NOT NULL 제약 UNIQUE(고유키) 데이터를 고유하게 식별하기 위한 기본키 정의, NULL은 고유키 제약 대상이 아님 NOT NULL NULL 값 입력 금지, 디폴트는 NULL가능, CHECK의 일부분으로 이해 가능 CHECK TRUE, FALSE로 입력 값의 범위 제한 FOREIGN KEY(외래키) 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사 외래키 지정할때 참조 무결성 제약 조건 선택가능 제약조건 방식 1) 칼럼 LEVEL 방식 : 데이터 유형 뒤에 NOT NULL 정의 2) 테이블 LEV..

[ 데이터베이스 ] ERD, 데이터 유형, 테이블 생성규칙

[ 데이터베이스 ] ERD, 데이터 유형, 테이블 생성규칙 ERD (Entity Relationship Diagram) 테이블 간 상관관계를 그림으로 도식화한 것을 E-R 다이어그램이라고 한다. ERD는 개체(Entity), 관계(Relationship), 속성(Attribute)으로 구성되어 있다. 식별 : 기본키가 다른 관계의 외래키로 들어간다. 정보공학[I/E] 표기법 실선으로 나타낸다. 비식별 : 기본키가 다른 관계의 하나의 속성으로 들어간다. 정보공학[I/E] 표기법 점선으로 나타낸다. 데이터 유형 데이터 유형 설명 CHARACTER( s ) 고정길이 문자열 CHAR 표현, s 최대 길이, s보다 작은 길이 문자열 대입하면 알아서 조정된다 VARCHAR( s ) 가변길이 문자열 Oracle에서 ..

[ 데이터베이스 ] DBMS, SQL, TABLE

[ 데이터베이스 ] DBMS, SQL, TABLE DBMS 필요성 일반적으로 데이터베이스라고 말할 때는 특정 기업이나 조직 또는 개인이 필요에 의해 부가가치가 발생하는 데이터를 일정한 형태로 저장해 놓은 것을 의미한다. 관리 대상이 되는 데이터의 양이 점점 많아지고, 같은 데이터를 여러 사람이 동시에 여러 용도로 사용하게 되면서, 단순히 엑셀 같은 개인이 관리하는 소프트웨어 만으로는 한계에 부딪히게 된다. 사람들은 보다 효율적인 데이터의 관리뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고, 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS라고 한다. 관계형 데이터베이스 기업의 핵심 데이터는 대부분 ..

728x90