[정처기 필기] 관계 대수, 관계 해석, SQL, VIEW, 시스템카탈로
by 볼빵빵오춘기관계 대수(Relational Algebra)
- 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 방법이다.
- 주어진 릴레이션 조작을 위한 연산의 집합이다.
- 일반 집합 연산과 순수 관계 연산으로 구분된다.
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
관계 해석(Relational Calculus)
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 방법이다.
- 도메인 관계 해석과 튜플 관계 해석이 있다.
순수 관계 연산자의 종류
- Select(σ) : 튜플을 검색한다. / σ(조건)(R)
- Project(π) : 속성 집합을 검색한다. / π(속성 리스트)(R)
- Join() : 두 릴레이션의 공통 속성을 연결한다. / R▷◁(JOIN 조건)S
- Division(÷) : 두 릴레이션에서 특성 속성을 제외한 속성만 검색한다. / R[속성r ÷ 속성s]S
집합 연산자
합집합 ∪ 두 릴레이션의 튜플의 합집합을 구하는 연산
교집합 | ∩ | 두 릴레이션의 튜플의 교집합을 구하는 연산 |
차집합 | - | 두 릴레이션의 튜플의 차집합을 구하는 연산 |
교차곱 | X | 두 릴레이션의 튜플의 교차곱(순서쌍)을 구하는 연산 |
SQL(Structued Query Language)
- 관계형 데이터베이스의 표준 질의어
- 종류 : DDL, DML, DCL
DDL(Data Definition Language, 데이터 정의어)의 종류
- create : 테이블 생성문
- create table 테이블이름
- alter : 테이블 구조(필드 추가, 삭제, 변경) 변경문
- add : 새로운 열(속성)을 추가할 때 사용한다.
alter table 테이블이름 add 열이름 데이터타입 default 값; - alter : 특정 열(속성)의 디폴트 값을 변경할 때 사용한다.
alter table 테이블이름 alter 열이름 set default 값; - drop : 틀정 열(속성)을 제거할 때 사용한다.
alter table 테이블이름 drop 열이름 casecade;
- add : 새로운 열(속성)을 추가할 때 사용한다.
- drop : 테이블 삭제문
- casecade : 옵션을 사용하면 삭제할 요소가 다른 개체서 참조 중이라도 삭제가 수행된다.
- restrict : 옵션을 사용하면 삭제할 요소가 다른 개체에서 참조 중이라면 삭제가 수행되지 않는다.
- drop table 테이블이름 [casecade | restrict]
DCL(Data Control Language, 데이터 제어어) 의 종류
- commit : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
- rollback : 명령어로 수행에 실패하였음을 알리고, 수행된 결과를 원상 복귀시킨다.
- grant : 데이터베이스 사용자에게 사용 권한을 부여한다.
- revoke : 데이터베이스 사용자로부터 사용 권한을 취소한다.
DML(Data Manipulation Language, 데이터 조작어) 의 종류
- select
- insert
- delete
- update
Between
- 구간값 조건식
- where 점수 >= 80 and 점수 <= 90 표현할 수 있다.
그룹 함수의 종류
- count / sum / avg / max / min
group by ~ having
select 과목이름, count(*) as 학생수
from sungjuk
where 점수 >=90
group by 과목이름
having count(*) >= 1
- GROUP BY 절을 사용하여 그룹별 건수나 합계를 얻을 수 있다.
- 그룹별 집계된 결과에서 원하는 조건의 결과만 필터링하기 위해서는 HAVING 절을 사용하여 필터 조건을 사용할 수 있다.
order by
- 특정 항목을 기준으로 오름차순(asc), 내림차순(desc) 정렬할 때 사용한다.
- 생략하면 asc가 디폴트 값이 된다.
뷰(View)
사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본 테이블에서 유도되는 가상 테이블
뷰(View)의 특징
- 뷰의 생성 시 create문, 검색 시 select문을 사용한다.
- 뷰의 정의 변경 시 alter문을 사용할 수 없고 drop문을 이용한다.
- ⇒ drop 후 다시 만들어야한다!!
- 뷰를 이용한 다른 뷰의 생성이 가능하다.
- 하나의 뷰 제거 시 그 뷰를 기초로 정의된 다른 뷰도 함께 삭제된다.
- 뷰에 대한 조작에서 삽입, 갱신, 삭제 연산은 제약이 따른다.
- 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다.
뷰(View)의 장단점
장점
- 논리적 데이터 독립성을 제공, 사용자 데이터 관리 편의성을 제공한다.
- 접근 제어를 통한 보안을 제공한다.
단점
- alter view문으로 뷰의 정의 변경이 불가능하다.
- 삽입, 갱신, 삭제 연산에 제약이 따른다.
시스템 카탈로그(System Catalog)
- 시스템 자신이 필요로 하는 여러가지 객체(기본 테이블, 뷰, 인덱스, DB, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
- 데이터 사전(Data Ductionary), 메타 데이터(Meta Data)라고도 한다.
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능하다.
- 사용자가 시스템 카탈로그를 직접 갱신할 수는 없으나 SQL문으로 여러 가지 객체에 변화를 주면 시스템이 자동 갱신된다.
'📚 자격증 > 정처기' 카테고리의 다른 글
[정처기 필기] 보안, 암호화, 비밀키, 트리거, 공개키 (0) | 2023.07.12 |
---|---|
[정처기 필기] 트랜잭션, 트랜잭션의 특성, 병행제어, 로킹, 타임스탬프 (0) | 2023.07.12 |
[정처기 필기] 데이터베이스 정규화, 반정규화, 이상 현상 (0) | 2023.07.12 |
[정처기 필기] DBMS, 스키마, 데이터베이스 설계, 키의 종류 (0) | 2023.07.12 |
[정처기 필기] 정렬, 검색, 해싱, 파일 편성 방법 (0) | 2023.07.12 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기