관리 메뉴

RUBY

[SJCU]2주차. 데이터베이스 시스템의 구성 본문

SJCU/데이터베이스구축

[SJCU]2주차. 데이터베이스 시스템의 구성

ruby-jieun 2023. 3. 9. 18:05

 

 

데이터베이스 구축
2주차. 데이터베이스 시스템의 구성


 

 

 

 

학습내용

 

  1. 데이터베이스 언어
  2. 데이터베이스 사용자
  3. DBMS
  4. 데이터 모델
  5. 데이터베이스의 개념적 구조

 

 

학습목표

 

  1. DBMS 언어인 SQL을 알아본다.
  2. 데이터베이스를 다루는 정도에 따른 사용자를 구분할 수 있다.
  3. DBMS의 기능을 익힌다.
  4. 표현방법에 따라 구별되는 데이터 모델(계층적 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델, 객체 - 관계 데이터 모델)을 익힌다.
  5. 3단계 데이터베이스 구조를 익히고, 데이터 독립성을 알아본다.

 

 

 

 

4. 데이터베이스 시스템의 구성

 

 

데이터베이스 시스템의 구성 3가지는

 

 

 

DBMS, 데이터베이스, 데이터모델

 

  1. DBMS는 주기억장치에 저장되는 S/W
  2. 데이터베이스는 하드디스크에 저장되어 있는 데이터
  3. 데이터모델은 데이터가 저장되는 논리적인 개념

 

 

 

용어정리

  • DBA(DataBase Administrator)
    데이터 베이스 관리자
  • 스키마
    DB의 구조를 정의해 놓은 것
    예) 테이블에서 속성, 구조, 속성 값의 타입 등을 정의
  • DDL(Data Definition Language)
    데이터 정의어
  • DML(Data Manipulation Language)
    데이터 조작어
  • Embedded DML(내장형 DML)
    코딩 시 필요
  • 인덱스
    자료를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조
  • 데이터 사전
    데이터에 대한 설명

 

 

 

1. 데이터베이스 언어

 

 

SQL

 

  • 데이터 정의어(DDL, Data Definition Language)
    - CLEATE, ALTER, DROP 문과 같이 DBMS에 저장된 테이블 구조를 정의
  • 데이터 조작어(DML, Data Manipulation Language)
    - SELECT, INSERT, DELETE, UPDATE 문과 같이 데이터를 검색, 삽입, 삭제, 수정하는데 사용하는 언어
  • 데이터 제어어(DCL, Data Control Language)
    - GRANT, REVOKE 문과 같이 데이터의 사용 권한을 관리

 

Q1. book 테이블에서 모든 도서이름(bookname)과 출판사(publisher)를 검색하시오.

  → SELECT bookname, publisher FROM book;

 

 

Q2. 가격(price)이 10,000원 이상인 도서이름(bookname)과 출판사(publisher)를 검색하시오.

  → SELECT bookname, publisher FROM book Where price >= 10000;

 

 

 

 

 

 

 

2. 데이터베이스 사용자

 

 

일반사용자

  • 은행의 창구 혹은 관공서의 민원 접수처 등에서 데이터를 다루는 업무를 하는 사람
  • 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근 일반인
    → 쉽게 말해 응용 프로그램으로 접근하는 사람

 

응용프로그래머

  • 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
  • 자바, C, JSP 등 프로그래밍 언어와 SQL을 사용하여 일반 사용자를 위한 사용자 인터페이스와 데이터를 관리하는 응용 로직을 개발
    → 쉽게 말해 응용 프로그램을 만드는 사람

 

SQL 사용자

  • SQL을 사용하여 업무를 처리하는 IT 부서의 담당자
  • 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리

 

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

  • 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
  • 데이터 설계, 구현, 유지보수의 전 과정을 담당
  • 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 함

 

