반응형

 

데이터베이스 구축 - 8

 

필수암기 363선



191. 삭제문(DELETE FROM~)

● 기본 테이블에 있는 튜플들 중에서 특정 튜플(행)을 삭제할 때 사용한다.

● 일반 형식

DELETE FROM 테이블명 [WHERE 조건];

 

모든 레코드를 삭제할 때는 WHERE절을 생략한다.

모든 레코드를 삭제하더라도 테이블 구조는 남아 있기 때문에 디스크에서 테이블을 완전히 제거하는 DROP과는 다르다.

 

192. 갱신문(UPDATE~ SET~)

● 기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용한다.

● 일반 형식

UPDATE 테이블명 SET 속성명 = 데이터 [, 속성명 = 데이터, ...] [WHERE 조건];

 

 모든 레코드를 삭제할 때는 WHERE절을 생략한다.

 

 

 

 

193. 기본 검색 및 조건 지정

SELECT [DISTINCT] [테이블명.]속성명1, [테이블명.]속성명2, ...
FROM 테이블명[, 테이블명, ...]
[WHERE 조건];

 

● DISTINCT : 중복된 튜플이 있으면 그중 첫 번째 한 개만 검색함

● WHERE 절에는 검색할 조건을 기술한다.

● LIKE : 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플만 검색함

● 대표 문자: * 또는 % = 모든 문자를 대표

● NULL 값의 사용

- 주소가 NULL인, 즉 주소가 입력되지 않은 자료만 검색 

예) WHERE 주소 IS NULL

- 주소가 NULL이 아닌, 즉 주소가 입력된 자료만 검색

예) WHERE 주소 IS NOT NULL

● BETWEEN 연산자의 사용

- 생일이 '01/09/69'dptj '10/22/73' 사이인 자료만 검색

예) WHERE 생일 BETWEEN #01/09/69# AND #10/22/73#

 

194. 정렬 검색

● 특정 속성을 기준으로 정렬하여 검색할 때 사용한다.

SELECT  [테이블명.]속성명1, [테이블명.]속성명2, ...
FROM 테이블명[, 테이블명, ...]
[WHERE 조건]
[ORDER BY 속성명 [ASC | DESC]];

 

● 속성명 : 정렬의 기준이 되는 속성명을 기술함

[ASC | DESC] : 정렬 방식으로서 'ASC'는 오름차순, 'DESC'는 내림차순이며, 생략하면 오름차순으로 지정됨

 

195. 하위 질의

● 조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다.

예) '취미'가 '나이트 댄스'인 사원의 '이름'과 '주소'를 검색하시오.

SELET 이름, 주소
FROM 사원
WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트 댄스');

 

 

196. 그룹 지정

● 특정 속성을 기준으로 그룹화하여 검색할 때 그룹화할 속성을 지정한다.

SELECT  [테이블명.]속성명1, [테이블명.]속성명2, ...
FROM 테이블명[, 테이블명, ...]
[WHERE 조건]
[GROUP BY 속성명, 속성명, ...]
[HAVING 조건];

 

● GROUP BY절

- 특정 속성을 기준으로 그룹화하여 검색할 때 사용함

- 일반적으로 GROUP BY절은 그룹 함수와 함께 사용됨

● HAVING절

- GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정함

● 그룹 함수

- GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용하는 함수

- 종류 : COUNT, SUM, AVG, MAX 등

 

197. 집합 연산자의 종류(통합 질의의 종류)

집합 연산자 설명 집합 종류
UNION * 두  SELET문의 조회 결과를 통합하여 모두 출력함
* 중복된 행은 한 번만 출력함
합집합
UNION ALL * 두 SELECT문의 조회 결과를 통합하여 모두 출력함
* 중복된 행도 그대로 출력함
합집합
INTERSECT * 두 SELECT문의 조회 결과 중 공통된 행만 출력함 교집합
EXCEPT * 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행을 출력함 차집합

 

 

198. INNER JOIN

SELECT  [테이블명.]속성명1, [테이블명.]속성명2, ...
FROM 테이블명1, 테이블명2, ...
WHERE 테이블명1.속성명 = 테이블명2.속성명;

 

예) <학생> 테이블과 <학과> 테이블에서 '학과코드' 값이 같은 튜플을 JOIN 하여 '학번', '이름', '학과코드', '학과명'을 출력하는  SQL문을 작성하시오.

SELECT 학번, 이름, 학생.학과코드, 학과명
FROM 학생, 학과
WHERE 학생.학과코드 = 학과.학과코드;

 

 

199. 트리거(Trigger)

● 데이터베이스 시스템에서 데이터의 삽입(Insert), 갱신(Update), 삭제(Delete) 등의 이벤트(Event)가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL이다.

반응형
반응형

 

데이터베이스 구축 - 7

 

필수암기 363선

 

181. 접근통제 기술

임의 접근 통제(DAC:Discretionary Access Control) * 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
강제 접근 통제(MAC:Mandatory Access Control) * 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
역할기반 접근 통제(RBAC:Role Based  Access Control) * 사용자의 역할에 따라 접근 권한을 부여하는 방식

 

 

 

 

182. 벨 라파둘라 모델(Bell-LaPadula Model)

● 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용한다.

보안 취급자의 등급을 기준으로 읽기 권한과 쓰기 권한이 제한된다.

 

183. DAS(Direct Attached Storage)

서버와 저장장치를 전용 케이블로 직접 연결하는 방식으로, 일반 가정에서 컴퓨터에 외장하드를 연결하는 것이 여기에 해당된다.

 

