제1항 개체-관계(E-R) 모델

(1) E-R 모델

1) E-R (Entity Relationship) 모델

① 세상의 사물을 개체(entity)와 개체간의 관계(relationship)로 표현함

 

2) E-R (Entity Relationship) 모델의 특성

① 1976년 Peter Chen(P.Chen)에 의하여 발표된 모델링 도구임

② 개체(Entity), 관계(Relationship), 속성(Attribute) 개념을 도입

③ 개념적 설계에 가장 많이 사용되는 모델

④ 각 개체 집합은 여러 개의 속성으로 표현되며각 속성은 현실 세계의 객체들이 갖는 특성

 

3) E-R 다이어그램의 구성요소




 

(2) 개체(Entity)

1) 사람사물장소개념사건과 같이 유·무형의 정보를 가지고 있는 독립적인 실체

2) 독립적인 의미를 지니고 있는 유·무형의 사람 또는 사물·개체의 특성을 나타내는 속성(attribute)에 의해 식별됨개체끼리 서로 관계를 가짐.

3) 비슷한 속성의 개체 타입(entity type)을 구성하며개체 집합(entity set)으로 묶임

4) 개체 타입(entity type)

① 같은 개체를 가지는 속성들의 집합

5) 개체 인스턴스(entity instance)

① 개체를 구성하고 있는 각 속성들이 값을 지녀 하나의 개체를 나타내는 것으로 개체 어커런스라고도 함.

6) 개체 세트(entity set)

① 개체 인스턴스의 집합

 

(3) 관계(relation)

두개 이상의 개체 사이에 존재하는 연관성

 

1) 관계의 기수성

① 특정 실체와 관련된 대상 실체의 최대 instance (1, many)

 

 

[참고기수성

 

특정 개체의 한건과 대응하는 상대 개체의 건수를 의미한다.

 

1) “한 부서는 여러명의 사원으로 구성된다” 라면

     “구성한다” 라는 관계에서 부서와 사원 관계의 기수성은 1:M이다.

2) “한 고객은 여러 개의 계약을 맺을 수 있고,

한 계약은 여러명의 계약자와 연결될수 있다” 라는 관계에서 고객과 계약 관계의

기수성은 M:N 이다.

 

2) 관계의 서수성

① 특정실체와 관련된 대상실체의 필수 존재여부 (optional, mandatory)

 

 

[참고서수성

 

특정 개체의 한건과 대응하는 상대 개체가 반드시 있어야 하는가?”를 의미한다.

 

1) “부서에는 반드시 사원이 한명 이상 있어야 한다” 라면

     “구성한다” 라는 관계에서 부서에 대한 사원 관계의 서수성은 필수적(mandatory)이다.

2) “한 고객은 여러 개의 주소를 가질 수 있으나고객 주소가 없어도 입력된다

라면 고객에 대한 고객주소 이력 관계의 서수성은 선택적(optional)이다.

 

3) 기수성/서수성 사례

① A의 어커런스는 반드시 B의 한 어커런스와 연관된다.

② A의 어커런스는 B의 한 어커런스와 연관되거나 안될수도 있다.

③ A의 어커런스는 B의 한 개 또는 다수의 어커런스와 연관된다.

④ A의 어커런스는 B의 다수의 어커런스와 연관되거나 안될수도 있다.

 

4) 관계의 형태

① 1:1 관계(일대일)

ü 개체집합 A의 각 원소가 개체 집합 B의 원소 1개와 대응

 

 

 

② 1:N 관계(일대다)

ü 개체집합 A의 각 원소는 개체집합 B의 원소 여러 개와 대응할 수 있고개체 집합 B의 각 원소는 개체 집합 A의 원소 1개와 대응

 

 

 

 

③ N:M 관계(다대다)

ü 개체집합 A의 각 원소는 개체집합 B의 원소 여러 개와 대응할 수 있고개체집합 B의 각 원소는 개체집합 A의 원소 여러 개와 대응할 수 있음

 

 

 

5) 새발(crow-feet) 표기법

 

 

(4) 관계 타입의 E-R 다이어그램 표현

1) 관계 타입

 

2) 관계 타입의 예

 

(5) 차수에 따른 유형

1) 차수(degree)

① 관계 집합에 참가하는 개체 타입의 수를 관계 타입의 차수(degree)라고 함

 

2) 차수에 따른 관계 타입의 유형

① 1진관계(unary relationship)

ü 한 개의 개체가 자기 자신과 관계를 맺음

 

② 2진관계(binary relationship)

ü 두개의 개체가 관계를 맺음

 

