본문 바로가기

DB - MySQL

데이터베이스 개념

반응형

1. 데이터베이스란?

데이터베이스는 여러 사용자 또는 응용 프로그램이 공유할 수 있는 데이터의 집합을 저장하는 체계적인 방법이다. 데이터베이스는 일반적으로 컴퓨터 시스템에 저장되며, 이를 통해 다수의 사용자가 동시에 데이터를 업데이트하고 검색할 수 있다.

 

데이터베이스 시스템은 일반적으로 데이터의 무결성, 일관성, 보안 등을 유지하며 데이터베이스를 관리한다. 데이터베이스 관리 시스템(DBMS)은 사용자가 데이터를 검색, 추가, 수정, 삭제할 수 있도록 허용하며, 데이터를 효율적으로 저장하고 관리한다.

 

데이터베이스는 다양한 분야에서 사용된다. 기업에서는 고객 정보, 제품 정보, 주문 정보 등을 저장하여 비즈니스 프로세스를 관리하고, 의료 분야에서는 환자 정보, 진료 기록 등을 저장하여 의료 서비스를 제공한다. 또한 인터넷 서비스에서는 사용자 정보, 게시글, 댓글 등을 저장하여 웹 사이트 또는 애플리케이션을 운영한다.

 

이처럼 데이터베이스는 매우 중요한 역할을 수행하며, 데이터를 보다 효율적으로 저장하고 관리함으로써 다양한 분야에서 비즈니스 성과를 향상시키고, 더 나은 의사 결정을 내릴 수 있게 해준다.

2. 데이터베이스 특징

1) 실시간 접근성(Real-time Accessibility)

데이터베이스는 필요한 정보에 빠르게 접근할 수 있도록 실시간으로 처리된다. 사용자는 데이터베이스에서 원하는 정보를 쉽게 검색하거나 변경할 수 있다.

 

2) 지속성(Durability)

데이터베이스 시스템은 데이터를 안정적으로 보존할 수 있도록 지속성을 보장한다. 이는 시스템이 오류 또는 중단되더라도 데이터가 유지됨을 의미한다.

 

3) 독립성(Independence)

데이터베이스는 물리적인 데이터 구조와 응용 프로그램을 분리하여, 데이터 구조를 변경해도 응용 프로그램에 영향을 미치지 않는다. 이를 데이터의 논리적 독립성(Logical Independence)이라고 한다.

 

4) 일관성(Consistency)

데이터베이스에서 데이터는 일관된 상태를 유지해야 한다. 이를 위해 데이터베이스 시스템은 데이터의 무결성을 유지하고, 중복 데이터를 제거하며, 데이터 간의 일관성을 검증한다.

 

5) 보안성(Security)

데이터베이스에서는 데이터에 대한 보안을 유지해야 한다. 데이터베이스 시스템은 데이터의 불법적인 액세스나 변조를 방지하고, 데이터의 기밀성과 무결성을 보호한다.

 

6) 효율성(Efficiency)

데이터베이스는 대용량의 데이터를 효율적으로 처리할 수 있도록 설계되어 있다. 이를 위해 데이터베이스 시스템은 적절한 인덱싱, 캐싱, 최적화 기술 등을 사용하여 빠른 검색과 처리를 가능하게 한다.

 

7) 공유성(Sharing)

데이터베이스는 여러 사용자 또는 응용 프로그램에서 공유할 수 있다. 이를 위해 데이터베이스 시스템은 동시성 제어 기술 등을 사용하여, 다수의 사용자가 동시에 데이터를 액세스하고 변경할 수 있도록 한다.

 

8) 용이성(Ease of Use)

데이터베이스는 사용자가 쉽게 접근하고 사용할 수 있도록 설계되어 있다.

3. 데이터베이스 종류

1) 계층형 데이터베이스

데이터가 트리 형태의 구조로 조직된 것을 말한다. 이 구조는 반복적인 부모-자식 관계 정보를 표현한다. 각 부모는 다수의 자식을 가질 수 있고, 자식은 단 하나만의 부모를 가질 수 있다.

 

2) 네트워크형 데이터베이스

데이터 간의 N:N 관계를 유지한다. 계층형 트리 구조를 확장한 형태로, 망(네트워크; network)으로 구성된 모델형태입니다.

 

3) 관계형 데이터베이스(릴레이셔널) - MySQL

데이터가 하나 이상의 열과 행의 테이블(또는 '관계')에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 구조이다.

행(레코드)과 열(컬럼)로 구성된 표(테이블)로 데이터를 다룬다. 테이블 안의 1개 요소를 필드라고 부른다. 각각의 테이블을 연관지을 수 있다는 것이 관계형 데이터베이스의 특징이이다.

 

4) NoSQL 데이터베이스

전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. 이러한 접근에 대한 동기에는 디자인의 단순화, 수평적 확장성, 세세한 통제를 포함한다.

4. 데이터베이스 관련 용어

1) 데이터(Data)

데이터베이스에 저장되는 모든 정보를 말한다. 예를 들어, 학생의 이름, 학번, 성적 등 모든 정보가 데이터이다.

 

