국가기간전략산업직종 3년 우수기관 - 고용노동부

에이콘 아카데미

아카데미 이야기 전문가칼럼

전문가칼럼

에이콘 아카데미의 전문 강사님의 분야별 칼럼을 확일 할 수 있습니다.

lesson01) Database Modeling [1]

[1]   What database is? - 서로 관련있는 데이터들의 모임

     - 전화번호부

     - 사전

     - 메일

     - 도서관 도서 목록

     - 학적부

     - 일기

     - 신문


 

 

데이터베이스 관리 시스템

    (DBMS ; DataBase Management System)

    - 데이터베이스를 구축해서 관리 및 사용 할 수 있는

       프로그램들

    - Oracle, MSSQl, MySql

*  데이터베이스 시스템 (DBS ; DataBase System)

    - 사용자가 데이터베이스 관리 시스템을 통하여

      물리적인 데이터베이스와 소통하는 형태의 시스템


 

* 데이터베이스 관리 시스템의 장점

  - 데이터의 중복성/불일치성 감소

  - 데이터 보안

  - 질의 처리에 효율적인 저장 구조

  - 백업 및 복구

  - 다양한 인터페이스

  - 일관 데이터를 유지             

* 데이터베이스 관리 시스템의 단점

  - 자원이 많고 복잡하며 비싸다       

* 데이터베이스 시스템 사용

  - 데이터베이스와 응용 프로그램이 매우 단순하고

    변경이 별로 없는 경우

  - 단일 사용자만이 데이터베이스에 접근하는 경우

  - 실시간성이 제일 중요한 시스템의 경우

 

 

[2] 데이터베이스 시스템                   

* 데이터베이스 스키마(Schema)

- 데이터베이스의 구조와 제약조건에 대해서

  분명하고 자세하게 기술한 것

- 구체적으로 데이터베이스를 구성하는

  애트리뷰트와 관계 등의 집합

- 표에서 제목에 해당             

* 데이터베이스 상태

- 특정 시점의 데이터베이스 내용

- 일반적으로 데이터베이스 스키마는 잘 변하지 않지만,

  데이터는 수시로 입력/삭제 되므로

  인스턴스라고 부르기도 함            

* 데이터베이스 언어 : 데이터베이스를 정의하고, 모든 저장 데이터베이스의

                          접근을 지원하는 통신 수단

 

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

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

- 데이터 제어어(DCL ; Data Control Language)

              

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

 - 데이터베이스 관리자나 설계자가 데이터 간의 관계를

   정의하거나 이미 정의된 데이터베이스의 구조 변경 및

   수정에 사용

 

                  

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

 - 데이터베이스 사용자가 응용 프로그램이나 질의어를

   이용해서 저장된 실제 데이터를

   검색, 삭제, 변경(SELECT, DELETE, UPDATE) 또는 입력

   (INSERT) 등을 수행할 때 사용

 

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

-  데이터베이스 관리자가 데이터를 관리하기 위해

   데이터의 보안, 무결성, 데이터 복구, 병행 수행 제어

   등을 정의하거나 사용자 권한 설정에 사용   

*  데이터베이스 사용자 (Database User)

- 구축된 데이터베이스를 사용하는 사람들의 총칭

- 데이터베이스 관리자, 시스템 프로그램 개발자,

  업무 분석가, 응용 프로그램 개발자, 일반 사용자

           

데이터베이스 설계자 (Database Designer)

- 데이터베이스 요구사항을 분석해서 데이터베이스의

  개념적, 물리적 스키마의 설계를 책임  

                 

최종 사용자(End User)

- 일반 사용자, 초보 사용자, 전문 사용자 등

          

- 데이터베이스에 질의/갱신 연산을 주로 하는

  단순 사용자

 

                 

*  시스템 분석가/응용 프로그램 개발자

- 최종 사용자를 위해 잘 정의된 기능의 응용 프로그램을

  설계/구현

 

 

[3] 데이터베이스 추상화와 데이터 모델

                    

* 데이터베이스 단위

- 필드(Field) : 문자와 워드로 구성된 컴퓨터 상에

                 정보를 표현할 때 의미가 있는

                 데이터 표현의 최소 단위         

          

- 레코드(Record) : 하나 이상의 필드의 모임

          

- 파일(File) : 레코드들이 모여서 구성된 관련 레코드들의 집합

 

  

 

* 데이터베이스 추상화와 데이터 독립성

- 추상화 : 알 필요가 없는 복잡한 부분을 은폐 하는 것 (View 사용 등)

- 데이터 독립성 : 특정 스키마를 변경할 때

                     상위 단계의 스키마에 영향을

                     미치지 않는 것

                     그러므로, 데이터베이스의 구조를 변경하더라도

                     사용자의 사용 방법이나 응용 프로그램의 구조 변경이

                     필요없도록 하는 것.

- 3계층 스키마 : 사용자의 응용 프로그램과 물리적 데이터베이스를 분리

                    하는 것이 목적

 


 

 

(1) 내부 단계 : 내부 스키마를 가짐

 

데이터베이스의 물리적인 저장 구조 기술 및

물리적 데이터 모델 사용

데이터베이스 접근 경로 기술

 

(2) 개념 단계 : 개념 스키마를 가짐

 

전체 데이터베이스 구조 기술

(단순히 스키마라고도 함)

엔티티, 관계, 제약조건, 무결성 규칙 등의

기술에 중점

ERD와 같은 고수준 데이터 모델 또는

구현 데이터 모델로 표현됨

 

3) 외부 단계 : 외부 스키마와 뷰를 가짐

사용자나 응용 프로그램 개발자가

관심을 갖는 데이터베이스 부분을 기술하고

사용자에게는 데이터베이스의 나머지 부분이

감춰짐

 

 

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

 

- 외부 스키마나 응용 프로그램을 변경하지 않고

개념 스키마 변경 가능

- 고수준 데이터 독립성

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

- 개념 스키마를 변경하지 않고 내부 스키마 변경 가능

- 저수준 데이터 독립성

* 데이터 모델

- 실세계를 데이터베이스화 할 때 어떻게 진행할지 결정하는 기준

 

 

 

ex) 네비게이션 시스템

목표에서 멀어지는 쪽으로는 가지 않는다' 험한 길은 가지 않는다' '막힌 길은 가지 않는다'

- 데이터베이스를 구성하는 데이터의 성격과 의미, 데이터 간의 관계, 그에 따른 제약 조건 등에 따라

데이터베이스화가 이루어지도록 함

- 분류 : 물리적 모델, 논리적 모델, 개념적 데이터 모델

 

(1) 물리적 모델

 

- 데이터가 어떻게 저장되는지에 관심

- 레코드의 형식, 레코드 순서, 접근 경로 같은 정보

 


 

 

(2) 개념적 데이터 모델

- 사용자가 데이터를 어떻게 인식하는지에 관심

- 데이터 저장은 나타내지 않음

- 엔티티 관계(Entity Relationship) 데이터 모델

 

 

다음글
없음