Post

[Database] 데이터베이스 이해하기 _ 기본부터 스키마 및 SQL

데이터베이스 정의 및 필수기능

데이터베이스 정의

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되고 데이터베이스 관리시스템에 의해 관리되는데이터의 집합으로, 체계적으로 조직되고 저장된 정보의 모음이다. 이러한 데이터는 쉽고 효율적으로 접근하고 관리할 수 있어야한다.

데이터설명
통합데이터데이터를 통합하여 중복을 최소화하기 위한 개념
공유데이터다수의 사용자나 여러 응용 시스템에서 동일한 데이터를 공유하는 개념
저장데이터컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터를 의미
운영데이터특정 조직의 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 개념
의사결정데이터조직에서 새로운 의사 결정을 하는데 활용하기 위한 의미

데이터베이스의 특징

  1. 실시간 접근이 가능: 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다.
  2. 지속적 변화: 데이터를 지속적으로 삽입, 삭제, 수정하여 현재의 정확한 데이터를 유지한다.
  3. 동시공유: 여러 사용자가 서로 다른 데이터나 동일한 데이터를 동시에 사용가능하다.
  4. 내용기반 참조: 저장된 주소나 위치가 아닌 데이터의 내용 또는 값으로 참조할 수 있어야한다.
  5. 구조화된 데이터: 데이터베이스는 데이터를 구조화하여 저장한다. 이는 데이터를 테이블, 행, 열 등의 형식으로 조직화함을 의미한다.
  6. 데이터 무결성: 데이터베이스는 데이터의 정확성과 일관성을 유지한다. 무결성 규칙은 데이터가 신뢰할 수 있고 오류가 없도록 보장한다.
  7. 데이터 관리: 데이터베이스 관리 시스템(DBMS)은 데이터의 저장, 검색, 수정 및 삭제를 관리한다. 이를 통해 사용자는 데이터에 쉽게 접근하고 조작할 수 있다.
  8. 보안: 데이터베이스는 민감한 정보를 보호하기 위해 보안 조치를 제공한다. 이는 비밀번호 보호, 암호화, 접근 권한 제한 등을 포함한다.
  9. 백업 및 복구: 데이터베이스는 데이터 손실을 방지하기 위해 백업 및 복구 기능을 제공한다. 이는 시스템 오류나 재해 발생 시 중요한 데이터를 복구할 수 있게 한다.
  10. 확장성과 성능: 좋은 데이터베이스는 데이터의 양이 증가함에 따라 확장 가능하며, 높은 성능을 유지할 수 있어야한다.

데이터베이스 관리 시스템(DBMS: DataBase Management System)

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성 및 관리해주는 소프트웨어이다.

필수 기능의미
정의 기능(Definition)모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장할 타입과 구조에 대한 정의 및 제약조건을 명시하는 기능이다.
조작 기능(Manipulation)데이터 삽입, 검색, 수정, 삭제를 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공
제어 기능(Control)정당한 사용자가 허가된 데이터만 접근 할 수 있도록 보안을 유지하고 권한을 설정하고 데이터 조작 시 정확성을 유지하며 병행처리를 할 수 있는 기능이다.

스키마 및 데이터 독립성

Schema란?

스키마는 데이터베이스의 구조(개체"Entity", 속성"Attribute", 관계"Relationship")와 제약조건에 관한 명세를 기술한 데이터 구조 또는 청사진이다. 이는 데이터베이스에 저장된 데이터의 형태와 관계를 명시한다. 일반적으로 스키마는 세 가지 계층으로 나뉜다.

물리적 스키마 (Physical Schema) : 내부 스키마 (Internal Schema)

데이터가 실제로 저장되는 방식을 설명한다. 이는 데이터베이스의 물리적 저장소 구조 파일의 형식, 인덱싱 방법 등을 포함한다. 물리적 스키마는 성는 최적화와 데이터 관리의 효율성에 중점을 둔다.

  • 데이터가 실제로 어떻게 저장되는지에 대한 설명
  • 데이터의 물리적 저장, 인덱싱, 압축, 접근 방법 등을 포함
  • 성능 최적화와 데이터의 물리적 관리에 초점을 맞춤

논리적 스키마 (Logical Schema) : 개념 스키마 (Conceptual Schema)

데이터베이스의 구조를 추상적으로 표현한다. 여기에는 테이블, 뷰, 인덱스, 관계, 제약 조건 등이 포함된다. 논리적 스키마는 데이터와 그 관계를 개념적으로 표현하며, 데이터베이스 설계의 핵심 부분을 담당한다.

  • 데이터베이스 전체의 구조와 관계를 추상적으로 표현
  • 데이터베이스의 모든 데이터와 그들 사이의 관계를 표현
  • 사용자와 물리적 저장 방법으로부터 독립적인 데이터베이스의 전체적인 설계

뷰 스키마 (View Schema) : 외부 스키마 (External Schema)

사용자 또는 사용자 그룹이 데이터베이스와 상호 작용하는 방식을 정의한다. 각 뷰 스키마는 데이터베이스의 일부를 표현하며, 사용자에게 특정 데이터의 접근을 제공한다. 이는 사용자가 필요로 하는 데이터만을 보여주어, 보안과 데이터 관리를 용이하게 한다.

  • 사용자가 데이터베이스를 어떻게 보고 사용하는지 논리적 구조를 정의, 서브 스키마라고도 불림
  • 사용자나 사용자 그룹별 데이터베이스의 부분적인 뷰 제공
  • 사용자 인터페이스 및 데이터 접근 권한과 밀접하게 관련됨
  • 하나의 데이터베이스에 여러 개의 외부 스키마가 존재 가능

데이터 독립성 (Data independence)

한 층의 스키마를 변경해도 다른 층의 스키마에 영향을 주지 않도록 설계하는 것을 의미한다. 이를 통해, 유지보수 비용감소, 데이터 복잡도 감소, 데이터 중복성 감소, 요구사항 대응 향상에 다한 이점을 얻을 수 있다.

물리적 독립성 (Physical Independence)

  • 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 따라서 외부 스키마에도 영향을 미치지 않음을 의미한다.
  • 물리적 독립성은 데이터베이스의 물리적 스토리지 구조를 변경해도 논리적 스키마에 영향을 미치지 않는 성질을 말한다.
  • 물리적 독립성은 시스템의 성능 향상, 저장 공간의 효율적 관리 등을 위해 중요하다.

논리적 독립성 (Logical Independence)

  • 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미한다.
  • 데이터베이스의 논리적 스키마를 변경해도 응용 프로그램이나 사용자 인터페이스에 여향을 미치지 않는 성질을 의미한다.
  • 데이터베이스의 확장성과 유연성을 보장하며, 시스템의 유지보수를 용이하게 한다.

SQL: Structured Query Language

종류설명
데이터 정의 언어 (DDL)데이터베이스를 생성하거나 수정하기 위해 사용하며, 데이터베이스의 논리적 구조와 물리적 구조를 정의 CREATE, ALTER, DROP, TRUNCATE
데이터 조작 언어 (DML)데이터 조작 INSERT, SELECT, UPDATE, UPDATE
데이터 제어 언어 (DCL)사용자에게 권한을 부여하거나 회수하기 위한 언어 GRANT, REVOKE
This post is licensed under CC BY 4.0 by the author.

© chanho. Some rights reserved.