파이썬 문법만 100일째 공부중인 IT초보의 페이지 자세히보기

Lv02. 디비~DB~딥!/3. SQLD : SQL 기본

1. 관계형 데이터베이스 개요

오늘도레벨1 2023. 5. 12. 15:13
728x90
SMALL

 

안녕하세요 :0

오늘도레벨1입니다.

 

 

포스팅을 작성하는 시간이

금요일 오후네요.

 

맛점 하셨을까요?

 

새로운 카테고리입니다.

바로 SQLD(SQL개발)의

세번째 파트인 "SQL기본"입니다.

 

그리고

"SQL기본"파트의 첫 시작은

관계형 데이터베이스의 개요를

학습해보도록 하겠습니다.

 

 

 

그럼 본격적으로

이번 포스팅도

고고씽해볼까요?

 

우선 관계형 데이터베이스라는

내용을 알아보기 전에!

 

데이터베이스는 무엇일까요?

 

일반적으로 데이터베이스는

특정 기업이나 조직 또는 개인이

필요에 의해 데이터를 일정한 형태로

저장해 놓은 것을 말합니다.

 

예를 들면, 학교는 학생 관리를 위해

학생 정보(이름/학번/학년 등)를 모을 것이며

 

기업은 직원 관리를 위해

직원 정보(이름/사번/부서 등)을 보으겠죠!

 

그렇다면 관계형 데이터베이스는 무엇일까요?

 

말 그대로 관계형 데이터 모델에 기초를 둔

데이터베이스를 의미합니다.

 

관계형 데이터베이스는

모든 데이터를 2차원 테이블 형태로

표현한 뒤 각 테이블 간의 관계를

정의하는 것으로 시작됩니다.

 

쉽게는,

행/열/값의 관계로 데이터를

저장하는 엑셀을 생각하시면 됩니다!

 

우선 데이터베이스가 무엇인지

관계형데이터베이스가 무엇인지

개략적으로 아셨을 것이며

뒤로 이러한 데이터베이스를

다루는 시스템이라는 친구가

등장하면서 계속 학습할테니

너무 걱정하지 마세요!

 

 

아무튼

이러한 데이터베이스에서

관리하는 데이터의 수는

나날이 증가하고 있습니다.

 

그리고!

데이터가 늘어나면 늘어날수록

데이터베이스를 관리하는 중에

허점이 발생할 수 있죠!

 

다시 말해, 데이터 손상, 유실과 같은

상황이 발생할 수 있습니다.

 

그렇기에 많은 사용자들은

보다 효율적이고 데이터 손상을 피하고

필요시 데이터를 복구하기 위한 강력한 기능의

소프트웨어를 찾게 되었는데요.

 

그것이 바로!

DBMS(Database Management System)입니다.

 

한국어로 풀어쓰면

"데이터베이스 관리 시스템"

이라고 할 수 있죠!

 

그리고 앞서도 간단히

설명드린 데이터베이스의

대부분을 차지하며 가장 대표적인

관계형 데이터베이스를 관리하는 시스템이

바로바로 RDBMS가 되겠습니다.

 

 

 

 

그럼, RDBMS를 다루기 위해서는

어떻게 해야할까하는 의문이 듭니다..!

저만 드나요 혹시...? ㅎㅎㅎㅎㅎㅎ

 

아무튼간에!

RDBMS 조작을 위해

데이터베이스와 소통하는 방법(언어)이

있는데 말입니다.

 

그것이 바로바로바로~!

SQL(Structure Query Language)입니다.

 

이러한 SQL은 만드는

회사에 따라서 조금씩 다릅니다.

 

쉽게 말해 갤럭시와 아이폰의 조작법이

비슷하면서도 약간씩 다른 것처럼요.

 

그래서 1986년 부터 ANSI/ISO를 통해

표준화되고 정의된 SQL의 기능을 따르는

벤더별 DBMS 개발을 목표로 하고있습니다.

 

그리하여 많은 회사들의

SQL이 있는데 대부분의 기능과 조작법이

동일화되고 있다고 생각하시면 됩니다.

(물론 아직도 조금은 다른 부분들이 존재하긴하죠!)

 

대표적인 SQL은 Oracle SQL,

MySQL, MariaDB, SQLServer(MSSQL) 등이 있습니다.

 

 

 

 

어떻게 여기까지 쉽게

잘 이해가 되고 계실까요?

 

아래의 그림은 클라이언트(사용자)가

RDBMS와 소통하는 구조에 대해서

그림으로 표현한 것인데요!

 

클라이언트가 요청하고 응답받기 위해

소통에 활용하는 수단을 SQL이라고

이해하시면 더욱 쉽게 와 닿을것 같습니다!

 

 

클라이언트-서버 요청/응답 구조 모식도 (출처: 블로그주인장 오늘도레벨1)

 

 

이러한 SQL의 명령어는

4가지의 종류로 구분할 수 있는데요.

 

각각의 종류와 설명은 아래의

표를 통해 쉽게 보실 수 있도록 정리했습니다.

 

물론 각각의 명령어에 대해서는

다음 포스팅에서 더욱 자세히 다뤄봐야하겠죠?

 

 

