잡다한 배똥월드

728x90

 

 

 

9. 쿼리 성능 최적화

  • 실행 계획에 표시된 연산 순서, 조인 방식, 테이블 조회 방법 등을 참고하여 SQL문이 더 빠르고 효율적으로 작동하도록 SQL 코드와 인덱스를 재구성하는 것을 의미
  • WHERE절을 추가하여 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용을 줄임
  • WHERE절에 연산자가 포함되면 INDEX를 활용하지 못하므로 가능한 한 연산자 사용을 자제
  • 서브 쿼리에 특정 데이터가 존재하는지 확인할 때는 IN보다 EXISTS를 활용
  • 옵티마이저의 실행 계획이 잘못되었다고 판단되는 경우 힌트를 활용하여 실행 계획의 액세스 경로 및 조인 순서를 변경
  • SQL 코드에서 조회되는 속성과 조건들을 고려하여 인덱스를 구성
  • 실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서를 변경
  • 인덱스의 추가 및 변경은 해당 테이블을 참조하는 다른 SQL문에도 영향을 줄 수 있으므로 신중히 결정
  • 단일 인덱스로 쓰기나 수정 없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성하는 것을 고려
  • 불필요한 인덱스를 제거

 

 

 

 

 

728x90
728x90

 

 

12. SQL문 구문

  • DELETE FROM 테이블명 [WHERE 조건]; => 테이블 한 개만 지정 가능
  • INSERT INTO ~ VALUES ~ => VALUES ~ 대신 SELECT문을 넣을 수 있음
  • UPDATE ~ SET ~ WHERE ~
  • SELECT ~ FROM ~ WHERE ~

 

 

 

 

22. UNION

  • 두 개 이상의 SELECT문의 결과 집합을 결합하는 데 사용
  • UNION 내의 각 SELECT 문은 같은 수의 열을 가져야 함
  • 열은 유사한 데이터 형식을 가져야 함
  • 각 SELECT 문의 열은 또한 동일한 순서로 있어야 함
  • 중복없이 결합

 

 

 

 

 

24. SQL의 내장 함수

  • COUNT : 튜플 수를 구하는 함수
  • MAX : 최대값을 구하는 함수
  • MIN : 최소값을 구하는 함수
  • SUM : 합계를 구하는 함수
  • AVG : 평균을 구하는 함수

 

 

 

 

 

 

728x90
728x90

 

 

 

1. 일반 형식

SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속서명, ···]
[, 그룹함수(속성명) [AS 별칭]]
[, Windows함수 OVER (PARTITION BY 속성명1, 속성명2, ···
				ORDER BY 속성명3, 속성명4, ···)]
FROM 테이블명[, 테이블명, ···]
[WHERE 조건]
[GROUP BY 속성명, 속성명, ···]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];

 

 

 

 

2. SELECT절

  • PREDICATE : 불러올 튜플 수를 제한할 명령어를 기술 (ALL, DISTINCT, DISTINCTROW 등)
  • 속성명 : 검색하여 불러올 속성(열) 또는 속성을 이용한 수식을 지정하며 모든 속성을 지정할 때는 '*'를 기술하고, 두 개 이상의 테이블을 대상으로 검색할 때는 '테이블명.속성명'으로 표현
  • AS : 속성 및 연산의 이름을 다른 제목으로 표시하기 위해 사용

 

 

 

 

3. FROM절

  • 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술

 

 

 

 

4. WHERE절

  • 검색할 조건을 기술

 

 

 

 

5. ORDER BY절

  • 특정 속성을 기준으로 정렬하여 검색할 때 사용
  • 속성명 : 정렬의 기준이 되는 속성명을 기술
  • [ASC | DESC] : 정렬 방식으로서 ASC는 오름차순, DESC는 내림차순이며, 생략하면 오름차순으로 지정됨

 

 

 

 

