카티션 곱 연산자

R x S와 같은 형식으로 사용하며 카디날리티가 i인 릴레이션 R(A1, A2,... , An)과 카디날리티가 j인 릴레이션 S(B1, B2,...., Bm)의 카티션 곱 R x S는 차수가 n+m이고, 카디날리티가 i*j이고, 애트리뷰트가 (A1, A2, ..., An, B1, B1, ..., Bm)이며 R과 S의 투플들의 모든 가능한 조합인 릴레이션, 카티션 곱의 결과 릴레이션은 크기가 매우 클 수 있다. 또한 사용자가 원하는 값은 카티션 곱의 일부분인 경우가 대다수이므로 유용한 연산자는 아니다.

 

카티션 곱 연산자 예시

관계 대수의 완전성

실렉션, 프로젝션, 합집합, 차집합, 카티션 곱은 관계 대수의 필수적인 연산자이다. 다른 관계 연산자들은 필수적인 관계 연산자를 두 개 이상 조합하여 표현 할 수 있다.

임의의 질의어가 필수적인 관계 대수 연산자들만큼의 표현력을 갖고 있으면 관계적으로 완전하다고 말한다.

 

조인 연산자

두 개의 릴레이션으로부터 연관된 투플들을 결합하는 연산자이다. 관계 데이터베이스에서 두 개 이상의 릴레이션들의 관계를 다루는데 매우 중요한 연산자이다.

 

  • 세타 조인 - 두 릴레이션의 카티션 곱의 결과 중에서 조인 조건을 만족하는 투플들로 이루어진 릴레이션, 조인 조건은 =, <>, <=,<,>=,> 가 있다.
  • 동등 조인 - 세타 조인의 조인 조건 중 = 인 조인
  • 자연 조인 - 두 릴레이션의 공통된 애트리뷰트에 대해 동등 조인을 수행하고, 동등 조인의 결과 릴레이션에 있는 두 개의 조인 애트리뷰트 중 하나를 제외한 조인, 가장 자주 사용된다.

조인 연산자 예시

디비전 연산자

차수가 n+m인 릴레이션R 과 차수가 m인 릴레이션 S의 디비전 R / S는 차수가 n이고, S에 속하는 모든 투플 u에 대하여 투플 tu가 R에 존재하는 투플 t들의 집합 " 모든... 에 대해 ~하는" 형태의 질의에 사용될 수 있다.

디비젼 연산자 예시

 기존에는 관계 대수는 집단함수와 그룹화를 제공하지 않았으나 지금은 제공을 하고 있다.

(ex, AVG, SUM, MIN, MAX, COUNT,...)

 

외부 조인

상대 릴레이션에서 대응되는 투플을 갖지 못하는 투플이나 조인 애트리뷰트에 널값이 들어 있는 투플들을 다루기 위해서 조인 연산을 확장한 조인이다. 두 릴레이션에서 대응되는 투플을 갖지 않는 투플과 조인 애트리뷰트에 널값을 갖는 투플도 결과에 포함시킨다. 왼쪽 외부 조인, 오른쪽 외부 조인, 완전 외부 조인이 있다.

 

관계 데이터 모델에서 지원하는 언어에는 크게 두 가지가 있다.

 

1. 관계 해석 - 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어

 

2. 관계 대수 - 어떻게 질의를 수행할 것인가를 명시하는 절차적 언어, SQL의 이론적인 기초

 

관계 대수

기존의 릴레이션들로부터 새로운 릴레이션을 생성한다. 즉 입력값, 출력 값이 모두 릴레이션이다.

연산자들을 적용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음. 기본적인 연산자들의 집합으로 이루어짐.

결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있다.

 

관계 연산자들의 종류와 표기법

실렉션 연산자

σ<실렉션 조건>(릴레이션) 과 같이 사용하며 한 릴레이션에서 조건을 만족하는 투플들의 부분 집합을 생성한다.

단항 연산자이며 결과 릴레이션의 차수는 항상 입력 릴레이션의 차수와 같으며 카디날리티는 결과가 항상 작거나 같다.

 

실렉션 연산자 예시

프로젝션 연산자

