database 용어 설명 (oracle)

DATABASE 용어 설명

용어

내용

데이터 웨어하우스

의사결정지원 시스템이 효율적으로 운영되기 위해 다양한 소스의 데이터를 별도로 추출하여 관리하는 것

데이터 마이닝

데이터 웨어하우스의 규모가 크고 복잡할 때 관련 데이터를 찾아내고 필요한 정보나 지식을 생성하는 과정

데이터 마트

특정 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스

데이터베이스 정의

1. 통합된 데이터 (integrated data)

2. 저장된 데이터 (stored data)

3. 운영 데이터 (operational data)

4. 공용 데이터 (shared data)

데이터베이스 특성

- 실시간 접근성 (real time accessibility)

- 내용에 의한 참조 (content reference)

- 동시 공유 (concurrent sharing)

- 계속적 변화 (continuous evolution)

데이터베이스 구성요소

1. 개체 (entity)

2. 속성 (attribute)

3. 관계 (relationship)

 

DBMS의 필수기능

1. 정의기능

2. 조작기능

3. 제어기능 - 무결성 유지, 보안, 병행제어

ODBC
(Open DataBase
 Connectivity)

윈도우즈 응용 프로그램에서 다양한 DBMS에 접근하여 사용할 수 있도록 개발한 표준 개방형 응용 프로그램인터페이스 규격이다. 쉽게 말해 공통 인터페이스를 통해 서로 다른 DBMS에 접근할 수 있도록 한 것이다.

무결성(Integrity)

데이터베이스 내에 지정되는 데이터 값들이 항상 일관성을 갖고 데이터의 유효성, 정확성, 안정성을 유지할 수 있도록 하는 제약조건을 두는 데이터베이스의 특성.

 

스키마(schema)

데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술한 것. 스키마는 컴파일 되어 데이터 사전(Data Dictionary,=시스템 카달로그=메타데이터)에 저장됨.

스키마의 3계층

1. 외부스키마 (=서브스키마=사용자 뷰(가상테이블))

2. 개념스키마 (=전체적인 뷰)

3. 내부스키마

데이터베이스 언어

1. DDL(Data Definition Language)-정의어 : CREATE, ALTER, DROP

2. DML(Data Manipulation Language)-조작어 : SELECT, UPDATE, INSERT, DELETE

3. DCL(Data Control Language)-제어어 : COMMIT, ROLLBACK, GRANT, REVOKE

데이터베이스 사용자

1. 일반사용자 - (질의어) 

2. 응용프로그래머 - (DML/응용프로그램)

3. DBA - (DDL/DCL)

 

데이터베이스

설계순서

1. 요구조건분석                 -> 명세서

2. 개념적 설계                  -> 스키마

3. 논리적 설계 - 정규화 과정    -> 논리 스키마

4. 물리적 설계                  -> 물리 스키마

5. 구현                         -> DB구현

데이터 모델

현실세계를 데이터베이스에 표현하는 중간과정, 즉 데이터베이스 설계과정에서 데이터의 구조를 표현하기

(구성요소 : 데이터 구조, 연산, 제약조건)

교차관계

(=intersection relationship) n:m관계 라고도 함.

재귀관계

(=intersection relationship) 동일 개체간에 참조하는 관계

 

관계데이터모델

(=RDB) 개체 집합에 대한 속성관계를 표현하기 위해 개체를 릴레이션, 테이블로 사용하고, 개체 집합들 사이의 관계를 공통속성으로 연결하는 독립된 형태의 데이터 모델(기본키, 외래키로 표현,n:m관계 표현가능)

계층데이터모델

(=Hierarchical Data Model)

데이터베이스의 논리적 구조 표현을 트리(Tree)형태로 표현한 데이터 모델 (n:m관계 표현 불가능, 1:n관계로 표현가능)

네트워크 데이터 모델

데이터베이스의 논리적 구조표현을 그래프 형태로 표현한 데이터 모델 (n:m관계 표현 불가능, 1:n관계로 표현가능)

객체지향 데이터모델

실세계에 존재하는 개념적 엔티티를 중심으로 모델링하는 방식

 

캡슐화 (Encapsulation)

객체지향 데이터베이스에서 연관된 자료구조와 함수를 한 테두리로 묶는 것을 말함.

 

릴레이션

테이블

릴레이션 스키마

성질이름(정적)                       ) 이름,   학번

릴레이션 인스턴스

실질적인 내용(동적)                  ) 남기수, 52061762

튜플(Tuple)

테이블의 행(Row)                    =레코드

카디널리티(Cardinality)

튜플의 수                         

속성

개체가 가지는 특성이나 상태         =테이블의 열(Column)

차수

속성의 수

도메인

하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합

교차엔티티

(=교차릴레이션)

n:m관계의 릴레이션 사이에서 생긴 별도의 릴레이션

