[DB | SQL] 데이터베이스 관리 시스템

Jeini·2023년 4월 22일
0

🗂️ DB | SQL

목록 보기
1/5
post-thumbnail

💡 데이터베이스 관리 시스템의 정의 및 필수기능


✔️ 데이터 (Data)
: 현실세계에서 관찰 또는 측정해 수집한 사실이나 값

✔️ 정보 (Information)
: 데이터를 목적이나 의도에 맞게 가공 처리하여 얻은 결과물

📎 데이터베이스 등장배경

  • 지식기반 사회에서 대용량 데이터관리에 대한 필요성

  • 제 2세대 컴퓨터 시스템부터 도입된 파일시스템의 문제점
    📌 응용 프로그램과 데이터의 종속성
    📌 중복성에 따른 다수 사용자들의 정보 공유에 대한 문제점

📎 데이터베이스의 정의와 특징

✔️ 데이터베이스 (DB)
: 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되고 데이터베이스 관리시스템에 의해 관리되는 데이터의 집합

  • 통합데이터: 데이터를 통합하여 중복을 최소화하기 위한 개념

  • 공유데이터: 다수의 사용자나 여러 응용 시스템에서 동일한 데이터를 공유하는 개념

  • 저장데이터: 컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터를 의미

  • 운영데이터: 특정 조직의 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 개념

  • 의사결정데이터: 조직에서 새로운 의사 결정을 하는데 활용하기 위한 의미


✏️ 데이터베이스의 특징

  • 실시간 접근이 가능 (Real-time accessibility)
    : 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 함

  • 계속 변화 (Continuous evolution)
    : 데이터를 지속적으로 삽입, 삭제, 수정하여 현재의 정확한 데이터를 유지

  • 동시 공유 (Concurrent sharing)
    : 여러 사용자가 서로 다른 데이터나 동일한 데이터를 동시에 사용 가능함

  • 내용기반 참조 (Reference by content)
    : 저장된 주소나 위치가 아닌 데이터의 내용 또는 값으로 참조할 수 있어야 함

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

✔️DBMS
: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성 해주고, 데이터베이스를 관리 해주는 소프트웨어

  • 모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 환경을 제공

✏️ 대표적인 데이터베이스 관리시스템

오라클인 경우, 오라클사에서 만들어서 판매중인 상업용 데이터베이스이다.
다양한 운영체제에서 설치가 가능하다. 대용량 데이터 처리가 가능해서 대기업에서 주로 사용한다.

mySql은 현재는 오라클에서 인수합병해서 관리하고 있다.
오픈소스 기반으로 되어있기 때문에 무료로 사용 가능하다. 하지만 상업용으로 쓸 경우에는 부분적으로 비용이 발생한다. 주로 중소기업에서 많이 사용된다.

msSql 마이크로소프트 사에서 만들었다. 윈도우에 특화되어 있다.

MariaDB도 오픈소스 기반으로 되어있어서 무료로 사용 가능하다. mySql과 같은 소스코드로 되어있기 때문에 둘다 호환이 잘 되어있다. 기존에 있는 mySq보다 4000~5000배 정도 처리속도가 빠르다. 핫하게 발전해오고 있다.

✅ 필수기능

  • 정의 기능 (Definition)
    : 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 DB에 저장할 Type과 구조에 대한 정의, 제약조건을 명시하는 기능

  • 조작 기능 (Manipulation)
    : 데이터 삽입, 검색, 삭제를 체계적으로 처리하기 위해 사용자와 DB사이의 인터페이스 수단을 제공

  • 제어 기능 (Control)
    : 정당한 사용자가 허가된 데이터만 접근 할 수 있도록 보안을 유지하고 권한을 설정하며, 데이터 조작 시 정확성을 유지하며 병행처리 할 수 있는 기능

💡 스키마, 데이터 독립성


📎 스키마의 개념

  • 데이터베이스에서 자료의 구조와 제약조건에 관해 명세를 기술한 데이터 구조

  • 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값의 제약조건을 정의한 것

  • 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.

📎 스키마의 3계층

📌 외부 스키마 External Schema

  • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것으로 서브 스키마라고도 불린다.

  • 하나의 데이터베이스 시스템에 여러 개의 외부 스키마가 존재 가능

  • 하나의 외부 스키마를 여러 개의 응용프로그램이나 사용자가 공용 가능

  • 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용

  • 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있음

📌 개념 스키마 Conceptual Schema

  • 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스하나만 존재

  • 개체간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의

  • 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것

  • 기관이나 조직체의 관점에서 데이터베이스를 정의한 것

📌 내부 스키마 Internal Schema

  • 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층

  • 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현방법

  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마

📎 데이터 독립성

✔️ 데이터베이스 구조의 변화로 인한 영향을 응용 프로그램에 미치지 않도록 하는 것을 의미

📌 논리적 데이터 독립성

  • 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미

  • 기존의 외부 스키마에 영향을 미치지 않고, 응용 프로그램을 다시 작성할 필요없이 개념 스키마에 대한 변화가 가능해야 한다.

📌 물리적 데이터 독립성

  • 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 따라서 외부 스키마(또는 응용프로그램)에도 영향을 미치지 않음을 의미

  • 물리적 데이터 독립성이 제공되면 응용 프로그램들은 데이터가 어떻게 물리적인 구조를 갖고 저장되었는가를 신경 쓸 필요가 없다.

⭐️ 데이터 독립성의 필요성

  • 유지보수 비용감소
  • 데이터 복잡도 감소
  • 데이터 중복성 감소
  • 요구사항 대응 향상

💡 데이터베이스 시스템의 구성요소


  • 데이터베이스 관리시스템 DBMS
    : 사용자와 데이터베이스를 연결 시켜주는 소프트웨어 시스템

  • 데이터베이스 Database
    : 데이터를 통합시켜 하드디스크에 저장된 데이터의 집합

  • 데이터 모델 Data Model
    : 데이터베이스 구조를 명시하기 위한 개념들의 집합을 데이터로 모델

📎 데이터베이스의 언어

✔️ SQL (Structured Query Language)

  • 데이터 정의 언어 DDL
    : 데이터베이스를 생성하거나 수정하기 위해 사용함
    : 데이터베이스의 논리적 구조와 물리적 구조를 정의
    : CREATE, ALTER, DROP, TRUNCATE

  • 데이터 조작 언어 DML
    : 데이터의 삽입, 검색, 삭제를 하기 위한 언어
    : INSERT, SELECT, UPDATE

  • 데이터 제어 언어 DCL
    : 사용자에게 권한을 부여하거나 회수 하기 위한 언어
    : GRANT, REVOKE

📎 데이터베이스 사용자

✔️ DBA(DataBase Administrator), 응용프로그래머, 일반사용자로 구분

  • DBA(DataBase Administrator)
    : 데이터베이스 구축, DBMS 관리, 스키마 정의, 저장구조와 엑세스 방법을 선정, 보안 및 권한 부여 규칙, 데이터 유효성 검사방법 수립 등

  • 응용 프로그래머
    : DML을 사용하여 데이터베이스에 데이터를 삽입, 검색, 수정, 삭제

  • 일반 사용자
    : 응용 프로그램을 사용하여 데이터베이스에 접근

profile
Fill in my own colorful colors🎨

0개의 댓글