sqld 필기시험 정리
데이터 모델링의 특징
- 추상화 : 현실 세계를 간략하게 표현한다
- 단순화 : 누구나 쉽게 이해할 수 있도록 표현한다
- 명확성 : 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다.
데이터 모델링 단계
1. 개념적 모델링 : 전사적 관점, 추상화 수준이 가장 높은 수준의 모델링, 업무 측면에서 모델링한다
2. 논리적 모델링 : 재사용성을 높인다
3. 물리적 모델링 : 성능,보안,가용성 등을 고려하여 데이터베이스를 구축
데이저 모델링 관점 종류
데이터, 프로세스, 데이터와 프로세스
ERD 작성 절차
1. 엔터티를 도출하고 그린다.
2. 엔터티를 배치
3. 엔터티 간 관계를 설정
4. 관계명을 서술
5. 관계 참여도를 표현
6. 관계의 필수 여부를 표현
3층 스카마의 구조
- 외부 스카마 : 응용 프로그램이 접근하는 데이터베이스
- 개념 스카마 : 통합 데이터베이스 구조
- 내부 스카마 : 물리적 저장 구조
엔터티 종류
1) 유형과 무형에 따른 엔터티 종류
1. 유형 엔터티 : 지속적으로 사용되는 엔터티
2. 개념 엔터티 : 유형 엔터티는 물리적 형태가 있지만, 개념 엔터티는 물리적 형태가 없다
3. 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티
2) 발생 시점에 따른 엔터티 종류
1. 기본 엔터티 : 키 엔터티라고한다, 독립적으로 생성되는 엔터티
2. 중심 엔터티 : 기본과 행위의 중간
3. 행위 엔터티 : 2개이상의 엔터티로부터 발생
속성
속성이란 엔터티가 가지는 항목이며 더 이상 분리되지 않는다, 하나의 값만 가진다, 주식별자에 종속되며 기본키가 변경되면 속성값도 변경이된다
속성의 종류
- 단일 속성 : 하나의 의미 회원id,이름
- 복합 속성 : 주소 시,군,동
- 다중값 속성 : 여러 갱의 값을 가질 수 있는 상품 리스트
특성에 따른 속성의 종류
- 기본 속성 : 본래의 속성
- 설계 속성 : 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여
- 파생 속성 : 다른 속성에 의해서 만들어지는 속성
카테시안 곱
각 릴레이션에 존재하는 모든 데이터를 조합하여 연산하는 것
주식별자(기본키, primary key)
최소성 , 대표성, 유일성, 불변성
키의 종류
1. 기본키 : 후보키 중에서 대표하는 키
2. 후보키 : 유일성과 최소성을 만족하는 키
3. 슈퍼키 : 유일성은 만족하지만 최소성은 만족하지 않는다
4. 대체키 : 후보키중에서 기본키를 선정하고 남은 키
5. 외래키 : 참조 무결성을 확인하기 위해서 사용되는 키
정규화
- 제 1정규화 : 속성의 원자성 확보, 기본키 설정
- 제 2정규화 : 기본키가 2개 이상 부분 함수 종석성을 제거
- 제 3정규화 : 이행 함수 종속성을 제거
- BCNF : 기본키를 제외 후보키 있는 경우 후보키가 기본키를 종속시키면 분해한다
클러스터링
정보를 저장할때 물리적으로 저장하여 조회시에 인접 블록을 연속적으로 읽기 때문에 성능이 향상
파티션
- range partition : 데이터 값의 범위를 기준으로 파티션을 수행
- list partition : 특정한 값을 지정하여 파티션을 수행한다
- composite partition : 범위와 해쉬를 복합적으로 사용하여 파티션 수행(2개이상의 파티션사용)
sql 종류✨(중요)
- DDL : crate, alter, drop, rename, truncate
- DML : insert, update, delete, select
- DCL : grant, revoke
- TCL : commit, rollback, savepoint
트랜잭션의 특성
원자성 : 연산의 전부가 실행되거나 전혀 실행되지 않아야한다
일관성 : 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다
고립성 : 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다
영속성 : 실행이 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다
SQL 실행 순서
파싱(parsing) > 실행(Execution) > 인출(Fetch)
view의 장점과 단점
장점
보안기능, 데이터관리 간단, select문이 간단해짐
단점
독자적인 인덱스❌ , 연산이 제약, 데이터 구조 변경 ❌
NULL 관련 함수🎇(중요)
NVL : nvl(mgr, 0) = mgr 칼럼이 null 이면 0으로 바꾼다
NVL2 : nvl2(mgr,1,0) = mgr 칼럼이 null이 아니면 1을 null이면 0을 반환
NULLIF : nullif(exp1, exp2) = exp1과exp2가 같으면 null을 반환 ( 같지않으면 exp1을 반환)
COALESCE : coalesce(exp1, exp2, exp3, ....) = exp1부터 순차적으로 null이 아닌 값을 확인 null이 아니면 그값을 반환
select문의 실행 순서🎈(중요)
from - where - group by - having - select - order by
프웨그해샐오
UNION AND UNION ALL
UNION : 두개의 테이블을 하나로 만드는 연산이며 중복을 제거한다
UNION ALL : 두개의 테이블을 하나로 만들며 중복제거를 하지 않는다
MINUS, EXCEPT(MS-SQL)
앞의 select문에는 있고 뒤에 쓰는 select문에 없는 집합을 조회하는 것이다
ex ) 앞의 select문에 (10, 20,30, 40) 이 있고 뒤 select문에는 (10, 20, 30) 이 있으면 결과는 40이 나온다
RANK 종류와 기능
RANK() : 중복값은 중복등수, 등수 건너뜀(1위, 1위, 3위, 4위)
DENSE_RANK() : 중복값은 중복등수, 등수 안 건너뜀(1위, 1위, 2위, 2위)
ROW_NUMBER() : 중복값이 있어도 고유 등수 부여(1위, 2위, 3위, 4위)
ROLE
ROLE은 데이터베이스에서 OBJECT(테이블, 프로시저, 뷰) 등의 권한을 묶어서 관리할 수 있다.