본문 바로가기
데이터베이스(DB)/SQLD

[SQLD 2-1-1] SQL 기본 - 관계형 데이터베이스 개요

by 송기동 2024. 5. 14.
728x90

1. 데이터베이스 (Database)

- 특정 기업이나 조직, 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해놓은 것

- 효율적인 데이터의 관리와 데이터 손상을 피하고 데이터 복구를 위한 시스템을 DBMS(Database Management System)라고 한다.

 

# 데이터베이스의 발전

- 1960s : 플로우차트 중심의 개발 방법을 사용하였으며 파일 구조를 통해 데이터를 저장하고 관리했다. 

- 1970s : 데이터베이스 관리 기법이 처음 태동되던 시기였으며 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스같은 제품들이 상용화되었다.

- 1980s : 현재 대부분의 기업에서 사용되는 관계형 데이터베이스가 상용화되었다. 

- 1990s : Oracle, SQL 등 많은 제품들이 보다 향상된 기능으로 정보시스템의 확실한 핵심 솔루션으로 자리를 잡았고, 객체 관계형 데이터베이스로 발전했다. 

 

# 관계형 데이터베이스 (Relational Database)

- 테이블로 데이터를 관리하고 테이블 사이의 관계를 토대로 데이터를 정의하는 방식, 대다수의 기업이 운용중(Oracle 등)

- 1970년 영국의 수학자, E.F.Codd 박사의 논문에서 처음 소개됨

- 현재 기업에서 사용하는 대부분의 DB는 관계형 데이터베이스에 객체 지원 기능을 추가한 객체 관계형 데이터베이

 

# 관계형 데이터베이스 장점

1. 정규화를 통한 합리적인 테이블 모델링을 통해 이상(ANOMALY) 현상을 제거 + 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공

2. 메타데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성, 또는 표현 방법 등을 체계화할 수 있고, 데이터 표준화를 통한 데이터 품질을 확보

# DBMS 장점

1. 인증된 사용자만 사용할 수 있도록 보안 기능을 제공

2. 테이블 생성 시에 사용할 수 있는 다양한 제약조건을 이용하여 사용자가 실수로 조건에 위배되는 데이터를 입력한다던지, 관계를 연결하는 중요 데이터를 삭제하는 것을 방지하여 데이터 무결성 보장

3.  시스템의 장애로부터 사용자가 입력/수정/삭제하던 데이터가 제대로 반영될 수 있도록 보장해주는 기능 + 시스템 다운, 재해 등의 상황에서도 데이터를 복구할 수 있는 기능을 제공


2. SQL (Structured Query Language)

- 관계형 데이터베이스에서 조회, 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어

- 독립된 하나의 개발 언어


3. 테이블 (Table)

- 데이터를 저장하는 객체로써, 관계형 데이터베이스의 기본 단위

- RDBMS에서 실제 데이터가 저장되고 조회되는 2차원 배열 형태의 저장공간

 

데이터를 저장할때, 모든 데이터를 하나의 테이블로 저장하지 않는다.

 

다음과 그림에서는 선수 테이블과 팀 테이블을 분할 저장 하고 있는데, 분할된 테이블은 그 칼럼의 값에 의해 연결된다.

이렇게 테이블을 분할해 불필요한 중복을 줄이는 것을 정규화(Normalization)라고 한다.

각 행을 한가지 의미로 특정할 수 있는 한 개 이상의 칼럼을 기본키(PK)라고 한다.

다른 테이블의 기본키로 사용되면서 테이블과의 관계를 연결하는 역할을 하는 칼럼을 외부키(FK) 라고 한다.


4. ERD (Entity Relationship Diagram)

- 정보와 테이블 간의 의미 또는 관계 등을 도식화하여 표현한 것

- 구성요소는 엔터티(Entity), 관계(Relationship), 속성(Attribute)이며 현실 세계의 데이터는 이 세가지 구성요소로 모두 표현이 가능

위 선수테이블-팀테이블 과 같은 경우에 팀과 선수 간에는 '소속'이라는 관계가 맺어져 있다. 서로의 상관관계를 도식화 한것을 E-R다이어그램 이라고 하며, 간략히 ERD라고 한다.

728x90