③ 3진관계(ternary relationship)

ü 세개의 개체가 관계를 맺음

 

(6) 확장 E-R 모델 (EER model: Extended E-R model)

1) 개체-관계 모델과 확장 E-R 모델

① 개체-관계 모델

ü 1976년 Peter Chen에 의해 발표됨

ü 개념 스키마 설계시 가장 널리 이용되는 도구

ü 구성요소개체(entity), 관계(relationship), 속성(attribute) 

 

② 확장 E-R 모델

ü E-R 모델의 개체관계 속성등의 개념에 일반화세분화약한 개체 유형복합 속성등과 같은 개념이 추가된 새로운 개념의 E-R 모델

 

2) 세분화와 일반화

① 세분화 (specialization)

ü 개체를 작은 그룹으로 분리하는 것 (상위클래스와 하위클래스)

 

② 일반화 (generalization)

ü 여러 개체의 공통적인 특징을 하나의 클래스 개체로 일반화시키는 것

 

 

3) 약한 개체(weak entity)?

① 개체중에 독자적으로 존재할 수 없는 개체를 말함

② 교수와 부양가족 개체의 관계에서 교수는 부양가족이 없을수도 있고 있을수도 있으므로 약한 개체라고 할 수 있다.

 

 

 

4) 복합속성이란?

① 주소속성은 시----번지우편번호 속성들로 이루어진 복합속성이다.

 

5) 기타

① 개체를 구성하는 속성들은 작은 원으로 표시

② 속성 중에서 기본적 속성(기본키검고 작은 원으로 표시

 

 

③ 관계와 개체를 연결하는 선 위에는 (최소 대응수최대 대응수)로 표시

ü 최소대응수 관계에 참여하는 최소한의 개체 인스턴스

0 : 참가해도 안해도 무관

1 : 최소 하나의 관계

N : 여러 개 관계

 

ü 최대대응수 관계에 참여하는 최대한의 개체 인스턴스

1 : 최대 1

N : 여러 개

 

6) 관계 대응수의 최소값과 최대값

① 개념

ü 관계 대응수 1:1, 1:N, N:M에서 1, N, M은 각 개체가 관계에 참여하는 최대값을 의미

ü 관계에 참여하는 개체의 최소값을 표시하지 않는다는 단점을 보완하기 위해 다이어그램에서는 대응수 외에 최소값과 최대값을 관계 실선위에 (최소값최대값)으로 표기

 

② 관계 대응수의 최소값과 최대값의 표기

 

③ 관계 대응수에 따른 관계 타입의 유형

 

④ (최소값최대값표기의 예

            

(7) 속성(attribute)

1) 정의

① 개체 또는 관계에 대한(속성)을 기술하는 데이터 항목을 말함

② 속성의 그래픽 표현은 타원으로 표시한다.

 

2) 속성의 분류

① 단일값 속성(single-valued attribute)

ü 속성값이 원자값인 것으로 하나의 값만 존재하는 것 (속성 하나에 한 개의 값을 가지는 경우)

ü 주민등록번호와 같은 속성은 반드시 하나의 값만 존재한다.

 

 

② 다중값 속성(multi-valued attribute)

ü 속성값이 여러 개 존재할 수 있는 것

ü 사람의 전화번호는 집휴대전화회사 전화번호와 같이 여러 개의 값을 가질수 있다.

 

 

③ 복합속성

ü 속성값이 여러 의미를 포함하는 것

 

 

④ 유도속성(derived attribute)

ü 다른 엔티티나 속성으로부터 유도되거나 계산된 속성들은 유도 속성이라고 함

ü 다른 속성값으로부터 어떤 계산을 통해 새로운 값을 얻게 되므로 집합의 본질이나 특성을 규명하기 위한 속성을 고려할 때 제외할 수도 있다.

 

 

ü 저장속성과 유도속성

• 저장 속성(stored attribute)은 다른 속성의 영향 없이 단독으로 저장되는 속성이고유도 속성(derived attribute)은 다른 저장 속성으로부터 유도된(계산 되어진속성이다.

'정보처리기사 > 데이터베이스' 카테고리의 다른 글

11. 데이터베이스 고급기능(1)  (0) 2017.08.01
10. 정규화  (0) 2017.08.01
08. 데이터모델링 및 설계  (0) 2017.08.01
07. SQL(Structure Query Language)  (0) 2017.08.01
06. 관계데이터언어(관계대수)  (0) 2017.08.01





제1절 데이터모델링 및 설계


제1항 모델링의 이해

(1) 모델링의 정의

1) 모델이라고 하는 것은 모형축소형의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형