6. LIKE 연산자

  • 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용됨
  • % : 모든 문자를 대표함
  • _ : 문자 하나를 대표함
  • # : 숫자 하나를 대표함

 

 

 

 

 

728x90
728x90

 

 

 

1. 정의

  • 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는데 사용되는 언어
  • 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공
  • 유형 : SELECT(검색), INSERT(삽입), DELETE(삭제), UPDATE(갱신)

 

 

 

 

2. 삽입문(INSERT INTO~)

  • 기본 테이블에 새로운 튜플을 삽입할 때 사용
  • 일반 형식 : INSERT INTO 테이블명([속성명], [속성명2, ···]) VALUES (데이터1, 데이터2, ···);
  • 대응하는 속성과 데이터는 개수와 데이터 유형이 일치해야 함
  • 기본 테이블의 모든 속성을 사용할 때는 속성명을 생략할 수 있음
  • SELECT문을 사용하여 다른 테이블의 검색 결과를 삽입할 수 있음

 

 

 

 

3. 삭제문(DELETE FROM~)

  • 기본 테이블에 있는 튜플들 중에서 특정 튜플(행)을 삭제할 때 사용
  • 일반 형식 : DELETE FROM 테이블명 [WHERE 조건];
  • 모든 레코드를 삭제할 때는 WHERE절 생략
  • 모든 레코드를 삭제하더라도 테이블 구조는 남아 있기 때문에 디스크에서 테이블을 완전히 제거하는 DROP과는 다름

 

 

 

 

4. 갱신문(UPDATE~ SET~)

  • 기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용
  • 일반 형식 : UPDATE 테이블명 SET 속성명 = 데이터 [, 속성명=데이터, ···] [WHERE 조건];

 

 

 

 

5. 데이터 조작문의 네 가지 유형

  • SELECT(검색) : SELECT ~ FROM ~ WHERE ~
  • INSERT(삽입) : INSERT INTO ~ VALUES ~
  • DELETE(삭제) : DELETE ~ FROM ~ WHERE ~
  • UPDATE(변경) : UPDATE ~ SET ~ WHERE ~

 

 

 

 

 

728x90
728x90

 

 

 

1. 정의

  • 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
  • 데이터베이스 관리자(DBA)가 데이터를 관리를 목적으로 사용
  • GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 등이 있음

 

 

 

 

2. GRANT / REVOKE

  • 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소하기 위한 명령어
  • GRANT : 권한 부여를 위한 명령어
  • REVOKE : 권한 취소를 위한 명령어
  • 사용자등급 지정 및 해제 형식 :
GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;
  • 사용자등급 : DBA(데이터베이스 관리자), RESOURCE(데이터베이스 및 테이블 생성 가능자), CONNECT(단순 사용자) 등이 있음
  • 사용자 종류 : 사용자 ID(단순 사용자), ROLE(사용자에게 부여할 수 있는 권한들을 하나로 묶은 그룹), PUBLIC(모든 사용자) 등이 있음
  • 테이블 및 속성에 대한 권한 부여 및 취소 형식 :
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];
  • 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
  • WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여함
  • GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소함
  • CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함

 

 

 

 

3. COMMIT

  • 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency) 상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영하여야 하는데, 이 때 사용하는 명령어
  • COMMIT 명령을 실행하지 않아도 DML문이 성공적으로 완료되면 COMMIT을, DML이 실패하면 자동으로 ROLLBACK이 되도록 Auto Commit 기능을 설정할 수 있음

 

 

 

 

4. ROLLBACK

  • 아직 COMMIT 되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
  • 트랜잭션 전체가 성공적으로 끝나지 못하면 일부 변경된 내용만 데이터베이스에 반영되는 비일관성(Insconsistency)인 상태를 가질 수 있기 때문에 일부분만 완료된 트랜잭션은 롤백되어야 함

 

 

 

 