π<애트리뷰트 리스트>(릴레이션) 과 같이 사용하며 한 릴레이션의 애트리뷰트들의 부분 집합을 구한다.

결과 릴레이션은 애트리뷰트 리스트에 명시된 애트리뷰트들만 가진다. 실렉션의 결과로는 중복 투플이 존재할 수 있지만 프로젝션의 결과에는 중복된 투플이 존재하지 않음

 

프로젝션 연산자 예시

집합 연산자

릴레이션이 투플들의 집합이기 때문에 기존의 집합 연산이 릴레이션에 적용된다. 집합 연산자에는 합집합, 교집합, 차집합이 있다. 집합 연산자의 입력으로 사용되는 두 개의 릴레이션은 합집합 호환이어야 한다.

 

*합집합 호환

두 릴레이션 R1(A1, A2,..., An)과 R2(B1, B2,... , Bm)이 합집합 호환일 필요충분조건은 n=m이고, 모든 1 <=i <=n에 대해 domain(Ai)=domain(Bi)이다.

 

합집합 연산자

릴레이션 1 ∪ 릴레이션 2와 같이 사용하며 릴레이션1에 있거나, 릴레이션2에 있는 투플들로 이루어진 릴레이션을 반환

결과 릴레이션에서는 중복된 투플들은 제거한다.

 

합집합 연산자 예시

교집합 연산자

릴레이션1 ∩ 릴레이션2 와 같이 사용하며 릴레이션 1, 릴레이션 2에 동시에 속하는 투플들로 이루어진 릴레이션

 

교집합 연산자 예시

차집합 연산자

릴레이션 R, S에 대해 차집합 R-S는 R에는 속하지만 S에는 속하지 않은 투플들로 이루어진 릴레이션

 

차집합 연산자 예시

데이터 무결성

데이터의 정확성 또는 유효성을 의미한다. 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적, 명시적으로 정의한다. 데이터베이스가 갱신될 때마다 자동적으로 검사하므로 따로 검사할 필요가 없다.

 

도메인 제약조건

애트리뷰트 값이 반드시 원자값이어야 한다. 데이터 형식을 통해 값들의 유형을 제한하고, check 제약 조건을 통해 값들의 범위를 제한할 수 있음

 

키 제약조건

키 애트리뷰트에 중복된 값이 존재해서는 안된다는 것이다.

 

엔티티 무결성 제약조건

기본 키가 각 투플들을 식별하기 위해 사용되기 때문에 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널값을 가질 수 없다는 제약조건이다. 단 대체 키에는 적용되지 않는다.

 

참조 무결성 제약조건

참조 무결성 제약조건은 두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는 데 사용된다. 릴레이션 R2의 외래 키가 릴레이션 R1의 기본 키를 참조할 때 참조 무결성 제약조건은 아래의 두 조건 중 하나가 성립되면 만족된다.

1. 외래 키의 값은 R1의 어떤 투플의 기본 키 값과 같음.

2. 널 값을 가진다.(외래 키가 자신의 릴레이션에서 기본키가 아니다.)

 

 

데이터베이스를 갱신할 때마다 무결성 제약조건을 유지시켜줘야 한다. 데이터베이스에 대한 갱신 연산은 삽입, 삭제, 변경 연산으로 구분하는데 DBMS는 각 갱신, 연산마다 필요한 조치를 취한다.

 

삽입

새로 삽입되는 투플의 기본 키 애트리뷰트의 값에 따라 도메인 제약조건, 키 제약조건, 엔티티 무결성 제약조건을 위배할 수 있다. 참조되는 릴레이션에 새로운 투플이 삽입되면 참조 무결성 제약조건은 위배되지 않으나, 참조하는 릴레이션에 삽입될 경우에는 위배될 수 있다.

 

삭제

참조하는 릴레이션에서 투플이 삭제되면 도메인 제약조건, 키 제약조건, 엔티티 무결성 제약조건, 참조 무결성 제약조건을 위배하지 않는다. 하지만 참조되는 릴레이션에서 투플이 삭제된다면 참조 무결성 제약조건을 위배하는 경우가 생긴다.

수정

