full stack mysql, node js express,react

JS FULL STACK 1장 ,데이터베이스

우주전사버즈 2024. 1. 8. 16:34

공부 기간 :  2023년 12월 말경 (12월 18일 ~ 23일)

SQL을 공부해야한다.

SQL은 여러 관계형 DataBase Management System == DBMS (데이터 베이스 관리 시스템)에서 사용하는 기본적 언어이다.

데이터베이스를 조작하는 언어이다. (데이터베이스의 데이터를 조회 저장,수정,삭제)

데이터베이스?

데이터베이스가 무엇이고 왜 알아야하는지에대한 이유를 설명하기위해
3학년 1학기 데이터베이스 개론 강의 시간에 이용했던 전공교재를 오랜만에 꺼내보았다. 교재에서는 데이터베이스의 필요성을 다음과 같이 얘기한다.

 

데이터 베이스:
데이터를 정보로 정확하게 추출할수있도록 데이터들을 필요할떄 언제든지 사용할 수 있게 관리해두는 저장소이다.

 

데이터는 원유고 정보는 우유이다.

앞서 데이터를 정보로 추출한다는 개념은 목장에서 방금 짠 원유를 사람들이 마실수있는 우유로 추출하는 과정과 비슷하다.

데이터는 가공되지않고 순수그자체로 얻어낸 것이고 정보는 목적에 맞게 데이터를 인위적으로 가공하여 추출해낸것이다.


2023년 음원 스트리밍 어플을 통해 제공되는 음원들을 들은횟수에 대한 데이터들이 수집된다고생각해보자

리스닝 번호 발매 날짜 곡명 들은 횟수
1 2023-02-14 Teddy Bear 24회
2 2023-04-10 I AM 51회
3 2013-12-09 첫눈 12회


이러한 가공되지 않은 데이터들을 필요한 정보를 추출하기 위해 정보처리 과정을 거쳐야할것이다.
예를 들어 위의 데이터들을 통해 2023년 많이들은 음원정보로 정보처리 과정을 거칠수 있게된다.

순위 곡명
1 I AM
2 Teddy Bear
3 첫눈


다음과같이 많이들은 음원정보를 통해 나에게 또다른 추천음원을 해당아티스트의 다른음악을 추천해주거나 비슷한유형의 아티스트들의 음악을 추천해주는 용도로 활용될수있을것이다.

위의 예시이외에도 재료인 데이터들을 가지고 다양한 정보로써 정보처리하여 여러 분야에서 활용될수있기떄문에
수많은 데이터들을 보유하고있는 창고와도같은 데이터베이스는 누구라도 접근해서 데이터들을 이용할수 있어야하며 중복된 데이터들이 존재하지않도록하여 문제가 발생하는것을 대비하며 지속적으로 데이터들을 저장하고있어야한다.

DBMS (DataBase Management System)

위에서 봤던 2023년 음원 리스닝 데이터베이스와같이 다양한 데이터들을 저장하고있는 데이터베이스를 가지고

다양한 사람들이 각자의 목적에 맞게 정보로 활용하기 위해 접근할 수 있을것이다. 
이러한 데이터들을가진 데이터베이스들을 누구나 접근하고 여러명이 동시에 접근할수있도록 관리하는 시스템이 곧 DBMS이다.

출처 : https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-databasedb-dbms-sql%EC%9D%98-%EA%B0%9C%EB%85%90/



MYSQL

결론적으로 수많은 DBMS중 현대에서 가장 많이쓰이는 관계형 DBMS == RDBMS을 사용하기위해서

가장 표준언어인 SQL을 공부하게되면 대표적인 RDBMS제품인 MySQL, PostgreSQL,Oracle Database을 사용할수 있는 능력을 갖추게 될것이며

나는 가장 많이사용되는 RDBMS이자 오픈소스,다중운영체제지원,sql표준형식을 따르는 장점을 가진 

MYSQL 공부를 시작한다.

나는 강사님이 제공하신 문서자료를 통해 공부했는데 Youtube에서도 무료로 제공되는 기초적인 강좌들이 많아서 참조해봐도좋을것같다.

출처 : 얄팍한 코딩사전,왕초보용! 갖고 노는 MySQL 데이터베이스 강좌 ,Youtube, https://youtu.be/dgpBXNa9vJc?si=5x3IJYWkaq66HA6Q

 

SQL은 엑셀문서와 닮았다.

출처 : 노마드 코더,아직도 SQL을 모른다고해서 5분 설명해드림 ,Youtube, https://youtu.be/z9chRlD1tec?si=QmdQAH0X_W84ceeQ


엑셀파일을 만들고 여러개의 엑셀파일을 폴더별로 정리해둘수있다.

(ex) 사용자별 음원 스트리밍횟수를 정리해둔 엑셀파일 , 사용자별 좋아요를 표시한 아티스트를 정리해둔 엑셀파일
음원 스트리밍 및 좋아요 정보 폴더안에 넣어둘수있음

 

테이블을 만들고 여러개의 테이블을 데이터베이스안에 정리해둘수있다.

(ex) 사용자별 음원 스트리밍횟수를 정리해둔 테이블 , 사용자별 좋아요를 표시한 아티스트를 정리해둔 테이블
음원 스트리밍 및 좋아요 정보 데이터베이스 안에 넣어둘수있음


데이터베이스 == 폴더
테이블 == 엑셀파일 ==  표

표 == 칼럼(열) + 로우(행)
칼럼(id,회원,음원정보,들은횟수)

로우(1,avaw23,호로록,52) 

 

표에서 칼럼은 하나여야한다.(중복불가)

음원 스트리밍 횟수 테이블

id 회원 음원정보  들은횟수
1 avaw23 호로록 52
2 zcbba 수수수 13
3 14gawg 하하하 24
4 khen34 가가가 664

 

 

시나리오 1 : 음원 스트리밍 횟수 테이블에 존재하는 음원정보 데이터들을 모두가지고오고싶다

방법 : sql 명령어를 통해 Database를 조작한다.

1. 현재 존재하는 데이터베이스들을 모두확인한다 : SHOW DATABASES: 
2. 해당 테이블을 보유한 데이터베이스로 접속한다. (이미 만들어졌다고가정함) : USE `DB이름`(여기서는

음원 스트리밍 및 좋아요 정보 데이터베이스) 
3. 현재 접속한 데이터베이스안의 모든 테이블을 확인한다 : SHOW TABLES ( 음원스트리밍횟수테이블, 좋아요아티스트테이블 존재한다고가정)
4. 음원스트리밍횟수테이블에 존재하는 음원정보 데이터들을 모두 확인한다 : SELECT 음원정보 FROM 음원스트리밍횟수

sql 언어는 영어랑 비슷함!

 select : 선택하다 FROM : ~로부터 
Sql언어는 궁극적으로 c언어 파이썬같은 프로그래밍언어 x 머리를 써서 원하는 결과를 위한 로직을 짤필요없음 
query용 언어이다 (데이터베이스에 정보를요청하는언어) 때문에 원하는것을 직접적으로 말로 요청하면된다! (배우기 쉽다)

 


더 알면 좋은것

SQL이 아닌 언어도 존재한다! NOSQL 

출처 : 노마드 코더,SQL vs NoSQL 5분컷 설명! ,Youtube, https://youtu.be/Q_9cFgzZr8Q?si=cT6DzC8umAVHwdjU