장뽀장뽀! 정보 뽀개기!

춤추는망고·2020년 5월 6일
0
post-thumbnail

슈퍼개발자, 춤추는망고입니다.

( 춤 안춥니다. )





이번 시리즈는...

백엔드로 가는길,

장뽀장뽀! 장고 뽀개기!


입니다.
( 우와아아아앙아ㅏㅏㅏㅏ~!!!! )












정보! 어디까지 다뤄봤니?






데이터베이스와 모델링...

백엔드 개발자의 영원한 친구죠...

( 모르면, 공부하고 와라! 이말입니다! )




이번 글에선,

데이터베이스와 친해지는 것을 목표로 해봅시다!










시작해보죠!










데이터베이스란?

( DataBase 죠! )

Data ( 정보 ) 의 Base ( 기반 ) 이라는 뜻이에요!

( 우리가 다루는 정보들의 집이라고 보셔도 됩니다 ㅎ )


데이터베이스의 종류는 여러가지가 있는데요.

1. SQL 기반의 DataBase

관계형 데이터베이스 ( Relational DataBase )

MySQL ( 보편적 ), Oracle ( 관공서, 기업 등에서 많이 사용 ) 등

2. No SQL 기반의 DataBase

문서집합형 데이터베이스 ( Document Store )

MongoDB 등

다행관리형 데이터베이스 ( WideColumn Store )

Apache Cassandra 등

이런식으로 크게 두 분류로 나뉘죠!

( SQL 에 대한 설명은 맨 밑의 부록쓰에 적어뒀어요! )


이중에서, 관계형 데이터베이스는

(저희가 다룰 데이터베이스에요! )

정보들의 '연관성' 을 우선시하여,

그에 맞는 '관계' 를 설정하고,

설정한 관계에 따라서

정보를 다루는 '단위' 를 설정하는 방식으로

정보를 관리하는 데이터베이스에요!


예를 들자면,

아래와 같은 정보들이 있다고 생각해볼게요~

춤추는망고, 회사원, 가수, 노래하는후추, 개발자, 돈버는포도, 5000원, 300원, 7000원

그리고, 이들의 관계는 이렇습니다!

춤추는망고
- 개발자이고, 5000원 있음

노래하는후추
- 가수이고, 300원 있음

돈버는포도
- 회사원이고, 7000원 있음

이에 따라서 데이터베이스에 들어갈 정보의 모양은 이렇죠!

이런 모양의 덩어리를 Table ( 표 ) 이라고 해요!


위에 있는 표에서,

이렇게 정보가 들어있는 칸 하나하나를 Field ( 칸 ) 라고 해요!

( 정보의 제일 작은 단위! )

그리고,

이렇게 Field 들이 모여있는 것을 Row ( 행 ) 라고 해요!

( Record 라고도 해요! )
( 연결관계가 확실하고 하나의 실재하는 개체를 나타낸다면 Entity 라고도 해요! )

그리고,

춤추는망고, 노래하는후추, 돈버는포도 라는 정보들의 특징을 묶어줄 수 있는 ' 이름 '

개발자, 가수, 회사원 이라는 정보들의 특징을 묶어줄 수 있는 ' 직업 '

5000원, 300원, 7000원 이라는 정보들의 특징을 묶어줄 수 있는 ' 가진 돈 '

과 같은 정보의 특징에 대한 단위를 Column ( 열 ) 이라고 해요!

( Attribute 라고도 해요! )


이를 정리하면,

Column ( 열 ) 로 정의되는 특징을 가진 Field ( 칸 ) !

Field ( 칸 ) 들이 어떠한 관계에 의해 모인 것이 Row ( 행 ) !

Row ( 행 ) 라는 덩어리들이 모인 것이 Table ( 표 ) !


그리고 여기에서 한발짝 더 가자면!

이런 Table ( 표 ) 들이 모인 것을 Schema ( 관계들의 집합 ) !

이런 Schema ( 관계들의 집합 ) 들을 담아두고, 관리하는 것이 DataBase ( 정보기반 ) !

그리고, Database ( 정보기반 ) 의 핵심기능은

Create ( 새로운 내용을 생성하는 기능 ! )
Read   ( 기존의 내용을 확인하는 기능 ! )
Update ( 기존의 내용을 수정하는 기능 ! )
Delete ( 기존의 내용을 삭제하는 기능 ! )

이에요!

( 합쳐서 CRUD 라고 불러요! )



마지막으로, 간단한 비유쓰!

DataBase 라는 동네에,

Schema 라는 집이있고,

Table 이라는 방이 있을때,

Column 이라는 특징을 가진

Field 라는 물건들이

Row 라는 상자들에 담겨있는거죠!


정성이 담긴 그림쓰! ( 사실 엑셀로 만듬 )


더 알아보고 싶으시다면,

Raw SQL, Entity, 스키마, 모델링, 관계설정 ( join ) 등의 키워드로 구글링하세요!

인강은 생활코딩, 오용철의 열혈강의 를 추천드릴게요!

( 이후의 글에서 다루긴 할 거지만, 설명잘하시는 분들의 영상을 보고 오시면 더 좋을거에요! )










여기까지!




이번 글에서는,

정보를 다루기 위해 필요한 것들 중

데이터베이스에 대해서 알아봤습니다!




다음 글에서는,

정보를 다루기 위해 필요한 것들 중

모델링에 대해서 알아볼겁니다!










백엔드 개발자가 다루는

많은 프레임워크 중 하나

장고를 함께 뽀개봅시다!





고생하셨습니다.

감사합니다.( _ _)







부록쓰!

SQL 이란?

: Structured Query Language

' 구조화된 질의문 ' 이라는 뜻인데요.


단단한 기본구조를 통해 안정적인 정보관리를 하는
' 관계형 데이터베이스 ' 에서

우리가 ' 원하는 정보 ' 를 꺼내오기 위해선,
' 그 정보가 있는 곳 '컴퓨터를 접근 시켜야하는데요!

이 때,

' 이 부분에 대해 우리 컴퓨터를 접근시켜주면 안될까? '
라고 데이터베이스에게 질문 하는 구문이에요! ( 문장의 단위 )

왜 NoSQL?

체계가 단단하다는 장점을 가진 관계형 데이터베이스는

1. 유연하지 못한 처리방식

2. 구조의 변화에 대응이 힘듬

이라는 단점을 가졌기 때문에,

이를 극복하고자 하는 개발자들에 의해
NoSQL 형태의 데이터베이스가 생겨나기 시작했답니다!

Entity 란?

실재하는 하나의 개체, 서로 구별되는 대상이에요!

Attribute 란?

개체가 지니고 있는 특징 ( 속성 ) 이에요!

profile
지금까지 이런 망고는 없었다. 이것은 개발자인가 춤추는망고인가

0개의 댓글