5. SAVEPOINT

  • 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어
  • 저장점을 지정할 때는 이름을 부여하며, ROLLBACK 시 저장된 저장점까지의 트랜잭션 처리 내용이 취소됨

 

 

 

 

 

728x90
728x90

 

 

 

1. 정의

  • DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어
  • 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장됨
  • CREATE SCHEMA, CREATE DOMAIN, CREATE TABLE, CREATE VIEW, CREATE INDEX, ALTER TABLE, DROP 등이 있음

 

 

 

 

2. CREATE SCHEMA

  • 스키마를 정의하는 명령문
  • 스키마의 식별을 위해 스키마 이름과 소유권자나 허가권자를 정의
  • 표기 형식 : CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;

 

 

 

 

3. CREATE DOMAIN

  • 도메인을 정의하는 명령문
  • 임의의 속성에서 취할 수 있는 값의 범위가 SQL에서 지원하는 전체 데이터 타입의 값이 아니고 일부분일 때, 사용자는 그 값의 범위를 도메인으로 정의할 수 있음
  • 정의된 도메인명은 일반적인 데이터 타입처럼 사용
  • 표기 형식 : CREATE COMAIN 도메인명 [AS] 데이터 타입 [DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK (범위값)];

 

 

 

 

4. SQL에서 지원하는 기본 데이터 타입

  • 정수(Integer) : INTEGER(4Byte 정수), SMALLINT(2Byte 정수)
  • 실수(Float) : FLOAT, REAL, DOUBLE PRECISION
  • 형식화된 숫자 : DEC(i, j), 단 i : 전체 자릿수, j : 소수부 자릿수
  • 고정길이 문자 : CHAR(n), CHARACTER(n), 단 n : 문자수
  • 가변길이 문자 : VARCHAR(n), CHARACTER VARYING(n), 단 n : 최대 문자수
  • 고정길이 비트열(Bit String) : BIT(n)
  • 가변길이 비트열 : VARBIT(n)
  • 날짜 : DATE
  • 시간 : TIME

 

 

 

 

5. CREATE TABLE

  • 테이블을 정의하는 명령문
  • 표기 형식 : 
CREATE TABLE 테이블명
(속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], ··· 
[, PRIMARY KEY(기본키_속성명, ···)]
[, UNIQUE(대체키_속성명, ···)]
[, FOREIGN KEY(외래키_속성명, ···)]
	[REPERENCES 참조테이블(기본키_속성명, ···)]
    [ON DELETE 옵션]
    [ON UPDATE 옵션]
[, CONSTRAINT 제약조건명] [CHECK (조건식)]);
  • 기본 테이블에 포함될 모든 속성에 대하여 속성명과 그 속성의 데이터 타입, 기본값, NOT NULL 여부를 지정
  • PRIMARY KEY : 기본키로 사용할 속성 또는 속성의 집합을 지정
  • UNIQUE : 대체키로 사용할 속성 또는 속성의 집합을 지정하는 것으로 UNIQUE로 지정한 속성은 중복된 값을 가질 수 없음
  • FOREIGN KEY ~ REFERENCES ~ : 참조할 다른 테이블과 그 테이블을 참조할 때 사용할 외래키 속성을 지정하며, 외래키가 지정되면 참조 무결성의 CASCADE 법칙이 적용됨
  • ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블이 취해야 할 사항을 지정하며, 옵션에는 NO ACTION, CASCADE, SET NULL, SET DEFAULT가 있음
  • ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 때 기본 테이블이 취해야 할 사항을 지정하며, 옵션에는 NO ACTION, CASCADE, SET NULL, SET DEFAULT가 있음
  • NO ACTION : 참조 테이블에 변화가 있어도 기본 테이블에는 아무런 조취를 취하지 않음
  • CASCADE : 참조 테이블의 튜플이 삭제되면 기본 테이블의 관련 튜플도 모두 삭제되고, 속성이 변경되면 관련 튜플의 속성 값도 모두 변경됨
  • SET NULL : 참조 테이블에 변화가 있으면 기본 테이블의 관련 튜플의 속성 값을 NULL로 변경
  • SET DEFAULT : 참조 테이블에 변화가 있으면 기본 테이블의 관련 튜플의 속성 값을 기본값으로 변경
  • CONSTRAINT : 제약 조건의 이름을 지정하며 이름을 지정할 필요가 없으면 CHECK절만 사용하여 속성 값에 대한 제약 조건을 명시
  • CHECK : 속성 값에 대한 제약 조건을 정의

 

 

 

 