2) 사람이 살아가면서 나타날 수 있는 다양한 현상은 사람사물개념 등에 의해 발생된다고 할 수 있으며모델링은 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체

3) 모델링은 현실세계를 추상화단순화명확화하기 위해 일정한 표기법에 의해 표현하는 기법

4) 정보시스템 구축에서는 모델링을 계획/분석/설계 할 때 업무를 분석하고 설계하는데 이용하고 이후 구축/운영 단계에서는 변경과 관리의 목적으로 이용

 


(2) 모델링의 특징

1) 추상화

① 추상화(모형화가설적)는 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미

② 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것

 

2) 단순화

① 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념

 

3) 명확화

① 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하여 정확하게 현상을 기술하는 것

제2항 정보 모델링과 데이터 모델링

 

 

(1) 정보 모델링(information modeling)

1) 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조(현실 세계에 대한 인식을 추상적 개념으로 표현)로 표현하는 과정

2) 정보모델링을 통하여 얻어진 결과를 정보 구조화라 함

3) 정보 구조를 구성하는 추상적 개념은 현실 세계의 객체에서 추상화된 개체(entity) 집합

 

 

(2) 데이터 모델링(data modeling)

1) 현실세계에 존재하는 개체를 컴퓨터 세계의 데이터 구조로 기술하는 것

2) 데이터 모델링의 과정

 


제3항 데이터 모델링

 

 



(1) 데이터 모델 (data model)의 개념

1) 현실 세계를 데이터베이스에 표현하는 중간 과정즉 데이터베이스 설계과정에서 데이터 구조를 표현하기 위해 사용되는 도구

2) 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적인 도구

3) 단순화추상화를 제공하기 위해 사용

4) 데이터베이스의 구조를 묘사하기 위해 사용되는 개념들의 집합

5) 데이터베이스의 구조는 데이터의 타입데이터간의 관계데이터를 유지하기 위해 필요한 제약들을 의미

 

 

(2) 개념적 데이터 모델링

1) 처음 현실세계에서 추상화 수준이 높은 상위 수준을 형상화하기 위해 개념적 데이터 모델링을 전개

2) 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링을 진행한다.

 

 

 

3) 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법

4) 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정

5) 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 E-R 다이어그램을 만드는 과정까지를 말함

 

(3) 논리적 데이터 모델링

1) 엔티티 중심의 상위 수준의 데이터 모델이 완성되면 업무의 구체적인 모습과 흐름에 따른 구체화된 업무중심의 데이터 모델을 만들어 내는데 이것을 논리적인 데이터 모델링이라고 함.

2) 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법

 

3) 논리적 모델링 과정

① 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출함

② 정규화 수행

③ 데이터 표준화 수행

 


 

(4) 물리적(하위수준모델의 개념

1) 데이터베이스 저장구조에 따른 테이블스페이스 등을 고려한 방식을 물리적인 데이터 모델링이라고 함.

2) 레코드의 형식순서접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사

3) 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정

4) DBMS의 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있음

 

 

5) 물리적 모델링 시 트랜잭션저장 공간 설계 측면에서 고려할 사항

① 응답시간을 최소화

② 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토

③ 데이터가 저장될 공간을 효율적으로 배치

 

 

(5) 데이터 모델의 구성요소

1) 논리적으로 표현된(추상적인 개념데이터 구조

2) 구성요소의 연산

3) 구성요소의 제약조건

 

(6) 데이터 모델스키마인스턴스의 관계

1) 모델 → 스키마 → 인스턴스

 

제4항 데이터 모델의 구성요소

(1) 개체 타입(entity type)

1) 같은 개체를 가지는 속성들의 집합

 

(2) 개체 인스턴스(entity instance)

1) 개체를 구성하고 있는 각 속성들이 값을 지녀 하나의 개체를 나타내는 것으로 개체 어커런스라고도 함.

 

(3) 개체 세트(entity set)

1) 개체 인스턴스의 집합

 

제5항 데이터베이스 설계

(1) 데이터베이스 생명주기(database life cycle)

 

1) 요구조건 분석 → 데이터베이스에 저장할 내용을 정하기 위해 사용자 요구사항 분석

2) 설계 → 개념적 설계 논리적 설계 물리적 설계

3) 구현 → 스키마 정의데이터베이스 구축

4) 운영 → 사용자의 요구에 맞는 서비스 제공

5) 감시 및 개선 → 새로운 요구조건 감시 및 성능 향상

 

(2) 데이터베이스 설계 단계

 

