🤔 프론트에서 다룰 일은 없겠지만(?),, 그래도 백엔드와 원활한 소통을 위해 다룬 데이터베이스! 어떻게 뽑아오는지 궁금도 해서 이참에 정리해보려한다 !
데이터베이스를 알기 전에 데이터가 무엇인지부터 살펴보자! 데이터란 컴퓨터 안에 기록되어 있는 숫자(찐으로 0,1로 모여있는 그것 맞다.)를 의미하며, 이런 데이터의 집합을 데이터베이스라고 한다. 일반적으로 특정 데이터를 확인하고 싶을 때 이 데이터 베이스를 활용한다!(이때 필요한 정보는 순차적으로 정리한다.)
아래와 같은 이미지로 구조가 나타나는데, 김제톰을 Web Client(사용자)로 생각하면된다.
거치는 이유는 두 가지로 나뉠수 있는데 첫 번째는 통신규약에 의해 브라우저단에서 바로 호출 할 수 없으며, 두 번째로는 프론트에서 한번 가공을 거친 후 요청하는 목적에 맞춰 예쁘게 만들어주어 사용자에게 전달해야하기 때문이다.(🙄 예쁜게 짱이다.)
다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.(데이터베이스는 다른 개념이니 헷갈리지 말아야한다.)
데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어이며 생산성 향상과 기능성, 신뢰성 확보에있다. 데이터베이스가 없으면 메모리에 넣어야하는데, 메모리는 휘발성이라 컴퓨터 전원이 꺼지면 사라지기 때문에 데이터베이스가 꼭 필요하다!
데이터 베이스는 관계형 / 비관계형 데이터 베이스로 나뉘어져 있으며 각각의 특징을 살펴보자.
👉 비관계형 데이터 베이스
아무렇게나 저장하고 꺼내올 수 있다는것이 단점과 장점이다. 정말 아무렇게나 저장을 할 수있기 때문에 큰 프로젝트에서는 찾는것이 쉽지 않기때문에 추천하지 않는다.
👉 관계형 데이터 베이스
관계형 데이터베이스는 엑셀처럼 한 눈에 정해진 형식대로 저장 할 수 있으며, 자세한 내용은 다음 주제로 넘어가서 살펴보겠다.
위에서 짧게 언급한 관계형 테이터 베이스를 더 자세히 설명해보겠다. 관계형 데이터베이스는 행과 열을 가지고 표 형식 데이터를 저장하는 형태의 데이터베이스이며 앞서 언급했듯이 엑셀처럼 나열을한다. 이러한 관계형 데이터베이스는 표를 저장해두고 각각 테이블에 이름을 붙여 관리한다.
id | 사용자 | 생일 | 성별 |
---|---|---|---|
1 | 김제톰 | 2016.04.08 | 수컷 |
2 | 김철민 | 2021.06.25 | 남자 |
3 | 김태영 | 2017.11.01 | 남자 |
관계형데이터의 소프트웨어로는 유명한 mySQL(전설의 돌고래)와 postgreSQL, oracle등이 있다.
관계 유형으로 넘어가기전 PK와 FK에 대한 설명부터 설명하겠다.
PK: primary Key의 약어로서 모든 데이터를 식별하는 컬럼으로 id값 즉 유니크한 값이라 생각하면 된다.
FK: foreign Key의 약어로서 외부 식별자키이다. 테이블 간 잘못된 매핑을 방지하는 역할이다.
👉 https://lovefor-you.tistory.com/261
관계 유형에는 세가지의 유형이 있으며 각 유형에 대해 살펴보자
하나의 테이블 데이터는 오로지 하나의 테이블 데이터와 연결된다는 뜻이다.
하나의 데이터가 여러개의 데이터를 가지는것으로서 한번 설정을 하면 바꿀 수 없다.
💡 1:1은 서로가 서로를 바라보고, 1:N은 한 테이블에 다른 테이블이 여러개가 바라보는것 (순애보와 N다리의 차이...?)
하나의 테이블 데이터는 여러 데이터와 연결 될 수 있다.
이때 서로 각자 다른 테이블의 여러 데이터와 연결 될 때는 두 테이블에 속한 데이터 조합을 입력하기 위한 중간 테이블이 꼭 필요하다.
트랜잭션은 ACID를 보장하면서 일련 작업들이 마치 하나의 작업처럼 취급되어 모두 성공하거나 모두 실패하는 것을 의미한다.
트랜잭션에서 언급한 ACID란 무엇인지 아래의 내용을 통해 자세히 알아보자.
Atomicity - 원자성이라는 뜻으로 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
Consistency - 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
Isolation - 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
Durability - 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.
따라서 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(지속성)을 통틀어 ACID라고한다.
👉 https://ko.wikipedia.org/wiki/ACID
음,, 쓰고보니 양도 많고 이해하는데 어려웠지만.. 😂 협업 할 때 효과적으로 서로 의견 전달이 가능하니! 꼭 알아두자고 다짐했다......