컴퓨터의 이해 7강 - 데이터베이스

2025. 4. 24. 16:55·방송통신대학교/⚙️컴퓨터의 이해

1. 데이터베이스 개요

(1) 데이터

[1] 정보사회와 데이터

 - 다양한 영역의 활동에 따른 매우 많은 양의 데이터가 발생함.

 - ex) 항공예약 데이터 : 예약자, 출발지, 목적지, 항공사, 탑승시간, 도착시간, 좌석 등

 - 이러한 데이터들은 보조기억장치에 저장을 하게 됨. ( 파일 형태로 )

 

(2) 파일

[1] 파일이란?

 - 보조기억장치에 저장되어 있는 데이터의 집합을 의미한다.

 - 보관되어 있는 위치와 이름으로 접근하여 사용하게 됨.

[2] 파일 구조

[ 순차적 구조 ]

 - 파일에 데이터를 앞에서부터 순서대로 저장 및 조회를 하는 구조를 의미한다. ( 순서대로 읽고 저장 )

 - 내가 원하는 데이터를 선택을 해서 찾는 과정에는 적합하지 않는다.

 - 하지만, 파일 전체 일괄 처리를 하는 과정에서는 괜찮은 구조이다.

[ 상대적(직접적) 구조 ]

 - key 값이 제공이되며, key값을 상대주소로 변환하여 직접가서 찾는 구조를 의미한다. ( 주소는 인덱스 같은 개념 )

 - 상대주소 변환을 통해 주소를 바로 알 수 있기에 원하는 데이터를 빠르게 찾을 수 있는 구조를 의미함.

[ 인덱스된 구조 ]

 - 인덱스라는 데이터를 쉽게 찾을 수 있는 자료구조를 만드는 것임. ( 다른 파일에 비해 소규모로 빠른 검색이 가능 )

 - key 값이 제공이 되며, 인덱스 자료구조를 활용 

 

(3) 파일을 이용한 데이터 관리

 - 응용프로그램 단위로 필요한 파일을 소유 및 관리

[1] 문제점

 - 데이터가 프로그램에 종속이 되어버림. ( 다른 프로그램에서 쓰지 못하는 느낌 )

 - 서로 다른 응용이 부분적으로 같은 데이터를 필요로 하는 경우 데이터의 중복이 발생

데이터의 중복

 - 중복된 데이터로 인해 저장공간의 낭비가 발생함

 - 중복된 데이터로 인해 데이터의 모순 발생 가능성이 높음 ( 하나의 파일의 값이 변경되면 다른 파일 값 또한 변경이 되야 함. )

 - 즉, 일관성과 신뢰성이 떨어질 수 있음. ( 이러한 문제 때문에 데이터 베이스를 쓰게 됨. )

 

(4) 데이터베이스

[1] 데이터베이스(database)란?

 - 어떤 조직이나 단체를 유지하고 관리하는 데 필수적인 관련 데이터의 집합

 - 논리적으로 연관된 하나 이상의 데이터의 집합을 의미함.

 - 데이터를 고도로 구조화함으로써 검색, 갱신, 관리를 효율화한 것

 - 데이터베이스 관리 시스템(DBMS)을 통해 데이터베이스에 데이터를 저장하거나 저장된 데이터를 활용 및 관리 함.

 - 데이터베이스 관리 시스템(DBMS)는 데이터를 관리하기 위한 데이터베이스 관리 소프트웨어를 의미함.

 

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

 - 데이터베이스 관리 시스템(DBMS)와 데이터베이스 두 가지 요소로 구성이 되어있는 소프트웨어를 의미한다.

 - 데이터베이스 관리 시스템(DBMS) : 데이터를 저장하고 조회하는 것을 해주는 역할

 - 데이터베이스 : 데이터를 저장할 수 있는 공간을 의미한다.

 - 쉽게 말해, DBMS를 통해 데이터베이스에 데이터를 저장 할 수 있고, 필요할 때 DBMS를 통해 데이터를 조회한다.

[ 데이터베이스 관리자(DBA) ]

 - 데이터베이스가 안전하고 효율적으로 동작을 할 수 있도록 데이터베이스를 관리하는 역할을 함.

 - 수시로 데이터베이스를 모니터링해서 성능 저하 발견시 성능을 높임.

 


2. 데이터베이스 관리 시스템

(1) 데이터베이스 관리 시스템 개요