정규화 릴레이션

모든 속성이 '원자값'으로만 구성된 릴레이션

 

릴레이션에 존재하는 튜플을 식별하기 위한 식별자를의미

슈퍼키

튜플을 구별하기 위해 한 개 이상의 속성의 집합으로 이루어진 키

유일성은 만족, 최소성은 만족하지 않는 키

후보키 (Candidate Key)

유일성, 최소성을 모두 만족하는 키

기본키 (Primary Key)

후보키 중에서 대표로 지정된 키 (중복값, null 불가)

대체키 (Alternative Key)

기본키를 제외한 후보키

외래키 (Foreign Key)

참조하는 릴레이션의 기본키

 

무결성 종류

-키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야

-널 무결성 : 속성이 NULL값을 가질 수 없음.

-고유 무결성 : 특정 속성에 대해 각 튜플이 갖는 값이 달라야함.

-개체무결성(Entity Integrity) : 한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 널값이나 중복값을 가질 수 없음.

-참조무결성(Reference Integrity) : 참조할 수 없는 외래키 값을 가질 수 없음.

-영역무결성(Domain Integrity) : 속성 값들은 정해진 범위 내에 있어야 함.

) 성별은 남,여 만 입력가능

 

이상(Anomaly)

데이터의 중복으로 인하여 사용자의 의도와 다르게 데이터가

삽입(삽입이상), 삭제(삭제이상), 갱신(갱신이상)되는 현상

함수종속
(Functi-onal Dependency)
의 종류

-완전함수종속(Full Funtional Dependancy)

-부분함수종속(Partial Funtional Dependancy)

-이행적함수종속(Transitive Funtional Dependancy)

정규화 (Normalization)

개체들에 존재하는 데이터 속성의 중복을 최소화하여 일치성을 보장하며 데이터 모델을 단순하게 구성하는 과정

정규화 과정

1NF : 도메인이 원자값

2NF : 부분함수종속 제거, 완전함수종속으로 만듬

3NF : 이행정 함수 종속 제거

BCNF   : 결정자이면서 후보키가 아닌 것 제거

4NF : 다치종속(multi value) 제거

5NF : 조인종속성 이용

 

관계대수
(Relational Algebra)

튜플의 집합인 릴레이션을 처리하기 위한 연산의 집합

(절차적인 방법, HOW?)

관계대수의 종류

1) 일반집합연산자

-합집합

-교집합

-차집합

-교차곱(Catesian Product)(x)

2) 순수(특별)관계연산자

-셀렉트(Select)(σ)

-프로젝트(Project)(π)

-조인(Join)(▶◀) : 교차곱(Catesian Product)연산 수행 후 Select연산을 적용한 것과 같음. (Inner Join, Outer Join, Natural Join)

-디비전(Division)

관계해석
(Relational Calaulus)

원하는 정보만을 기술하는 비절차적인 방법(What?)

 

SQL

(Structured Quary Language, 질의어)

의 종류

1. DDL : CREATE, ALTER, DROP

2. DML : SELECT, UPDATE, INSERT, DELETE

3. DCL : COMMIT(연산작업 실행결과 저장), ROLLBACK(연산작업 실행 이전으로 복구), GRANT(사용자에게 해당 객체에 대한 특정 사용권한을 부여), REVOKE(특정권한 해제)

WITH CHECK OPTION

 WHERE절에 만족하는 것에 한해서는 삽입, 삭제, 수정가 가능하다는 뜻(CREATE할 때 사용)

(View)

데이터베이스 내에 존재하는 하나 이상의 테이블로부터 유도된 가상의 테이블. 데이터의 논리적 독립성을 제공하고 데이터 접근제어로 보안성을 향상하며, 여러 사용자의 요구를 지원.

CASCADE

관계된 것을 따라가서 연속적으로 삭제할 때

RESTRICT

어떤 테이블을 지울 때 참조하는 어떤 것은 제외할 때

REFERENCE

FORREIGN KEY와 한 셋트

FORREIGN KEY 속성명 REFERENCE 참조테이블명(속성명)

DISTINCT

중복된 속성을 제거하고 검색

COUNT

속성 수를 출력

) SELECT COUNT(*) AS 학생수 FROM 학생;

GROUP BY

(HAVING절은 조건)

) SELECT 과목번호, COUNT(*) AS 학생수 FROM 성적 GROUP BY 과목번호 HAVING COUNT(*) >=2;

ORDER BY

정렬

)ORDER BY 속성명 DESC

LIKE

) SELECT * FROM 학생 WHERE 이름 LIKE '%';

INSERT

) INSERT INTO 테이블명(속성명1, 속성명2,..) VALUES(데이터1, 데이터2,...)

UPDATE

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

GRANT