184. SAN(Storage Area Network)

DAS의 빠른 처리와  NAS의 파일 공유 장점을 혼합한 방식으로, 서버와 저장 장치를 연결하는 전용 네트워크를 별도로 구성하는 방식이다.

광 채널(FC) 스위치를 이용하여 네트워크를 구성한다.

광 채널 스위치는 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠르다.

 

185. DDL(Data Define Language, 데이터 정의어)

 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다.

DDL(데이터 정의어)의 세 가지 유형

명령어 기능
CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함
ALTER TABLE에 대한 정의를 변경하는 데 사용함
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함

 

186. DML(Data Manipulation Language, 데이터 조작 어)

데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어이다.

 DML(데이터 조작어)의 네 가지 유형

명령어 기능
SELECT 테이블에서 조건에 맞는 튜플을 검색함
INSERT 테이블에 새로운 튜플을 삽입함
DELETE 테이블에서 조건에 맞는 튜플을 삭제함
UPDATE 테이블에서 조건에 맞는 튜플의 내용을 변경함

 

 

187. DCL(Data Control Language, 데이터 제어 어)

 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어이다.

 DCL(데이터 제어어)의 종류

명령어 기능
COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 오나료되었음을 관리자에게 알려줌
ROLLBACK 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함
GRANT 데이터베이스 사용자에게 사용 권한을 부여함
REVOKE 데이터베이스 사용자의 사용 권한을 취소함

 

GRANT / REVOKE의 형식

- GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];

- REVOKE 사용자등급 FROM 사용자_ID_리스트;

 

 

188. CREATE TABLE

테이블을 정의하는 명령문이다.

표기 형식

CREATE TABLE 테이블명
    (속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], ...
    [, PRIMARY KEY(기본키_속성명, ...)]
    [, UNIQUE KEY(대체키_속성명, ...)]
    [, FOREIGN KEY(외래키_속성명, ...)]
        [REFERENCES 참조테이블(기본키_속성명, ...)]
        [ON DELETE 옵션]
        [ON UPDATE 옵션]
    [, CONSTRAINT 제약조건명] [CHECK (조건식)];

 

 기본 테이블에 포함될 모든 속성에 대하여 속성명과 그 속성의 데이터 타입, 기본값, NOT NULL 여부를 지정한다.

PRIMARY KEY : 기본키로 사용할 속성 또는 속성의 집합을 지정함

CHECK : 속성 값에 대한 제약 조건을 정의함

 

189. ALTER TABLE

 테이블에 대한 정의를 변경하는 명령문이다.

 표기 형식

ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];

 

ADD : 새로운 속성(열)을 추가할 때 사용함

ALTER : 특정 속성의 Default 값을 변경할 때 사용함

 DROP COLUMN : 특정 속성을 삭제할 때 사용함

 

190. DROP

스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문이다.

 표기 형식

DROP SCHEMA 스키마명 [CASCAD | RESTRICT];
DROP DOMAIN 도메인명 [CASCAD | RESTRICT];
DROP TABLE 테이블명 [CASCAD | RESTRICT];
DROP VIEW 뷰명 [CASCAD | RESTRICT];
DROP INDEX 인덱스명 [CASCAD | RESTRICT];
DROP CONSTRAINT 제약조건명;

 

 CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거함, 즉 주 테이블의 데이터 제거 시 각 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용됨

 RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소함

반응형
반응형

 

데이터베이스 구축 - 6

 

필수암기 363선



176. 파티션의 종류

범위 분할
(Range Partitioning)
* 지정한 열의 값을 기준으로 범위를 지정하여 분할 함
예) 일별, 월별, 분기별 등
해시 분할
(Hash Partitioning)
* 해시 함수를 적용한 결과 값에 따라 데이터를 분할함
* 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 때 유용함
* 특정 데이터가 어디에 있는지 판단할 수 없음
* 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적임
조합 분할
(Composite Partitioning)
* 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
* 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용함
목록 분할
(List Partitioning)
* 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할함
예) '국가'라는 열에 '한국', '미국', '일본'이 있는 경우 '미국'을 제외할 목적으로 '아시아'라는 목록을 만들어 분할함
라운드 로빈 분할
(Round Robin Partitioning)
* 레코드를 균일하게 분배하는 방식
* 각 레코드가 순차적으로 분배되며, 기본키가 필요없음



 

177. 분산 데이터베이스

● 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트(site)에 분산되어 있는 데이터베이스를 말한다.

분산 데이터베이스의 구성 요소 : 분산 처리기, 분산 데이터베이스, 통신 네트워크

 

178. 분산 데이터베이스의 목표

위치 투명성(Location Transparency) : 액세스 하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있음

 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함

 병행 투명성(Concurrency Transparency) : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음

 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

 

179. 분산 데이터베이스 장·단점

장점 단점
* 자료의 공유성이 향상됨
* 분산 제어가 가능함
* 시스템 성능이 향상됨
* 효용성과 융통성이 높음
* 신뢰성 및 가용성이 높음
* 점진적 시스템 용량 확장이 용이함
* 데이터베이스 설계가 어려움
* 소프트웨어 개발 비용이 증가함
* 처리 비용이 증가함
* 잠재적 오류가 증가함

 

 

180. 암호화(Encryption)

● 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것이다.

암호화(Encryption) 과정 : 암호화되지 않은 평문을 정보보호를 위해 암호문으로 바꾸는 과정

 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정

반응형

+ Recent posts