DBMS는 수정하는 애트리뷰트가 기본 키인지 외래 키인지 검사한다. 수정하려는 애트리뷰트가 둘 다 아니면 참조 무결성 제약조건을 위배하지 않는다. 기본 키나 외래 키를 수정하는 것은 삽입이나 삭제를 하는 것과 같으므로 동일하게 적용된다.

 

참조 무결성 제약조건을 만족시키기 위한 DBMS가 제공하는 옵션

제한(restricted)

위배를 야기한 연산을 단순히 거절한다.

 

연쇄(cascade)

참조되는 릴레이션에서 투플을 삭제하고, 참조하는 릴레이션에서 이 투플을 참조하는 투플들도 함께 삭제해버린다.

 

널값(nullify)

참조되는 릴레이션에서 투플을 삭제하고, 참조하는 릴레이션에서 이 투플을 참조하는 투플들의 외래 키에 널값을 삽입한다.

 

디폴트 값

널값을 넣는 대신에 디폴트 값을 넣는다.

 

 

릴레이션의 특성

릴레이션은 동일한 튜플이 두 개 이상 존재하지 않는다. 또한 한 튜플의 각 애트리뷰트는 원자값을 가진다. 즉 리스트, 집합, 튜플 값이 들어갈 수 없는 것이다.

 

릴레이션의 키

각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다. 

슈퍼 키

한 릴레이션 내의 특정 투플을 고유하게 식벽하는 하나의 애트리뷰트 또는 애트리뷰트 집합이다. 예를 들면 신용카드 회사에서 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호)가 해당 된다. 하지만 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다.

 

후보 키 

각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이며 앞으로 추가될 값도 생각해야 한다. 모든 릴레이션에는 최소한 한 개 이상의 후보 키가 있다. 

 

기본 키

한 릴레이션에 후보 키가 두 개 이상 있으면 설계자 혹은 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정 한다. 만약 자연스러운 기본 키를 찾을 수 없다면 인덱스 번호와 같이 인위적인 키를 추가할 수 있다.

 

대체 키

기본 키가 아닌 후보키를 뜻한다.

 

외래 키

어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다. 여기서 어떤 릴레이션은 다른 릴레이션일수도 있고, 자신의 릴레이션일수도 있다. 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용된다.

 

 

관계 데이터 모델은 지금까지 제안된 데이터 모델 중에서 가장 개념이 단순한 데이터 모델 중 하나이다. 동일한 구조의 관점에서 모든 데이터를 논리적으로 구성하며, 선언적인 질의어를 통해 데이터 접근을 제공한다.

 

기본적인 용어

1. 릴레이션 : 2차원의 테이블

2. 레코드 : 릴레이션의 각 행

3. 튜플 : 레코드를 공식적으로 부르는 말

4. 애트리뷰트 : 릴레이션에서 이름을 가진 하나의 열

 

도메인(domain)

도메인은 한 애트리뷰트에 나타날 수 있는 값들의 집합을 뜻한다. 각 애트리뷰트의 도메인의 값들은 원자값을 가지고 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있다. 프로그래맹 언어의 데이터 타입과 유사하다고 생각하면 된다.

 

차수(degree)

차수는 한 릴레이션에 들어 있는 애트리뷰트들의 수이다. 최소 차수는 1이여야 하며 차수가 자주 변하지는 않는다.

 

카디날리티(cardinality)

카니날리티는 릴레이션의 투플 수이다. 유효한 릴레이션은 카니날리티 0을 가질 수 있다.(릴레이션에 아무런 값이 없는 것이 가능하므로) 카디날리티는 시간이 지남에 따라 자주 변할 수 있다.

 

널값(null value)

'알려지지 않음' ,  '적용할 수 없음'을 나타내기 위해 널값을 사용한다. 하지만 널값이 숫자 0을 의미하거나 공백을 의미하지는 않는다. 

 

릴레이션 스키마(relation schema)

릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합이다. 릴레이션을 위한 틀이라고 생각하면 된다. 기본키 애트리뷰트에는 밑줄로 표시해 준다.

릴레이션 이름( 애트리뷰트 1 , 애트리뷰트 2,....., 애트리뷰트 N)과 같이 표기한다.

 

릴레이션 인스턴스(relation instance)