2) 테이블(Table)

데이터베이스에서 데이터를 저장하는 가장 기본적인 형태이다. 테이블은 행과 열로 구성되며, 각 행은 레코드(Record)라고 불리고, 각 열은 필드(Field)라고 불린다.

 

3) 컬럼(Column)

테이블에서 각 열을 말한다. 각 컬럼은 고유한 이름을 가지고 있으며, 해당 컬럼의 데이터 유형을 정의한다. 예를 들어, 학생 테이블에서 이름, 학번, 성적 등 각각의 항목은 하나의 컬럼으로 표현된다.

 

4) 행(Row)

테이블에서 각 레코드를 말합니다. 각 행은 컬럼의 집합으로 구성되며, 각 컬럼은 해당 레코드에 대한 정보를 포함한다.

 

5) 기본키(Primary Key)

테이블에서 각 레코드를 식별할 수 있는 고유한 식별자이다. 기본키는 테이블에서 중복된 값을 가지지 않으며, 해당 레코드를 찾기 위한 빠른 검색이 가능하도록 인덱스로 설정된다. 예를 들어, 학생 테이블에서 학번은 각 학생을 식별할 수 있는 기본키가 될 수 있다.

 

6) 외래키(Foreign Key)

두 개 이상의 테이블 간의 관계를 정의하는 데 사용되는 키이다. 외래키는 다른 테이블의 기본키를 참조하며, 해당 테이블에 있는 데이터와 참조하는 테이블에 있는 데이터 간의 일관성을 유지한다. 예를 들어, 학생 테이블에서 각 학생의 학과 정보를 저장하고자 할 때, 학과 테이블의 학과 코드를 외래키로 설정하여 두 테이블 간의 관계를 정의할 수 있다.

 

7) 스키마(Schema)

데이터베이스 구조와 제약 조건 등을 정의한 설계도이다. 스키마는 테이블, 뷰(View), 인덱스(Index) 등을 포함한다.

 

8) 뷰(View)

테이블을 기반으로 생성된 가상의 테이블이다. 뷰는 특정 사용자 또는 응용 프로그램이 필요로 하는 부분적인 데이터만 표시할 수 있다.

 

9) 인덱스(Index)

테이블에서 레코드를 빠르게 검색하기 위해 사용되는 데이터 구조이다. 인덱스는 키(Key)와 값(Value)의 쌍으로 구성되며, 키를 이용하여 데이터를 검색한다.

 

10) 쿼리(Query)

데이터베이스에서 원하는 정보를 검색하기 위해 사용하는 명령어이다. 쿼리는 SQL(Structured Query Language)을 사용하여 작성된다.

5. SQL(Structured Query Language)

SQL(Structured Query Language)은 데이터베이스에서 데이터를 저장, 수정, 삭제 및 검색하기 위한 표준 프로그래밍 언어이다. SQL은 데이터베이스 관리 시스템(DBMS)에서 사용되며, 관계형 데이터베이스에서 가장 많이 사용된다.

SQL은 다음과 같이 네 가지 주요 유형의 명령어로 분류할 수 있다.

 

1) DDL(Data Definition Language)

데이터베이스 스키마를 정의, 변경 및 삭제하는 명령어이다. DDL 문장은 테이블, 뷰, 인덱스, 제약 조건 등 데이터베이스 개체를 생성, 수정 및 삭제한다. 대표적인 DDL 명령어로는 CREATE, ALTER, DROP, RENAME, TRUNCATE 등이 있다.

 

2) DML(Data Manipulation Language)

데이터를 삽입, 수정, 삭제, 검색하는 명령어이다. DML 명령어를 사용하여 데이터베이스에 저장된 데이터를 조작할 수 있다. 대표적인 DML 명령어로는 SELECT, INSERT, UPDATE, DELETE 등이 있다.

 

3) DCL(Data Control Language)

데이터베이스 사용 권한을 관리하는 명령어이다. DCL 명령어를 사용하여 데이터베이스 사용자의 권한을 부여하거나 취소할 수 있다. 대표적인 DCL 명령어로는 GRANT, REVOKE 등이 있다.

 

4) TCL(Transaction Control Language)

데이터베이스 트랜잭션을 관리하는 명령어이다. TCL 명령어를 사용하여 데이터베이스에서 트랜잭션의 시작, 종료, 롤백 등을 관리할 수 있다. 대표적인 TCL 명령어로는 COMMIT, ROLLBACK 등이 있다.

위와 같은 구분은 SQL의 명령어를 논리적으로 구분하여 분류하고자 하는 의도로 분류된 것이며, 실제로는 DDL, DML, DCL, TCL 명령어들이 서로 상호작용하며 데이터베이스를 운영한다. 예를 들어, DDL 문장으로 테이블을 생성하고, DML 문장으로 데이터를 삽입하거나 수정하는 등 데이터베이스를 관리하며, DCL 문장으로 사용자에게 권한을 부여하거나 회수하며, TCL 문장으로 트랜잭션을 관리한다.

반응형