1장 논리 데이터베이스 설계
DB설계 순서
요구 조건 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현
개념적 설계
- 개념적 설계 단계에서는 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행한다.
- 요구분석단계에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성
- DBMS에 독립적인 개념 스키마 설계
논리적 설계
- 특정 DBMS가 지원하는 논리적 자료 구조로 변환(Mapping)시키는 과정
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계
- 트랜잭션의 인터페이스를 설계
물리적 설계
- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 다양한 DB 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 엑세스경로를 결정
- 저장 레코드의 형식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사
물리적 설계시 고려할 사항
- 트랜잭션 처리량
- 응답 시간
- 디스크 용량
- 저정 공간의 효율
데이터 모델의 개념
데이터 모델의 구성 요소
- 개체(Entity) : DB에서 표현하려는 것, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
- 속성(Attribute) : 데이터의 가장 작은 논리적 단위, 파일구조상의 데이터 항목, 데이터 필드
- 관계(Relationship) : 개체 간의 관계 또는 속성 간의 논리적인 연결
데이터 모델에 표시할 요소
- 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현
- 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세, DB를 조작하는 기본 도구
- 제약 조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
E-R 모델 (개체-관계)
E-R 다이어그램 대응수
관계형 데이터베이스의 구조
릴레이션
행 - 튜플
열 - 속성
릴레이션의 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른 값을 갖는다
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다.
- 속성의 원자성 : 속성값은 원자값을 갖는다.
- 속성의 무순서성 : 각 속성은 릴레이션 내에서 유일한 이름을 가지며, 순서는 큰 의미가 없다.
- 차수 (Degree) : 속성의 수
- 카디널리티 (Cardinality) : 튜플의 수
관계형 데이터베이스의 제약 조건 - 키(Key)
키 (Key)
- 후보 키 (Cnadidate Key)
- 기본키의 후보들 (유일성, 최소성 만족해야함)
- 테이블 내에서 행을 고유하게 식별할 수 있는 필드(또는 필드의 조합)
- 후보 키는 중복되거나 빈 값이 없어야 하며, 여러 개가 존재할 수 있음
- 기본 키 (Primary Key)
- 테이블 내에서 각 행을 고유하게 식별
- 기본 키로 지정된 필드는 중복되거나 빈 값 불가능
- 대체 키 (Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
- 기본 키로 선택되지 않은 나머지 후보 키들을 의미
- 이들도 각 행을 고유하게 식별할 수 있는 속성을 가짐두
- 슈퍼 키 (Super Key)
- 유일성 만족, 최소성 만족 X
- 테이블 내에서 행을 유일하게 식별할 수 있는 하나 이상의 필드를 포함하는 키
- 슈퍼 키는 필요 이상의 필드를 포함할 수 있으며, 그 자체로는 실용적이지 않음
- 외래 키 (Foreign Key)
- 다른 테이블의 기본 키를 참조하는 필드
- 외래 키는 데이터 간의 관계를 설정하는 데 사용되며, 데이터 무결성을 유지하는 데 중요한 역할
- 복합 키 (Composite Key)
- 두 개 이상의 필드를 결합하여 행을 유일하게 식별하는 키
- 각각의 필드만으로는 행을 고유하게 식별할 수 없을 때 사용
관계형 데이터베이스의 제약조건 - 무결성
개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성 등이 있다.
- 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도Null 값이나 중복값을 가질 수 없다.
- 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다
- 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
- 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다.
관계 대수 및 관계 해석
순수 관계 연산자 : Select, Project, Join, Division
일반 집합 연산자 : UNTION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
순수 관계 연산자
- select (σ) -> 수평단절, 행을 다 가져옴
- project (π) -> 수직단절, 열을 다 가져옴
- join (▷◁) -> 공통 속성을 이용해 두 개의 릴레이션 튜플을연결
- division (÷) -> 릴레이션 S의 모든 튜플과 관련있는 릴레이션R의 튜플 반환
일반 집합 연산자
- UNION : 합집합, 결과물에는 중복 제거
- INTERSECTION : 교집합
- DIFFERENCE : 차집합
- CARTESIAN PRODUCT : 교차, 어트리뷰트(디그리)는 두 릴레이션의 합, 튜플(카디널리티)는 두 릴레이션의 곱
관계 해석
∀ : 전칭 정량자 - 가능한 모든 튜플에 대하여 (For All)
∃ : 존재 전량자 - 하나라도 일치하는 튜플이 있음 (There Exists)
정규화
- 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정
- 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정
- 정규화는 데이터베이스의 논리적 설계 단계에서 수행
정규화 목적
- 어떠한 릴레이션이라도 DB내에서 표현 가능
- 효과적인 검색 알고리즘 생성 가능
- 데이터 중복을 배제하여 이상의 발생 방지 및 자료 저장 공간의 최소화
- 데이터 삽입 시 릴레이션을 재구성 필요성 줄어듦
이상 현상
- 갱신 이상 (Modification Anomaly) : 반복된 데이터 중에 일부를 갱신할 시 데이터의 불일치 발생
- 삽입 이상 (Insertion Anomaly) : 불빌요한 정보를 함께 저장하지 않고서는 어던 정보를 저장하는것이 불가능
- 삭제 이상 (Deletion Anomaly) : 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를삭제하는것이 불가능
정규화 과정 [도부이결다조]
- 1NF : 모든 '도'메인이 원자 값으로만 구성
- 2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, '부'분적 함수 종속을 제거한 정규형
- 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 '이'행적 함수 종속 관계를 만족하지 않는 정규형
- BCNF : 모든 '결'정자가 후보키인 정규형, 종속성 보존 X
- 4NF : '다'치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
- 5NF : 모든 '조'인종속이 R의 후보키를 통해서만 성립되는 정규형
함수적 종속
데이터들이 어떤 기준값에 의해 종속되는 것
이행적 종속
A->B이고 B->C 일때 A->C를 만족하는 관계
반정규화
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로,
의도적으로 정규화 원칙을 위배하는 행위
테이블 통합
두 테이블이 조인(Join)되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 때
테이블 분할
테이블을 수평, 수직으로 분할
- 수평 분할
- 레코드(튜플)을 기준으로 분할
- 사용빈도의 차이가 큰 경우 사용 빈도에 따라 분할
- 수직 분할
- 속성이 너무 많으면 속성기준으로 분할
- 분할 시 고려사항
- 기본키의 유일성 관리 어려움
- 데이터 양이 적거나 사용 빈도가 낮을 경우 분할이 필요한지 고려
- 분할된 테이블로인해 성능 저하
중복 테이블추가
추가하는 경우
- 정규화로 인해 수행 속도가 느려지는 경우
- 많은 범위의 데이터를 자주 처리해야하는 경우
- 특정 범위의 데이터만 자주 처리하는 경우
- 처리 범위를 줄이지 않고는 수행 속도를 개선할 수 없는 경우
추가 방법
- 집계 테이블 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용, 트리거의 오버헤드에 유의
- 진행 테이블 추가 : 이력 관리 등의 목적으로 추가하는 테이블, 적절한 데이터 양의 유지와 활용도를 높이기 위해 기본키를 적절히 설정
- 특정 부분만을 포함하는 테이블 추가 : 데이터가많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성
시스템 카탈로그
- DBMS가 스스로 생성하고 유지
- INSERT, DELETE, UPDATE 문으로 시스템 카탈로그를 갱신하는 것이 허용되지 않음
- 시스템 자신이필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템데이터베이스
- 시스템 카탈로그에 저장되는 내용을 메타데이터라고 한다.
데이터 사전 (Data Dictionary)
- 시스템 자신이 필요로하는 여러 가지 객체 (기본 테이블, 뷰, 인덱스, DB, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
- 시스템 카탈로그 (System Catalog), 메타 데이터 (Meta Data) 라고도 한다.
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능하다.
- 사용자가 시스템 카탈로그를 직접 갱신할 수 없다.
- SQL문으로 여러가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.
2장 물리 데이터베이스 설계
트랜잭션 분석 / CRUD 분석
트랜잭션의 상태
- 활동 (Active) : 트랙잭션이 실행 중인 상태
- 실패 (Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
- 철회 (Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
- 부분 완료 (Partially Committed) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
- 완료 (Committed) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상
트랜잭션의 특성
- 원자성 (Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성 (Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성 (Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성 (Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
인덱스
- <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 데이터가 저장된 물리적 구조와 밀접한 관계
- 인덱스를 통해 파일의 레코드에 대한 엑세스를 빠르게 수행할 수 잇음
- 삽입과 삭제가 수시로 일어나는 경우 인덱스의 개수를 최소로 하는것이 효율적
- 데이터 정의어(DDL)을 이용해 생성(Create), 변경(Alter), 제거(Drop)할 수 있다.
- 레코드의 물리적 순서와 인덱스의 엔트리 순서와 일치하게 유지되도록 구성되는 클러스터드 인덱스, 반대인 넌클러스터드 인덱스
- 트리기반, 비트맵, 함수 기반, 비트맵 조인, 도메인 등 분류
클러스터드 인덱스
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장
- 실제 데이터가 순서대로 저장되어 있어, 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾음
- 데이터 삽입, 삭제 시 순서를 유지하기 위해 데이터를 재정렬
- 한 개의 릴레이션에 하나의 인덱스만 가능
넌클러스터드 인덱스
- 인덱스의 키값만 정렬되어 잇고, 실제 데이터는 정렬되어 있지 않음
- 데이터를 검색하기 위해 먼저 인덱스를 검색하여 위치를 확인해야 하므로 클러스터드 인덱스에 비해 속도가 느림
- 한 개의 릴레이션에 여러 개의 인덱스 생성 가능
트리 기반 인덱스
- B트리 인덱스
- 일반적으로 사용되는 인덱스 방식, 루트 노드에서 하뉘 노드로 키 값의 크기를 비교하며 단말노드에서 찾고자 하는 데이터를 검색
- 키 값과 레코드를 가리키는 포인터들이 트리노드에 오름차순 저장
- 브랜치 블록 - 분기를 위한 목적으로 사용, 다음 단계를 가리키는 포인터를 갖음
- 리프 블록 - 인덱스를 구성하는 컬럼 데이터와 해당 데이터의 행 위치를 가리키는 레코드 식별자로 구성
- B+ 트리 인덱스
- B 트리의 변형, 단말 노드가 아닌 노드로 구성된 인덱스 세트와, 단말노드로만 구성된 순차 세트로 구분
- 인덱스 세트에 있는 노드들은 단말 노드에 잇는 키 값을 찾아갈 수 있는 경로로만 제공
- 순차 세트에 있는 단말 노드가 해당데이터 레코드의 주소를 가르킴
- 인덱스 세트에 있는 모든 키값이 단말노드에 나타나므로 단말 노드만을 이용한 순차처리 가능
비트맵 인덱스
- Bit 값인 0과 1로 변환하여 인덱스 키로 사용
- 분포도가 좋은 컬럼에 적합
- 데이터가 bit로 구성되어 효율적인 논리 연산이 가능하고 저장 공간이 작다.
- 다중 조건을 만족하는 튜플의 개수 계산에 적합
- 동일한 값이 반복되는 경우가 많아 압축 효율 좋음
함수 기반 인덱스
- 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용
- B+ 트리인덱스나 비트맵 인덱스를 생성하여 사용
- 함수를 적용해야 해서 부하가 발생
- 대소문자, 띄어쓰기 등에 상관없이 조회할 때 유용
비트맵 조인 인덱스
- 다수의 조인된 객체로 구성된 인덱스, 단일 객체로 구성된 일반적인 인덱스와 엑세스 방법이 다름
- 비트맵 조인 인덱스는 비트맵 인덱스와 물리적 구조 동일
도메인 인덱스
- 개발자가 필요한 인덱스를 직접 만들어 사용
- 확장형 인덱스(Extensible Index) 라고도 함
뷰 (View)
데이터베이스에서 뷰(View)
- 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
- 뷰는 일종의 가상 테이블로, update에는 제약이 따른다. (삽입, 삭제, 갱신 가능)
- 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다. (제거는 drop)
- 뷰는 논리적으로만 존재한다. (물리적으로 없음)
파티션
파티션 장단점
- 장점
- 데이터 접근 시 액세스 범위를 줄여 쿼리 성능 향상
- 디스크 성능 향상
- 장애시 데이터 손성 최소화
- 데이터 가용성 향상
- 단점
- 하나의 테이블을 세분화하여 관리하여 세심한 관리 필요
- 테이블간 조인 비용 증가
- 용량이 작은 테이블을 나누면 성능 저하
파티션 종류
- 범위 분할 (Range Partitioning)
- 지정한 열의 값을 기준으로 범위를 지정하여 분할 (예, 일별, 월별, 분기별 등)
- 해시 분할 (Hash)
- 해시 함수를 적용한 결과 값에 따라 데이터 분할
- 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보안, 데이터를 고르게 분산할때 유용
- 특정 데이터가 어디에 있는지 판단 불가
- 고객번호 주민번호 등과 같이 데이터가 고른 컬럼에 효과적
- 조합 분할 (Composite)
- 범위 분할로 분할한다음 해시 함수를 적용하여 다시 분할하는 방식
- 범위 분할한 파티션이 너무 커서 관리가 어려울때 유용
- 목록 분할 (List)
- 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할
- 라운드 로빈 분할 (Round Robin)
- 레코드를 균일하게 분배
- 각 레코드가 순차적으로 분배되며, 기본키 필요 없음
분산 데이터베이스
- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 데이터베이스
분산 데이터베이스의 구성 요소
- 분산 처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템
- 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로 해당 지역의 특성에 맞게 데이터베이스가 구성됨
- 통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크
분산 데이터베이스 설계 시 고려사항
- 작업부하(Work Load)의노드별 분산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성
- 사이트나 회선의 고장으로부터 회복 가능
- 통신 네트워크를 통한 원격 접근
분산 데이터베이스의 목표
- 위치 불투명성 (Location Transparency) : 하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요가 없다.
- 중복(복제) 투명성( Replication Transparency) : 사용자에게 통지할 필요없이 시스템 안에 파일들과 자원들의 부가적인 복사를 자유롭게할 수 있다.
- 병행 투명성 (Concurrency Transparency) : 다수의 트랜잭션들이 동시에 실현되도 그 트랜잭션의 결과는 영향을 받지 않음. 다중 사용자들이 자원들을 자동으로 공유할 수 있다.
- 장애 투명성(Falure Transparency) : 장애에도 불구하고 트랜잭션을 정확하게 처리함. 사용자들은 어느위치의 시스템에 장애가 발생했는지 알필요가 없다.
분산 데이터베이스 장단점
- 장점
- 시스템 성능 향상
- 중앙 컴퓨터의 장애가 전체 시스템에 영향끼치지 않음
- 점진적 시스템 용량 확장 용이
- 단점
- DBMS가 수행할 기능이 복잡함
- 데이터베이스 설계가 어려움
- SW개발 비용 증가
데이터베이스 보안 - 접근 통제
접근 통제 기술
- 임의 접근통제(DAC), 강제 접근통제(MAC), 역할기반 접근통제(RBAC)
임의 접근통제(DAC; Discretionary Access Control)
- 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여
- 데이터 소유자가 접근 통제권한 지정
- GRANT, REVOKE
강제 접근통제(MAC; Mandatory Access Control)
- 주체와 객체의 등급을 비교하여 접근 권한을부여
- 시스템이 접근 통제 권한 지정
- 데이터베이스 객체별로 보안 등급 부여 가능, 사용자별로 인가 등급 부여 가능
역할기반 접근통제 (RBAC; Role Based Access Control)
- 사용자의 역할에 따라 접근 권한을 부여하는 방식
- 중앙관리자가 접근 통제 권한 지정
- DAC와 MAC의 단점 보안, 다중 프로그래밍 환경에 최적화
- 중앙관리자가 역할마다 권한을 부여하면, 역할을 할당받은 사용자들은 역할에 해당하는 권한 사용
MAC의 보안 모델
- 벨 라파듈라 모델 (Bell-LaPadula Model)
- 군대의 보안레벨처럼 정보의 기밀성에 따라 상하관계가 구분된 정보를 보호
- 우리 제품 문서보안등급 처럼
- 비바 무결성 모델 (Biba Integrity Model)
- 벨 라파듈라 모델을 보안한 수학적 모델, 무결성을 보장하는 최초의 모델
- 비인가자에 의한 데이터변형 방지
- 클락-윌슨 무결성 모델 (Clark-Wilson Integrity Model)
- 무결성 중심의 상업용 모델
- 사용자가 직접 객체에 접근할 수 없고 프로그램에 의해 접근이 가능
- 만리장성 모델 (Chinese Wall Model)
- 서로 이해 충돌 관계에 있는 객체 간의 정보 접근 통제
스토리지
DAS, NAS, SAN
SAN - DAS의 빠른 처리, NAS의 파일 공유 장점을 혼합
3장 SQL 응용
SQL 개념
DDL (Data Define Language, 데이터 정의어)
- CREATE
- ALTER
- DROP
DML (Data Manipulation Language, 데이터 조작어)
- SELECT
- INSERT
- DELETE
- UPDATE
DCL (Data Control Language, 데이터 제어어)
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장, 명령어로 수행을 성공적으로 완료했음을 선언한다.
- ROLLBACK : 명령어로 수행을 실패했음을 알리고, 수행된 결과를 원상복구
- GRANT : DB사용자에게 사용 권한을 부여
- REVOKE : DB사용자로부터 사용 권한 취소한다.
테이블 생성 권한 부여
GRANT CREATE TABLE TO 사용자
* 생성 권한 취소
REVOKE CREATE TABLE FROM 사용자
DDL
CREATE SCHEMA [스키마명] AUTHORIZATION [사용자ID]
CREATE DOMAIN [도메인명] DEFAULT [기본값]
CONSTRAINT [제약조건명] CHECK [범위값];
CREATE TABLE [테이블명]
[속셩명] [데이터타입] DEFAULT [기본값] NOT NULL,
... , PRIMARY KEY (기본키),
UNIQUE (대체키),
FOREIGN KEY (외래키_속성명),
CONSTRAINT ~;
CREATE VIEW [뷰명](속성명, 속성명)
AS SELECT문
ALTER TABLE [테이블명] ADD [속성명] [데이터 타입]
ALTER TABLE [테이블명] ALTER [속성명]
ALTER TABLE [테이블명] DROP COLUMN [속성명] (CASCADE)
DROP SCHEMA [스키마명] (CASCADE | RESTRICT)
DROP DOMAIN [도메인명] (CASCADE | RESTRICT)
DROP TABLE [테이블명] (CASCADE | RESTRICT)
DROP VIEW [뷰명] (CASCADE | RESTRICT)
DROP INDEX [인덱스명] (CASCADE | RESTRICT)
DROP CONSTRAINT [제약조건명]
CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거.
RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거 취소
DML
집합 연산자
SELECT 속성... FROM 테이블명
UNION | UNION ALL | INTERSECT | EXCEPT
SELECT 속성... FROM 테이블명
집합 연산자 | 설명 | 집합 종류 |
UNION | 두 SELECT 문의 조회결과를 통합하여 출력 중복은 한번만 출력 |
합집합 |
UNION ALL | 중복도 그대로 출력 | 합집합 |
INTERSECT | 두 SELECT문의 공통된 행만 출력 | 교집합 |
EXCEPT | 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행 출력 | 차집합 |
'정보처리기사 > 필기' 카테고리의 다른 글
자주 틀리는 항목 (3) | 2024.02.29 |
---|---|
정보처리기사 필기 공부 5과목 (정보시스템 구축관리) (0) | 2024.02.02 |
정보처리기사 필기 공부 4과목 (프로그래밍 언어 활용) (1) | 2024.01.31 |
정보처리기사 필기 공부 2과목 (소프트웨어 개발) (2) | 2024.01.24 |
정보처리기사 필기 공부 1과목 (소프트웨어 설계) (0) | 2024.01.17 |
댓글