1) 요구조건 분석 → 데이터베이스에 저장할 내용을 정하기 위해 사용자 요구사항 분석

2) 개념적 설계 → DBMS에 독립적인 개념 스키마 설계 (트랜잭션 모델링 및 정의)

3) 논리적 설계 → DBMS에 맞는 스키마 설계 (트랜잭션 인터페이스 설계)

4) 물리적 설계 → DBMS에 맞는 물리적 구조 설계 (트랜잭션 세부 설계)

5) 구현 → DDL로 스키마 작성 (트랜잭션 작성)

 

(3) 데이터베이스 설계의 두가지 활동

1) 데이터중심 설계데이터베이스의 내용과 구조에 치중

2) 처리중심 설계데이터의 처리와 응용에 치중

 

(4) 데이터베이스 설계의 각 단계별 특징

1) 요구조건 분석

① 요구조건

ü 개체애트리뷰트관계성제약조건 등의 요구 조건 분석

ü 트랜잭션의 유형트랜잭션의 실행 빈도 등의 요구 조건 분석

ü 기관의 경영목표 및 정책규정 등의 제약조건 분석

 

② 요구조건 분석 절차

ü 사용자 그룹이나 응용 분야별로 정보의 내용과 처리 요구 조건의 수집

ü 범기관적 경영 목표 및 외적 환경 등 연구 분석

ü 수집된 정보로 공식적 요구조건 명세 작성 (관련 데이터 요소 및 트랜잭션 정의 포함)

ü 요구 조건 명세의 검토 (소프트웨어 공학기법: HIPO, SADT, DFDS )

 

2) 개념적 설계

① 개념 스키마 모델링 (데이터 중심 설계)

ü 데이터의 조직과 표현 (개체타입애트리뷰트관계성 결정)

ü E-R 다이어그램 같은 개념적 데이터 모델 사용

ü DBMS에 독립적인 추상적 데이터에 기초를 둔 개념

 

② 트랜잭션 모델링 (처리 중심 설계)

ü 요구조건 분석 결과로 식별된 응용을 검토하여 이들을 구현할 트랜잭션 기술

 

3) 논리적적 설계

① 특정 목표 DBMS가 처리할 수 있는 스키마 생성

 

② 논리적 설계의 3단계

ü 논리적 데이터 모델로 변환

ü 트랜잭션 인터페이스 설계

ü 스키마의 평가 및 정제

 

4) 물리적 설계

① 논리적 데이터베이스 구조로부터 효율적이고 구현 가능한 물리적 구조를 생성하는 것

ü 저장 레코드 양식 설계

ü 레코드 집중의 분석 및 설계

ü 접근 경로 설계

 

② 물리적 설계시 고려사항

ü 응답시간

ü 저장 공간 효율화

ü 트랜잭션 처리도

 

5) 구현

① 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(인덱스등)를 만듦

 

6) 운영

① 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공

 

7) 감시 및 개선

① 데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선

 

(5) 트랜잭션

1) 트랜잭션(Transaction)의 특징

① 원자성(atomicity)

ü 자기 연산을 전부 또는 전무 실행만 한다.

 

② 일관성(consistency)

ü 트랜잭션 실행 후 일관성 있는 데이터베이스 상태로 변환한다.

 

③ 격리성(isolation)

ü 트랜잭션 실행 중 연산의 중간 결과에 다른 트랜잭션이 접근할 수 없다.

 

④ 영속성(durability)

ü 실행이 성공적으로 완료되면 그 결과는 영속적이다.

'정보처리기사 > 데이터베이스' 카테고리의 다른 글

10. 정규화  (0) 2017.08.01
09. 개체-관계(E-R) 모델  (0) 2017.08.01
07. SQL(Structure Query Language)  (0) 2017.08.01
06. 관계데이터언어(관계대수)  (0) 2017.08.01
05. 관계데이터모델  (0) 2017.08.01










제1항 SQL 언어(DDL, DML, DCL, Embedded SQL)

(1) 개요

1) SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인 중 하나이다.

2) SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로 집단함수그룹화갱신 연산등을 추가하여 개발된 언어이다.

3) 1986년에 ANSI(미국 표준 기구)에서 SQL 표준을 채택함으로써 SQL이 널리 사용되는데 기여

4) 다양한 상용 관계 DBMS마다 지원하는 SQL 기능에 다소 차이가 있음.

 

(2) 정의 (Structure Query Language)

1) 데이터베이스에서 정보를 얻거나 갱신하기 위한 표준화된 언어로서 대화형으로 이용하거나또는 프로그램내에 삽입하여 쓸수 있다.

 

(3) 분류