[1] 데이터베이스 관리 시스템(DBMS)란?

 - 응용프로그램과 데이터 간의 독립성을 유지하고, 다수 사용자에 의한 공용을 지원하는 소프트웨어 패키지를 의미함.

 - 다양한 응용에 필요한 여러 유형의 개체에 대한 데이터와 이들 사이의 상관관계에 대한 정보를 관리함.

 - 응용프로그램과 데이터베이스의 중재자 역할을 함.

 - 사용자나 응용프로그램은 DBMS를 통해서만 데이터베이스에 접근할 수 있도록 되어있음.

[2] 데이터베이스 관리 시스템의 구체적인 역할

 - 데이터베이스에 빠른 데이터 저장, 검색, 갱신을 함.

 - 데이터의 독립성을 유지시켜줌. ( 데이터의 의미를 독립적으로 봄. )

 - 데이터 공유 및 다수 사용자의 동시실행 제어 ( 트랜잭션느낌 , 여럿 사용자 때문에 데이터가 변할 때 )

 - 데이터의 빠르고 안전한 저장 및 파손 회복 능력

 - 표준 질의언어, 질의처리 기능, 응용프로그램 개발환경 등 제공 ( 데이터 효율적 및 빠르게 처리할 수 있는 인터페이스 )

 - 데이터 보안 : 데이터가 타 사용자에게 노출이 되지 않도록 보안을 해주는 것. 암호화 등

 

(2) 데이터베이스 관리 시스템의 필수 기능

[1] 데이터의 정의

 - 다양한 응용 프로그램을 지원하기 위한 데이터베이스 구조를 정의하는 기능 ( 쉽게말해, 스키마를 정의함 )

 - 모든 응용프로그램을 위한 데이터의 논리적 구조 정의

 - 데이터베이스를 보조기억장치에 저장하기 위한 물리적 구조 정의

 - 데이터의 논리적 구조와 물리적 구조 사이의 사상(mapping)을 정의

 - 쉽게 말해, 테이블/컬럼/데이터 타입/제약 등 데이터의 구조를 정의 하는 것을 의미함. ( DDL )

[2] 데이터 조작

 - 사용자의 요구에 따라 데이터베이스에 체계적으로 접근하고 조작하는 기능을 의미함.

 - 검색, 갱신, 삽입, 삭제 등의 연산을 지원하는 데이터 언어를 통해 지시함 ( 쿼리문 )

 - 데이터 언어의 요건 : 사용의 용이성, 명확하고 완전함, 효율성

 - 쉽게말해, CRUD 데이터 조회/삽입/수정/삭제 DML을 활용해 조작하는 것을 의미함. ( DML )

[3] 데이터 제어

 - 공용 목적으로 관리되는 데이터베이스의 내용에 대한 정확성과 안전성을 유지하는 기능

[ 데이터 제어 기능의 요건 ]

 - 데이터의 무결성이 유지되도록 제어

 - 정당한 사용만 허가하기 위한 권한 검사 및 보안 유지

 - 여러 사용자의 동시 접근에 따른 정확성이 유지되도록 병행제어

 - 쉽게말해, GRANT 등 권한 부여 및 회수, 트랜잭션 커밋/롤백 등이 될 수 있음. ( DCL and TCL )

 

(3) 데이터베이스 언어

[1] 데이터베이스 언어란?

 - 데이터베이스에 대한 작업을 수행하는 특수 목적의 언어를 의미함.

 - SQL(Structured Query Language) : 관계형 데이터베이스 관리 시스템에서 사용되는 데이터베이스 언어이다.

[ 데이터 정의어(DDL) ]

 - Data Definition Language

 - 데이터베이스의 스키마를 생성, 변경, 삭제할 목적으로 사용하는 언어

스키마 : 데이터베이스 구조와 제약조건에 대한 명세를 의미함.

[ 데이터 조작어(DML) ]

 - Data Manipulation Language

 - DDL에 의해 정의된 데이터베이스에 대해 데이터의 삽입, 검색, 수정, 삭제 등의 처리를 하기 위한 목적으로 사용하는 언어

 


3. 데이터베이스 스키마

(1) 데이터베이스 스키마(schema)란?

 - 데이터베이스에서 데이터의 구조, 데이터의 표현 방법, 제약조건 등을 정의한 것

 - 데이터베이스를 보는 입장에 따라 여러 단계의 스키마가 있음.

 - 물리적 저장장치 입장 - 조직 전체의 입장 - 사용자의 입장

 