릴레이션에 어느 시점에 들어 있는 튜플들의 집합이다. 시간의 흐름에 따라 계속 변화한다.

 

 

현재 대부분의 상용 DBMS 구현에서 사용되는 일반적인 아키텍처는 ANSI/SPARC 아키텍처이다. ANSI/SPARC 아키텍처를 데이터 독립성을 제공하고 3단계(물리적, 개념적, 외부)로 이루어져 있다.

 

외부 단계

데이터베이스의 각 사용자가 갖는 뷰를 뜻하며 여러 부류의 사용자들을 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있다. 일반적으로 사용자가 자신이 관심 있는 분야만 본다.

 

개념 단계

조직체의 정보 모델로서, 물리적인 구현은 고려하지 않으면서 조직체 전체에 관한 스키마를 포함한다. 어떤 데이터가 저장되어 있고, 데이터간의 어떤 관계가 존재하고, 어떤 무결성 제약조건들이 명시되어 있는가를 기술한다. 사용자 공동체의 뷰를 나타내며 하나의 데이터베이스당 하나의 개념 스키마가 존재한다.

 

내부 단계

실제의 물리적인 데이터 구조에 관한 스키마이고, 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는지를 기술한다. 인덱스, 해싱 등과 같은 접근 경로, 데이터 압축 등을 기술한다.

 

예시

지하철 노선도에서 불광동에 사는 학생이 청량리에 있는 학교에 통학하기 위해 불광역, 종로3가역, 청량리역에만 관심을 가진다. 

 

지하철 노선도가 어떤 역이 있는지 나타나있고, 역간 어떤 관계가 존재하는지 나타나 있기 때문에 개념 단계이며, 사용자가 갖는 뷰인 불광역, 종로3가역, 청량리역은 외부 단계가 된다. 내부 단계는 지하철이 상행선, 하행선인지 확인하는 것이다.

 

데이터 독립성

상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미한다.

논리적인 데이터 독립성

개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않는다.

물리적인 데이터 독립성

내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않는다.

DBMS 언어

DBMS 언어에는 크게 3가지가 있는데 데이터 정의어, 데이터 조작 어, 데이터 제어 어 이다.

 

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

사용자는 데이터 정의어를 사용해서 데이터 베이스 스키마를 정의한다. 데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그에 저장한다.

데이터 정의어의 기본적인 기능은 생성(CREATE TABLE), 변경(ALTER TABLE), 삭제(DROP TABLE), 특정 애트리뷰트 위의 인덱스 정의(CREATE INDEX)이다. ( () 안은 SQL 기준)

 

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

사용자는 데이터 조작어를 사용해서 데이터베이스 내의 원하는 데이터에 대해 검색, 수정, 삽입, 삭제가 가능하다. 절차적인 언어와 비절차적인 언어로 구분이 되는데 관계 DBMS에서 사용되는 SQL은 대표적인 비절차적 언어이다. 대부분의 데이터 조작어는 SUM, COUNT, AVG와 같은 그룹 내장 함수들을 가지고 있다. 데이터 조작어의 기본적인 기능은 검색(SELECT), 수정(UPDATE), 삭제(DELETE), 삽입(INSERT)이 있다.

 

데이터 제어어(DCL: Data Control Language)

사용자는 데이터 제어어를 사용해서 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소한다. 주로 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는데 사용한다. 데이터 제어어의 기본적인 기능은 COMMIT, ROLLBACK, GRANT, REVOKE를 가지고 있다.

 

2019/04/09 - [Lecture Note/DataBase] - [강의노트_DB]1.데이스베이스의 개요

2019/04/11 - [Lecture Note/DataBase] - [강의노트_DB]2. DBMS vs 파일 시스템

 

데이터 모델

데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조, 이 구조 위에서 동작하는 연산자들, 무결성 제약조건

 

데이터 모델의 분류

 

· 고수준, 개념적 데이터 모델

-사람이 인식하는 것과 유사하게 논리적 구조를 명시 ex)엔티티-관계

 

· 표현(구현) 데이터 모델

-최종 사용자가 이해하는 개념이면서 컴퓨터 내에서 데이터가 조직되는 방식과 멀리 떨어져 있지는 않음 ex) 관계 데이터 모델

 

