[Database] 데이터베이스 이해하기 _ 기본부터 스키마 및 SQL
데이터베이스 정의 및 필수기능
데이터베이스 정의
여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되고 데이터베이스 관리시스템에 의해 관리되는
데이터의 집합
으로, 체계적으로 조직되고 저장된 정보의 모음이다. 이러한 데이터는 쉽고 효율적으로 접근하고 관리할 수 있어야한다.
데이터 | 설명 |
---|---|
통합데이터 | 데이터를 통합하여 중복을 최소화하기 위한 개념 |
공유데이터 | 다수의 사용자나 여러 응용 시스템에서 동일한 데이터를 공유하는 개념 |
저장데이터 | 컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터를 의미 |
운영데이터 | 특정 조직의 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 개념 |
의사결정데이터 | 조직에서 새로운 의사 결정을 하는데 활용하기 위한 의미 |
데이터베이스의 특징
실시간 접근이 가능
: 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다.지속적 변화
: 데이터를 지속적으로 삽입, 삭제, 수정하여 현재의 정확한 데이터를 유지한다.동시공유
: 여러 사용자가 서로 다른 데이터나 동일한 데이터를 동시에 사용가능하다.내용기반 참조
: 저장된 주소나 위치가 아닌 데이터의 내용 또는 값으로 참조할 수 있어야한다.- 구조화된 데이터: 데이터베이스는 데이터를 구조화하여 저장한다. 이는 데이터를 테이블, 행, 열 등의 형식으로 조직화함을 의미한다.
- 데이터 무결성: 데이터베이스는 데이터의 정확성과 일관성을 유지한다. 무결성 규칙은 데이터가 신뢰할 수 있고 오류가 없도록 보장한다.
- 데이터 관리: 데이터베이스 관리 시스템(DBMS)은 데이터의 저장, 검색, 수정 및 삭제를 관리한다. 이를 통해 사용자는 데이터에 쉽게 접근하고 조작할 수 있다.
- 보안: 데이터베이스는 민감한 정보를 보호하기 위해 보안 조치를 제공한다. 이는 비밀번호 보호, 암호화, 접근 권한 제한 등을 포함한다.
- 백업 및 복구: 데이터베이스는 데이터 손실을 방지하기 위해 백업 및 복구 기능을 제공한다. 이는 시스템 오류나 재해 발생 시 중요한 데이터를 복구할 수 있게 한다.
- 확장성과 성능: 좋은 데이터베이스는 데이터의 양이 증가함에 따라 확장 가능하며, 높은 성능을 유지할 수 있어야한다.
데이터베이스 관리 시스템(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 |