그림 58. SQL 분류

 

1) 데이터 정의어(DDL, Data Definition Language)

① 정의

ü 데이터베이스의 구조나 스키마를 가진 오브젝트를 다루는(생성(create), 삭제(drop), 변경(alter) 데이터베이스 언어이다.

ü 키 제약조건개체(Entity) 무결성 제약조건참조 무결성 제약조건 등을 포함하는 관계 데이터베이스 스키마를 생성한다.

ü 데이터베이스 관리 시스템(DBMS) 에서 사용자의 편의와 구현상의 편의를 위해 명령어를 제공함

 


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

① 정의

ü 사용자나 응용 프로그램과 데이터베이스 관리 시스템(DBMS) 간의 인터페이스를 제공

ü 데이터베이스 사용자에게 적절한 명령어를 사용하여 데이터를 수정하거나 데이터를 질의

 


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

① 정의

ü 데이터의 보안무결성데이터 회복병행 수행 제어에 관련하여 데이터를 관리하기 위한 데이터 제어를 정의한다.

ü 데이터 관리자가 데이터를 관리할 목적으로 사용한다.

 


(4) 데이터 정의어(DDL, data definition language)

1) 제약조건

릴레이션 정의에서 다양한 제약 조건을 명시

 

① 무결성 제약조건

ü 속성(attribute) 제약조건

• Not null

널 값을 허용하지 않을 때

• Unique

동일한 속성값을 갖는 튜플이 두개 이상 존재하지 않도록 보장

• default

default 값을 지정

• check

속성이 가질수 있는 값들의 범위 지정

 

ü 기본키(primary key) 제약조건

• 각 릴레이션마다 최소 한 개의 기본키 지정

 

ü 참조무결성 제약조건

• 외래키의 무결성 보장

• On delete no action

다른 테이블의 기존행에 있는 외래키에서 참조하는 키가 포함된 행을 삭제하려고 하면 오류가 발생하고 delete 문이 롤백되도록 지정

• On delete cascade

 다른 테이블의 기존행에 있는 외래키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래키가 포함되어 있는 모든 행도 삭제되도록 지정합니다.

• On delete set null

내용이 삭제된 외래키의 값을 null로 만든다.

• On delete set default

내용이 삭제된 외래키의 값을 default로 설정한다.

 

• On update no action

다른 테이블의 기존행에 있는 외래키에서 참조하는 키가 포함된 행에서 키 값이 업데이트하려고 하면 오류가 발생하고 update 문이 롤백되도록 지정합니다.

• On update cascade

다른 테이블의 기존행에 있는 외래키에서 참조하는 키값이 포함된 행에서 키값을 업데이트하려고 하면 해당 외래키를 구성하는 모든값도 키에 지정된 새 값으로 수정되도록 지정합니다.

 

• On update set null

내용이 수정된 외래키의 값을 null로 만든다.

• On update set default

내용이 수정된 외래키의 값을 default로 만든다.

 

 

2) CREATE

SQL에서는 동일한 데이터베이스 응용에 속하는 릴레이션도메인제약조건권한등을 구룹화하기 위해서 스키마 개념을 지원한다.

 

① CREATE SCHEMA

ü 스키마를 정의한다스키마에 대한 정보는 연결한 데이터베이스의 시스템 카탈로그 테이블에 저장된다.

ü 스키마의 식별을 위한 스키마와 해당 스키마의 소유권자/허가권자를 정의함

ü 기본구조

• CREATE SCHEMA schema-name [ AUTHORIZATION schema-owner-name ]

• 여기서 schema-name은 스키마 이름입니다이 이름은 카탈로그에 이미 기록된 스키마 내에서 고유해야 합니다선택적 authorization절이 지정되어 있으면 schema-owner-name이 스키마의 소유자가 됩니다.

 

② CREATE DOMAIN

ü 도메인을 정의

ü 정의된 도메인명은 일반적인 데이터 타입처럼 사용

ü 기본구조

• Create domain 도메인이름 data-type default 기본값지정

• Data-type의 종류

정수실수날짜시간

형식화 된 숫자

고정길이 문자가변길이 문자

고정길이 비트열가변길이 비트열

• 예제

Create domain sung char(1) default ‘’ constraint valid sung check (value in (‘’, ‘’));

 

③ CREATE TABLE

ü 테이블을 정의

ü 기본 구조

create table 테이블 명칭 {

(속성명 data-type),

Primary key (기본키 속성명),

Unique (대체키 속성명),

Foreign key (외래키 속성명),

References 참조테이블(기본키 속성명),

Check (조건식);

};