· 저수준, 물리적인 데이터 모델

-데이터베이스에 데이터가 어떻게 저장되어 있는가를 기술

 

DBMS의 발전과정

계층 DBMS

1960년대 후반에 최초의 계층 DBMS가 등장을 하였다. 트리 구조를 기반으로 한다.

 

· 장점

- 어떤 유형의 응용에 대해서는 빠른 속도와 높은 효율성을 제공

 

· 단점

- 어떻게 데이터를 접근하는가를 미리 응용 프로그램에 정의해야 함

- 데이터베이스가 생성될 때 각각의 관계를 명시적으로 정의해야 함

- 링크로 연결되어 있어서 구조를 변경하기 힘듦

네트워크 DBMS

1960년대 초에 최초의 네트워크 DBMS가 등장. 레코드들이 노드로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 한다.

 

· 단점

-레코드들이 링크로 연결되어 있으므로 구조를 변경하기 힘들다.

관계 DBMS

1970년대에 IBM 연구소에서 관계 데이터 모델을 제안했으며 테이블을 기반으로 한다.

 

· 장점

-모델이 간단하여 이해하기 쉬움

-사용자는 자신이 원하는 것(what)만 명시하고, 데이터가 어디에 있는지, 어떻게 접근해야 하는지는 DBMS가 결정

 

ex) 오라클, MySQL, Sybase, DB2

객체 지향 DBMS

1980년대 후반 들어 새로운 데이터 모델인 객체 지향 데이터 모델이 등장. 객체 지향 프로그래밍을 기반으로 한다.

 

· 장점

-데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이함.

객체 관계 DBMS

1990년대 관계 DBMS에 객체 지향 개념을 통합한 데이터 모델이다.

2019/04/09 - [Lecture Note/DataBase] - [강의노트_DB]1.데이스베이스의 개요

불러오는 중입니다...

 

예전부터 데이터를 관리하는 방법으론 화일 시스템이 있었다. 하지만 파일 시스템은 프로그래밍을 해야 하는 분량이 너무 많고 DBMS에 비해 많은 단점을 가지고 있다. 그래서 DBMS와 파일 시스템이 각각 어떤 특징을 가지고 있고 장단점을 비교해보려고 한다.

파일 시스템을 사용한 데이터 관리

파일 시스템은 DBMS가 등장하기 전인 1960년대부터 사용되어 왔다. 파일 시스템의 기본적인 구성요소는 순차적인 레코드이며 한 레코드는 연관된 필드들의 모임으로 구성되어 있다. 파일을 접근하는 방식이 응용 프로그램 내에서 상세하게 구현되어 있으므로 데이터에 대한 응용 프로그램의 의존도가 높은 편이다.

파일 시스템의 단점

1. 새로운 데이터를 추가하려고 하면 그 파일을 사용하고 있던 프로그램들을 전부 찾아가서 필드를 추가해줘야 한다. 왜냐하면 데이터가 많은 파일에 중복해서 저장되었기 때문이다. 즉 동시성 제어를 제공하지 못한다.

2. 검색하려는 데이터를 쉽게 명시하는 질의어가 제공되지 않는다. 이 때문에 복잡해지고 프로그래머의 생산성이 낮아진다.

3. 회복 기능이 없다.

4. 프로그램과 데이터의 독립성이 없으므로 유지보수 비용이 많이 요구된다.

DBMS를 사용한 데이터베이스 관리

여러 사용자와 응용 프로그램들이 데이터베이스를 공유하고 사용자의 질의를 빠르게, 자동으로 수행된다. 또한 권한이 없는 사용자에게는 데이터를 제공하지 않아 보안성도 좋고, 데이터 간의 복잡한 관계를 표현할 수 있으며 무결성 제약조건을 자동으로 유지시켜준다. 또한 프로그램에 영향을 주지 않으면서 데이터베이스 구조를 변경할 수 있다.(프로그램-데이터 독립성) 

DBMS의 장점

1. 중복성과 불일치가 감소된다.

2. 시스템을 개발하고 유지하는 비용이 감소된다.

3. 표준화를 시행하기가 용이하다.