데이터베이스 사용자에게 해당 객체에 대한 특정 사용권한을 부여할 때 사용하는 명령문

) GRANT 권한 ON 데이터 객체 TO 사용자명 [WITH GRANT OPTION];

WITH GRANT OPTION

사용자가 부여받은 권한을 다른 사용자에 다시 부여할 수 있는 권한을 부여함.

REVOKE

) REVOKE [GRANT OPTION FOR] 권한 ON 데이터 객체 FROM 사용자명 [CASCADE];

 

내장(Embedded) SQL

PASCAL, FORTRAN, C, C++, JAVA와 같은 호스트 프로그래밍 언어에 삽입시켜 사용할 수도 있는데, 이것을 내장(삽입)SQL이라고 함.

( BEGIN DECLARE SECTION, END DECLARE SECTION 사이에서 변수선언을 해야함.

커서(Cursor)

DECLARE : 커서의 이름을 정의하는 선언을 하는 명령어

            (DECLARE 이름 CURSOR FOR가 한 세트)

OPEN : 커서가 첫 번째 레코드를 가리키도록 설정하는 명령어

FETCH : 다음 레코드로 커서를 이동시키는 명령어

CLOSE : 질의 실행 결과에 대한 처리 종료시 커서를 닫기 위해 사용하는 명령어

트리거(Trigger)

특정 테이블에 있는 데이터가 수정될 때 연결된 데이터까지도 자동실행되는 "Stored Procedure"

CLUD 매트릭스

업무의 단위 프로세스와 데이터 간의 상관관계 분석을 위한 도구

(상관 모델링에서 사용) 2차원 배열을 사용함.

트랜잭션(Transaction)

여러개의 연산이 하나의 논리적 기능을 수행하기 위한 작업단위로 구성됨. 쪼갤 수 없는 업무처리의 단위.

(원자성 Atomicity, 일관성 Consistency, 격리성 Isolation, 영속성 Durbility), 합쳐서 ACID 트랜잭션

트랜잭션 연산

Commit(완료)

Rollback(복귀)

중복저장기법 종류

-로그(Log) : 이전값과 이후 값을 별도로 기록하는 파일

-덤프(Dump) : 주기적으로 데이터베이스 전체를 저장장치에 복제하는 기법

장애발생시

회복기법

Redo : 트랜잭션 실행이 성공적으로 완료되었으나 Commit 연산을 실행하지 않아 디스크에 반영되지 않았을 경우

Undo : 트랜잭션 실행이 성공적으로 완료되지 않았을 때 로그를 이용하여 이전값으로 되돌림. (모든 변경을 취소시킴)

검사시점(Check Point)
회복

로그 전체를 조사해야 하는 경우를 회피하기 위한 방법.

가장 최근의 검사시점으로부터 회복작업을 수행

로킹(Locking)

데이터베이스 관리에서 하나의 트랜잭선이나 세션에 사용되는 데이터를 다른 트랜잭션이나 세션은 접근하지 못하게 하는 것이다.

인덱스(Index)

검색을 빠르게 하기위해 만든 보조적인 자료구조

인덱스 종류

집중인덱스(Clustered Indes) : 이미 정렬이 되어있어서 인덱싱 없이 바로 찾을 수 있음

비집중인덱스(Nonclustered Indes) : 정렬이 안되어있음.  

인덱스의 접근방식

-색인순차정렬방식(ISAM) :

-가상기억접근방식(VSAM, Virtual Storage Access Method)

튜닝

조정을 통하여 데이터베이스 관리 시스템의 성능을 향상 시키는 작업

객체지향데이터베이스
(ODB)

객체지향기술과 데이터베이스 기술이 결합된 것

오버로딩

하나의 메소드이름을 둘 이상의 프로그램이 사용하는 것

(*다형성 Polymorphism 이라고도 함.)

오버라이딩

슈퍼클래스에 있는 메소드를 서브클래스에서 상속받아 다른 기능을 수행하는 메소드를 재정의 하는 것

OLAP(온라인 분석처리)
(Online Analytical
Processing)

대규모의 복잡한 데이터를 동적으로 온라인에서의 분석을 지원하는 도구 또는 작업(종류 : ROLAP, MOLAP, HOLAP)

ROLAP(Relational OLAP)

관계형 데이터베이스나 확장된 관계형 데이터베이스를 사용해 다차원 모델링되는 데이터 큐브를 테이블형태로 저장운용하는 방식

MOLAP(Multidimensinal OLAP)

데이터 큐브를 실제로 배열을 기반한 다차원 저장엔진을 사용하여 저장 운용하는 방식

HOLAP(Hybrid OLAP)

ROLAP MOLAP를 혼용하는 방식

OLTP(온라인 트랜잭션 처리)

터미널의 메시지에 따라 호스트가 데이터베이스 검색 등의 처리를 수행하고, 그 결과를 터미널에 되돌려 보내주는 처리형태

Oracle RAC
(Real Application Cluster)

-OPS(Oracle Parallel Server)의 후속 제품으로 Oracle 9i 부터 적용.
-
오라클의 클러스터링(부하분산) 솔루션
-
동일 데이터베이스를 여러 인스턴스가 접근 가능
-
모든 노드가 동일한 데이터베이스에 접속 가능.

 


■ 목적 별 용어 차이

전산 용어

데이터베이스 모델링 용어

관계형 데이터베이스 용어

파일(File)

엔티티(Entity)

테이블(Table)

레코드(Record)

튜플(Tuple)

(Row)

(Key)

유일값(Identifier)

기본키(Primary key), Unique

필드(Field)

어트리뷰트(Attribute)

컬럼(Column)

 

■ 데이터베이스 스키마(Schema)의 정의

 

- 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description).
  (
, 데이터베이스 하나를 기술한 것이다.)

