TIL-221020- 데이터 베이스 정하기 근데이제 플로우를 곁들인
MYSQL 이란 무엇인가
표준 데이터베이스 질의어 SQL을 사용하는 개방 소스의 “관계형” 데이터베이스 관리 시스템
데이터 베이스란?
여러 응용 시스템이 공유할 수 있도록 통합 저장된 운영 데이터의 집합을 의미한다.
SQL이란?
데이터베이스에서 데이터를 저장하거나 얻기 위해서 사용되는 “표준화된” 언어이다.
즉 데이터베이스와 통신하는데 사용이 되는 구조 질의어이다.
데이터베이스 관리 시스템(DBMS)
DBMS는 응용 프로그램과 데이터의 중재자로서 모든 프로그램이 데이터베이스를 공유활 수 있도록 관리해 주는 소프트웨어 시스템이다. 목적은 데이터의 독립성?
데이터의 독립성에는 응용 프로그램에 영향을 주지 않고 데이터베이스의 논리적인 구조를 변경시킬 수 있는 물리적 데이터의 독립성이 있다.
MYSQL의 장점
- 오픈 소스 라이센스이기 떄문에 무료로 사용할 수 있다.
- 다양한 운영체제에서 사용할 수 있다. ex Java, php , C , C++
- SQL 형식을 사용한다.
- MYSQL은 대규모 사용자 커뮤니티를 가지고 있다.
관계형 데이터베이스
데이터 베이스가 테이블 형태로 이루어져 있고 테이블은 키와 밸류 의 관계를 나타낸다.
데이터의 종속성을 관계로 표현하는 것이 관계형 데이터베이스의 특징이다.
관계형 데이터베이스의 특징은
1.데이터의 분류 , 정렬, 탐색 속도가 빠르다.
- 오랫동안 사용이 되어 와서 신뢰성이 높다. 어떤 상황에서도 무결성을 보장해 준다. { 무결성 : 신뢰할 수 있는 서비스 제공을 위해서 의도하지 않은 요인에 의해 데이터, 소프트웨어, 시스템 등이 변경되거나 손상되지 않고 완전성, 정확성, 일관성을 유지함을 보장하는 특성 }.
- 스키마의 수정이 어렵다?
스키마란?
데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것 즉 데이터베이스 명세서 같은 느김인 건가.
개체들의 특성을 나타내는 속성(Attribute)와, 속성들의 집합으로 이루어진 개체(entity) 개체 사이에 존재하는 관계에 대한 정의와 이들이 유지해야 할 제약조건을 기술한 것이다.
쉽게 말하면 DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.
배너 표 것들을 도메인 별로 나누기 어떤 기능인지? ex filter기능이면 어떤 기준인지
플로우 ex
메인화면 접속 → 커뮤니티 접속 → 글쓰기(프로세스?) 상황가정?
SQL 데이터베이스 사용이 더 좋을 때
- 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
- NoSQL에서는 여러 컬렉션을 모두 수정해야 하기 때문에 비효율적
- 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우
#NoSQL 데이터베이스 사용이 더 좋을 때
- 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
- 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
- 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)
하나의 제시 방법이지 완전한 정답이 정해져 있는 것은 아니다.
SQL을 선택해서 복잡한 JOIN문을 만들지 않도록 설계하여 단점을 없앨 수도 있고
NoSQL을 선택해서 중복 데이터를 줄이는 방법으로 설계해서 단점을 없앨 수도 있다.
마이 SQL NOSQL 차이점
마이 sql은 관계형 데이터베이스 이다. nosql은 비 관계형 분산 데이터베이스 시스템이다.
sql 데이터베이스는 행 및 열 형식의 테이블 기반이며 표준 스키마를 준수해야 한다.
다중 행 트랜잭션이 필요한 응용 프로그램에 더 나은 옵션이다.
SQL데이터베이스에 는 우수한 NOSQL에 비해서 우수한 생태계를 가지고 있다.
sql을 사용해야 하는 이유 mysql은 스키마를 엄격하게 지켜야 하지만 nosql은 스키마 자유롭게 정의학고 다른 구조의 데이터도 추가할 수 있다.
- 명확하게 정의된 스키마
- 데이터의 무결성 보장
- 관계는 각 데이터를 중복없이 한번만 저장함
- SQL은 중복된 데이터가 없기 때문에 수정을 해야하는 경우 한번만 수행하면 됩니다.
sql 선택한 이유
sql과 nosql의 가장 큰 차이점은 스키마의 구조에 있는데 쇼핑몰은 매우 정형화된 데이터들이기 때문에
nosql의 유연하게 데이터를 조정하고 새로운 필드를 추가할 수 있는 기능이 굳이 필요없음
그리고 nosql에 비해 중복을 피할 수 있음 즉 무결성측면에서 sql이 조금 더 좋다.
h2는 local환경에서 사용하는 데이터베이스이다. 자바로 작성된 관계형 데이터베이스 관리 시스템이다.
나의 선택은?
postgralsql 세계에서 가장 많이 사용하는 관계형 데이터베이스중 하나 이다. 생태계가 방대하다. 자료를 서치하는데 좋은 이점이 있다.
무료이다.
프로젝트의 구조가 바로바로 튀어 나올수 있게 계속해서 이런식으로 프로젝트 구상을 시각화 하는 것이 중요한 것같다. 오늘 작성해본 프로그램 플로우 이다.

관리자 페이지나 고객페이지나 API서버에서 데이터를 받아오는 구조가 많이 보이는 것같다. 관리자 페이지 까지 내일은 작성해보고 기능리스트를 자세히 작성해보도록하자