명령어 종류 명령어 설명
데이터 조작어
(DML: Data Manipulation Language)
SELECT 데이터를 조회하거나 검색하기 위한 명령어
INSERT, UPDATE, DELETE 데이터에 변형을 가하는 명령어
데이터 정의어
(DDL: Data Definition Language)
CREATE, ALTER, RENAME, DROP 데이터 구조를 정의하는데 사용되는 명령어
데이터 제어어
(DCL: Data Control Language)
GRANT, REVOKE 데이터베이스에 접근하고 객채 사용 권한을 주고 회수하는 명령어
트랜잭션 제어어
(TCL: Transaction Control Language)
COMMIT, ROLLBACK, SAVEPOINT DML에 의해 조작된 결과를 작업단위 별로 제어하는 명령어

 

사실, TCL의 경우 일부에서는 크게는

DCL의 일종으로 구분하기도 하는데요.

 

그 성격이 다소 다르므로 별도의 4번째 그룹인

TCL로 분리하는 것을 권고한다고 하네요!

 

후~, 한번 호흡을 정리하시고~!

 

관계형 데이터베이스의 개요에서

이어서 학습할 내용은 테이블에 대한 내용인데요.

 

흠, 깊게 들어가면...

그 내용이 너무 방대할 수 있습니다.

 

저는, 간단하게 그림 1개와 표 1개만

알면 된다고 소개하고 싶네요.

 

물론 자세하고 상세한 내용을

알고 싶으신 분들이 있을 수 있겠죠?

 

관련된 내용을 담은 부분에 대해서는

본 포스팅 하단에 링크 달아드리겠습니다.

 

다시 돌아와서, 테이블은

관계형 데이터베이스의 기본 단위라고

할 수 있으며, 앞서 말씀드렸다시피

 

"관계형 데이터베이스는

모든 데이터를 2차원 테이블 형태로

표현한 뒤 각 테이블 간의 관계를

정의하는 것으로 시작"

 

하는데요.

 

테이블은 쉽게 말해서

엑셀에서 시트명이라고

생각하면 됩니다만...

 

역시나

 

이렇게 계속 말로 이어가면

이해가 어려울 수 있기 때문에

바로 그림 1개, 표 1개를 보러 가시죠.

 

우선 그림 1개입니다.

 

 

테이블과 구성 요소 (출처: 블로그주인장 오늘도 레벨1)

 

 

위의 그림은

학생 개개인의 정보를 담은

"학생" 테이블입니다.

 

그 안에는 학번, 이름, 성별,

학년, 수강과목이라는 칼럼이 있죠.

또한 학번은 개개인이 다 다르므로

기본 키라고 부를 수 있습니다.

 

괄호안에 있는 말은 동의어입니다!

 

그리고 이번에는 가로로 봐볼까요?

각 칼럼에 알맞은 정보를 담은 행으로

구분할 수 있고 행과 열이 만나는 곳에는

값이 들어가는데 이것을 속성값이라고 합니다.

 

그림을 보니 쉽게 이해가 가시나요?

 

이어서 보실

표 1개는 앞서 그림에 대해

설명한 것과 그 외 추가로 알아야할 내용을

보기 좋게 정리해논 것입니다.

 

 

종류 설명
테이블(Table) = 엔터티(Entity) 행과 칼럼의 2차원 구조를 가진 데이터 저장소
칼럼(Column) = 속성(Attribute) = 열 테이블의 세로 방향으로 이루어진 하나하나의 속성 (더 이상 나눌 수 없는 특성)
행(Row) = 인스턴스(Instance) = 로우 테이블의 가로 방향으로 이루어진 연결된 데이터
기본키(Primary Key) = PK = 주식별자 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼
외부키(Foreign Key) = FK = 외부식별자 = 외래식별자 = 참조키 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼
정규화(Normalization) 테이블을 분할하여 데이터 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스

 

 

표까지 보고나니 확실하게

이해되고 기억되지 않나요?

 

앞으로도 쭈욱 해당 내용에

대해서 다루시길 것이기 때문에

저는 이정도만 해도 충분하다고 느낍니다.

 

물론, 앞서 말씀드린 것 처럼 더욱 상세 내용을

알고싶으신 분들은 아래 링크를 참고하세요!

 

 

 

관계형 데이터베이스 개요

1. 데이터베이스 흔히 현대사회를 가리켜 정보화 사회라고 한다. 그만큼 일상생활 속에서 수 없이 쏟아져 나오는 다양한 정보들이 우리의 생활과 밀접한 관계를 맺고 있는 것이다. 따라서 이런

dataonair.or.kr

 

 

추가로 ERD에 대한 내용도 있는데요.

 

"데이터모델링의 이해" 파트에서

충분히 자세히 다루고 있기 때문에 생략하며

 

이번 관계형 데이터베이스 개요에

대해 학습하는 시간을 마무리 하려 합니다!

 

다음 시간 부터는 이제 각각의

명령어들에 대해서 알아볼텐데요.

 

본격적인 SQL의 시작이라고

이해하시면 될 것 같습니다.

 

그럼 오늘 하루도

행복한 하루가 되시길 바라며

저는 다시 다음 포스팅에서 찾아뵙겠습니다.

 

감사합니다.

 

 

 

 

구독과 좋아요는 제게 큰 힘이 됩니다 :)

 

728x90
LIST

'Lv02. 디비~DB~딥! > 3. SQLD : SQL 기본' 카테고리의 다른 글

2. SELECT 문  (4) 2023.07.05