- 데이터베이스를 구성하는 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시
 
데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의.

- 레코드 형태와 릴레이션 같은 모든 데이터의 논리적 단위에 명칭을 부여하고 의미를 기술

- 데이터 베이스 내에 있는 데이터의 논리적 단위 사이의 관계성 표현

- 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 구분.

 

◎ 스키마의 3계층

DBMS(DataBase Manaement System, 데이터베이스 관리 시스템)

외부적 스키마에 따라 명시된 사용자의 요구를

개념적 스키마에 적합한 형태로 변경하고,

이를 다시 내부적 스키마에 적합한 형태로 변환한다.

 

● 외부 스키마 (External Schema) = 서브 스키마 = 사용자 뷰(View)

- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의

- 실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치로 화면을 통해 사용자에게 보여줄 것인가?

- 전체 데이터베이스의 한 논리적 부분 → "서브스키마"

- 하나의 데이터베이스에는 여러 개의 외부 스키마가 존재 가능

  & 하나의 외부 스키마를 여러 개의 응용프로그램이나 사용자가 공용 가능

- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용

- 일반 사용자는 질의어(SQL)를 이용, DB를 쉽게 사용

- 응용프로그래머는 COBOL, C 등의 언어를 사용, DB에 접근

 

● 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)

- 데이터베이스의 전체적인 논리적 구조

- 데이터베이스에 실제로 '어떤' 데이터가 저장되었으며 데이터 간의 관계는 어떻게 되는가?

- 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터 베이스

  (데이터베이스 당 하나만 존재)

- 개체 간의 관계와 제약 조건 명시

- 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의

- 단순한 스키마(Schema)라고 하면 개념스키마를 의미

- 기관이나 조직체의 관점에서 데이터베이스를 정의

- 데이터베이스 관리자(DBA, DataBase Administrator)에 의해 구성

 

● 내부 스키마(Internal Schema)

- 데이터베이스의 물리적 저장 구조를 정의

- 디스크에는 어떤 구조로 저장할 것인가?

- 데이터의 실제 저장 방법을 기술

- 물리적인 저장장치와 밀접한 계층

- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마

 

■ 데이터베이스 View

 

http://radiocom.kunsan.ac.kr/lecture/oracle/what_is/view.html

 

■ 오라클 내부 및 연결 구조 Oracle

 

오라클은 크게 Instance Database로 구성

 

Instance : SGA(System Global Area) 영역과 Background Process 로 구성

Database Instance에 의해서 Mount

항상 하나의 데이터베이스 만을 OPEN

하나의 DB에 여러개의 Instance를 생성하는것은 가능(RAC)

하나의 Instnace에 여러개의 DB를 생성하는건 불가능

 

- SGA(System Global Area) : Instance Startup할 때 메모리에 할당되는 작업 영역

이 영역은 오라클이 기동중에 사용되는 데이터나 각종 정보들 그리고 일반 유저들의 모든 SQL 문장들이 이곳에서 실행

SGA 영역은 클수록 성능상 이점이 있지만 Real Memory 영역에 위치할 수 있도록 적절히 조절해야함

- Background Process : 오라클 데이터베이스가 시작되기 위해서는 꼭 필요 하며,

데이터베이스가 종료되면 위의 프로세스들도 모두 종료

 

Database : Data files, Control files, Redo log files로 구성

- Data files : 실제 데이터가 저장되는 물리적 파일

- Control files : 제어 정보를 가지고 있는 파일, Mount/Open하여 DB를 사용하는데 꼭 필요한 파일
  ->
백업 필수

- Redo Log Files : 데이터베이스에서 생긴 모든 변화를 기록하는 파일, DB 장애시 복구를 위해 사용

다수의 그룹을 가지며, 그룹 내의 멤버들은 모두 동일한 데이터를 가짐(백업용)

 

[오라클 Background Process -  http://www.oracleclub.com/lecture/1892]

위로 스크롤