6. 다른 테이블을 이용한 테이블 정의

  • 기본 테이블의 정보를 이용해 새로운 테이블을 정의
  • 표기 형식 : CREATE TABLE 신규테이블명 AS SELECT 속성명[, 속성명, ···] FROM 기존테이블명;
  • 기존 테이블에서 추출되는 속성의 데이터 타입과 길이는 신규 테이블에 그대로 적용
  • 기존 테이블의 제약 조건은 신규 테이블에 적용되지 않으므로 신규 테이블을 정의한 후 ALTER TABLE 명령을 이용해 제약 조건을 추가해야 함

 

 

 

 

7. CREATE VIEW

  • 뷰(View)를 정의하는 명령문
  • 표기 형식 : CREATE VIEW 뷰명[(속성명[, 속성명, ···])] AS SELECT문;
  • SELECT문을 서브 쿼리로 사용하여 SELECT문의 결과로 뷰를 생성
  • 서브 쿼리인 SELECT문에는 UNION이나 ORDER BY절을 사용할 수 없음
  • 속성명을 기술하지 않으면 SELECT문의 속성명이 자동으로 사용됨

 

 

 

 

8. CREATE INDEX

  • 인덱스를 정의하는 명령문
  • 표기 형식 : CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(속성명 [ASC | DESC] [, 속성명 [ASC | DESC]]) [CLUSTER];
  • UNIQUE : 중복 값을 허용할지를 지정하는 속성으로 인덱스를 생성
  • ASC : 오름차순 정렬 (기본값)
  • DESC : 내림차순 정렬
  • CLUSTER : 사용하면 인덱스가 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식인 클러스터드 인덱스로 설정됨

 

 

 

 

9. ALTER TABLE

  • 테이블에 대한 정의를 변경하는 명령문
  • 표기 형식 : 
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT 기본값];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT 기본값];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
  • ADD : 새로운 속성(열)을 추가할 때 사용
  • ALTER : 특정 속성의 Default 값을 변경할 때 사용
  • DROP COLUMN : 특정 속성을 삭제할 때 사용

 

 

 

 

10. DROP

  • 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문
  • 표기 형식 : 
DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
DROP DOMAIN 도메인명 [CASCADE | RESTRICT];
DROP TABLE 테이블명 [CASCADE | RESTRICT];
DROP VIEW 뷰명 [CASCADE | RESTRICT];
DROP INDEX 인덱스명 [CASCADE | RESTRICT];
DROP CONSTRAINT 제약조건명;
  • CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거. 즉 주 테이블의 데이터 제거 시 각 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용됨
  • RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소

 

 

 

 

 

728x90
728x90

 

 

 

7. Stack의 응용 분야

  • 함수 호출의 순서 제어
  • 인터럽트의 처리
  • 수식 계산 및 수식 표기법
  • 컴파일러를 이용한 언어 번역
  • 부 프로그램 호출 시 복귀 주소 저장
  • 서브루틴 호출 및 복귀 주소 저장

 

 

 

 

13. 후위 표기식(Postfix)을 중위 표기식(Infix)으로 바꾸기

  • 인접한 피연산자 두 개와 오른쪽의 연산자를 괄호로 묶는다 => (4 (2 (3 4 *) +) -)
  • 연산자를 해당 피연산자의 가운데로 이동시킨다 => (4 - (2 + (3 * 4)))
  • 필요 없는 괄호를 제거한다 => 4 - (2 + (3 * 4))

 

 

 

 

