목록전체 (348)
파게로그
비교 연산자 = 같은 것을 조회 = 크거나 같은 것을 조회 부정 비교 연산자 != 같지 않은 것을 조회 ^= 같지 않은 것을 조회 같지 않은 것을 조회 NOT 칼럼명 = 같지 않은 것을 조회 NOT 칼럼명 > 크지 않은 것을 조회 논리 연산자 AND 조건을 모두 만족해야 true OR 조건 중 하나만 만족해도 true NOT true는 false로, false는 true로 바꿈 SQL 연산자 LIKE '%비교 문자열%' 비교 문자열을 조회 (%는 모든 값. 빈 문자열도 포함) BETWEEN A AND B A와 B 사이의 값을 조회 IN (list) OR를 의미하며 list 값 중 하나만 일치해도 조회됨 IS NULL NULL을 조회 부정 SQL 연산자 NOT BETWEEN A AND B A와 B 사이의 ..
INSERT문 기본적인 사용법 INSERT INTO TABLE (COLUMN1, COLUMN2, ...) VALUES (EXPRESSION1, EXPRESSION2, ...) SQL에서 문자열은 큰따옴표가 아니라 작은 따옴표로 표현 모든 칼럼에 대해서 데이터를 삽입하는 경우에는 칼럼명을 생략할 수 있음 Auto Commit(SET AUTO COMMIT ON)이 설정되지 않은 경우 TCL문인 COMMIT 이후에야 데이터가 파일에 저장됨 SELECT문을 통한 삽입 INSERT INTO DEPT_COPY SELECT * FROM DEPT; 입력되는 테이블은 사전에 생성되어 있어야 함 NOLOGGING 사용 ALTER TABLE DEPT NOLOGGING; 데이터베이스에 데이터를 입력하면 로그 파일에 그 정보가..
테이블 생성(Create Table) 새로운 테이블 생성 기본키, 외래키, 제약사항 등을 설정할 수 있음 Create Table EMP ( empno number(10) primary key, ename varchar2(20), sal number(6) ); 제약조건 사용, CASCADE 사용 Create Table DEPT ( deptno VARCHAR2(4) PRIMARY KEY, deptname VARCHAR2(20) ); Create Table EMP ( empno number(10), ename varchar2(20), sal number(10,2) default 0, -- 기본값을 0으로 지정, 소수점 둘째자리까지 저장 deptno varchar2(4) not null, createdate d..
SQL의 종류 DDL(Data Definition Language) - 관계형 데이터베이스의 구조를 정의 - CREATE, ALTER, DROP, RENAME DML(Data Manipulation Language) - 테이블에서 데이터를 입력, 수정, 삭제, 조회 - INSERT, UPDATE, DELETE, SELECT DCL(Data Control Language) - 데이터베이스 사용자에게 접근 권한(access control)을 부여하거나 회수 - GRANT, REVOKE, TRUMCATE TCL(Transaction Control Language) - 트랜잭션(데이터베이스의 작업을 처리하는 단위)을 제어 - COMMIT, ROLLBACK, SAVEPOINT 트랜잭션의 특성 원자성(atomici..
관계형 데이터베이스 relation과 relation의 join 연산을 통해서 합집합, 교집합, 차집합 등을 만들 수 있음 key와 value들의 간단한 관계를 테이블화시킨 데이터베이스 데이터베이스의 종류 계층형 데이터베이스 - 트리 형태의 자료구조에 데이터 저장 및 관리 - 부모와 자식 관계를 표현하기 쉬움 - 1:N 관계 표현 네트워크형 데이터베이스 - 오너(owner)와 멤버(member) 형태로 데이터 저장 및 관리 - 1:N, M:N 관계 표현 관계형 데이터베이스 - relation에 데이터 저장 및 관리 - relation을 사용해서 집합 연산과 관계 연산을 할 수 있음 * 관계대수 m.blog.naver.com/k97b1114/140152644090 관계형 데이터베이스 집합 연산 합집합(un..
중앙 집중형 데이터베이스 한 대의 물리적 시스템에 DBMS를 설치하고 여러 명의 사용자가 DBMS에 접속하여 데이터베이스를 사용하는 구조 분산 데이터베이스 물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고 분산된 작업 처리를 수행하는 데이터베이스 분산 데이터베이스를 사용하는 고객은 시스템이 네트워크로 분산되어 있는지의 여부를 인식하지 못하면서, 자신만의 데이터베이스를 사용하는 것처럼 사용할 수 있음 (투명성) 분산 데이터베이스에서 투명성의 종류 분할 투명성 - 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을, 고객은 인식할 필요가 없음 위치 투명성 - 고객이 사용하려는 데이터의 저장 장소를 명시할 필요 없음 - 데이터가..
반정규화(de-normalization) 데이터베이스의 성능 향상을 목적으로 함 데이터 중복을 허용 join을 줄임 조회(SELECT) 속도를 향상시키지만, 데이터 모델의 유연성은 낮아짐 반정규화를 수행하는 경우 정규화 결과 종속성, 활용성은 향상되나 성능이 저하되는 경우 다량의 범위를 자주 처리하는 경우 특정 범위의 데이터만 자주 처리하는 경우 요약, 집계 정보 등이 자주 요구되는 경우 반정규화 절차 대상 조사 및 검토 - 데이터 처리 범위, 통계성 등을 확인 다른 방법 검토 - 반정규화 외 대안이 있는지 검토 - 예시: 클러스터링, 뷰, 인덱스 튜닝, 응용 프로그램, 파티션 반정규화 수행 - 테이블, 속성, 관계 등을 반정규화 반정규화 기법 계산된 칼럼 추가 - 배치 프로그램으로 필요한 항목을 미리 ..
정규화의 문제점 정규화는 테이블 조회(SELECT) 시에 join을 유발하여 CPU, 메모리의 사용량을 높인다. 예시 - 직원(PK: 사원번호 / 이름), 부서(PK: 부서코드 / 부서명) - SELECT 사원코드, 부서코드, 부서명, 이름 FROM 직원, 부서 WHERE 직원.부서코드 = 부서.부서코드; - SELECT 사원코드, 부서코드, 부서명, 이름 FROM 직원 INNER JOIN 부서 ON 직원.부서코드 = 부서.부서코드; 이론상 부서 테이블의 건수 M * 직원 테이블의 건수 N의 시간복잡도 실제로는 인덱스와 옵티마이저 덕분에 위와 같은 비효율이 발생하지는 않음 반정규화(de-normarlization)을 통해 하나의 테이블에 저장함으로써 성능 저하 해결 정규화를 사용한 성능 튜닝 반정규화는 ..