sql(29)
-
[SQLD] 2-4. TCL
TCL (트랜잭션 제어어) 트랜잭션 DB의 논리적 연산 단위 분리될 수 없는 1개 이상의 DB 조작 / 분할할 수 없는 최소의 단위 하나의 트랜잭션에는 하나 이상의 SQL문 포함 All Or Nothing (전부 적용 or 전부 취소) 트랜잭션 특성 (ACID / 원-일-고-지) 특성 설명 원자성 (Atomicity) ● 트랜잭션에서 정의된 연산들은 모두 성공하거나 전혀 실행되지 않은 상태여야 한다 (All Or Nothing) 일관성 (Consistency) ● 트랜잭션이 실행되기 전의 DB 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 DB의 내용은 잘못이 없어야 한다 고립성 (Isolation) ● 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다 지속성..
2021.10.29 -
[SQLD] 2-3. DML
SELECT (조회) SELECT [DISTICT] 컬럼명1, 컬럼명2,... FROM 테이블명 [WHERE 조건] [GROUP BY 컬럼명1, 컬럼명2,...] -- SELECT 절에 컬럼 + 집계함수가 있는 경우 존재하는 컬럼명 전부 작성 [HAVING 조건] -- SELECT 절에 집계함수가 있는 경우 집계함수에 대한 조건 [ORDER BY 컬럼명1, 컬럼명2,...] -- 정렬 ASC/DESC ≫ WILDCARD (* -> 전부 조회) SELECT * FROM PLAYER; ≫ DISTINCT (중복 제거) SELECT DISTINCT POSITION FROM PLAYER; ≫ ALIAS 부여 (별칭) - 별칭에 띄어쓰기가 있으면 " " 붙여서 활용 ex) AS "회원 정보" - AS는 생략해도 ..
2021.10.29 -
[SQLD] 2-2. DDL
DDL (데이터 정의어) 데이터 유형 데이터 유형 설명 CHAR(s) ● 고정 길이 문자열 (Oracle, SQL Server = CHAR) ● s = 1byte / Oracle 최대길이 = 2000byte / SQL Server 최대길이 = 8000byte ● 고정길이보다 s가 작을 경우 나머지 길이는 공간으로 채워진다 VARCHAR(s) ● 가변 길이 문자열 (Oracle = VARCHAR2 / SQL Server = VARCHAR) ● Oracle 최대길이 = 4000byte / SQL Server 최대길이 = 8000byte ● 고정길이보다 s가 작을 경우 나머지 길이는 가변으로 조정된다 NUMBER(p,s) ● 정수, 실수 등 숫자 정보 (Oracle =NUMBER(p,s) / SQL Serve..
2021.10.29 -
[SQLD] 2-1. SQL 기본
관계형 데이터베이스 DB (데이터베이스) 특정 기업·조직·개인이 필요에 의해 데이터를 일정한 형태로 저장해놓은 것 SQL (Structured Query Language) 관계형 데이터베이스에서 데이터 정의/조작/제어를 하기 위해 사용하는 언어 SQL 문장 종류 명령어 종류 명령어 설명 데이터 조작어 DML SELECT - DB에 들어있는 데이터를 조회/검색하기 위한 명령어 - RETRIEVE 라고도 한다 INSERT UPDATE DELETE - DB의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어 - 입력 / 수정 / 삭제 데이터 정의어 DDL CREATE ALTER DROP RENAME - 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어 - 생성 / 변경 / 삭제 / 이름변경 데이터..
2021.10.29 -
[SQLD] 1-7. 분산 데이터베이스
분산 데이터베이스 - 여러 곳으로 분산된 DB를 하나의 가상 시스템으로 쓸 수 있도록 한 DB - DB를 연결하는 빠른 네트워크 환경을 이용하여 DB를 여러 지역/노드로 위치시켜서 사용성/성능을 극대화시킨 DB 분산 DB의 투명성 (분 위 지 중 장 병) 1. 분할 투명성 하나의 논리적 릴레이션을 여러 단편으로 분할시켜서 각 단편의 사본을 여러 Site에 저장 2. 위치 투명성 사용하려는 데이터의 저장 장소를 명시하고 기록 트랜잭션은 특정 데이터 항목의 위치에 독립적 3. 지역사상 투명성 각 지역 시스템과 무관한 이름 사용 가능 지역 DBMS와 물리적 DB 사이의 Mapping 보장 4. 중복 투명성 트랜잭션이 데이터의 중복 개수/중복 사실을 몰라도 데이터 처리가 가능 5. 장애 투명성 트랜잭션, DBM..
2021.10.27 -
[SQLD] 1-6. 데이터베이스 구조와 성능
슈퍼/서브 타입 모델 - 업무를 구성하는 데이터의 특징을 공통점/차이점의 특징을 고려해서 표현 가능 - 공통 속성 = Super Type / 개별 속성 = Sub Type - 논리적 데이터 모델에서 이용되는 형태 + 분석 단계에서 사용 슈퍼/서브 타입 데이터 모델의 변환 - 슈퍼/서브타입 변환에 대한 성능 저하 이유 트랜잭션의 특성을 고려하지 않고 테이블을 설계하기 때문 1) 트랜잭션은 항상 일괄 처리 But 테이블은 개별로 유지되어 Union 연산에 의한 성능 저하 2) 트랜잭션은 항상 서브타입 개별로 처리 But 테이블이 하나로 통합되어 있어서 불필요하게 많은 데이터를 집약 3) 트랜잭션은 항상 슈퍼+서브 타입을 공통으로 처리 But 개별로 유지 or 하나의 테이블로 집약 변환 타입 1:1 타입 슈퍼..
2021.10.27 -
[SQLD] 1-5. 대량 데이터에 따른 성능
대량 데이터에 따른 테이블 분할 - 아무리 설계가 잘 된 데이터 모델이어도 대량 데이터가 하나의 테이블에 집약되어 있으면 성능이 저하된다 ≫ 트랜잭션이 분산될 수 있도록 테이블 단위에서 분할 적용 1. 하나의 테이블에 여러 컬럼 존재 (1:1 관계 분할) - 데이터가 디스크 여러 블록에 존재하면 디스크에서 데이터를 읽는 I/O량이 증가하여 성능이 저하 - 많은 컬럼 ≫ 로우체이닝, 로우 마이그레이션 또한 많아짐 2. 하나의 테이블에 대량의 데이터 존재 (파티셔닝) - 인덱스 Tree 구조가 너무 커져서 효율성이 낮아지고 데이터 처리(DML)를 할 때 디스크 I/O를 많이 유발 - 인덱스 Tree 구조가 커지면 인덱스를 찾아가는 단계가 깊어져서 조회의 성능에 영향을 미침 ※ 로우 체이닝(Row Chaini..
2021.10.27 -
[SQLD] 1-4. 반정규화 기법
테이블 반정규화 (병합 / 분할 / 추가) 1. 테이블 병합 - 관계 병합 (1:1 / 1:M) 두 테이블의 동시 조회가 많을 때 - 슈퍼/서브타입 관계 병합 여러 앤터티 공통 속성 = Super Type / 개별 속성 = Sub Type 2. 테이블 분할 - 수직(컬럼) 분할 (↓) 컬럼 단위 테이블을 디스크 I/O를 분산 처리하기 위해 테이블을 1:1로 분리 트랜잭션 처리 유형 파악이 선행되어야 한다 - 수평(로우) 분할 (→) 로우 단위로 발생하는 트랜잭션을 분석해서 디스크 I/O, 데이터 접근 효율성을 높여서 성능 향상 3. 테이블 추가 - 중복 테이블 추가 다른 업무 or 서버일 경우 동일한 테이블 구조를 중복해서 원격 조인 제거 - 통계 테이블 추가 SUM, AVG 등을 미리 계산해서 조회 시..
2021.10.26 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DCL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 문 데이터 제어어(DCL) 1. GRANT : 권한 생성 데이터베이스 관리자가 사용자에게 권한 부여 (CONNECT 권한 및 RESOURCE 권한) CONNEC..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(삽입 / 수정 / 삭제)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DDL : 생성 CREATE TABLE 고객( 고객번호 NUMBER PRIMARY KEY, 고객이름 VARCHAR2(10) NOT NULL, 나이 NUMBER NOT NULL,..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(검색)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DML : 검색 (SELECT) - 기본 문법 SELECT [DISTINCT] 속성이름 FROM 테이블이름 [WHERE 검색조건] [GROUP BY 속성이름] [HAVING 검..
2021.10.15 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DDL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 데이터 정의어(DDL) 1. CREATE TABLE 문 : 테이블 생성 - 기본 문법 CREATE TABLE 테이블이름 ( 속성이름 데이터타입 제약조건, 속성이름 데이터타입 제..
2021.10.14