데이터베이스와 관계형 데이터베이스(RDBMS), 그리고 SQL

Heejeong Choi·2021년 8월 13일
0
post-thumbnail
해당글은 '오라클로 배우는 데이터베이스 입문' 책을 읽고 작성되었습니다.

1. 데이터베이스 용어 정리

- 데이터베이스(Database): 데이터(Data)와 베이스(Base)의 합성어. (흔히 우리가 DB라고 하는게 이 데이터베이스)
- DBMS(Database Management System): 데이터베이스 관리 시스템의 약자.

'데이터'라고 생각하면, 자료와 정보가 나오는데 데이터 분야에서는 데이터와 정보는 전혀 다른 의미로 해석하고 있다. 데이터는 원석, 정보는 보석이라고 비유하는데 왜그럴까?

  • 데이터(Data): 어떤 필요에 의해 수집을 했지만 아직 특정한 목적을 위해 평가하거나 정제하지 않은값으로 정의.
  • 정보(Information): 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과.

즉, 잘 수집된 데이터를 분석하고 가공하면 새로운 가치를 만들어 낼 수 있는 정보를 얻을 수 있다는 점!

2. 데이터의 관리 방법 및 DBMS의 효율

그렇다면 데이터를 효율적으로 수집 및 통합하고 체계적으로 관리 및 분석해야겠죠? 관리 방법을 알아봅시다.

1) 데이터를 통합하여 관리 할 수 있어야 한다.
2) 일관된 방법으로 관리 할 수 있어야한다.
3) 데이터가 누락되거나 중복이 되어서는 안된다.
4) 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능해야 한다.

이러한 관리 방법의 조건을 갖춘 것이 데이터베이스 이며, 바로 구조화된 데이터 집합이다.

파일 시스템 방식과 DBMS를 통한 데이터관리는 어떻게 달라졌을까?

<파일 시스템 방식>

  • 데이터 중복
  • 응용 프로그램이 개별 데이터를 직접 관리하고, 데이터를 사용하는 방식이 각각 다름.
  • 데이터가 특정 응용 프로그램에 종속되어 있어 응용 프로그램을 변경하면 기존 데이터를 사용 할 수 없음.

<DBMS를 통한 방식>

  • 하나의 소프트웨어 프로그램이 데이터를 관리하므로, 데이터 중복 피할 수 있음
  • 여러 응용 프로그램이 하나의 DBMS를 통해 데이터를 사용하므로 데이터를 공유 할 수 있고, 데이터를 관리하는 방식이 통합됨.
  • 응용 프로그램과는 별도로 데이터가 DBMS에 의해 관리 및 보관되기 때문에 응용 프로그램의 업데이트 또는 변경과 관계없이 데이터를 사용 할 수 있음.

3. 데이터 모델

관계형 데이터베이스를 알아보기 전에, 관련된 내용을 먼저 알아보자!

- '데이터 모델'이란? 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형. 예시로는 계층형, 네트워크형, 관계형, 객체 지향형 등이 있다.

1) 계층형 데이터 모델

  • 나뭇가지 형태의 트리 구조를 활용해 데이터 관련성을 계층별로 나눠 부모-자식 같은 관계를 정희하고 데이터를 관리한다.
  • 1:N 관계의 데이터 구조
  • 상위 개념에 하위 개념이 포함되어 있는 특징 (하나의 부모 개체가 여러 자식을 가질 수 있는 반면에 자식 개체는 여러 부모 개체를 가질 수 없다는 제약이 있음)

2) 네트워크형 데이터 모델

  • 망형 데이터 모델; 그래프 구조.
  • 개체 간 관계를 그래프 구조로 연결 (자식 개체가 여러 부모 개체를 가질 수 있음)

3) 객체 지향형 데이터 모델

  • OOP 처럼, 데이터를 독립된 객체로 구성하고 관리하며, 상속 및 오버라이드 등 객체 지향 프로그래밍에 사용되는 기능을 활용이 가능.
  • OOP 개념을 완전히 DB에 적용하는 것이 쉽지 않아 흔치 않다.

4) 관계형 데이터 모델

  • 현대에 가장 많이 사용하는 관계형 데이터베이스의 바탕이 되는 모델.
  • 관계형 데이터 모델은 다른 모델과 달리 데이터 간 릴레이션에 초점을 둠.
  • 데이터 묶음은 개체 집합(entity set)을 의미하고, 관계형 데이터베이스(RDBMS)에서 테이블(table), 릴레이션(relation)으로 표기하고, 데이터 묶음 간의 관계는 관계(relationship)이라고 한다.

다시한번, 관계형 데이터 모델의 핵심 구성 요소를 짚고 넘어가자!

  • 개체(Entity): 데이터베이스에서 데이터화하려는 사물, 개념 등의 정보 단위. 관계형 데이터베이스의 테이블(table) 개념과 대응되고, 테이블은 릴레이션(relation)으로 표기하기도 함.
  • 속성(Attribute): 개체를 구성하는 데이터의 가장 작은 논리적 단위로서, 데이터의 종류, 특성, 상태 등을 정의. 관계형 데이터베이스의 열(column)개념과 대응.
  • 관계(Relationship): 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용. 관계형 데이터베이스에서는 테이블 간의 관계를 외래키(foreign key)등으로 구현하여 사용한다.

4. 관계형 데이터베이스(RDBMS)와 SQL.

관계형 데이터베이스란?

관계형 데이터 모델 개념을 바탕으로 데이터를 저장 및 관리하는 데이터베이스. (관계형 데이터베이스 관리 시스템은 RDBMS로 부름).

ex) MS-SQL, MySQL, MariaDB, PostgreSQL, DB2, Oracle 등이 RDBMS이다.

SQL이란?

Structured Query Language의 약자로, RDBMS에서 데이터를 다루고 관리하는데 사용되는 데이터베이스의 언어. 즉, 데이터베이스에서 여러 데이터 관련 작업을 수행할 수 있게 해주는 것.

SQL은 사용 목적에 따라 다음의 5가지로 나뉜다.

  • DQL(Data Query Language): RDBMS에 저장한 데이터를 원하는 방식으로 조회 하는 명령어
  • DML(Data Manipulation Language): RDBMS 내 테이블의 데이터를 저장/수정/삭제 하는 명령어
  • DDL(Data Definition Language): RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성/수정/삭제 하는 명령어
  • TCL(Transaction Control Language): 트랜잭션 데이터의 영구 저장 및 취소 등과 관련된 명령어
  • DCL(Data Control Language): 데이터 사용 권한과 관련된 명령어
profile
Welcome to my velog! I love learning something new to build up my ability in development field. I don't think it is shame not to know, but it is shame to pretend to know about something you don't know.

0개의 댓글