(2) 3계층 스키마 구조

 - 3계층 스키마는 같은 데이터베이스를 바라보는 관점에 따라 나뉘게 된다.

 - 3계층으로 나눈 이유는 각 계층을 서로 독립시켜, 변경이 일어나더라도 다른 계층에 영향을 주지 않게 하기 위함.

 - 외부 스키마 : 접근하는 사용자 관점의 데이터 뷰 -> 사용자가 보는 화면, 필요한 정보만 노출

 - 개념 스키마 : 설계뙨 논리 구조 -> 어떤 데이블이 있고, 어떻게 연결되는지

 - 내부 스키마 : 실제 하드디스크에 저장된 물리적 구현 -> 어디에 저장되어 있고, 어떻게 최적화 되어 있는지

 


4. 데이터베이스시스템의 장단점

(1) 장점

[1] 데이터 중복의 최소화

 - 데이터 일관성 확보 / 저장공간의 절감

[2] 데이터 독립성 보장

 - 논리적 데이터 독립성 / 물리적 데이터 독립성

[3] 데이터의 일관성 및 무결성

 - 데이터 중복을 최소화하여 일관성을 유지할 수 있음.

 - 데이터 갱신시 DBMS의 중앙제어를 통해 유효성 검사

[4] 데이터의 공유

 - 다양한 응용의 요구사항을 수렴한 통합적 개념 스키마를 통한 데이터 공유

[5] 데이터베이스의 사용자 인터페이스 표준화

 - SQL에 의한 표준 사용자 인터페이스

 

(2) 단점

[1] 운영비의 증대

 - 고가의 DBMS, 더 높은 CPU 성능과 큰 주기억장치가 필요함.

[2] 데이터 처리 방법의 복잡성

 - 다양한 응용을 고려한 데이터 구조 설계가 가능한 고급 설계자 및 프로그래머가 필요함.

[3] 백업과 회복의 복잡성

[4] 시스템 취약성

 


5. 데이터 웨어하우스

(1) 데이터 웨어하우스(data warehouse)란?

 - 회사에선 변화의 추이를 관찰하여 기관의 의사결정에 필요한 정보를 도출할 필요가 있음.

 - 그렇기 때문에, 필요한 것이 데이터 웨어하우스이다.

 - 즉, 데이터 웨어하우스는 의사 결정을 지원하는 데이터의 집합체인 셈이다.

 - 기업의 운영 시스템(마케팅, 판매, 회계 등)의 데이터베이스로부터 추출되어 적절한 형태로 변환되어 저장이 된다.

 - 데이터 웨어하우스는 분기별, 연도별 현황, 경향 등과 같은 분석적인 보고서를 작성하는데 활용이 됨.

 

(2) 데이터 웨어하우스의 특성

[1] 주제지향

 - 의사 결정에 필요한 특정 주제별로 구성된 데이터를 저장함. ( 고객관리, 재고관리 등 주제별로 나눔 )

[2] 통합

 - 다수의 서로 다른 데이터베이스로부터 일관적 형태로 변환되어 통합됨

[3] 시계열

 - 일, 월, 분기, 연도 등 정해 놓은 시점별로 변화된 정보를 저장함.

[4] 비휘발성

 - 갱신이 이루어지지 않는 읽기 전용 데이터베이스 ( 쌓인 정보를 토대로 추이를 보기 위함 )

 - 읽기 전용이기 때문에 기존 데이터는 휘발이 되지 않는다. 즉, 비휘발성이라는 것임.

'방송통신대학교 > ⚙️컴퓨터의 이해' 카테고리의 다른 글

컴퓨터의 이해 9강 - 4차 산업혁명과 미래사회  (1) 2025.04.25
컴퓨터의 이해 8강 - 정보통신기술과 우리 사회  (0) 2025.04.25
컴퓨터의 이해 6강 - 소프트웨어와 정보 시스템  (0) 2025.04.18
컴퓨터의 이해 5강 - 보조기억장치와 데이터 저장  (0) 2025.04.15
컴퓨터의 이해 4강 - 컴퓨터의 입출력  (0) 2025.03.07
'방송통신대학교/⚙️컴퓨터의 이해' 카테고리의 다른 글
  • 컴퓨터의 이해 9강 - 4차 산업혁명과 미래사회
  • 컴퓨터의 이해 8강 - 정보통신기술과 우리 사회
  • 컴퓨터의 이해 6강 - 소프트웨어와 정보 시스템
  • 컴퓨터의 이해 5강 - 보조기억장치와 데이터 저장
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    컴퓨터과학 개론
    방송통신대학교
    방송대
    spring
    운영체제
    컴퓨터의 이해
    Python
    자바
    Java
    그래프
    자료구조
    컴퓨터과학과
    배열
    이산수학
    C언어
    알고리즘
    파이썬
    함수
    유비쿼터스
    방통대
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
컴퓨터의 이해 7강 - 데이터베이스
상단으로

티스토리툴바