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 |
윈도우즈 응용 프로그램에서 다양한 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) |
데이터의 중복으로 인하여 사용자의 의도와 다르게 데이터가 삽입(삽입이상), 삭제(삭제이상), 갱신(갱신이상)되는 현상 |
함수종속 |
-완전함수종속(Full Funtional Dependancy) -부분함수종속(Partial Funtional Dependancy) -이행적함수종속(Transitive Funtional Dependancy) |
정규화 (Normalization) |
개체들에 존재하는 데이터 속성의 중복을 최소화하여 일치성을 보장하며 데이터 모델을 단순하게 구성하는 과정 |
정규화 과정 |
1NF : 도메인이 원자값 2NF : 부분함수종속 제거, 완전함수종속으로 만듬 3NF : 이행정 함수 종속 제거 BCNF : 결정자이면서 후보키가 아닌 것 제거 4NF : 다치종속(multi value) 제거 5NF : 조인종속성 이용 |
|
|
관계대수 |
튜플의 집합인 릴레이션을 처리하기 위한 연산의 집합 (절차적인 방법, HOW?) |
관계대수의 종류 |
1) 일반집합연산자 -합집합 -교집합 -차집합 -교차곱(Catesian Product)(x) 2) 순수(특별)관계연산자 -셀렉트(Select)(σ) -프로젝트(Project)(π) -조인(Join)(▶◀) : 교차곱(Catesian Product)연산 수행 후 Select연산을 적용한 것과 같음. (Inner Join, Outer Join, Natural Join) -디비전(Division) |
관계해석 |
원하는 정보만을 기술하는 비절차적인 방법(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) |
튜닝 |
조정을 통하여 데이터베이스 관리 시스템의 성능을 향상 시키는 작업 |
객체지향데이터베이스 |
객체지향기술과 데이터베이스 기술이 결합된 것 |
오버로딩 |
하나의 메소드이름을 둘 이상의 프로그램이 사용하는 것 (*다형성 Polymorphism 이라고도 함.) |
오버라이딩 |
슈퍼클래스에 있는 메소드를 서브클래스에서 상속받아 다른 기능을 수행하는 메소드를 재정의 하는 것 |
OLAP(온라인 분석처리) |
대규모의 복잡한 데이터를 동적으로 온라인에서의 분석을 지원하는 도구 또는 작업(종류 : ROLAP, MOLAP, HOLAP) |
ROLAP(Relational OLAP) |
관계형 데이터베이스나 확장된 관계형 데이터베이스를 사용해 다차원 모델링되는 데이터 큐브를 테이블형태로 저장운용하는 방식 |
MOLAP(Multidimensinal OLAP) |
데이터 큐브를 실제로 배열을 기반한 다차원 저장엔진을 사용하여 저장 운용하는 방식 |
HOLAP(Hybrid OLAP) |
ROLAP와 MOLAP를 혼용하는 방식 |
OLTP(온라인 트랜잭션 처리) |
터미널의 메시지에 따라 호스트가 데이터베이스 검색 등의 처리를 수행하고, 그 결과를 터미널에 되돌려 보내주는 처리형태 |
Oracle RAC |
-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]