ü 예제

Create table 학생 {

학번 char(20),

이름 char(20) not null,

생년월일 date,

Primary key(학번),

Unique(생년월일),

Foreign key(과목코드references 과목(과목코드)

On delete set null on update cascade,

Check 생년월일>=’1995-03-02’

};

 

                 

 

④ CREATE VIEW

ü 사용자에게 접근이 허용된 자료만 보여주기 위해 하나 이상이 테이블에서 유도된 가상 테이블

ü 물리적으로 존재하지 않고 논리적으로만 존재

ü 기본 구조

Create view 뷰이름(속성명, …)

As select 속성명, …

From 테이블명

Where 조건;

[with check option]

ü 예제

Create view 컴퓨터(이름과목) as

             Select 이름과목

             From 학생

             Where 과목=’DB’;

 

 

⑤ CREATE INDEX

ü 검색 성능 향상 위해 사용

ü 기본 구조

• Create [unique] index 인덱스이름 on 기본테이블이름(속성이름 정렬방식)

ü 예제

• Create unique index 인덱스이름 on 고객(속성이름 정렬방식);

• 정렬방식: asc(오름차순),  desc(내림차순)

 

3) ALTER TABLE

① 테이블인덱스스키마 등에 대한 구조를 변경

② 기본 구조

ü Alter table 테이블이름 add 속성이름 data-type [default ];

ü Alter table 테이블이름 alter 속성이름 data-type [set default ];

ü Alter table 테이블이름 drop 속성이름 data-type [cascade];

③ 예제

ü Alter table 학생 add 주민번호 char(18);

ü Alter table 학생 drop 전화번호;

 

 

 

 

4) DROP

① 스키마도메인테이블인덱스를 제거하는 명령문

② 기본 구조

Drop         schema 테이블 이름 [cascade restrict]

                  Domain

                  Table

                  View

                  Index

 

Cascade : 릴레이션을 참조하는 뷰인덱스제약조건외래키 모두 삭제

Restrict : 다른 릴레이션에서 참조되지 않는 릴레이션만 제거

 

③ 예제

ü Drop schema 학교 cascade;

ü Drop table 학생 restrict;

 


 

※ 데이터 제어어(dcl)은 데이터의 보안무결성데이터 회복병행 수행 제어 등을 정의하는데 사용하는 언어이다.

 

(5) 데이터 조작어(DML, data manipulation language)

1) SELECT

① 테이블을 구성하는 튜플들 중에서 조건에 만족하는 튜플을 검색하여 임시 테이블을 만드는 명령

② 기본 구조