[데이터베이스 사용자 별로 갖추어야 할 지식 수준]

  SQL언어 프로그래밍능력 DBMS 지식 데이터구성
일반사용자 x x x x
SQL 사용자 x
응용 프로그래머
데이터베이스 관리자

< x : 없음, ○ : 보통, ◎ : 높음>

 

 

 

 

3. DBMS

 

 

[DBMS의 기능]

데이터 정의
(Definition)
데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
데이터 조작
(minipulation)
데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원함
데이터 추출
(Retrieval)
사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함
데이터 제어
(Control)
데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함
백업과 회복, 동시성 제어 등의 기능을 지원함

 

 

 

4. 데이터 모델

 

 

  1. 계층 데이터 모델(Hierarchical Data Model)
  2. 네트워크 데이터 모델(Network Data Model) 
  3. 객체 데이터 모델(Object Data Model)
  4. 관계 데이터 모델(Relational Data Model) → 가장 많이 쓰임
  5. 객체-관계 데이터 모델(Object-relational Data Model) → 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델
데이터 모델은 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것으로, 데이터베이스에 데이터가 어떻게 구조화되어 저장될지를 결정한다.

 

  • 데이터 모델을 구분하는 가장 큰 기준은 데이터들 간에 관계를 표현하는 방법임
  • 아래 예를 이용하여 데이터 모델을 표현하는 방법 세 가지를 확인해보자

    예) 학생 정보를 저장하는 테이블과 강좌 정보를 저장하는 테이블이 있는 경우,
         박지성 학생이 자료구조를, 김연아 학생이 데이터베이스를 수강한다는
         학생 - 강좌 관계(Relationship)를 표현해야 한다고 가정해 보자,

 

  1. 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델
    데이터를 직접 찾아갈 수 있어서 프로그램 속도는 빠르지만, 포인터를 다루는 프로그래밍을 해야 하기 때문에,
    응용 프로그램 개발 속도 면에서 느리다는 단점이 있음
  2. 속성 값을 사용하는 방법 : 관계 데이터 모델(가장 많이 사용하는 방법)
    강좌 테이블에서 강좌번호 속성의 값을 학생 테이블의 강좌번호 속성의 값에 직접 저장하는 방법
    데이터를 찾을 때는 강좌번호 값을 이용하여 어떤 강좌를 신청했는지 알아냄
     Tip. 이게 바로 주소에 의한 참조가 아닌 데이터에 의한 참조라는 것
     * 포인터를 사용하는 방법보다 속도는 조금 느리지만
     * 개념이 쉽고
     * 프로그램 개발이 빠르기 때문에
     * 많은 데이터베이스 시스템에서 이 방법을 사용함
  3. 객체식별자를 사용하는 방법 : 객체 데이터 모델
    강좌를 객체 개념으로 보고 강좌 객체의 고유 식별자인 오브젝트 아이디(oid)를 학생 테이블에 저장하는 방법
    객체 데이터 모델에서 사용하며 객체 지향 언어의 상속, 캡슐화 등의 개념을 도입함

 

• IBM에서 근무하던 에드가 코드박사는 1970년에 관계 데이터베이스 관련 논문을 발표했지만, IBM은 IMS DB(계층형 모델) 제품 판매에만 집중 했고, 관계형 모델 개발은 소홀이 하다 1977년 관계형 데이터베이스 System R 을 시작. 오히려 에드가 코드 논문에 감명을 받은 건 래리 앨리슨(이후 오라클 사 세움)
• 대표 종류: IBM 사의 System R(현재는 DB2라고 함), 오라클 사의 Oracle, 미국 Ashton 사의 dBASE(최초의 데스크탑 용 DBMS), 썬마이크로시스템사의 MySQL(2010년 오라클이 인수), 마이크로소프트사의 SQL Server

 

 

관계 데이터 모델이 갖는 텍스트 위주의 한계를 극복⇒하기 위해 객체⇒ 개념에 기반한 Gemstone, ObjectStore이 출시됨

 

 