4. 다양한 유형의 고장으로부터 데이터베이스를 회복할 수 있다.

5. 데이터베이스의 공유와 동시 접근이 가능하다.

DBMS의 단점

1. 추가적인 하드웨어 구입 비용이 발생하고, DBMS 자체의 구입 비용도 비싸다.

2. 직원들의 교육 비용이 많이 소요된다.

DBMS 선정시 고려 사항

*기술적 요인

DBMS에 사용되고 있는 데이터 모델, 사용자 인터페이스, 프로그래밍 언어, 개발 도구 , 저장 구조, 성능, 접근 방법 등

 

*경제적 요인

소프트웨어와 하드웨어 구입 비용, 유지 보수 비용, 직원들의 교육 지원

 

파일 시스템

DBMS

데이터에 대한 물리적 접근만 조정한다.

데이터에 대한 물리적 접근과 논리적인 접근을 모두 조정한다.

동일한 파일을 두 개 이상의 프로그램이 동시에 접근할 수 없다.

동일한 데이터를 다수 사용자가 동시에 접근할 수 있다.

데이터가 비구조적이며, 중복성과 유지비수 비용이 높다.

데이터가 구조화되어 있으며, 중복성과 유지보수 비용이 낮다.

어떤 프로그램이 기록한 데이터는 다른 프로그램에서 읽을 수 없는 경우가 많다.

접근 권한이 있는 모든 프로그램이 데이터를 공유한다.

데이터에 대한 접근은 미리 작성된 프로그램을 통해서만 가능하다.

질의어를 사용하여 데이터에 대한 융통성 있는 접근이 가능하다.

각 응용 프로그램마다 파일이 따로 있으므로 데이터가 통합되어 있지 않다.

데이터가 중복을 배제하면서 통합되어 있다.

데이터베이스의 정의

데이터베이스는 조직체의 응용 시스템이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다. 

데이터 구조는 데이터 모델에 의해 결정된다.

 

데이터베이스 스키마

전체적인 데이터베이스 구조를 뜻하고, 내포(intension)이라고 부름

 

데이터베이스 상태

특정 시점의 데이터베이스의 내용을 의미하며, 외연(extension)이라고 부름

 

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

데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어

 

1. 사용자가 새로운 데이터베이스를 생성하고, 구조를 명시할 수 있게 하고, 데이터를 효율적으로 질의 및 수정할 수 있도록 하며, 데이터를 안전하게 보호하며 여러 사용자가 접근을 하는 것에 대해 제어를 해준다.

 

2.SQL은 여러 DBMS에서 제공되는 사실상의 표준 데이터베이스 언어이다.

 

DBMS 사용자

데이터베이스 관리자(DBA: Database Administrator)

데이터베이스 관리자는 조직의 여러 부분의 상이한 요구를 만족시키기 위해서 일관성 있는 데이터베이스 스키마를 생성하고 유지 하는 사람이다.

데이터베이스 스키마(구조)를 생성하고 변경하고, 무결성 제약조건을 명시해줘야 한다. 또한 사용자의 권한을 허용하거나 취소, 역할을 관리해준다. 즉 데이터베이스의 구조를 처음 생성을 하고 유지, 관리를 해주는 사람이다.

 

응용프로그래머

데이터베이스 위에서 특정 응용이나 인터페이스를 구현하는 사람이다.

데이터베이스를 접근하는 부분은 내포된 데이터 조작어를 사용하며 이들이 작성한 프로그램은 최종 사용자들이 기작성 트랜잭션(canned transaction)이라고 부른다.

 

최종 사용자(end user)

질의하거나 갱신하거나 보고서를 생성하기 위해서 데이터베이스를 사용하는 사람이다.

데이터베이스 질의어를 사용하여 매번 다른 정보를 찾은 캐주얼 사용자와 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자로 구분

 

데이터베이스 설계자(database designer)

데이터베이스 설계를 담당한다. 데이터베이스의 일관성을 유지하기 위해서 정규화를 수행한다.

 

오퍼레이터

DBMS가 운영되고 있는 컴퓨터 시스템과 전산실을 관리하는 사람이다.

 

+ Recent posts