Select [all distinct검색대상

From 테이블명

[where 조건식]

[group by 열명칭]

[having 검색조건]

[order by 열명칭 [asc desc];

• Distinct : 중복된 데이터 한번만 출력

• Asc : 오름차순

• Desc : 내림차순

 

③ 설명

ü Select

• 질의 결과를 포함하려는 속성들을 열거

• Distinct 절을 사용해서 중복 제거

ü from

• 질의에서 필요로 하는 릴레이션들을 열거

ü where

• 관계대수의 셀렉션 연산의 조건에 해당

ü Group by

• 동일한 값을 갖는 튜플들을 한 그룹으로 묶는다

ü having

• 튜플들의 그룹이 만족해야 하는 조건

 

④ 별칭(alias)

ü 서로 다른 릴레이션에 동일한 이름을 가진 속성이 속해 있을 때 속성의 이름을 구분하는 방법

ü Select e.dno, d.dno from employee as e, department as d

 

⑤ 예제

ü 테이블의 전체 속성(*) 보기

• Select from 테이블명

• 테이블의 존재하는 모든 튜플과 모든 속성을 보여준다.

ü 테이블에서 중복을 없앤 속성(attribute) 보기

• Select distinct 속성명 from 테이블명

• 테이블에서 지정한 속성만을 보여주는데중복된 속성은 하나만 보여준다.

ü 테이블에서 조건에 만족하는 튜플만 보기

• Select from 테이블명 where 속성명 <> ’

• 테이블에서 지정된 속성의 값이 일치하는 튜플만을 보여준다.

• 부정연산자 : <>

ü 테이블에서 여러 개의 조건을 만족하는 튜플만 보기

• Select from 테이블명 where 속성명=’and 속성명=’

• 테이블에서 지정된 속성들의 값과 일치하는 튜플만을 보여준다.

• 연산자들의 우선순위

ü 테이블에서 % 조건에 만족하는 튜플만 보기

• Select from 테이블명 where 속성명 like %’

• 테이블에서 지정된 속성의 값이 로 시작하는 모든 튜플을 보여준다.

• ‘%’는 모든 문자를 말하며, ‘_’는 한 문자를 의미함

ü 테이블에서 범위 조건에 만족하는 튜플만 보기

• Select from 테이블명 where 속성명 between and 100

• Select * from 테이블명 where 속성명 >= 0 and 속성명 <= 100

• 속성명의 값이 0보다 크거나 같고 100보다 작거나 같은 튜플만 보여준다.

ü 테이블에서 지정된 속성의 값이 null인 모든 튜플 보기

• Select from 테이블명 where 속성명 is null

• Select from 테이블명 where 속성명 is not null

 

 

⑦ Group by 속성 [having 조건]

ü 조건에 맞게 속성들을 그룹별로 처리한다.

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

ü Having은 group by와 함께 사용되며그룹에 대한 조건을 지정한다.

ü 예제

• Select 속성명, count(*) as 표시명 from 테이블명 where 속성명 >= 90 group by 과목 having count(*)>=2

 

   

⑧ Order by 속성 [asc | desc]

ü 지정된 속성으로 정렬을 한다.

ü Asc: 오름차순(a-z, -), desc: 내림차순(z-a, -)

ü 예제

• Select from 속성명 where 속성명=’’ order by 속성명 desc

• 속성명이 이 튜플을 보여주는데, order by에 지정된 속성명으로 내림차순 정렬을 해서 보여준다.

 

⑨ in

ü 조건절에 명시된 속성값이 in 다음에 나열되는 값들과 일치되는 튜플들만 표시한다.

ü Select from 테이블명 where 속성명 in (select 속성명 from 테이블명)

 

⑩ Null 

ü 널값을 포함한 다른 값과 널값을 +, - 등을 사용하여 연산하면 결과는 널이 됨

ü Count(*)를 제외한 집단 함수들은 널값을 무시함

ü 어떤 속성에 들어 있는 값이 널인지 비교하기 위해서 속성=null’ 처럼 사용하면 안됨

ü 다음과 같은 비교 결과는 모두 거짓

• Null > 300

• Null = 300

• Null <> 300

• Null = null

• Null <> null

 

ü 바른 표현

• Select from 테이블명 where 속성 is null;

 

⑪ 집단함수

ü 정의

• 각 집단함수는 한 릴레이션의 한 개의 속성에 적용되어 단일값을 변환함

• Select절과 having절에만 나타날 수 있음

• count(*)를 제외하고는 모든 집단함수들이 널값을 제거한 후 남아 있는 값들에 대해서 집단 함수의 값을 구함

• count(*)는 결과 릴레이션의 모든 행들의 총 개수를 구함

• count(속성명)는 해당 속성에서 널값이 아닌 값들의 개수를 구함

• distinct가 집단 함수 앞에 사용되면 집단 함수가 적용되기 전에 먼저 중복을 제거함

 

ü 종류

• Count(속성): 튜플이나 값들의 개수

• Avg(속성): 값들의 평균값

• Sum(속성): 값들의 합

• Max(속성): 값들의 최대값

• Min(속성): 값들의 최소값

 

⑫ Exists(q), not exists(q)

ü Exists: 질의 q의 결과에 최소한 한 개의 튜플이 있으면 참그렇지 않으면 거짓을 반환한다.

ü Not exists: 질의 q의 결과에 튜플이 없다면 참그렇지 않으면 거짓을 반환한다.

 

⑬ 비교연산자

ü = : 같다

ü <> : 같지 않다

ü > :크다

ü < :작다

ü >= : 크거나 같다

ü <= : 작거나 같다

ü In : 포함되어 있다

 

⑭ select에서의 집합 연산

ü 정의

• 집합연산을 적용하려면 두 릴레이션이 합집합 호환성을 가져야 함

• 입력 릴레이션 결과 릴레이션에서 중복 튜플 배제

Union(합집합)

Except(차집합)

Intersect(교집합)

• 입력 릴레이션 결과 릴레이션에서 중복 튜플 허용

Union all(합집합)

Except all(차집합)

Intersect all(교집합)


⑮ select에서의 조인(join)

ü 정의

• 조인은두개의 릴레이션으로부터 연관된 튜플들을 결합

• 조인의 일반적인 형식은 아래의 select문과 같이 from절에 두개 이상의 릴레이션들이 열거되고두 릴레이션에 속하는 애트리뷰트들을 비교하는 조인 조건이 where절에 포함됨

• 조인 조건은 두 릴레이션 사이에 속하는 속성값들을 비교 연산자로 연결한 것

• 가장 흔히 사용되는 비교 연산자 ‘=’

 

• 조인 조건을 생략했을 때와 조인 조건을 틀리게 표현했을 때는 카티션 곱이 생성됨

• 조인 질의가 수행되는 과정을 개념적으로 살펴보면 먼저 조인 조건을 만족하는 튜플들을 찾고이 튜플들로부터 SELECT절에 명시된 속성들만 프로젝트하고필요하다면 중복을 배제하는 순서로 진행됨

• 조인 조건이 명확해지도록 속성 이픔 앞에 릴레이션 이름이나 튜플변수를 사용하는 것이 바람직

• 두 리레이션의 조인 속성명이 동일하다면 반드시 속성명앞에 릴레이션 이름이나 튜플변수를 사용해야 함

 

 

 

2) INSERT

① 데이터베이스에 저장된 튜플을 삽입하기 위한 언어

② 기본 구조

Insert into 테이블명

Values (데이터 값데이터 값2, …);

③ 예제

ü 테이블에 튜플을 추가해라

• Insert into 테이블명 values (‘1’, ‘2’, ‘3’)

• 지정된 테이블에 튜플을 추가한다.

 

ü 테이블에 지정된 속성들의 값을 추가해라

• Insert into customers (customerName, ContactName, Address, City, PostalCode, Country) values (‘Cardinal’, “Tom’, ‘Skagen’, ‘Stavanger’, ‘4006’, ‘Norway’);

 

ü 테이블에 지정된 속성들의 값을 추가해라

• Insert into Customers (CustomerName, City, Country) values (‘Cardinal’, ‘Stavanger’, ‘Norway’)

 

ü 테이블에 지정된 속성들의 값을 추가해라

• Insert into Customers (CustomerName, City, Country) values (‘Cardinal’, ‘Stavanger’, ‘Norway’)

 

Customers 테이블

Suppliers 테이블

ü 여러 개의 튜플들을 추가해라

• Insert into Customers (CustomerName, Country) select SupplierName, Country from Suppliers;

• Insert into Customers (CustomerName, Country) select SupplierName, Country from Suppliers where country=’USA’;

 

3) UPDATE