현재 데이터베이스 시스템은 관계 데이터 모델을 기본 개념으로 하고, 객체 데이터 모델의 장점을 일부 수용한 객체-관계 데이터 모델로 발전하고 있다. 

 

 

 

 

5. 데이터 베이스의 개념적 구조

 

 

  • 1975년 ANSI(Americam National Standards Institute)에서는 데이터베이스를 개념적으로 이해하기 위해 데이터베이스 구조에 관한 안을 만듦
  • 이 안은 데이터베이스를 보는 관점(View)을 세 개의 단계로 분리한 것으로, 3단계 데이터베이스 구조(3-Layer Database Architecture)라고 함
  • 3단계 데이터베이스 구조는 데이터베이스이 복잡한 구조를 단순화하여 표현했음

 

 

스키마
- 그리스어에서 유래된 단어로 데이터베이스의 조직이나 구조를 의미함
- 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의함
- 테이블에서 스키마는 테이블의 첫 행인 헤더(속성)에 나타나며 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 담고 있음

 

 

 

 

1. 외부 스키마(External Schema)

 

  • 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
  • 여러 개의 외부 스키마(External Schema)가 있을 수 있음
  • 서브 스키마(Sub Schema)라고도 하며, 뷰(View)의 개념임

 

 

2. 개념 스키마(External Schema)

 

  • 전체 데이터베이스의 정의를 의미
  • 통합 조직별로 하나만 존재하며 DBA(DB관리자)가 관리함
  • 하나의 데이터베이스에는 하나의 개념 스키마가 있음
  • 데이터 관계(Relationship), 제약사항, 무결성에 대한 내용이 포함됨

 

 

3. 내부 스키마(internal schema)

 

  • 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법을 표현해 놓은 것
  • 내부 스키마는 하나
  • 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨

 

 

 

매핑(Mapping, =사상)

 

  • DBMS는 매핑(Mapping)을 통하여 각 단계 간 대응 관계를 정의함
  • 매핑은 개념 스키마의 어느 부분이 외부 스키마가 되는지 또는 개념 스키마가 어떤 물리적인 표현으로 내부 스키마가 되는지에 따라 두 가지 종류가 있음

 

 

 

1. 외부/개념 매핑(External-conceptual mapping)

 

  • 사용자의 외부 스키마와 개념 스키마 간의 매핑(사상)
  • 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴

 

 

2. 개념/내부 매핑(Conceptual-internal mapping)

 

  • 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킴

 

 

 

 

데이터 독립성

 

  • 3단계 데이터베이스 구조의 특징은 데이터 독립성에 있음
  • 데이터 독립성은 하위 단계(물리적)의 세부 사항을 상위 단계(논리적)에 추상화하여 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
  • 일반 사용자는 사용자별로 외부 스키마를 사용하여 다른 스키마에 영향을 주지않고, 
  • DBA는 일반 사용자의 외부 스키마에 영향을 주지 않고 개념 스키마나 내부 스키마의 물리적인 저장 방법을 바꿀 수 있음

 

 

 

 

논리적 데이터 독립성(Logical Data Independence)

 

  • 외부 단계(외부 스키마)와 개념 단계(개념 스키마) 사이의 독립성
  • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
  • 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념
  • 개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없음

 

 

 

물리적 데이터 독립성(Physical Data Independence)

 

  • 개념 단계(개념 스키마)와 내부 단계(내부 스키마) 사이의 독립성
  • 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원
  • 성능 개선을 위하여 물리적 저장 장치를 재구성할 경우 개념 스키마나 응용 프로그램 같은 외부 스키마에 영향이 없음
  • 물리적 독립성은 논리적 독립성보다 구현하기 쉬움

 

 

Q. SQL 언어

  1. 데이터 정의어

  2. 데이터 제어어

  3. 데이터 조작어

 

 

Comments