17. 삽입 정렬

  • 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬
  • 두 번째 키와 첫 번째 키를 비교해 순서대로 나열하고 이어서 세 번째 키를 첫 번째, 두 번째 키와 비교해 순서대로 나열하고, 계속해서 n번째 키를 앞의 n-1개의 키와 비교하여 알맞은 순서에 삽입하여 정렬하는 방식
14 32 15 38 27 6 21
14 15 32 38 27 6 21
14 15 32 38 27 6 21
14 15 27 32 38 6 21
6 14 15 27 32 38 21

 

 

 

 

25, 29. 데이터베이스의 특징

  • 실시간 접근성(Real-Time Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 함
  • 계속적인 변화(Continuous Evolution) : 데이터베이스의 상태는 동적임. 즉 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지해야 함
  • 동시 공용(Concurrent Sharing) : 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것으로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
  • 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터의 내용으로 데이터를 찾음

 

 

 

 

30. DBMS(데이터베이스 관리 시스템)

  • 사용자와 데이터 베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어
  • 데이터의 논리적, 물리적 독립성이 보장
  • 데이터의 중복을 피할 수 있어 기억 공간이 절약
  • 저장된 자료를 공동으로 이용 가능
  • 데이터의 일관성, 무관성을 유지할 수 있음
  • 보안을 유지할 수 있음
  • 데이터를 표준화할 수 있음
  • 데이터를 통합하여 관리할 수 있음
  • 정확한 최신 정보의 이용이 가능하고 정확한 데이터가 저장되어 있음을 보장하는 무결성이 유지됨
  • 데이터의 실시간 처리가 가능

 

 

 

 

42. 데이터 모델의 정의 요소

  • 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현
  • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
  • 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

 

 

 

55. 이상(Anomaly) 현상

  • 데이터의 중복으로 인해 발생하는 현상
  • 삭제 이상, 삽입 이상, 갱신 이상이 있음
  • 삭제 이상 : 릴레이션의 한 튜플을 삭제함으로써 연쇄 삭제로 인해 정보의 손실을 발생시키는 현상
  • 삽입 이상 : 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
  • 갱신 이상 : 튜플 중에서 일부 속성을 갱신함으로써 정보의 모순성이 발생하는 현상

 

 

 

 

 

728x90
728x90

 

 

 

1. 정의

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
  • 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주됨
  • 데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용
  • 조인문의 사용 최소화로 사용상의 편의성을 최대화
  • 뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가 생성된 뷰 이름을 질의어(예를 들면 SQL)에서 사용할 경우 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행됨

 

 

 

 

2. 특징

  • 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며 조작도 기본 테이블과 거의 같음
  • 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음
  • 데이터의 논리적 독립성을 제공할 수 있음
  • 필요한 데이터만 뷰로 정의해서 처리할 수 있음 => 관리가 용이하고 명령문이 간단
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있음
  • 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능
  • 일단 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있음
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용함

 

 

 

 

3. 장점

  • 논리적 데이터 독립성을 제공
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원
  • 사용자의 데이터 관리를 간단하게 해줌
  • 접근 제어를 통한 자동 보안이 제공

 

 

 

 

4. 단점

  • 독립적인 인덱스를 가질 수 없음
  • 뷰의 정의를 변경할 수 없음
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

 

 

 

 

5. 고려 사항

  • 테이블 구조가 단순화 될 수 있도록 반복적으로 조인을 설정하여 사용하거나 동일한 조건절을 사용하는 테이블을 뷰로 생성
  • 동일한 테이블이라도 업무에 따라 테이블을 이용하는 부분이 달라질 수 있으므로 사용할 데이터를 다양한 관점에서 제시해야 함
  • 데이터의 보안 유지를 고려하여 설계

 

 

 

 

 

728x90

+ Recent posts