① 테이블에 있는 튜플들 중에서 지정된 튜플의 내용을 수정할 때 사용하는 언어

② 기본 구조

Update 테이블명

Set 열명칭 변경값

[where 조건식];

 

③ 예제

 

ü 지정된 튜플의 값을 변경하라.

• Update Customers set ContactName=’Alfred Schmidt’, City=’Hamburg’ where CustomerName=’Alfreds Futterkiste’;

 


4) DELETE

① 테이블에 있는 튜플들 중에서 지정된 튜플을 삭제할 때 사용하는 언어

② 기본 구조

Delete from 테이블명

[where 조건식];

 

③ 예제

ü 지정된 튜플을 삭제하라

• Delete from Customers where CustomerName=’Alfreds Futterkiste’;

 

ü 테이블의 모든 튜플을 삭제하라

• Delete from Customers

• Delete * from Customers

• 테이블에 있는 모든 튜플들이 삭제되는 것이지 테이블 자체가 삭제되는 것은 아니다테이블 자체를 삭제하는 명령어는 drop 이다.

 


 

(6) 데이터 제어어(DCL, data control language)

1) GRANT

① 데이터베이스 사용자에게 사용권한 부여

② 기본 구조

Grant 권한 on 테이블명 to 사용자명 [with grant option];

 

③ 예제

• Grant select on 테이블명 to rhk [with grant option];

• 권한: all, insert, delete, update, select 

• With grant option : 사용자가 받은 권한을 다른 사용자에게 부여할 수 있음

 

2) REVOKE

① 데이터베이스 사용자의 사용 권한을 취소

② 기본 구조

Revoke 권한 on 테이블명 from 사용자명 [cascade];

 

③ 예제

• Revoke select on 수강생 from rhk [cascade]

• Cascade : 권한을 부여받은 사용자가 다른 사용자에게 부여한 권한도 취소

 

3) COMMIT

① 데이터베이스 조작 작업을 영구적으로 반영하여 완료함

 

4) ROLLBACK

① 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구


'정보처리기사 > 데이터베이스' 카테고리의 다른 글

09. 개체-관계(E-R) 모델  (0) 2017.08.01
08. 데이터모델링 및 설계  (0) 2017.08.01
06. 관계데이터언어(관계대수)  (0) 2017.08.01
05. 관계데이터모델  (0) 2017.08.01
04. 정렬, 탐색기법  (0) 2017.08.01

+ Recent posts