반응형
데이터베이스
- 데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보
또는 데이터의 조직화된 모음이다. - 데이터베이스는 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.
- 데이터베이스는 다음의 4가지 특징을 갖는다.
- 실시간 접근 (real-time accessibility)
- 계속 변화 (continuous evolution)
- 동시 공유 (concurrent sharing)
- 내용으로 참조 (content reference)
- 주로 사용되는 데이터베이스의 종류로 크게 2가지가 있다.
- 관계형 데이터베이스
- 행과 열로 구성된 테이블간의 관계를 나타내며, SQL을 통해 관리한다.
- MySQL, Maria DB, MS-SQL 등이 있다.
- NoSQL
- 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 갖고 있다.
- Mongo DB, Cassandra 등이 있다.
- 관계형 데이터베이스
데이터
- 데이터베이스의 가장 중요한 목적은 데이터를 모아두는 것이다.
- 데이터는 형태에 따라 3가지로 분류할 수 있다.
- 정형 데이터
- 구조화된 데이터, 즉 미리 정해진 구조에 따라 저장된 데이터다.
- 엑셀의 스프레드시트, 관계형 데이터베이스의 테이블
- 반정형 데이터
- 구조에 따라 저장된 데이터지만, 정형 데이터와 달리 데이터 내용 안에 구조에 대한 설명이 함께 존재
- HTML, XML, JSON 등이 반정형 데이터에 속한다.
- 비정형 데이터
- 정해진 구조 없이 저장된 데이터다.
- 소셜 데이터의 텍스트, 영상, 이미지, PDF와 같은 멀티미디어 데이터가 비정형 데이터에 속한다.
- 정형 데이터
데이터베이스 관리 시스템(DBMS)
- 데이터베이스 관리 시스템 등장 이전에 사용되던 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어이다.
- 응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입, 삭제, 수정, 검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.
SQL (Structured Query Language)
- SQL은 데이터를 조작 및 제어하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어이다.
스키마 (Schema)
- 스키마는 데이터베이스에 저장되는 데이터의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이다.
즉, DB내에 어떠한 구조로 데이터가 저장되는지를 나타내는 데이터베이스의 구조이다. - 데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하기 위해, 사용자의 관점에 따라 세 가지로 분류한다.
- 외부 스키마
- 프로그래머나 사용자 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
- 전체 데이터베이스의 한 논리적인 부분이므로 서브 스키마 라고도 한다.
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
- 일반 사용자는 질의어(SQL)을 통해, 응용 프로그래머는 C, JAVA등의 언어를 통해 접근한다.
- 개념 스키마
- 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
- 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
- 내부 스키마
- 전체 데이터베이스의 물리적 저장 형태를 기술하는 것으로, 물리적 저장장치의 관점에서 본 데이터베이스 구조이다.
- 내부스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
- 외부 스키마
릴레이션 (Relation)
- 관계형 데이터 모델에서는 하나의 개체에 관한 데이터를 하나의 릴레이션에 담아 데이터베이스에 저장한다.
즉, DB에서 릴레이션은 DB 테이블을 뜻한다. - 릴레이션과 관련된 용어들은 다음과 같다.
- 속성 (attribute)
- 릴레이션의 열을 속성이라고 부른다.
- 각 속성은 서로 다른 이름을 이용해 구별한다.
- 릴레이션은 파일 관리 시스템에서의 파일, 속성은 필드에 대응하는 개념이다.
- 튜플 (tuple)
- 릴레이션의 행을 튜플이라고 부른다.
- 튜플은 파일 관리 시스템에서 해당 파일의 레코드에 대응하는 개념이다.
- 도메인 (domain)
- 릴레이션에 포함된 각각의 속성들이 가질 수 있는 원자값들의 집합이다.
- 예를 들어 속성의 값으로 Red, Green, Blue, White 중 하나만 허용될 때, 이 4가지 값을 모아놓은 것이 속성의 도메인이 된다.
- 차수 (degree)
- 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수라고 한다.
- 모든 릴레이션은 최소 1 이상의 차수를 유지해야 한다.
- 릴레이션의 차수는 일반적으로 자주 변하지 않는다는 정적인 특징이 있다.
- 카디널리티 (cardinality)
- 하나의 릴레이션에서 튜플의 전체 개수를 릴레이션의 카디널리티 라고 한다.
- 튜플이 없는 릴레이션이 존재할 수도 있다.
- 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징이 있다.
- 속성 (attribute)
마치며..
오늘은 이렇게 데이터베이스의 기본 용어들에 대해 알아보았습니다.
이외에 전체적인 CS주제들은 https://github.com/HongEunho 와 https://github.com/MLifeFam/cs_interview 에 정리되어 있습니다.
반응형
'CS > 데이터베이스' 카테고리의 다른 글
데이터베이스 정규화(Normalization)란 (0) | 2021.11.11 |
---|---|
데이터베이스 조인(Join) 정리 (0) | 2021.11.10 |
데이터베이스 관계대수 (0) | 2021.11.10 |
데이터베이스 키(key)의 개념 및 종류 (0) | 2021.11.09 |